The package rpms/java-1.8.0-openjdk-portable.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-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-portable.git/c....
Change:
-%ifnarch %{zero_arches}
+ExcludeArch: %{ix86}
-%ifnarch %{ix86}
+%ifarch %{ix86}
+%ifnarch %{ix86}
+ExcludeArch: %{ix86}
+%ifarch %{ix86}
+%ifarch %{gdb_arches}
+%ifarch %{bootstrap_arches}
+%ifarch %{share_arches}
+%ifarch %{share_arches}
+%ifarch %{ssbd_arches}
+%ifarch %{jfr_arches}
+%ifarch %{jfr_arches}
+%ifarch noarch
-%ifarch x86_64 %{aarch64}
-%ifarch %{ix86}
+%ifarch %{sa_arches}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch %{ix86}
-%ifnarch %{jit_arches}
-%ifarch %{aarch64}
+%ifarch x86_64 %{ix86}
+%ifarch x86_64 %{ix86} %{aarch64}
+%ifnarch %{aarch64}
+%ifarch %{ix86} x86_64
+%ifarch x86_64 %{aarch64}
+%ifarch %{jit_arches}
+%ifarch %{ix86} x86_64 %{aarch64} %{ppc64le}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch x86_64
+%ifarch %{ix86} x86_64
+%ifarch %{jit_arches}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifnarch %{jit_arches}
-%ifnarch %{aarch64}
+%ifnarch %{aarch64}
-%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifarch %{aarch64}
-%ifarch %{ppc64le}
-%ifarch %{aarch64}
+%ifnarch %{aarch64}
-%ifnarch %{ppc64le}
-%ifarch %{jit_arches}
+%ifnarch %{ppc64le}
+%ifarch %{power64} ppc
-%ifarch %{multilib_arches}
-%ifarch %{ppc64le}
+%ifarch %{aarch64}
+%ifarch %{jit_arches}
-%ifarch %{aarch64}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifarch s390
+%ifnarch %{arm} %{aarch64} ppc64le
-%ifnarch %{aarch64}
+%ifnarch %{aarch64}
-%ifarch %{aarch64}
+%ifnarch %{aarch64}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch %{ix86}
-%ifarch %{with_systemtap}
-%ifnarch %{aarch64}
+%ifarch %{with_systemtap}
+%ifnarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch %{aarch64}
+%ifnarch %{arm} %{aarch64}
+%ifarch %{arm64}
-%ifarch %{arm}
+%ifarch s390x sparc64 alpha %{power64}
-%ifarch %{jit_arches} # Only in u4+
+%ifarch %{jit_arches}
Thanks.
Full change:
============
commit 203ef7fa4429a5f20efe0590b81469f2ee78604d
Merge: 224b0cd 15f93a5
Author: jandrlik <jandrlik(a)redhat.com>
Date: Mon Jan 2 12:52:43 2023 +0100
Merge branch 'fedoraportable' of
https://src.fedoraproject.org/forks/jandrlik/rpms/java-1.8.0-openjdk into rawhide
commit 15f93a55edf889f726681ba57326ec65d8bcdf70
Author: jandrlik <jandrlik(a)redhat.com>
Date: Wed Dec 21 16:12:48 2022 +0100
license fix
diff --git a/java-1.8.0-openjdk-portable.spec b/java-1.8.0-openjdk-portable.spec
index a12cfa7..9ed6d02 100644
--- a/java-1.8.0-openjdk-portable.spec
+++ b/java-1.8.0-openjdk-portable.spec
@@ -29,6 +29,7 @@
# Build with system libraries
%bcond_without system_libs
+%global unpacked_licenses %{_datarootdir}/licenses
%define debug_package %{nil}
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
@@ -1155,6 +1156,7 @@ fi
# build cycles
done
+mkdir -p $RPM_BUILD_ROOT%{unpacked_licenses}
%check
# We test debug first as it will give better diagnostics on a crash
@@ -1317,8 +1319,6 @@ for suffix in %{build_loop} ; do
nameSuffix=`echo "$suffix"| sed s/-/./`
fi
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
- cp -af openjdk/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
- mkdir -p $RPM_BUILD_ROOT%{_jvmdir}
mv ../../%{jreportablearchive -- "$nameSuffix"} $RPM_BUILD_ROOT%{_jvmdir}/
mv ../../%{jreportablearchive -- "$nameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
mv ../../%{jdkportablearchive -- "$nameSuffix"} $RPM_BUILD_ROOT%{_jvmdir}/
@@ -1330,7 +1330,9 @@ for suffix in %{build_loop} ; do
mv ../../%{jdkportablearchive -- "$dnameSuffix"}
$RPM_BUILD_ROOT%{_jvmdir}/
mv ../../%{jdkportablearchive -- "$dnameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
fi
-# To show sha in the build log
+ mkdir -p $RPM_BUILD_ROOT%{unpacked_licenses}/%{jdkportablearchive --
"%{normal_suffix}"}
+ cp -af openjdk/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{unpacked_licenses}/%{jdkportablearchive -- "%{normal_suffix}"}
+# To show sha in the build log-
for file in `ls $RPM_BUILD_ROOT%{_jvmdir}/*.sha256sum` ; do ls -l $file ; cat $file ;
done
done
@@ -1343,9 +1345,7 @@ done
%{_jvmdir}/%{jreportablearchive -- .debuginfo}
%{_jvmdir}/%{jreportablearchive -- %%{nil}}.sha256sum
%{_jvmdir}/%{jreportablearchive -- .debuginfo}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%else
%files
# placeholder
@@ -1357,44 +1357,34 @@ done
%{_jvmdir}/%{jdkportablearchive -- .debuginfo}
%{_jvmdir}/%{jdkportablearchive -- %%{nil}}.sha256sum
%{_jvmdir}/%{jdkportablearchive -- .debuginfo}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%endif
%if %{include_debug_build}
%files slowdebug
%{_jvmdir}/%{jreportablearchive -- .slowdebug}
%{_jvmdir}/%{jreportablearchive -- .slowdebug}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%files devel-slowdebug
%{_jvmdir}/%{jdkportablearchive -- .slowdebug}
%{_jvmdir}/%{jdkportablearchive -- .slowdebug}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%endif
%if %{include_fastdebug_build}
%files fastdebug
%{_jvmdir}/%{jreportablearchive -- .fastdebug}
%{_jvmdir}/%{jreportablearchive -- .fastdebug}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%files devel-fastdebug
%{_jvmdir}/%{jdkportablearchive -- .fastdebug}
%{_jvmdir}/%{jdkportablearchive -- .fastdebug}.sha256sum
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%license %{unpacked_licenses}/%{jdkportablearchive -- %%{nil}}
%endif
%changelog
-* Fri Nov 11 2022 Jiri Andrlik <jandrlik(a)redhat.com> - 1:1.8.0.352.b08-2
+* Fri Nov 11 2022 Jiri Andrlik <jandrlik(a)redhat.com> - 1:1.8.0.352.b08-1
- new package
- Related: rhbz#2141984
commit 9c8d3dc67ce31a474e6ddaaef35935ad8768d652
Author: jandrlik <jandrlik(a)redhat.com>
Date: Mon Dec 5 14:13:43 2022 +0100
specfile modified for packing portables in fedora
diff --git a/java-1.8.0-openjdk-portable.spec b/java-1.8.0-openjdk-portable.spec
index 2d9d72a..a12cfa7 100644
--- a/java-1.8.0-openjdk-portable.spec
+++ b/java-1.8.0-openjdk-portable.spec
@@ -27,7 +27,9 @@
# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
%bcond_without fresh_libjvm
# Build with system libraries
-%bcond_with system_libs
+%bcond_without system_libs
+
+%define debug_package %{nil}
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
%if %{with fresh_libjvm}
@@ -36,15 +38,7 @@
%global build_hotspot_first 0
%endif
-%if %{with system_libs}
-%global system_libs 1
-%global link_type system
-%global jpeg_lib |libjavajpeg[.]so.*
-%else
-%global system_libs 0
-%global link_type bundled
-%global jpeg_lib |libjpeg[.]so.*
-%endif
+%global is_system_jdk 0
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -82,25 +76,6 @@
%global normal_build %{nil}
%endif
-# We have hardcoded list of files, which is appearing in alternatives, and in files
-# in alternatives those are slaves and master, very often triplicated by man pages
-# in files all masters and slaves are ghosted
-# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
-# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_ -e alternatives
-# TODO - fix those hardcoded lists via single list
-# Those files must *NOT* be ghosted for *slowdebug* packages
-# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
-# you can check via headless and devels:
-# rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
-# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm |
grep bin
-# != rpm -ql java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
-# similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}
-%define is_release_build() %( if [ "%{?1}" ==
"%{debug_suffix_unquoted}" -o "%{?1}" ==
"%{fastdebug_suffix_unquoted}" ]; then echo "0" ; else echo
"1"; fi )
-
-# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk
stops to be an techpreview, move it to 1
-# as sytem JDK, we mean any JDK which can run whole system java stack without issues
(like bytecode issues, module issues, dependencies...)
-%global is_system_jdk 0
-
%global aarch64 aarch64 arm64 armv8
# we need to distinguish between big and little endian PPC64
%global ppc64le ppc64le
@@ -205,9 +180,9 @@
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
-%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
-%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
-%global ourldflags %{__global_ldflags}
+%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||' | sed -e 's|-g ||')
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||' | sed -e
's|-fasynchronous-unwind-tables||' | sed -e 's|-g ||')
+%global ourldflags %{nil}
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialization must be here. Later the pkg-config have buggy behavior
@@ -283,10 +258,9 @@
%global stapinstall %{nil}
%endif
-
-
+# Always off in portables
%ifarch %{systemtap_arches}
-%global with_systemtap 1
+%global with_systemtap 0
%else
%global with_systemtap 0
%endif
@@ -294,50 +268,30 @@
# New Version-String scheme-style defines
%global majorver 8
-%ifarch %{ix86} x86_64
-%global with_openjfx_binding 1
-%global openjfx_path %{_jvmdir}/openjfx8
-# links src directories
-%global jfx_jre_libs_dir %{openjfx_path}/rt/lib
-%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
-%global jfx_sdk_libs_dir %{openjfx_path}/lib
-%global jfx_sdk_bins_dir %{openjfx_path}/bin
-%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext
-# links src files
-# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
-%global jfx_jre_libs jfxswt.jar javafx.properties
-%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so
-%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
-%global jfx_sdk_bins javafxpackager javapackager
-%global jfx_jre_exts jfxrt.jar
-%else
-%global with_openjfx_binding 0
-%endif
-
-# Define IcedTea version used for SystemTap tapsets and desktop file
-%global icedteaver 3.15.0
-# Define current Git revision for the FIPS support patches
-%global fipsver 6d1aade0648
# Standard JPackage naming and versioning defines
%global origin openjdk
%global origin_nice OpenJDK
%global top_level_dir_name %{origin}
+# Settings for local security configuration
+%global security_file
%{top_level_dir_name}/jdk/src/share/lib/security/java.security-%{_target_os}
+%global cacerts_file /etc/pki/java/cacerts
+
# Define vendor information used by OpenJDK
%global oj_vendor Red Hat, Inc.
%global oj_vendor_url "https://www.redhat.com/"
# Define what url should JVM offer in case of a crash report
# order may be important, epel may have rhel declared
%if 0%{?epel}
-%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&compo...
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&compo...
%else
%if 0%{?fedora}
# Does not work for rawhide, keeps the version field empty
-%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{...
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{...
%else
%if 0%{?rhel}
-%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%...
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%...
%else
%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi
%endif
@@ -353,7 +307,10 @@
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
%global revision %{shenandoah_revision}
-
+# Define IcedTea version used for SystemTap tapsets and desktop file
+%global icedteaver 3.15.0
+# Define current Git revision for the FIPS support patches
+%global fipsver 6d1aade0648
# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
@@ -395,6 +352,7 @@
%global fullversion %{compatiblename}-%{version}-%{release}
# images directories from upstream build
%global jdkimage j2sdk-image
+%global jreimage j2re-image
# output dir stub
%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
%define installoutputdir() %{expand:install/jdk8.install%{?1}}
@@ -402,38 +360,40 @@
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
+%if (0%{?rhel} > 0 && 0%{?rhel} < 8)
+%define jreportablenameimpl() %(echo %{uniquesuffix ""} | sed
"s;el7\\(_[0-9]\\)*;portable%{1}.jre.;g" | sed
"s;openjdkportable;el;g")
+%define jdkportablenameimpl() %(echo %{uniquesuffix ""} | sed
"s;el7\\(_[0-9]\\)*;portable%{1}.jdk.;g" | sed
"s;openjdkportable;el;g")
+%else
+%define jreportablenameimpl() %(echo %{uniquesuffix ""} | sed
"s;fc\\([0-9]\\)*;\\0.portable%{1}.jre;g" | sed
"s;openjdkportable;el;g")
+%define jdkportablenameimpl() %(echo %{uniquesuffix ""} | sed
"s;fc\\([0-9]\\)*;\\0.portable%{1}.jdk;g" | sed
"s;openjdkportable;el;g")
+%endif
+%define jreportablearchive() %{expand:%{jreportablenameimpl -- %%{1}}.tar.xz}
+%define jdkportablearchive() %{expand:%{jdkportablenameimpl -- %%{1}}.tar.xz}
+%define jreportablename() %{expand:%{jreportablenameimpl -- %%{1}}}
+%define jdkportablename() %{expand:%{jdkportablenameimpl -- %%{1}}}
#################################################################
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*%{jpeg_lib}|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
-%if %is_system_jdk
+
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
-# Never generate lib-style provides/requires for slowdebug packages
-%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
-%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
-%global __provides_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
-%global __requires_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
-%else
-# Don't generate provides/requires for JDK provided shared libraries at all.
-%global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$
-%global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$
-%endif
%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin}
%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
# Standard JPackage directories and symbolic links.
-%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
-%define jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
+%global sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
+%global jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1}
-%define jredir() %{expand:%{sdkdir -- %{?1}}/jre}
-%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
-%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
+%global jredir() %{expand:%{sdkdir -- %{?1}}/jre}
+%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
+%global jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
%global alt_java_name alt-java
+%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}}
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
@@ -462,940 +422,14 @@
%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
%endif
-# x86 is no longer supported
-%if 0%{?java_arches:1}
-ExclusiveArch: %{java_arches}
-%else
-ExcludeArch: %{ix86}
-%endif
-
-# not-duplicated scriptlets for normal/debug packages
-%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
-
-%define save_alternatives() %{expand:
- # warning! alternatives are localised!
- # LANG=cs_CZ.UTF-8 alternatives --display java | head
- # LANG=en_US.UTF-8 alternatives --display java | head
- function nonLocalisedAlternativesDisplayOfMaster() {
- LANG=en_US.UTF-8 alternatives --display "$MASTER"
- }
- function headOfAbove() {
- nonLocalisedAlternativesDisplayOfMaster | head -n $1
- }
- MASTER="%{?1}"
- LOCAL_LINK="%{?2}"
- FAMILY="%{?3}"
- rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
- if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then
- if headOfAbove 1 | grep -q manual ; then
- if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then
- headOfAbove 2 >
%{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
- fi
- fi
- fi
-}
-
-%define save_and_remove_alternatives() %{expand:
- if [ "x$debug" == "xtrue" ] ; then
- set -x
- fi
- upgrade1_uninstal0=%{?3}
- if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will
cause persistence between uninstall
- %{save_alternatives %{?1} %{?2} %{?4}}
- fi
- alternatives --remove "%{?1}" "%{?2}"
-}
-
-%define set_if_needed_alternatives() %{expand:
- MASTER="%{?1}"
- FAMILY="%{?2}"
-
ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY"
- if [ -e "$ALTERNATIVES_FILE" ] ; then
- rm "$ALTERNATIVES_FILE"
- alternatives --set $MASTER $FAMILY
- fi
-}
-
-
-%define post_script() %{expand:
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-exit 0
-}
-
-%define alternatives_java_install() %{expand:
-if [ "x$debug" == "xtrue" ] ; then
- set -x
-fi
-PRIORITY=%{priority}
-if [ "%{?1}" == %{debug_suffix} ]; then
- let PRIORITY=PRIORITY-1
-fi
-
-ext=.gz
-key=java
-alternatives \\
- --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
- --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
- --slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
- --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
- --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
- --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
- --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\
- --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\
- --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
- --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\
- --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\
- --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\
- --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
- --slave %{_mandir}/man1/java.1$ext java.1$ext \\
- %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \\
- %{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
- %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
- %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
- %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
- %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
- %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
- %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
- %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
- %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
- %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
- %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
-
-%{set_if_needed_alternatives $key %{family}}
-
-for X in %{origin} %{javaver} ; do
- key=jre_"$X"
- alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}}
$PRIORITY --family %{family}
- %{set_if_needed_alternatives $key %{family}}
-done
-
-key=jre_%{javaver}_%{origin}
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk --
%{?1}} $PRIORITY --family %{family}
-%{set_if_needed_alternatives $key %{family}}
-}
-
-%define post_headless() %{expand:
-%ifarch %{share_arches}
-%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
-%endif
-
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-
-# see pretrans where this file is declared
-# also see that pretrans is only for non-debug
-if [ ! "%{?1}" == %{debug_suffix} ]; then
- if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
- sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir -- %{?1}}
- fi
-fi
-
-exit 0
-}
-
-%define postun_script() %{expand:
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- %{update_desktop_icons}
-fi
-exit 0
-}
-
-
-%define postun_headless() %{expand:
- if [ "x$debug" == "xtrue" ] ; then
- set -x
- fi
- post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
- %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state
%{family}}
- %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state
%{family}}
- %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
$post_state %{family}}
- %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
$post_state %{family}}
-}
-
-%define posttrans_script() %{expand:
-%{update_desktop_icons}
-}
-
-
-%define alternatives_javac_install() %{expand:
-if [ "x$debug" == "xtrue" ] ; then
- set -x
-fi
-PRIORITY=%{priority}
-if [ "%{?1}" == %{debug_suffix} ]; then
- let PRIORITY=PRIORITY-1
-fi
-
-ext=.gz
-key=javac
-alternatives \\
- --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
- --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
- --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
- --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
- --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
- --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\
- --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
- --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
- --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
- --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
- --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\
- --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
- --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
- --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
- --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
- --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
-%ifarch %{jfr_arches}
- --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\
-%endif
- --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
- --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
- --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
- --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\
- --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\
- --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\
- --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\
- --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\
- --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\
- --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\
- --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\
- --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\
- --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\
- --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\
- --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\
- --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\
- --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
- %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
- %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
- %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
- %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
- %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
- %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
- %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
- %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
- %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
- %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
- %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
- %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
- %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
- %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
- %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
- %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
- %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
- %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
- %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
- %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
- %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
- %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
- %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
- %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
- %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
- %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
- %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
- %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\
- --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
- %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
-
-%{set_if_needed_alternatives $key %{family}}
-
-for X in %{origin} %{javaver} ; do
- key=java_sdk_"$X"
- alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
- %{set_if_needed_alternatives $key %{family}}
-done
-
-key=java_sdk_%{javaver}_%{origin}
-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
-%{set_if_needed_alternatives $key %{family}}
-}
-
-%define post_devel() %{expand:
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-
-exit 0
-}
-
-%define postun_devel() %{expand:
- if [ "x$debug" == "xtrue" ] ; then
- set -x
- fi
- post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
- %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state
%{family}}
- %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
- %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
- %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir --
%{?1}} $post_state %{family}}
-
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-
-if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- %{update_desktop_icons}
-fi
-exit 0
-}
-
-%define posttrans_devel() %{expand:
-%{alternatives_javac_install -- %{?1}}
-%{update_desktop_icons}
-}
-
-%define alternatives_javadoc_install() %{expand:
-if [ "x$debug" == "xtrue" ] ; then
- set -x
-fi
-PRIORITY=%{priority}
-if [ "%{?1}" == %{debug_suffix} ]; then
- let PRIORITY=PRIORITY-1
-fi
- for X in %{origin} %{javaver} ; do
- key=javadocdir_"$X"
- alternatives --install %{_javadocdir}/java-"$X" $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
- done
-
- key=javadocdir_%{javaver}_%{origin}
- alternatives --install %{_javadocdir}/java-%{javaver}-%{origin} $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
-
- key=javadocdir
- alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
-exit 0
-}
-
-%define postun_javadoc() %{expand:
-if [ "x$debug" == "xtrue" ] ; then
- set -x
-fi
- post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
- %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadocdir_%{origin} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}/api $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadocdir_%{javaver} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}/api $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadocdir_%{javaver}_%{origin}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}}
-exit 0
-}
-
-%define alternatives_javadoczip_install() %{expand:
-if [ "x$debug" == "xtrue" ] ; then
- set -x
-fi
-PRIORITY=%{priority}
-if [ "%{?1}" == %{debug_suffix} ]; then
- let PRIORITY=PRIORITY-1
-fi
- for X in %{origin} %{javaver} ; do
- key=javadoczip_"$X"
- alternatives --install %{_javadocdir}/java-"$X".zip $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
- done
-
- key=javadoczip_%{javaver}_%{origin}
- alternatives --install %{_javadocdir}/java-%{javaver}-%{origin}.zip $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
-
- # Weird legacy filename for backwards-compatibility
- key=javadoczip
- alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}.zip $PRIORITY --family %{family_noarch}
- %{set_if_needed_alternatives $key %{family_noarch}}
-exit 0
-}
-
-%define postun_javadoc_zip() %{expand:
- if [ "x$debug" == "xtrue" ] ; then
- set -x
- fi
- post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
- %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadoczip_%{origin} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}.zip $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadoczip_%{javaver}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}}
- %{save_and_remove_alternatives javadoczip_%{javaver}_%{origin}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}}
-exit 0
-}
-
-%define files_jre() %{expand:
-%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
-%{_datadir}/applications/*policytool%{?1}.desktop
-%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so
-%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
-%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
-%if %is_system_jdk
-%if %{is_release_build -- %{?1}}
-%ghost %{_bindir}/policytool
-%endif
-%endif
-}
-
-
-%define files_jre_headless() %{expand:
-%defattr(-,root,root,-)
-%dir %{_sysconfdir}/.java/.systemPrefs
-%dir %{_sysconfdir}/.java
-%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
-%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
-%dir %{_jvmdir}/%{sdkdir -- %{?1}}
-%{_jvmdir}/%{jrelnk -- %{?1}}
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
-%dir %{_jvmdir}/%{jredir -- %{?1}}
-%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
-%{_jvmdir}/%{jredir -- %{?1}}/bin/java
-%{_jvmdir}/%{jredir -- %{?1}}/bin/%{alt_java_name}
-%{_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
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
-%config(noreplace) %{etcjavadir --
%{?1}}/lib/security/policy/unlimited/US_export_policy.jar
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
-%config(noreplace) %{etcjavadir --
%{?1}}/lib/security/policy/limited/US_export_policy.jar
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs
-%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
-%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
-%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
-%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.fips.cfg
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
-%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.fips.cfg
-%ifarch %{share_arches}
-%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
-%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
-%endif
-%dir %{etcjavasubdir}
-%dir %{etcjavadir -- %{?1}}
-%dir %{etcjavadir -- %{?1}}/lib
-%dir %{etcjavadir -- %{?1}}/lib/security
-%{etcjavadir -- %{?1}}/lib/security/cacerts
-%dir %{etcjavadir -- %{?1}}/lib/security/policy
-%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited
-%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
-%if %{system_libs}
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjavajpeg.so
-%else
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjpeg.so
-%endif
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
-%ifarch %{sa_arches}
-%ifnarch %{zero_arches}
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
-%endif
-%endif
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/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
-%config(noreplace) %{etcjavadir -- %{?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/cldrdata.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
-%ifarch %{jfr_arches}
-%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc
-%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc
-%endif
-
-%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
-%ifarch %{jfr_arches}
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr
-%endif
-%if %is_system_jdk
-%if %{is_release_build -- %{?1}}
-%ghost %{_bindir}/java
-%ghost %{_jvmdir}/jre
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
-%ghost %{_bindir}/jjs
-%ghost %{_bindir}/keytool
-%ghost %{_bindir}/orbd
-%ghost %{_bindir}/pack200
-%ghost %{_bindir}/rmid
-%ghost %{_bindir}/rmiregistry
-%ghost %{_bindir}/servertool
-%ghost %{_bindir}/tnameserv
-%ghost %{_bindir}/unpack200
-%endif
-%endif
-}
-
-%define files_devel() %{expand:
-%defattr(-,root,root,-)
-%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
-%license %{_jvmdir}/%{sdkdir -- %{?1}}/LICENSE
-%license %{_jvmdir}/%{sdkdir -- %{?1}}/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
-%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
-%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/%{alt_java_name}
-%{_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
-%ifarch %{jfr_arches}
-%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr
-%endif
-%{_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/%{archinstall}
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
-%if %{with_systemtap}
-%{_jvmdir}/%{sdkdir -- %{?1}}/tapset
-%endif
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
-%ifarch %{sa_arches}
-%ifnarch %{zero_arches}
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
-%endif
-%endif
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
-%{_datadir}/applications/*jconsole%{?1}.desktop
-%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1*
-%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
-%if %{with_systemtap}
-%dir %{tapsetroot}
-%dir %{tapsetdirttapset}
-%dir %{tapsetdir}
-%{tapsetdir}/*%{_arch}%{?1}.stp
-%endif
-%if %is_system_jdk
-%if %{is_release_build -- %{?1}}
-%ghost %{_jvmdir}/java
-%ghost %{_bindir}/appletviewer
-%ghost %{_bindir}/clhsdb
-%ghost %{_bindir}/extcheck
-%ghost %{_bindir}/hsdb
-%ghost %{_bindir}/idlj
-%ghost %{_bindir}/jar
-%ghost %{_bindir}/jarsigner
-%ghost %{_bindir}/java
-%ghost %{_bindir}/java-rmi.cgi
-%ghost %{_bindir}/javac
-%ghost %{_bindir}/javadoc
-%ghost %{_bindir}/javah
-%ghost %{_bindir}/javap
-%ghost %{_bindir}/jcmd
-%ghost %{_bindir}/jconsole
-%ghost %{_bindir}/jdb
-%ghost %{_bindir}/jdeps
-%ghost %{_bindir}/jhat
-%ghost %{_bindir}/jinfo
-%ghost %{_bindir}/jjs
-%ghost %{_bindir}/jmap
-%ghost %{_bindir}/jps
-%ghost %{_bindir}/jrunscript
-%ghost %{_bindir}/jsadebugd
-%ghost %{_bindir}/jstack
-%ghost %{_bindir}/jstat
-%ghost %{_bindir}/jstatd
-%ghost %{_bindir}/keytool
-%ghost %{_bindir}/native2ascii
-%ghost %{_bindir}/orbd
-%ghost %{_bindir}/pack200
-%ghost %{_bindir}/policytool
-%ghost %{_bindir}/rmic
-%ghost %{_bindir}/rmid
-%ghost %{_bindir}/rmiregistry
-%ghost %{_bindir}/schemagen
-%ghost %{_bindir}/serialver
-%ghost %{_bindir}/servertool
-%ghost %{_bindir}/tnameserv
-%ghost %{_bindir}/unpack200
-%ghost %{_bindir}/wsgen
-%ghost %{_bindir}/wsimport
-%ghost %{_bindir}/xjc
-%endif
-%endif
-}
-
-
-%define files_demo() %{expand:
-%defattr(-,root,root,-)
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
-}
-
-%define files_src() %{expand:
-%defattr(-,root,root,-)
-%doc README.md
-%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
-}
-
-%define files_javadoc() %{expand:
-%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-#javadoc is in jdk8 noarch, so also license file must be treated like it
-%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
-%if %is_system_jdk
-%if %{is_release_build -- %{?1}}
-%ghost %{_javadocdir}/java
-%ghost %{_javadocdir}/java-%{origin}
-%ghost %{_javadocdir}/java-%{javaver}
-%ghost %{_javadocdir}/java-%{javaver}-%{origin}
-%endif
-%endif
-}
-
-%define files_javadoc_zip() %{expand:
-%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-#javadoc is in jdk8 noarch, so also license file must be treated like it
-%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
-%if %is_system_jdk
-%if %{is_release_build -- %{?1}}
-%ghost %{_javadocdir}/java-zip
-%ghost %{_javadocdir}/java-%{origin}.zip
-%ghost %{_javadocdir}/java-%{javaver}.zip
-%ghost %{_javadocdir}/java-%{javaver}-%{origin}.zip
-%endif
-%endif
-}
-
-# not-duplicated requires/provides/obsoletes for normal/debug packages
-%define java_rpo() %{expand:
-Requires: fontconfig%{?_isa}
-Requires: xorg-x11-fonts-Type1
-# Require libXcomposite explicitly since it's only dynamically loaded
-# at runtime. Fixes screenshot issues. See JDK-8150954.
-Requires: libXcomposite%{?_isa}
-# Requires rest of java
-Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# for java-X-openjdk package's desktop binding
-%if 0%{?fedora} || 0%{?rhel} >= 8
-Recommends: gtk2%{?_isa}
-%endif
-
-Provides: java-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-
-# Standard JPackage base provides
-Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre%{?1} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-%define java_headless_rpo() %{expand:
-# Require /etc/pki/java/cacerts
-Requires: ca-certificates
-# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
-Requires: javapackages-filesystem
-# 2022d required as of JDK-8294357
-# Should be bumped to 2022e once available (JDK-8295173)
-Requires: tzdata-java >= 2022d
-# for support of kernel stream control
-# libsctp.so.1 is being `dlopen`ed on demand
-Requires: lksctp-tools%{?_isa}
-%if ! 0%{?flatpak}
-# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
-# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
-# considered as regression
-Requires: copy-jdk-configs >= 4.0
-OrderWithRequires: copy-jdk-configs
-%endif
-# for printing support
-Requires: cups-libs
-# for FIPS PKCS11 provider
-Requires: nss
-# for system security properties
-Requires: crypto-policies
-# Post requires alternatives to install tool alternatives
-Requires(post): %{alternatives_requires}
-# Postun requires alternatives to uninstall tool alternatives
-Requires(postun): %{alternatives_requires}
-# for optional support of kernel stream control, card reader and printing bindings
-%if 0%{?fedora} || 0%{?rhel} >= 8
-Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
-%endif
-
-# Standard JPackage base provides
-Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-%define java_devel_rpo() %{expand:
-# Requires base package
-Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install tool alternatives
-Requires(post): %{alternatives_requires}
-# Postun requires alternatives to uninstall tool alternatives
-Requires(postun): %{alternatives_requires}
-
-# Standard JPackage devel provides
-Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-%define java_demo_rpo() %{expand:
-Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-
-Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-%define java_javadoc_rpo() %{expand:
-OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install javadoc alternative
-Requires(post): %{alternatives_requires}
-# Postun requires alternatives to uninstall javadoc alternative
-Requires(postun): %{alternatives_requires}
-
-# Standard JPackage javadoc provides
-Provides: java-%{javaver}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-%define java_src_rpo() %{expand:
-Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-
-# Standard JPackage sources provides
-Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
-%if %is_system_jdk
-Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
-%endif
-}
-
-
-# Prevent brp-java-repack-jars from being run
+# Prevent brp-java-repack-jars from being run.
%global __jar_repack 0
-Name: java-%{javaver}-%{origin}
+# portables have grown out of its component, moving back to java-x-vendor
+# this expression, when declared as global, filled component with java-x-vendor portable
+%define component %(echo %{name} | sed "s;-portable;;g")
+
+Name: java-%{javaver}-%{origin}-portable
Version: %{javaver}.%{updatever}.%{buildver}
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons
@@ -1409,7 +443,8 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 1
-Summary: %{origin_nice} %{majorver} Runtime Environment
+Summary: %{origin_nice} %{majorver} Runtime Environment portable edition
+Group: Development/Languages
# HotSpot code is licensed under GPLv2
# JDK library code is licensed under GPLv2 with the Classpath exception
@@ -1443,17 +478,20 @@ Source7: NEWS
# Use 'icedtea_sync.sh' to update the following
# They are based on code contained in the IcedTea project (3.x).
# Systemtap tapsets. Zipped up to keep it small.
-Source8: tapsets-icedtea-%{icedteaver}.tar.xz
+# Disabled in portables
+#Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
# Desktop files. Adapted from IcedTea
-Source9: jconsole.desktop.in
-Source10: policytool.desktop.in
+# Disabled in portables
+#Source9: jconsole.desktop.in
+#Source10: policytool.desktop.in
# nss configuration file
Source11: nss.cfg.in
# Removed libraries that we link instead
-Source12: %{name}-remove-intree-libraries.sh
+# Disabled in portables
+#Source12: %%{name}-remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
@@ -1473,7 +511,8 @@ Source17: nss.fips.cfg.in
# Ensure translations are available for new timezones
Source18: TestTranslations.java
-Source20: repackReproduciblePolycies.sh
+# Disabled in portables
+#Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
@@ -1652,6 +691,7 @@ BuildRequires: elfutils-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: gcc-c++
+BuildRequires: libstdc++-static
BuildRequires: gdb
BuildRequires: libxslt
BuildRequires: libX11-devel
@@ -1664,10 +704,11 @@ BuildRequires: libXtst-devel
# Requirement for setting up nss.cfg and nss.fips.cfg
BuildRequires: nss-devel
# Requirement for system security property test
-BuildRequires: crypto-policies
+#BuildRequires: crypto-policies
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
+BuildRequires: tar
BuildRequires: unzip
# Require a boot JDK which doesn't fail due to RH1482244
BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
@@ -1681,291 +722,58 @@ BuildRequires: tzdata-java >= 2022d
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
+# cacerts build requirement.
+BuildRequires: ca-certificates
+BuildRequires: openssl
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
-%if %{system_libs}
-BuildRequires: giflib-devel
-BuildRequires: lcms2-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
-%else
-# Version in jdk/src/share/native/sun/awt/giflib/gif_lib.h
-Provides: bundled(giflib) = 5.2.1
-# Version in jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h
-Provides: bundled(lcms2) = 2.10.0
-# Version in jdk/src/share/native/sun/awt/image/jpeg/jpeglib.h
-Provides: bundled(libjpeg) = 6b
-# Version in jdk/src/share/native/sun/awt/libpng/png.h
-Provides: bundled(libpng) = 1.6.37
-# We link statically against libstdc++ to increase portability
-BuildRequires: libstdc++-static
-%endif
-# Version in jdk/src/share/native/sun/font/layout/LEStandalone.h
-Provides: bundled(icu) = 4.6
-
-# this is always built, also during debug-only build
-# when it is built in debug-only this package is just placeholder
-%{java_rpo %{nil}}
-
-# Fix upgrade path after removal of accessibility subpackage
-# on commit 0c79c1451ef42c540682fb75329a92bb110609e7
-# As main accessibility was requiring main package, main package now have to
-# obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug, fastdebug} <
1:1.8.0.292.b06
-# otherwise update fails
-Obsoletes: java-1.8.0-openjdk-accessibility < 1:1.8.0.292.b06
-Obsoletes: java-1.8.0-openjdk-accessibility-slowdebug < 1:1.8.0.292.b06
-Obsoletes: java-1.8.0-openjdk-accessibility-fastdebug < 1:1.8.0.292.b06
%description
-The %{origin_nice} %{majorver} runtime environment.
-
-%if %{include_debug_build}
-%package slowdebug
-Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
-
-%{java_rpo -- %{debug_suffix_unquoted}}
-%description slowdebug
-The %{origin_nice} %{majorver} runtime environment.
-%{debug_warning}
-%endif
-
-%if %{include_fastdebug_build}
-%package fastdebug
-Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
-Group: Development/Languages
-
-%{java_rpo -- %{fastdebug_suffix_unquoted}}
-%description fastdebug
-The %{origin_nice} %{majorver} runtime environment.
-%{fastdebug_warning}
-%endif
-
-%if %{include_normal_build}
-%package headless
-Summary: %{origin_nice} %{majorver} Headless Runtime Environment
-
-%{java_headless_rpo %{nil}}
-
-%description headless
-The %{origin_nice} %{majorver} runtime environment without audio and video support.
-%endif
-
-%if %{include_debug_build}
-%package headless-slowdebug
-Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
-
-%{java_headless_rpo -- %{debug_suffix_unquoted}}
-
-%description headless-slowdebug
-The %{origin_nice} %{majorver} runtime environment without audio and video support.
-%{debug_warning}
-%endif
-
-%if %{include_fastdebug_build}
-%package headless-fastdebug
-Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
-Group: Development/Languages
-
-%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
-
-%description headless-fastdebug
-The %{origin_nice} %{majorver} runtime environment without audio and video support.
-%{fastdebug_warning}
-%endif
+The %{origin_nice} %{majorver} runtime environment - portable edition
%if %{include_normal_build}
%package devel
-Summary: %{origin_nice} %{majorver} Development Environment
-
-%{java_devel_rpo %{nil}}
-
+Summary: %{origin_nice} %{majorver} Development Environment portable edition
+Group: Development/Tools
%description devel
-The %{origin_nice} %{majorver} development tools.
+The %{origin_nice} %{majorver} development tools - portable edition
%endif
%if %{include_debug_build}
-%package devel-slowdebug
-Summary: %{origin_nice} %{majorver} Development Environment %{debug_on}
-
-%{java_devel_rpo -- %{debug_suffix_unquoted}}
+%package slowdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment portable edition %{debug_on}
+Group: Development/Languages
+%description slowdebug
+The %{origin_nice} %{majorver} runtime environment - portable edition
+%{debug_warning}
+%package devel-slowdebug
+Summary: %{origin_nice} %{majorver} Development Environment portable edition %{debug_on}
+Group: Development/Tools
%description devel-slowdebug
-The %{origin_nice} %{majorver} development tools.
+The %{origin_nice} %{majorver} development tools - portable edition
%{debug_warning}
%endif
%if %{include_fastdebug_build}
+%package fastdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment portable edition %{fastdebug_on}
+Group: Development/Languages
+%description fastdebug
+The %{origin_nice} %{majorver} runtime environment - portable edition
+%{fastdebug_warning}
+
%package devel-fastdebug
-Summary: %{origin_nice} %{majorver} Development Environment %{fastdebug_on}
+Summary: %{origin_nice} %{majorver} Development Environment portable edition
%{fastdebug_on}
Group: Development/Tools
-
-%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
-
%description devel-fastdebug
-The %{origin_nice} %{majorver} development tools.
+The %{origin_nice} %{majorver} development tools - portable edition
%{fastdebug_warning}
%endif
-%if %{include_normal_build}
-%package demo
-Summary: %{origin_nice} %{majorver} Demos
-
-%{java_demo_rpo %{nil}}
-
-%description demo
-The %{origin_nice} %{majorver} demos.
-%endif
-
-%if %{include_debug_build}
-%package demo-slowdebug
-Summary: %{origin_nice} %{majorver} Demos %{debug_on}
-
-%{java_demo_rpo -- %{debug_suffix_unquoted}}
-
-%description demo-slowdebug
-The %{origin_nice} %{majorver} demos.
-%{debug_warning}
-%endif
-
-%if %{include_fastdebug_build}
-%package demo-fastdebug
-Summary: %{origin_nice} %{majorver} Demos %{fastdebug_on}
-Group: Development/Languages
-
-%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
-
-%description demo-fastdebug
-The %{origin_nice} %{majorver} demos.
-%{fastdebug_warning}
-%endif
-
-%if %{include_normal_build}
-%package src
-Summary: %{origin_nice} %{majorver} Source Bundle
-
-%{java_src_rpo %{nil}}
-
-%description src
-The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{majorver}
-class library source code for use by IDE indexers and debuggers.
-%endif
-
-%if %{include_debug_build}
-%package src-slowdebug
-Summary: %{origin_nice} %{majorver} Source Bundle %{for_debug}
-
-%{java_src_rpo -- %{debug_suffix_unquoted}}
-
-%description src-slowdebug
-The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver}
- class library source code for use by IDE indexers and debuggers, %{for_debug}.
-%endif
-
-%if %{include_fastdebug_build}
-%package src-fastdebug
-Summary: %{origin_nice} %{majorver} Source Bundle %{for_fastdebug}
-Group: Development/Languages
-
-%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
-
-%description src-fastdebug
-The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice}
%{majorver}
- class library source code for use by IDE indexers and debuggers, %{for_fastdebug}.
-%endif
-
-
-%if %{include_normal_build}
-%package javadoc
-Summary: %{origin_nice} %{majorver} API documentation
-Requires: javapackages-filesystem
-Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
-BuildArch: noarch
-
-%{java_javadoc_rpo -- %{nil} -zip}
-%{java_javadoc_rpo -- %{nil} %{nil}}
-
-%description javadoc
-The %{origin_nice} %{majorver} API documentation.
-%endif
-
-%if %{include_normal_build}
-%package javadoc-zip
-Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
-Requires: javapackages-filesystem
-Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
-BuildArch: noarch
-
-%{java_javadoc_rpo -- %{nil} %{nil}}
-
-%description javadoc-zip
-The %{origin_nice} %{majorver} API documentation compressed in a single archive.
-%endif
-
-%if %{with_openjfx_binding}
-%package openjfx
-Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
-Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8%{?_isa}
-Provides: javafx = %{epoch}:%{version}-%{release}
-%description openjfx
-Set of links from OpenJDK (jre) to OpenJFX
-
-%package openjfx-devel
-Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
-Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8-devel%{?_isa}
-Provides: javafx-devel = %{epoch}:%{version}-%{release}
-%description openjfx-devel
-Set of links from OpenJDK (sdk) to OpenJFX
-
-%if %{include_debug_build}
-%package openjfx-slowdebug
-Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-slowdebug
-Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8%{?_isa}
-Provides: javafx-slowdebug = %{epoch}:%{version}-%{release}
-%description openjfx-slowdebug
-Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
-
-%package openjfx-devel-slowdebug
-Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-slowdebug
-Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8-devel%{?_isa}
-Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release}
-%description openjfx-devel-slowdebug
-Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
-%endif
-
-%if %{include_fastdebug_build}
-%package openjfx-fastdebug
-Summary: OpenJDK x OpenJFX connector %{for_fastdebug}. his package adds symliks finishing
Java FX integration to %{name}-fastdebug
-Requires: %{name}-fastdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8%{?_isa}
-Provides: javafx-fastdebug = %{epoch}:%{version}-%{release}
-%description openjfx-fastdebug
-Set of links from OpenJDK-fastdebug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
-
-%package openjfx-devel-fastdebug
-Summary: OpenJDK x OpenJFX connector for FX developers %{for_fastdebug}. This package
adds symliks finishing Java FX integration to %{name}-devel-slowdebug
-Requires: %{name}-devel-fastdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx8-devel%{?_isa}
-Provides: javafx-devel-fastdebug = %{epoch}:%{version}-%{release}
-%description openjfx-devel-fastdebug
-Set of links from OpenJDK-fastdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
-%endif
-%endif
-
%prep
-
-# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
-%if 0%{?stapinstall:1}
- echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap
install directory: %{stapinstall}"
-%else
- %{error:Unrecognised architecture %{_target_cpu}}
-%endif
-
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
echo "include_normal_build is %{include_normal_build}"
else
@@ -2013,18 +821,16 @@ cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
# OpenJDK patches
-%if %{system_libs}
+# portables uses in tree versions
# Remove libraries that are linked
-sh %{SOURCE12}
-%endif
+#sh %{SOURCE12}
+# Do not enable them, they do not work properly with bundled option
# System library fixes
-%if %{system_libs}
-%patch201
-%patch202
-%patch203
-%patch204
-%endif
+#%patch201
+#%patch202
+#%patch203
+#%patch204
%patch5
@@ -2104,22 +910,7 @@ done
%endif
# Prepare desktop files
-# The _X_ syntax indicates variables that are replaced by make upstream
-# The @X@ syntax indicates variables that are replaced by configure upstream
-for suffix in %{build_loop} ; do
-for file in %{SOURCE9} %{SOURCE10} ; do
- FILE=`basename $file | sed -e s:\.in$::g`
- EXT="${FILE##*.}"
- NAME="${FILE%.*}"
- OUTPUT_FILE=$NAME$suffix.$EXT
- sed -e "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
- sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
- sed -i -e "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE
- sed -i -e "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g"
$OUTPUT_FILE
- sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE
- sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
-done
-done
+# Portables do not have desktop integration
# Setup nss.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
@@ -2127,6 +918,10 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
# Setup nss.fips.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
+# Setup security policy
+#Commented because NA to portable
+#sed -i -e
"s:^security.systemCACerts=.*:security.systemCACerts=%{cacerts_file}:"
%{security_file}
+
%build
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
@@ -2146,14 +941,12 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
EXTRA_CFLAGS="%ourcppflags -Wno-error"
-EXTRA_CPP_FLAGS="%ourcppflags"
-
+EXTRA_CPP_FLAGS="%ourcppflags -fno-tree-vrp"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
-
-EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes"
+EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa"
export EXTRA_CFLAGS EXTRA_ASFLAGS
(cd %{top_level_dir_name}/common/autoconf
@@ -2163,20 +956,14 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
local buildjdk=${2}
- local maketargets="${3}"
+ local maketargets=${3}
local debuglevel=${4}
- local link_opt=${5}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
local top_builddir_abs_path=$(pwd)/${outputdir}
- if [ "x${link_opt}" = "xbundled" ] ; then
- libc_link_opt="static";
- else
- libc_link_opt="dynamic";
- fi
-
+ echo "Using output directory: ${outputdir}";
echo "Checking build JDK ${buildjdk} is operational..."
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
@@ -2193,7 +980,8 @@ function buildjdk() {
%ifarch %{zero_arches}
--with-jvm-variants=zero \
%endif
- --with-native-debug-symbols=internal \
+ --with-cacerts-file=`readlink -f %{_sysconfdir}/pki/java/cacerts` \
+ --with-native-debug-symbols=$debug_symbols \
--with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
@@ -2205,14 +993,9 @@ function buildjdk() {
--with-debug-level=${debuglevel} \
--disable-sysconf-nss \
--enable-unlimited-crypto \
- --with-zlib=${link_opt} \
- --with-giflib=${link_opt} \
-%if %{with system_libs}
- --with-libjpeg=${link_opt} \
- --with-libpng=${link_opt} \
- --with-lcms=${link_opt} \
-%endif
- --with-stdc++lib=${libc_link_opt} \
+ --with-zlib=bundled \
+ --with-giflib=bundled \
+ --with-stdc++lib=static \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-extra-asflags="$EXTRA_ASFLAGS" \
@@ -2223,18 +1006,20 @@ function buildjdk() {
cat hotspot-spec.gmk
make \
- JAVAC_FLAGS=-g \
- LOG=trace \
- SCTP_WERROR= \
- ${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
-
- popd
+ LOG=trace \
+ SCTP_WERROR= \
+ $maketargets || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
+ popd
}
function installjdk() {
local outputdir=${1}
local installdir=${2}
- local imagepath=${installdir}/images/%{jdkimage}
+ #Changed as far portable need. We use this for setting JAVA_HOME and JRE_HOME
+ local imagepath=$(pwd)/${installdir}
+
+ local toplevel_build_dir=$(pwd)
+ local top_builddir_abs_path=$(pwd)/${outputdir}
echo "Installing build from ${outputdir} to ${installdir}..."
mkdir -p ${installdir}
@@ -2254,46 +1039,70 @@ function installjdk() {
rm -rf ${outputdir}
%endif
- if [ -d ${imagepath} ] ; then
- # the build (erroneously) removes read permissions from some jars
- # this is a regression in OpenJDK 7 (our compiler):
- #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
- find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \;
- chmod ugo+r ${imagepath}/lib/ct.sym
-
- # remove redundant *diz and *debuginfo files
- find ${imagepath} -iname '*.diz' -exec rm -v {} \;
- find ${imagepath} -iname '*.debuginfo' -exec rm -v {} \;
-
- # Build screws up permissions on binaries
- #
https://bugs.openjdk.java.net/browse/JDK-8173610
- find ${imagepath} -iname '*.so' -exec chmod +x {} \;
- find ${imagepath}/bin/ -exec chmod +x {} \;
-
- # Install nss.cfg right away as we will be using the JRE above
- install -m 644 nss.cfg ${imagepath}/jre/lib/security/
-
- # Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
- install -m 644 nss.fips.cfg ${imagepath}/jre/lib/security/
-
- # Turn on system security properties
- sed -i -e
"s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:"
\
- ${imagepath}/jre/lib/security/java.security
-
- # Use system-wide tzdata
- rm ${imagepath}/jre/lib/tzdb.dat
- ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/jre/lib/tzdb.dat
-
- # add alt-java man page
- pushd ${imagepath}
- echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
- cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
- popd
-
- # Print release information
- cat ${imagepath}/release
-
+ # the build (erroneously) removes read permissions from some jars
+ # this is a regression in OpenJDK 7 (our compiler):
+ #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+ find ${imagepath}/images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+ chmod ugo+r ${imagepath}/images/%{jdkimage}/lib/ct.sym
+
+ # Build screws up permissions on binaries
+ #
https://bugs.openjdk.java.net/browse/JDK-8173610
+ find ${imagepath}/images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
+ find ${imagepath}/images/%{jdkimage}/bin/ -exec chmod +x {} \;
+
+ # Install nss.cfg right away as we will be using the JRE above
+ export JAVA_HOME=${imagepath}/images/%{jdkimage}
+ export JRE_HOME=${imagepath}/images/%{jreimage} #portable specific
+
+ install -m 644 ${toplevel_build_dir}/nss.cfg ${JAVA_HOME}/jre/lib/security/
+ install -m 644 ${toplevel_build_dir}/nss.cfg ${JRE_HOME}/lib/security/ #portable
specific
+ # Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
+ install -m 644 ${toplevel_build_dir}/nss.fips.cfg ${JAVA_HOME}/jre/lib/security/
+ install -m 644 ${toplevel_build_dir}/nss.fips.cfg ${JRE_HOME}/lib/security/ #portable
specific
+
+ # System security properties are disabled by default on portable.
+ # Turn on system security properties
+ #sed -i -e
"s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:"
\
+ #${imagepath}/jre/lib/security/java.security
+
+ pushd ${imagepath}/images
+ if [ "x$suffix" == "x" ] ; then
+ nameSuffix=""
+ else
+ nameSuffix=`echo "$suffix"| sed s/-/./`
+ fi
+ cp %{SOURCE7} %{jreimage}/
+ cp %{SOURCE7} %{jdkimage}/
+ for dir in %{jdkimage} %{jreimage} ; do
+ # add alt-java man page
+ echo "Hardened java binary recommended for launching untrusted code from the
Web e.g. javaws" > "$dir"/man/man1/%{alt_java_name}.1
+ cat "$dir"/man/man1/java.1 >>
"$dir"/man/man1/%{alt_java_name}.1
+ done
+ mv %{jreimage} %{jreportablename -- "$nameSuffix"}
+ tar -cJf ../../../../../%{jreportablearchive -- "$nameSuffix"}
--exclude='**.debuginfo' %{jreportablename -- "$nameSuffix"}
+ sha256sum ../../../../../%{jreportablearchive -- "$nameSuffix"} >
../../../../../%{jreportablearchive -- "$nameSuffix"}.sha256sum
+ if [ "x$suffix" == "x" ] ; then
+ dnameSuffix="$nameSuffix".debuginfo
+ tar -cJf ../../../../../%{jreportablearchive -- "$dnameSuffix"} $(find
%{jreportablename -- "$nameSuffix"}/ -name \*.debuginfo)
+ sha256sum ../../../../../%{jreportablearchive -- "$dnameSuffix"} >
../../../../../%{jreportablearchive -- "$dnameSuffix"}.sha256sum
fi
+ mv %{jreportablename -- "$nameSuffix"} %{jreimage}
+ mv %{jdkimage} %{jdkportablename -- "$nameSuffix"}
+ srcs=$(find %{jdkportablename -- "$nameSuffix"} | grep -v /demo/ | grep
/src.zip$)
+ test `echo "$srcs" | wc -l` -eq 1
+ tar -cJf ../../../../../%{jdkportablearchive -- "$nameSuffix"}
--exclude='**.debuginfo' %{jdkportablename -- "$nameSuffix"}
+ sha256sum ../../../../../%{jdkportablearchive -- "$nameSuffix"} >
../../../../../%{jdkportablearchive -- "$nameSuffix"}.sha256sum
+ if [ "x$suffix" == "x" ] ; then
+ dnameSuffix="$nameSuffix".debuginfo
+ tar -cJf ../../../../../%{jdkportablearchive -- "$dnameSuffix"} $(find
%{jdkportablename -- "$nameSuffix"}/ -name \*.debuginfo)
+ sha256sum ../../../../../%{jdkportablearchive -- "$dnameSuffix"} >
../../../../../%{jdkportablearchive -- "$dnameSuffix"}.sha256sum
+ fi
+ mv %{jdkportablename -- "$nameSuffix"} %{jdkimage}
+ popd #images
+
+ # Print release information
+ # Tweaked as per portable directory structure
+ cat ${imagepath}/images/%{jreimage}/release
}
%if %{build_hotspot_first}
@@ -2309,16 +1118,17 @@ function installjdk() {
for suffix in %{build_loop} ; do
if [ "x$suffix" = "x" ] ; then
debugbuild=release
+ debug_symbols=external
else
# change --something to something
debugbuild=`echo $suffix | sed "s/-//g"`
+ debug_symbols=internal
fi
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
-link_opt="%{link_type}"
# Debug builds don't need same targets as release for
# build speed-up. We also avoid bootstrapping these
@@ -2332,13 +1142,13 @@ else
fi
if ${run_bootstrap} ; then
- buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
${link_opt}
+ buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
installjdk ${bootbuilddir} ${bootinstalldir}
- buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild} ${link_opt}
+ buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}}
else
- buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt}
+ buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
installjdk ${builddir} ${installdir}
fi
@@ -2366,9 +1176,14 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed
"s|\.java||")
$JAVA_HOME/bin/javac -d . %{SOURCE15}
export PROG=$(echo $(basename %{SOURCE15})|sed "s|\.java||")
export SEC_DEBUG="-Djava.security.debug=properties"
-$JAVA_HOME/bin/java ${SEC_DEBUG} ${PROG} true
+# Portable specific: set false whereas its true for upstream
+$JAVA_HOME/bin/java ${SEC_DEBUG} ${PROG} false
$JAVA_HOME/bin/java ${SEC_DEBUG} -Djava.security.disableSystemPropertiesFile=true ${PROG}
false
+# Check correct vendor values have been set
+$JAVA_HOME/bin/javac -d . %{SOURCE16}
+$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||")
"%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
+
# Check java launcher has no SSB mitigation
if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
@@ -2379,16 +1194,39 @@ nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false;
fi
%endif
-# Check correct vendor values have been set
-$JAVA_HOME/bin/javac -d . %{SOURCE16}
-$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||")
"%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
-
# Check translations are available for new timezones
$JAVA_HOME/bin/javac -d . %{SOURCE18}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
+# debug-symbols are only in debug build
+if [ "x$suffix" == "x" ] ; then
+ invert="-v"
+else
+ invert=""
+fi
+# Check debug symbols are present and can identify code
+SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
+if [ -f "$SERVER_JVM" ] ; then
+ nm -aCl "$SERVER_JVM" | grep $invert javaCalls.cpp
+fi
+CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
+if [ -f "$CLIENT_JVM" ] ; then
+ nm -aCl "$CLIENT_JVM" | grep $invert javaCalls.cpp
+fi
+ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
+if [ -f "$ZERO_JVM" ] ; then
+ nm -aCl "$ZERO_JVM" | grep $invert javaCalls.cpp
+fi
+
+# debug-symbols are only in debug portable build
+if [ "x$suffix" == "x" ] ; then
+ so_suffix="debuginfo"
+else
+ so_suffix="so"
+fi
+
# Check debug symbols are present and can identify code
-find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
+find "$JAVA_HOME" -iname "*.$so_suffix" -print0 | while read -d
$'\0' lib
do
if [ -f "$lib" ] ; then
echo "Testing $lib for debug symbols"
@@ -2459,2664 +1297,104 @@ jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
# Check class files include useful debugging information
$JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
$JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable
-$JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
+$JAVA_HOME/bin/javap -l java.lang.Object | grep $invert LocalVariableTable
# Check generated class files include useful debugging information
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
-$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep $invert LocalVariableTable
# build cycles check
done
%install
-STRIP_KEEP_SYMTAB=libjvm*
+rm -rf $RPM_BUILD_ROOT
for suffix in %{build_loop} ; do
-
-# Install the jdk
-pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
-
-# Install jsa directories so we can owe them
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
-
- # Install main files.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
- cp -a bin include lib src.zip {ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
- cp -a jre/bin jre/lib jre/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
-
-%if %{with_systemtap}
- # Install systemtap support files
- install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
- # note, that uniquesuffix is in BUILD dir in this case
- cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
- tapsetFiles=`ls *.stp`
- popd
- install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
- for name in $tapsetFiles ; do
- targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
- ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name
$RPM_BUILD_ROOT%{tapsetdir}/$targetName
- done
-%endif
-
- # Remove empty cacerts database
- rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
- # Install cacerts symlink needed by some apps which hardcode the path
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
- ln -sf /etc/pki/java/cacerts .
- popd
-
- # Install versioned symlinks
- pushd $RPM_BUILD_ROOT%{_jvmdir}
- ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
- popd
-
- # Remove javaws man page
- rm -f man/man1/javaws*
-
- # Install man pages
- install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
- for manpage in man/man1/*
- do
- # Convert man pages to UTF8 encoding
- iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
- mv -f $manpage.tmp $manpage
- install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
- $manpage .1)-%{uniquesuffix -- $suffix}.1
- done
-
- # Install demos and samples.
- cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
- mkdir -p sample/rmi
- if [ ! -e sample/rmi/java-rmi.cgi ] ; then
- # hack to allow --short-circuit on install
- mv bin/java-rmi.cgi sample/rmi
+ if [ "x$suffix" == "x" ] ; then
+ nameSuffix=""
+ else
+ nameSuffix=`echo "$suffix"| sed s/-/./`
fi
- cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
-
-popd
-
-if ! echo $suffix | grep -q "debug" ; then
- # Install Javadoc documentation
- install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
- cp -a %{installoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
- built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
- cp -a %{installoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
-fi
-
-# Install release notes
-commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
-install -d -m 755 ${commondocdir}
-cp -a %{SOURCE7} ${commondocdir}
-
-# Install icons and menu entries
-for s in 16 24 32 48 ; do
- install -D -p -m 644 \
- %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
-
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
-done
-
-# Install desktop files
-install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
-for e in jconsole$suffix policytool$suffix ; do
- desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
- --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
-done
-
-# Install /etc/.java/.systemPrefs/ directory
-# See
https://bugzilla.redhat.com/show_bug.cgi?id=741821
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
-
-# FIXME: remove SONAME entries from demo DSOs. See
-#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
-
-# Find non-documentation demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
- -type f -o -type l | sort \
- | grep -v README \
- | sed 's|'$RPM_BUILD_ROOT'||' \
- >> %{name}-demo.files"$suffix"
-# Find documentation demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
- -type f -o -type l | sort \
- | grep README \
- | sed 's|'$RPM_BUILD_ROOT'||' \
- | sed 's|^|%doc |' \
- >> %{name}-demo.files"$suffix"
-# Find demo directories.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
- -type d | sort \
- | sed 's|'$RPM_BUILD_ROOT'||' \
- | sed 's|^|%dir |' \
- >> %{name}-demo.files"$suffix"
-
-# intentionally after all else, fx links with redirections on its own
-%if %{with_openjfx_binding}
- FXSDK_FILES=%{name}-openjfx-devel.files"$suffix"
- FXJRE_FILES=%{name}-openjfx.files"$suffix"
- echo -n "" > $FXJRE_FILES
- echo -n "" > $FXSDK_FILES
- for file in %{jfx_jre_libs} ; do
- srcfile=%{jfx_jre_libs_dir}/$file
- targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file
- ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
- echo $targetfile >> $FXJRE_FILES
- done
- for file in %{jfx_jre_native} ; do
- srcfile=%{jfx_jre_native_dir}/$file
- targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file
- ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
- echo $targetfile >> $FXJRE_FILES
- done
- for file in %{jfx_jre_exts} ; do
- srcfile=%{jfx_jre_exts_dir}/$file
- targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file
- ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
- echo $targetfile >> $FXJRE_FILES
- done
- for file in %{jfx_sdk_libs} ; do
- srcfile=%{jfx_sdk_libs_dir}/$file
- targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file
- ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
- echo $targetfile >> $FXSDK_FILES
- done
- for file in %{jfx_sdk_bins} ; do
- srcfile=%{jfx_sdk_bins_dir}/$file
- targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file
- ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
- echo $targetfile >> $FXSDK_FILES
- done
-%endif
-
-bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
-touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/security/java.security
-
-# moving config files to /etc
-mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
-mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
-for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg lib/security/nss.fips.cfg lib/net.properties
; do
- mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
$RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
- ln -sf %{etcjavadir -- $suffix}/$file
$RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
+ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
+ cp -af openjdk/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
+ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}
+ mv ../../%{jreportablearchive -- "$nameSuffix"} $RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jreportablearchive -- "$nameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jdkportablearchive -- "$nameSuffix"} $RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jdkportablearchive -- "$nameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
+ if [ "x$suffix" == "x" ] ; then
+ dnameSuffix="$nameSuffix".debuginfo
+ mv ../../%{jreportablearchive -- "$dnameSuffix"}
$RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jreportablearchive -- "$dnameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jdkportablearchive -- "$dnameSuffix"}
$RPM_BUILD_ROOT%{_jvmdir}/
+ mv ../../%{jdkportablearchive -- "$dnameSuffix"}.sha256sum
$RPM_BUILD_ROOT%{_jvmdir}/
+ fi
+# To show sha in the build log
+for file in `ls $RPM_BUILD_ROOT%{_jvmdir}/*.sha256sum` ; do ls -l $file ; cat $file ;
done
done
-# stabilize permissions
-find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod
755 {} \; ;
-find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
-find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
-find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec
chmod 644 {} \; ;
-find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"THIRD_PARTY_README" -exec chmod 644 {} \; ;
-
-# end, dual install
-done
-
-%if %{include_normal_build}
-# intentionally only for non-debug
-%pretrans headless -p <lua>
--- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
--- see
https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
--- if copy-jdk-configs is in transaction, it installs in pretrans to temp
--- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction
and so is
--- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
--- whether copy-jdk-configs is installed or not. If so, then configs are copied
--- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
-local posix = require "posix"
-
-if (os.getenv("debug") == "true") then
- debug = true;
- print("cjc: in spec debug is on")
-else
- debug = false;
-end
-
-SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
-SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
-
-local stat1 = posix.stat(SOURCE1, "type");
-local stat2 = posix.stat(SOURCE2, "type");
-
- if (stat1 ~= nil) then
- if (debug) then
- print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this
one.")
- end;
- package.path = package.path .. ";" .. SOURCE1
-else
- if (stat2 ~= nil) then
- if (debug) then
- print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in
transaction. Using.")
- end;
- package.path = package.path .. ";" .. SOURCE2
- else
- if (debug) then
- print(SOURCE1 .." does NOT exists")
- print(SOURCE2 .." does NOT exists")
- print("No config files will be copied")
- end
- return
- end
-end
-arg = nil ; -- it is better to null the arg up, no meter if they exists or not, and use
cjc as module in unified way, instead of relaying on "main" method during
require "copy_jdk_configs.lua"
-cjc = require "copy_jdk_configs.lua"
-args = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
-cjc.mainProgram(args)
-
-%post
-%{post_script %{nil}}
-
-%post headless
-%{post_headless %{nil}}
-
-%postun
-%{postun_script %{nil}}
-
-%postun headless
-%{postun_headless %{nil}}
-
-%posttrans
-%{posttrans_script %{nil}}
-
-%posttrans headless
-%{alternatives_java_install %{nil}}
-
-%post devel
-%{post_devel %{nil}}
-
-%postun devel
-%{postun_devel %{nil}}
-
-%posttrans devel
-%{posttrans_devel %{nil}}
-
-%posttrans javadoc
-%{alternatives_javadoc_install %{nil}}
-
-%postun javadoc
-%{postun_javadoc %{nil}}
-
-%posttrans javadoc-zip
-%{alternatives_javadoczip_install %{nil}}
-
-%postun javadoc-zip
-%{postun_javadoc_zip %{nil}}
-%endif
-
-%if %{include_debug_build}
-%post slowdebug
-%{post_script -- %{debug_suffix_unquoted}}
-
-%post headless-slowdebug
-%{post_headless -- %{debug_suffix_unquoted}}
-
-%posttrans headless-slowdebug
-%{alternatives_java_install -- %{debug_suffix_unquoted}}
-
-%postun slowdebug
-%{postun_script -- %{debug_suffix_unquoted}}
-
-%postun headless-slowdebug
-%{postun_headless -- %{debug_suffix_unquoted}}
-
-%posttrans slowdebug
-%{posttrans_script -- %{debug_suffix_unquoted}}
-
-%post devel-slowdebug
-%{post_devel -- %{debug_suffix_unquoted}}
-
-%postun devel-slowdebug
-%{postun_devel -- %{debug_suffix_unquoted}}
-
-%posttrans devel-slowdebug
-%{posttrans_devel -- %{debug_suffix_unquoted}}
-%endif
-
-%if %{include_fastdebug_build}
-%post fastdebug
-%{post_script -- %{fastdebug_suffix_unquoted}}
-
-%post headless-fastdebug
-%{post_headless -- %{fastdebug_suffix_unquoted}}
-
-%postun fastdebug
-%{postun_script -- %{fastdebug_suffix_unquoted}}
-
-%postun headless-fastdebug
-%{postun_headless -- %{fastdebug_suffix_unquoted}}
-
-%posttrans fastdebug
-%{posttrans_script -- %{fastdebug_suffix_unquoted}}
-
-%posttrans headless-fastdebug
-%{alternatives_java_install -- %{fastdebug_suffix_unquoted}}
-
-%post devel-fastdebug
-%{post_devel -- %{fastdebug_suffix_unquoted}}
-
-%postun devel-fastdebug
-%{postun_devel -- %{fastdebug_suffix_unquoted}}
-
-%posttrans devel-fastdebug
-%{posttrans_devel -- %{fastdebug_suffix_unquoted}}
-
-%endif
+# printenv
%if %{include_normal_build}
%files
# main package builds always
-%{files_jre %{nil}}
+%{_jvmdir}/%{jreportablearchive -- %%{nil}}
+%{_jvmdir}/%{jreportablearchive -- .debuginfo}
+%{_jvmdir}/%{jreportablearchive -- %%{nil}}.sha256sum
+%{_jvmdir}/%{jreportablearchive -- .debuginfo}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%else
%files
# placeholder
%endif
%if %{include_normal_build}
-%files headless
-# important note, see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole
issue
-# all config/noreplace files (and more) have to be declared in pretrans. See pretrans
-%{files_jre_headless %{nil}}
-
%files devel
-%{files_devel %{nil}}
-
-%files demo -f %{name}-demo.files
-%{files_demo %{nil}}
-
-%files src
-%{files_src %{nil}}
-
-%files javadoc
-%{files_javadoc %{nil}}
-
-# This puts a huge documentation file in /usr/share
-# same for debug variant
-%files javadoc-zip
-%{files_javadoc_zip %{nil}}
-
-%if %{with_openjfx_binding}
-%files openjfx -f %{name}-openjfx.files
-
-%files openjfx-devel -f %{name}-openjfx-devel.files
-%endif
+%{_jvmdir}/%{jdkportablearchive -- %%{nil}}
+%{_jvmdir}/%{jdkportablearchive -- .debuginfo}
+%{_jvmdir}/%{jdkportablearchive -- %%{nil}}.sha256sum
+%{_jvmdir}/%{jdkportablearchive -- .debuginfo}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%endif
%if %{include_debug_build}
%files slowdebug
-%{files_jre -- %{debug_suffix_unquoted}}
-
-%files headless-slowdebug
-%{files_jre_headless -- %{debug_suffix_unquoted}}
+%{_jvmdir}/%{jreportablearchive -- .slowdebug}
+%{_jvmdir}/%{jreportablearchive -- .slowdebug}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%files devel-slowdebug
-%{files_devel -- %{debug_suffix_unquoted}}
-
-%files demo-slowdebug -f %{name}-demo.files-slowdebug
-%{files_demo -- %{debug_suffix_unquoted}}
-
-%files src-slowdebug
-%{files_src -- %{debug_suffix_unquoted}}
-
-%if %{with_openjfx_binding}
-%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug
-
-%files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug
-%endif
+%{_jvmdir}/%{jdkportablearchive -- .slowdebug}
+%{_jvmdir}/%{jdkportablearchive -- .slowdebug}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%endif
-
%if %{include_fastdebug_build}
%files fastdebug
-%{files_jre -- %{fastdebug_suffix_unquoted}}
-
-%files headless-fastdebug
-%{files_jre_headless -- %{fastdebug_suffix_unquoted}}
+%{_jvmdir}/%{jreportablearchive -- .fastdebug}
+%{_jvmdir}/%{jreportablearchive -- .fastdebug}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%files devel-fastdebug
-%{files_devel -- %{fastdebug_suffix_unquoted}}
-
-%files demo-fastdebug -f %{name}-demo.files-fastdebug
-%{files_demo -- %{fastdebug_suffix_unquoted}}
-
-%files src-fastdebug
-%{files_src -- %{fastdebug_suffix_unquoted}}
-
-%if %{with_openjfx_binding}
-%files openjfx-fastdebug -f %{name}-openjfx.files-fastdebug
-
-%files openjfx-devel-fastdebug -f %{name}-openjfx-devel.files-fastdebug
-%endif
+%{_jvmdir}/%{jdkportablearchive -- .fastdebug}
+%{_jvmdir}/%{jdkportablearchive -- .fastdebug}.sha256sum
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%endif
%changelog
-* Wed Oct 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b08-1
-- Update to shenandoah-jdk8u352-b08 (GA)
-- Update release notes for shenandoah-8u352-b08.
-- Switch to GA mode for final release.
-
-* Sun Oct 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.2.ea
-- Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173
-- Add test to ensure timezones can be translated
-
-* Wed Oct 12 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.1.ea
-- Update to shenandoah-jdk8u352-b07 (EA)
-- Update release notes for shenandoah-8u352-b07.
-- Switch to EA mode for 8u352 pre-release builds.
-- Rebase FIPS patch against 8u352-b07
-
-* Tue Aug 30 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-2
-- Switch to static builds, reducing system dependencies and making build more portable
-
-* Wed Aug 03 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-1
-- Update to shenandoah-jdk8u345-b01 (GA)
-- Update release notes for 8u345-b01.
-
-* Sun Jul 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b07-1
-- Update to shenandoah-jdk8u342-b07 (GA)
-- Update release notes for 8u342-b07.
-- Switch to GA mode for final release.
-- Exclude x86 where java_arches is undefined, in order to unbreak build
-
-* Fri Jul 22 2022 Jiri Vanek <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.4.ea
-- moved to build only on %%{java_arches}
---
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
-- reverted :
--- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild (always mess up
release)
--- Try to build on x86 again by creating a husk of a JDK which does not depend on itself
--- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
--- Reinstate demo package on x86
--- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
--- Replaced binaries and .so files with bash-stubs on i686
-- added ExclusiveArch: %%{java_arches}
--- this now excludes i686
--- this is safely backport-able to older fedoras, as the macro was backported proeprly
(with i686 included)
--
https://bugzilla.redhat.com/show_bug.cgi?id=2104129
-
-* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.342.b06-0.3.ea.1
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Tue Jul 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.3.ea
-- Reinstate demo package on x86
-
-* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
-- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
-
-* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
-- Try to build on x86 again by creating a husk of a JDK which does not depend on itself
-
-* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.1.ea
-- Update to shenandoah-jdk8u342-b06 (EA)
-- Update release notes for shenandoah-8u342-b06.
-- Switch to EA mode for 8u342 pre-release builds.
-- Print release file during build, which should now include a correct SOURCE value from
.src-rev
-- Update tarball script with IcedTea GitHub URL and .src-rev generation
-- Use "git apply" with patches in the tarball script to allow binary diffs
-- Remove redundant "REPOS" variable from tarball script
-- Include script to generate bug list for release notes
-- Update tzdata requirement to 2022a to match JDK-8283350
-
-* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-7
-- Rebase FIPS patches from fips branch and simplify by using a single patch from that
repository
-- * RH2051605: Detect NSS at Runtime for FIPS detection
-- * RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
-- * RH2090378: Revert to disabling system security properties and FIPS mode support
together
-- Turn off build-time NSS linking and go back to an explicit Requires on NSS
-- Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch
-- Perform configuration changes (e.g. nss.cfg, nss.fips.cfg, tzdb.dat) in installjdk
-- Enable system security properties in the RPM (now disabled by default in the FIPS
repo)
-- Improve security properties test to check both enabled and disabled behaviour
-- Run security properties test with property debugging on
-- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
-
-* Thu Jul 14 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-6
-- Explicitly require crypto-policies during build and runtime for system security
properties
-
-* Thu Jul 14 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.332.b09-5
-- Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal
on that architecture:
--
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
-
-* Thu Jul 14 2022 FeRD (Frank Dana) <ferdnyc(a)gmail.com> - 1:1.8.0.332.b09-4
-- Add javaver- and origin-specific javadoc and javadoczip alternatives.
-
-* Fri Jul 01 2022 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.332.b09-3
-- Disable copy-jdk-configs for Flatpak builds
-- Fix flatpak builds by exempting them from bootstrap
-
-* Thu Jun 30 2022 Francisco Ferrari Bihurriet <fferrari(a)redhat.com> -
1:1.8.0.332.b09-2
-- RH2007331: SecretKey generate/import operations don't add the CKA_SIGN attribute in
FIPS mode
-
-* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-1
-- Update to shenandoah-jdk8u332-b09 (GA)
-- Update release notes for 8u332-b09.
-- Switch to GA mode for final release.
-
-* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b06-0.1.ea
-- Update to shenandoah-jdk8u332-b06 (EA)
-- Update release notes for shenandoah-8u332-b06.
-
-* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b01-0.1.ea
-- Update to shenandoah-jdk8u332-b01 (EA)
-- Update release notes for shenandoah-8u332-b01.
-- Switch to EA mode.
-
-* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
-- Reinstate JIT builds on x86_32.
-- Add JDK-8282231 to fix missing CALL effects on x86_32.
-
-* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
-- Storing and restoring alterntives during update manually
-- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
--- The move of alternatives creation to posttrans to fix:
--- Bug 1200302 - dnf reinstall breaks alternatives
--- Had caused the alternatives to be removed, and then created again,
--- instead of being added, and then removing the old, and thus persisting
--- the selection in family
--- Thus this fix, is storing the family of manually selected master, and if
--- stored, then it is restoring the family of the master
-
-* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
-- Family extracted to globals
-
-* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
-- javadoc-zip got its own provides next to plain javadoc ones
-
-* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
-- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
-
-* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
-- Fix FIPS issues in native code and with initialisation of java.security.Security
-
-* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
-- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
-- Update release notes for 8u322-b06.
-- Switch to GA mode for final release.
-
-* Tue Feb 15 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b05-0.1.ea
-- Update to aarch64-shenandoah-jdk8u322-b05 (EA)
-- Update release notes for 8u322-b05.
-- Require tzdata 2021e as of JDK-8275766.
-- Update tarball generation script to use git following shenandoah-jdk8u's move to
github
-
-* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b04-0.3.ea
-- Re-enable gdb backtrace check.
-
-* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
-- Temporarily move x86 to use Zero in order to get a working build
-- Introduce architecture restriction logic for the gdb test. (RH2041970)
-- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
-- Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC
build (JDK-8281098)
-- Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass
-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
-- Refactor build functions so we can build just HotSpot without any attempt at
installation.
-- Explicitly list JIT architectures rather than relying on those with slowdebug builds
-- Disable the serviceability agent on Zero architectures even when the architecture
itself is supported
-- Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
-- Resolves: rhbz#2045726
-- Related: rhbz#2051302
-- Related: rhbz#2041970
-
-* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.322.b04-0.1.ea.1
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Mon Jan 10 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.1.ea
-- Update to aarch64-shenandoah-jdk8u322-b04 (EA)
-- Update release notes for 8u322-b04.
-- Require tzdata 2021c as of JDK-8274407.
-
-* Fri Jan 07 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b03-0.1.ea
-- Update to aarch64-shenandoah-jdk8u322-b03 (EA)
-- Update release notes for 8u322-b03.
-
-* Fri Dec 17 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b02-0.1.ea
-- Update to aarch64-shenandoah-jdk8u322-b02 (EA)
-- Update release notes for 8u322-b02.
-
-* Tue Dec 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b01-0.1.ea
-- Update to aarch64-shenandoah-jdk8u322-b01 (EA)
-- Update release notes for 8u322-b01.
-- Switch to EA mode.
-
-* Mon Dec 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-3
-- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
-
-* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
-- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
- secmod.db file as part of nss
-
-* Fri Oct 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-1
-- Update to aarch64-shenandoah-jdk8u312-b07 (GA)
-- Update release notes for 8u312-b07.
-- Switch to GA mode for final release.
-
-* Thu Oct 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
-- Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
-
-* Thu Oct 07 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
-- Add patch to allow plain key import.
-
-* Thu Sep 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.1.ea
-- Update to aarch64-shenandoah-jdk8u312-b05 (EA)
-- Update release notes for 8u312-b05.
-
-* Mon Sep 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.2.ea
-- Reduce disk footprint by removing build artifacts by default.
-
-* Sun Sep 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.1.ea
-- Update to aarch64-shenandoah-jdk8u312-b04 (EA)
-- Update release notes for 8u312-b04.
-
-* Tue Sep 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
-- Add patch to login to the NSS software token when in FIPS mode.
-
-* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
-- Update to aarch64-shenandoah-jdk8u312-b03 (EA)
-- Update release notes for 8u312-b03.
-
-* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b02-0.1.ea
-- Update to aarch64-shenandoah-jdk8u312-b02 (EA)
-- Update release notes for 8u312-b02.
-
-* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
-- Port FIPS system detection support to OpenJDK 8u
-- Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
-- Remove unneeded Requires on NSS as it will now be dynamically linked and detected by
RPM.
-
-* Wed Sep 01 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
-- Detect FIPS using SECMOD_GetSystemFIPSEnabled in the new libsystemconf JDK library.
-
-* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.2.ea
-- Update to aarch64-shenandoah-jdk8u312-b01 (EA)
-- Update release notes for 8u312-b01.
-- Switch to EA mode.
-- Remove "-clean" suffix as no 8u312 builds are unclean.
-
-* Mon Aug 30 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.302.b08-2
-- alternatives creation moved to posttrans
-- Thus fixing the old reisntall issue:
--
https://bugzilla.redhat.com/show_bug.cgi?id=1200302
--
https://bugzilla.redhat.com/show_bug.cgi?id=1976053
-
-* Sun Aug 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-1
-- Remove non-Free test and demo files from source tarball.
-
-* Thu Jul 22 2021 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.302.b08-0.1
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jul 16 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-0
-- Update to aarch64-shenandoah-jdk8u302-b08 (EA)
-- Update release notes for 8u302-b08.
-- Switch to GA mode for final release.
-
-* Thu Jul 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b07 (EA)
-- Update release notes for 8u302-b07.
-
-* Tue Jul 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b06 (EA)
-- Update release notes for 8u302-b06.
-
-* Mon Jul 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.1.ea
-- Use the "reverse" build loop (debug first) as the main and only build loop to
get more diagnostics.
-
-* Fri Jul 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b05 (EA)
-- Update release notes for 8u302-b05.
-
-* Wed Jun 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b04 (EA)
-- Update release notes for 8u302-b04.
-
-* Fri Jun 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.2.ea
-- Update to aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23 (EA)
-- Update release notes for 8u302-b03-shenandoah-merge-2021-06-23.
-
-* Mon Jun 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.1.ea
-- Backport FIPS mode patch (RH1655466) to java-1.8.0-openjdk, simplifying provider
removal.
-- nss.fips.cfg needs to be moved to %%{etcjavadir} and symlinked into the JDK, like
nss.cfg
-- SunPKCS11 runtime provider name is a concatenation of "SunPKCS11-" and the
name in the config file.
-- Change nss.fips.cfg config name to "NSS-FIPS" to avoid confusion with
nss.cfg.
-- Disable FIPS mode support unless com.redhat.fips is set to "true".
-- Add JDK-8195607/PR3776 to support NSS SQLite databases.
-- Enable alignment with FIPS crypto policy by default (-Dcom.redhat.fips=false to
disable).
-- Move setup of JavaSecuritySystemConfiguratorAccess to Security class so it always
occurs (RH1906862)
-- Add explicit runtime dependency on NSS for the PKCS11 provider in FIPS mode
-
-* Mon Jun 07 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.302.b03-0.1.ea
-- Support the FIPS mode crypto policy on RHEL 8 (RH1655466)
-- Use appropriate keystore types when in FIPS mode (RH1760838)
-- Disable TLSv1.3 when using the NSS-FIPS provider (RH1860986)
-
-* Wed Jun 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b03 (EA)
-- Update release notes for 8u302-b03.
-
-* Tue May 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b02 (EA)
-- Update release notes for 8u302-b02.
-
-* Sat May 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u302-b01 (EA)
-- Update release notes for 8u302-b01.
-- Switch to EA mode.
-
-* Mon May 10 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-3
-- removed cjc backward comaptiblity, to fix when both rpm 4.16 and 4.17 are in
transaction
-
-* Mon May 03 2021 Sérgio Basto <sergio(a)serjux.com> - 1:1.8.0.292.b10-2
-- Fix upgrade path after removal of accessibility subpackage. As main accessibility was
requiring main package,
- main package now have to obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug,
fastdebug} < 1:1.8.0.292.b06
- otherwise update fails
-
-* Thu Apr 29 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-1
-- adapted to newst cjc to fix issue with rpm 4.17
-
-* Tue Apr 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b10-0
-- Update to aarch64-shenandoah-jdk8u292-b10 (GA)
-- Update release notes for 8u292-b10.
-
-* Tue Mar 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b09-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b09 (EA)
-- Update release notes for 8u292-b09.
-
-* Sat Mar 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b08-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b08 (EA)
-- Update release notes for 8u292-b08.
-- Require tzdata 2021a due to JDK-8260356
-
-* Thu Mar 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b07 (EA)
-- Update release notes for 8u292-b07.
-
-* Wed Mar 24 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b06-0.1.ea
-- removal of atk accessibility bridge bindings:
-- removed libatk-wrapper[.]so.* from global _privatelibs
-- removed files_accessibility and java_accessibility_rpo macros
-- removed patch1 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch and patch3
rh1648644-java_access_bridge_privileged_security.patch
-- removal of accessibility{,-slowdebug,-fastdebug} subpackages
-- no longer creating symlinks of %%{_libdir}/java-atk-wrapper/libatk-wrapper.so.0
libatk-wrapper.so and %%{_libdir}/java-atk-wrapper/java-atk-wrapper.jar
java-atk-wrapper.jar
-- no longer creating %%{_jvmdir}/%%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
-- removal of accessibility{,-slowdebug,-fastdebug} subpackages files sections
-
-* Mon Mar 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b06 (EA)
-- Update release notes for 8u292-b06.
-- Require tzdata 2020f due to JDK-8259048
-
-* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.2.ea
-- Update to aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11 (EA)
-- Update release notes for 8u292-b05-shenandoah-merge-2021-03-11.
-- Extend s390 patch to fix issue caused by JDK-8252660 backport and lack of JDK-8188813
in 8u.
-- Revise JDK-8252660 s390 failure to make _soft_max_size a jlong so pointer types are
accurate.
-
-* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.1.ea
-- Re-organise S/390 patches for upstream submission, separating 8u upstream from
Shenandoah fixes.
-- Add new formatting case found in memprofiler.cpp on debug builds to PR3593 patch.
-
-* Mon Mar 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b05 (EA)
-- Update release notes for 8u292-b05.
-
-* Fri Mar 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b04 (EA)
-- Update release notes for 8u292-b04.
-
-* Thu Mar 04 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b03 (EA)
-- Update release notes for 8u292-b03.
-
-* Tue Mar 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b02 (EA)
-- Update release notes for 8u292-b02.
-
-* Fri Feb 19 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u292-b01 (EA)
-- Update release notes for 8u292-b01.
-- Switch to EA mode.
-- Update tarball generation script to use PR3822 which handles
- JDK-8233228 & JDK-8035166 changes
-
-* Thu Feb 18 2021 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.282.b08-5
-- Hardcode /usr/sbin/alternatives for Flatpak builds
-
-* Sat Jan 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-4
-- Cleanup package descriptions and version number placement.
-
-* Tue Jan 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-3
-- Include a test in the RPM to check the build has the correct vendor information.
-- Use 'oj_' prefix on new vendor globals to avoid a conflict with RPM's
vendor value.
-
-* Mon Jan 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-2
-- Add directories to files directive for demo package.
-
-* Sun Jan 24 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-1
-- Use RSA as default for keytool, as DSA is disabled in all crypto policies except
LEGACY
-
-* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-0
-- Update to aarch64-shenandoah-jdk8u282-b08 (GA)
-- Update release notes for 8u282-b08.
-
-* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u282-b07 (EA)
-- Update release notes for 8u282-b07 and make some minor corrections.
-
-* Wed Jan 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u282-b04 (EA)
-- Update release notes for 8u282-b04.
-- Remove upstreamed patch PR3519
-
-* Sat Jan 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u282-b03 (EA)
-- Update release notes for 8u282-b03.
-
-* Tue Dec 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u282-b02 (EA)
-- Update release notes for 8u282-b02.
-
-* Tue Dec 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u282-b01 (EA)
-- Update release notes for 8u282-b01.
-- Switch to EA mode.
-- Remove PR3601, covered upstream by JDK-8062808.
-- Remove upstreamed JDK-8197981/PR3548, JDK-8062808/PR3548 & JDK-8254177.
-- Extend RH1750419 alt-java fix to include external debuginfo, following JDK-8252395
-- Adapt JDK-8143245 patch, following JDK-8254166
-
-* Tue Dec 22 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-6
-- fixed missing condition for fastdebug packages being counted as debug ones
-
-* Mon Dec 21 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-5
-- Enable JFR on x86, now we have JDK-8252096: Shenandoah: adjust SerialPageShiftCount for
x86_32 and JFR
-
-* Sat Dec 19 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-4
-- introduced fastdebug build cycle and subpackages
-
-* Thu Dec 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-3
-- introduced nm based check to verify alt-java on x86_64 is patched, and no other
alt-java or java is patched
-- patch600 rh1750419-redhat_alt_java.patch amended to die, if it is used wrongly
-- introduced ssbd_arches with currently only valid arch of x86_64 to separate real
alt-java architectures
-
-* Fri Nov 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-2
-- added patch600, rh1750419-redhat_alt_java.patch
-- Replaced alt-java palceholder by real pathced alt-java
-- remove patch529 rh1566890-CVE_2018_3639-speculative_store_bypass.patch
-- remove patch531 rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
-- both suprassed by new patch
-
-
-* Mon Nov 23 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-1
-- Created copy of java as alt-java and adapted alternatives and man pages
-
-* Fri Nov 06 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-0
-- Update to aarch64-shenandoah-jdk8u275-b01 (GA)
-- Update release notes for 8u275.
-
-* Sat Oct 31 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.272.b10-1
-- Avoid "register" for C++17
-
-* Sat Oct 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b10-0
-- Update to aarch64-shenandoah-jdk8u272-b10.
-- Switch to GA mode for final release.
-- Update release notes for 8u272 release.
-- Add backport of JDK-8254177 to update to tzdata 2020b
-- Require tzdata 2020b due to resource changes in JDK-8254177
-- Adjust JDK-8062808/PR3548 following constantPool.hpp context change in JDK-8243302
-- Adjust PR3593 following g1StringDedupTable.cpp context change in JDK-8240124 &
JDK-8244955
-
-* Mon Sep 28 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b09-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b09 (EA).
-
-* Wed Sep 16 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b08-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b08 (EA).
-
-* Tue Sep 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b07.
-
-* Thu Sep 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b06.
-- Update tarball generation script to use PR3799, following inclusion of JDK-8245468
(TLSv1.3)
-
-* Wed Sep 02 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.1.ea
-- Update to aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28.
-- Add additional s390 log2_intptr case in shenandoahUtils.cpp introduced by JDK-8245464
-
-* Thu Aug 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b05.
-- Add additional s390 size_t case in g1ConcurrentMarkObjArrayProcessor.cpp introduced by
JDK-8057003
-
-* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b04.
-- Update tarball generation script to use PR3795, following inclusion of JDK-8177334
-
-* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b03.
-
-* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.1.ea
-- Remove "-fcommon" following GCC 10 fixes upstream (JDK-8238380, JDK-8238386,
JDK-8238388)
-
-* Sun Aug 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b02.
-- Remove JDK-8154313 backport now applied upstream.
-- Change target from 'zip-docs' to 'docs-zip', which is the naming used
upstream.
-
-* Wed Aug 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.272.b01-0.1.ea
-- Fix vendor name to include '.': Red Hat, Inc => Red Hat, Inc.
-
-* Sat Aug 01 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u272-b01.
-- Switch to EA mode.
-- Test build JDK is usable by running 'java -version'.
-- JFR must now be explicitly disabled when unwanted (e.g. x86), following switch of
upstream default.
-
-* Mon Jul 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.265.b01-2
-- ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README moved to fully versioned dirs
-
-* Mon Jul 27 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.265.b01-1
-- Reorder _lto_cflags define so that it gets picked up via optflags
-
-* Mon Jul 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.265.b01-1
-- Update to aarch64-shenandoah-jdk8u265-b01.
-- Update release notes for 8u265 release.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b10-1
-- Update to aarch64-shenandoah-jdk8u262-b10.
-- Switch to GA mode for final release.
-- Update release notes for 8u262 release.
-- Split JDK-8042159 patch into per-repo patches as upstream.
-- Update JDK-8042159 JDK patch to apply after JDK-8238002 changes to Awt2dLibraries.gmk
-- Remove issues in NEWS file duplicated between 8u252 & 8u262 releases.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.1.ea
-- Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b09.
-- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures
without JFR.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.1.ea
-- Fix typo in jfr_arches which leads to ppc64 being wrongly excluded.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b08.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.1.ea
-- Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18.
-
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b07.
-- Require tzdata 2020a so system tzdata matches resource updates in b07
-
-* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b06.
-
-* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.4.ea
-- Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04.
-
-* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea
-- changed to be non-system jdk
-- is_system_jdk set to 0
-
-* Thu Jul 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.2.ea
-- Re-introduce java-openjdk-src & java-openjdk-demo for system_jdk builds.
-- Fix accidental renaming of java-openjdk-devel to java-devel-openjdk.
-
-* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.1.ea
-- prepared to become non system jdk soon, by backporting is_system_jdk patch from jdk11
-- Added is_system_jdk variable, but left it on 1, used that variable where neessary
-
-* Tue Jul 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b05.
-
-* Sun Jul 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b04.
-
-* Fri Jul 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.4.ea
-- Enable JFR in our builds, ahead of upstream default.
-- Only enable JFR for JIT builds, as it is not supported with Zero.
-- Turn off JFR on x86 for now due to assert(SerializePageShiftCount == count) crash.
-- Explicitly list jfr.jar, default.jfc & profile.jfc in the spec file.
-- Introduce jfr_arches for architectures which support JFR.
-- Use sa_arches for libsaproc.so inclusion.
-- Move LTO handling to same location as other compiler flags handling.
-
-* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.262.b03-0.3.ea
-- Disable LTO
-
-* Mon Jun 29 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b03-0.2.ea
-- Set vendor property and vendor URLs
-- Made URLs to be preconfigured by os
-
-* Wed Jun 24 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.1.ea
-- Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20.
-
-* Tue Jun 23 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b03.
-- Remove JDK-8244461 & JDK-8233880 backports included upstream in b03.
-
-* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u262-b02.
-
-* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b01-0.1.ea
-- Update to aarch64-shenandoah-jdk8u262-b01.
-- Switch to EA mode.
-- Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR
-- Adjust RH1648644 following context changes due to introduction of JFR packages
-- Add jfr binary to devel package and alternatives set
-
-* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-1
-- Add release notes.
-
-* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-0
-- Update to aarch64-shenandoah-jdk8u252-b09.
-- Switch to GA mode for final release.
-
-* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b08-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b08.
-- Drop JDK-8241296 backport now applied upstream.
-
-* Wed Jun 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b07.
-
-* Thu Jun 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b06.
-- Drop upstreamed AArch64 fix JDK-8224851
-
-* Wed Jun 10 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b05.
-
-* Mon Jun 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b04.
-
-* Sun Jun 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b03.
-- Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in
JDK-8230978
-
-* Tue Jun 02 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b02.
-
-* Fri May 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.3.ea
-- Update generate_source_tarball.sh script to use the PR3756 patch and retain the
secp256k1 curve.
-- Regenerate source tarball using the updated script and add the -'4curve'
suffix.
-
-* Wed May 20 2020 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.252.b01-0.2.ea
-- Switch package openjfx from openjfx to openjfx8
-
-* Sun May 17 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.1.ea
-- Backport JDK-8233880 to fix version detection of GCC 10.
-- Remove compiler flags used to disable GCC optimisations. This is now
- resolved by -fno-delete-null-pointer-checks and -fno-lifetime-dse being turned
- on in the upstream build, after GCC >= 6 is detected.
-
-* Thu May 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u252-b01.
-- Switch to EA mode.
-- Adjust JDK-8199936/PR3533 patch following JDK-8227397 configure change
-- Make use of --with-extra-asflags introduced in jdk8u252-b01.
-
-* Tue May 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b08-4
-- Add patch for JDK-8244461 so as to fix sys/sysctl.h removal
- in upcoming glibc 2.32
-
-* Tue Mar 24 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-3
-- Introduce stapinstall variable to set SystemTap arch directory correctly (e.g. arm64 on
aarch64)
-- Include support for noarch for when koji creates source RPMs
-
-* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
-- Replace Bash 'if' with rpm '%if'
-- Resolves: rhbz#1813550
-
-* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
-- Restructure the build so a minimal initial build is then used for the final build (with
docs)
-- This reduces pressure on the system JDK and ensures the JDK being built can do a full
build
-- Resolves: rhbz#1813550
-
-* Fri Mar 20 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
-- Backport JDK-8241296 to fix segfaults when active_handles is NULL
-- Resolves: rhbz#1813550
-
-* Fri Mar 13 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-1
-- Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing
previous workarounds
-
-* Wed Mar 11 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-0
-- Update to aarch64-shenandoah-jdk8u242-b08.
-- Switch to GA mode for final release.
-
-* Wed Mar 04 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b07-0.1.ea
-- Add work-arounds for GCC 10 build issues. See RHBZ#1795268.
-
-* Wed Jan 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u242-b07.
-- Remove Shenandoah S390 patch which is now included upstream as JDK-8236829.
-
-* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.242.b06-0.0.ea.1
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Tue Jan 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b06-0.0.ea
-- Update to aarch64-shenandoah-jdk8u242-b06 (EA)
-
-* Sun Jan 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b05-0.1.ea
-- Update to aarch64-shenandoah-jdk8u242-b05.
-- Attempt to fix Shenandoah formatting failures on S390, introduced by JDK-8232102.
-- Revise b05 snapshot to include JDK-8236178.
-- Add additional Shenandoah formatting fixes revealed by successful -Wno-error=format
run
-- Fix patch numbering to avoid conflicts with other versions of this spec file.
-
-* Wed Dec 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b04-0.0.ea
-- Update to aarch64-shenandoah-jdk8u242-b04.
-
-* Sat Nov 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u242-b02.
-
-* Mon Nov 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u242-b01.
-- Switch to EA mode.
-
-* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b09-0
-- Update to aarch64-shenandoah-jdk8u232-b09.
-- Switch to GA mode for final release.
-- Remove PR1834/RH1022017 which is now handled by JDK-8228825 upstream.
-
-* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b08-0.0.ea
-- Update to aarch64-shenandoah-jdk8u232-b08.
-
-* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.1.ea
-- Update to aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.
-
-* Thu Oct 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.0.ea
-- Update to aarch64-shenandoah-jdk8u232-b05.
-- Drop upstreamed patch JDK-8141570/PR3548.
-- Adjust context of JDK-8143245/PR3548 to apply against upstream JDK-8141570.
-
-* Fri Sep 27 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b01-0.0.ea
-- Update to aarch64-shenandoah-jdk8u232-b01.
-- Switch to EA mode.
-- Drop JDK-8210761/RH1632174 as now upstream.
-- Drop JDK-8223219 as now upstream.
-- JDK-8226870 removed clhsdb and hdsdb from the JRE bin directory, so we should do
likewise.
-- Add alternatives support for these two new SDK binaries.
-
-* Thu Aug 15 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-3
-- Switch to in-tree SunEC code, dropping NSS runtime dependencies and patches to link
against it.
-
-* Thu Aug 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-2
-- Drop unnecessary build requirement on gtk2-devel, as OpenJDK searches for Gtk+ at
runtime.
-- Add missing build requirements for libXext-devel and libXrender-devel, previously
masked by Gtk2+ dependency.
-- fontconfig build requirement should be fontconfig-devel, previously masked by Gtk2+
dependency
-
-* Wed Jul 31 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-1
-- Obsolete javadoc-debug and javadoc-debug-zip packages via javadoc and javadoc-zip
respectively.
-
-* Wed Jul 31 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.222.b10-1
-- Don't produce javadoc/javadoc-zip sub packages for the debug variant build.
-- Don't perform a bootcycle build for the debug variant build.
-
-* Thu Jul 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-0
-- Update to aarch64-shenandoah-jdk8u222-b10.
-- Adjust PR3083/RH134640 to apply after JDK-8182999
-- Switch to GA mode for final release.
-
-* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b07-0.0.ea
-- Update to aarch64-shenandoah-jdk8u222-b07 and Shenandoah merge 2019-06-13.
-- Drop remaining JDK-8210425/RH1632174 patch now AArch64 part is upstream.
-
-* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b03-0.0.ea
-- Update to aarch64-shenandoah-jdk8u222-b03.
-- Drop 8210425 patches applied upstream. Still need to add AArch64 version in
aarch64/shenandoah-jdk8u.
-- Re-generate JDK-8141570 & JDK-8143245 patches due to 8210425 zeroshark.make
changes.
-
-* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b02-0.0.ea
-- Update to aarch64-shenandoah-jdk8u222-b02.
-- Drop 8064786/PR3599 & 8210416/RH1632174 as applied upstream (8064786 silently in
8176100).
-
-* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.2.ea
-- Make use of Recommends and Suggests dependent on Fedora or RHEL 8+ environment.
-
-* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.1.ea
-- Update to aarch64-shenandoah-jdk8u222-b01.
-- Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575.
-- Drop 8171000 & 8197546 as applied upstream.
-
-* Wed Jul 03 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-6
-- Include 'ea' designator in Release when appropriate.
-
-* Wed Jul 03 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-6
-- Handle milestone as variables so we can alter it easily and set the docs zip filename
appropriately.
-- Drop unused use_shenandoah_hotspot variable.
-
-* Fri Jun 14 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-5
-- Update to aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.
-- Update version logic to handle -shenandoah* tag suffix.
-- Drop PR3634 as applied upstream.
-- Adjust 8214206 fix for S390 as BinaryMagnitudeSeq moved to shenandoahNumberSeq.cpp
-- Update 8214206 to use log2_long rather than casting to intptr_t, which may be smaller
than size_t.
-
-* Wed May 22 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-4
-- Remove additions to EXTRA_CFLAGS and EXTRA_CPP_FLAGS which are now made by upstream.
-- Remove -mstackrealign addition which is handled by PR3533 & PR3591 patches.
-
-* Wed May 22 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-3
-- Add JDK-8223219 to avoid -fstack-protector overriding -fstack-protector-strong
-
-* Wed May 15 2019 James Cassell <cyberpear(a)fedoraproject.org> - 1:1.8.0.212.b04-2
-- mark net.properties as a config file
-
-* Mon May 13 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-1
-- Update patch for RH1566890.
- - Renamed
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639
to
- rh1566890-CVE_2018_3639-speculative_store_bypass.patch
- - Added dependent patch,
- rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
-
-* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-0
-- Update to aarch64-shenandoah-jdk8u212-b04.
-
-* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b03-0
-- Update to aarch64-shenandoah-jdk8u212-b03.
-
-* Tue Apr 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b02-0
-- Update to aarch64-shenandoah-jdk8u212-b02.
-- Remove patches included upstream
- - JDK-8197429/PR3546/RH153662{2,3}
- - JDK-8184309/PR3596
- - JDK-8210647/RH1632174
- - JDK-8029661/PR3642/RH1477159
- - JDK-8145096/PR3693
-- Re-generate patches
- - JDK-8203030
-- Add casts to resolve s390 ambiguity in calls to log2_intptr
-- Move JDK-8219772 to correct section as not yet upstreamed
-- Add new clhsdb and hsdb binaries.
-- Resolves: rhbz#1680640
-
-* Sun Apr 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.202.b08-0
-- Update to aarch64-shenandoah-jdk8u202-b08.
-- Remove patches included upstream
- - JDK-8211387/PR3559
- - JDK-8207057/PR3613
- - JDK-8165852/PR3468
- - JDK-8073139/PR1758/RH1191652
- - JDK-8044235
- - JDK-8172850/RH1640127
- - JDK-8209639/RH1640127
- - JDK-8131048/PR3574/RH1498936
- - JDK-8164920/PR3574/RH1498936
-- Re-generate patches
- - JDK-8210647/RH1632174
-
-* Thu Apr 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b13-0
-- Update to aarch64-shenandoah-jdk8u201-b13.
-- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
-
-* Fri Mar 29 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-8
-- Sync SystemTap & desktop files with upstream IcedTea release using new script
-
-* Wed Mar 20 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 1:1.8.0.201.b09-7
-- Drop chkconfig dep, 1.7 shipped in f24
-
-* Mon Mar 11 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-6
-- Add -Wa,--generate-missing-build-notes=yes C flags and patch
- jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch. So
- as to fix annocheck warnings for assembler source files.
-
-* Tue Feb 19 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-5
-- Add a test verifying system crypto policies can be disabled
-
-* Tue Feb 19 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-4
-- Add PR3655 to allow the system crypto policy to be turned off.
-
-* Mon Feb 11 2019 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.201.b09-3
-- config files to etc
-
-* Wed Feb 06 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-2
-- Add backport of JDK-8145096 (PR3693) to fix undefined behaviour issues on newer GCCs
-
-* Tue Feb 05 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-1
-- Update to aarch64-shenandoah-jdk8u201-b09.
-
-* Tue Feb 05 2019 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.192.b12-1
-- Added FX link of libglassgtk3.so
-
-* Wed Jan 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.192.b12-0
-- Update to aarch64-shenandoah-jdk8u192-b12.
-- Remove patches included upstream
- - JDK-8031668/PR2842
- - JDK-8148351/PR2842
- - JDK-6260348/PR3066
- - JDK-8061305/PR3335/RH1423421
- - JDK-8188030/PR3459/RH1484079
- - JDK-8205104/PR3539/RH1548475
- - JDK-8185723/PR3553
- - JDK-8186461/PR3557
- - JDK-8201509/PR3579
- - JDK-8075942/PR3602
- - JDK-8203182/PR3603
- - JDK-8206406/PR3610/RH1597825
- - JDK-8206425
- - JDK-8036003
- - JDK-8201495/PR2415
- - JDK-8150954/PR2866/RH1176206
-- Re-generate patches (mostly due to upstream build changes)
- - JDK-8073139/PR1758/RH1191652
- - JDK-8143245/PR3548 (due to JDK-8202600)
- - JDK-8197429/PR3546/RH1536622 (due to JDK-8189170)
- - JDK-8199936/PR3533
- - JDK-8199936/PR3591
- - JDK-8207057/PR3613
- - JDK-8210761/RH1632174 (due to JDK-8207402)
- - PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509)
- - PR3593 (due to JDK-8081202)
- - RH1566890/CVE-2018-3639 (due to JDK-8189170)
- - RH1649664 (due to JDK-8196516)
-- Add 8160748 for AArch64 which is missing from upstream 8u version.
-- Add port of 8189170 to AArch64 which is missing from upstream 8u version.
-
-* Mon Jan 28 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-1
-- Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64.
-
-* Thu Jan 24 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
-- Introduce sa_arches for architectures with sa-jdi.jar and include aarch64
-
-* Thu Jan 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
-- Update to aarch64-shenandoah-jdk8u191-b14.
-- Adjust JDK-8073139/PR1758/RH1191652 to apply following 8155627 backport.
-
-* Wed Jan 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b13-0
-- Update to aarch64-shenandoah-jdk8u191-b13.
-- Update tarball generation script in preparation for PR3667/RH1656676 SunEC changes.
-- Use remove-intree-libraries.sh to remove the remaining SunEC code for now.
-
-* Wed Dec 19 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-13
-- Fix jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
paths to pass git apply
-
-* Mon Dec 10 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-12
-- adde fx link of libglassgtk2.so (rhbz1657485)
-
-* Thu Nov 22 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-11
-- Add backport of JDK-8029661 which adds TLSv1.2 support to the PKCS11 provider.
-
-* Tue Nov 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-10
-- Revise Shenandoah PR3634 patch following upstream discussion.
-
-* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
-- headfull suggests of cups, replaced by Requires of cups-libs in headless
-
-* Wed Nov 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
-- Note why PR1834/RH1022017 is not suitable to go upstream in its current form.
-
-* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
-- Document patch sections.
-
-* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
-- Fix patch organisation in the spec file:
-- * Move ECC patches back to upstreamable section
-- * Move system cacerts & crypto policy patches to upstreamable section
-- * Merge "Local fixes" and "RPM fixes" which amount to the same
thing
-- * Move system libpng & lcms patches back to 8u upstreamable section
-
-* Fri Oct 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-8
-- added Patch583 jdk8172850-rh1640127-01-register_allocator_crash.patch
-- added Patch584 jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
-
-* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-2
-- cups moved to headful package
-
-* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
-- updated to aarch64-shenandoah-jdk8u191-b12
-- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
-- create pr3634-fix_shenandoah_for_size_t_on_s390.patch to fix build failure on s390
-
-* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
-- Add patch
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch:
- - Annother fix for optimization gaps (annocheck issues)
- - Zero 8u version fix was missing. Hence, only shows up on Zero arches.
-
-* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
-- Refreshed upstreamed patches (from 8u202):
- - jdk8044235-src_zip_should_include_all_sources.patch: src.zip should include all
sources.
- -
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch,
- jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch,
- jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch:
PPC64LE JVM reporting issues.
-- Moved both patch series to 8u202 sections.
-
-* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
-- Add explicit requirement for libXcomposite which is used when performing
- screenshots from Java.
-- Add explicit BR unzip required for building OpenJDK.
-
-* Thu Sep 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-4
-- Add fixes for optimization gaps (annocheck issues):
- - 8210761: libjsig is being compiled without optimization
- - 8210647: libsaproc is being compiled without optimization
- - 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
- - 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
- 8u upstream and aarch64/jdk8u upstream versions.
-
-* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
-- Renamed more patches for clarity:
- include-all-srcs.patch => jdk8044235-src_zip_should_include_all_sources.patch
- java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
- java-1.8.0-openjdk-rh1191652-jdk.patch =>
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
- java-1.8.0-openjdk-rh1191652-root.patch =>
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
-
-* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
-- Update(s) from upstreamed patches:
- - 8036003-dont-add-unnecessary-debug-links.patch =>
- jdk8036003-add_with_native_debug_symbols_configure_flag.patch
- - rh1176206-jdk.patch =>
- jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch =>
- Deleted rh1176206-root.patch as thats no longer needed with
- upstream 8150954.
- - Refreshed
jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
from upstream.
- - Refreshed jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
from upstream.
- - 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
- jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch and
- jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch. From JDK 8u
- review.
-- Renamed pr2842-02.patch =>
jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch.
-- Renamed spec-only patch:
- pr3183.patch => pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
-- Renamed java-1.8.0-openjdk-size_t.patch =>
- jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
-- Moved SunEC provider via system NSS to RPM specific patches section.
-- Moved upstream 8u patches to appropriate sections (8u192/8u202).
-- Removed rh1214835.patch since it's invalid. See:
-
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
-- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
-
-* Tue Sep 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b15-1
-- fixed unexpanded arch in policy tool desktop file
-- fixed versions (8->1.8.0) of images used in desktop files
-
-* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
-- Adjust system jpeg patch, jdk8043805-allow_using_system_installed_libjpeg.patch, so as
to filter
- -Wl,--as-needed. Resolves RHBZ#1622186.
-
-* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
-- Adjust system NSS patch,
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch,
so as to filter
- -Wl,--as-needed. Resolves RHBZ#1622186.
-
-* Thu Aug 23 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181.b15-0
-- Move to single OpenJDK tarball build, based on aarch64/shenandoah-jdk8u.
-- Update to aarch64-shenandoah-jdk8u181-b15.
-- Drop 8165489-pr3589.patch which was only applied to aarch64/jdk8u builds.
-- Move buildver to where it should be in the OpenJDK version.
-- Split ppc64 Shenandoah fix into separate patch file with its own bug ID (PR3620).
-- Update pr3539-rh1548475.patch to apply after 8187045.
-- Resolves: rhbz#1594249
-
-* Sat Aug 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- Remove unneeded functions from ppc shenandoahBarrierSet.
-- Resolves: rhbz#1594249
-
-* Wed Aug 08 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- Add missing shenandoahBarrierSet implementation for ppc64{be,le}.
-- Resolves: rhbz#1594249
-
-* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- Fix wrong format specifiers in Shenandoah code.
-- Resolves: rhbz#1594249
-
-* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- Avoid changing variable types to fix size_t, at least for now.
-- Resolves: rhbz#1594249
-
-* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- More size_t fixes for Shenandoah.
-- Resolves: rhbz#1594249
-
-* Fri Aug 03 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
-- Add additional s390 size_t case for Shenandoah.
-- Resolves: rhbz#1594249
-
-* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
-- build number moved from release to version
-
-* Mon Jul 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181-7.b13
-- updated to u181
-- patches aligned according to rhel7 (full credit to gnu_andrew)
-- removed upstreamed patch104 pr3458-rh1540242-aarch64.patch
-- removed upstreamed patch568 8187577-pr3578.patch
-
-* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-16.b11
-- added Recommends gtk2 for main package
-- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
-- see RHBZ1598152
-
-* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.172-15.b11
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Tue Jul 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-14.b11
-- Fix hook to show hs_err*.log files on failures.
-
-* Mon Jul 02 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-13.b11
-- Fix requires/provides filters for internal libs. See
- RHBZ#1590796
-
-* Mon Jun 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-12.b11
-- Add hook to show hs_err*.log files on failures.
-
-* Wed Jun 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-11.b11
-- Expose release/slowdebug builds being produced via conditionals.
-
-* Wed Jun 20 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-11.b11
-- Add additional fix (PR3601) to fix -Wreturn-type failures introduced by 8061651
-- Backport 8064786 (PR3601) to fix -Wreturn-type failure on debug builds.
-- Bring in PR3519 from IcedTea 3.7.0 to fix remaining -Wreturn-type failure on AArch64.
-- Sync with IcedTea 3.8.0 patches to use -Wreturn-type.
-- Add backports of 8141570, 8143245, 8197981 & 8062808.
-- Drop pr3458-rh1540242-zero.patch which is covered by 8143245.
-
-* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
-- jsa files changed to 444 to pass rpm verification
-
-* Mon Jun 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-9.b11
-- Filter private provides/requires: 'lib.so(SUNWprivate_.*'
-
-* Thu Jun 14 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-8.b11
-- Add provides/requires for libjvm.so back. See RHBZ#1591215.
-
-* Wed Jun 13 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-7.b11
-- Fix reg-ex for filtering private libraries' provides/requires.
-
-* Wed Jun 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-6.b11
-- Remove build flags exemption for aarch64 now the platform is more mature and can
bootstrap OpenJDK with these flags.
-- Remove duplicate -fstack-protector-strong; it is provided by the RHEL cflags.
-- Add missing changelog credits
-
-* Mon Jun 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-5.b11
-- Merge changes from RHEL 7
-
-* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
-- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
-
-* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
-- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
-
-* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
-- Update Shenandoah tarball to include 2018-05-15 merge.
-- Split PR3458/RH1540242 fix into AArch64 & Zero sections, so former can be skipped
on Shenandoah builds.
-- Drop PR3573 patch applied upstream.
-- Restrict 8187577 fix to non-Shenandoah builds, as it's included in the new
tarball.
-
-* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
-- Sync with IcedTea 3.8.0.
-- Label architecture-specific fixes with architecture concerned
-- x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
-- PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-- 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
-- 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
-- 8185723, PR3553: Zero: segfaults on Power PC 32-bit
-- 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
-- PR3559: Use ldrexd for atomic reads on ARMv7.
-- 8187577, PR3578: JVM crash during gc doing concurrent marking
-- 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
-- 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
-- PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
-- 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
-
-* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
-- updated to u172-b11
-- removed patches:
-- patch207 8200556-pr3566.patch
-- patch104 pr3458-rh1540242.patch
-- patch209 8035496-hotspot.patch
-- patch700
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
-- fixed issue with atkwrapper wrongly palced broken symlink
-- fixed libjvm path for system tap
-- returned patch104 pr3458-rh1540242.patch
-
-* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-2.b11
-- quoted sed expressions, changed possibly confussing # by @
-- added vendor(origin) into icons
-- removed last trace of relative symlinks
-- added BuildRequires of javapackages-tools to fix build failure after Requires change to
javapackages-filesystem
-- aligning with java-openjdk in fedora:
-- slowdebug instead simply debug subpackage
-- purged provides
-- many macros renamed
-- typos correction
-- bumped jstack (may be wrong)
-- fixed issue with atkwrapper wrongly palced broken symlink
-
-* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
-- updated to u172-b11
-- removed patches:
-- patch207 8200556-pr3566.patch
-- patch104 pr3458-rh1540242.patch
-- patch209 8035496-hotspot.patch
-- patch700
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
-
-* Thu May 17 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-6.b10
-- Move to javapackages-filesystem over javapackages-tools
- for directory ownership. Resolves RHBZ#1500288.
-
-* Fri May 04 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-5.b10
-- Remove duplicate patch rhbz_1538767_fix_linking2.patch. Just use
- rhbz_1538767_fix_linking.patch.
-
-* Wed Apr 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-4.b10
-- Enable hardened build unconditionally (also for Zero).
- Resolves RHBZ#1290936.
-
-* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-3.b10
-- Enable hardened build for Aarch64.
-
-* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-2.b10
-- Update rhbz1548475-LDFLAGSusage.patch to also set linker
- flags for libsaproc.so and libjsig.so.
-
-* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.171-1.b10
-- Update to aarch64-jdk8u171-b10 and aarch64-shenandoah-jdk8u171-b10.
-- Fix jconsole.desktop.in subcategory, replacing "Monitor" with
"Profiling" (PR3550) (gnu_andrew)
-- Fix invalid license 'LGPL+' (should be LGPLv2+ for ECC code) and add misisng
ones (gnu_andrew)
-
-* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-7.b12
-- added ownership of policy dir and subdirs
-- removed ignored attributes for classes.jsa
-
-* Tue Apr 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.162-6.b12
-- Use correct patch for RHBZ#1538767 (JDK-8196516)
-
-* Mon Apr 02 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-5.b12
-- Cleanup from previous commit.
-- Remove unused upstream patch 8167200.hotspotAarch64.patch.
-
-* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-4.b12
-- added experimental %%define _find_debuginfo_opts -g
-- in attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
-- no idea what will come out
-
-* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-3.b12
-- returned patch562 rhbz_1540242.patch
-- added Patch563 rhbz_1536622-JDK8197429-jdk8.patch
-
-* Mon Mar 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-2.b12
-- Added patch 540 rhbz1548475-LDFLAGSusage.patch to honor build flags fully
-
-* Wed Mar 21 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-1.b12
-- Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12.
-- Remove upstreamed patches for 8181055/PR3394/RH1448880,
-- 8181419/PR3413/RH1463144, 8145913/PR3466/RH1498309,
-- 8168318/PR3466/RH1498320, 8170328/PR3466/RR1498321 and
-- 8181810/PR3466/RH1498319.
-
-* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
-- Rebuild to fix GCC 8 mis-compilation
- See
https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
-
-* Sun Feb 11 2018 Sandro Mani <manisandro(a)gmail.com> - 1:1.8.0.161-8.b14
-- Rebuild (giflib)
-
-* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
1:1.8.0.161-7.b14
-- Escape macros in %%changelog
-
-* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.161-6.b14
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-5.b14
-- Additional fix needed for FTBFS bug on aarch64.
- Resolves RHBZ#1540242.
-
-* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-4.b14
-- Add fix for FTBFS on aarch64 and armv7hl.
- Resolves RHBZ#1540242.
-
-* Tue Jan 30 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-3.b14
-- Include Aarch64 build fixes post January 2018 CPU.
-
-* Mon Jan 29 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-2.b14
-- Work around ppc64le gdb backtrace problem in %%check.
- See RHBZ#1539664
-
-* Wed Jan 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-1.b14
-- Fix FTBFS due to link failure in libfontmanager.so
-- See RHBZ#1538767
-
-* Wed Jan 24 2018 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
-- updated to u161, rmeoved upstreamed patches
-- removed patch555 8164293-pr3412-rh1459641.patch
-- removed patch550 8175813-pr3394-rh1448880.patch
-- removed patch547 8173941-pr3326.patch
-- removed patch532 8162384-pr3122-rh1358661.patch
-- removed patch535 8153711-pr3313-rh1284948.patch
-- removed patch561 8075484-pr3473-rh1490713.patch
-- removed patch554 8175887-pr3415.patch
-
-* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
-- added ownership of etc dirs
-- sysconfdir/.java/.systemPrefs
-- sysconfdir/.java
-
-* Wed Oct 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
-- updated to aarch64-jdk8u151-b12 (from aarch64-port/jdk8u)
-- updated to aarch64-shenandoah-jdk8u151-b12 (from aarch64-port/jdk8u-shenandoah) of
hotspot
-- used aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz as new sources
-- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz as new
sources for hotspot
-- tapset updated to 3.6pre02
-- policies adapted to new limited/unlimited schmea
-- above acomapnied by c-j-c 3.3
-- alligned patches and added PPC ones (thanx to gnu_andrew)
-- added patch209: 8035496-hotspot.patch
-- added patch210: suse_linuxfilestore.patch
-
-* Wed Oct 04 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.144-7.b01
-- updated to aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02 (from
aarch64-port/jdk8u-shenandoah) of hotspot
-- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
as new sources for hotspot
-
-* Fri Sep 15 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-6.b01
-- added patch540, bug1484079.patch
-
-* Fri Sep 08 2017 Troy Dawson <tdawson(a)redhat.com> - 1:1.8.0.144-6.b01
-- Cleanup spec file conditionals
-
-* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-4.b01
-- added ownership of diretories which were oonly listing files
-
-* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-3.b01
-- added (experiment) "--" delimiter also to $suffix in expanding macros
-
-* Wed Aug 23 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-1.b01
-- Update to aarch64-jdk8u144-b01 and aarch64-shenandoah-jdk8u144-b01.
-- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
-- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
-- get rid of bin/* and lib/*, fixed rhbz1480777
-- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%%{?1}, all expandable macros parameter preffixed by --
-- get rid of generated filelists all except javafx and demos
-
-* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 1:1.8.0.141-4.b16
-- Rebuild with binutils fix for ppc64le (#1475636)
-
-* Wed Jul 26 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
-- added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
-
-* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-2.b16
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-1.b16
-- updated to security u141.b16
-- sync patches with rhel7
-- removed no longer defined jvmjardir
-
-* Sat Jun 17 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-7.b12
-- adapted to no longer noarch openjfx-devel
-
-* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-6.b12
-- added virtualprovides for javafx
-
-* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-5.b12
-- fixed target of to fxrt.jar link
-- fixedname of libglass
-
-* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
-- source999 moved to source1
-- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
-- enabled (commented out) system NSS via patch1000,
rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
-
-* Tue May 09 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
-- added javafx binding subpackages
-
-* Thu Apr 20 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
-- updated to aarch64-jdk8u131-b12 (from aarch64-port/jdk8u)
-- updated to aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20 (from
aarch64-port/jdk8u-shenandoah) of hotspot
-- used aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz as new sources
-- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
as new sources for hotspot
-
-* Sun Mar 19 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-12.b14
-- minor tweaks, egrep replaced by grep -E, added provides for some subpackages
-
-* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-11.b14
-- sync from rhel, reordered patches, enabled shenanoah on aarch64
-- Patch OpenJDK to check the system cacerts database directly
-- Remove unneeded symlink to the system cacerts database
-- Drop outdated openssl dependency from when the RPM built the cacerts database
-- udpated to latest stable shenandoah hotspot
-
-* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
-- rhbz#1423751 - removed -fno-split-loops worakround as building against newer GCC7
-
-* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-9.b14
-- updated to latest stable shenandoah hotspot
-- updated to properly tagged upstream forest (no update, just rename)
-- fixed update package to verify PR2126 patch and work with sha512
-
-* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-8.b14
-- rebuild because of NSS
-
-* Tue Feb 21 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-7.b14
-- fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793)
-- by calling new c-j-c hooks
-- removed self-tail-bitting check check_sum_presented_in_spec
-- release 6+7 to verify update path
-
-* Mon Feb 20 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-5.b14
-- patch 536 reordered to 537
-- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup
memory limits in container (ie Docker) environments"
-- added patch 538 - 1423421: Javadoc crashes when method name ends with
"Property"
-- rhbz#1423751 - added -fno-split-loops worakround sigsew when building with GCC7
(probably bug in jdk's JIT )
-
-* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
-- added Patch535 and 526
-- tweeked debugsymbols check for sigill
-
-* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
-- revertrd patch535, excludeECDHE-1415137.patch and related changes
-- issue casued by nss, see rhbz#1415137 c#35
-
-* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
-- added patch535, excludeECDHE-1415137.patch to tmp-worakround crash with nss
-
-* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-1.b14
-- updated to aarch64-jdk8u121-b14 (from openjdk8-forests/latest-aarch64)
-- updated to aarch64-shenandoah-jdk8u121-b14 (from openjdk8-forests/latest-shenandoah) of
hotspot
-- used openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz as new sources
-- used openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz as new
sources for hotspot
-- deleted: 8044762-pr2960.patch 8049226-pr2960.patch 8154210.patch
8158260-pr2991-rh1341258.patch 8159244-pr3074.patch
-- adapted java-1.8.0-openjdk-size_t.patch
pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
-- updated from internal (rhel) repo
OPENJDK_URL_DEFAULT=ssh://t...redhat.com//...ty/
-- with custom PR2126=/.../pr2126.patch (removed newly added brainpool curves)
-- withspecial values of PROJECT_NAME="openjdk8-forests",
REPO_NAME="latest-aarch64"
-- with correct tag VERSION="aarch64-jdk8u121-b14"
-- and for shenandoah hotspot used custom repo REPO_NAME=latest-shenandoah
-- with correct tag VERSION="aarch64-shenandoah-jdk8u121-b14"
-- complete changes to generate_source_tarball.sh update_package.sh NOT commited (willbe
regenerated from official repos soon)
-
-* Mon Jan 09 2017 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-5.b16
-- Added arched dependencies to headless/main package
-
-* Thu Nov 03 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-3.b16
-- added patch207 - PR3183.patch
-- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
-
-* Fri Oct 21 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.111-2.b16
-- added dont-add-unnecessary-debug-links.patch
-- added hotspot-assembler-debuginfo.patch
-- returned accidentally removed hotspot-remove-debuglink.patch
-- eu-readelfs on libraries improved, added gdb call
-
-* Wed Oct 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.111-1.b16
-- updated to aarch64-jdk8u111-b16 (from aarch64-port/jdk8u)
-- updated to aarch64-shenandoah-jdk8u111-b16 (from aarch64-port/jdk8u-shenandoah) of
hotspot
-- used aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz as new sources
-- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz as new
sources for hotspot
-- adapted patches
-
-* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-3.b14
-- debug subpackages allowed on aarch64 and ppc64le
-- fontconfig and nss restricted by isa
-
-* Wed Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
-- declared check_sum_presented_in_spec and used in prep and check
-- it is checking that latest packed java.security is mentioned in listing
-- @prefix@ in tapsetfiles substitued by prefix as necessary to work with systemtap3
(rhbz1371005)
-
-* Thu Aug 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-1.b14
-- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
-- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of
hotspot
-- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
-- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
-- removed upstreamed patches 519, 520 and 605
-- updated to systemtap 3, removed related patches 300 and 301
-- jjs provides moved to headless
-
-* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
-- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
-- Resolves: rhbz#1358661
-- Replace patch for S8157306 with upstream version, documented & applied on all archs
with conditional in patch
-- Resolves: rhbz#1360863
-
-* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-2.b14
-- added patch532 hotspot-1358661.patch - to fix performance of bimorphic inlining may be
bypassed by type speculation
-- added patch301 bz1204159_java8.patch - to fix systemtap on multiple jdks
-
-* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-1.b14
-- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u)
-- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from
aarch64-port/jdk8u-shenandoah) of hotspot
-- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources
-- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
as new sources for hotspot
-- priority lowered for ine zero digit, tip moved to 999
-- added
jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch,
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch,
8159244-pr3074.patch, corba_typo_fix.patch
-renamed: jdk8-archivedJavadoc.patch ->
jdk8154313-generated_javadoc_scattered_all_over_the_place.patch, pr2991-rh1341258.patch
-> 8158260-pr2991-rh1341258.patch
-- not added 8147771-additional_hunk.patch, already in b14
-
-* Tue Jul 12 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-5.b14
-- added Provides: /usr/bin/jjs
-
-* Tue Jun 21 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-2.b14
-- family restricted by arch
-
-* Tue Jun 07 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-1.b14
-- updated to u92
-- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch,
criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
-- 8132051-zero.patch, remove_aarch64_template_for_gcc6.patch
-- jdwpCrash.abrt.patch renamed to 8044762-pr2960.patch
-- httpsFix1329342.patch renamed to
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
-- added known regresisonos fixes for u92 scheduled for next u (519-525)
-
-* Thu May 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-7.b14
-- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
-
-* Fri May 13 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-6.b14
-- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process
any weak references in full-gc.
-
-* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
-- Restricted to depend on exactly same version of nss as used for build
-- Resolves: rhbz#1332456
-
-* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
-- updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
-- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
-- reverted nss version fix
-
-* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
-- Restricted to depend on exactly same version of nss as use dfor build
-- Resolves: rhbz#1332456
-
-* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-3.b14
-- included shenandoah support in 64b intel
-
-* Sun Apr 24 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-2.b14
-- added patch518 httpsFix1329342.patch
-- test based on SOURCE14 enabled
-- Resolves: rhbz#1329342
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Roll back release number as release 1 never succeeded, even with tests disabled.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Add additional fix to Zero patch to properly handle result on 64-bit big-endian
-- Revert debugging options (aarch64 back to JIT, product build, no -Wno-error)
-- Enable full bootstrap on all architectures to check we are good to go.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Turn tests back on or build will not fail.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Temporarily remove power64 from JIT arches to see if endian issue appears on Zero.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Turn off Java-based checks in a vain attempt to get a complete build.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Turn off -Werror so s390 can build in slowdebug mode.
-- Add fix for formatting issue found by previous s390 build.
-- Resolves: rhbz#1325423
-
-* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Revert settings to production defaults so we can at least get a build.
-- Switch to a slowdebug build to try and unearth remaining issue on s390x.
-- Resolves: rhbz#1325423
-
-* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Disable ECDSA test for now until failure on RHEL 7 is fixed.
-- Resolves: rhbz#1325423
-
-* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Add 8132051 port to Zero.
-- Turn on bootstrap build for all to ensure we are now good to go.
-- Resolves: rhbz#1325423
-
-* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Add 8132051 port to AArch64.
-- Resolves: rhbz#1325423
-
-* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Enable a full bootstrap on JIT archs. Full build held back by Zero archs anyway.
-- Resolves: rhbz#1325423
-
-* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Use basename of test file to avoid misinterpretation of full path as a package
-- Resolves: rhbz#1325423
-
-* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
-- Update to u91b14.
-- Resolves: rhbz#1325423
-
-* Mon Apr 04 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.77-2.b03
-- added patch400 jdk8-archivedJavadoc.patch
-- added javadoc-zip(-debug) subpackage with compressed javadoc
-
-* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
-- Fix typo in test invocation.
-- Resolves: rhbz#1245810
-
-* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
-- Add ECDSA test to ensure ECC is working.
-- Resolves: rhbz#1245810
-
-* Wed Mar 30 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-2.b03
-- Avoid WithSeed versions of NSS functions as they do not fully process the seed
-- List current java.security md5sum so that java.security is replaced and ECC gets
enabled.
-- Resolves: rhbz#1245810
-
-* Wed Mar 23 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-1.b03
-- Update to u77b03.
-
-* Thu Mar 03 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-13.b16
-- When using a compositing WM, the overlay window should be used, not the root window.
-
-* Mon Feb 29 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.72-12.b15
-- Use a simple backport for PR2462/8074839.
-- Don't backport the crc check for pack.gz. It's not tested well upstream.
-
-* Mon Feb 29 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b16
-- Fix regression introduced on s390 by large code cache change.
-- Update to u72b16.
-- Drop 8147805 and jvm.cfg fix which are applied upstream.
-
-* Wed Feb 24 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-11.b15
-- Add patches to allow the SunEC provider to be built with the system NSS install.
-- Re-generate source tarball so it includes ecc_impl.h.
-- Adjust tarball generation script to allow ecc_impl.h to be included.
-- Bring over NSS changes from java-1.7.0-openjdk spec file (NSS_CFLAGS/NSS_LIBS)
-- Remove patch which disables the SunEC provider as it is now usable.
-- Correct spelling mistakes in tarball generation script.
-- Move completely unrelated AArch64 gcc 6 patch into separate file.
-- Resolves: rhbz#1019554 (fedora bug)
-
-* Tue Feb 23 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-10.b15
-- returning accidentlay removed hunk from renamed and so wrongly merged
remove_aarch64_jvm.cfg_divergence.patch
-
-* Mon Feb 22 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-9.b15
-- sync from rhel
-
-* Tue Feb 16 2016 Dan Horák <dan[at]danny.cz> - 1:1.8.0.72-8.b15
-- Refresh s390-java-opts patch
-
-* Tue Feb 16 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-7.b15
-- Use -fno-lifetime-dse over -fno-guess-branch-probability.
- See RHBZ#1306558.
-
-* Mon Feb 15 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-6.b15
-- Add aarch64_FTBFS_rhbz_1307224.patch so as to resolve RHBZ#1307224.
-
-* Fri Feb 12 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-5.b15
-- Add -fno-delete-null-pointer-checks -fno-guess-branch-probability flags to resolve
x86/x86_64 crash.
-
-* Mon Feb 08 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b15
-- Explicitly set the C++ standard to use, as the default has changed to C++ 2014 in GCC
6.
-- Turn off -Werror due to format warnings in HotSpot and -std usage warnings in SCTP.
-- Run tests under the check stage and use the debug build first.
-
-* Fri Feb 05 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.71-4.b15
-- Backport S8148351: Only display resolved symlink for compiler, do not change path
-
-* Wed Feb 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-3.b15
-* touch -t 201401010000 java.security to try to worakround md5sums
-
-* Wed Jan 27 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-1.b15
-- updated to aarch64-jdk8u72-b15 (from aarch64-port/jdk8u)
-- used aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz as new sources
-- removed already upstreamed patch501 8146566.patch
-
-* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-1.b15
-- sync with rhel7
-- security update to CPU 19.1.2016 to u71b15
-
-* Tue Dec 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-14.b17
-- pretrans moved back to lua nd now includes file from copy-jdk-configs instead of call
it
-
-* Tue Dec 15 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.65-13.b17
-- Disable hardened build on non-JIT arches.
- Workaround for RHBZ#1290936.
-
-* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-12.b17
--removed patch4 java-1.8.0-openjdk-PStack-808293.patch
--removed patch13 libjpeg-turbo-1.4-compat.patch
-
-* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-11.b17
-- Define our own optimisation flags based on the optflags macro and pass to OpenJDK build
cflags/cxxflags.
-- Remove -fno-devirtualize as we are now on GCC 5 where the GCC bug it worked around is
fixed.
-- Pass __global_ldflags to --with-extra-ldflags so Fedora linker flags are used in the
build.
-- Also Pass ourcppflags to the OpenJDK build cflags as it wrongly uses them for the
HotSpot C++ build.
-- Add PR2428, PR2462 & S8143855 patches to fix build issues that arise.
-- Resolves: rhbz#1283949
-- Resolves: rhbz#1120792
-
-* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-10.b17
-- Add patch to honour %%{_smp_ncpus_max} from Tuomo Soini
-- Resolves: rhbz#1152896
-
-* Wed Dec 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-9.b17
-- extracted lua scripts moved from pre where they don't work to pretrans
-- requirement on copy-jdk-configs made Week.
-
-* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-8.b17
-- used extracted lua scripts.
-- now depnding on copy-jdk-configs
-- config files persisting in pre instead of %%pretrans
-
-* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
-- changed way of generating the sources. As result:
-- "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60)
-- used aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz as new sources
-
-* Fri Nov 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-5.b17
-- added missing md5sums
-- moved to bundeld lcms
-
-* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-4.b17
-- debug packages priority lowered by 1
-
-* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-3.b17
-- depends on chkconfig >1.7 - added --family support
-
-* Fri Nov 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-2.b17
-- added and applied patch605 soundFontPatch.patch as repalcement for removed sound font
links
-- removed hardcoded soundfont links
-
-* Thu Nov 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-1.b17
-- updated to u65b17
-
-* Mon Nov 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-17.b28
-- policytool manpage followed the binary from devel to jre
-
-* Mon Nov 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-16.b28
-added and applied patch604: aarch64-ifdefbugfix.patch to fix rhbz1276959
-
-* Thu Oct 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-15.b28
-- moved to single source integration forest
-- removed patch patch9999 enableArm64.patch
-- removed patch patch600 %%{name}-rh1191652-hotspot.patch
-
-* Thu Aug 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-14.b24
-- updated aarch64 tarball to contain whole forest of latest
jdk8-aarch64-jdk8u60-b24.2.tar.xz
-- using this forest instead of only hotspot
-- generate_source_tarball.sh - temporarily excluded repos="hotspot" compression
of download
-- not only openjdk/hotspot is replaced, by wholeopenjdk
-- ln -s openjdk jdk8 done after replacing of openjdk
-- patches 9999 601 and 602 exclded for aarch64
-
-* Wed Aug 26 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-13.b24
-- updated aarch64 hotpost to latest jdk8-aarch64-jdk8u60-b24.2.tar.xz
-
-* Wed Aug 19 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-12.b24
-- updated to freshly released jdk8u60-jdk8u60-b27
-
-* Thu Aug 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-11.b24
-- another touching attempt to polycies...
-
-* Mon Aug 03 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
-- arch64 updated to u60-b24 with hope to fix rhbz1249037
-
-* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
-- added one more md5sum test (thanx to Severin!)
- - I guess one more missing
-- doubled slash in md5sum test in post
-
-* Thu Jul 16 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b24
-- updated to security u60-b24
-- moved to openjdk instead of jdk8 topdir in sources
-- removed upstreamed patch99 java-1.8.0-openjdk-linux-4.x.patch
-- removed upstreamed patch503 pr2444.patch
-- removed upstreamed patch505 1208369_memory_leak_gcc5.patch
-- removed upstreamed patch506: gif4.1.patch
- - note: usptream version is suspicious
- GIFLIB_MAJOR >= 5 SplashStreamGifInputFunc, NULL
- ELSE SplashStreamGifInputFunc
- - but the condition seems to be viceversa
-
-
-* Mon Jun 22 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.60-7.b16
-- Require javapackages-tools instead of jpackage-utils.
-
-* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.60-6.b16
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Tue Jun 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.60-5.b16
-- allow build on Linux 4.x kernel
-- refresh s390 size_t patch
-
-* Fri Jun 05 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-4.b16
-- added requires lksctp-tools for headless subpackage to make sun.nio.ch.sctp work
-
-* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b16
-- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
- moved out of "if with_systemtap" block
-
-* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-1.b16
-- updated to u60b16
-- deleted upstreamed patches:
- patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
- patch502 1182694_javaApplicationMenuMisbehave.patch
- patch504 1210739_dns_naming_ipv6_addresses.patch
- patch402 atomic_linux_zero.inline.hpp.patch
- patch401 fix_ZERO_ARCHDEF_ppc.patch
- patch400 ppc_stack_overflow_fix.patch
- patch204 zero-interpreter-fix.patch
-- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
-
-* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
-- updated to 8u45-b14 with hope to fix rhbz#1123870
-
-* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-37.b13
-- added runtime requires for tzdata
-- Remove reference to tz.properties which is no longer used (by gnu.andrew)
-
-* Wed Apr 29 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.45-36.b13
-- Patch hotspot to not use undefined code rather than passing
- -fno-tree-vrp via CFLAGS.
- Resolves: RHBZ#1208369
-- Add upstream patch for DNS nameserver issue with IPv6 addresses.
- Resolves: RHBZ#1210739
-
-* Wed Apr 29 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-35.b13
-- Omit jsa files from power64 file list as well, as they are never generated
-- moved to boot build by openjdk8
-- Use the template interpreter on ppc64le
-
-* Fri Apr 10 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-31.b13
-- repacked sources
-
-* Tue Apr 07 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-30.b13
-- updated to security u45
-- removed patch6: disable-doclint-by-default.patch
-- added patch d318d83c4e74.patch
-- added rhbz1206656_fix_current_stack_pointer.patch
-- renamed PStack-808293.patch -> java-1.8.0-openjdk-PStack-808293.patch
-- renamed remove-intree-libraries.sh -> java-1.8.0-openjdk-remove-intree-libraries.sh
-- renamed to preven conflix with jdk7
-
-* Fri Apr 03 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
-- Add -fno-tree-vrp to flags to prevent hotspot miscompilation.
-- Resolves: RHBZ#1208369
-
-* Thu Apr 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-27.b25
-- bumped release. Needed rebuild by itself on arm
-
-* Tue Mar 31 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-26.b25
-- Make Zero build-able on ARM32.
- Resolves: RHBZ#1206656
-
-* Fri Mar 27 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-25.b25
-- refresh s390 patches
-
-* Fri Mar 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-24.b25
-- added patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
-- added patch502 1182694_javaApplicationMenuMisbehave.patch
-- both upstreamed, will be gone with u60
-
-* Wed Mar 25 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-23.b25
-- Disable various EC algorithms in configuration
-
-* Mon Mar 23 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-22.b25
-- sytemtap made working for dual package
-
-* Tue Mar 03 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-21.b25
-- Added compiler no-warn-
-
-* Fri Feb 20 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
-- Fix zero interpreter build.
-
-* Thu Feb 12 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
-- Fix building with gcc 5 by ignoring return-local-addr warning
-- Include additional debugging info for java class files and test that they are
- present
-
-* Thu Feb 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-20.b25
-- bumped to b25
-- removed upstreamed patch11 hotspot-build-j-directive.patch
-- policies repacked to stop spamming yum update
-- added and used source20 repackReproduciblePolycies.sh
-- added mehanism to force priority size
-
-* Fri Jan 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-19.b12
-- refresh s390 patches
-
-* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-18.b12
-- updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz
-
-* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-17.b12
-- obsoleted gcj and sindoc. rh1149674 and rh1149675
-- removed backup/restore on images and docs in favor of reconfigure in different
directory
-
-* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-16.b12
-- updated both noral and aarch64 tarballs to u40b12
-
-* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-15.b02
-- enabled debug packages
-- removed all provides duplicating package name
-- comments about files moved inside files section (to prevent different javadoc postuns)
- - see (RH1160693)
-
-* Fri Oct 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-13.b02
-- Build against libjpeg-turbo-1.4
-
-* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-13.b02
-- preparing for parallel debug+normal build
-- files and scripelts moved to extendable macros as first step to dual build
-- install and build may be done in loop for both release and slowdebug
-- debugbuild off untill its completed
-
-* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-12.b02
-- added patch12,removeSunEcProvider-RH1154143
-- xdump excluded from ppc64le (rh1156151)
-- Add check for src.zip completeness. See RH1130490 (by sgehwolf(a)redhat.com)
-- Resolves: rhbz#1125260
-
-* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-11.b02
-- fixing flags usages (thanx to jerboaa!)
-
-* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-10.b26
-- sync with rhel7
-
-* Wed Sep 17 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-9.b26
-- Remove LIBDIR and funny definition of _libdir.
-- Fix rpmlint warnings about macros in comments.
-
-* Thu Sep 11 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-8.b26
-- fixed headless to become headless again
- - jre/bin/policytool added to not headless exclude list
-
-* Wed Sep 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-7.b26
-- Update aarch64 hotspot to latest upstream version
-
-* Fri Sep 05 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-6.b26
-- Use %%{power64} instead of %%{ppc64}.
-
-* Thu Sep 04 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-5.b26
-- Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK
-- commented out patch2 (obsolated by 666)
-- all ppc64 added to jitarches
-
-* Thu Sep 04 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-4.b26
-- Use the cpp interpreter on ppc64le.
-
-* Wed Sep 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-3.b26
-- fixed RH1136544, orriginal issue, state of pc64le jit remians mistery
-
-* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-2.b26
-- requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1
-- see RH1130800#c5
-
-* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
-- adapted aarch64 patch
-- removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
-
-* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
-- updated to u40-b02
-- adapted aarch64 patches
-
-* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b01
-- updated to u40-b01
-- adapted rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
-- adapted jdk8042159-allow_using_system_installed_lcms2.patch
-- removed patch8 set-active-window.patch
-- removed patch9 javadoc-error-jdk-8029145.patch
-- removed patch10 javadoc-error-jdk-8037484.patch
-- removed patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
-
-* Tue Aug 19 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-19.b12
-- fixed desktop icons
-- Icon set to java-1.8.0
-- Development removed from policy tool
-
-* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
-- fixed jstack
-
-* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-17.b12
-- added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
-- restriction of tzdata provider, so we will be aware of another possible failure
-
-* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-15.b12
-- fixed provides/obsolates
-
-* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-14.b12
-- forced to build in fully versioned dir
-
-* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-13.b12
-- fixing tapset to support multipleinstalls
-- added more config/norepalce
-- policitool moved to jre
-
-* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-12.b12
-- bumped release to build by previous release.
-- forcing rebuild by jdk8
-- uncommenting forgotten comment on tzdb link
-
-* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-11.b12
-- backporting old fixes:
-- get rid of jre-abrt, uniquesuffix, parallel install, jsa files,
- config(norepalce) bug, -fstack-protector-strong, OrderWithRequires,
- nss config, multilib arches, provides/requires excludes
-- some additional cosmetic changes
-
-* Tue Jul 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.11-8.b12
-- Modify aarch64-specific jvm.cfg to list server vm first
-
-* Mon Jul 21 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-7.b12
-- removed legacy aarch64 switches
- - --with-jvm-variants=client and --disable-precompiled-headers
-
-* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
-- added patch patch9999 enableArm64.patch to enable new hotspot
-
-* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
-- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
-
-* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
-- updated to security u11b12
-
-* Tue Jun 24 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-13.b13
-- Obsolete java-1.7.0-openjdk
-
-* Wed Jun 18 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-12.b13
-- Use system tzdata from tzdata-java
-
-* Thu Jun 12 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
-- Add patch from IcedTea to handle -j and -I correctly
-
-* Wed Jun 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
-- Backport javadoc fixes from upstream
-- Related: rhbz#1107273
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.5-10.b13
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Mon Jun 02 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-9.b13
-- Build with OpenJDK 8
-
-* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-8.b13
-- Backport fix for JDK-8012224
-
-* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-7.b13
-- Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly
-- Resolves rhbz#1101394
-
-* Fri May 23 2014 Dan Horák <dan[at]danny.cz> - 1:1.8.0.5-6.b13
-- Enable build on s390/s390x
-
-* Tue May 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
-- Only check for debug symbols in libjvm if it exists.
-
-* Fri May 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
-- Include all sources in src.zip
-
-* Mon Apr 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
-- Check for debug symbols in libjvm.so
-
-* Thu Apr 24 2014 Brent Baude <baude(a)us.ibm.com> - 1:1.8.0.5-3.b13
-- Add ppc64le support, bz# 1088344
-
-* Wed Apr 23 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-2.b13
-- Build with -fno-devirtualize
-- Don't strip debuginfo from files
-
-* Wed Apr 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
-- Instrument build with various sanitizers.
-
-* Tue Apr 15 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
-- Update to the latest security release: OpenJDK8 u5 b13
-
-* Fri Mar 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-2.b132
-- Include version information in desktop files
-- Move desktop files from tarball to top level source
-
-* Tue Mar 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-1.0.b132
-- Switch from java8- style provides to java- style
-- Bump priority to reflect java version
-
-* Fri Mar 21 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.35.b132
-- Disable doclint for compatiblity
-- Patch contributed by Andrew John Hughes
-
-* Tue Mar 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.34.b132
-- Include jdeps and jjs for aarch64. These are present in b128.
-
-* Mon Mar 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.33.b132
-- Update aarch64 tarball to the latest upstream release
-
-* Fri Mar 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.32.b132
-- Fix `java -version` output
-
-* Fri Mar 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.31.b132
-- updated to rc4 aarch64 tarball
-- outdated removed: patch2031 system-lcmsAARCH64.patch patch2011
system-libjpeg-aarch64.patch
- patch2021 system-libpng-aarch64.patch
-
-* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.30.b132
-- Update to b132
-
-* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.29.b129
-- Fix typo in STRIP_POLICY
-
-* Mon Mar 03 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.28.b129
-- Remove redundant debuginfo files
-- Generate complete debug information for libjvm
-
-* Tue Feb 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.27.b129
-- Fix non-headless libraries
-
-* Tue Feb 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.26.b129
-- Fix incorrect Requires
-
-* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
-- Add -headless subpackage based on java-1.7.0-openjdk
-- Add abrt connector support
-- Add -accessibility subpackage
-
-* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
-- Update to b129.
-
-* Fri Feb 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.25.b126
-- Update to candidate Reference Implementation release.
-
-* Fri Jan 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.24.b123
-- Forward port more patches from java-1.7.0-openjdk
-
-* Mon Jan 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.23.b123
-- Update to jdk8-b123
-
-* Thu Nov 14 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.22.b115
-- Update to jdk8-b115
-
-* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.21.b106
-- added jre/lib/security/blacklisted.certs for aarch64
-- updated to preview_rc2 aarch64 tarball
-
-* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.20.b106
-- Fix paths in tapsets to work on non-x86_64
-- Use system libjpeg
-
-* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.19.b106
-- Fix with_systemtap conditionals
-
-* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.18.b106
-- Update to jdk8-b106
-
-* Tue Aug 13 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.17.b89x
-- Updated aarch64 to latest head
-- Dropped upstreamed patches
-
-* Wed Aug 07 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
-- The zero fix only applies on b89 tarball
-
-* Tue Aug 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
-- Add patch to fix zero on 32-bit build
-
-* Mon Aug 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
-- Added additional build fixes for aarch64
-
-* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.0-0.16.b89x
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Fri Aug 02 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.15.b89
-- Added a missing includes patch (#302/%%{name}-arm64-missing-includes.patch)
-- Added --disable-precompiled-headers for arm64 build
-
-* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
-- added patch 301 - removeMswitchesFromx11.patch
-
-* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
-- added new aarch64 tarball
-
-* Thu Jul 25 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.12.b89
-- ifarchaarch64 then --with-jvm-variants=client
-
-* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
-- prelink dependence excluded also for aaech64
-- arm64 added to jitarches
-- added source100 config.guess to repalce the outdated one in-tree
-- added source101 config.sub to repalce the outdated one in-tree
-- added patch2011 system-libjpegAARCH64.patch (as aarch64-port is little bit diferent)
-- added patch2031 system-lcmsAARCH64.patch (as aarch64-port is little bit diferent)
-- added gcc-c++ build depndece so builddep will result to better situation
-
-* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
-- moved to latest working osurces
-
-* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
-- Moved to hg clone for generating sources.
-
-* Sun Jul 21 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.9.b89
-- added aarch 64 tarball, proposed usage of clone instead of tarballs
-
-* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
-- Switch to xz for compression
-- Fixes RHBZ#979823
-
-* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
-- Priority should be 0 until openjdk8 is released by upstream
-- Fixes RHBZ#964409
-
-* Mon Jun 3 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.8.b89
-- Fix incorrect permissions on ct.sym
-
-* Mon May 20 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.7.b89
-- Fix incorrect permissions on jars
-
-* Fri May 10 2013 Adam Williamson <awilliam(a)redhat.com>
-- update scriptlets to follow current guidelines for updating icon cache
-
-* Tue Apr 30 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.5.b87
-- Update to b87
-- Remove all rhino support; use nashorn instead
-- Remove upstreamed/unapplied patches
-
-* Tue Apr 23 2013 Karsten Hopp <karsten(a)redhat.com> 1:1.8.0.0-0.4.b79
-- update java-1.8.0-openjdk-ppc-zero-hotspot patch
-- use power64 macro
-
-* Thu Mar 28 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.3.b79
-- Add build fix for zero
-- Drop gstabs fixes; enable full debug info instead
-
-* Wed Mar 13 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.2.b79
-- Fix alternatives priority
-
-* Tue Mar 12 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.1.b79.f19
-- Update to jdk8-b79
-- Initial version for Fedora 19
+* Fri Nov 11 2022 Jiri Andrlik <jandrlik(a)redhat.com> - 1:1.8.0.352.b08-2
+ - new package
+ - Related: rhbz#2141984
-* Tue Sep 04 2012 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.0-b53.1
-- Initial build from java-1.7.0-openjdk RPM
commit b7d60ff8839c62c4948da212a203d3521105ac6b
Author: jandrlik <jandrlik(a)redhat.com>
Date: Mon Dec 5 14:12:33 2022 +0100
renaming specfile for new portable rpm
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk-portable.spec
similarity index 100%
rename from java-1.8.0-openjdk.spec
rename to java-1.8.0-openjdk-portable.spec
commit 48e5e99c2641053eacd554440f50ab2fcb79ef93
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 19 01:59:45 2022 +0100
Update to shenandoah-jdk8u352-b08 (GA)
Update release notes for shenandoah-8u352-b08.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index 529115c..90fdc3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -259,3 +259,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u345-b01-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b07-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b08-4curve.tar.xz
diff --git a/NEWS b/NEWS
index a9c038b..3183a73 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,16 @@ Live versions of these release notes can be found at:
*
https://bit.ly/openjdk8u352
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u352.txt
+* Security fixes
+ - JDK-8282252: Improve BigInteger/Decimal validation
+ - JDK-8285662: Better permission resolution
+ - JDK-8286511: Improve macro allocation
+ - JDK-8286519: Better memory handling
+ - JDK-8286526, CVE-2022-21619: Improve NTLM support
+ - JDK-8286533, CVE-2022-21626: Key X509 usages
+ - JDK-8286910, CVE-2022-21624: Improve JNDI lookups
+ - JDK-8286918, CVE-2022-21628: Better HttpServer service
+ - JDK-8288508: Enhance ECDSA usage
* Other changes
- JDK-7131823: bug in GIFImageReader
- JDK-7186258: InetAddress$Cache should replace currentTimeMillis with nanoTime for
more precise and accurate
@@ -21,6 +31,7 @@ Live versions of these release notes can be found at:
- JDK-8136354: [TEST_BUG] Test java/awt/image/RescaleOp/RescaleAlphaTest.java with Bad
action for script
- JDK-8139668: Generate README-build.html from markdown
- JDK-8143847: Remove REF_CLEANER reference category
+ - JDK-8147862: Null check too late in sun.net.httpserver.ServerImpl
- JDK-8150669: C1 intrinsic for Class.isPrimitive
- JDK-8155742: [Windows] robot.keyPress(KeyEvent.VK_ALT_GRAPH) throws
java.lang.IllegalArgumentException in windows
- JDK-8173339: AArch64: Fix minimum stack size computations
@@ -97,6 +108,19 @@ change might only impact existing code that would depend on
PhantomReference being enqueued rather than when the referent be freed
from the heap.
+core-libs/java.net:
+
+JDK-8286918: Better HttpServer service
+======================================
+The HttpServer can be optionally configured with a maximum connection
+limit by setting the jdk.httpserver.maxConnections system property. A
+value of 0 or a negative integer is ignored and considered to
+represent no connection limit. In the case of a positive integer
+value, any newly accepted connections will be first checked against
+the current count of established connections and, if the configured
+limit has been reached, then the newly accepted connection will be
+closed immediately.
+
security-libs/javax.net.ssl:
JDK-8282859: Enable TLSv1.3 by Default on JDK 8 for Client Roles
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3d60f08..2d9d72a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -347,7 +347,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global openjdk_revision jdk8u352-b07
+%global openjdk_revision jdk8u352-b08
%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
@@ -363,12 +363,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2891,6 +2891,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Oct 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b08-1
+- Update to shenandoah-jdk8u352-b08 (GA)
+- Update release notes for shenandoah-8u352-b08.
+- Switch to GA mode for final release.
+
* Sun Oct 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.2.ea
- Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173
- Add test to ensure timezones can be translated
diff --git a/sources b/sources
index 44fb427..237849a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b07-4curve.tar.xz) =
9525cdd009037328e061965c751fae7fb61887d87efadfbc8b361aeee74a3cbb0bc2405f0bd33d3c943862a2eab5d30576e071063a87ec326b1781d29e7974ea
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b08-4curve.tar.xz) =
64a3679f3c5159b5742aac14a1a07d860a33c98a06b705bd106f0e997e591751c2645e9037cb9b4f6093aac69456f28dacf90451f0b083e803db4e5cb35d349f
commit 7264639a9b740cd6b4b1db21dbae85fbb2f74745
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Oct 16 02:03:52 2022 +0100
Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173
Add test to ensure timezones can be translated
diff --git a/TestSecurityProperties.java b/TestSecurityProperties.java
index 552bd0f..2967a32 100644
--- a/TestSecurityProperties.java
+++ b/TestSecurityProperties.java
@@ -1,3 +1,20 @@
+/* TestSecurityProperties -- Ensure system security properties can be used to
+ enable the crypto policies.
+ Copyright (C) 2022 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <
http://www.gnu.org/licenses/>.
+*/
import java.io.File;
import java.io.FileInputStream;
import java.security.Security;
diff --git a/TestTranslations.java b/TestTranslations.java
new file mode 100644
index 0000000..7b2f09b
--- /dev/null
+++ b/TestTranslations.java
@@ -0,0 +1,140 @@
+/* TestTranslations -- Ensure translations are available for new timezones
+ Copyright (C) 2022 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <
http://www.gnu.org/licenses/>.
+*/
+
+import java.text.DateFormatSymbols;
+
+import java.time.ZoneId;
+import java.time.format.TextStyle;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Locale;
+import java.util.Objects;
+import java.util.TimeZone;
+
+public class TestTranslations {
+
+ private static Map<Locale,String[]> KYIV;
+
+ static {
+ Map<Locale,String[]> map = new HashMap<Locale,String[]>();
+ map.put(Locale.US, new String[] { "Eastern European Time",
"GMT+02:00", "EET",
+ "Eastern European Summer Time",
"GMT+03:00", "EEST",
+ "Eastern European Time",
"GMT+02:00", "EET"});
+ map.put(Locale.FRANCE, new String[] { "Heure d'Europe de
l'Est", "UTC+02:00", "EET",
+ "Heure d'\u00e9t\u00e9
d'Europe de l'Est", "UTC+03:00", "EEST",
+ "Heure d'Europe de
l'Est", "UTC+02:00", "EET"});
+ map.put(Locale.GERMANY, new String[] { "Osteurop\u00e4ische Zeit",
"OEZ", "OEZ",
+ "Osteurop\u00e4ische
Sommerzeit", "OESZ", "OESZ",
+ "Osteurop\u00e4ische Zeit",
"OEZ", "OEZ"});
+ KYIV = Collections.unmodifiableMap(map);
+ }
+
+
+ public static void main(String[] args) {
+ if (args.length < 1) {
+ System.err.println("Test must be started with the name of the locale
provider.");
+ System.exit(1);
+ }
+
+ String localeProvider = args[0];
+ System.out.println("Checking sanity of full zone string set...");
+ boolean invalid = Arrays.stream(Locale.getAvailableLocales())
+ .peek(l -> System.out.println("Locale: " + l))
+ .map(l -> DateFormatSymbols.getInstance(l).getZoneStrings())
+ .flatMap(zs -> Arrays.stream(zs))
+ .flatMap(names -> Arrays.stream(names))
+ .filter(name -> Objects.isNull(name) || name.isEmpty())
+ .findAny()
+ .isPresent();
+ if (invalid) {
+ System.err.println("Zone string for a locale returned null or empty
string");
+ System.exit(2);
+ }
+
+ for (Locale l : KYIV.keySet()) {
+ String[] expected = KYIV.get(l);
+ for (String id : new String[] { "Europe/Kiev",
"Europe/Kyiv", "Europe/Uzhgorod", "Europe/Zaporozhye" }) {
+ String expectedShortStd = null;
+ String expectedShortDST = null;
+ String expectedShortGen = null;
+
+ System.out.printf("Checking locale %s for %s...\n", l, id);
+
+ if ("JRE".equals(localeProvider)) {
+ expectedShortStd = expected[2];
+ expectedShortDST = expected[5];
+ expectedShortGen = expected[8];
+ } else if ("CLDR".equals(localeProvider)) {
+ expectedShortStd = expected[1];
+ expectedShortDST = expected[4];
+ expectedShortGen = expected[7];
+ } else {
+ System.err.printf("Invalid locale provider %s\n",
localeProvider);
+ System.exit(3);
+ }
+ System.out.printf("Locale Provider is %s, using short values %s, %s
and %s\n",
+ localeProvider, expectedShortStd, expectedShortDST,
expectedShortGen);
+
+ String longStd = TimeZone.getTimeZone(id).getDisplayName(false,
TimeZone.LONG, l);
+ String shortStd = TimeZone.getTimeZone(id).getDisplayName(false,
TimeZone.SHORT, l);
+ String longDST = TimeZone.getTimeZone(id).getDisplayName(true,
TimeZone.LONG, l);
+ String shortDST = TimeZone.getTimeZone(id).getDisplayName(true,
TimeZone.SHORT, l);
+ String longGen = ZoneId.of(id).getDisplayName(TextStyle.FULL, l);
+ String shortGen = ZoneId.of(id).getDisplayName(TextStyle.SHORT, l);
+
+ if (!expected[0].equals(longStd)) {
+ System.err.printf("Long standard display name for %s in %s was
%s, expected %s\n",
+ id, l, longStd, expected[0]);
+ System.exit(4);
+ }
+
+ if (!expectedShortStd.equals(shortStd)) {
+ System.err.printf("Short standard display name for %s in %s was
%s, expected %s\n",
+ id, l, shortStd, expectedShortStd);
+ System.exit(5);
+ }
+
+ if (!expected[3].equals(longDST)) {
+ System.err.printf("Long DST display name for %s in %s was %s,
expected %s\n",
+ id, l, longDST, expected[3]);
+ System.exit(6);
+ }
+
+ if (!expectedShortDST.equals(shortDST)) {
+ System.err.printf("Short DST display name for %s in %s was %s,
expected %s\n",
+ id, l, shortDST, expectedShortDST);
+ System.exit(7);
+ }
+
+ if (!expected[6].equals(longGen)) {
+ System.err.printf("Long generic display name for %s in %s was
%s, expected %s\n",
+ id, l, longGen, expected[6]);
+ System.exit(8);
+ }
+
+ if (!expectedShortGen.equals(shortGen)) {
+ System.err.printf("Short generic display name for %s in %s was
%s, expected %s\n",
+ id, l, shortGen, expectedShortGen);
+ System.exit(9);
+ }
+ }
+ }
+ }
+}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a9b74e2..3d60f08 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -363,7 +363,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1289,9 +1289,9 @@ Provides: jre%{?1} = %{epoch}:%{version}-%{release}
Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
-# Require zoneinfo data provided by tzdata-java subpackage.
-# 2022a required as of JDK-8283350 in 8u342
-Requires: tzdata-java >= 2022a
+# 2022d required as of JDK-8294357
+# Should be bumped to 2022e once available (JDK-8295173)
+Requires: tzdata-java >= 2022d
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1470,13 +1470,15 @@ Source16: CheckVendor.java
# nss fips configuration file
Source17: nss.fips.cfg.in
+# Ensure translations are available for new timezones
+Source18: TestTranslations.java
+
Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
-
############################################
#
# RPM/distribution specific patches
@@ -1593,13 +1595,17 @@ Patch582: jdk8282231-x86_32-missing_call_effects.patch
#############################################
#
-# Patches appearing in 8u282
+# Patches appearing in 8u362
#
# This section includes patches which are present
# in the listed OpenJDK 8u release and should be
# able to be removed once that release is out
# and used by this RPM.
#############################################
+# JDK-8294357: (tz) Update Timezone Data to 2022d
+Patch2002: jdk8294357-tzdata2022d.patch
+# JDK-8295173: (tz) Update Timezone Data to 2022e
+Patch2003: jdk8295173-tzdata2022e.patch
#############################################
#
@@ -1669,8 +1675,9 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >=
1.7.0.151-2.6.11.3
%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
-# 2022a required as of JDK-8283350 in 8u342
-BuildRequires: tzdata-java >= 2022a
+# 2022d required as of JDK-8294357
+# Should be bumped to 2022e once available (JDK-8295173)
+BuildRequires: tzdata-java >= 2022d
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2050,6 +2057,9 @@ pushd %{top_level_dir_name}
%patch1001 -p1
# nss.cfg PKCS11 support; must come last as it also alters java.security
%patch1000 -p1
+# tzdata updates targetted for 8u362
+%patch2002 -p1
+%patch2003 -p1
popd
# RPM-only fixes
@@ -2369,11 +2379,14 @@ nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false;
fi
%endif
-
# Check correct vendor values have been set
$JAVA_HOME/bin/javac -d . %{SOURCE16}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||")
"%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
+# Check translations are available for new timezones
+$JAVA_HOME/bin/javac -d . %{SOURCE18}
+$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
+
# Check debug symbols are present and can identify code
find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
do
@@ -2878,6 +2891,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Oct 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.2.ea
+- Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173
+- Add test to ensure timezones can be translated
+
* Wed Oct 12 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.1.ea
- Update to shenandoah-jdk8u352-b07 (EA)
- Update release notes for shenandoah-8u352-b07.
diff --git a/jdk8294357-tzdata2022d.patch b/jdk8294357-tzdata2022d.patch
new file mode 100644
index 0000000..7356928
--- /dev/null
+++ b/jdk8294357-tzdata2022d.patch
@@ -0,0 +1,506 @@
+commit 8589b1229cffb9a0ab00baf62ce2d4376d31b055
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Fri Oct 14 22:55:39 2022 +0100
+
+ Backport f67b4de8a07b8158be1dfb5b09cdb4cc5b7ac93b
+
+diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION
+index decb8716b22..889d0e6dad7 100644
+--- a/jdk/make/data/tzdata/VERSION
++++ b/jdk/make/data/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2022c
++tzdata2022d
+diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia
+index 6cb6d2c57cf..1dc7d34f88e 100644
+--- a/jdk/make/data/tzdata/asia
++++ b/jdk/make/data/tzdata/asia
+@@ -3398,10 +3398,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
+ # The winter time in 2015 started on October 23 at 01:00.
+ #
https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY
+ #
http://www.palestinecabinet.gov.ps/portal/meeting/details/27583
+-#
+-# From Paul Eggert (2019-04-10):
+-# For now, guess spring-ahead transitions are at 00:00 on the Saturday
+-# preceding March's last Sunday (i.e., Sat>=24).
+
+ # From P Chan (2021-10-18):
+ #
http://wafa.ps/Pages/Details/34701
+@@ -3418,6 +3414,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
+ # From Heba Hamad (2022-03-10):
+ # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM.
+
++# From Heba Hamad (2022-08-30):
++# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by
++# 60 minutes backwards. Also the state of Palestine adopted the summer
++# and winter time for the years: 2023,2024,2025,2026 ...
++#
https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001...
++# (2022-08-31): ... the Saturday before the last Sunday in March and October
++# at 2:00 AM ,for the years from 2023 to 2026.
++# (2022-09-05):
https://mtit.pna.ps/Site/New/1453
++#
++# From Paul Eggert (2022-08-31):
++# For now, assume that this rule will also be used after 2026.
++
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
+ Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
+@@ -3448,14 +3456,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 -
+ Rule Palestine 2014 only - Oct 24 0:00 0 -
+ Rule Palestine 2015 only - Mar 28 0:00 1:00 S
+ Rule Palestine 2015 only - Oct 23 1:00 0 -
+-Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S
+-Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 -
++Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
++Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
+ Rule Palestine 2019 only - Mar 29 0:00 1:00 S
+-Rule Palestine 2019 only - Oct Sat>=24 0:00 0 -
+-Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S
++Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
++Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
+ Rule Palestine 2020 only - Oct 24 1:00 0 -
+-Rule Palestine 2021 max - Oct Fri>=23 1:00 0 -
+-Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S
++Rule Palestine 2021 only - Oct 29 1:00 0 -
++Rule Palestine 2022 only - Mar 27 0:00 1:00 S
++Rule Palestine 2022 max - Oct Sat<=30 2:00 0 -
++Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
+diff --git a/jdk/make/data/tzdata/backward b/jdk/make/data/tzdata/backward
+index d4a29e8cf29..7765d99aedf 100644
+--- a/jdk/make/data/tzdata/backward
++++ b/jdk/make/data/tzdata/backward
+@@ -113,6 +113,8 @@ Link Etc/UTC Etc/UCT
+ Link Europe/London Europe/Belfast
+ Link Europe/Kyiv Europe/Kiev
+ Link Europe/Chisinau Europe/Tiraspol
++Link Europe/Kyiv Europe/Uzhgorod
++Link Europe/Kyiv Europe/Zaporozhye
+ Link Europe/London GB
+ Link Europe/London GB-Eire
+ Link Etc/GMT GMT+0
+diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe
+index f7eb7a387aa..9e0a538f86d 100644
+--- a/jdk/make/data/tzdata/europe
++++ b/jdk/make/data/tzdata/europe
+@@ -2638,10 +2638,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880
+ # From Alexander Krivenyshev (2014-03-17):
+ # time change at 2:00 (2am) on March 30, 2014
+ #
https://vz.ru/news/2014/3/17/677464.html
+-# From Paul Eggert (2014-03-30):
+-# Simferopol and Sevastopol reportedly changed their central town clocks
+-# late the previous day, but this appears to have been ceremonial
+-# and the discrepancies are small enough to not worry about.
++# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30):
++# The clocks at the railway station in Simferopol were put forward from 22:00
++# to 24:00 the previous day in a "symbolic ceremony"; however, per
++# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings
++# time switch at 2am" on Sunday.
++#
https://www.business-standard.com/article/pti-stories/crimea-to-set-clock...
++#
https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-swit...
++#
https://www.bbc.com/news/av/world-europe-26806583
+ 2:00 EU EE%sT 2014 Mar 30 2:00
+ 4:00 - MSK 2014 Oct 26 2:00s
+ 3:00 - MSK
+@@ -3774,8 +3778,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both
continents.
+ # US colleague David Cochrane) are still trying to get more
+ # information upon these local deviations from Kiev rules.
+ #
+-# From Paul Eggert (2022-02-08):
+-# For now, assume that Ukraine's other three zones followed the same rules,
++# From Paul Eggert (2022-08-27):
++# For now, assume that Ukraine's zones all followed the same rules,
+ # except that Crimea switched to Moscow time in 1994 as described elsewhere.
+
+ # From Igor Karpov, who works for the Ukrainian Ministry of Justice,
+@@ -3845,21 +3849,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both
continents.
+ # * Ukrainian Government's Resolution of 20.03.1992, No. 139.
+ #
http://www.uazakon.com/documents/date_8u/pg_grcasa.htm
+
+-# From Paul Eggert (2022-04-12):
+-# As is usual in tzdb, Ukrainian zones use the most common English spellings.
+-# In particular, tzdb's name Europe/Kyiv uses the most common spelling in
+-# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev,
+-# "Kyiv" is now more common due to widespread reporting of the current
conflict.
+-# Conversely, tzdb continues to use the names Europe/Uzhgorod and
+-# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is
+-# certainly wrong as a transliteration of the Czech "Praha".
+-# English-language spelling of Ukrainian names is in flux, and
+-# some day "Uzhhorod" or "Zaporizhzhia" may become substantially
more
+-# common in English; in the meantime, do not change these
+-# English spellings as that means less disruption for our users.
+-
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-# This represents most of Ukraine. See above for the spelling of "Kyiv".
+ Zone Europe/Kyiv 2:02:04 - LMT 1880
+ 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time
+ 2:00 - EET 1930 Jun 21
+@@ -3869,34 +3859,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880
+ 2:00 1:00 EEST 1991 Sep 29 3:00
+ 2:00 C-Eur EE%sT 1996 May 13
+ 2:00 EU EE%sT
+-# Transcarpathia used CET 1990/1991.
+-# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
+-# "Uzhgorod" is more common in English.
+-Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
+- 1:00 - CET 1940
+- 1:00 C-Eur CE%sT 1944 Oct
+- 1:00 1:00 CEST 1944 Oct 26
+- 1:00 - CET 1945 Jun 29
+- 3:00 Russia MSK/MSD 1990
+- 3:00 - MSK 1990 Jul 1 2:00
+- 1:00 - CET 1991 Mar 31 3:00
+- 2:00 - EET 1992 Mar 20
+- 2:00 C-Eur EE%sT 1996 May 13
+- 2:00 EU EE%sT
+-# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
+-# "Zaporizhzhia" is the transliteration of the Ukrainian name, but
+-# "Zaporozh'ye" is more common in English. Use the common English
+-# spelling, except omit the apostrophe as it is not allowed in
+-# portable Posix file names.
+-Zone Europe/Zaporozhye 2:20:40 - LMT 1880
+- 2:20 - +0220 1924 May 2
+- 2:00 - EET 1930 Jun 21
+- 3:00 - MSK 1941 Aug 25
+- 1:00 C-Eur CE%sT 1943 Oct 25
+- 3:00 Russia MSK/MSD 1991 Mar 31 2:00
+- 2:00 E-Eur EE%sT 1992 Mar 20
+- 2:00 C-Eur EE%sT 1996 May 13
+- 2:00 EU EE%sT
+
+ # Vatican City
+ # See Europe/Rome.
+diff --git a/jdk/make/data/tzdata/southamerica b/jdk/make/data/tzdata/southamerica
+index 13ec081c7e0..3c0e0e2061c 100644
+--- a/jdk/make/data/tzdata/southamerica
++++ b/jdk/make/data/tzdata/southamerica
+@@ -1332,8 +1332,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
+ # for America/Santiago will start on midnight of September 11th;
+ # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas)
+ # will keep UTC -3 "indefinitely"... This is because on September 4th
+-# we will have a voting whether to approve a new Constitution....
+-#
https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sab...
++# we will have a voting whether to approve a new Constitution.
++#
++# From Eduardo Romero Urra (2022-08-17):
++#
https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/...
++#
++# From Paul Eggert (2022-08-17):
++# Although the presidential decree stops at fall 2026, assume that
++# similar DST rules will continue thereafter.
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
+diff --git a/jdk/make/data/tzdata/zone.tab b/jdk/make/data/tzdata/zone.tab
+index 51b65fa273c..ee025196e50 100644
+--- a/jdk/make/data/tzdata/zone.tab
++++ b/jdk/make/data/tzdata/zone.tab
+@@ -424,8 +424,6 @@ TV -0831+17913 Pacific/Funafuti
+ TW +2503+12130 Asia/Taipei
+ TZ -0648+03917 Africa/Dar_es_Salaam
+ UA +5026+03031 Europe/Kyiv Ukraine (most areas)
+-UA +4837+02218 Europe/Uzhgorod Transcarpathia
+-UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk
+ UG +0019+03225 Africa/Kampala
+ UM +2813-17722 Pacific/Midway Midway Islands
+ UM +1917+16637 Pacific/Wake Wake Island
+diff --git a/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java
b/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java
+index 43bddd5859a..4b84cda3067 100644
+--- a/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java
++++ b/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java
+@@ -573,12 +573,8 @@ public final class ZoneInfoFile {
+ // we can then pass in the dom = -1, dow > 0 into ZoneInfo
+ //
+ // hacking, assume the >=24 is the result of ZRB optimization
for
+- // "last", it works for now. From tzdata2020d this
hacking
+- // will not work for Asia/Gaza and Asia/Hebron which follow
+- // Palestine DST rules.
+- if (dom < 0 || dom >= 24 &&
+- !(zoneId.equals("Asia/Gaza") ||
+- zoneId.equals("Asia/Hebron"))) {
++ // "last", it works for now.
++ if (dom < 0 || dom >= 24) {
+ params[1] = -1;
+ params[2] = toCalendarDOW[dow];
+ } else {
+@@ -600,7 +596,6 @@ public final class ZoneInfoFile {
+ params[7] = 0;
+ } else {
+ // hacking: see comment above
+- // No need of hacking for Asia/Gaza and Asia/Hebron from tz2021e
+ if (dom < 0 || dom >= 24) {
+ params[6] = -1;
+ params[7] = toCalendarDOW[dow];
+diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
+index c32bee39fba..71470168456 100644
+--- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
++++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
+@@ -1 +1 @@
+-tzdata2022c
++tzdata2022d
+diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt
b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt
+index a5e6428a3f5..e3ce742f887 100644
+--- a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt
++++ b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt
+@@ -183,6 +183,8 @@ Link Etc/UTC Etc/UCT
+ Link Europe/London Europe/Belfast
+ Link Europe/Kyiv Europe/Kiev
+ Link Europe/Chisinau Europe/Tiraspol
++Link Europe/Kyiv Europe/Uzhgorod
++Link Europe/Kyiv Europe/Zaporozhye
+ Link Europe/London GB
+ Link Europe/London GB-Eire
+ Link Etc/GMT GMT+0
+diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
+index fc148537f1f..b3823958ae4 100644
+--- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
++++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
+@@ -163,11 +163,9 @@ Europe/Simferopol MSK
+ Europe/Sofia EET EEST
+ Europe/Tallinn EET EEST
+ Europe/Tirane CET CEST
+-Europe/Uzhgorod EET EEST
+ Europe/Vienna CET CEST
+ Europe/Vilnius EET EEST
+ Europe/Warsaw CET CEST
+-Europe/Zaporozhye EET EEST
+ Europe/Zurich CET CEST
+ HST HST
+ MET MET MEST
+diff --git a/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
b/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
+index 3aad69f8118..c682531d4bd 100644
+--- a/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
++++ b/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
+@@ -173,10 +173,19 @@ public class TestZoneInfo310 {
+ * Temporary ignoring the failing TimeZones which are having zone
+ * rules defined till year 2037 and/or above and have negative DST
+ * save time in IANA tzdata. This bug is tracked via JDK-8223388.
++ *
++ * Tehran/Iran rule has rules beyond 2037, in which javazic assumes
++ * to be the last year. Thus javazic's rule is based on year 2037
++ * (Mar 20th/Sep 20th are the cutover dates), while the real rule
++ * has year 2087 where Mar 21st/Sep 21st are the cutover dates.
+ */
+- if (zid.equals("Africa/Casablanca") ||
zid.equals("Africa/El_Aaiun")
+- || zid.equals("Asia/Tehran") || zid.equals("Iran"))
{
+- continue;
++ if (zid.equals("Africa/Casablanca") || // uses "Morocco"
rule
++ zid.equals("Africa/El_Aaiun") || // uses "Morocco"
rule
++ zid.equals("Asia/Tehran") || // last rule mismatch
++ zid.equals("Asia/Gaza") || // uses "Palestine" rule
++ zid.equals("Asia/Hebron") || // uses "Palestine"
rule
++ zid.equals("Iran")) { // last rule mismatch
++ continue;
+ }
+ if (! zi.equalsTo(ziOLD)) {
+ System.out.println(zi.diffsTo(ziOLD));
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION
b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+index decb8716b22..889d0e6dad7 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION
++++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2022c
++tzdata2022d
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia
b/jdk/test/sun/util/calendar/zi/tzdata/asia
+index 6cb6d2c57cf..1dc7d34f88e 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/asia
++++ b/jdk/test/sun/util/calendar/zi/tzdata/asia
+@@ -3398,10 +3398,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
+ # The winter time in 2015 started on October 23 at 01:00.
+ #
https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY
+ #
http://www.palestinecabinet.gov.ps/portal/meeting/details/27583
+-#
+-# From Paul Eggert (2019-04-10):
+-# For now, guess spring-ahead transitions are at 00:00 on the Saturday
+-# preceding March's last Sunday (i.e., Sat>=24).
+
+ # From P Chan (2021-10-18):
+ #
http://wafa.ps/Pages/Details/34701
+@@ -3418,6 +3414,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
+ # From Heba Hamad (2022-03-10):
+ # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM.
+
++# From Heba Hamad (2022-08-30):
++# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by
++# 60 minutes backwards. Also the state of Palestine adopted the summer
++# and winter time for the years: 2023,2024,2025,2026 ...
++#
https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001...
++# (2022-08-31): ... the Saturday before the last Sunday in March and October
++# at 2:00 AM ,for the years from 2023 to 2026.
++# (2022-09-05):
https://mtit.pna.ps/Site/New/1453
++#
++# From Paul Eggert (2022-08-31):
++# For now, assume that this rule will also be used after 2026.
++
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
+ Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
+@@ -3448,14 +3456,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 -
+ Rule Palestine 2014 only - Oct 24 0:00 0 -
+ Rule Palestine 2015 only - Mar 28 0:00 1:00 S
+ Rule Palestine 2015 only - Oct 23 1:00 0 -
+-Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S
+-Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 -
++Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
++Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
+ Rule Palestine 2019 only - Mar 29 0:00 1:00 S
+-Rule Palestine 2019 only - Oct Sat>=24 0:00 0 -
+-Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S
++Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
++Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
+ Rule Palestine 2020 only - Oct 24 1:00 0 -
+-Rule Palestine 2021 max - Oct Fri>=23 1:00 0 -
+-Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S
++Rule Palestine 2021 only - Oct 29 1:00 0 -
++Rule Palestine 2022 only - Mar 27 0:00 1:00 S
++Rule Palestine 2022 max - Oct Sat<=30 2:00 0 -
++Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/backward
b/jdk/test/sun/util/calendar/zi/tzdata/backward
+index d4a29e8cf29..7765d99aedf 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/backward
++++ b/jdk/test/sun/util/calendar/zi/tzdata/backward
+@@ -113,6 +113,8 @@ Link Etc/UTC Etc/UCT
+ Link Europe/London Europe/Belfast
+ Link Europe/Kyiv Europe/Kiev
+ Link Europe/Chisinau Europe/Tiraspol
++Link Europe/Kyiv Europe/Uzhgorod
++Link Europe/Kyiv Europe/Zaporozhye
+ Link Europe/London GB
+ Link Europe/London GB-Eire
+ Link Etc/GMT GMT+0
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe
b/jdk/test/sun/util/calendar/zi/tzdata/europe
+index f7eb7a387aa..9e0a538f86d 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/europe
++++ b/jdk/test/sun/util/calendar/zi/tzdata/europe
+@@ -2638,10 +2638,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880
+ # From Alexander Krivenyshev (2014-03-17):
+ # time change at 2:00 (2am) on March 30, 2014
+ #
https://vz.ru/news/2014/3/17/677464.html
+-# From Paul Eggert (2014-03-30):
+-# Simferopol and Sevastopol reportedly changed their central town clocks
+-# late the previous day, but this appears to have been ceremonial
+-# and the discrepancies are small enough to not worry about.
++# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30):
++# The clocks at the railway station in Simferopol were put forward from 22:00
++# to 24:00 the previous day in a "symbolic ceremony"; however, per
++# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings
++# time switch at 2am" on Sunday.
++#
https://www.business-standard.com/article/pti-stories/crimea-to-set-clock...
++#
https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-swit...
++#
https://www.bbc.com/news/av/world-europe-26806583
+ 2:00 EU EE%sT 2014 Mar 30 2:00
+ 4:00 - MSK 2014 Oct 26 2:00s
+ 3:00 - MSK
+@@ -3774,8 +3778,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both
continents.
+ # US colleague David Cochrane) are still trying to get more
+ # information upon these local deviations from Kiev rules.
+ #
+-# From Paul Eggert (2022-02-08):
+-# For now, assume that Ukraine's other three zones followed the same rules,
++# From Paul Eggert (2022-08-27):
++# For now, assume that Ukraine's zones all followed the same rules,
+ # except that Crimea switched to Moscow time in 1994 as described elsewhere.
+
+ # From Igor Karpov, who works for the Ukrainian Ministry of Justice,
+@@ -3845,21 +3849,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both
continents.
+ # * Ukrainian Government's Resolution of 20.03.1992, No. 139.
+ #
http://www.uazakon.com/documents/date_8u/pg_grcasa.htm
+
+-# From Paul Eggert (2022-04-12):
+-# As is usual in tzdb, Ukrainian zones use the most common English spellings.
+-# In particular, tzdb's name Europe/Kyiv uses the most common spelling in
+-# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev,
+-# "Kyiv" is now more common due to widespread reporting of the current
conflict.
+-# Conversely, tzdb continues to use the names Europe/Uzhgorod and
+-# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is
+-# certainly wrong as a transliteration of the Czech "Praha".
+-# English-language spelling of Ukrainian names is in flux, and
+-# some day "Uzhhorod" or "Zaporizhzhia" may become substantially
more
+-# common in English; in the meantime, do not change these
+-# English spellings as that means less disruption for our users.
+-
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-# This represents most of Ukraine. See above for the spelling of "Kyiv".
+ Zone Europe/Kyiv 2:02:04 - LMT 1880
+ 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time
+ 2:00 - EET 1930 Jun 21
+@@ -3869,34 +3859,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880
+ 2:00 1:00 EEST 1991 Sep 29 3:00
+ 2:00 C-Eur EE%sT 1996 May 13
+ 2:00 EU EE%sT
+-# Transcarpathia used CET 1990/1991.
+-# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
+-# "Uzhgorod" is more common in English.
+-Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
+- 1:00 - CET 1940
+- 1:00 C-Eur CE%sT 1944 Oct
+- 1:00 1:00 CEST 1944 Oct 26
+- 1:00 - CET 1945 Jun 29
+- 3:00 Russia MSK/MSD 1990
+- 3:00 - MSK 1990 Jul 1 2:00
+- 1:00 - CET 1991 Mar 31 3:00
+- 2:00 - EET 1992 Mar 20
+- 2:00 C-Eur EE%sT 1996 May 13
+- 2:00 EU EE%sT
+-# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
+-# "Zaporizhzhia" is the transliteration of the Ukrainian name, but
+-# "Zaporozh'ye" is more common in English. Use the common English
+-# spelling, except omit the apostrophe as it is not allowed in
+-# portable Posix file names.
+-Zone Europe/Zaporozhye 2:20:40 - LMT 1880
+- 2:20 - +0220 1924 May 2
+- 2:00 - EET 1930 Jun 21
+- 3:00 - MSK 1941 Aug 25
+- 1:00 C-Eur CE%sT 1943 Oct 25
+- 3:00 Russia MSK/MSD 1991 Mar 31 2:00
+- 2:00 E-Eur EE%sT 1992 Mar 20
+- 2:00 C-Eur EE%sT 1996 May 13
+- 2:00 EU EE%sT
+
+ # Vatican City
+ # See Europe/Rome.
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/southamerica
b/jdk/test/sun/util/calendar/zi/tzdata/southamerica
+index 13ec081c7e0..3c0e0e2061c 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/southamerica
++++ b/jdk/test/sun/util/calendar/zi/tzdata/southamerica
+@@ -1332,8 +1332,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
+ # for America/Santiago will start on midnight of September 11th;
+ # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas)
+ # will keep UTC -3 "indefinitely"... This is because on September 4th
+-# we will have a voting whether to approve a new Constitution....
+-#
https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sab...
++# we will have a voting whether to approve a new Constitution.
++#
++# From Eduardo Romero Urra (2022-08-17):
++#
https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/...
++#
++# From Paul Eggert (2022-08-17):
++# Although the presidential decree stops at fall 2026, assume that
++# similar DST rules will continue thereafter.
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab
b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab
+index 51b65fa273c..ee025196e50 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab
++++ b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab
+@@ -424,8 +424,6 @@ TV -0831+17913 Pacific/Funafuti
+ TW +2503+12130 Asia/Taipei
+ TZ -0648+03917 Africa/Dar_es_Salaam
+ UA +5026+03031 Europe/Kyiv Ukraine (most areas)
+-UA +4837+02218 Europe/Uzhgorod Transcarpathia
+-UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk
+ UG +0019+03225 Africa/Kampala
+ UM +2813-17722 Pacific/Midway Midway Islands
+ UM +1917+16637 Pacific/Wake Wake Island
diff --git a/jdk8295173-tzdata2022e.patch b/jdk8295173-tzdata2022e.patch
new file mode 100644
index 0000000..a7d23ef
--- /dev/null
+++ b/jdk8295173-tzdata2022e.patch
@@ -0,0 +1,813 @@
+commit 44ea8322b2f62e3d8139a78923e3bf017e535989
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Sun Oct 16 03:02:37 2022 +0100
+
+ Backport 21407dec0156301871a83328615e4d975c4287c4
+
+diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION
+index 889d0e6dad7..b8cb36e69f4 100644
+--- a/jdk/make/data/tzdata/VERSION
++++ b/jdk/make/data/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2022d
++tzdata2022e
+diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia
+index 1dc7d34f88e..f1771e42a71 100644
+--- a/jdk/make/data/tzdata/asia
++++ b/jdk/make/data/tzdata/asia
+@@ -2254,6 +2254,17 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
+ # From the Arabic version, it seems to say it would be at midnight
+ # (assume 24:00) on the last Thursday in February, starting from 2022.
+
++# From Issam Al-Zuwairi (2022-10-05):
++# The Council of Ministers in Jordan decided Wednesday 5th October 2022,
++# that daylight saving time (DST) will be throughout the year....
++#
++# From Brian Inglis (2022-10-06):
++#
https://petra.gov.jo/Include/InnerPage.jsp?ID=45567&lang=en&name=...
++#
++# From Paul Eggert (2022-10-05):
++# Like Syria, model this as a transition from EEST +03 (DST) to plain +03
++# (non-DST) at the point where DST would otherwise have ended.
++
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Jordan 1973 only - Jun 6 0:00 1:00 S
+ Rule Jordan 1973 1975 - Oct 1 0:00 0 -
+@@ -2285,11 +2296,12 @@ Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
+ Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
+ Rule Jordan 2013 only - Dec 20 0:00 0 -
+ Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
+-Rule Jordan 2014 max - Oct lastFri 0:00s 0 -
+-Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S
++Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
++Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Amman 2:23:44 - LMT 1931
+- 2:00 Jordan EE%sT
++ 2:00 Jordan EE%sT 2022 Oct 28 0:00s
++ 3:00 - +03
+
+
+ # Kazakhstan
+@@ -3838,19 +3850,27 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
+ # Our brief summary:
+ #
https://www.timeanddate.com/news/time/syria-dst-2012.html
+
+-# From Arthur David Olson (2012-03-27):
+-# Assume last Friday in March going forward XXX.
++# From Steffen Thorsen (2022-10-05):
++# Syria is adopting year-round DST, starting this autumn....
++# From
https://www.enabbaladi.net/archives/607812
++# "This [the decision] came after the weekly government meeting today,
++# Tuesday 4 October ..."
++#
++# From Paul Eggert (2022-10-05):
++# Like Jordan, model this as a transition from EEST +03 (DST) to plain +03
++# (non-DST) at the point where DST would otherwise have ended.
+
+ Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
+ Rule Syria 2008 only - Nov 1 0:00 0 -
+ Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
+ Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
+-Rule Syria 2012 max - Mar lastFri 0:00 1:00 S
+-Rule Syria 2009 max - Oct lastFri 0:00 0 -
++Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
++Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
+- 2:00 Syria EE%sT
++ 2:00 Syria EE%sT 2022 Oct 28 0:00
++ 3:00 - +03
+
+ # Tajikistan
+ # From Shanks & Pottenger.
+diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe
+index 9e0a538f86d..930cede4cf4 100644
+--- a/jdk/make/data/tzdata/europe
++++ b/jdk/make/data/tzdata/europe
+@@ -3417,7 +3417,7 @@ Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u
+ 0:00 Spain WE%sT 1940 Mar 16 23:00
+ 1:00 Spain CE%sT 1979
+ 1:00 EU CE%sT
+-Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44
++Zone Africa/Ceuta -0:21:16 - LMT 1901 Jan 1 0:00u
+ 0:00 - WET 1918 May 6 23:00
+ 0:00 1:00 WEST 1918 Oct 7 23:00
+ 0:00 - WET 1924
+diff --git a/jdk/make/data/tzdata/northamerica b/jdk/make/data/tzdata/northamerica
+index 114cef14cce..ce4ee74582c 100644
+--- a/jdk/make/data/tzdata/northamerica
++++ b/jdk/make/data/tzdata/northamerica
+@@ -462,7 +462,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
+ Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
+ Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
++Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1920
+ -6:00 Chicago C%sT 1936 Mar 1 2:00
+ -5:00 - EST 1936 Nov 15 2:00
+@@ -471,7 +471,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
+ -6:00 Chicago C%sT 1967
+ -6:00 US C%sT
+ # Oliver County, ND switched from mountain to central time on 1992-10-25.
+-Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
++Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1992 Oct 25 2:00
+ -6:00 US C%sT
+ # Morton County, ND, switched from mountain to central time on
+@@ -481,7 +481,7 @@ Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
+ # Jones, Mellette, and Todd Counties in South Dakota;
+ # but in practice these other counties were already observing central time.
+ # See <
http://www.epa.gov/fedrgstr/EPA-IMPACT/2003/October/Day-28/i27056.htm>.
+-Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
++Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 2003 Oct 26 2:00
+ -6:00 US C%sT
+
+@@ -498,7 +498,7 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18
12:14:21
+ # largest city in Mercer County). Google Maps places Beulah's city hall
+ # at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of
6h47'07".
+
+-Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53
++Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 2010 Nov 7 2:00
+ -6:00 US C%sT
+
+@@ -530,7 +530,7 @@ Rule Denver 1921 only - May 22 2:00 0 S
+ Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
+ Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
++Zone America/Denver -6:59:56 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1920
+ -7:00 Denver M%sT 1942
+ -7:00 US M%sT 1946
+@@ -583,7 +583,7 @@ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
+ Rule CA 1950 1961 - Sep lastSun 2:00 0 S
+ Rule CA 1962 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
++Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
+ -8:00 US P%sT 1946
+ -8:00 CA P%sT 1967
+ -8:00 US P%sT
+@@ -845,7 +845,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00
+ # Go with the Arizona State Library instead.
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
++Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1944 Jan 1 0:01
+ -7:00 - MST 1944 Apr 1 0:01
+ -7:00 US M%sT 1944 Oct 1 0:01
+@@ -873,7 +873,7 @@ Link America/Phoenix America/Creston
+ # switched four weeks late in 1974.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11
++Zone America/Boise -7:44:49 - LMT 1883 Nov 18 20:00u
+ -8:00 US P%sT 1923 May 13 2:00
+ -7:00 US M%sT 1974
+ -7:00 - MST 1974 Feb 3 2:00
+@@ -945,7 +945,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
+ Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
+ Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
++Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1920
+ -6:00 Indianapolis C%sT 1942
+ -6:00 US C%sT 1946
+@@ -965,7 +965,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
+ Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
+ Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37
++Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1951
+ -6:00 Marengo C%sT 1961 Apr 30 2:00
+ -5:00 - EST 1969
+@@ -989,7 +989,7 @@ Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
+ Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
+ Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53
++Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Vincennes C%sT 1964 Apr 26 2:00
+ -5:00 - EST 1969
+@@ -1009,7 +1009,7 @@ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
+ Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57
++Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Perry C%sT 1964 Apr 26 2:00
+ -5:00 - EST 1967 Oct 29 2:00
+@@ -1026,7 +1026,7 @@ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
+ Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53
++Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1955
+ -6:00 Pike C%sT 1965 Apr 25 2:00
+ -5:00 - EST 1966 Oct 30 2:00
+@@ -1048,7 +1048,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
+ Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
+ Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30
++Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1947
+ -6:00 Starke C%sT 1962 Apr 29 2:00
+ -5:00 - EST 1963 Oct 27 2:00
+@@ -1064,7 +1064,7 @@ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
+ Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
+ Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
++Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Pulaski C%sT 1961 Apr 30 2:00
+ -5:00 - EST 1969
+@@ -1075,7 +1075,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
+ #
+ # Switzerland County, Indiana, did not observe DST from 1973 through 2005.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
++Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1954 Apr 25 2:00
+ -5:00 - EST 1969
+ -5:00 US E%sT 1973
+@@ -1111,7 +1111,7 @@ Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
+ Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
+ Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
++Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1921
+ -6:00 Louisville C%sT 1942
+ -6:00 US C%sT 1946
+@@ -1145,7 +1145,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18
12:16:58
+ # Federal Register 65, 160 (2000-08-17), pp 50154-50158.
+ #
https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm
+ #
+-Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
++Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 - CST 1968
+ -6:00 US C%sT 2000 Oct 29 2:00
+@@ -2640,6 +2640,8 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
+ # longitude they are located at.
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
++Rule Mexico 1931 only - May 1 23:00 1:00 D
++Rule Mexico 1931 only - Oct 1 0:00 0 S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+ Rule Mexico 1940 only - Dec 9 0:00 1:00 D
+@@ -2656,13 +2658,13 @@ Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D
+ Rule Mexico 2002 max - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ # Quintana Roo; represented by Cancún
+-Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56
++Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1981 Dec 23
+ -5:00 Mexico E%sT 1998 Aug 2 2:00
+ -6:00 Mexico C%sT 2015 Feb 1 2:00
+ -5:00 - EST
+ # Campeche, Yucatán; represented by Mérida
+-Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
++Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1981 Dec 23
+ -5:00 - EST 1982 Dec 2
+ -6:00 Mexico C%sT
+@@ -2676,23 +2678,21 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
+ # See: Inicia mañana Horario de Verano en zona fronteriza, El Universal,
+ # 2016-03-12
+ #
http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-h...
+-Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00
++Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1988
+ -6:00 US C%sT 1989
+ -6:00 Mexico C%sT 2010
+ -6:00 US C%sT
+ # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border)
+-Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44
++Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1988
+ -6:00 US C%sT 1989
+ -6:00 Mexico C%sT
+ # Central Mexico
+-Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
++Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 Mexico C%sT 2001 Sep 30 2:00
+ -6:00 - CST 2002 Feb 20
+ -6:00 Mexico C%sT
+@@ -2700,35 +2700,29 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
+ # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe,
+ # Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides.
+ # (See the 2016-03-12 El Universal source mentioned above.)
+-Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20
++Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+ -6:00 Mexico C%sT 1998
+ -6:00 - CST 1998 Apr Sun>=1 3:00
+ -7:00 Mexico M%sT 2010
+ -7:00 US M%sT
+ # Chihuahua (away from US border)
+-Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
++Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+ -6:00 Mexico C%sT 1998
+ -6:00 - CST 1998 Apr Sun>=1 3:00
+ -7:00 Mexico M%sT
+ # Sonora
+-Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
++Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+@@ -2763,24 +2757,20 @@ Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
+ # Use "Bahia_Banderas" to keep the name to fourteen characters.
+
+ # Mazatlán
+-Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
++Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+ -7:00 Mexico M%sT
+
+ # Bahía de Banderas
+-Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
++Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+@@ -2788,7 +2778,7 @@ Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
+ -6:00 Mexico C%sT
+
+ # Baja California
+-Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
++Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1924
+ -8:00 - PST 1927 Jun 10 23:00
+ -7:00 - MST 1930 Nov 15
+diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
+index 71470168456..0cad939008f 100644
+--- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
++++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION
+@@ -1 +1 @@
+-tzdata2022d
++tzdata2022e
+diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
+index b3823958ae4..2f2786f1c69 100644
+--- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
++++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt
+@@ -97,9 +97,7 @@ America/Winnipeg CST CDT
+ America/Yakutat AKST AKDT
+ America/Yellowknife MST MDT
+ Antarctica/Macquarie AEST AEDT
+-Asia/Amman EET EEST
+ Asia/Beirut EET EEST
+-Asia/Damascus EET EEST
+ Asia/Famagusta EET EEST
+ Asia/Gaza EET EEST
+ Asia/Hebron EET EEST
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION
b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+index 889d0e6dad7..b8cb36e69f4 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION
++++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2022d
++tzdata2022e
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia
b/jdk/test/sun/util/calendar/zi/tzdata/asia
+index 1dc7d34f88e..f1771e42a71 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/asia
++++ b/jdk/test/sun/util/calendar/zi/tzdata/asia
+@@ -2254,6 +2254,17 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
+ # From the Arabic version, it seems to say it would be at midnight
+ # (assume 24:00) on the last Thursday in February, starting from 2022.
+
++# From Issam Al-Zuwairi (2022-10-05):
++# The Council of Ministers in Jordan decided Wednesday 5th October 2022,
++# that daylight saving time (DST) will be throughout the year....
++#
++# From Brian Inglis (2022-10-06):
++#
https://petra.gov.jo/Include/InnerPage.jsp?ID=45567&lang=en&name=...
++#
++# From Paul Eggert (2022-10-05):
++# Like Syria, model this as a transition from EEST +03 (DST) to plain +03
++# (non-DST) at the point where DST would otherwise have ended.
++
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Jordan 1973 only - Jun 6 0:00 1:00 S
+ Rule Jordan 1973 1975 - Oct 1 0:00 0 -
+@@ -2285,11 +2296,12 @@ Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
+ Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
+ Rule Jordan 2013 only - Dec 20 0:00 0 -
+ Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
+-Rule Jordan 2014 max - Oct lastFri 0:00s 0 -
+-Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S
++Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
++Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Amman 2:23:44 - LMT 1931
+- 2:00 Jordan EE%sT
++ 2:00 Jordan EE%sT 2022 Oct 28 0:00s
++ 3:00 - +03
+
+
+ # Kazakhstan
+@@ -3838,19 +3850,27 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
+ # Our brief summary:
+ #
https://www.timeanddate.com/news/time/syria-dst-2012.html
+
+-# From Arthur David Olson (2012-03-27):
+-# Assume last Friday in March going forward XXX.
++# From Steffen Thorsen (2022-10-05):
++# Syria is adopting year-round DST, starting this autumn....
++# From
https://www.enabbaladi.net/archives/607812
++# "This [the decision] came after the weekly government meeting today,
++# Tuesday 4 October ..."
++#
++# From Paul Eggert (2022-10-05):
++# Like Jordan, model this as a transition from EEST +03 (DST) to plain +03
++# (non-DST) at the point where DST would otherwise have ended.
+
+ Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
+ Rule Syria 2008 only - Nov 1 0:00 0 -
+ Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
+ Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
+-Rule Syria 2012 max - Mar lastFri 0:00 1:00 S
+-Rule Syria 2009 max - Oct lastFri 0:00 0 -
++Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
++Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
+- 2:00 Syria EE%sT
++ 2:00 Syria EE%sT 2022 Oct 28 0:00
++ 3:00 - +03
+
+ # Tajikistan
+ # From Shanks & Pottenger.
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe
b/jdk/test/sun/util/calendar/zi/tzdata/europe
+index 9e0a538f86d..930cede4cf4 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/europe
++++ b/jdk/test/sun/util/calendar/zi/tzdata/europe
+@@ -3417,7 +3417,7 @@ Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u
+ 0:00 Spain WE%sT 1940 Mar 16 23:00
+ 1:00 Spain CE%sT 1979
+ 1:00 EU CE%sT
+-Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44
++Zone Africa/Ceuta -0:21:16 - LMT 1901 Jan 1 0:00u
+ 0:00 - WET 1918 May 6 23:00
+ 0:00 1:00 WEST 1918 Oct 7 23:00
+ 0:00 - WET 1924
+diff --git a/jdk/test/sun/util/calendar/zi/tzdata/northamerica
b/jdk/test/sun/util/calendar/zi/tzdata/northamerica
+index 114cef14cce..ce4ee74582c 100644
+--- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica
++++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica
+@@ -462,7 +462,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
+ Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
+ Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
++Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1920
+ -6:00 Chicago C%sT 1936 Mar 1 2:00
+ -5:00 - EST 1936 Nov 15 2:00
+@@ -471,7 +471,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
+ -6:00 Chicago C%sT 1967
+ -6:00 US C%sT
+ # Oliver County, ND switched from mountain to central time on 1992-10-25.
+-Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
++Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1992 Oct 25 2:00
+ -6:00 US C%sT
+ # Morton County, ND, switched from mountain to central time on
+@@ -481,7 +481,7 @@ Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
+ # Jones, Mellette, and Todd Counties in South Dakota;
+ # but in practice these other counties were already observing central time.
+ # See <
http://www.epa.gov/fedrgstr/EPA-IMPACT/2003/October/Day-28/i27056.htm>.
+-Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
++Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 2003 Oct 26 2:00
+ -6:00 US C%sT
+
+@@ -498,7 +498,7 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18
12:14:21
+ # largest city in Mercer County). Google Maps places Beulah's city hall
+ # at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of
6h47'07".
+
+-Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53
++Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 2010 Nov 7 2:00
+ -6:00 US C%sT
+
+@@ -530,7 +530,7 @@ Rule Denver 1921 only - May 22 2:00 0 S
+ Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
+ Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
++Zone America/Denver -6:59:56 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1920
+ -7:00 Denver M%sT 1942
+ -7:00 US M%sT 1946
+@@ -583,7 +583,7 @@ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
+ Rule CA 1950 1961 - Sep lastSun 2:00 0 S
+ Rule CA 1962 1966 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
++Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u
+ -8:00 US P%sT 1946
+ -8:00 CA P%sT 1967
+ -8:00 US P%sT
+@@ -845,7 +845,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00
+ # Go with the Arizona State Library instead.
+
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
++Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u
+ -7:00 US M%sT 1944 Jan 1 0:01
+ -7:00 - MST 1944 Apr 1 0:01
+ -7:00 US M%sT 1944 Oct 1 0:01
+@@ -873,7 +873,7 @@ Link America/Phoenix America/Creston
+ # switched four weeks late in 1974.
+ #
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11
++Zone America/Boise -7:44:49 - LMT 1883 Nov 18 20:00u
+ -8:00 US P%sT 1923 May 13 2:00
+ -7:00 US M%sT 1974
+ -7:00 - MST 1974 Feb 3 2:00
+@@ -945,7 +945,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
+ Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
+ Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
++Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1920
+ -6:00 Indianapolis C%sT 1942
+ -6:00 US C%sT 1946
+@@ -965,7 +965,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
+ Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
+ Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37
++Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1951
+ -6:00 Marengo C%sT 1961 Apr 30 2:00
+ -5:00 - EST 1969
+@@ -989,7 +989,7 @@ Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
+ Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
+ Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53
++Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Vincennes C%sT 1964 Apr 26 2:00
+ -5:00 - EST 1969
+@@ -1009,7 +1009,7 @@ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
+ Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57
++Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Perry C%sT 1964 Apr 26 2:00
+ -5:00 - EST 1967 Oct 29 2:00
+@@ -1026,7 +1026,7 @@ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
+ Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53
++Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1955
+ -6:00 Pike C%sT 1965 Apr 25 2:00
+ -5:00 - EST 1966 Oct 30 2:00
+@@ -1048,7 +1048,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
+ Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
+ Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30
++Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1947
+ -6:00 Starke C%sT 1962 Apr 29 2:00
+ -5:00 - EST 1963 Oct 27 2:00
+@@ -1064,7 +1064,7 @@ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
+ Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
+ Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
++Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 Pulaski C%sT 1961 Apr 30 2:00
+ -5:00 - EST 1969
+@@ -1075,7 +1075,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
+ #
+ # Switzerland County, Indiana, did not observe DST from 1973 through 2005.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
++Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1954 Apr 25 2:00
+ -5:00 - EST 1969
+ -5:00 US E%sT 1973
+@@ -1111,7 +1111,7 @@ Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
+ Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
+ Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
++Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1921
+ -6:00 Louisville C%sT 1942
+ -6:00 US C%sT 1946
+@@ -1145,7 +1145,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18
12:16:58
+ # Federal Register 65, 160 (2000-08-17), pp 50154-50158.
+ #
https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm
+ #
+-Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
++Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 18:00u
+ -6:00 US C%sT 1946
+ -6:00 - CST 1968
+ -6:00 US C%sT 2000 Oct 29 2:00
+@@ -2640,6 +2640,8 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
+ # longitude they are located at.
+
+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
++Rule Mexico 1931 only - May 1 23:00 1:00 D
++Rule Mexico 1931 only - Oct 1 0:00 0 S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+ Rule Mexico 1940 only - Dec 9 0:00 1:00 D
+@@ -2656,13 +2658,13 @@ Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D
+ Rule Mexico 2002 max - Oct lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ # Quintana Roo; represented by Cancún
+-Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56
++Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1981 Dec 23
+ -5:00 Mexico E%sT 1998 Aug 2 2:00
+ -6:00 Mexico C%sT 2015 Feb 1 2:00
+ -5:00 - EST
+ # Campeche, Yucatán; represented by Mérida
+-Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
++Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1981 Dec 23
+ -5:00 - EST 1982 Dec 2
+ -6:00 Mexico C%sT
+@@ -2676,23 +2678,21 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
+ # See: Inicia mañana Horario de Verano en zona fronteriza, El Universal,
+ # 2016-03-12
+ #
http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-h...
+-Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00
++Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1988
+ -6:00 US C%sT 1989
+ -6:00 Mexico C%sT 2010
+ -6:00 US C%sT
+ # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border)
+-Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44
++Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u
+ -6:00 - CST 1988
+ -6:00 US C%sT 1989
+ -6:00 Mexico C%sT
+ # Central Mexico
+-Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
++Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 Mexico C%sT 2001 Sep 30 2:00
+ -6:00 - CST 2002 Feb 20
+ -6:00 Mexico C%sT
+@@ -2700,35 +2700,29 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
+ # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe,
+ # Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides.
+ # (See the 2016-03-12 El Universal source mentioned above.)
+-Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20
++Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+ -6:00 Mexico C%sT 1998
+ -6:00 - CST 1998 Apr Sun>=1 3:00
+ -7:00 Mexico M%sT 2010
+ -7:00 US M%sT
+ # Chihuahua (away from US border)
+-Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
++Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1996
+ -6:00 Mexico C%sT 1998
+ -6:00 - CST 1998 Apr Sun>=1 3:00
+ -7:00 Mexico M%sT
+ # Sonora
+-Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
++Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+@@ -2763,24 +2757,20 @@ Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
+ # Use "Bahia_Banderas" to keep the name to fourteen characters.
+
+ # Mazatlán
+-Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
++Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+ -7:00 Mexico M%sT
+
+ # Bahía de Banderas
+-Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
++Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1927 Jun 10 23:00
+ -6:00 - CST 1930 Nov 15
+- -7:00 - MST 1931 May 1 23:00
+- -6:00 - CST 1931 Oct
+- -7:00 - MST 1932 Apr 1
++ -7:00 Mexico M%sT 1932 Apr 1
+ -6:00 - CST 1942 Apr 24
+ -7:00 - MST 1949 Jan 14
+ -8:00 - PST 1970
+@@ -2788,7 +2778,7 @@ Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
+ -6:00 Mexico C%sT
+
+ # Baja California
+-Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
++Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u
+ -7:00 - MST 1924
+ -8:00 - PST 1927 Jun 10 23:00
+ -7:00 - MST 1930 Nov 15
commit b057a1dd374ad4035e7aca68dc3a224643bb640d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 12 01:56:31 2022 +0100
Update to shenandoah-jdk8u352-b07 (EA)
Update release notes for shenandoah-8u352-b07.
Switch to EA mode for 8u352 pre-release builds.
Rebase FIPS patch against 8u352-b07
diff --git a/.gitignore b/.gitignore
index 873588f..529115c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -258,3 +258,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u345-b01-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 111227d..a9c038b 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,152 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u352 (2022-10-18):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bit.ly/openjdk8u352
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u352.txt
+
+* Other changes
+ - JDK-7131823: bug in GIFImageReader
+ - JDK-7186258: InetAddress$Cache should replace currentTimeMillis with nanoTime for
more precise and accurate
+ - JDK-8028265: Add legacy tz tests to OpenJDK
+ - JDK-8039955: [TESTBUG] jdk/lambda/LambdaTranslationTest1 - java.lang.AssertionError:
expected [d:1234.000000] but found [d:1234,000000]
+ - JDK-8049228: Improve multithreaded scalability of InetAddress cache
+ - JDK-8071507: (ref) Clear phantom reference as soft and weak references do
+ - JDK-8087283: Add support for the XML Signature here() function to the JDK XPath
implementation
+ - JDK-8130895: Test javax/swing/system/6799345/TestShutdown.java fails on Solaris11
Sparcv9
+ - JDK-8136354: [TEST_BUG] Test java/awt/image/RescaleOp/RescaleAlphaTest.java with Bad
action for script
+ - JDK-8139668: Generate README-build.html from markdown
+ - JDK-8143847: Remove REF_CLEANER reference category
+ - JDK-8150669: C1 intrinsic for Class.isPrimitive
+ - JDK-8155742: [Windows] robot.keyPress(KeyEvent.VK_ALT_GRAPH) throws
java.lang.IllegalArgumentException in windows
+ - JDK-8173339: AArch64: Fix minimum stack size computations
+ - JDK-8173361: various crashes in JvmtiExport::post_compiled_method_load
+ - JDK-8175797: (ref) Reference::enqueue method should clear the reference object before
enqueuing
+ - JDK-8178832: (ref) jdk.lang.ref.disableClearBeforeEnqueue property is ignored
+ - JDK-8183107: PKCS11 regression regarding checkKeySize
+ - JDK-8193780: (ref) Remove the undocumented
"jdk.lang.ref.disableClearBeforeEnqueue" system property
+ - JDK-8194873: right ALT key hotkeys no longer work in Swing components
+ - JDK-8201793: (ref) Reference object should not support cloning
+ - JDK-8214427: probable bug in logic of ConcurrentHashMap.addCount()
+ - JDK-8232950: SUNPKCS11 Provider incorrectly check key length for PSS Signatures.
+ - JDK-8233019: java.lang.Class.isPrimitive() (C1) returns wrong result if Klass* is
aligned to 32bit
+ - JDK-8235218: Minimal VM is broken after JDK-8173361
+ - JDK-8235385: Crash on aarch64 JDK due to long offset
+ - JDK-8245263: Enable TLSv1.3 by default on JDK 8u for Client roles
+ - JDK-8254178: Remove .hgignore
+ - JDK-8254318: Remove .hgtags
+ - JDK-8256722: handle VC++:1927 VS2019 in abstract_vm_version
+ - JDK-8260589: Crash in JfrTraceIdLoadBarrier::load(_jclass*)
+ - JDK-8280963: Incorrect PrintFlags formatting on Windows
+ - JDK-8282538: PKCS11 tests fail on CentOS Stream 9
+ - JDK-8283849: AsyncGetCallTrace may crash JVM on guarantee
+ - JDK-8285400: Add '@apiNote' to the APIs defined in Java SE 8 MR 3
+ - JDK-8285497: Add system property for Java SE specification maintenance version
+ - JDK-8287132: Retire Runtime.runFinalizersOnExit so that it always throws UOE
+ - JDK-8287508: The tests added to jdk-8 by 8235385 are to be ported to jdk-11
+ - JDK-8287521: Bump update version of OpenJDK: 8u352
+ - JDK-8288763: Pack200 extraction failure with invalid size
+ - JDK-8288865: [aarch64] LDR instructions must use legitimized addresses
+ - JDK-8290000: Bump macOS GitHub actions to macOS 11
+ - JDK-8292579: (tz) Update Timezone Data to 2022c
+ - JDK-8292688: Support Security properties in security.testlibrary.Proc
+
+Notes on individual issues:
+===========================
+
+core-libs/java.lang:
+
+JDK-8201793: (ref) Reference object should not support cloning
+==============================================================
+`java.lang.ref.Reference::clone` method always throws
+`CloneNotSupportedException`. `Reference` objects cannot be
+meaningfully cloned. To create a new Reference object, call the
+constructor to create a `Reference` object with the same referent and
+reference queue instead.
+
+JDK-8175797: (ref) Reference::enqueue method should clear the reference object before
enqueuing
+===============================================================================================
+`java.lang.ref.Reference.enqueue` method clears the reference object
+before it is added to the registered queue. When the `enqueue` method
+is called, the reference object is cleared and `get()` method will
+return null in OpenJDK 8u352.
+
+Typically when a reference object is enqueued, it is expected that the
+reference object is cleared explicitly via the `clear` method to avoid
+memory leak because its referent is no longer referenced. In other
+words the `get` method is expected not to be called in common cases
+once the `enqueue`method is called. In the case when the `get` method
+from an enqueued reference object and existing code attempts to access
+members of the referent, `NullPointerException` may be thrown. Such
+code will need to be updated.
+
+JDK-8071507: (ref) Clear phantom reference as soft and weak references do
+=========================================================================
+This enhancement changes phantom references to be automatically
+cleared by the garbage collector as soft and weak references.
+
+An object becomes phantom reachable after it has been finalized. This
+change may cause the phantom reachable objects to be GC'ed earlier -
+previously the referent is kept alive until PhantomReference objects
+are GC'ed or cleared by the application. This potential behavioral
+change might only impact existing code that would depend on
+PhantomReference being enqueued rather than when the referent be freed
+from the heap.
+
+security-libs/javax.net.ssl:
+
+JDK-8282859: Enable TLSv1.3 by Default on JDK 8 for Client Roles
+================================================================
+The TLSv1.3 implementation is now enabled by default for client roles
+in 8u352. It has been enabled by default for server roles since 8u272.
+
+Note that TLS 1.3 is not directly compatible with previous
+versions. Enabling it on the client may introduce compatibility issues
+on either the server or the client side. Here are some more details on
+potential compatibility issues that you should be aware of:
+
+* TLS 1.3 uses a half-close policy, while TLS 1.2 and prior versions
+ use a duplex-close policy. For applications that depend on the
+ duplex-close policy, there may be compatibility issues when
+ upgrading to TLS 1.3.
+
+* The signature_algorithms_cert extension requires that pre-defined
+ signature algorithms are used for certificate authentication. In
+ practice, however, an application may use non-supported signature
+ algorithms.
+
+* The DSA signature algorithm is not supported in TLS 1.3. If a server
+ is configured to only use DSA certificates, it cannot upgrade to TLS
+ 1.3.
+
+* The supported cipher suites for TLS 1.3 are not the same as TLS 1.2
+ and prior versions. If an application hard-codes cipher suites which
+ are no longer supported, it may not be able to use TLS 1.3 without
+ modifying the application code.
+
+* The TLS 1.3 session resumption and key update behaviors are
+ different from TLS 1.2 and prior versions. The compatibility should
+ be minimal, but it could be a risk if an application depends on the
+ handshake details of the TLS protocols.
+
+The TLS 1.3 protocol can be disabled by using the jdk.tls.client.protocols
+system property:
+
+java -Djdk.tls.client.protocols="TLSv1.2" ...
+
+Alternatively, an application can explicitly set the enabled protocols
+with the javax.net.ssl APIs e.g.
+
+sslSocket.setEnabledProtocols(new String[] {"TLSv1.2"});
+
+or:
+
+SSLParameters params = sslSocket.getSSLParameters();
+params.setProtocols(new String[] {"TLSv1.2"});
+slsSocket.setSSLParameters(params);
+
New in release OpenJDK 8u345 (2022-08-01):
===========================================
Live versions of these release notes can be found at:
diff --git a/fips-8u-8e8bbf0ff74.patch b/fips-8u-6d1aade0648.patch
similarity index 99%
rename from fips-8u-8e8bbf0ff74.patch
rename to fips-8u-6d1aade0648.patch
index 2379d45..58ab6e5 100644
--- a/fips-8u-8e8bbf0ff74.patch
+++ b/fips-8u-6d1aade0648.patch
@@ -11,7 +11,7 @@ index 151e5a109f8..a8761b500e0 100644
LIB_SETUP_ON_WINDOWS
diff --git a/common/autoconf/generated-configure.sh
b/common/autoconf/generated-configure.sh
-index e77ce854dc5..ec6e9b27ca5 100644
+index 71fabf4dbb3..17f4f50673d 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -651,6 +651,9 @@ LLVM_CONFIG
@@ -124,7 +124,7 @@ index e77ce854dc5..ec6e9b27ca5 100644
#
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-@@ -49290,6 +49351,157 @@ fi
+@@ -49304,6 +49365,157 @@ fi
LIBS="$save_LIBS"
@@ -1532,7 +1532,7 @@ index ffee2c1603b..98119479823 100644
"FIPS mode: KeyStore must be " +
"from provider " + SunJSSE.cryptoProvider.getName());
diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
-index cd0e9e98df9..fba760187c0 100644
+index 820e10164fc..6fe2c29389f 100644
--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
@@ -31,6 +31,7 @@ import java.security.*;
@@ -1627,8 +1627,8 @@ index cd0e9e98df9..fba760187c0 100644
+ };
+ }
return new ProtocolVersion[]{
+ ProtocolVersion.TLS13,
ProtocolVersion.TLS12,
- ProtocolVersion.TLS11,
diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
index 2845dc37938..52337a7b6cf 100644
--- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
@@ -1659,7 +1659,7 @@ index 2845dc37938..52337a7b6cf 100644
"sun.security.ssl.SSLContextImpl$TLSContext");
if (isfips == false) {
diff --git a/jdk/src/share/lib/security/java.security-aix
b/jdk/src/share/lib/security/java.security-aix
-index d3d64b3facd..bfe0c593adb 100644
+index 7a93d4e6b59..681a24b905d 100644
--- a/jdk/src/share/lib/security/java.security-aix
+++ b/jdk/src/share/lib/security/java.security-aix
@@ -287,6 +287,13 @@ package.definition=sun.,\
@@ -1677,7 +1677,7 @@ index d3d64b3facd..bfe0c593adb 100644
# Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package.
diff --git a/jdk/src/share/lib/security/java.security-linux
b/jdk/src/share/lib/security/java.security-linux
-index db610d4bfbb..9d1c8fe8a8e 100644
+index 145a84f94cf..789c19a8cba 100644
--- a/jdk/src/share/lib/security/java.security-linux
+++ b/jdk/src/share/lib/security/java.security-linux
@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider
@@ -1722,7 +1722,7 @@ index db610d4bfbb..9d1c8fe8a8e 100644
# Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package.
diff --git a/jdk/src/share/lib/security/java.security-macosx
b/jdk/src/share/lib/security/java.security-macosx
-index a919ba3d5cd..19047c61097 100644
+index 35fa140d7a5..d4da666af3b 100644
--- a/jdk/src/share/lib/security/java.security-macosx
+++ b/jdk/src/share/lib/security/java.security-macosx
@@ -290,6 +290,13 @@ package.definition=sun.,\
@@ -1740,7 +1740,7 @@ index a919ba3d5cd..19047c61097 100644
# Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package.
diff --git a/jdk/src/share/lib/security/java.security-solaris
b/jdk/src/share/lib/security/java.security-solaris
-index 86265ba5fb6..7eda556ae13 100644
+index f79ba37ddb9..300132384a1 100644
--- a/jdk/src/share/lib/security/java.security-solaris
+++ b/jdk/src/share/lib/security/java.security-solaris
@@ -288,6 +288,13 @@ package.definition=sun.,\
@@ -1758,7 +1758,7 @@ index 86265ba5fb6..7eda556ae13 100644
# Determines the default key and trust manager factory algorithms for
# the javax.net.ssl package.
diff --git a/jdk/src/share/lib/security/java.security-windows
b/jdk/src/share/lib/security/java.security-windows
-index 9b4bda23cbe..dfa1a669aa9 100644
+index d70503ce95f..64db5a5cd1e 100644
--- a/jdk/src/share/lib/security/java.security-windows
+++ b/jdk/src/share/lib/security/java.security-windows
@@ -290,6 +290,13 @@ package.definition=sun.,\
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index aa95c3c..a9b74e2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -317,7 +317,7 @@
# Define IcedTea version used for SystemTap tapsets and desktop file
%global icedteaver 3.15.0
# Define current Git revision for the FIPS support patches
-%global fipsver 8e8bbf0ff74
+%global fipsver 6d1aade0648
# Standard JPackage naming and versioning defines
%global origin openjdk
@@ -347,7 +347,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global openjdk_revision jdk8u345-b01
+%global openjdk_revision jdk8u352-b07
%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
@@ -363,12 +363,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2878,6 +2878,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Oct 12 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.352.b07-0.1.ea
+- Update to shenandoah-jdk8u352-b07 (EA)
+- Update release notes for shenandoah-8u352-b07.
+- Switch to EA mode for 8u352 pre-release builds.
+- Rebase FIPS patch against 8u352-b07
+
* Tue Aug 30 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-2
- Switch to static builds, reducing system dependencies and making build more portable
diff --git a/sources b/sources
index 13743ce..44fb427 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u345-b01-4curve.tar.xz) =
6fa848faa201a01516c8bc616e0cb980fc012c6f54493138fdd38962c8d706382567467b380eaa34a52ffae3657a13f3f136163c1185f38dc0b5dc0e2151f49d
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u352-b07-4curve.tar.xz) =
9525cdd009037328e061965c751fae7fb61887d87efadfbc8b361aeee74a3cbb0bc2405f0bd33d3c943862a2eab5d30576e071063a87ec326b1781d29e7974ea
commit 4892a89d43c35743562c509fe768ac261ac511c1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Sep 2 04:39:33 2022 +0100
Switch to static builds, reducing system dependencies and making build more portable
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5461c53..aa95c3c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -26,6 +26,8 @@
%bcond_with artifacts
# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
%bcond_without fresh_libjvm
+# Build with system libraries
+%bcond_with system_libs
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
%if %{with fresh_libjvm}
@@ -34,6 +36,16 @@
%global build_hotspot_first 0
%endif
+%if %{with system_libs}
+%global system_libs 1
+%global link_type system
+%global jpeg_lib |libjavajpeg[.]so.*
+%else
+%global system_libs 0
+%global link_type bundled
+%global jpeg_lib |libjpeg[.]so.*
+%endif
+
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
# See:
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
@@ -351,7 +363,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -395,7 +407,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*%{jpeg_lib}|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
%if %is_system_jdk
%global __provides_exclude ^(%{_privatelibs})$
@@ -952,7 +964,11 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
+%if %{system_libs}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjavajpeg.so
+%else
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjpeg.so
+%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so
@@ -1629,12 +1645,8 @@ BuildRequires: desktop-file-utils
BuildRequires: elfutils-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
-BuildRequires: giflib-devel
BuildRequires: gcc-c++
BuildRequires: gdb
-BuildRequires: lcms2-devel
-BuildRequires: libjpeg-devel
-BuildRequires: libpng-devel
BuildRequires: libxslt
BuildRequires: libX11-devel
BuildRequires: libXext-devel
@@ -1666,6 +1678,26 @@ BuildRequires: gcc >= 4.8.3-8
BuildRequires: systemtap-sdt-devel
%endif
+%if %{system_libs}
+BuildRequires: giflib-devel
+BuildRequires: lcms2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+%else
+# Version in jdk/src/share/native/sun/awt/giflib/gif_lib.h
+Provides: bundled(giflib) = 5.2.1
+# Version in jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h
+Provides: bundled(lcms2) = 2.10.0
+# Version in jdk/src/share/native/sun/awt/image/jpeg/jpeglib.h
+Provides: bundled(libjpeg) = 6b
+# Version in jdk/src/share/native/sun/awt/libpng/png.h
+Provides: bundled(libpng) = 1.6.37
+# We link statically against libstdc++ to increase portability
+BuildRequires: libstdc++-static
+%endif
+# Version in jdk/src/share/native/sun/font/layout/LEStandalone.h
+Provides: bundled(icu) = 4.6
+
# this is always built, also during debug-only build
# when it is built in debug-only this package is just placeholder
%{java_rpo %{nil}}
@@ -1974,14 +2006,18 @@ cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
# OpenJDK patches
+%if %{system_libs}
# Remove libraries that are linked
sh %{SOURCE12}
+%endif
# System library fixes
+%if %{system_libs}
%patch201
%patch202
%patch203
%patch204
+%endif
%patch5
@@ -2119,11 +2155,18 @@ function buildjdk() {
local buildjdk=${2}
local maketargets="${3}"
local debuglevel=${4}
+ local link_opt=${5}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
local top_builddir_abs_path=$(pwd)/${outputdir}
+ if [ "x${link_opt}" = "xbundled" ] ; then
+ libc_link_opt="static";
+ else
+ libc_link_opt="dynamic";
+ fi
+
echo "Checking build JDK ${buildjdk} is operational..."
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
@@ -2152,12 +2195,14 @@ function buildjdk() {
--with-debug-level=${debuglevel} \
--disable-sysconf-nss \
--enable-unlimited-crypto \
- --with-zlib=system \
- --with-libjpeg=system \
- --with-giflib=system \
- --with-libpng=system \
- --with-lcms=system \
- --with-stdc++lib=dynamic \
+ --with-zlib=${link_opt} \
+ --with-giflib=${link_opt} \
+%if %{with system_libs}
+ --with-libjpeg=${link_opt} \
+ --with-libpng=${link_opt} \
+ --with-lcms=${link_opt} \
+%endif
+ --with-stdc++lib=${libc_link_opt} \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-extra-asflags="$EXTRA_ASFLAGS" \
@@ -2263,6 +2308,7 @@ builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
+link_opt="%{link_type}"
# Debug builds don't need same targets as release for
# build speed-up. We also avoid bootstrapping these
@@ -2276,13 +2322,13 @@ else
fi
if ${run_bootstrap} ; then
- buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
${link_opt}
installjdk ${bootbuilddir} ${bootinstalldir}
- buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild} ${link_opt}
installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}}
else
- buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+ buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt}
installjdk ${builddir} ${installdir}
fi
@@ -2832,6 +2878,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Aug 30 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-2
+- Switch to static builds, reducing system dependencies and making build more portable
+
* Wed Aug 03 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-1
- Update to shenandoah-jdk8u345-b01 (GA)
- Update release notes for 8u345-b01.
commit 7d3ba67ed83be5f0114680956ca19bf0159f7d3d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Aug 3 16:49:22 2022 +0100
Update to shenandoah-jdk8u345-b01 (GA)
Update release notes for 8u345-b01.
diff --git a/.gitignore b/.gitignore
index 1f95540..873588f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -257,3 +257,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u345-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index a826722..111227d 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,32 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u345 (2022-08-01):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bit.ly/openjdk8u345
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u345.txt
+
+* Other changes
+ - JDK-8290832: It is no longer possible to change "user.dir" in the JDK8
+ - JDK-8291568: Bump update version of OpenJDK: 8u345
+
+Notes on individual issues:
+===========================
+
+core-libs/java.io:
+
+JDK-8290832: It is no longer possible to change "user.dir" in the JDK8
+======================================================================
+A change, JDK-8194154, was introduced in the 8u342 release of OpenJDK
+causing the JDK to ignore attempts to set the `user.dir` property.
+While this change is suitable for a major release (it was originally
+introduced in the initial release of OpenJDK 11), changing the
+behaviour of such a property in an update release creates
+compatibility issues in software that relies on the behaviour in prior
+versions of OpenJDK 8. As a result, we have reverted this change in
+8u345.
+
New in release OpenJDK 8u342 (2022-07-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 486f3ac..5461c53 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -335,7 +335,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global openjdk_revision jdk8u342-b07
+%global openjdk_revision jdk8u345-b01
%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
@@ -2832,6 +2832,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Aug 03 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.345.b01-1
+- Update to shenandoah-jdk8u345-b01 (GA)
+- Update release notes for 8u345-b01.
+
* Sun Jul 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b07-1
- Update to shenandoah-jdk8u342-b07 (GA)
- Update release notes for 8u342-b07.
diff --git a/sources b/sources
index 06bd55f..13743ce 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz) =
64b467edeb332062fd3e1c0647dc2e75616fdaf8a629922d017a49e89324c19eb762d03a951399891fa08db188fc3dee8c7f34351b415e6121c0a51520043ea1
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u345-b01-4curve.tar.xz) =
6fa848faa201a01516c8bc616e0cb980fc012c6f54493138fdd38962c8d706382567467b380eaa34a52ffae3657a13f3f136163c1185f38dc0b5dc0e2151f49d
commit c48f90a969a0220c4ef5270cf4cbb5118bf7598c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 24 22:12:28 2022 +0100
Update to shenandoah-jdk8u342-b07 (GA)
Update release notes for 8u342-b07.
Switch to GA mode for final release.
Exclude x86 where java_arches is undefined, in order to unbreak build
diff --git a/.gitignore b/.gitignore
index da2aef1..1f95540 100644
--- a/.gitignore
+++ b/.gitignore
@@ -256,3 +256,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 883a62c..a826722 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,15 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u342
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u342.txt
+* Security fixes
+ - JDK-8272243: Improve DER parsing
+ - JDK-8272249: Better properties of loaded Properties
+ - JDK-8277608: Address IP Addressing
+ - JDK-8281859, CVE-2022-21540: Improve class compilation
+ - JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations
+ - JDK-8283190: Improve MIDI processing
+ - JDK-8284370: Improve zlib usage
+ - JDK-8285407, CVE-2022-34169: Improve Xalan supports
* Other changes
- JDK-8031567: Better model for storing source revision information
- JDK-8076190: Customizing the generation of a PKCS12 keystore
@@ -21,6 +30,7 @@ Live versions of these release notes can be found at:
- JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative
initial size for ByteArrayOutputStream
- JDK-8194154: System property user.dir should not be changed
- JDK-8202142: jfr/event/io/TestInstrumentation is unstable
+ - JDK-8209771: jdk.test.lib.Utils::runAndCheckException error
- JDK-8221988: add possibility to build with Visual Studio 2019
- JDK-8223396: [TESTBUG] several jfr tests do not clean up files created in /tmp
- JDK-8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell
MakeJAR.sh target
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a301a7c..486f3ac 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -335,7 +335,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global openjdk_revision jdk8u342-b06
+%global openjdk_revision jdk8u342-b07
%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
@@ -351,12 +351,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -451,7 +451,11 @@
%endif
# x86 is no longer supported
+%if 0%{?java_arches:1}
ExclusiveArch: %{java_arches}
+%else
+ExcludeArch: %{ix86}
+%endif
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
@@ -2828,6 +2832,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Jul 24 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b07-1
+- Update to shenandoah-jdk8u342-b07 (GA)
+- Update release notes for 8u342-b07.
+- Switch to GA mode for final release.
+- Exclude x86 where java_arches is undefined, in order to unbreak build
+
* Fri Jul 22 2022 Jiri Vanek <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.4.ea
- moved to build only on %%{java_arches}
--
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
@@ -2843,6 +2853,9 @@ cjc.mainProgram(args)
-- this is safely backport-able to older fedoras, as the macro was backported proeprly
(with i686 included)
-
https://bugzilla.redhat.com/show_bug.cgi?id=2104129
+* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.342.b06-0.3.ea.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Tue Jul 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.3.ea
- Reinstate demo package on x86
diff --git a/sources b/sources
index 8c41d22..06bd55f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz) =
bc7fb9c21f33b2edab948b2b31e3198441c7901369476cd4d4ba0056dbba394a0a19099a2d57987641575f17383a4fd2b85a791ee56fbe2deaa246ec89fe9d81
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b07-4curve.tar.xz) =
64b467edeb332062fd3e1c0647dc2e75616fdaf8a629922d017a49e89324c19eb762d03a951399891fa08db188fc3dee8c7f34351b415e6121c0a51520043ea1
commit 27bb7416e6815eafdf9a9e8a55ea9771282fe6bf
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Jul 22 14:56:46 2022 +0200
moved to build only on %%{java_arches}
--
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
- reverted :
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild (always mess up
release)
-- Try to build on x86 again by creating a husk of a JDK which does not depend on
itself
-- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
-- Reinstate demo package on x86
-- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
-- Replaced binaries and .so files with bash-stubs on i686
- added ExclusiveArch: %%{java_arches}
-- this now excludes i686
-- this is safely backport-able to older fedoras, as the macro was backported
proeprly (with i686 included)
-
https://bugzilla.redhat.com/show_bug.cgi?id=2104129
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 64c833d..a301a7c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -282,7 +282,7 @@
# New Version-String scheme-style defines
%global majorver 8
-%ifarch x86_64
+%ifarch %{ix86} x86_64
%global with_openjfx_binding 1
%global openjfx_path %{_jvmdir}/openjfx8
# links src directories
@@ -351,7 +351,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -450,6 +450,9 @@
%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
%endif
+# x86 is no longer supported
+ExclusiveArch: %{java_arches}
+
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
@@ -835,9 +838,6 @@ exit 0
exit 0
}
-%ifarch %{ix86}
-%define files_jre() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jre.sh}
-%else
%define files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
%{_datadir}/applications/*policytool%{?1}.desktop
@@ -852,11 +852,8 @@ exit 0
%endif
%endif
}
-%endif
-%ifarch %{ix86}
-%define files_jre_headless() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-headless.sh}
-%else
+
%define files_jre_headless() %{expand:
%defattr(-,root,root,-)
%dir %{_sysconfdir}/.java/.systemPrefs
@@ -1037,11 +1034,7 @@ exit 0
%endif
%endif
}
-%endif
-%ifarch %{ix86}
-%define files_devel() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-devel.sh}
-%else
%define files_devel() %{expand:
%defattr(-,root,root,-)
%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
@@ -1199,30 +1192,19 @@ exit 0
%endif
%endif
}
-%endif
-%ifarch %{ix86}
-%define files_demo() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-demo.sh}
-%else
+
%define files_demo() %{expand:
%defattr(-,root,root,-)
%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
}
-%endif
-%ifarch %{ix86}
-%define files_src() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-src.sh}
-%else
%define files_src() %{expand:
%defattr(-,root,root,-)
%doc README.md
%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
}
-%endif
-%ifarch %{ix86}
-%define files_javadoc() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc.sh}
-%else
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
@@ -1237,11 +1219,7 @@ exit 0
%endif
%endif
}
-%endif
-%ifarch %{ix86}
-%define files_javadoc_zip() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc_zip.sh}
-%else
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
@@ -1256,7 +1234,6 @@ exit 0
%endif
%endif
}
-%endif
# not-duplicated requires/provides/obsoletes for normal/debug packages
%define java_rpo() %{expand:
@@ -1400,7 +1377,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1670,14 +1647,8 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
BuildRequires: unzip
-# x86 is deprecated and the package no longer contains a working JDK
-%ifarch %{ix86}
-# Require javapackages-filesystem to define %{_jvmdir}
-BuildRequires: javapackages-filesystem
-%else
# Require a boot JDK which doesn't fail due to RH1482244
BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
-%endif
# Zero-assembler build requirement
%ifarch %{zero_arches}
BuildRequires: libffi-devel
@@ -1867,8 +1838,7 @@ The %{compatiblename}-src-fastdebug sub-package contains the
complete %{origin_n
Summary: %{origin_nice} %{majorver} API documentation
Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
-# Temporarily disabled while we have a cripped x86 build
-#BuildArch: noarch
+BuildArch: noarch
%{java_javadoc_rpo -- %{nil} -zip}
%{java_javadoc_rpo -- %{nil} %{nil}}
@@ -1882,8 +1852,7 @@ The %{origin_nice} %{majorver} API documentation.
Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
-# Temporarily disabled while we have a cripped x86 build
-#BuildArch: noarch
+BuildArch: noarch
%{java_javadoc_rpo -- %{nil} %{nil}}
@@ -2109,12 +2078,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
%build
-
-# x86 is deprecated
-%ifarch %{ix86}
- exit 0
-%endif
-
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
@@ -2327,14 +2290,6 @@ done
# We test debug first as it will give better diagnostics on a crash
for suffix in %{build_loop} ; do
-%ifarch %{ix86}
-
- # Fake debugsourcefiles.list here after find-debuginfo.sh has already had a go
- echo "%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-debugsourcefiles.sh" >>
debugsourcefiles.list
- cat debugsourcefiles.list
-
-%else
-
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Check unlimited policy has been used
@@ -2448,8 +2403,6 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled
from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
-%endif
-
# build cycles check
done
@@ -2458,34 +2411,6 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-%ifarch %{ix86}
-
- mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}
-
- file=/tmp/gonejdk.$$
- echo "OpenJDK on x86 is now deprecated"
- echo '#!/bin/bash' > $file
- echo 'echo "We are going to remove i686 jdk. Please fix your package
accordingly!"' >> $file
- echo 'echo "See
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file
- echo 'echo "See
https://pagure.io/fesco/issue/2772"' >> $file
- echo 'echo "See
https://bugzilla.redhat.com/show_bug.cgi?id=2083750"'
>> $file
- echo 'exit 1' >> $file
-
- for pkgsuffix in jre headless devel demo src debugsourcefiles ; do
- cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir --
${suffix}}/gone-${pkgsuffix}.sh
- done
-
- # Docs were only in the normal build
- if ! echo $suffix | grep -q "debug" ; then
- for pkgsuffix in javadoc javadoc_zip ; do
- cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh
- done
- fi
-
- rm -f ${file}
-
-%else
-
# Install the jdk
pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
@@ -2665,8 +2590,6 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"ASSEMBLY_EXCEPTION"
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec
chmod 644 {} \; ;
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"THIRD_PARTY_README" -exec chmod 644 {} \; ;
-%endif
-
# end, dual install
done
@@ -2837,11 +2760,7 @@ cjc.mainProgram(args)
%files devel
%{files_devel %{nil}}
-%ifarch %{ix86}
-%files demo
-%else
%files demo -f %{name}-demo.files
-%endif
%{files_demo %{nil}}
%files src
@@ -2872,9 +2791,7 @@ cjc.mainProgram(args)
%files devel-slowdebug
%{files_devel -- %{debug_suffix_unquoted}}
-%ifnarch %{ix86}
%files demo-slowdebug -f %{name}-demo.files-slowdebug
-%endif
%{files_demo -- %{debug_suffix_unquoted}}
%files src-slowdebug
@@ -2897,9 +2814,7 @@ cjc.mainProgram(args)
%files devel-fastdebug
%{files_devel -- %{fastdebug_suffix_unquoted}}
-%ifnarch %{ix86}
%files demo-fastdebug -f %{name}-demo.files-fastdebug
-%endif
%{files_demo -- %{fastdebug_suffix_unquoted}}
%files src-fastdebug
@@ -2913,8 +2828,20 @@ cjc.mainProgram(args)
%endif
%changelog
-* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.342.b06-0.3.ea.1
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+* Fri Jul 22 2022 Jiri Vanek <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.4.ea
+- moved to build only on %%{java_arches}
+--
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
+- reverted :
+-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild (always mess up
release)
+-- Try to build on x86 again by creating a husk of a JDK which does not depend on itself
+-- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
+-- Reinstate demo package on x86
+-- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
+-- Replaced binaries and .so files with bash-stubs on i686
+- added ExclusiveArch: %%{java_arches}
+-- this now excludes i686
+-- this is safely backport-able to older fedoras, as the macro was backported proeprly
(with i686 included)
+-
https://bugzilla.redhat.com/show_bug.cgi?id=2104129
* Tue Jul 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.3.ea
- Reinstate demo package on x86
commit 4c5d1a87de1491566865c3dd6774b3afc07ad20d
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 21 15:05:19 2022 +0000
Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2fa57d7..64c833d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1400,7 +1400,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# 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
@@ -2913,6 +2913,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 21 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.342.b06-0.3.ea.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Tue Jul 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.3.ea
- Reinstate demo package on x86
commit 475808beae0ebe555834046d8194ba36e859d694
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jul 19 10:53:48 2022 +0100
Reinstate demo package on x86
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 98fd882..2fa57d7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -351,7 +351,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2837,7 +2837,9 @@ cjc.mainProgram(args)
%files devel
%{files_devel %{nil}}
-%ifnarch %{ix86}
+%ifarch %{ix86}
+%files demo
+%else
%files demo -f %{name}-demo.files
%endif
%{files_demo %{nil}}
@@ -2911,6 +2913,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Jul 19 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.3.ea
+- Reinstate demo package on x86
+
* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
commit fbc7fb3c17414e43cd5c436e0b092a4175b7929d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jul 19 01:00:39 2022 +0100
Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 166ccdf..98fd882 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1867,7 +1867,8 @@ The %{compatiblename}-src-fastdebug sub-package contains the
complete %{origin_n
Summary: %{origin_nice} %{majorver} API documentation
Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
-BuildArch: noarch
+# Temporarily disabled while we have a cripped x86 build
+#BuildArch: noarch
%{java_javadoc_rpo -- %{nil} -zip}
%{java_javadoc_rpo -- %{nil} %{nil}}
@@ -1881,7 +1882,8 @@ The %{origin_nice} %{majorver} API documentation.
Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
-BuildArch: noarch
+# Temporarily disabled while we have a cripped x86 build
+#BuildArch: noarch
%{java_javadoc_rpo -- %{nil} %{nil}}
@@ -2909,6 +2911,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
+- Temporarily disable noarch status of javadoc and javadoc-zip so x86 can differ
+
* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
- Try to build on x86 again by creating a husk of a JDK which does not depend on itself
commit eb7f165236a680147276ce9ba31fc2e01df39a5e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jul 18 16:03:38 2022 +0100
Try to build on x86 again by creating a husk of a JDK which does not depend on itself
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d48de49..166ccdf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -282,7 +282,7 @@
# New Version-String scheme-style defines
%global majorver 8
-%ifarch %{ix86} x86_64
+%ifarch x86_64
%global with_openjfx_binding 1
%global openjfx_path %{_jvmdir}/openjfx8
# links src directories
@@ -351,7 +351,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -450,9 +450,6 @@
%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
%endif
-# x86 is no longer supported
-ExcludeArch: %{ix86}
-
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
@@ -838,6 +835,9 @@ exit 0
exit 0
}
+%ifarch %{ix86}
+%define files_jre() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-jre.sh}
+%else
%define files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
%{_datadir}/applications/*policytool%{?1}.desktop
@@ -852,8 +852,11 @@ exit 0
%endif
%endif
}
+%endif
-
+%ifarch %{ix86}
+%define files_jre_headless() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-headless.sh}
+%else
%define files_jre_headless() %{expand:
%defattr(-,root,root,-)
%dir %{_sysconfdir}/.java/.systemPrefs
@@ -1034,7 +1037,11 @@ exit 0
%endif
%endif
}
+%endif
+%ifarch %{ix86}
+%define files_devel() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-devel.sh}
+%else
%define files_devel() %{expand:
%defattr(-,root,root,-)
%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
@@ -1192,19 +1199,30 @@ exit 0
%endif
%endif
}
+%endif
-
+%ifarch %{ix86}
+%define files_demo() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-demo.sh}
+%else
%define files_demo() %{expand:
%defattr(-,root,root,-)
%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
}
+%endif
+%ifarch %{ix86}
+%define files_src() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-src.sh}
+%else
%define files_src() %{expand:
%defattr(-,root,root,-)
%doc README.md
%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
}
+%endif
+%ifarch %{ix86}
+%define files_javadoc() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc.sh}
+%else
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
@@ -1219,7 +1237,11 @@ exit 0
%endif
%endif
}
+%endif
+%ifarch %{ix86}
+%define files_javadoc_zip() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/gone-javadoc_zip.sh}
+%else
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
@@ -1234,6 +1256,7 @@ exit 0
%endif
%endif
}
+%endif
# not-duplicated requires/provides/obsoletes for normal/debug packages
%define java_rpo() %{expand:
@@ -1647,8 +1670,14 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
BuildRequires: unzip
+# x86 is deprecated and the package no longer contains a working JDK
+%ifarch %{ix86}
+# Require javapackages-filesystem to define %{_jvmdir}
+BuildRequires: javapackages-filesystem
+%else
# Require a boot JDK which doesn't fail due to RH1482244
BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
+%endif
# Zero-assembler build requirement
%ifarch %{zero_arches}
BuildRequires: libffi-devel
@@ -2078,6 +2107,12 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
%build
+
+# x86 is deprecated
+%ifarch %{ix86}
+ exit 0
+%endif
+
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
@@ -2286,12 +2321,18 @@ fi
done
%check
-%ifarch %{ix86}
- exit 0
-%endif
+
# We test debug first as it will give better diagnostics on a crash
for suffix in %{build_loop} ; do
+%ifarch %{ix86}
+
+ # Fake debugsourcefiles.list here after find-debuginfo.sh has already had a go
+ echo "%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-debugsourcefiles.sh" >>
debugsourcefiles.list
+ cat debugsourcefiles.list
+
+%else
+
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Check unlimited policy has been used
@@ -2405,6 +2446,8 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled
from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
+%endif
+
# build cycles check
done
@@ -2413,20 +2456,36 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-# Install the jdk
-pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
-
%ifarch %{ix86}
- for file in $(find $(pwd) | grep -e "/bin/" -e "\.so$") ; do
- echo "deprecating $file"
- echo '#!/bin/bash' > $file
- echo 'echo "We are going to remove i686 jdk. Please fix your package
accordingly!"' >> $file
- echo 'echo "See
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file
- echo 'echo "See
https://pagure.io/fesco/issue/2772"' >>
$file
- echo 'echo "See
https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file
- echo 'exit 1' >> $file
+
+ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}
+
+ file=/tmp/gonejdk.$$
+ echo "OpenJDK on x86 is now deprecated"
+ echo '#!/bin/bash' > $file
+ echo 'echo "We are going to remove i686 jdk. Please fix your package
accordingly!"' >> $file
+ echo 'echo "See
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file
+ echo 'echo "See
https://pagure.io/fesco/issue/2772"' >> $file
+ echo 'echo "See
https://bugzilla.redhat.com/show_bug.cgi?id=2083750"'
>> $file
+ echo 'exit 1' >> $file
+
+ for pkgsuffix in jre headless devel demo src debugsourcefiles ; do
+ cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir --
${suffix}}/gone-${pkgsuffix}.sh
done
-%endif
+
+ # Docs were only in the normal build
+ if ! echo $suffix | grep -q "debug" ; then
+ for pkgsuffix in javadoc javadoc_zip ; do
+ cp -a ${file} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- ${suffix}}/gone-${pkgsuffix}.sh
+ done
+ fi
+
+ rm -f ${file}
+
+%else
+
+# Install the jdk
+pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
# Install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
@@ -2604,6 +2663,8 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"ASSEMBLY_EXCEPTION"
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec
chmod 644 {} \; ;
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"THIRD_PARTY_README" -exec chmod 644 {} \; ;
+%endif
+
# end, dual install
done
@@ -2774,7 +2835,9 @@ cjc.mainProgram(args)
%files devel
%{files_devel %{nil}}
+%ifnarch %{ix86}
%files demo -f %{name}-demo.files
+%endif
%{files_demo %{nil}}
%files src
@@ -2805,7 +2868,9 @@ cjc.mainProgram(args)
%files devel-slowdebug
%{files_devel -- %{debug_suffix_unquoted}}
+%ifnarch %{ix86}
%files demo-slowdebug -f %{name}-demo.files-slowdebug
+%endif
%{files_demo -- %{debug_suffix_unquoted}}
%files src-slowdebug
@@ -2828,7 +2893,9 @@ cjc.mainProgram(args)
%files devel-fastdebug
%{files_devel -- %{fastdebug_suffix_unquoted}}
+%ifnarch %{ix86}
%files demo-fastdebug -f %{name}-demo.files-fastdebug
+%endif
%{files_demo -- %{fastdebug_suffix_unquoted}}
%files src-fastdebug
@@ -2842,6 +2909,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jul 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.2.ea
+- Try to build on x86 again by creating a husk of a JDK which does not depend on itself
+
* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.1.ea
- Update to shenandoah-jdk8u342-b06 (EA)
- Update release notes for shenandoah-8u342-b06.
commit 1a5e8e1c00dc366d0e1453f376f9ddc23cc2f52b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 17 17:18:02 2022 +0100
Update to shenandoah-jdk8u342-b06 (EA)
Update release notes for shenandoah-8u342-b06.
Switch to EA mode for 8u342 pre-release builds.
Print release file during build, which should now include a correct SOURCE value from
.src-rev
Update tarball script with IcedTea GitHub URL and .src-rev generation
Use "git apply" with patches in the tarball script to allow binary diffs
Remove redundant "REPOS" variable from tarball script
Include script to generate bug list for release notes
Update tzdata requirement to 2022a to match JDK-8283350
diff --git a/.gitignore b/.gitignore
index a973960..da2aef1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,3 +255,4 @@
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index f9af271..883a62c 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,112 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u342 (2022-07-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u342
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u342.txt
+
+* Other changes
+ - JDK-8031567: Better model for storing source revision information
+ - JDK-8076190: Customizing the generation of a PKCS12 keystore
+ - JDK-8129572: Cleanup usage of getResourceAsStream in jaxp
+ - JDK-8132256: jaxp: Investigate removal of
com/sun/org/apache/bcel/internal/util/ClassPath.java
+ - JDK-8168926: C2: Bytecode escape analyzer crashes due to stack overflow
+ - JDK-8170385: JDK-8031567 broke source bundles
+ - JDK-8170392: JDK-8031567 broke builds from source bundles
+ - JDK-8170530: bash configure output contains a typo in a suggested library name
+ - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative
initial size for ByteArrayOutputStream
+ - JDK-8194154: System property user.dir should not be changed
+ - JDK-8202142: jfr/event/io/TestInstrumentation is unstable
+ - JDK-8221988: add possibility to build with Visual Studio 2019
+ - JDK-8223396: [TESTBUG] several jfr tests do not clean up files created in /tmp
+ - JDK-8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell
MakeJAR.sh target
+ - JDK-8235211: serviceability/attach/RemovingUnixDomainSocketTest.java fails with
AttachNotSupportedException: Unable to open socket file
+ - JDK-8244973: serviceability/attach/RemovingUnixDomainSocketTest.java fails
"stderr was not empty"
+ - JDK-8248876: LoadObject with bad base address created for exec file on linux
+ - JDK-8253424: Add support for running pre-submit testing using GitHub Actions
+ - JDK-8253865: Pre-submit testing using GitHub Actions does not detect failures
reliably
+ - JDK-8254054: Pre-submit testing using GitHub Actions should not use the deprecated
set-env command
+ - JDK-8254173: Add Zero, Minimal hotspot targets to submit workflow
+ - JDK-8254175: Build no-pch configuration in debug mode for submit checks
+ - JDK-8254282: Add Linux x86_32 builds to submit workflow
+ - JDK-8255239: The timezone of the hs_err_pid log file is corrupted in Japanese locale
+ - JDK-8255305: Add Linux x86_32 tier1 to submit workflow
+ - JDK-8255352: Archive important test outputs in submit workflow
+ - JDK-8255373: Submit workflow artifact name is always "test-results_.zip"
+ - JDK-8255895: Submit workflow artifacts miss hs_errs/replays due to ZIP include
mismatch
+ - JDK-8256127: Add cross-compiled foreign architectures builds to submit workflow
+ - JDK-8256277: Github Action build on macOS should define OS and Xcode versions
+ - JDK-8256354: Github Action build on Windows should define OS and MSVC versions
+ - JDK-8256393: Github Actions build on Linux should define OS and GCC versions
+ - JDK-8256414: add optimized build to submit workflow
+ - JDK-8256747: GitHub Actions: decouple the hotspot build-only jobs from Linux x64
testing
+ - JDK-8257056: Submit workflow should apt-get update to avoid package installation
errors
+ - JDK-8259924: GitHub actions fail on Linux x86_32 with "Could not configure
libc6:i386"
+ - JDK-8260460: GitHub actions still fail on Linux x86_32 with "Could not configure
libc6:i386"
+ - JDK-8261107: ArrayIndexOutOfBoundsException in the
ICC_Profile.getInstance(InputStream)
+ - JDK-8263667: Avoid running GitHub actions on branches named pr/*
+ - JDK-8266187: Memory leak in appendBootClassPath()
+ - JDK-8274658: ISO 4217 Amendment 170 Update
+ - JDK-8274751: Drag And Drop hangs on Windows
+ - JDK-8278138: OpenJDK8 fails to start on Windows 8.1 after upgrading compiler to
VS2017
+ - JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition
+ - JDK-8281814: Debuginfo.diz contains redundant build path after backport JDK-8025936
+ - JDK-8282225: GHA: Allow one concurrent run per PR only
+ - JDK-8282458: Update .jcheck/conf file for 8u move to git
+ - JDK-8282552: Bump update version of OpenJDK: 8u342
+ - JDK-8283350: (tz) Update Timezone Data to 2022a
+ - JDK-8284620: CodeBuffer may leak _overflow_arena
+ - JDK-8284772: 8u GHA: Use GCC Major Version Dependencies Only
+ - JDK-8285445: cannot open file "NUL:"
+ - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java
+ - JDK-8285591: [11] add signum checks in DSA.java engineVerify
+ - JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head
+ - JDK-8286989: Build failure on macOS after 8281814
+ - JDK-8287537: 8u JDK-8284620 backport broke AArch64 build
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8215293: Customizing PKCS12 keystore Generation
+===================================================
+New system and security properties have been added to enable users to
+customize the generation of PKCS #12 keystores. This includes
+algorithms and parameters for key protection, certificate protection,
+and MacData. The detailed explanation and possible values for these
+properties can be found in the "PKCS12 KeyStore properties" section of
+the `java.security` file.
+
+Also, support for the following SHA-2 based HmacPBE algorithms has
+been added to the SunJCE provider:
+
+* HmacPBESHA224
+* HmacPBESHA256
+* HmacPBESHA384
+* HmacPBESHA512
+* HmacPBESHA512/224
+* HmacPBESHA512/256
+
+core-libs/java.io:
+
+JDK-8285660: Enable Windows Alternate Data Streams by default
+=============================================================
+The Windows implementation of `java.io.File` has been changed so that
+strict validity checks are **not** performed by default on file
+paths. This includes allowing colons (':') in the path other than only
+immediately after a single drive letter. It also allows paths that
+represent NTFS Alternate Data Streams (ADS), such as
+"filename:streamname". This restores the default behavior of
+`java.io.File` to what it was prior to the April 2022 CPU in which
+strict validity checks were not performed by default on file paths on
+Windows. To re-enable strict path checking in `java.io.File`, the
+system property `jdk.io.File.enableADS` should be set to `false` (case
+ignored). This might be preferable, for example, if Windows special
+device paths such as `NUL:` are *not* used.
+
New in release OpenJDK 8u332 (2022-04-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 61aad1f..3f33d68 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -42,8 +42,8 @@ set -e
OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
-# jdk is last for its size
-REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
+# Corresponding IcedTea version
+ICEDTEA_VERSION=3.0
if [ "x$1" = "xhelp" ] ; then
echo -e "Behaviour may be specified by setting the following variables:\n"
@@ -56,7 +56,6 @@ if [ "x$1" = "xhelp" ] ; then
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if
unavailable)"
echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of
jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})"
- echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -102,10 +101,6 @@ if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
-if [ "x$REPOS" = "x" ] ; then
- REPOS=${REPOS_DEFAULT}
- echo "No repositories specified; defaulting to ${REPOS}"
-fi;
echo -e "Settings:"
echo -e "\tVERSION: ${VERSION}"
@@ -117,13 +112,13 @@ echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
echo -e "\tREPO_ROOT: ${REPO_ROOT}"
echo -e "\tPR3822: ${PR3822}"
echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}"
-echo -e "\tREPOS: ${REPOS}"
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
git clone -b ${VERSION} ${REPO_ROOT} openjdk
+
pushd openjdk
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
@@ -132,39 +127,50 @@ if [ -d langtools ] ; then
rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java
rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java
fi
+
if [ -d jdk ]; then
-# jconsole.js has a BSD license with a field-of-use restriction, making it non-Free
-echo "Removing jconsole-plugin file with non-Free license"
-rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
-echo "Removing EC source code we don't build"
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c
-rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
-
-echo "Syncing EC list with NSS"
-if [ "x$PR3822" = "x" ] ; then
-# get pr3822.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822)
- wget -O pr3822.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3822-4cur...
- patch -Np1 < pr3822.patch
- rm pr3822.patch
-else
- echo "Applying ${PR3822}"
- patch -Np1 < $PR3822
-fi;
+ # jconsole.js has a BSD license with a field-of-use restriction, making it non-Free
+ echo "Removing jconsole-plugin file with non-Free license"
+ rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
+ echo "Removing EC source code we don't build"
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c
+ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
+
+ echo "Syncing EC list with NSS"
+ if [ "x$PR3822" = "x" ] ; then
+ # get pr3822.patch (from
https://github.com/icedtea-git/icedtea) in the
${ICEDTEA_VERSION} branch
+ # Do not push it or publish it
+ wget -O pr3822.patch
https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3...
+ echo "Applying ${PWD}/pr3822.patch"
+ git apply --stat --apply -v -p1 pr3822.patch
+ rm pr3822.patch
+ else
+ echo "Applying ${PR3822}"
+ git apply --stat --apply -v -p1 $PR3822
+ fi;
fi
echo "Patching out use of jconsole.js"
-patch -Np1 < ${JCONSOLE_JS_PATCH}
+git apply --stat --apply -v -p1 ${JCONSOLE_JS_PATCH}
find . -name '*.orig' -exec rm -vf '{}' ';'
popd
+
+# Generate .src-rev so build has knowledge of the revision the tarball was created from
+mkdir build
+pushd build
+sh ${PWD}/../openjdk/configure
+make store-source-revision
+popd
+rm -rf build
+
echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
SWITCH=cJf
@@ -177,5 +183,3 @@ mv ${TARBALL_NAME} ..
popd
echo "Done. You may want to remove the uncompressed version."
-
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dac508d..d48de49 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -335,7 +335,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global openjdk_revision jdk8u332-b09
+%global openjdk_revision jdk8u342-b06
%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
@@ -351,12 +351,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 7
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1270,8 +1270,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021e required as of JDK-8275766 in January 2022 CPU
-Requires: tzdata-java >= 2021e
+# 2022a required as of JDK-8283350 in 8u342
+Requires: tzdata-java >= 2022a
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1653,8 +1653,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >=
1.7.0.151-2.6.11.3
%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
-# 2021e required as of JDK-8275766 in January 2022 CPU
-BuildRequires: tzdata-java >= 2021e
+# 2022a required as of JDK-8283350 in 8u342
+BuildRequires: tzdata-java >= 2022a
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2230,6 +2230,10 @@ function installjdk() {
echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
popd
+
+ # Print release information
+ cat ${imagepath}/release
+
fi
}
@@ -2838,6 +2842,17 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.342.b06-0.1.ea
+- Update to shenandoah-jdk8u342-b06 (EA)
+- Update release notes for shenandoah-8u342-b06.
+- Switch to EA mode for 8u342 pre-release builds.
+- Print release file during build, which should now include a correct SOURCE value from
.src-rev
+- Update tarball script with IcedTea GitHub URL and .src-rev generation
+- Use "git apply" with patches in the tarball script to allow binary diffs
+- Remove redundant "REPOS" variable from tarball script
+- Include script to generate bug list for release notes
+- Update tzdata requirement to 2022a to match JDK-8283350
+
* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-7
- Rebase FIPS patches from fips branch and simplify by using a single patch from that
repository
- * RH2051605: Detect NSS at Runtime for FIPS detection
diff --git a/openjdk_news.sh b/openjdk_news.sh
new file mode 100755
index 0000000..560b356
--- /dev/null
+++ b/openjdk_news.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+# Copyright (C) 2022 Red Hat, Inc.
+# Written by Andrew John Hughes <gnu.andrew(a)redhat.com>, 2012-2022
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <
http://www.gnu.org/licenses/>.
+
+OLD_RELEASE=$1
+NEW_RELEASE=$2
+SUBDIR=$3
+REPO=$4
+SCRIPT_DIR=$(dirname ${0})
+
+if test "x${SUBDIR}" = "x"; then
+ echo "No subdirectory specified; using .";
+ SUBDIR=".";
+fi
+
+if test "x$REPO" = "x"; then
+ echo "No repository specified; using ${PWD}"
+ REPO=${PWD}
+fi
+
+if test x${TMPDIR} = x; then
+ TMPDIR=/tmp;
+fi
+
+echo "Repository: ${REPO}"
+
+if [ -e ${REPO}/.git ] ; then
+ TYPE=git;
+elif [ -e ${REPO}/.hg ] ; then
+ TYPE=hg;
+else
+ echo "No Mercurial or Git repository detected.";
+ exit 1;
+fi
+
+if test "x$OLD_RELEASE" = "x" || test "x$NEW_RELEASE" =
"x"; then
+ echo "ERROR: Need to specify old and new release";
+ exit 2;
+fi
+
+echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO"
+rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 ${TMPDIR}/fixes
+for repos in . $(${SCRIPT_DIR}/discover_trees.sh ${REPO});
+do
+ if test "x$TYPE" = "xhg"; then
+ hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') -
tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \
+ egrep '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:|
]*summary:\W*([0-9])# - JDK-\1#'| \
+ sed 's#^[o:| ]*summary:\W*# - #' >> ${TMPDIR}/fixes2;
+ hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') -
tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \
+ egrep '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#'
>> ${TMPDIR}/fixes3;
+ else
+ git -C ${REPO} log --no-merges --pretty=format:%B ${NEW_RELEASE}...${OLD_RELEASE} --
${SUBDIR} |egrep '^[0-9]{7}' | \
+ sed -r 's#^([0-9])# - JDK-\1#' >> ${TMPDIR}/fixes2;
+ touch ${TMPDIR}/fixes3 ; # unused
+ fi
+done
+
+sort ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 | uniq > ${TMPDIR}/fixes
+rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3
+
+echo "In ${TMPDIR}/fixes:"
+cat ${TMPDIR}/fixes
diff --git a/sources b/sources
index 4662b4c..8c41d22 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz) =
23d906ecce6864e0bd3ae4c95ac597eb697c1e28356371aafd7aabab5c3a9a9d861c326125e7a45f15340a5a106c1915808fa93b3ff7cdc8b003647a44caf7fd
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz) =
bc7fb9c21f33b2edab948b2b31e3198441c7901369476cd4d4ba0056dbba394a0a19099a2d57987641575f17383a4fd2b85a791ee56fbe2deaa246ec89fe9d81
commit ccc5eab5353402cabdb6ab0cd96d71d962c98fe0
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 17 01:37:11 2022 +0100
Rebase FIPS patches from fips branch and simplify by using a single patch from that
repository
* RH2051605: Detect NSS at Runtime for FIPS detection
* RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
* RH2090378: Revert to disabling system security properties and FIPS mode support
together
Turn off build-time NSS linking and go back to an explicit Requires on NSS
Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch
Perform configuration changes (e.g. nss.cfg, nss.fips.cfg, tzdb.dat) in installjdk
Enable system security properties in the RPM (now disabled by default in the FIPS
repo)
Improve security properties test to check both enabled and disabled behaviour
Run security properties test with property debugging on
Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
diff --git a/TestSecurityProperties.java b/TestSecurityProperties.java
index 06a0b07..552bd0f 100644
--- a/TestSecurityProperties.java
+++ b/TestSecurityProperties.java
@@ -9,35 +9,59 @@ public class TestSecurityProperties {
// JDK 8
private static final String JDK_PROPS_FILE_JDK_8 =
System.getProperty("java.home") + "/lib/security/java.security";
+ private static final String POLICY_FILE =
"/etc/crypto-policies/back-ends/java.config";
+
+ private static final String MSG_PREFIX = "DEBUG: ";
+
public static void main(String[] args) {
+ if (args.length == 0) {
+ System.err.println("TestSecurityProperties <true|false>");
+ System.err.println("Invoke with 'true' if system security
properties should be enabled.");
+ System.err.println("Invoke with 'false' if system security
properties should be disabled.");
+ System.exit(1);
+ }
+ boolean enabled = Boolean.valueOf(args[0]);
+ System.out.println(MSG_PREFIX + "System security properties enabled: "
+ enabled);
Properties jdkProps = new Properties();
loadProperties(jdkProps);
+ if (enabled) {
+ loadPolicy(jdkProps);
+ }
for (Object key: jdkProps.keySet()) {
String sKey = (String)key;
String securityVal = Security.getProperty(sKey);
String jdkSecVal = jdkProps.getProperty(sKey);
if (!securityVal.equals(jdkSecVal)) {
- String msg = "Expected value '" + jdkSecVal + "'
for key '" +
+ String msg = "Expected value '" + jdkSecVal + "'
for key '" +
sKey + "'" + " but got value '"
+ securityVal + "'";
throw new RuntimeException("Test failed! " + msg);
} else {
- System.out.println("DEBUG: " + sKey + " = " +
jdkSecVal + " as expected.");
+ System.out.println(MSG_PREFIX + sKey + " = " + jdkSecVal +
" as expected.");
}
}
System.out.println("TestSecurityProperties PASSED!");
}
-
+
private static void loadProperties(Properties props) {
String javaVersion = System.getProperty("java.version");
- System.out.println("Debug: Java version is " + javaVersion);
+ System.out.println(MSG_PREFIX + "Java version is " + javaVersion);
String propsFile = JDK_PROPS_FILE_JDK_11;
if (javaVersion.startsWith("1.8.0")) {
propsFile = JDK_PROPS_FILE_JDK_8;
}
- try (FileInputStream fin = new FileInputStream(new File(propsFile))) {
+ try (FileInputStream fin = new FileInputStream(propsFile)) {
+ props.load(fin);
+ } catch (Exception e) {
+ throw new RuntimeException("Test failed!", e);
+ }
+ }
+
+ private static void loadPolicy(Properties props) {
+ try (FileInputStream fin = new FileInputStream(POLICY_FILE)) {
props.load(fin);
} catch (Exception e) {
throw new RuntimeException("Test failed!", e);
}
}
+
}
diff --git a/fips-8u-8e8bbf0ff74.patch b/fips-8u-8e8bbf0ff74.patch
new file mode 100644
index 0000000..2379d45
--- /dev/null
+++ b/fips-8u-8e8bbf0ff74.patch
@@ -0,0 +1,2007 @@
+diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac
+index 151e5a109f8..a8761b500e0 100644
+--- a/common/autoconf/configure.ac
++++ b/common/autoconf/configure.ac
+@@ -212,6 +212,7 @@ LIB_SETUP_FREETYPE
+ LIB_SETUP_ALSA
+ LIB_SETUP_FONTCONFIG
+ LIB_SETUP_MISC_LIBS
++LIB_SETUP_SYSCONF_LIBS
+ LIB_SETUP_STATIC_LINK_LIBSTDCPP
+ LIB_SETUP_ON_WINDOWS
+
+diff --git a/common/autoconf/generated-configure.sh
b/common/autoconf/generated-configure.sh
+index e77ce854dc5..ec6e9b27ca5 100644
+--- a/common/autoconf/generated-configure.sh
++++ b/common/autoconf/generated-configure.sh
+@@ -651,6 +651,9 @@ LLVM_CONFIG
+ LIBFFI_LIBS
+ LIBFFI_CFLAGS
+ STATIC_CXX_SETTING
++USE_SYSCONF_NSS
++NSS_LIBS
++NSS_CFLAGS
+ LIBDL
+ LIBM
+ LIBZIP_CAN_USE_MMAP
+@@ -1111,6 +1114,7 @@ with_fontconfig
+ with_fontconfig_include
+ with_giflib
+ with_zlib
++enable_sysconf_nss
+ with_stdc__lib
+ with_msvcr_dll
+ with_msvcp_dll
+@@ -1218,6 +1222,8 @@ FREETYPE_CFLAGS
+ FREETYPE_LIBS
+ ALSA_CFLAGS
+ ALSA_LIBS
++NSS_CFLAGS
++NSS_LIBS
+ LIBFFI_CFLAGS
+ LIBFFI_LIBS
+ CCACHE'
+@@ -1871,6 +1877,8 @@ Optional Features:
+ disable bundling of the freetype library with the
+ build result [enabled on Windows or when using
+ --with-freetype, disabled otherwise]
++ --enable-sysconf-nss build the System Configurator (libsysconf) using the
++ system NSS library if available [disabled]
+ --enable-sjavac use sjavac to do fast incremental compiles
+ [disabled]
+ --disable-precompiled-headers
+@@ -2115,6 +2123,8 @@ Some influential environment variables:
+ linker flags for FREETYPE, overriding pkg-config
+ ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
+ ALSA_LIBS linker flags for ALSA, overriding pkg-config
++ NSS_CFLAGS C compiler flags for NSS, overriding pkg-config
++ NSS_LIBS linker flags for NSS, overriding pkg-config
+ LIBFFI_CFLAGS
+ C compiler flags for LIBFFI, overriding pkg-config
+ LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config
+@@ -2879,6 +2889,52 @@ $as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+ } # ac_fn_c_check_header_compile
++
++# ac_fn_c_try_link LINENO
++# -----------------------
++# Try to link conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_link ()
++{
++ as_lineno=${as_lineno-"$1"}
as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { { ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++ (eval "$ac_link") 2>conftest.err
++ ac_status=$?
++ if test -s conftest.err; then
++ grep -v '^ *+' conftest.err >conftest.er1
++ cat conftest.er1 >&5
++ mv -f conftest.er1 conftest.err
++ fi
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext && {
++ test "$cross_compiling" = yes ||
++ test -x conftest$ac_exeext
++ }; then :
++ ac_retval=0
++else
++ $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_retval=1
++fi
++ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
++ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
++ # interfere with the next link command; also delete a directory that is
++ # left behind by Apple's compiler. We do this before executing the actions.
++ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++ as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_link
+ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+@@ -4049,6 +4105,11 @@ fi
+
+
+
++################################################################################
++# Setup system configuration libraries
++################################################################################
++
++
+ #
+ # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+@@ -49290,6 +49351,157 @@ fi
+ LIBS="$save_LIBS"
+
+
++ ###############################################################################
++ #
++ # Check for the NSS library
++ #
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the system NSS
library with the System Configurator (libsysconf)" >&5
++$as_echo_n "checking whether to use the system NSS library with the System
Configurator (libsysconf)... " >&6; }
++
++ # default is not available
++ DEFAULT_SYSCONF_NSS=no
++
++ # Check whether --enable-sysconf-nss was given.
++if test "${enable_sysconf_nss+set}" = set; then :
++ enableval=$enable_sysconf_nss;
++ case "${enableval}" in
++ yes)
++ sysconf_nss=yes
++ ;;
++ *)
++ sysconf_nss=no
++ ;;
++ esac
++
++else
++
++ sysconf_nss=${DEFAULT_SYSCONF_NSS}
++
++fi
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sysconf_nss" >&5
++$as_echo "$sysconf_nss" >&6; }
++
++ USE_SYSCONF_NSS=false
++ if test "x${sysconf_nss}" = "xyes"; then
++
++pkg_failed=no
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5
++$as_echo_n "checking for NSS... " >&6; }
++
++if test -n "$NSS_CFLAGS"; then
++ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS"
++ elif test -n "$PKG_CONFIG"; then
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors
\"nss >= 3.53\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "nss >= 3.53") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nss >= 3.53" 2>/dev/null`
++else
++ pkg_failed=yes
++fi
++ else
++ pkg_failed=untried
++fi
++if test -n "$NSS_LIBS"; then
++ pkg_cv_NSS_LIBS="$NSS_LIBS"
++ elif test -n "$PKG_CONFIG"; then
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors
\"nss >= 3.53\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "nss >= 3.53") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nss >= 3.53" 2>/dev/null`
++else
++ pkg_failed=yes
++fi
++ else
++ pkg_failed=untried
++fi
++
++
++
++if test $pkg_failed = yes; then
++
++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
++ _pkg_short_errors_supported=yes
++else
++ _pkg_short_errors_supported=no
++fi
++ if test $_pkg_short_errors_supported = yes; then
++ NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nss >=
3.53" 2>&1`
++ else
++ NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "nss >= 3.53"
2>&1`
++ fi
++ # Put the nasty error message in config.log where it belongs
++ echo "$NSS_PKG_ERRORS" >&5
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ NSS_FOUND=no
++elif test $pkg_failed = untried; then
++ NSS_FOUND=no
++else
++ NSS_CFLAGS=$pkg_cv_NSS_CFLAGS
++ NSS_LIBS=$pkg_cv_NSS_LIBS
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++ NSS_FOUND=yes
++fi
++ if test "x${NSS_FOUND}" = "xyes"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for system FIPS support
in NSS" >&5
++$as_echo_n "checking for system FIPS support in NSS... " >&6; }
++ saved_libs="${LIBS}"
++ saved_cflags="${CFLAGS}"
++ CFLAGS="${CFLAGS} ${NSS_CFLAGS}"
++ LIBS="${LIBS} ${NSS_LIBS}"
++ ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
>&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <nss3/pk11pub.h>
++int
++main ()
++{
++SECMOD_GetSystemFIPSEnabled()
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ as_fn_error $? "System NSS FIPS detection unavailable"
"$LINENO" 5
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++ ac_ext=cpp
++ac_cpp='$CXXCPP $CPPFLAGS'
++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext
$LIBS >&5'
++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
++
++ CFLAGS="${saved_cflags}"
++ LIBS="${saved_libs}"
++ USE_SYSCONF_NSS=true
++ else
++ as_fn_error $? "--enable-sysconf-nss specified, but NSS
3.53 or above not found." "$LINENO" 5
++ fi
++ fi
++
++
++
+ ###############################################################################
+ #
+ # statically link libstdc++ before C++ ABI is stablized on Linux unless
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+index 6efae578ea9..0080846255b 100644
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -1067,3 +1067,63 @@ AC_DEFUN_ONCE([LIB_SETUP_ON_WINDOWS],
+ BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
+ fi
+ ])
++
++################################################################################
++# Setup system configuration libraries
++################################################################################
++AC_DEFUN_ONCE([LIB_SETUP_SYSCONF_LIBS],
++[
++ ###############################################################################
++ #
++ # Check for the NSS library
++ #
++
++ AC_MSG_CHECKING([whether to use the system NSS library with the System Configurator
(libsysconf)])
++
++ # default is not available
++ DEFAULT_SYSCONF_NSS=no
++
++ AC_ARG_ENABLE([sysconf-nss], [AS_HELP_STRING([--enable-sysconf-nss],
++ [build the System Configurator (libsysconf) using the system NSS library if
available @<:@disabled@:>@])],
++ [
++ case "${enableval}" in
++ yes)
++ sysconf_nss=yes
++ ;;
++ *)
++ sysconf_nss=no
++ ;;
++ esac
++ ],
++ [
++ sysconf_nss=${DEFAULT_SYSCONF_NSS}
++ ])
++ AC_MSG_RESULT([$sysconf_nss])
++
++ USE_SYSCONF_NSS=false
++ if test "x${sysconf_nss}" = "xyes"; then
++ PKG_CHECK_MODULES(NSS, nss >= 3.53, [NSS_FOUND=yes], [NSS_FOUND=no])
++ if test "x${NSS_FOUND}" = "xyes"; then
++ AC_MSG_CHECKING([for system FIPS support in NSS])
++ saved_libs="${LIBS}"
++ saved_cflags="${CFLAGS}"
++ CFLAGS="${CFLAGS} ${NSS_CFLAGS}"
++ LIBS="${LIBS} ${NSS_LIBS}"
++ AC_LANG_PUSH([C])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss3/pk11pub.h>]],
++ [[SECMOD_GetSystemFIPSEnabled()]])],
++ [AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])
++ AC_MSG_ERROR([System NSS FIPS detection unavailable])])
++ AC_LANG_POP([C])
++ CFLAGS="${saved_cflags}"
++ LIBS="${saved_libs}"
++ USE_SYSCONF_NSS=true
++ else
++ dnl NSS 3.53 is the one that introduces the SECMOD_GetSystemFIPSEnabled API
++ dnl in nss3/pk11pub.h.
++ AC_MSG_ERROR([--enable-sysconf-nss specified, but NSS 3.53 or above not
found.])
++ fi
++ fi
++ AC_SUBST(USE_SYSCONF_NSS)
++])
+diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
+index 506cf617087..7241593b1a4 100644
+--- a/common/autoconf/spec.gmk.in
++++ b/common/autoconf/spec.gmk.in
+@@ -312,6 +312,10 @@ CUPS_CFLAGS:=@CUPS_CFLAGS@
+ ALSA_LIBS:=@ALSA_LIBS@
+ ALSA_CFLAGS:=@ALSA_CFLAGS@
+
++USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
++NSS_LIBS:=@NSS_LIBS@
++NSS_CFLAGS:=@NSS_CFLAGS@
++
+ PACKAGE_PATH=@PACKAGE_PATH@
+
+ # Source file for cacerts
+diff --git a/common/bin/compare_exceptions.sh.incl
b/common/bin/compare_exceptions.sh.incl
+index 3b79a526f56..d2a0e39b206 100644
+--- a/common/bin/compare_exceptions.sh.incl
++++ b/common/bin/compare_exceptions.sh.incl
+@@ -280,6 +280,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
+ ./jre/lib/i386/libsplashscreen.so
+ ./jre/lib/i386/libsunec.so
+ ./jre/lib/i386/libsunwjdga.so
++./jre/lib/i386/libsystemconf.so
+ ./jre/lib/i386/libt2k.so
+ ./jre/lib/i386/libunpack.so
+ ./jre/lib/i386/libverify.so
+@@ -433,6 +434,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
+ ./jre/lib/amd64/libsplashscreen.so
+ ./jre/lib/amd64/libsunec.so
+ ./jre/lib/amd64/libsunwjdga.so
++//jre/lib/amd64/libsystemconf.so
+ ./jre/lib/amd64/libt2k.so
+ ./jre/lib/amd64/libunpack.so
+ ./jre/lib/amd64/libverify.so
+@@ -587,6 +589,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
+ ./jre/lib/sparc/libsplashscreen.so
+ ./jre/lib/sparc/libsunec.so
+ ./jre/lib/sparc/libsunwjdga.so
++./jre/lib/sparc/libsystemconf.so
+ ./jre/lib/sparc/libt2k.so
+ ./jre/lib/sparc/libunpack.so
+ ./jre/lib/sparc/libverify.so
+@@ -741,6 +744,7 @@ ACCEPTED_SMALL_SIZE_DIFF="
+ ./jre/lib/sparcv9/libsplashscreen.so
+ ./jre/lib/sparcv9/libsunec.so
+ ./jre/lib/sparcv9/libsunwjdga.so
++./jre/lib/sparcv9/libsystemconf.so
+ ./jre/lib/sparcv9/libt2k.so
+ ./jre/lib/sparcv9/libunpack.so
+ ./jre/lib/sparcv9/libverify.so
+diff --git a/common/nb_native/nbproject/configurations.xml
b/common/nb_native/nbproject/configurations.xml
+index d2beed0b93a..3b6aef98d9a 100644
+--- a/common/nb_native/nbproject/configurations.xml
++++ b/common/nb_native/nbproject/configurations.xml
+@@ -53,6 +53,9 @@
+ <in>jvmtiEnterTrace.cpp</in>
+ </df>
+ </df>
++ <df name="libsystemconf">
++ <in>systemconf.c</in>
++ </df>
+ </df>
+ </df>
+ <df name="jdk">
+@@ -12772,6 +12775,11 @@
+ tool="0"
+ flavor2="0">
+ </item>
++ <item path="../../jdk/src/solaris/native/java/security/systemconf.c"
++ ex="false"
++ tool="0"
++ flavor2="0">
++ </item>
+ <item path="../../jdk/src/share/native/java/util/TimeZone.c"
+ ex="false"
+ tool="0"
+diff --git a/jdk/make/lib/SecurityLibraries.gmk b/jdk/make/lib/SecurityLibraries.gmk
+index b0b85d80448..47a41d7518d 100644
+--- a/jdk/make/lib/SecurityLibraries.gmk
++++ b/jdk/make/lib/SecurityLibraries.gmk
+@@ -289,3 +289,34 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
+
+ endif
+ endif
++
++################################################################################
++# Create the systemconf library
++
++LIBSYSTEMCONF_CFLAGS :=
++LIBSYSTEMCONF_CXXFLAGS :=
++
++ifeq ($(USE_SYSCONF_NSS), true)
++ LIBSYSTEMCONF_CFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++ LIBSYSTEMCONF_CXXFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++endif
++
++ifeq ($(OPENJDK_BUILD_OS), linux)
++ $(eval $(call SetupNativeCompilation,BUILD_LIBSYSTEMCONF, \
++ LIBRARY := systemconf, \
++ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
++ SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/security, \
++ LANG := C, \
++ OPTIMIZATION := LOW, \
++ CFLAGS := $(CFLAGS_JDKLIB) $(LIBSYSTEMCONF_CFLAGS), \
++ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBSYSTEMCONF_CXXFLAGS), \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsystemconf/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX := $(LIBDL) $(NSS_LIBS), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsystemconf, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF)
++endif
++
+diff --git a/jdk/make/mapfiles/libsystemconf/mapfile-vers
b/jdk/make/mapfiles/libsystemconf/mapfile-vers
+new file mode 100644
+index 00000000000..a65ceb3b78c
+--- /dev/null
++++ b/jdk/make/mapfiles/libsystemconf/mapfile-vers
+@@ -0,0 +1,35 @@
++#
++# Copyright (c) 2021, 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. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# 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.
++#
++
++# Define public interface.
++
++SUNWprivate_1.1 {
++ global:
++ DEF_JNI_OnLoad;
++ DEF_JNI_OnUnLoad;
++ Java_java_security_SystemConfigurator_getSystemFIPSEnabled;
++ local:
++ *;
++};
+diff --git a/jdk/src/share/classes/java/security/Security.java
b/jdk/src/share/classes/java/security/Security.java
+index 0db09da7061..813b907db3e 100644
+--- a/jdk/src/share/classes/java/security/Security.java
++++ b/jdk/src/share/classes/java/security/Security.java
+@@ -30,6 +30,8 @@ import java.util.*;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.io.*;
+ import java.net.URL;
++import sun.misc.SharedSecrets;
++import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+ import sun.security.util.PropertyExpander;
+
+@@ -43,11 +45,19 @@ import sun.security.jca.*;
+ * implementation-specific location, which is typically the properties file
+ * {@code lib/security/java.security} in the Java installation directory.
+ *
++ * <p>Additional default values of security properties are read from a
++ * system-specific location, if available.</p>
++ *
+ * @author Benjamin Renaud
+ */
+
+ public final class Security {
+
++ private static final String SYS_PROP_SWITCH =
++ "java.security.disableSystemPropertiesFile";
++ private static final String SEC_PROP_SWITCH =
++ "security.useSystemPropertiesFile";
++
+ /* Are we debugging? -- for developers */
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+@@ -62,6 +72,19 @@ public final class Security {
+ }
+
+ static {
++ // Initialise here as used by code with system properties disabled
++ SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
++ new JavaSecuritySystemConfiguratorAccess() {
++ @Override
++ public boolean isSystemFipsEnabled() {
++ return SystemConfigurator.isSystemFipsEnabled();
++ }
++ @Override
++ public boolean isPlainKeySupportEnabled() {
++ return SystemConfigurator.isPlainKeySupportEnabled();
++ }
++ });
++
+ // doPrivileged here because there are multiple
+ // things in initialize that might require privs.
+ // (the FileInputStream call and the File.exists call,
+@@ -78,6 +101,7 @@ public final class Security {
+ props = new Properties();
+ boolean loadedProps = false;
+ boolean overrideAll = false;
++ boolean systemSecPropsEnabled = false;
+
+ // first load the system properties file
+ // to determine the value of security.overridePropertiesFile
+@@ -93,6 +117,7 @@ public final class Security {
+ if (sdebug != null) {
+ sdebug.println("reading security properties file: " +
+ propFile);
++ sdebug.println(props.toString());
+ }
+ } catch (IOException e) {
+ if (sdebug != null) {
+@@ -187,6 +212,61 @@ public final class Security {
+ }
+ }
+
++ boolean sysUseProps = Boolean.valueOf(System.getProperty(SYS_PROP_SWITCH,
"false"));
++ boolean secUseProps = Boolean.valueOf(props.getProperty(SEC_PROP_SWITCH));
++ if (sdebug != null) {
++ sdebug.println(SYS_PROP_SWITCH + "=" + sysUseProps);
++ sdebug.println(SEC_PROP_SWITCH + "=" + secUseProps);
++ }
++ if (!sysUseProps && secUseProps) {
++ systemSecPropsEnabled = SystemConfigurator.configureSysProps(props);
++ if (!systemSecPropsEnabled) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System security properties could not
be loaded.");
++ }
++ }
++ } else {
++ if (sdebug != null) {
++ sdebug.println("System security property support disabled by
user.");
++ }
++ }
++
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps && systemSecPropsEnabled) {
++ boolean shouldEnable;
++ String sysProp = System.getProperty("com.redhat.fips");
++ if (sysProp == null) {
++ shouldEnable = true;
++ if (sdebug != null) {
++ sdebug.println("com.redhat.fips unset, using default value of
true");
++ }
++ } else {
++ shouldEnable = Boolean.valueOf(sysProp);
++ if (sdebug != null) {
++ sdebug.println("com.redhat.fips set, using its value " +
shouldEnable);
++ }
++ }
++ if (shouldEnable) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
++ if (sdebug != null) {
++ if (fipsEnabled) {
++ sdebug.println("FIPS mode support configured and
enabled.");
++ } else {
++ sdebug.println("FIPS mode support disabled.");
++ }
++ }
++ } else {
++ if (sdebug != null ) {
++ sdebug.println("FIPS mode support disabled by user.");
++ }
++ }
++ } else {
++ if (sdebug != null) {
++ sdebug.println("WARNING: FIPS mode support can not be enabled
without " +
++ "system security properties being enabled.");
++ }
++ }
+ }
+
+ /*
+diff --git a/jdk/src/share/classes/java/security/SystemConfigurator.java
b/jdk/src/share/classes/java/security/SystemConfigurator.java
+new file mode 100644
+index 00000000000..a24a0445db2
+--- /dev/null
++++ b/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -0,0 +1,248 @@
++/*
++ * Copyright (c) 2019, 2021, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package java.security;
++
++import java.io.BufferedInputStream;
++import java.io.FileInputStream;
++import java.io.IOException;
++
++import java.util.Iterator;
++import java.util.Map.Entry;
++import java.util.Properties;
++
++import sun.security.util.Debug;
++
++/**
++ * Internal class to align OpenJDK with global crypto-policies.
++ * Called from java.security.Security class initialization,
++ * during startup.
++ *
++ */
++
++final class SystemConfigurator {
++
++ private static final Debug sdebug =
++ Debug.getInstance("properties");
++
++ private static final String CRYPTO_POLICIES_BASE_DIR =
++ "/etc/crypto-policies";
++
++ private static final String CRYPTO_POLICIES_JAVA_CONFIG =
++ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
++
++ private static boolean systemFipsEnabled = false;
++ private static boolean plainKeySupportEnabled = false;
++
++ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
++
++ private static native boolean getSystemFIPSEnabled()
++ throws IOException;
++
++ static {
++ AccessController.doPrivileged(new PrivilegedAction<Void>() {
++ public Void run() {
++ System.loadLibrary(SYSTEMCONF_NATIVE_LIB);
++ return null;
++ }
++ });
++ }
++
++ /*
++ * Invoked when java.security.Security class is initialized, if
++ * java.security.disableSystemPropertiesFile property is not set and
++ * security.useSystemPropertiesFile is true.
++ */
++ static boolean configureSysProps(Properties props) {
++ boolean systemSecPropsLoaded = false;
++
++ try (BufferedInputStream bis =
++ new BufferedInputStream(
++ new FileInputStream(CRYPTO_POLICIES_JAVA_CONFIG))) {
++ props.load(bis);
++ systemSecPropsLoaded = true;
++ if (sdebug != null) {
++ sdebug.println("reading system security properties file " +
++ CRYPTO_POLICIES_JAVA_CONFIG);
++ sdebug.println(props.toString());
++ }
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println("unable to load security properties from " +
++ CRYPTO_POLICIES_JAVA_CONFIG);
++ e.printStackTrace();
++ }
++ }
++ return systemSecPropsLoaded;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
++
++ try {
++ if (enableFips()) {
++ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
++ // Remove all security providers
++ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
++ while (i.hasNext()) {
++ Entry<Object, Object> e = i.next();
++ if (((String) e.getKey()).startsWith("security.provider"))
{
++ if (sdebug != null) { sdebug.println("Removing provider:
" + e); }
++ i.remove();
++ }
++ }
++ // Add FIPS security providers
++ String fipsProviderValue = null;
++ for (int n = 1;
++ (fipsProviderValue = (String) props.get("fips.provider."
+ n)) != null; n++) {
++ String fipsProviderKey = "security.provider." + n;
++ if (sdebug != null) {
++ sdebug.println("Adding provider " + n + ": "
+
++ fipsProviderKey + "=" + fipsProviderValue);
++ }
++ props.put(fipsProviderKey, fipsProviderValue);
++ }
++ // Add other security properties
++ String keystoreTypeValue = (String)
props.get("fips.keystore.type");
++ if (keystoreTypeValue != null) {
++ String nonFipsKeystoreType =
props.getProperty("keystore.type");
++ props.put("keystore.type", keystoreTypeValue);
++ if (keystoreTypeValue.equals("PKCS11")) {
++ // If keystore.type is PKCS11, javax.net.ssl.keyStore
++ // must be "NONE". See JDK-8238264.
++ System.setProperty("javax.net.ssl.keyStore",
"NONE");
++ }
++ if (System.getProperty("javax.net.ssl.trustStoreType") ==
null) {
++ // If no trustStoreType has been set, use the
++ // previous keystore.type under FIPS mode. In
++ // a default configuration, the Trust Store will
++ // be 'cacerts' (JKS type).
++ System.setProperty("javax.net.ssl.trustStoreType",
++ nonFipsKeystoreType);
++ }
++ if (sdebug != null) {
++ sdebug.println("FIPS mode default keystore.type = " +
++ keystoreTypeValue);
++ sdebug.println("FIPS mode javax.net.ssl.keyStore = "
+
++ System.getProperty("javax.net.ssl.keyStore",
""));
++ sdebug.println("FIPS mode javax.net.ssl.trustStoreType =
" +
++
System.getProperty("javax.net.ssl.trustStoreType", ""));
++ }
++ }
++ loadedProps = true;
++ systemFipsEnabled = true;
++ String plainKeySupport =
System.getProperty("com.redhat.fips.plainKeySupport",
++ "true");
++ plainKeySupportEnabled = !"false".equals(plainKeySupport);
++ if (sdebug != null) {
++ if (plainKeySupportEnabled) {
++ sdebug.println("FIPS support enabled with plain key
support");
++ } else {
++ sdebug.println("FIPS support enabled without plain key
support");
++ }
++ }
++ } else {
++ if (sdebug != null) { sdebug.println("FIPS mode not
detected"); }
++ }
++ } catch (Exception e) {
++ if (sdebug != null) {
++ sdebug.println("unable to load FIPS configuration");
++ e.printStackTrace();
++ }
++ }
++ return loadedProps;
++ }
++
++ /**
++ * Returns whether or not global system FIPS alignment is enabled.
++ *
++ * Value is always 'false' before java.security.Security class is
++ * initialized.
++ *
++ * Call from out of this package through SharedSecrets:
++ * SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ * .isSystemFipsEnabled();
++ *
++ * @return a boolean value indicating whether or not global
++ * system FIPS alignment is enabled.
++ */
++ static boolean isSystemFipsEnabled() {
++ return systemFipsEnabled;
++ }
++
++ /**
++ * Returns {@code true} if system FIPS alignment is enabled
++ * and plain key support is allowed. Plain key support is
++ * enabled by default but can be disabled with
++ * {@code -Dcom.redhat.fips.plainKeySupport=false}.
++ *
++ * @return a boolean indicating whether plain key support
++ * should be enabled.
++ */
++ static boolean isPlainKeySupportEnabled() {
++ return plainKeySupportEnabled;
++ }
++
++ /**
++ * Determines whether FIPS mode should be enabled.
++ *
++ * OpenJDK FIPS mode will be enabled only if the system is in
++ * FIPS mode.
++ *
++ * Calls to this method only occur if the system property
++ * com.redhat.fips is not set to false.
++ *
++ * There are 2 possible ways in which OpenJDK detects that the system
++ * is in FIPS mode: 1) if the NSS SECMOD_GetSystemFIPSEnabled API is
++ * available at OpenJDK's built-time, it is called; 2) otherwise, the
++ * /proc/sys/crypto/fips_enabled file is read.
++ *
++ * @return true if the system is in FIPS mode
++ */
++ private static boolean enableFips() throws IOException {
++ if (sdebug != null) {
++ sdebug.println("Calling getSystemFIPSEnabled
(libsystemconf)...");
++ }
++ try {
++ boolean fipsEnabled = getSystemFIPSEnabled();
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
returned: "
++ + fipsEnabled);
++ }
++ return fipsEnabled;
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
failed:");
++ sdebug.println(e.getMessage());
++ }
++ throw e;
++ }
++ }
++}
+diff --git a/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+new file mode 100644
+index 00000000000..5c30a8b29c7
+--- /dev/null
++++ b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+@@ -0,0 +1,31 @@
++/*
++ * Copyright (c) 2020, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.misc;
++
++public interface JavaSecuritySystemConfiguratorAccess {
++ boolean isSystemFipsEnabled();
++ boolean isPlainKeySupportEnabled();
++}
+diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java
b/jdk/src/share/classes/sun/misc/SharedSecrets.java
+index f065a2c685d..0dafe6f59cf 100644
+--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -31,6 +31,7 @@ import java.io.Console;
+ import java.io.FileDescriptor;
+ import java.io.ObjectInputStream;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ import java.security.AccessController;
+@@ -63,6 +64,7 @@ public class SharedSecrets {
+ private static JavaObjectInputStreamReadString javaObjectInputStreamReadString;
+ private static JavaObjectInputStreamAccess javaObjectInputStreamAccess;
+ private static JavaSecuritySignatureAccess javaSecuritySignatureAccess;
++ private static JavaSecuritySystemConfiguratorAccess
javaSecuritySystemConfiguratorAccess;
+
+ public static JavaUtilJarAccess javaUtilJarAccess() {
+ if (javaUtilJarAccess == null) {
+@@ -248,4 +250,15 @@ public class SharedSecrets {
+ }
+ return javaxCryptoSealedObjectAccess;
+ }
++
++ public static void
setJavaSecuritySystemConfiguratorAccess(JavaSecuritySystemConfiguratorAccess jssca) {
++ javaSecuritySystemConfiguratorAccess = jssca;
++ }
++
++ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ unsafe.ensureClassInitialized(Security.class);
++ }
++ return javaSecuritySystemConfiguratorAccess;
++ }
+ }
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+new file mode 100644
+index 00000000000..14d19450390
+--- /dev/null
++++ b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+@@ -0,0 +1,290 @@
++/*
++ * Copyright (c) 2021, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.security.pkcs11;
++
++import java.math.BigInteger;
++import java.security.KeyFactory;
++import java.security.Provider;
++import java.security.Security;
++import java.util.HashMap;
++import java.util.Map;
++import java.util.concurrent.locks.ReentrantLock;
++
++import javax.crypto.Cipher;
++import javax.crypto.spec.DHPrivateKeySpec;
++import javax.crypto.spec.IvParameterSpec;
++
++import sun.security.jca.JCAUtil;
++import sun.security.pkcs11.TemplateManager;
++import sun.security.pkcs11.wrapper.CK_ATTRIBUTE;
++import sun.security.pkcs11.wrapper.CK_MECHANISM;
++import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
++import sun.security.pkcs11.wrapper.PKCS11Exception;
++import sun.security.rsa.RSAUtil.KeyType;
++import sun.security.util.Debug;
++import sun.security.util.ECUtil;
++
++final class FIPSKeyImporter {
++
++ private static final Debug debug =
++ Debug.getInstance("sunpkcs11");
++
++ private static P11Key importerKey = null;
++ private static final ReentrantLock importerKeyLock = new ReentrantLock();
++ private static CK_MECHANISM importerKeyMechanism = null;
++ private static Cipher importerCipher = null;
++
++ private static Provider sunECProvider = null;
++ private static final ReentrantLock sunECProviderLock = new ReentrantLock();
++
++ private static KeyFactory DHKF = null;
++ private static final ReentrantLock DHKFLock = new ReentrantLock();
++
++ static Long importKey(SunPKCS11 sunPKCS11, long hSession, CK_ATTRIBUTE[]
attributes)
++ throws PKCS11Exception {
++ long keyID = -1;
++ Token token = sunPKCS11.getToken();
++ if (debug != null) {
++ debug.println("Private or Secret key will be imported in" +
++ " system FIPS mode.");
++ }
++ if (importerKey == null) {
++ importerKeyLock.lock();
++ try {
++ if (importerKey == null) {
++ if (importerKeyMechanism == null) {
++ // Importer Key creation has not been tried yet. Try it.
++ createImporterKey(token);
++ }
++ if (importerKey == null || importerCipher == null) {
++ if (debug != null) {
++ debug.println("Importer Key could not be" +
++ " generated.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ if (debug != null) {
++ debug.println("Importer Key successfully" +
++ " generated.");
++ }
++ }
++ } finally {
++ importerKeyLock.unlock();
++ }
++ }
++ long importerKeyID = importerKey.getKeyID();
++ try {
++ byte[] keyBytes = null;
++ byte[] encKeyBytes = null;
++ long keyClass = 0L;
++ long keyType = 0L;
++ Map<Long, CK_ATTRIBUTE> attrsMap = new HashMap<>();
++ for (CK_ATTRIBUTE attr : attributes) {
++ if (attr.type == CKA_CLASS) {
++ keyClass = attr.getLong();
++ } else if (attr.type == CKA_KEY_TYPE) {
++ keyType = attr.getLong();
++ }
++ attrsMap.put(attr.type, attr);
++ }
++ BigInteger v = null;
++ if (keyClass == CKO_PRIVATE_KEY) {
++ if (keyType == CKK_RSA) {
++ if (debug != null) {
++ debug.println("Importing an RSA private key...");
++ }
++ keyBytes = sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(
++ KeyType.RSA,
++ null,
++ ((v = attrsMap.get(CKA_MODULUS).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PUBLIC_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIVATE_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_1).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_2).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_1).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_2).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_COEFFICIENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ } else if (keyType == CKK_DSA) {
++ if (debug != null) {
++ debug.println("Importing a DSA private key...");
++ }
++ keyBytes = new sun.security.provider.DSAPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_SUBPRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_EC) {
++ if (debug != null) {
++ debug.println("Importing an EC private key...");
++ }
++ if (sunECProvider == null) {
++ sunECProviderLock.lock();
++ try {
++ if (sunECProvider == null) {
++ sunECProvider =
Security.getProvider("SunEC");
++ }
++ } finally {
++ sunECProviderLock.unlock();
++ }
++ }
++ keyBytes = P11ECUtil.generateECPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ECUtil.getECParameterSpec(sunECProvider,
++ attrsMap.get(CKA_EC_PARAMS).getByteArray()))
++ .getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_DH) {
++ if (debug != null) {
++ debug.println("Importing a Diffie-Hellman private
key...");
++ }
++ if (DHKF == null) {
++ DHKFLock.lock();
++ try {
++ if (DHKF == null) {
++ DHKF = KeyFactory.getInstance(
++ "DH", P11Util.getSunJceProvider());
++ }
++ } finally {
++ DHKFLock.unlock();
++ }
++ }
++ DHPrivateKeySpec spec = new DHPrivateKeySpec
++ (((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO);
++ keyBytes = DHKF.generatePrivate(spec).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else {
++ if (debug != null) {
++ debug.println("Unrecognized private key type.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ } else if (keyClass == CKO_SECRET_KEY) {
++ if (debug != null) {
++ debug.println("Importing a secret key...");
++ }
++ keyBytes = attrsMap.get(CKA_VALUE).getByteArray();
++ }
++ if (keyBytes == null || keyBytes.length == 0) {
++ if (debug != null) {
++ debug.println("Private or secret key plain bytes could" +
++ " not be obtained. Import failed.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ importerCipher.init(Cipher.ENCRYPT_MODE, importerKey,
++ new IvParameterSpec((byte[])importerKeyMechanism.pParameter),
++ null);
++ attributes = new CK_ATTRIBUTE[attrsMap.size()];
++ attrsMap.values().toArray(attributes);
++ encKeyBytes = importerCipher.doFinal(keyBytes);
++ attributes = token.getAttributes(TemplateManager.O_IMPORT,
++ keyClass, keyType, attributes);
++ keyID = token.p11.C_UnwrapKey(hSession,
++ importerKeyMechanism, importerKeyID, encKeyBytes, attributes);
++ if (debug != null) {
++ debug.println("Imported key ID: " + keyID);
++ }
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ } finally {
++ importerKey.releaseKeyID();
++ }
++ return Long.valueOf(keyID);
++ }
++
++ private static void createImporterKey(Token token) {
++ if (debug != null) {
++ debug.println("Generating Importer Key...");
++ }
++ byte[] iv = new byte[16];
++ JCAUtil.getSecureRandom().nextBytes(iv);
++ importerKeyMechanism = new CK_MECHANISM(CKM_AES_CBC_PAD, iv);
++ try {
++ CK_ATTRIBUTE[] attributes = token.getAttributes(TemplateManager.O_GENERATE,
++ CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] {
++ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY),
++ new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3)});
++ Session s = null;
++ try {
++ s = token.getObjSession();
++ long keyID = token.p11.C_GenerateKey(
++ s.id(), new CK_MECHANISM(CKM_AES_KEY_GEN),
++ attributes);
++ if (debug != null) {
++ debug.println("Importer Key ID: " + keyID);
++ }
++ importerKey = (P11Key)P11Key.secretKey(s, keyID, "AES",
++ 256 >> 3, null);
++ } catch (PKCS11Exception e) {
++ // best effort
++ } finally {
++ token.releaseSession(s);
++ }
++ if (importerKey != null) {
++ importerCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
++ }
++ } catch (Throwable t) {
++ // best effort
++ importerKey = null;
++ importerCipher = null;
++ // importerKeyMechanism value is kept initialized to indicate that
++ // Importer Key creation has been tried and failed.
++ }
++ }
++}
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+index fedcd7743ef..f9d70863bd1 100644
+--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -26,6 +26,9 @@
+ package sun.security.pkcs11;
+
+ import java.io.*;
++import java.lang.invoke.MethodHandle;
++import java.lang.invoke.MethodHandles;
++import java.lang.invoke.MethodType;
+ import java.util.*;
+
+ import java.security.*;
+@@ -42,6 +45,8 @@ import javax.security.auth.callback.ConfirmationCallback;
+ import javax.security.auth.callback.PasswordCallback;
+ import javax.security.auth.callback.TextOutputCallback;
+
++import sun.misc.SharedSecrets;
++
+ import sun.security.util.Debug;
+ import sun.security.util.ResourcesMgr;
+
+@@ -58,6 +63,29 @@ import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
+ */
+ public final class SunPKCS11 extends AuthProvider {
+
++ private static final boolean systemFipsEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
++
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
++ private static final MethodHandle fipsImportKey;
++ static {
++ MethodHandle fipsImportKeyTmp = null;
++ if (plainKeySupportEnabled) {
++ try {
++ fipsImportKeyTmp = MethodHandles.lookup().findStatic(
++ FIPSKeyImporter.class, "importKey",
++ MethodType.methodType(Long.class, SunPKCS11.class,
++ long.class, CK_ATTRIBUTE[].class));
++ } catch (Throwable t) {
++ throw new SecurityException("FIPS key importer initialization"
+
++ " failed", t);
++ }
++ }
++ fipsImportKey = fipsImportKeyTmp;
++ }
++
+ private static final long serialVersionUID = -1354835039035306505L;
+
+ static final Debug debug = Debug.getInstance("sunpkcs11");
+@@ -309,10 +337,15 @@ public final class SunPKCS11 extends AuthProvider {
+ // request multithreaded access first
+ initArgs.flags = CKF_OS_LOCKING_OK;
+ PKCS11 tmpPKCS11;
++ MethodHandle fipsKeyImporter = null;
++ if (plainKeySupportEnabled) {
++ fipsKeyImporter = MethodHandles.insertArguments(
++ fipsImportKey, 0, this);
++ }
+ try {
+ tmpPKCS11 = PKCS11.getInstance(
+ library, functionList, initArgs,
+- config.getOmitInitialize());
++ config.getOmitInitialize(), fipsKeyImporter);
+ } catch (PKCS11Exception e) {
+ if (debug != null) {
+ debug.println("Multi-threaded initialization failed: " +
e);
+@@ -328,7 +361,7 @@ public final class SunPKCS11 extends AuthProvider {
+ initArgs.flags = 0;
+ }
+ tmpPKCS11 = PKCS11.getInstance(library,
+- functionList, initArgs, config.getOmitInitialize());
++ functionList, initArgs, config.getOmitInitialize(),
fipsKeyImporter);
+ }
+ p11 = tmpPKCS11;
+
+@@ -368,6 +401,24 @@ public final class SunPKCS11 extends AuthProvider {
+ if (nssModule != null) {
+ nssModule.setProvider(this);
+ }
++ if (systemFipsEnabled) {
++ // The NSS Software Token in FIPS 140-2 mode requires a user
++ // login for most operations. See sftk_fipsCheck. The NSS DB
++ // (/etc/pki/nssdb) PIN is empty.
++ Session session = null;
++ try {
++ session = token.getOpSession();
++ p11.C_Login(session.id(), CKU_USER, new char[] {});
++ } catch (PKCS11Exception p11e) {
++ if (debug != null) {
++ debug.println("Error during token login: " +
++ p11e.getMessage());
++ }
++ throw p11e;
++ } finally {
++ token.releaseSession(session);
++ }
++ }
+ } catch (Exception e) {
+ if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
+ throw new UnsupportedOperationException
+diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+index 2e42d1d9fb0..1b7eed1c656 100644
+--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
++++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+@@ -49,6 +49,7 @@ package sun.security.pkcs11.wrapper;
+
+ import java.io.File;
+ import java.io.IOException;
++import java.lang.invoke.MethodHandle;
+ import java.util.*;
+
+ import java.security.AccessController;
+@@ -145,18 +146,41 @@ public class PKCS11 {
+ this.pkcs11ModulePath = pkcs11ModulePath;
+ }
+
++ /*
++ * Compatibility wrapper to allow this method to work as before
++ * when FIPS mode support is not active.
++ */
++ public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
++ String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
++ boolean omitInitialize) throws IOException, PKCS11Exception {
++ return getInstance(pkcs11ModulePath, functionList,
++ pInitArgs, omitInitialize, null);
++ }
++
+ public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
+ String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
+- boolean omitInitialize) throws IOException, PKCS11Exception {
++ boolean omitInitialize, MethodHandle fipsKeyImporter)
++ throws IOException, PKCS11Exception {
+ // we may only call C_Initialize once per native .so/.dll
+ // so keep a cache using the (non-canonicalized!) path
+ PKCS11 pkcs11 = moduleMap.get(pkcs11ModulePath);
+ if (pkcs11 == null) {
++ boolean nssFipsMode = fipsKeyImporter != null;
+ if ((pInitArgs != null)
+ && ((pInitArgs.flags & CKF_OS_LOCKING_OK) != 0)) {
+- pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new FIPSPKCS11(pkcs11ModulePath, functionList,
++ fipsKeyImporter);
++ } else {
++ pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ }
+ } else {
+- pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new SynchronizedFIPSPKCS11(pkcs11ModulePath,
++ functionList, fipsKeyImporter);
++ } else {
++ pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ }
+ }
+ if (omitInitialize == false) {
+ try {
+@@ -1905,4 +1929,69 @@ static class SynchronizedPKCS11 extends PKCS11 {
+ super.C_GenerateRandom(hSession, randomData);
+ }
+ }
++
++// PKCS11 subclass that allows using plain private or secret keys in
++// FIPS-configured NSS Software Tokens. Only used when System FIPS
++// is enabled.
++static class FIPSPKCS11 extends PKCS11 {
++ private MethodHandle fipsKeyImporter;
++ FIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // Creating sensitive key objects from plain key material in a
++ // FIPS-configured NSS Software Token is not allowed. We apply
++ // a key-unwrapping scheme to achieve so.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
++}
++
++// FIPSPKCS11 synchronized counterpart.
++static class SynchronizedFIPSPKCS11 extends SynchronizedPKCS11 {
++ private MethodHandle fipsKeyImporter;
++ SynchronizedFIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // See FIPSPKCS11::C_CreateObject.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
++}
++
++private static class FIPSPKCS11Helper {
++ static boolean isSensitiveObject(CK_ATTRIBUTE[] pTemplate) {
++ for (CK_ATTRIBUTE attr : pTemplate) {
++ if (attr.type == CKA_CLASS &&
++ (attr.getLong() == CKO_PRIVATE_KEY ||
++ attr.getLong() == CKO_SECRET_KEY)) {
++ return true;
++ }
++ }
++ return false;
++ }
++}
+ }
+diff --git a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+index ffee2c1603b..98119479823 100644
+--- a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
++++ b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+@@ -33,8 +33,13 @@ import java.security.KeyStore.*;
+
+ import javax.net.ssl.*;
+
++import sun.misc.SharedSecrets;
++
+ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
+
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
+ X509ExtendedKeyManager keyManager;
+ boolean isInitialized;
+
+@@ -62,7 +67,8 @@ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
+ KeyStoreException, NoSuchAlgorithmException,
+ UnrecoverableKeyException {
+ if ((ks != null) && SunJSSE.isFIPS()) {
+- if (ks.getProvider() != SunJSSE.cryptoProvider) {
++ if (ks.getProvider() != SunJSSE.cryptoProvider &&
++ !plainKeySupportEnabled) {
+ throw new KeyStoreException("FIPS mode: KeyStore must be
"
+ + "from provider " +
SunJSSE.cryptoProvider.getName());
+ }
+@@ -91,8 +97,8 @@ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
+ keyManager = new X509KeyManagerImpl(
+ Collections.<Builder>emptyList());
+ } else {
+- if (SunJSSE.isFIPS() &&
+- (ks.getProvider() != SunJSSE.cryptoProvider)) {
++ if (SunJSSE.isFIPS() && (ks.getProvider() !=
SunJSSE.cryptoProvider)
++ && !plainKeySupportEnabled) {
+ throw new KeyStoreException(
+ "FIPS mode: KeyStore must be " +
+ "from provider " + SunJSSE.cryptoProvider.getName());
+diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+index cd0e9e98df9..fba760187c0 100644
+--- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
++++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+@@ -31,6 +31,7 @@ import java.security.*;
+ import java.security.cert.*;
+ import java.util.*;
+ import javax.net.ssl.*;
++import sun.misc.SharedSecrets;
+ import sun.security.action.GetPropertyAction;
+ import sun.security.provider.certpath.AlgorithmChecker;
+ import sun.security.validator.Validator;
+@@ -539,20 +540,38 @@ public abstract class SSLContextImpl extends SSLContextSpi {
+
+ static {
+ if (SunJSSE.isFIPS()) {
+- supportedProtocols = Arrays.asList(
+- ProtocolVersion.TLS13,
+- ProtocolVersion.TLS12,
+- ProtocolVersion.TLS11,
+- ProtocolVersion.TLS10
+- );
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ supportedProtocols = Arrays.asList(
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ );
+
+- serverDefaultProtocols = getAvailableProtocols(
+- new ProtocolVersion[] {
+- ProtocolVersion.TLS13,
+- ProtocolVersion.TLS12,
+- ProtocolVersion.TLS11,
+- ProtocolVersion.TLS10
+- });
++ serverDefaultProtocols = getAvailableProtocols(
++ new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ });
++ } else {
++ supportedProtocols = Arrays.asList(
++ ProtocolVersion.TLS13,
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ );
++
++ serverDefaultProtocols = getAvailableProtocols(
++ new ProtocolVersion[] {
++ ProtocolVersion.TLS13,
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ });
++ }
+ } else {
+ supportedProtocols = Arrays.asList(
+ ProtocolVersion.TLS13,
+@@ -612,6 +631,16 @@ public abstract class SSLContextImpl extends SSLContextSpi {
+
+ static ProtocolVersion[] getSupportedProtocols() {
+ if (SunJSSE.isFIPS()) {
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ return new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ };
++ }
+ return new ProtocolVersion[] {
+ ProtocolVersion.TLS13,
+ ProtocolVersion.TLS12,
+@@ -939,6 +968,16 @@ public abstract class SSLContextImpl extends SSLContextSpi {
+
+ static ProtocolVersion[] getProtocols() {
+ if (SunJSSE.isFIPS()) {
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ return new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ };
++ }
+ return new ProtocolVersion[]{
+ ProtocolVersion.TLS12,
+ ProtocolVersion.TLS11,
+diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+index 2845dc37938..52337a7b6cf 100644
+--- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
++++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+@@ -30,6 +30,8 @@ import static sun.security.util.SecurityConstants.PROVIDER_VER;
+
+ import java.security.*;
+
++import sun.misc.SharedSecrets;
++
+ /**
+ * The JSSE provider.
+ *
+@@ -215,8 +217,13 @@ public abstract class SunJSSE extends java.security.Provider {
+ "sun.security.ssl.SSLContextImpl$TLS11Context");
+ put("SSLContext.TLSv1.2",
+ "sun.security.ssl.SSLContextImpl$TLS12Context");
+- put("SSLContext.TLSv1.3",
+- "sun.security.ssl.SSLContextImpl$TLS13Context");
++ if (!SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ put("SSLContext.TLSv1.3",
++ "sun.security.ssl.SSLContextImpl$TLS13Context");
++ }
+ put("SSLContext.TLS",
+ "sun.security.ssl.SSLContextImpl$TLSContext");
+ if (isfips == false) {
+diff --git a/jdk/src/share/lib/security/java.security-aix
b/jdk/src/share/lib/security/java.security-aix
+index d3d64b3facd..bfe0c593adb 100644
+--- a/jdk/src/share/lib/security/java.security-aix
++++ b/jdk/src/share/lib/security/java.security-aix
+@@ -287,6 +287,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/share/lib/security/java.security-linux
b/jdk/src/share/lib/security/java.security-linux
+index db610d4bfbb..9d1c8fe8a8e 100644
+--- a/jdk/src/share/lib/security/java.security-linux
++++ b/jdk/src/share/lib/security/java.security-linux
+@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider
+ security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
+ security.provider.9=sun.security.smartcardio.SunPCSC
+
++#
++# Security providers used when FIPS mode support is active
++#
++fips.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.fips.cfg
++fips.provider.2=sun.security.provider.Sun
++fips.provider.3=sun.security.ec.SunEC
++fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS
++
+ #
+ # Sun Provider SecureRandom seed source.
+ #
+@@ -170,6 +178,11 @@ policy.ignoreIdentityScope=false
+ #
+ keystore.type=jks
+
++#
++# Default keystore type used when global crypto-policies are set to FIPS.
++#
++fips.keystore.type=PKCS11
++
+ #
+ # Controls compatibility mode for the JKS keystore type.
+ #
+@@ -287,6 +300,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/share/lib/security/java.security-macosx
b/jdk/src/share/lib/security/java.security-macosx
+index a919ba3d5cd..19047c61097 100644
+--- a/jdk/src/share/lib/security/java.security-macosx
++++ b/jdk/src/share/lib/security/java.security-macosx
+@@ -290,6 +290,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/share/lib/security/java.security-solaris
b/jdk/src/share/lib/security/java.security-solaris
+index 86265ba5fb6..7eda556ae13 100644
+--- a/jdk/src/share/lib/security/java.security-solaris
++++ b/jdk/src/share/lib/security/java.security-solaris
+@@ -288,6 +288,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/share/lib/security/java.security-windows
b/jdk/src/share/lib/security/java.security-windows
+index 9b4bda23cbe..dfa1a669aa9 100644
+--- a/jdk/src/share/lib/security/java.security-windows
++++ b/jdk/src/share/lib/security/java.security-windows
+@@ -290,6 +290,13 @@ package.definition=sun.,\
+ #
+ security.overridePropertiesFile=true
+
++#
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
+ #
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+diff --git a/jdk/src/solaris/native/java/security/systemconf.c
b/jdk/src/solaris/native/java/security/systemconf.c
+new file mode 100644
+index 00000000000..8dcb7d9073f
+--- /dev/null
++++ b/jdk/src/solaris/native/java/security/systemconf.c
+@@ -0,0 +1,224 @@
++/*
++ * Copyright (c) 2021, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++#include <jni.h>
++#include <jni_util.h>
++#include "jvm_md.h"
++#include <stdio.h>
++
++#ifdef SYSCONF_NSS
++#include <nss3/pk11pub.h>
++#else
++#include <dlfcn.h>
++#endif //SYSCONF_NSS
++
++#include "java_security_SystemConfigurator.h"
++
++#define MSG_MAX_SIZE 256
++#define FIPS_ENABLED_PATH "/proc/sys/crypto/fips_enabled"
++
++typedef int (SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE)(void);
++
++static SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE *getSystemFIPSEnabled;
++static jmethodID debugPrintlnMethodID = NULL;
++static jobject debugObj = NULL;
++
++static void dbgPrint(JNIEnv *env, const char* msg)
++{
++ jstring jMsg;
++ if (debugObj != NULL) {
++ jMsg = (*env)->NewStringUTF(env, msg);
++ CHECK_NULL(jMsg);
++ (*env)->CallVoidMethod(env, debugObj, debugPrintlnMethodID, jMsg);
++ }
++}
++
++static void throwIOException(JNIEnv *env, const char *msg)
++{
++ jclass cls = (*env)->FindClass(env, "java/io/IOException");
++ if (cls != 0)
++ (*env)->ThrowNew(env, cls, msg);
++}
++
++static void handle_msg(JNIEnv *env, const char* msg, int msg_bytes)
++{
++ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
++ dbgPrint(env, msg);
++ } else {
++ dbgPrint(env, "systemconf: cannot render message");
++ }
++}
++
++// Only used when NSS is not linked at build time
++#ifndef SYSCONF_NSS
++
++static void *nss_handle;
++
++static jboolean loadNSS(JNIEnv *env)
++{
++ char msg[MSG_MAX_SIZE];
++ int msg_bytes;
++ const char* errmsg;
++
++ nss_handle = dlopen(JNI_LIB_NAME("nss3"), RTLD_LAZY);
++ if (nss_handle == NULL) {
++ errmsg = dlerror();
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "loadNSS: dlopen: %s\n",
++ errmsg);
++ handle_msg(env, msg, msg_bytes);
++ return JNI_FALSE;
++ }
++ dlerror(); /* Clear errors */
++ getSystemFIPSEnabled = (SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE*)dlsym(nss_handle,
"SECMOD_GetSystemFIPSEnabled");
++ if ((errmsg = dlerror()) != NULL) {
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "loadNSS: dlsym: %s\n",
++ errmsg);
++ handle_msg(env, msg, msg_bytes);
++ return JNI_FALSE;
++ }
++ return JNI_TRUE;
++}
++
++static void closeNSS(JNIEnv *env)
++{
++ char msg[MSG_MAX_SIZE];
++ int msg_bytes;
++ const char* errmsg;
++
++ if (dlclose(nss_handle) != 0) {
++ errmsg = dlerror();
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "closeNSS: dlclose: %s\n",
++ errmsg);
++ handle_msg(env, msg, msg_bytes);
++ }
++}
++
++#endif
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnLoad
++ */
++JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++ jclass sysConfCls, debugCls;
++ jfieldID sdebugFld;
++
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return JNI_EVERSION; /* JNI version not supported */
++ }
++
++ sysConfCls =
(*env)->FindClass(env,"java/security/SystemConfigurator");
++ if (sysConfCls == NULL) {
++ printf("libsystemconf: SystemConfigurator class not found\n");
++ return JNI_ERR;
++ }
++ sdebugFld = (*env)->GetStaticFieldID(env, sysConfCls,
++ "sdebug", "Lsun/security/util/Debug;");
++ if (sdebugFld == NULL) {
++ printf("libsystemconf: SystemConfigurator::sdebug field not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->GetStaticObjectField(env, sysConfCls, sdebugFld);
++ if (debugObj != NULL) {
++ debugCls = (*env)->FindClass(env,"sun/security/util/Debug");
++ if (debugCls == NULL) {
++ printf("libsystemconf: Debug class not found\n");
++ return JNI_ERR;
++ }
++ debugPrintlnMethodID = (*env)->GetMethodID(env, debugCls,
++ "println", "(Ljava/lang/String;)V");
++ if (debugPrintlnMethodID == NULL) {
++ printf("libsystemconf: Debug::println(String) method not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->NewGlobalRef(env, debugObj);
++ }
++
++#ifdef SYSCONF_NSS
++ getSystemFIPSEnabled = *SECMOD_GetSystemFIPSEnabled;
++#else
++ if (loadNSS(env) == JNI_FALSE) {
++ dbgPrint(env, "libsystemconf: Failed to load NSS library.");
++ }
++#endif
++
++ return (*env)->GetVersion(env);
++}
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnUnload
++ */
++JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++
++ if (debugObj != NULL) {
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return; /* Should not happen */
++ }
++#ifndef SYSCONF_NSS
++ closeNSS(env);
++#endif
++ (*env)->DeleteGlobalRef(env, debugObj);
++ }
++}
++
++JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEnabled
++ (JNIEnv *env, jclass cls)
++{
++ int fips_enabled;
++ char msg[MSG_MAX_SIZE];
++ int msg_bytes;
++
++ if (getSystemFIPSEnabled != NULL) {
++ dbgPrint(env, "getSystemFIPSEnabled: calling
SECMOD_GetSystemFIPSEnabled");
++ fips_enabled = (*getSystemFIPSEnabled)();
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " SECMOD_GetSystemFIPSEnabled returned 0x%x",
fips_enabled);
++ handle_msg(env, msg, msg_bytes);
++ return (fips_enabled == 1 ? JNI_TRUE : JNI_FALSE);
++ } else {
++ FILE *fe;
++
++ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
++ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
++ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
++ }
++ fips_enabled = fgetc(fe);
++ fclose(fe);
++ if (fips_enabled == EOF) {
++ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
++ }
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " read character is '%c'", fips_enabled);
++ handle_msg(env, msg, msg_bytes);
++ return (fips_enabled == '1' ? JNI_TRUE : JNI_FALSE);
++ }
++}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ceb4498..dac508d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -304,6 +304,8 @@
# Define IcedTea version used for SystemTap tapsets and desktop file
%global icedteaver 3.15.0
+# Define current Git revision for the FIPS support patches
+%global fipsver 8e8bbf0ff74
# Standard JPackage naming and versioning defines
%global origin openjdk
@@ -331,9 +333,10 @@
%endif
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
-%global shenandoah_project openjdk
-%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision shenandoah-jdk8u332-b09
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global openjdk_revision jdk8u332-b09
+%global shenandoah_revision shenandoah-%{openjdk_revision}
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -348,7 +351,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 7
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -447,6 +450,9 @@
%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
%endif
+# x86 is no longer supported
+ExcludeArch: %{ix86}
+
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
@@ -1278,10 +1284,10 @@ OrderWithRequires: copy-jdk-configs
%endif
# for printing support
Requires: cups-libs
-# for system security properties
-Requires: crypto-policies
# for FIPS PKCS11 provider
Requires: nss
+# for system security properties
+Requires: crypto-policies
# Post requires alternatives to install tool alternatives
Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
@@ -1464,29 +1470,29 @@ Source101: config.sub
Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies
except LEGACY
Patch1003: rh1582504-rsa_default_for_keytool.patch
-
-# FIPS support patches
# RH1648249: Add PKCS11 provider to java.security
Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+
+# Crypto policy and FIPS support patches
+# Patch is generated from the fips tree at
https://github.com/rh-openjdk/jdk11u/tree/fips
+# as follows: git diff %%{openjdk_revision} common jdk > fips-8u-$(git show -s
--format=%h HEAD).patch
+# Diff is limited to src and make subdirectories to exclude .github changes
+# Fixes currently included:
+# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
+# PR3655: Allow use of system crypto policy to be disabled by the user
# RH1655466: Support RHEL FIPS mode using SunPKCS11 provider
-Patch1001: rh1655466-global_crypto_and_fips.patch
# RH1760838: No ciphersuites available for SSLSocket in FIPS mode
-Patch1002: rh1760838-fips_default_keystore_type.patch
# RH1860986: Disable TLSv1.3 with the NSS-FIPS provider until PKCS#11 v3.0 support is
available
-Patch1004: rh1860986-disable_tlsv1.3_in_fips_mode.patch
# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
-Patch1005: rh1906862-always_initialise_configurator_access.patch
# RH1929465: Improve system FIPS detection
-Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
-Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
# RH1996182: Login to the NSS software token in FIPS mode
-Patch1008: rh1996182-login_to_nss_software_token.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
-Patch1011: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
-Patch1014: rh2021263-fips_ensure_security_initialised.patch
-Patch1015: rh2021263-fips_missing_native_returns.patch
-Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
+# RH2052819: Fix FIPS reliance on crypto policies
+# RH2051605: Detect NSS at Runtime for FIPS detection
+# RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
+# RH2090378: Revert to disabling system security properties and FIPS mode support
together
+Patch1001: fips-8u-%{fipsver}.patch
#############################################
#
@@ -1509,10 +1515,6 @@ Patch528:
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_t
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
-# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
-Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
-# PR3655: Allow use of system crypto policy to be disabled by the user
-Patch401: pr3655-toggle_system_crypto_policy.patch
# enable build of speculative store bypass hardened alt-java
Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
@@ -1638,7 +1640,7 @@ BuildRequires: libXrender-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
# Requirement for setting up nss.cfg and nss.fips.cfg
-BuildRequires: nss-devel >= 3.53
+BuildRequires: nss-devel
# Requirement for system security property test
BuildRequires: crypto-policies
BuildRequires: pkgconfig
@@ -1977,10 +1979,6 @@ sh %{SOURCE12}
%patch203
%patch204
-# System security policy fixes
-%patch400
-%patch401
-
%patch5
# s390 build fixes
@@ -2007,22 +2005,17 @@ sh %{SOURCE12}
%patch581
%patch582
+pushd %{top_level_dir_name}
+# Add crypto policy and FIPS support
+%patch1001 -p1
+# nss.cfg PKCS11 support; must come last as it also alters java.security
+%patch1000 -p1
+popd
+
# RPM-only fixes
%patch539
%patch600
-%patch1000
-%patch1001
-%patch1002
%patch1003
-%patch1004
-%patch1005
-%patch1006
-%patch1007
-%patch1008
-%patch1011
-%patch1014
-%patch1015
-%patch1016
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2153,7 +2146,7 @@ function buildjdk() {
--with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
- --enable-sysconf-nss \
+ --disable-sysconf-nss \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
@@ -2217,6 +2210,26 @@ function installjdk() {
#
https://bugs.openjdk.java.net/browse/JDK-8173610
find ${imagepath} -iname '*.so' -exec chmod +x {} \;
find ${imagepath}/bin/ -exec chmod +x {} \;
+
+ # Install nss.cfg right away as we will be using the JRE above
+ install -m 644 nss.cfg ${imagepath}/jre/lib/security/
+
+ # Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
+ install -m 644 nss.fips.cfg ${imagepath}/jre/lib/security/
+
+ # Turn on system security properties
+ sed -i -e
"s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:"
\
+ ${imagepath}/jre/lib/security/java.security
+
+ # Use system-wide tzdata
+ rm ${imagepath}/jre/lib/tzdb.dat
+ ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/jre/lib/tzdb.dat
+
+ # add alt-java man page
+ pushd ${imagepath}
+ echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
+ cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
+ popd
fi
}
@@ -2265,25 +2278,6 @@ else
installjdk ${builddir} ${installdir}
fi
-# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
-
-# Install nss.cfg right away as we will be using the JRE above
-install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
-
-# Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
-install -m 644 nss.fips.cfg $JAVA_HOME/jre/lib/security/
-
-# Use system-wide tzdata
-rm $JAVA_HOME/jre/lib/tzdb.dat
-ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
-
-# add alt-java man page
-pushd ${JAVA_HOME}
-echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
-cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
-popd
-
# build cycles
done
@@ -2304,9 +2298,14 @@ $JAVA_HOME/bin/java TestCryptoLevel
$JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
-# Check system crypto (policy) can be disabled
+# Check system crypto (policy) is active and can be disabled
+# Test takes a single argument - true or false - to state whether system
+# security properties are enabled or not.
$JAVA_HOME/bin/javac -d . %{SOURCE15}
-$JAVA_HOME/bin/java -Djava.security.disableSystemPropertiesFile=true $(echo $(basename
%{SOURCE15})|sed "s|\.java||")
+export PROG=$(echo $(basename %{SOURCE15})|sed "s|\.java||")
+export SEC_DEBUG="-Djava.security.debug=properties"
+$JAVA_HOME/bin/java ${SEC_DEBUG} ${PROG} true
+$JAVA_HOME/bin/java ${SEC_DEBUG} -Djava.security.disableSystemPropertiesFile=true ${PROG}
false
# Check java launcher has no SSB mitigation
if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
@@ -2839,6 +2838,19 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Jul 17 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-7
+- Rebase FIPS patches from fips branch and simplify by using a single patch from that
repository
+- * RH2051605: Detect NSS at Runtime for FIPS detection
+- * RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
+- * RH2090378: Revert to disabling system security properties and FIPS mode support
together
+- Turn off build-time NSS linking and go back to an explicit Requires on NSS
+- Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch
+- Perform configuration changes (e.g. nss.cfg, nss.fips.cfg, tzdb.dat) in installjdk
+- Enable system security properties in the RPM (now disabled by default in the FIPS
repo)
+- Improve security properties test to check both enabled and disabled behaviour
+- Run security properties test with property debugging on
+- Exclude x86 from builds as the bootstrap JDK is now completely broken and unusable
+
* Thu Jul 14 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-6
- Explicitly require crypto-policies during build and runtime for system security
properties
diff --git a/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
b/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
deleted file mode 100644
index 5a619b4..0000000
--- a/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-
-# HG changeset patch
-# User andrew
-# Date 1478057514 0
-# Node ID 1c4d5cb2096ae55106111da200b0bcad304f650c
-# Parent 3d53f19b48384e5252f4ec8891f7a3a82d77af2a
-PR3183: Support Fedora/RHEL system crypto policy
-
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/classes/java/security/Security.java
---- openjdk/jdk/src/share/classes/java/security/Security.java Wed Oct 26 03:51:39 2016
+0100
-+++ openjdk/jdk/src/share/classes/java/security/Security.java Wed Nov 02 03:31:54 2016
+0000
-@@ -43,6 +43,9 @@
- * implementation-specific location, which is typically the properties file
- * {@code lib/security/java.security} in the Java installation directory.
- *
-+ * <p>Additional default values of security properties are read from a
-+ * system-specific location, if available.</p>
-+ *
- * @author Benjamin Renaud
- */
-
-@@ -52,6 +55,10 @@
- private static final Debug sdebug =
- Debug.getInstance("properties");
-
-+ /* System property file*/
-+ private static final String SYSTEM_PROPERTIES =
-+ "/etc/crypto-policies/back-ends/java.config";
-+
- /* The java.security properties */
- private static Properties props;
-
-@@ -93,6 +100,7 @@
- if (sdebug != null) {
- sdebug.println("reading security properties file: " +
- propFile);
-+ sdebug.println(props.toString());
- }
- } catch (IOException e) {
- if (sdebug != null) {
-@@ -114,6 +122,31 @@
- }
-
- if ("true".equalsIgnoreCase(props.getProperty
-+ ("security.useSystemPropertiesFile"))) {
-+
-+ // now load the system file, if it exists, so its values
-+ // will win if they conflict with the earlier values
-+ try (BufferedInputStream bis =
-+ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
-+ props.load(bis);
-+ loadedProps = true;
-+
-+ if (sdebug != null) {
-+ sdebug.println("reading system security properties file "
+
-+ SYSTEM_PROPERTIES);
-+ sdebug.println(props.toString());
-+ }
-+ } catch (IOException e) {
-+ if (sdebug != null) {
-+ sdebug.println
-+ ("unable to load security properties from " +
-+ SYSTEM_PROPERTIES);
-+ e.printStackTrace();
-+ }
-+ }
-+ }
-+
-+ if ("true".equalsIgnoreCase(props.getProperty
- ("security.overridePropertiesFile"))) {
-
- String extraPropFile = System.getProperty
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-aix
---- openjdk/jdk/src/share/lib/security/java.security-aix Wed Oct 26 03:51:39 2016 +0100
-+++ openjdk/jdk/src/share/lib/security/java.security-aix Wed Nov 02 03:31:54 2016 +0000
-@@ -276,6 +276,13 @@
- security.overridePropertiesFile=true
-
- #
-+# Determines whether this properties file will be appended to
-+# using the system properties file stored at
-+# /etc/crypto-policies/back-ends/java.config
-+#
-+security.useSystemPropertiesFile=false
-+
-+#
- # Determines the default key and trust manager factory algorithms for
- # the javax.net.ssl package.
- #
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-linux
---- openjdk/jdk/src/share/lib/security/java.security-linux Wed Oct 26 03:51:39 2016
+0100
-+++ openjdk/jdk/src/share/lib/security/java.security-linux Wed Nov 02 03:31:54 2016
+0000
-@@ -276,6 +276,13 @@
- security.overridePropertiesFile=true
-
- #
-+# Determines whether this properties file will be appended to
-+# using the system properties file stored at
-+# /etc/crypto-policies/back-ends/java.config
-+#
-+security.useSystemPropertiesFile=true
-+
-+#
- # Determines the default key and trust manager factory algorithms for
- # the javax.net.ssl package.
- #
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-macosx
---- openjdk/jdk/src/share/lib/security/java.security-macosx Wed Oct 26 03:51:39 2016
+0100
-+++ openjdk/jdk/src/share/lib/security/java.security-macosx Wed Nov 02 03:31:54 2016
+0000
-@@ -279,6 +279,13 @@
- security.overridePropertiesFile=true
-
- #
-+# Determines whether this properties file will be appended to
-+# using the system properties file stored at
-+# /etc/crypto-policies/back-ends/java.config
-+#
-+security.useSystemPropertiesFile=false
-+
-+#
- # Determines the default key and trust manager factory algorithms for
- # the javax.net.ssl package.
- #
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-solaris
---- openjdk/jdk/src/share/lib/security/java.security-solaris Wed Oct 26 03:51:39 2016
+0100
-+++ openjdk/jdk/src/share/lib/security/java.security-solaris Wed Nov 02 03:31:54 2016
+0000
-@@ -278,6 +278,13 @@
- security.overridePropertiesFile=true
-
- #
-+# Determines whether this properties file will be appended to
-+# using the system properties file stored at
-+# /etc/crypto-policies/back-ends/java.config
-+#
-+security.useSystemPropertiesFile=false
-+
-+#
- # Determines the default key and trust manager factory algorithms for
- # the javax.net.ssl package.
- #
-diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-windows
---- openjdk/jdk/src/share/lib/security/java.security-windows Wed Oct 26 03:51:39 2016
+0100
-+++ openjdk/jdk/src/share/lib/security/java.security-windows Wed Nov 02 03:31:54 2016
+0000
-@@ -279,6 +279,13 @@
- security.overridePropertiesFile=true
-
- #
-+# Determines whether this properties file will be appended to
-+# using the system properties file stored at
-+# /etc/crypto-policies/back-ends/java.config
-+#
-+security.useSystemPropertiesFile=false
-+
-+#
- # Determines the default key and trust manager factory algorithms for
- # the javax.net.ssl package.
- #
-
diff --git a/pr3655-toggle_system_crypto_policy.patch
b/pr3655-toggle_system_crypto_policy.patch
deleted file mode 100644
index abfac45..0000000
--- a/pr3655-toggle_system_crypto_policy.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1545198926 0
-# Wed Dec 19 05:55:26 2018 +0000
-# Node ID f2cbd688824c128db7fa848c8732fb0ab3507776
-# Parent 81f07f6d1f8b7b51b136d3974c61bc8bb513770c
-PR3655: Allow use of system crypto policy to be disabled by the user
-Summary: Read user overrides first so security.useSystemPropertiesFile can be disabled
and add -Djava.security.disableSystemPropertiesFile
-
-diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
---- openjdk.orig/jdk/src/share/classes/java/security/Security.java
-+++ openjdk/jdk/src/share/classes/java/security/Security.java
-@@ -122,31 +122,6 @@
- }
-
- if ("true".equalsIgnoreCase(props.getProperty
-- ("security.useSystemPropertiesFile"))) {
--
-- // now load the system file, if it exists, so its values
-- // will win if they conflict with the earlier values
-- try (BufferedInputStream bis =
-- new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
-- props.load(bis);
-- loadedProps = true;
--
-- if (sdebug != null) {
-- sdebug.println("reading system security properties file "
+
-- SYSTEM_PROPERTIES);
-- sdebug.println(props.toString());
-- }
-- } catch (IOException e) {
-- if (sdebug != null) {
-- sdebug.println
-- ("unable to load security properties from " +
-- SYSTEM_PROPERTIES);
-- e.printStackTrace();
-- }
-- }
-- }
--
-- if ("true".equalsIgnoreCase(props.getProperty
- ("security.overridePropertiesFile"))) {
-
- String extraPropFile = System.getProperty
-@@ -212,6 +187,33 @@
- }
- }
-
-+ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
-+ if (disableSystemProps == null &&
-+ "true".equalsIgnoreCase(props.getProperty
-+ ("security.useSystemPropertiesFile"))) {
-+
-+ // now load the system file, if it exists, so its values
-+ // will win if they conflict with the earlier values
-+ try (BufferedInputStream bis =
-+ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
-+ props.load(bis);
-+ loadedProps = true;
-+
-+ if (sdebug != null) {
-+ sdebug.println("reading system security properties file "
+
-+ SYSTEM_PROPERTIES);
-+ sdebug.println(props.toString());
-+ }
-+ } catch (IOException e) {
-+ if (sdebug != null) {
-+ sdebug.println
-+ ("unable to load security properties from " +
-+ SYSTEM_PROPERTIES);
-+ e.printStackTrace();
-+ }
-+ }
-+ }
-+
- if (!loadedProps) {
- initializeStatic();
- if (sdebug != null) {
diff --git a/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
index febd87e..eb8f255 100644
--- a/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+++ b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
@@ -1,11 +1,12 @@
-diff -r 5b86f66575b7 src/share/lib/security/java.security-linux
---- openjdk/jdk/src/share/lib/security/java.security-linux Tue May 16 13:29:05 2017
-0700
-+++ openjdk/jdk/src/share/lib/security/java.security-linux Tue Jun 06 14:05:12 2017
+0200
-@@ -74,6 +74,7 @@
+diff --git a/jdk/src/share/lib/security/java.security-linux
b/jdk/src/share/lib/security/java.security-linux
+index 9d1c8fe8a8e..a80a3c12abb 100644
+--- a/jdk/src/share/lib/security/java.security-linux
++++ b/jdk/src/share/lib/security/java.security-linux
+@@ -74,6 +74,7 @@ security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
+#security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
#
- # Sun Provider SecureRandom seed source.
+ # Security providers used when FIPS mode support is active
diff --git a/rh1655466-global_crypto_and_fips.patch
b/rh1655466-global_crypto_and_fips.patch
deleted file mode 100644
index 58d77b3..0000000
--- a/rh1655466-global_crypto_and_fips.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
---- openjdk.orig/jdk/src/share/classes/java/security/Security.java
-+++ openjdk/jdk/src/share/classes/java/security/Security.java
-@@ -191,27 +191,7 @@
- if (disableSystemProps == null &&
- "true".equalsIgnoreCase(props.getProperty
- ("security.useSystemPropertiesFile"))) {
--
-- // now load the system file, if it exists, so its values
-- // will win if they conflict with the earlier values
-- try (BufferedInputStream bis =
-- new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
-- props.load(bis);
-- loadedProps = true;
--
-- if (sdebug != null) {
-- sdebug.println("reading system security properties file "
+
-- SYSTEM_PROPERTIES);
-- sdebug.println(props.toString());
-- }
-- } catch (IOException e) {
-- if (sdebug != null) {
-- sdebug.println
-- ("unable to load security properties from " +
-- SYSTEM_PROPERTIES);
-- e.printStackTrace();
-- }
-- }
-+ loadedProps = loadedProps && SystemConfigurator.configure(props);
- }
-
- if (!loadedProps) {
-diff --git a/src/share/classes/javopenjdk.orig/jdk/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-@@ -0,0 +1,153 @@
-+/*
-+ * Copyright (c) 2019, 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.
-+ */
-+
-+package java.security;
-+
-+import java.io.BufferedInputStream;
-+import java.io.FileInputStream;
-+import java.io.IOException;
-+
-+import java.nio.file.Files;
-+import java.nio.file.FileSystems;
-+import java.nio.file.Path;
-+
-+import java.util.Iterator;
-+import java.util.Map.Entry;
-+import java.util.Properties;
-+import java.util.function.Consumer;
-+import java.util.regex.Matcher;
-+import java.util.regex.Pattern;
-+
-+import sun.security.util.Debug;
-+
-+/**
-+ * Internal class to align OpenJDK with global crypto-policies.
-+ * Called from java.security.Security class initialization,
-+ * during startup.
-+ *
-+ */
-+
-+class SystemConfigurator {
-+
-+ private static final Debug sdebug =
-+ Debug.getInstance("properties");
-+
-+ private static final String CRYPTO_POLICIES_BASE_DIR =
-+ "/etc/crypto-policies";
-+
-+ private static final String CRYPTO_POLICIES_JAVA_CONFIG =
-+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
-+
-+ private static final String CRYPTO_POLICIES_CONFIG =
-+ CRYPTO_POLICIES_BASE_DIR + "/config";
-+
-+ private static final class SecurityProviderInfo {
-+ int number;
-+ String key;
-+ String value;
-+ SecurityProviderInfo(int number, String key, String value) {
-+ this.number = number;
-+ this.key = key;
-+ this.value = value;
-+ }
-+ }
-+
-+ /*
-+ * Invoked when java.security.Security class is initialized, if
-+ * java.security.disableSystemPropertiesFile property is not set and
-+ * security.useSystemPropertiesFile is true.
-+ */
-+ static boolean configure(Properties props) {
-+ boolean loadedProps = false;
-+
-+ try (BufferedInputStream bis =
-+ new BufferedInputStream(
-+ new FileInputStream(CRYPTO_POLICIES_JAVA_CONFIG))) {
-+ props.load(bis);
-+ loadedProps = true;
-+ if (sdebug != null) {
-+ sdebug.println("reading system security properties file " +
-+ CRYPTO_POLICIES_JAVA_CONFIG);
-+ sdebug.println(props.toString());
-+ }
-+ } catch (IOException e) {
-+ if (sdebug != null) {
-+ sdebug.println("unable to load security properties from " +
-+ CRYPTO_POLICIES_JAVA_CONFIG);
-+ e.printStackTrace();
-+ }
-+ }
-+
-+ try {
-+ if (enableFips()) {
-+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
-+ loadedProps = false;
-+ // Remove all security providers
-+ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
-+ while (i.hasNext()) {
-+ Entry<Object, Object> e = i.next();
-+ if (((String) e.getKey()).startsWith("security.provider"))
{
-+ if (sdebug != null) { sdebug.println("Removing provider:
" + e); }
-+ i.remove();
-+ }
-+ }
-+ // Add FIPS security providers
-+ String fipsProviderValue = null;
-+ for (int n = 1;
-+ (fipsProviderValue = (String) props.get("fips.provider."
+ n)) != null; n++) {
-+ String fipsProviderKey = "security.provider." + n;
-+ if (sdebug != null) {
-+ sdebug.println("Adding provider " + n + ": "
+
-+ fipsProviderKey + "=" + fipsProviderValue);
-+ }
-+ props.put(fipsProviderKey, fipsProviderValue);
-+ }
-+ loadedProps = true;
-+ }
-+ } catch (Exception e) {
-+ if (sdebug != null) {
-+ sdebug.println("unable to load FIPS configuration");
-+ e.printStackTrace();
-+ }
-+ }
-+ return loadedProps;
-+ }
-+
-+ /*
-+ * FIPS is enabled only if crypto-policies are set to "FIPS"
-+ * and the com.redhat.fips property is true.
-+ */
-+ private static boolean enableFips() throws Exception {
-+ boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips",
"true"));
-+ if (fipsEnabled) {
-+ Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
-+ String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
-+ if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
-+ Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
-+ return pattern.matcher(cryptoPoliciesConfig).find();
-+ } else {
-+ return false;
-+ }
-+ }
-+}
-diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux
openjdk/jdk/src/share/lib/security/java.security-linux
---- openjdk.orig/jdk/src/share/lib/security/java.security-linux
-+++ openjdk/jdk/src/share/lib/security/java.security-linux
-@@ -77,6 +77,14 @@
- #security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
-
- #
-+# Security providers used when global crypto-policies are set to FIPS.
-+#
-+fips.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.fips.cfg
-+fips.provider.2=sun.security.provider.Sun
-+fips.provider.3=sun.security.ec.SunEC
-+fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS
-+
-+#
- # Sun Provider SecureRandom seed source.
- #
- # Select the primary source of seed data for the "SHA1PRNG" and
diff --git a/rh1760838-fips_default_keystore_type.patch
b/rh1760838-fips_default_keystore_type.patch
deleted file mode 100644
index bedc8ea..0000000
--- a/rh1760838-fips_default_keystore_type.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff -r 6efbd7b35a10 src/share/classes/java/security/SystemConfigurator.java
---- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java Thu Jan 23
18:22:31 2020 -0300
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Mon Mar 02
19:20:17 2020 -0300
-@@ -123,6 +123,33 @@
- }
- props.put(fipsProviderKey, fipsProviderValue);
- }
-+ // Add other security properties
-+ String keystoreTypeValue = (String)
props.get("fips.keystore.type");
-+ if (keystoreTypeValue != null) {
-+ String nonFipsKeystoreType =
props.getProperty("keystore.type");
-+ props.put("keystore.type", keystoreTypeValue);
-+ if (keystoreTypeValue.equals("PKCS11")) {
-+ // If keystore.type is PKCS11, javax.net.ssl.keyStore
-+ // must be "NONE". See JDK-8238264.
-+ System.setProperty("javax.net.ssl.keyStore",
"NONE");
-+ }
-+ if (System.getProperty("javax.net.ssl.trustStoreType") ==
null) {
-+ // If no trustStoreType has been set, use the
-+ // previous keystore.type under FIPS mode. In
-+ // a default configuration, the Trust Store will
-+ // be 'cacerts' (JKS type).
-+ System.setProperty("javax.net.ssl.trustStoreType",
-+ nonFipsKeystoreType);
-+ }
-+ if (sdebug != null) {
-+ sdebug.println("FIPS mode default keystore.type = " +
-+ keystoreTypeValue);
-+ sdebug.println("FIPS mode javax.net.ssl.keyStore = "
+
-+ System.getProperty("javax.net.ssl.keyStore",
""));
-+ sdebug.println("FIPS mode javax.net.ssl.trustStoreType =
" +
-+
System.getProperty("javax.net.ssl.trustStoreType", ""));
-+ }
-+ }
- loadedProps = true;
- }
- } catch (Exception e) {
-diff -r 6efbd7b35a10 src/share/lib/security/java.security-linux
---- openjdk.orig/jdk/src/share/lib/security/java.security-linux Thu Jan 23 18:22:31 2020
-0300
-+++ openjdk/jdk/src/share/lib/security/java.security-linux Mon Mar 02 19:20:17 2020
-0300
-@@ -179,6 +179,11 @@
- keystore.type=jks
-
- #
-+# Default keystore type used when global crypto-policies are set to FIPS.
-+#
-+fips.keystore.type=PKCS11
-+
-+#
- # Controls compatibility mode for the JKS keystore type.
- #
- # When set to 'true', the JKS keystore type supports loading
diff --git a/rh1860986-disable_tlsv1.3_in_fips_mode.patch
b/rh1860986-disable_tlsv1.3_in_fips_mode.patch
deleted file mode 100644
index 91e3705..0000000
--- a/rh1860986-disable_tlsv1.3_in_fips_mode.patch
+++ /dev/null
@@ -1,327 +0,0 @@
-diff -r bbc65dfa59d1 src/share/classes/java/security/SystemConfigurator.java
---- openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Thu Jan 23
18:22:31 2020 -0300
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Sat Aug 01
23:16:51 2020 -0300
-@@ -1,11 +1,13 @@
- /*
-- * Copyright (c) 2019, Red Hat, Inc.
-+ * Copyright (c) 2019, 2020, 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.
-+ * published by the Free Software Foundation. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-@@ -34,10 +36,10 @@
- import java.util.Iterator;
- import java.util.Map.Entry;
- import java.util.Properties;
--import java.util.function.Consumer;
--import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-
-+import sun.misc.SharedSecrets;
-+import sun.misc.JavaSecuritySystemConfiguratorAccess;
- import sun.security.util.Debug;
-
- /**
-@@ -47,7 +49,7 @@
- *
- */
-
--class SystemConfigurator {
-+final class SystemConfigurator {
-
- private static final Debug sdebug =
- Debug.getInstance("properties");
-@@ -61,15 +63,16 @@
- private static final String CRYPTO_POLICIES_CONFIG =
- CRYPTO_POLICIES_BASE_DIR + "/config";
-
-- private static final class SecurityProviderInfo {
-- int number;
-- String key;
-- String value;
-- SecurityProviderInfo(int number, String key, String value) {
-- this.number = number;
-- this.key = key;
-- this.value = value;
-- }
-+ private static boolean systemFipsEnabled = false;
-+
-+ static {
-+ SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
-+ new JavaSecuritySystemConfiguratorAccess() {
-+ @Override
-+ public boolean isSystemFipsEnabled() {
-+ return SystemConfigurator.isSystemFipsEnabled();
-+ }
-+ });
- }
-
- /*
-@@ -128,9 +131,9 @@
- String nonFipsKeystoreType =
props.getProperty("keystore.type");
- props.put("keystore.type", keystoreTypeValue);
- if (keystoreTypeValue.equals("PKCS11")) {
-- // If keystore.type is PKCS11, javax.net.ssl.keyStore
-- // must be "NONE". See JDK-8238264.
-- System.setProperty("javax.net.ssl.keyStore",
"NONE");
-+ // If keystore.type is PKCS11, javax.net.ssl.keyStore
-+ // must be "NONE". See JDK-8238264.
-+ System.setProperty("javax.net.ssl.keyStore",
"NONE");
- }
- if (System.getProperty("javax.net.ssl.trustStoreType") ==
null) {
- // If no trustStoreType has been set, use the
-@@ -144,12 +147,13 @@
- sdebug.println("FIPS mode default keystore.type = " +
- keystoreTypeValue);
- sdebug.println("FIPS mode javax.net.ssl.keyStore = "
+
-- System.getProperty("javax.net.ssl.keyStore",
""));
-+ System.getProperty("javax.net.ssl.keyStore",
""));
- sdebug.println("FIPS mode javax.net.ssl.trustStoreType =
" +
-
System.getProperty("javax.net.ssl.trustStoreType", ""));
- }
- }
- loadedProps = true;
-+ systemFipsEnabled = true;
- }
- } catch (Exception e) {
- if (sdebug != null) {
-@@ -165,20 +165,37 @@
- return loadedProps;
- }
-
-+ /**
-+ * Returns whether or not global system FIPS alignment is enabled.
-+ *
-+ * Value is always 'false' before java.security.Security class is
-+ * initialized.
-+ *
-+ * Call from out of this package through SharedSecrets:
-+ * SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
-+ * .isSystemFipsEnabled();
-+ *
-+ * @return a boolean value indicating whether or not global
-+ * system FIPS alignment is enabled.
-+ */
-+ static boolean isSystemFipsEnabled() {
-+ return systemFipsEnabled;
-+ }
-+
- /*
- * FIPS is enabled only if crypto-policies are set to "FIPS"
- * and the com.redhat.fips property is true.
- */
- private static boolean enableFips() throws Exception {
-- boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips",
"true"));
-- if (fipsEnabled) {
-- Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
-- String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
-- if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
-- Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
-- return pattern.matcher(cryptoPoliciesConfig).find();
-- } else {
-- return false;
-- }
-+ boolean shouldEnable =
Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
-+ if (shouldEnable) {
-+ Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
-+ String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
-+ if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
-+ Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
-+ return pattern.matcher(cryptoPoliciesConfig).find();
-+ } else {
-+ return false;
-+ }
- }
- }
-diff --git
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
-@@ -0,0 +1,30 @@
-+/*
-+ * Copyright (c) 2020, 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+package sun.misc;
-+
-+public interface JavaSecuritySystemConfiguratorAccess {
-+ boolean isSystemFipsEnabled();
-+}
-diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
---- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
-+++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
-@@ -63,6 +63,7 @@
- private static JavaObjectInputStreamReadString javaObjectInputStreamReadString;
- private static JavaObjectInputStreamAccess javaObjectInputStreamAccess;
- private static JavaSecuritySignatureAccess javaSecuritySignatureAccess;
-+ private static JavaSecuritySystemConfiguratorAccess
javaSecuritySystemConfiguratorAccess;
-
- public static JavaUtilJarAccess javaUtilJarAccess() {
- if (javaUtilJarAccess == null) {
-@@ -248,4 +249,12 @@
- }
- return javaxCryptoSealedObjectAccess;
- }
-+
-+ public static void
setJavaSecuritySystemConfiguratorAccess(JavaSecuritySystemConfiguratorAccess jssca) {
-+ javaSecuritySystemConfiguratorAccess = jssca;
-+ }
-+
-+ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
-+ return javaSecuritySystemConfiguratorAccess;
-+ }
- }
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
-@@ -31,6 +31,7 @@
- import java.security.cert.*;
- import java.util.*;
- import javax.net.ssl.*;
-+import sun.misc.SharedSecrets;
- import sun.security.action.GetPropertyAction;
- import sun.security.provider.certpath.AlgorithmChecker;
- import sun.security.validator.Validator;
-@@ -539,20 +540,38 @@
-
- static {
- if (SunJSSE.isFIPS()) {
-- supportedProtocols = Arrays.asList(
-- ProtocolVersion.TLS13,
-- ProtocolVersion.TLS12,
-- ProtocolVersion.TLS11,
-- ProtocolVersion.TLS10
-- );
-+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
-+ .isSystemFipsEnabled()) {
-+ // RH1860986: TLSv1.3 key derivation not supported with
-+ // the Security Providers available in system FIPS mode.
-+ supportedProtocols = Arrays.asList(
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ );
-
-- serverDefaultProtocols = getAvailableProtocols(
-- new ProtocolVersion[] {
-- ProtocolVersion.TLS13,
-- ProtocolVersion.TLS12,
-- ProtocolVersion.TLS11,
-- ProtocolVersion.TLS10
-- });
-+ serverDefaultProtocols = getAvailableProtocols(
-+ new ProtocolVersion[] {
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ });
-+ } else {
-+ supportedProtocols = Arrays.asList(
-+ ProtocolVersion.TLS13,
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ );
-+
-+ serverDefaultProtocols = getAvailableProtocols(
-+ new ProtocolVersion[] {
-+ ProtocolVersion.TLS13,
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ });
-+ }
- } else {
- supportedProtocols = Arrays.asList(
- ProtocolVersion.TLS13,
-@@ -612,6 +631,16 @@
-
- static ProtocolVersion[] getSupportedProtocols() {
- if (SunJSSE.isFIPS()) {
-+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
-+ .isSystemFipsEnabled()) {
-+ // RH1860986: TLSv1.3 key derivation not supported with
-+ // the Security Providers available in system FIPS mode.
-+ return new ProtocolVersion[] {
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ };
-+ }
- return new ProtocolVersion[] {
- ProtocolVersion.TLS13,
- ProtocolVersion.TLS12,
-@@ -939,6 +968,16 @@
-
- static ProtocolVersion[] getProtocols() {
- if (SunJSSE.isFIPS()) {
-+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
-+ .isSystemFipsEnabled()) {
-+ // RH1860986: TLSv1.3 key derivation not supported with
-+ // the Security Providers available in system FIPS mode.
-+ return new ProtocolVersion[] {
-+ ProtocolVersion.TLS12,
-+ ProtocolVersion.TLS11,
-+ ProtocolVersion.TLS10
-+ };
-+ }
- return new ProtocolVersion[]{
- ProtocolVersion.TLS12,
- ProtocolVersion.TLS11,
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
-@@ -30,6 +30,8 @@
-
- import java.security.*;
-
-+import sun.misc.SharedSecrets;
-+
- /**
- * The JSSE provider.
- *
-@@ -215,8 +217,13 @@
- "sun.security.ssl.SSLContextImpl$TLS11Context");
- put("SSLContext.TLSv1.2",
- "sun.security.ssl.SSLContextImpl$TLS12Context");
-- put("SSLContext.TLSv1.3",
-- "sun.security.ssl.SSLContextImpl$TLS13Context");
-+ if (!SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
-+ .isSystemFipsEnabled()) {
-+ // RH1860986: TLSv1.3 key derivation not supported with
-+ // the Security Providers available in system FIPS mode.
-+ put("SSLContext.TLSv1.3",
-+ "sun.security.ssl.SSLContextImpl$TLS13Context");
-+ }
- put("SSLContext.TLS",
- "sun.security.ssl.SSLContextImpl$TLSContext");
- if (isfips == false) {
diff --git a/rh1906862-always_initialise_configurator_access.patch
b/rh1906862-always_initialise_configurator_access.patch
deleted file mode 100644
index 82116ad..0000000
--- a/rh1906862-always_initialise_configurator_access.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1608219816 0
-# Thu Dec 17 15:43:36 2020 +0000
-# Node ID db5d1b28bfce04352b3a48960bf836f6eb20804b
-# Parent a2cfa397150e99b813354226d536eb8509b5850b
-RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
-
-diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
---- openjdk.orig/jdk/src/share/classes/java/security/Security.java
-+++ openjdk/jdk/src/share/classes/java/security/Security.java
-@@ -30,6 +30,8 @@
- import java.util.concurrent.ConcurrentHashMap;
- import java.io.*;
- import java.net.URL;
-+import sun.misc.SharedSecrets;
-+import sun.misc.JavaSecuritySystemConfiguratorAccess;
- import sun.security.util.Debug;
- import sun.security.util.PropertyExpander;
-
-@@ -69,6 +71,15 @@
- }
-
- static {
-+ // Initialise here as used by code with system properties disabled
-+ SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
-+ new JavaSecuritySystemConfiguratorAccess() {
-+ @Override
-+ public boolean isSystemFipsEnabled() {
-+ return SystemConfigurator.isSystemFipsEnabled();
-+ }
-+ });
-+
- // doPrivileged here because there are multiple
- // things in initialize that might require privs.
- // (the FileInputStream call and the File.exists call,
-diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
---- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-@@ -39,8 +39,6 @@
- import java.util.Properties;
- import java.util.regex.Pattern;
-
--import sun.misc.SharedSecrets;
--import sun.misc.JavaSecuritySystemConfiguratorAccess;
- import sun.security.util.Debug;
-
- /**
-@@ -66,16 +64,6 @@
-
- private static boolean systemFipsEnabled = false;
-
-- static {
-- SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
-- new JavaSecuritySystemConfiguratorAccess() {
-- @Override
-- public boolean isSystemFipsEnabled() {
-- return SystemConfigurator.isSystemFipsEnabled();
-- }
-- });
-- }
--
- /*
- * Invoked when java.security.Security class is initialized, if
- * java.security.disableSystemPropertiesFile property is not set and
diff --git a/rh1929465-improve_system_FIPS_detection-jdk.patch
b/rh1929465-improve_system_FIPS_detection-jdk.patch
deleted file mode 100644
index 1461be8..0000000
--- a/rh1929465-improve_system_FIPS_detection-jdk.patch
+++ /dev/null
@@ -1,344 +0,0 @@
-diff --git openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
openjdk/jdk/make/lib/SecurityLibraries.gmk
---- openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
-+++ openjdk/jdk/make/lib/SecurityLibraries.gmk
-@@ -289,3 +289,34 @@
-
- endif
- endif
-+
-+################################################################################
-+# Create the systemconf library
-+
-+LIBSYSTEMCONF_CFLAGS :=
-+LIBSYSTEMCONF_CXXFLAGS :=
-+
-+ifeq ($(USE_SYSCONF_NSS), true)
-+ LIBSYSTEMCONF_CFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
-+ LIBSYSTEMCONF_CXXFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
-+endif
-+
-+ifeq ($(OPENJDK_BUILD_OS), linux)
-+ $(eval $(call SetupNativeCompilation,BUILD_LIBSYSTEMCONF, \
-+ LIBRARY := systemconf, \
-+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-+ SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/security, \
-+ LANG := C, \
-+ OPTIMIZATION := LOW, \
-+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBSYSTEMCONF_CFLAGS), \
-+ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBSYSTEMCONF_CXXFLAGS), \
-+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsystemconf/mapfile-vers, \
-+ LDFLAGS := $(LDFLAGS_JDKLIB) \
-+ $(call SET_SHARED_LIBRARY_ORIGIN), \
-+ LDFLAGS_SUFFIX := $(LIBDL) $(NSS_LIBS), \
-+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsystemconf, \
-+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
-+
-+ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF)
-+endif
-+
-diff --git openjdk.orig/jdk/make/mapfiles/libsystemconf/mapfile-vers
openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
-@@ -0,0 +1,35 @@
-+#
-+# Copyright (c) 2021, 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. Oracle designates this
-+# particular file as subject to the "Classpath" exception as provided
-+# by Oracle in the LICENSE file that accompanied this code.
-+#
-+# 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.
-+#
-+
-+# Define public interface.
-+
-+SUNWprivate_1.1 {
-+ global:
-+ DEF_JNI_OnLoad;
-+ DEF_JNI_OnUnLoad;
-+ Java_java_security_SystemConfigurator_getSystemFIPSEnabled;
-+ local:
-+ *;
-+};
-diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
---- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2019, 2020, Red Hat, Inc.
-+ * Copyright (c) 2019, 2021, Red Hat, Inc.
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
-@@ -30,14 +30,9 @@
- import java.io.FileInputStream;
- import java.io.IOException;
-
--import java.nio.file.Files;
--import java.nio.file.FileSystems;
--import java.nio.file.Path;
--
- import java.util.Iterator;
- import java.util.Map.Entry;
- import java.util.Properties;
--import java.util.regex.Pattern;
-
- import sun.security.util.Debug;
-
-@@ -59,10 +54,21 @@
- private static final String CRYPTO_POLICIES_JAVA_CONFIG =
- CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
-
-- private static final String CRYPTO_POLICIES_CONFIG =
-- CRYPTO_POLICIES_BASE_DIR + "/config";
-+ private static boolean systemFipsEnabled = false;
-+
-+ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
-+
-+ private static native boolean getSystemFIPSEnabled()
-+ throws IOException;
-
-- private static boolean systemFipsEnabled = false;
-+ static {
-+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
-+ public Void run() {
-+ System.loadLibrary(SYSTEMCONF_NATIVE_LIB);
-+ return null;
-+ }
-+ });
-+ }
-
- /*
- * Invoked when java.security.Security class is initialized, if
-@@ -171,17 +177,34 @@
- }
-
- /*
-- * FIPS is enabled only if crypto-policies are set to "FIPS"
-- * and the com.redhat.fips property is true.
-+ * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
-+ * system property is true (default) and the system is in FIPS mode.
-+ *
-+ * There are 2 possible ways in which OpenJDK detects that the system
-+ * is in FIPS mode: 1) if the NSS SECMOD_GetSystemFIPSEnabled API is
-+ * available at OpenJDK's built-time, it is called; 2) otherwise, the
-+ * /proc/sys/crypto/fips_enabled file is read.
- */
-- private static boolean enableFips() throws Exception {
-+ private static boolean enableFips() throws IOException {
- boolean shouldEnable =
Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
- if (shouldEnable) {
-- Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
-- String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
-- if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
-- Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
-- return pattern.matcher(cryptoPoliciesConfig).find();
-+ if (sdebug != null) {
-+ sdebug.println("Calling getSystemFIPSEnabled
(libsystemconf)...");
-+ }
-+ try {
-+ shouldEnable = getSystemFIPSEnabled();
-+ if (sdebug != null) {
-+ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
returned: "
-+ + shouldEnable);
-+ }
-+ return shouldEnable;
-+ } catch (IOException e) {
-+ if (sdebug != null) {
-+ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
failed:");
-+ sdebug.println(e.getMessage());
-+ }
-+ throw e;
-+ }
- } else {
- return false;
- }
-diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
-@@ -0,0 +1,168 @@
-+/*
-+ * Copyright (c) 2021, 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+#include <dlfcn.h>
-+#include <jni.h>
-+#include <jni_util.h>
-+#include <stdio.h>
-+
-+#ifdef SYSCONF_NSS
-+#include <nss3/pk11pub.h>
-+#endif //SYSCONF_NSS
-+
-+#include "java_security_SystemConfigurator.h"
-+
-+#define FIPS_ENABLED_PATH "/proc/sys/crypto/fips_enabled"
-+#define MSG_MAX_SIZE 96
-+
-+static jmethodID debugPrintlnMethodID = NULL;
-+static jobject debugObj = NULL;
-+
-+static void throwIOException(JNIEnv *env, const char *msg);
-+static void dbgPrint(JNIEnv *env, const char* msg);
-+
-+/*
-+ * Class: java_security_SystemConfigurator
-+ * Method: JNI_OnLoad
-+ */
-+JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved)
-+{
-+ JNIEnv *env;
-+ jclass sysConfCls, debugCls;
-+ jfieldID sdebugFld;
-+
-+ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
-+ return JNI_EVERSION; /* JNI version not supported */
-+ }
-+
-+ sysConfCls =
(*env)->FindClass(env,"java/security/SystemConfigurator");
-+ if (sysConfCls == NULL) {
-+ printf("libsystemconf: SystemConfigurator class not found\n");
-+ return JNI_ERR;
-+ }
-+ sdebugFld = (*env)->GetStaticFieldID(env, sysConfCls,
-+ "sdebug", "Lsun/security/util/Debug;");
-+ if (sdebugFld == NULL) {
-+ printf("libsystemconf: SystemConfigurator::sdebug field not
found\n");
-+ return JNI_ERR;
-+ }
-+ debugObj = (*env)->GetStaticObjectField(env, sysConfCls, sdebugFld);
-+ if (debugObj != NULL) {
-+ debugCls = (*env)->FindClass(env,"sun/security/util/Debug");
-+ if (debugCls == NULL) {
-+ printf("libsystemconf: Debug class not found\n");
-+ return JNI_ERR;
-+ }
-+ debugPrintlnMethodID = (*env)->GetMethodID(env, debugCls,
-+ "println", "(Ljava/lang/String;)V");
-+ if (debugPrintlnMethodID == NULL) {
-+ printf("libsystemconf: Debug::println(String) method not
found\n");
-+ return JNI_ERR;
-+ }
-+ debugObj = (*env)->NewGlobalRef(env, debugObj);
-+ }
-+
-+ return (*env)->GetVersion(env);
-+}
-+
-+/*
-+ * Class: java_security_SystemConfigurator
-+ * Method: JNI_OnUnload
-+ */
-+JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved)
-+{
-+ JNIEnv *env;
-+
-+ if (debugObj != NULL) {
-+ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
-+ return; /* Should not happen */
-+ }
-+ (*env)->DeleteGlobalRef(env, debugObj);
-+ }
-+}
-+
-+JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEnabled
-+ (JNIEnv *env, jclass cls)
-+{
-+ int fips_enabled;
-+ char msg[MSG_MAX_SIZE];
-+ int msg_bytes;
-+
-+#ifdef SYSCONF_NSS
-+
-+ dbgPrint(env, "getSystemFIPSEnabled: calling
SECMOD_GetSystemFIPSEnabled");
-+ fips_enabled = SECMOD_GetSystemFIPSEnabled();
-+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
-+ " SECMOD_GetSystemFIPSEnabled returned 0x%x", fips_enabled);
-+ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
-+ dbgPrint(env, msg);
-+ } else {
-+ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
-+ " SECMOD_GetSystemFIPSEnabled return value");
-+ }
-+ return (fips_enabled == 1 ? JNI_TRUE : JNI_FALSE);
-+
-+#else // SYSCONF_NSS
-+
-+ FILE *fe;
-+
-+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
-+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
-+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
-+ }
-+ fips_enabled = fgetc(fe);
-+ fclose(fe);
-+ if (fips_enabled == EOF) {
-+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
-+ }
-+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
-+ " read character is '%c'", fips_enabled);
-+ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
-+ dbgPrint(env, msg);
-+ } else {
-+ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
-+ " read character");
-+ }
-+ return (fips_enabled == '1' ? JNI_TRUE : JNI_FALSE);
-+
-+#endif // SYSCONF_NSS
-+}
-+
-+static void throwIOException(JNIEnv *env, const char *msg)
-+{
-+ jclass cls = (*env)->FindClass(env, "java/io/IOException");
-+ if (cls != 0)
-+ (*env)->ThrowNew(env, cls, msg);
-+}
-+
-+static void dbgPrint(JNIEnv *env, const char* msg)
-+{
-+ jstring jMsg;
-+ if (debugObj != NULL) {
-+ jMsg = (*env)->NewStringUTF(env, msg);
-+ CHECK_NULL(jMsg);
-+ (*env)->CallVoidMethod(env, debugObj, debugPrintlnMethodID, jMsg);
-+ }
-+}
diff --git a/rh1929465-improve_system_FIPS_detection-root.patch
b/rh1929465-improve_system_FIPS_detection-root.patch
deleted file mode 100644
index 64d8ac0..0000000
--- a/rh1929465-improve_system_FIPS_detection-root.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-diff --git openjdk.orig/common/autoconf/configure.ac
openjdk/common/autoconf/configure.ac
---- openjdk.orig/common/autoconf/configure.ac
-+++ openjdk/common/autoconf/configure.ac
-@@ -212,6 +212,7 @@
- LIB_SETUP_ALSA
- LIB_SETUP_FONTCONFIG
- LIB_SETUP_MISC_LIBS
-+LIB_SETUP_SYSCONF_LIBS
- LIB_SETUP_STATIC_LINK_LIBSTDCPP
- LIB_SETUP_ON_WINDOWS
-
-diff --git openjdk.orig/common/autoconf/libraries.m4
openjdk/common/autoconf/libraries.m4
---- openjdk.orig/common/autoconf/libraries.m4
-+++ openjdk/common/autoconf/libraries.m4
-@@ -1067,3 +1067,63 @@
- BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
- fi
- ])
-+
-+################################################################################
-+# Setup system configuration libraries
-+################################################################################
-+AC_DEFUN_ONCE([LIB_SETUP_SYSCONF_LIBS],
-+[
-+ ###############################################################################
-+ #
-+ # Check for the NSS library
-+ #
-+
-+ AC_MSG_CHECKING([whether to use the system NSS library with the System Configurator
(libsysconf)])
-+
-+ # default is not available
-+ DEFAULT_SYSCONF_NSS=no
-+
-+ AC_ARG_ENABLE([sysconf-nss], [AS_HELP_STRING([--enable-sysconf-nss],
-+ [build the System Configurator (libsysconf) using the system NSS library if
available @<:@disabled@:>@])],
-+ [
-+ case "${enableval}" in
-+ yes)
-+ sysconf_nss=yes
-+ ;;
-+ *)
-+ sysconf_nss=no
-+ ;;
-+ esac
-+ ],
-+ [
-+ sysconf_nss=${DEFAULT_SYSCONF_NSS}
-+ ])
-+ AC_MSG_RESULT([$sysconf_nss])
-+
-+ USE_SYSCONF_NSS=false
-+ if test "x${sysconf_nss}" = "xyes"; then
-+ PKG_CHECK_MODULES(NSS, nss >= 3.53, [NSS_FOUND=yes], [NSS_FOUND=no])
-+ if test "x${NSS_FOUND}" = "xyes"; then
-+ AC_MSG_CHECKING([for system FIPS support in NSS])
-+ saved_libs="${LIBS}"
-+ saved_cflags="${CFLAGS}"
-+ CFLAGS="${CFLAGS} ${NSS_CFLAGS}"
-+ LIBS="${LIBS} ${NSS_LIBS}"
-+ AC_LANG_PUSH([C])
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss3/pk11pub.h>]],
-+ [[SECMOD_GetSystemFIPSEnabled()]])],
-+ [AC_MSG_RESULT([yes])],
-+ [AC_MSG_RESULT([no])
-+ AC_MSG_ERROR([System NSS FIPS detection unavailable])])
-+ AC_LANG_POP([C])
-+ CFLAGS="${saved_cflags}"
-+ LIBS="${saved_libs}"
-+ USE_SYSCONF_NSS=true
-+ else
-+ dnl NSS 3.53 is the one that introduces the SECMOD_GetSystemFIPSEnabled API
-+ dnl in nss3/pk11pub.h.
-+ AC_MSG_ERROR([--enable-sysconf-nss specified, but NSS 3.53 or above not
found.])
-+ fi
-+ fi
-+ AC_SUBST(USE_SYSCONF_NSS)
-+])
-diff --git openjdk.orig/common/autoconf/spec.gmk.in openjdk/common/autoconf/spec.gmk.in
---- openjdk.orig/common/autoconf/spec.gmk.in
-+++ openjdk/common/autoconf/spec.gmk.in
-@@ -312,6 +312,10 @@
- ALSA_LIBS:=@ALSA_LIBS@
- ALSA_CFLAGS:=@ALSA_CFLAGS@
-
-+USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
-+NSS_LIBS:=@NSS_LIBS@
-+NSS_CFLAGS:=@NSS_CFLAGS@
-+
- PACKAGE_PATH=@PACKAGE_PATH@
-
- # Source file for cacerts
-diff --git openjdk.orig/common/bin/compare_exceptions.sh.incl
openjdk/common/bin/compare_exceptions.sh.incl
---- openjdk.orig/common/bin/compare_exceptions.sh.incl
-+++ openjdk/common/bin/compare_exceptions.sh.incl
-@@ -280,6 +280,7 @@
- ./jre/lib/i386/libsplashscreen.so
- ./jre/lib/i386/libsunec.so
- ./jre/lib/i386/libsunwjdga.so
-+./jre/lib/i386/libsystemconf.so
- ./jre/lib/i386/libt2k.so
- ./jre/lib/i386/libunpack.so
- ./jre/lib/i386/libverify.so
-@@ -433,6 +434,7 @@
- ./jre/lib/amd64/libsplashscreen.so
- ./jre/lib/amd64/libsunec.so
- ./jre/lib/amd64/libsunwjdga.so
-+//jre/lib/amd64/libsystemconf.so
- ./jre/lib/amd64/libt2k.so
- ./jre/lib/amd64/libunpack.so
- ./jre/lib/amd64/libverify.so
-@@ -587,6 +589,7 @@
- ./jre/lib/sparc/libsplashscreen.so
- ./jre/lib/sparc/libsunec.so
- ./jre/lib/sparc/libsunwjdga.so
-+./jre/lib/sparc/libsystemconf.so
- ./jre/lib/sparc/libt2k.so
- ./jre/lib/sparc/libunpack.so
- ./jre/lib/sparc/libverify.so
-@@ -741,6 +744,7 @@
- ./jre/lib/sparcv9/libsplashscreen.so
- ./jre/lib/sparcv9/libsunec.so
- ./jre/lib/sparcv9/libsunwjdga.so
-+./jre/lib/sparcv9/libsystemconf.so
- ./jre/lib/sparcv9/libt2k.so
- ./jre/lib/sparcv9/libunpack.so
- ./jre/lib/sparcv9/libverify.so
-diff --git openjdk.orig/common/nb_native/nbproject/configurations.xml
openjdk/common/nb_native/nbproject/configurations.xml
---- openjdk.orig/common/nb_native/nbproject/configurations.xml
-+++ openjdk/common/nb_native/nbproject/configurations.xml
-@@ -53,6 +53,9 @@
- <in>jvmtiEnterTrace.cpp</in>
- </df>
- </df>
-+ <df name="libsystemconf">
-+ <in>systemconf.c</in>
-+ </df>
- </df>
- </df>
- <df name="jdk">
-@@ -12772,6 +12775,11 @@
- tool="0"
- flavor2="0">
- </item>
-+ <item path="../../jdk/src/solaris/native/java/security/systemconf.c"
-+ ex="false"
-+ tool="0"
-+ flavor2="0">
-+ </item>
- <item path="../../jdk/src/share/native/java/util/TimeZone.c"
- ex="false"
- tool="0"
diff --git a/rh1991003-enable_fips_keys_import.patch
b/rh1991003-enable_fips_keys_import.patch
deleted file mode 100644
index 028769d..0000000
--- a/rh1991003-enable_fips_keys_import.patch
+++ /dev/null
@@ -1,583 +0,0 @@
-diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
---- openjdk.orig/jdk/src/share/classes/java/security/Security.java
-+++ openjdk/jdk/src/share/classes/java/security/Security.java
-@@ -78,6 +78,10 @@
- public boolean isSystemFipsEnabled() {
- return SystemConfigurator.isSystemFipsEnabled();
- }
-+ @Override
-+ public boolean isPlainKeySupportEnabled() {
-+ return SystemConfigurator.isPlainKeySupportEnabled();
-+ }
- });
-
- // doPrivileged here because there are multiple
-diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
---- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-@@ -55,6 +55,7 @@
- CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
-
- private static boolean systemFipsEnabled = false;
-+ private static boolean plainKeySupportEnabled = false;
-
- private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
-
-@@ -149,6 +150,16 @@
- }
- loadedProps = true;
- systemFipsEnabled = true;
-+ String plainKeySupport =
System.getProperty("com.redhat.fips.plainKeySupport",
-+ "true");
-+ plainKeySupportEnabled = !"false".equals(plainKeySupport);
-+ if (sdebug != null) {
-+ if (plainKeySupportEnabled) {
-+ sdebug.println("FIPS support enabled with plain key
support");
-+ } else {
-+ sdebug.println("FIPS support enabled without plain key
support");
-+ }
-+ }
- }
- } catch (Exception e) {
- if (sdebug != null) {
-@@ -176,6 +187,19 @@
- return systemFipsEnabled;
- }
-
-+ /**
-+ * Returns {@code true} if system FIPS alignment is enabled
-+ * and plain key support is allowed. Plain key support is
-+ * enabled by default but can be disabled with
-+ * {@code -Dcom.redhat.fips.plainKeySupport=false}.
-+ *
-+ * @return a boolean indicating whether plain key support
-+ * should be enabled.
-+ */
-+ static boolean isPlainKeySupportEnabled() {
-+ return plainKeySupportEnabled;
-+ }
-+
- /*
- * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
- * system property is true (default) and the system is in FIPS mode.
-diff --git
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
----
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
-+++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
-@@ -27,4 +27,5 @@
-
- public interface JavaSecuritySystemConfiguratorAccess {
- boolean isSystemFipsEnabled();
-+ boolean isPlainKeySupportEnabled();
- }
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
-@@ -0,0 +1,290 @@
-+/*
-+ * Copyright (c) 2021, 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+package sun.security.pkcs11;
-+
-+import java.math.BigInteger;
-+import java.security.KeyFactory;
-+import java.security.Provider;
-+import java.security.Security;
-+import java.util.HashMap;
-+import java.util.Map;
-+import java.util.concurrent.locks.ReentrantLock;
-+
-+import javax.crypto.Cipher;
-+import javax.crypto.spec.DHPrivateKeySpec;
-+import javax.crypto.spec.IvParameterSpec;
-+
-+import sun.security.jca.JCAUtil;
-+import sun.security.pkcs11.TemplateManager;
-+import sun.security.pkcs11.wrapper.CK_ATTRIBUTE;
-+import sun.security.pkcs11.wrapper.CK_MECHANISM;
-+import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
-+import sun.security.pkcs11.wrapper.PKCS11Exception;
-+import sun.security.rsa.RSAUtil.KeyType;
-+import sun.security.util.Debug;
-+import sun.security.util.ECUtil;
-+
-+final class FIPSKeyImporter {
-+
-+ private static final Debug debug =
-+ Debug.getInstance("sunpkcs11");
-+
-+ private static P11Key importerKey = null;
-+ private static final ReentrantLock importerKeyLock = new ReentrantLock();
-+ private static CK_MECHANISM importerKeyMechanism = null;
-+ private static Cipher importerCipher = null;
-+
-+ private static Provider sunECProvider = null;
-+ private static final ReentrantLock sunECProviderLock = new ReentrantLock();
-+
-+ private static KeyFactory DHKF = null;
-+ private static final ReentrantLock DHKFLock = new ReentrantLock();
-+
-+ static Long importKey(SunPKCS11 sunPKCS11, long hSession, CK_ATTRIBUTE[]
attributes)
-+ throws PKCS11Exception {
-+ long keyID = -1;
-+ Token token = sunPKCS11.getToken();
-+ if (debug != null) {
-+ debug.println("Private or Secret key will be imported in" +
-+ " system FIPS mode.");
-+ }
-+ if (importerKey == null) {
-+ importerKeyLock.lock();
-+ try {
-+ if (importerKey == null) {
-+ if (importerKeyMechanism == null) {
-+ // Importer Key creation has not been tried yet. Try it.
-+ createImporterKey(token);
-+ }
-+ if (importerKey == null || importerCipher == null) {
-+ if (debug != null) {
-+ debug.println("Importer Key could not be" +
-+ " generated.");
-+ }
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ }
-+ if (debug != null) {
-+ debug.println("Importer Key successfully" +
-+ " generated.");
-+ }
-+ }
-+ } finally {
-+ importerKeyLock.unlock();
-+ }
-+ }
-+ long importerKeyID = importerKey.getKeyID();
-+ try {
-+ byte[] keyBytes = null;
-+ byte[] encKeyBytes = null;
-+ long keyClass = 0L;
-+ long keyType = 0L;
-+ Map<Long, CK_ATTRIBUTE> attrsMap = new HashMap<>();
-+ for (CK_ATTRIBUTE attr : attributes) {
-+ if (attr.type == CKA_CLASS) {
-+ keyClass = attr.getLong();
-+ } else if (attr.type == CKA_KEY_TYPE) {
-+ keyType = attr.getLong();
-+ }
-+ attrsMap.put(attr.type, attr);
-+ }
-+ BigInteger v = null;
-+ if (keyClass == CKO_PRIVATE_KEY) {
-+ if (keyType == CKK_RSA) {
-+ if (debug != null) {
-+ debug.println("Importing an RSA private key...");
-+ }
-+ keyBytes = sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(
-+ KeyType.RSA,
-+ null,
-+ ((v = attrsMap.get(CKA_MODULUS).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PUBLIC_EXPONENT).getBigInteger()) !=
null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PRIVATE_EXPONENT).getBigInteger()) !=
null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PRIME_1).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PRIME_2).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_EXPONENT_1).getBigInteger()) !=
null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_EXPONENT_2).getBigInteger()) !=
null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_COEFFICIENT).getBigInteger()) !=
null)
-+ ? v : BigInteger.ZERO
-+ ).getEncoded();
-+ } else if (keyType == CKK_DSA) {
-+ if (debug != null) {
-+ debug.println("Importing a DSA private key...");
-+ }
-+ keyBytes = new sun.security.provider.DSAPrivateKey(
-+ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_SUBPRIME).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO
-+ ).getEncoded();
-+ if (token.config.getNssNetscapeDbWorkaround() &&
-+ attrsMap.get(CKA_NETSCAPE_DB) == null) {
-+ attrsMap.put(CKA_NETSCAPE_DB,
-+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
-+ }
-+ } else if (keyType == CKK_EC) {
-+ if (debug != null) {
-+ debug.println("Importing an EC private key...");
-+ }
-+ if (sunECProvider == null) {
-+ sunECProviderLock.lock();
-+ try {
-+ if (sunECProvider == null) {
-+ sunECProvider =
Security.getProvider("SunEC");
-+ }
-+ } finally {
-+ sunECProviderLock.unlock();
-+ }
-+ }
-+ keyBytes = P11ECUtil.generateECPrivateKey(
-+ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ECUtil.getECParameterSpec(sunECProvider,
-+ attrsMap.get(CKA_EC_PARAMS).getByteArray()))
-+ .getEncoded();
-+ if (token.config.getNssNetscapeDbWorkaround() &&
-+ attrsMap.get(CKA_NETSCAPE_DB) == null) {
-+ attrsMap.put(CKA_NETSCAPE_DB,
-+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
-+ }
-+ } else if (keyType == CKK_DH) {
-+ if (debug != null) {
-+ debug.println("Importing a Diffie-Hellman private
key...");
-+ }
-+ if (DHKF == null) {
-+ DHKFLock.lock();
-+ try {
-+ if (DHKF == null) {
-+ DHKF = KeyFactory.getInstance(
-+ "DH", P11Util.getSunJceProvider());
-+ }
-+ } finally {
-+ DHKFLock.unlock();
-+ }
-+ }
-+ DHPrivateKeySpec spec = new DHPrivateKeySpec
-+ (((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO,
-+ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
-+ ? v : BigInteger.ZERO);
-+ keyBytes = DHKF.generatePrivate(spec).getEncoded();
-+ if (token.config.getNssNetscapeDbWorkaround() &&
-+ attrsMap.get(CKA_NETSCAPE_DB) == null) {
-+ attrsMap.put(CKA_NETSCAPE_DB,
-+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
-+ }
-+ } else {
-+ if (debug != null) {
-+ debug.println("Unrecognized private key type.");
-+ }
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ }
-+ } else if (keyClass == CKO_SECRET_KEY) {
-+ if (debug != null) {
-+ debug.println("Importing a secret key...");
-+ }
-+ keyBytes = attrsMap.get(CKA_VALUE).getByteArray();
-+ }
-+ if (keyBytes == null || keyBytes.length == 0) {
-+ if (debug != null) {
-+ debug.println("Private or secret key plain bytes could" +
-+ " not be obtained. Import failed.");
-+ }
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ }
-+ importerCipher.init(Cipher.ENCRYPT_MODE, importerKey,
-+ new IvParameterSpec((byte[])importerKeyMechanism.pParameter),
-+ null);
-+ attributes = new CK_ATTRIBUTE[attrsMap.size()];
-+ attrsMap.values().toArray(attributes);
-+ encKeyBytes = importerCipher.doFinal(keyBytes);
-+ attributes = token.getAttributes(TemplateManager.O_IMPORT,
-+ keyClass, keyType, attributes);
-+ keyID = token.p11.C_UnwrapKey(hSession,
-+ importerKeyMechanism, importerKeyID, encKeyBytes, attributes);
-+ if (debug != null) {
-+ debug.println("Imported key ID: " + keyID);
-+ }
-+ } catch (Throwable t) {
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ } finally {
-+ importerKey.releaseKeyID();
-+ }
-+ return Long.valueOf(keyID);
-+ }
-+
-+ private static void createImporterKey(Token token) {
-+ if (debug != null) {
-+ debug.println("Generating Importer Key...");
-+ }
-+ byte[] iv = new byte[16];
-+ JCAUtil.getSecureRandom().nextBytes(iv);
-+ importerKeyMechanism = new CK_MECHANISM(CKM_AES_CBC_PAD, iv);
-+ try {
-+ CK_ATTRIBUTE[] attributes = token.getAttributes(TemplateManager.O_GENERATE,
-+ CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] {
-+ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY),
-+ new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3)});
-+ Session s = null;
-+ try {
-+ s = token.getObjSession();
-+ long keyID = token.p11.C_GenerateKey(
-+ s.id(), new CK_MECHANISM(CKM_AES_KEY_GEN),
-+ attributes);
-+ if (debug != null) {
-+ debug.println("Importer Key ID: " + keyID);
-+ }
-+ importerKey = (P11Key)P11Key.secretKey(s, keyID, "AES",
-+ 256 >> 3, null);
-+ } catch (PKCS11Exception e) {
-+ // best effort
-+ } finally {
-+ token.releaseSession(s);
-+ }
-+ if (importerKey != null) {
-+ importerCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
-+ }
-+ } catch (Throwable t) {
-+ // best effort
-+ importerKey = null;
-+ importerCipher = null;
-+ // importerKeyMechanism value is kept initialized to indicate that
-+ // Importer Key creation has been tried and failed.
-+ }
-+ }
-+}
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-@@ -26,6 +26,9 @@
- package sun.security.pkcs11;
-
- import java.io.*;
-+import java.lang.invoke.MethodHandle;
-+import java.lang.invoke.MethodHandles;
-+import java.lang.invoke.MethodType;
- import java.util.*;
-
- import java.security.*;
-@@ -63,6 +66,26 @@
- private static final boolean systemFipsEnabled = SharedSecrets
- .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
-
-+ private static final boolean plainKeySupportEnabled = SharedSecrets
-+ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
-+
-+ private static final MethodHandle fipsImportKey;
-+ static {
-+ MethodHandle fipsImportKeyTmp = null;
-+ if (plainKeySupportEnabled) {
-+ try {
-+ fipsImportKeyTmp = MethodHandles.lookup().findStatic(
-+ FIPSKeyImporter.class, "importKey",
-+ MethodType.methodType(Long.class, SunPKCS11.class,
-+ long.class, CK_ATTRIBUTE[].class));
-+ } catch (Throwable t) {
-+ throw new SecurityException("FIPS key importer initialization"
+
-+ " failed", t);
-+ }
-+ }
-+ fipsImportKey = fipsImportKeyTmp;
-+ }
-+
- private static final long serialVersionUID = -1354835039035306505L;
-
- static final Debug debug = Debug.getInstance("sunpkcs11");
-@@ -314,10 +337,15 @@
- // request multithreaded access first
- initArgs.flags = CKF_OS_LOCKING_OK;
- PKCS11 tmpPKCS11;
-+ MethodHandle fipsKeyImporter = null;
-+ if (plainKeySupportEnabled) {
-+ fipsKeyImporter = MethodHandles.insertArguments(
-+ fipsImportKey, 0, this);
-+ }
- try {
- tmpPKCS11 = PKCS11.getInstance(
- library, functionList, initArgs,
-- config.getOmitInitialize());
-+ config.getOmitInitialize(), fipsKeyImporter);
- } catch (PKCS11Exception e) {
- if (debug != null) {
- debug.println("Multi-threaded initialization failed: " +
e);
-@@ -333,7 +361,7 @@
- initArgs.flags = 0;
- }
- tmpPKCS11 = PKCS11.getInstance(library,
-- functionList, initArgs, config.getOmitInitialize());
-+ functionList, initArgs, config.getOmitInitialize(),
fipsKeyImporter);
- }
- p11 = tmpPKCS11;
-
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
-@@ -49,6 +49,7 @@
-
- import java.io.File;
- import java.io.IOException;
-+import java.lang.invoke.MethodHandle;
- import java.util.*;
-
- import java.security.AccessController;
-@@ -147,16 +148,28 @@
-
- public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
- String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
-- boolean omitInitialize) throws IOException, PKCS11Exception {
-+ boolean omitInitialize, MethodHandle fipsKeyImporter)
-+ throws IOException, PKCS11Exception {
- // we may only call C_Initialize once per native .so/.dll
- // so keep a cache using the (non-canonicalized!) path
- PKCS11 pkcs11 = moduleMap.get(pkcs11ModulePath);
- if (pkcs11 == null) {
-+ boolean nssFipsMode = fipsKeyImporter != null;
- if ((pInitArgs != null)
- && ((pInitArgs.flags & CKF_OS_LOCKING_OK) != 0)) {
-- pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
-+ if (nssFipsMode) {
-+ pkcs11 = new FIPSPKCS11(pkcs11ModulePath, functionList,
-+ fipsKeyImporter);
-+ } else {
-+ pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
-+ }
- } else {
-- pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
-+ if (nssFipsMode) {
-+ pkcs11 = new SynchronizedFIPSPKCS11(pkcs11ModulePath,
-+ functionList, fipsKeyImporter);
-+ } else {
-+ pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
-+ }
- }
- if (omitInitialize == false) {
- try {
-@@ -1905,4 +1918,69 @@
- super.C_GenerateRandom(hSession, randomData);
- }
- }
-+
-+// PKCS11 subclass that allows using plain private or secret keys in
-+// FIPS-configured NSS Software Tokens. Only used when System FIPS
-+// is enabled.
-+static class FIPSPKCS11 extends PKCS11 {
-+ private MethodHandle fipsKeyImporter;
-+ FIPSPKCS11(String pkcs11ModulePath, String functionListName,
-+ MethodHandle fipsKeyImporter) throws IOException {
-+ super(pkcs11ModulePath, functionListName);
-+ this.fipsKeyImporter = fipsKeyImporter;
-+ }
-+
-+ public synchronized long C_CreateObject(long hSession,
-+ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
-+ // Creating sensitive key objects from plain key material in a
-+ // FIPS-configured NSS Software Token is not allowed. We apply
-+ // a key-unwrapping scheme to achieve so.
-+ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
-+ try {
-+ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
-+ .longValue();
-+ } catch (Throwable t) {
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ }
-+ }
-+ return super.C_CreateObject(hSession, pTemplate);
-+ }
- }
-+
-+// FIPSPKCS11 synchronized counterpart.
-+static class SynchronizedFIPSPKCS11 extends SynchronizedPKCS11 {
-+ private MethodHandle fipsKeyImporter;
-+ SynchronizedFIPSPKCS11(String pkcs11ModulePath, String functionListName,
-+ MethodHandle fipsKeyImporter) throws IOException {
-+ super(pkcs11ModulePath, functionListName);
-+ this.fipsKeyImporter = fipsKeyImporter;
-+ }
-+
-+ public synchronized long C_CreateObject(long hSession,
-+ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
-+ // See FIPSPKCS11::C_CreateObject.
-+ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
-+ try {
-+ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
-+ .longValue();
-+ } catch (Throwable t) {
-+ throw new PKCS11Exception(CKR_GENERAL_ERROR);
-+ }
-+ }
-+ return super.C_CreateObject(hSession, pTemplate);
-+ }
-+}
-+
-+private static class FIPSPKCS11Helper {
-+ static boolean isSensitiveObject(CK_ATTRIBUTE[] pTemplate) {
-+ for (CK_ATTRIBUTE attr : pTemplate) {
-+ if (attr.type == CKA_CLASS &&
-+ (attr.getLong() == CKO_PRIVATE_KEY ||
-+ attr.getLong() == CKO_SECRET_KEY)) {
-+ return true;
-+ }
-+ }
-+ return false;
-+ }
-+}
-+}
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
-@@ -33,8 +33,13 @@
-
- import javax.net.ssl.*;
-
-+import sun.misc.SharedSecrets;
-+
- abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
-
-+ private static final boolean plainKeySupportEnabled = SharedSecrets
-+ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
-+
- X509ExtendedKeyManager keyManager;
- boolean isInitialized;
-
-@@ -62,7 +67,8 @@
- KeyStoreException, NoSuchAlgorithmException,
- UnrecoverableKeyException {
- if ((ks != null) && SunJSSE.isFIPS()) {
-- if (ks.getProvider() != SunJSSE.cryptoProvider) {
-+ if (ks.getProvider() != SunJSSE.cryptoProvider &&
-+ !plainKeySupportEnabled) {
- throw new KeyStoreException("FIPS mode: KeyStore must be
"
- + "from provider " +
SunJSSE.cryptoProvider.getName());
- }
-@@ -91,8 +97,8 @@
- keyManager = new X509KeyManagerImpl(
- Collections.<Builder>emptyList());
- } else {
-- if (SunJSSE.isFIPS() &&
-- (ks.getProvider() != SunJSSE.cryptoProvider)) {
-+ if (SunJSSE.isFIPS() && (ks.getProvider() !=
SunJSSE.cryptoProvider)
-+ && !plainKeySupportEnabled) {
- throw new KeyStoreException(
- "FIPS mode: KeyStore must be " +
- "from provider " + SunJSSE.cryptoProvider.getName());
diff --git a/rh1996182-login_to_nss_software_token.patch
b/rh1996182-login_to_nss_software_token.patch
deleted file mode 100644
index 341e092..0000000
--- a/rh1996182-login_to_nss_software_token.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-# HG changeset patch
-# User mbalao
-# Date 1630103180 -3600
-# Fri Aug 27 23:26:20 2021 +0100
-# Node ID b3bd3119fab9bc5adfd7073377aca12bb1af80b3
-# Parent c90394a76ee02a689f95199559d5724824b4b25e
-RH1996182: Login to the NSS Software Token in FIPS Mode
-
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-@@ -42,6 +42,8 @@
- import javax.security.auth.callback.PasswordCallback;
- import javax.security.auth.callback.TextOutputCallback;
-
-+import sun.misc.SharedSecrets;
-+
- import sun.security.util.Debug;
- import sun.security.util.ResourcesMgr;
-
-@@ -58,6 +60,9 @@
- */
- public final class SunPKCS11 extends AuthProvider {
-
-+ private static final boolean systemFipsEnabled = SharedSecrets
-+ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
-+
- private static final long serialVersionUID = -1354835039035306505L;
-
- static final Debug debug = Debug.getInstance("sunpkcs11");
-@@ -368,6 +373,24 @@
- if (nssModule != null) {
- nssModule.setProvider(this);
- }
-+ if (systemFipsEnabled) {
-+ // The NSS Software Token in FIPS 140-2 mode requires a user
-+ // login for most operations. See sftk_fipsCheck. The NSS DB
-+ // (/etc/pki/nssdb) PIN is empty.
-+ Session session = null;
-+ try {
-+ session = token.getOpSession();
-+ p11.C_Login(session.id(), CKU_USER, new char[] {});
-+ } catch (PKCS11Exception p11e) {
-+ if (debug != null) {
-+ debug.println("Error during token login: " +
-+ p11e.getMessage());
-+ }
-+ throw p11e;
-+ } finally {
-+ token.releaseSession(session);
-+ }
-+ }
- } catch (Exception e) {
- if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
- throw new UnsupportedOperationException
diff --git a/rh2021263-fips_ensure_security_initialised.patch
b/rh2021263-fips_ensure_security_initialised.patch
deleted file mode 100644
index 5aa9ec7..0000000
--- a/rh2021263-fips_ensure_security_initialised.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 06c2decab204fcce5aca2d285953fcac1820b1ae
-Author: Andrew John Hughes <andrew(a)openjdk.org>
-Date: Mon Jan 24 01:23:28 2022 +0000
-
- RH2021263: Make sure java.security.Security is initialised when retrieving
JavaSecuritySystemConfiguratorAccess instance
-
-diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
-index 40ca609e02..0dafe6f59c 100644
---- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
-+++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
-@@ -31,6 +31,7 @@ import java.io.Console;
- import java.io.FileDescriptor;
- import java.io.ObjectInputStream;
- import java.security.ProtectionDomain;
-+import java.security.Security;
- import java.security.Signature;
-
- import java.security.AccessController;
-@@ -255,6 +256,9 @@ public class SharedSecrets {
- }
-
- public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
-+ if (javaSecuritySystemConfiguratorAccess == null) {
-+ unsafe.ensureClassInitialized(Security.class);
-+ }
- return javaSecuritySystemConfiguratorAccess;
- }
- }
diff --git a/rh2021263-fips_missing_native_returns.patch
b/rh2021263-fips_missing_native_returns.patch
deleted file mode 100644
index 90cc44e..0000000
--- a/rh2021263-fips_missing_native_returns.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 7f58a05104138ebdfd3b7b968ed67ea4c8573073
-Author: Fridrich Strba <fstrba(a)suse.com>
-Date: Mon Jan 24 01:10:57 2022 +0000
-
- RH2021263: Return in C code after having generated Java exception
-
-diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
-index 6f4656bfcb..34d0ff0ce9 100644
---- openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
-+++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
-@@ -131,11 +131,13 @@ JNIEXPORT jboolean JNICALL
Java_java_security_SystemConfigurator_getSystemFIPSEn
- dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
- if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
- throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
-+ return JNI_FALSE;
- }
- fips_enabled = fgetc(fe);
- fclose(fe);
- if (fips_enabled == EOF) {
- throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
-+ return JNI_FALSE;
- }
- msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
- " read character is '%c'", fips_enabled);
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch
b/rh2021263-fips_separate_policy_and_fips_init.patch
deleted file mode 100644
index e237841..0000000
--- a/rh2021263-fips_separate_policy_and_fips_init.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-commit aaf92165ad1cbb1c9818eb60178c91293e13b053
-Author: Andrew John Hughes <andrew(a)openjdk.org>
-Date: Mon Jan 24 15:13:14 2022 +0000
-
- RH2021263: Improve Security initialisation, now FIPS support no longer relies on
crypto policy support
-
-diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
-index fa494b680f..b5aa5c749d 100644
---- openjdk.orig/jdk/src/share/classes/java/security/Security.java
-+++ openjdk/jdk/src/share/classes/java/security/Security.java
-@@ -57,10 +57,6 @@ public final class Security {
- private static final Debug sdebug =
- Debug.getInstance("properties");
-
-- /* System property file*/
-- private static final String SYSTEM_PROPERTIES =
-- "/etc/crypto-policies/back-ends/java.config";
--
- /* The java.security properties */
- private static Properties props;
-
-@@ -202,13 +198,6 @@ public final class Security {
- }
- }
-
-- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
-- if (disableSystemProps == null &&
-- "true".equalsIgnoreCase(props.getProperty
-- ("security.useSystemPropertiesFile"))) {
-- loadedProps = loadedProps && SystemConfigurator.configure(props);
-- }
--
- if (!loadedProps) {
- initializeStatic();
- if (sdebug != null) {
-@@ -217,6 +206,28 @@ public final class Security {
- }
- }
-
-+ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
-+ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
-+
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
-+ if (!SystemConfigurator.configureSysProps(props)) {
-+ if (sdebug != null) {
-+ sdebug.println("WARNING: System properties could not be
loaded.");
-+ }
-+ }
-+ }
-+
-+ // FIPS support depends on the contents of java.security so
-+ // ensure it has loaded first
-+ if (loadedProps) {
-+ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
-+ if (sdebug != null) {
-+ if (fipsEnabled) {
-+ sdebug.println("FIPS support enabled.");
-+ } else {
-+ sdebug.println("FIPS support disabled.");
-+ }
-+ }
-+ }
- }
-
- /*
-diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-index d1f677597d..7da65b1d2c 100644
---- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
-+++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
-@@ -76,7 +76,7 @@ final class SystemConfigurator {
- * java.security.disableSystemPropertiesFile property is not set and
- * security.useSystemPropertiesFile is true.
- */
-- static boolean configure(Properties props) {
-+ static boolean configureSysProps(Properties props) {
- boolean loadedProps = false;
-
- try (BufferedInputStream bis =
-@@ -96,11 +96,19 @@ final class SystemConfigurator {
- e.printStackTrace();
- }
- }
-+ return loadedProps;
-+ }
-+
-+ /*
-+ * Invoked at the end of java.security.Security initialisation
-+ * if java.security properties have been loaded
-+ */
-+ static boolean configureFIPS(Properties props) {
-+ boolean loadedProps = false;
-
- try {
- if (enableFips()) {
- if (sdebug != null) { sdebug.println("FIPS mode detected"); }
-- loadedProps = false;
- // Remove all security providers
- Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
- while (i.hasNext()) {
commit a24d0a097b57487f0c52c14dbe70e380173ae7f1
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Jul 15 16:27:38 2022 +0200
Explicitly require crypto-policies during build and runtime for system security
properties
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bd24b9a..ceb4498 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -348,7 +348,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 6
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1278,6 +1278,10 @@ OrderWithRequires: copy-jdk-configs
%endif
# for printing support
Requires: cups-libs
+# for system security properties
+Requires: crypto-policies
+# for FIPS PKCS11 provider
+Requires: nss
# Post requires alternatives to install tool alternatives
Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
@@ -1633,8 +1637,10 @@ BuildRequires: libXinerama-devel
BuildRequires: libXrender-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
-# Requirements for setting up the nss.cfg and FIPS support
+# Requirement for setting up nss.cfg and nss.fips.cfg
BuildRequires: nss-devel >= 3.53
+# Requirement for system security property test
+BuildRequires: crypto-policies
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
@@ -2833,6 +2839,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 14 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-6
+- Explicitly require crypto-policies during build and runtime for system security
properties
+
* Thu Jul 14 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.332.b09-5
- Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal
on that architecture:
-
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
commit 7d96b250183887479d9fd09f61088dc1cb72eee6
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Jul 13 20:07:30 2022 +0200
Replaced binaries and .so files with bash-stubs on i686
in preparation of the removal on that architecture
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e92d8e6..bd24b9a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -348,7 +348,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2282,7 +2282,9 @@ popd
done
%check
-
+%ifarch %{ix86}
+ exit 0
+%endif
# We test debug first as it will give better diagnostics on a crash
for suffix in %{build_loop} ; do
@@ -2405,6 +2407,18 @@ for suffix in %{build_loop} ; do
# Install the jdk
pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
+%ifarch %{ix86}
+ for file in $(find $(pwd) | grep -e "/bin/" -e "\.so$") ; do
+ echo "deprecating $file"
+ echo '#!/bin/bash' > $file
+ echo 'echo "We are going to remove i686 jdk. Please fix your package
accordingly!"' >> $file
+ echo 'echo "See
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs"' >> $file
+ echo 'echo "See
https://pagure.io/fesco/issue/2772"' >>
$file
+ echo 'echo "See
https://bugzilla.redhat.com/show_bug.cgi?id=2083750"' >> $file
+ echo 'exit 1' >> $file
+ done
+%endif
+
# Install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
@@ -2819,6 +2833,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 14 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.332.b09-5
+- Replaced binaries and .so files with bash-stubs on i686 in preparation of the removal
on that architecture:
+-
https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
+
* Thu Jul 14 2022 FeRD (Frank Dana) <ferdnyc(a)gmail.com> - 1:1.8.0.332.b09-4
- Add javaver- and origin-specific javadoc and javadoczip alternatives.
commit 53085a2a7f607e875702328b32bff68f87b90594
Author: FeRD (Frank Dana) <ferdnyc(a)gmail.com>
Date: Wed Jun 8 14:03:04 2022 -0400
Add additional javadoc & javadoczip alternatives
Create additional alternatives linked from the javadocdir, named:
* java-%{origin} / java-%{origin}.zip
* java-%{javaver} / java-%{javaver}.zip
* java-%{javaver}-%{origin} / java-%{javaver}-%{origin}.zip
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e8bf28..e92d8e6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -348,7 +348,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -767,10 +767,19 @@ PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
+ for X in %{origin} %{javaver} ; do
+ key=javadocdir_"$X"
+ alternatives --install %{_javadocdir}/java-"$X" $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
+ done
+
+ key=javadocdir_%{javaver}_%{origin}
+ alternatives --install %{_javadocdir}/java-%{javaver}-%{origin} $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
-key=javadocdir
-alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $PRIORITY --family %{family_noarch}
-%{set_if_needed_alternatives $key %{family_noarch}}
+ key=javadocdir
+ alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
@@ -780,6 +789,9 @@ if [ "x$debug" == "xtrue" ] ; then
fi
post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
%{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadocdir_%{origin} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}/api $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadocdir_%{javaver} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}/api $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadocdir_%{javaver}_%{origin}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}}
exit 0
}
@@ -791,9 +803,20 @@ PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-key=javadoczip
-alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $PRIORITY --family %{family_noarch}
-%{set_if_needed_alternatives $key %{family_noarch}}
+ for X in %{origin} %{javaver} ; do
+ key=javadoczip_"$X"
+ alternatives --install %{_javadocdir}/java-"$X".zip $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
+ done
+
+ key=javadoczip_%{javaver}_%{origin}
+ alternatives --install %{_javadocdir}/java-%{javaver}-%{origin}.zip $key
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
+
+ # Weird legacy filename for backwards-compatibility
+ key=javadoczip
+ alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}.zip $PRIORITY --family %{family_noarch}
+ %{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
@@ -803,6 +826,9 @@ exit 0
fi
post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
%{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadoczip_%{origin} %{_javadocdir}/%{uniquejavadocdir
-- %{?1}}.zip $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadoczip_%{javaver}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}}
+ %{save_and_remove_alternatives javadoczip_%{javaver}_%{origin}
%{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}}
exit 0
}
@@ -1181,6 +1207,9 @@ exit 0
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java
+%ghost %{_javadocdir}/java-%{origin}
+%ghost %{_javadocdir}/java-%{javaver}
+%ghost %{_javadocdir}/java-%{javaver}-%{origin}
%endif
%endif
}
@@ -1193,6 +1222,9 @@ exit 0
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java-zip
+%ghost %{_javadocdir}/java-%{origin}.zip
+%ghost %{_javadocdir}/java-%{javaver}.zip
+%ghost %{_javadocdir}/java-%{javaver}-%{origin}.zip
%endif
%endif
}
@@ -2787,6 +2819,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 14 2022 FeRD (Frank Dana) <ferdnyc(a)gmail.com> - 1:1.8.0.332.b09-4
+- Add javaver- and origin-specific javadoc and javadoczip alternatives.
+
* Fri Jul 01 2022 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.332.b09-3
- Disable copy-jdk-configs for Flatpak builds
- Fix flatpak builds by exempting them from bootstrap
commit 4bb380bddf5112397f60b29d676a5139217f3400
Author: Stephan Bergmann <sbergman(a)redhat.com>
Date: Wed Apr 7 09:15:47 2021 +0200
Disable copy-jdk-configs and bootstrapping for Flatpak builds
There does not appear to be any value in having copy-jdk-config in Flatpak
builds (where a given Flatpak bundles one specific JDK, so no need for a
"Utility script to transfer JDKs configuration files between updates or for
archiving.")
And at least when trying to do a LibreOffice Flatpak build from Fedora 34 RPM
specs (which includes java-11-openjdk among its components), the #!/usr/bin/lua
shebang in copy_jdk_configs.lua would have caused a requirement on
/usr/bin/lua, but which a lua RPM bundled in the Flatpak would not provide (as
it would provide /app/bin/lua instead). And the easiest way to work around that
issue is to just disable the unnecessary copy-jdk-configs.
...after "Temporarily move x86 to use Zero in order to get a working
build":
When building the
if ${run_bootstrap} ; then
branch for suffix='' and loop='-main', the second
buildjdk ${builddir}
$(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
${link_opt}
uses the JDK (`$(pwd)/${bootinstalldir}/images/%{jdkimage}`) from the installjdk
on the previous line. But installjdk does
rm ${imagepath}/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/lib/tzdb.dat
which made that JDK's tzdb.dat link to /app/share/javazi-1.8/tzdb.dat in a
flatpak build (rather than the usual /usr/share/javazi-1.8/tzdb.dat in a non-
flatpak build) which is not present at build-time (but will be present at
runtime in at least the LibreOffice flatpak, which bundles tzdata-java built for
the flatpak /app prefix). So using that JDK's compiler during the build kept
failing due to java.io.FileNotFoundException for its lib/tzdb.dat.
(This was not an issue prior to the recent change, as installjdk's
modification of lib/tzdb.dat used to be done only for the "Final setup
on the main image" at the very end of the build, not during the build
for JDKs that are themselves used later during the build.)
The easiest workaround for this issue appears to be to just not bootstrap_build
in the flatpak case, avoiding the situation that a JDK whose lib/tzdb.dat has
been modified through installjdk is used during the build.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 43b14b4..3e8bf28 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -158,11 +158,15 @@
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+%if 0%{?flatpak}
+%global bootstrap_build false
+%else
%ifarch %{bootstrap_arches}
%global bootstrap_build true
%else
%global bootstrap_build false
%endif
+%endif
%global bootstrap_targets images
%global release_targets images docs-zip
@@ -344,7 +348,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1233,11 +1237,13 @@ Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
+%if ! 0%{?flatpak}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
# considered as regression
Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs
+%endif
# for printing support
Requires: cups-libs
# Post requires alternatives to install tool alternatives
@@ -2781,6 +2787,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jul 01 2022 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.332.b09-3
+- Disable copy-jdk-configs for Flatpak builds
+- Fix flatpak builds by exempting them from bootstrap
+
* Thu Jun 30 2022 Francisco Ferrari Bihurriet <fferrari(a)redhat.com> -
1:1.8.0.332.b09-2
- RH2007331: SecretKey generate/import operations don't add the CKA_SIGN attribute in
FIPS mode
commit 2d530040599a361f021e31501d9d91b870732dd3
Author: Francisco Ferrari Bihurriet <fferrari(a)redhat.com>
Date: Thu Jun 30 14:59:36 2022 -0300
RH2007331: SecretKey generate/import operations don't add the CKA_SIGN attribute
in FIPS mode
Use SunPKCS11 Attributes Configuration to set CKA_SIGN=true on SecretKey
generate/import operations in FIPS mode, see:
https://docs.oracle.com/javase/8/docs/technotes/guides/security/p11guide....
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5098c8b..43b14b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2781,6 +2781,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jun 30 2022 Francisco Ferrari Bihurriet <fferrari(a)redhat.com> -
1:1.8.0.332.b09-2
+- RH2007331: SecretKey generate/import operations don't add the CKA_SIGN attribute in
FIPS mode
+
* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-1
- Update to shenandoah-jdk8u332-b09 (GA)
- Update release notes for 8u332-b09.
diff --git a/nss.fips.cfg.in b/nss.fips.cfg.in
index 1aff153..2d9ec35 100644
--- a/nss.fips.cfg.in
+++ b/nss.fips.cfg.in
@@ -4,3 +4,5 @@ nssSecmodDirectory = sql:/etc/pki/nssdb
nssDbMode = readOnly
nssModule = fips
+attributes(*,CKO_SECRET_KEY,CKK_GENERIC_SECRET)={ CKA_SIGN=true }
+
commit 100440c51eb31742f057c7e2b66df2a1c8d7d3fa
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Apr 20 20:38:06 2022 +0100
Update to shenandoah-jdk8u332-b09 (GA)
Update release notes for 8u332-b09.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index 42c84a9..a973960 100644
--- a/.gitignore
+++ b/.gitignore
@@ -254,3 +254,4 @@
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 6baf506..f9af271 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,22 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u332
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u332.txt
+* Security fixes
+ - JDK-8269938: Enhance XML processing passes redux
+ - JDK-8270504, CVE-2022-21426: Better XPath expression handling
+ - JDK-8272255: Completely handle MIDI files
+ - JDK-8272261: Improve JFR recording file processing
+ - JDK-8272594: Better record of recordings
+ - JDK-8274221: More definite BER encodings
+ - JDK-8275151, CVE-2022-21443: Improved Object Identification
+ - JDK-8277227: Better identification of OIDs
+ - JDK-8277672, CVE-2022-21434: Better invocation handler handling
+ - JDK-8278008, CVE-2022-21476: Improve Santuario processing
+ - JDK-8278356: Improve file creation
+ - JDK-8278449: Improve keychain support
+ - JDK-8278805: Enhance BMP image loading
+ - JDK-8278972, CVE-2022-21496: Improve URL supports
+ - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo
* Other changes
- JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
- JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
@@ -32,7 +48,6 @@ Live versions of these release notes can be found at:
- JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
- JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
- JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
- - JDK-8260632: Build failures after JDK-8253353
- JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
- JDK-8270290: NTLM authentication fails if HEAD request is used
- JDK-8273229: Update OS detection code to recognize Windows Server 2022
@@ -43,7 +58,13 @@ Live versions of these release notes can be found at:
- JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May
2022
- JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
- JDK-8280060: The sun/rmi/server/Activation.java class use Thread.dumpStack()
+ - JDK-8282300: Throws NamingException instead of InvalidNameException after
JDK-8278972
+ - JDK-8282397: createTempFile method of java.io.File is failing when called with suffix
of spaces character
+ - JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException
+ - JDK-8284920: Incorrect Token type causes XPath expression to return empty result
+ - JDK-8284936: Fix Java 7 bootstrap breakage due to use of Arrays.stream
* Shenandoah
+ - JDK-8260632: Build failures after JDK-8253353
- JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
New in release OpenJDK 8u322 (2022-01-18):
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a81960a..5098c8b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision shenandoah-jdk8u332-b06
+%global shenandoah_revision shenandoah-jdk8u332-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -349,7 +349,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2781,6 +2781,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b09-1
+- Update to shenandoah-jdk8u332-b09 (GA)
+- Update release notes for 8u332-b09.
+- Switch to GA mode for final release.
+
* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b06-0.1.ea
- Update to shenandoah-jdk8u332-b06 (EA)
- Update release notes for shenandoah-8u332-b06.
diff --git a/sources b/sources
index 8c3d3bb..4662b4c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz) =
663e0093bf7d5698c168e1609b88179ccd8cfb8b1e8ecc937cdaae287960dedea170bce16572f79046e45fafce38dca6848e7524da06a56d4aa0ad15af271775
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz) =
23d906ecce6864e0bd3ae4c95ac597eb697c1e28356371aafd7aabab5c3a9a9d861c326125e7a45f15340a5a106c1915808fa93b3ff7cdc8b003647a44caf7fd
commit 019748fe88a640f21bc95a68a25c96082b5fe52b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Apr 19 00:39:55 2022 +0100
Update to shenandoah-jdk8u332-b06 (EA)
Update release notes for shenandoah-8u332-b06.
diff --git a/.gitignore b/.gitignore
index 1a13c4c..42c84a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -253,3 +253,4 @@
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 8c34c43..6baf506 100644
--- a/NEWS
+++ b/NEWS
@@ -13,11 +13,16 @@ Live versions of these release notes can be found at:
- JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
- JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
- JDK-8035577: Xerces Update: impl/xpath/regex/RangeToken.java
+ - JDK-8037259: xerces update: xpointer update
+ - JDK-8041523: Xerces Update: Serializer improvements from Xalan
+ - JDK-8141508: java.lang.invoke.LambdaConversionException: Invalid receiver type
- JDK-8162572: Update License Header for all JAXP sources
- JDK-8167014: jdeps: Missing message: warn.skipped.entry
- JDK-8198411: [TEST_BUG] Two java2d tests are unstable in mach5
- JDK-8202822: Add .git to .hgignore
- JDK-8205540: test/hotspot/jtreg/vmTestbase/nsk/jdb/trace/trace001/trace001.java fails
with Debuggee did not exit after 15 <cont> commands
+ - JDK-8209178: Proxied HttpsURLConnection doesn't send BODY when retrying POST
request
+ - JDK-8210283: Support git as an SCM alternative in the build
- JDK-8218682: [TEST_BUG] DashOffset fails in mach5
- JDK-8225690: Multiple AttachListener threads can be created
- JDK-8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is
134"
@@ -27,10 +32,17 @@ Live versions of these release notes can be found at:
- JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
- JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
- JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
+ - JDK-8260632: Build failures after JDK-8253353
- JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
- JDK-8270290: NTLM authentication fails if HEAD request is used
+ - JDK-8273229: Update OS detection code to recognize Windows Server 2022
+ - JDK-8273341: Update Siphash to version 1.0
+ - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated
+ - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake
- JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
+ - JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May
2022
- JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
+ - JDK-8280060: The sun/rmi/server/Activation.java class use Thread.dumpStack()
* Shenandoah
- JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bcb79b4..a81960a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision shenandoah-jdk8u332-b01
+%global shenandoah_revision shenandoah-jdk8u332-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2781,9 +2781,13 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b06-0.1.ea
+- Update to shenandoah-jdk8u332-b06 (EA)
+- Update release notes for shenandoah-8u332-b06.
+
* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b01-0.1.ea
- Update to shenandoah-jdk8u332-b01 (EA)
-- Update release notes for 8u332-b01.
+- Update release notes for shenandoah-8u332-b01.
- Switch to EA mode.
* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
diff --git a/sources b/sources
index 71b554d..8c3d3bb 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz) =
55b8968e78631acdf14a594d83f6e357e00114dac9f6330a80116a909b402a9f879abb9f1cd8b576fb627a50b01db22be19a1e24ee4078e97c8ecc84428eb184
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz) =
663e0093bf7d5698c168e1609b88179ccd8cfb8b1e8ecc937cdaae287960dedea170bce16572f79046e45fafce38dca6848e7524da06a56d4aa0ad15af271775
commit cb59f552f45f912f6949702632cd35daa82bfb7a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Apr 18 01:19:19 2022 +0100
Update to shenandoah-jdk8u332-b01 (EA)
Update release notes for 8u332-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index c3d10c5..1a13c4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -252,3 +252,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index e911b13..8c34c43 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,37 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u332 (2022-04-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u332
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u332.txt
+
+* Other changes
+ - JDK-8033980: Xerces Update: datatype XMLGregorianCalendarImpl and DurationImpl
+ - JDK-8035437: Xerces Update: xml/serialize/DOMSerializerImpl
+ - JDK-8035577: Xerces Update: impl/xpath/regex/RangeToken.java
+ - JDK-8162572: Update License Header for all JAXP sources
+ - JDK-8167014: jdeps: Missing message: warn.skipped.entry
+ - JDK-8198411: [TEST_BUG] Two java2d tests are unstable in mach5
+ - JDK-8202822: Add .git to .hgignore
+ - JDK-8205540: test/hotspot/jtreg/vmTestbase/nsk/jdb/trace/trace001/trace001.java fails
with Debuggee did not exit after 15 <cont> commands
+ - JDK-8218682: [TEST_BUG] DashOffset fails in mach5
+ - JDK-8225690: Multiple AttachListener threads can be created
+ - JDK-8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is
134"
+ - JDK-8227815: Minimal VM: set_state is not a member of AttachListener
+ - JDK-8240633: Memory leaks in the implementations of FileChooserUI
+ - JDK-8241768: git needs .gitattributes
+ - JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big
for insn
+ - JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens
+ - JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node
+ - JDK-8266749: AArch64: Backtracing broken on PAC enabled systems
+ - JDK-8270290: NTLM authentication fails if HEAD request is used
+ - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
+ - JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal
handler
+* Shenandoah
+ - JDK-8282458: Update .jcheck/conf file for sh-jdk8u move to git
+
New in release OpenJDK 8u322 (2022-01-18):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9177d7d..bcb79b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
+%global shenandoah_revision shenandoah-jdk8u332-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -344,12 +344,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 7
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2781,6 +2781,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Apr 18 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.332.b01-0.1.ea
+- Update to shenandoah-jdk8u332-b01 (EA)
+- Update release notes for 8u332-b01.
+- Switch to EA mode.
+
* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
- Reinstate JIT builds on x86_32.
- Add JDK-8282231 to fix missing CALL effects on x86_32.
diff --git a/sources b/sources
index 35c822f..71b554d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) =
0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
+SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz) =
55b8968e78631acdf14a594d83f6e357e00114dac9f6330a80116a909b402a9f879abb9f1cd8b576fb627a50b01db22be19a1e24ee4078e97c8ecc84428eb184
commit 7e5331a512b10f543bdc371bf13db8cee6ec1f77
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 19:50:19 2022 +0000
Reinstate JIT builds on x86_32.
Add JDK-8282231 to fix missing CALL effects on x86_32.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5efbb8e..9177d7d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -100,9 +100,9 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
+%global jit_arches %{aarch64} %{ix86} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
-%global zero_arches %{arm} %{ix86} ppc s390 s390x
+%global zero_arches %{arm} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 7
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1524,6 +1524,8 @@ Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
Patch581: jdk8257794-remove_broken_assert.patch
+# JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
+Patch582: jdk8282231-x86_32-missing_call_effects.patch
#############################################
#
@@ -1959,6 +1961,7 @@ sh %{SOURCE12}
%patch112
%patch580
%patch581
+%patch582
# RPM-only fixes
%patch539
@@ -2778,6 +2781,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Mar 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-7
+- Reinstate JIT builds on x86_32.
+- Add JDK-8282231 to fix missing CALL effects on x86_32.
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
- Storing and restoring alterntives during update manually
- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
diff --git a/jdk8282231-x86_32-missing_call_effects.patch
b/jdk8282231-x86_32-missing_call_effects.patch
new file mode 100644
index 0000000..ab341b6
--- /dev/null
+++ b/jdk8282231-x86_32-missing_call_effects.patch
@@ -0,0 +1,35 @@
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+index c8f4ee1613..cc0f4eef14 100644
+--- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
++++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+@@ -1,5 +1,5 @@
+ //
+-// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
++// Copyright (c) 1997, 2022, 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
+@@ -7665,9 +7665,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg
cr) %{
+ %}
+
+ // Divide Register Long
+-instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx,
eBXRegI bx ) %{
++instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
+ match(Set dst (DivL src1 src2));
+- effect( KILL cr, KILL cx, KILL bx );
++ effect(CALL);
+ ins_cost(10000);
+ format %{ "PUSH $src1.hi\n\t"
+ "PUSH $src1.lo\n\t"
+@@ -7713,9 +7713,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg
cr) %{
+ %}
+
+ // Remainder Register Long
+-instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx,
eBXRegI bx ) %{
++instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
+ match(Set dst (ModL src1 src2));
+- effect( KILL cr, KILL cx, KILL bx );
++ effect(CALL);
+ ins_cost(10000);
+ format %{ "PUSH $src1.hi\n\t"
+ "PUSH $src1.lo\n\t"
commit edb63206cdde09841e8be821f7393b649aaf07eb
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 11:47:05 2022 +0100
Storing and restoring alterntives during update manually
Fixing:
Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives and
select (as auto) system JDK/JRE
The move of alternatives creation to posttrans to fix:
Bug 1200302 - dnf reinstall breaks alternatives
Had caused the alternatives to be removed, and then created again,
instead of being added, and then removing the old, and thus persisting
the selection in family
Thus this fix, is storing the family of manually selected master, and if
stored, then it is restoring the family of the master
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 587eee8..5efbb8e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 6
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -446,6 +446,50 @@
# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+%define save_alternatives() %{expand:
+ # warning! alternatives are localised!
+ # LANG=cs_CZ.UTF-8 alternatives --display java | head
+ # LANG=en_US.UTF-8 alternatives --display java | head
+ function nonLocalisedAlternativesDisplayOfMaster() {
+ LANG=en_US.UTF-8 alternatives --display "$MASTER"
+ }
+ function headOfAbove() {
+ nonLocalisedAlternativesDisplayOfMaster | head -n $1
+ }
+ MASTER="%{?1}"
+ LOCAL_LINK="%{?2}"
+ FAMILY="%{?3}"
+ rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
+ if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then
+ if headOfAbove 1 | grep -q manual ; then
+ if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then
+ headOfAbove 2 >
%{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
+ fi
+ fi
+ fi
+}
+
+%define save_and_remove_alternatives() %{expand:
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ upgrade1_uninstal0=%{?3}
+ if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will
cause persistence between uninstall
+ %{save_alternatives %{?1} %{?2} %{?4}}
+ fi
+ alternatives --remove "%{?1}" "%{?2}"
+}
+
+%define set_if_needed_alternatives() %{expand:
+ MASTER="%{?1}"
+ FAMILY="%{?2}"
+
ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY"
+ if [ -e "$ALTERNATIVES_FILE" ] ; then
+ rm "$ALTERNATIVES_FILE"
+ alternatives --set $MASTER $FAMILY
+ fi
+}
+
%define post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -454,14 +498,18 @@ exit 0
}
%define alternatives_java_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=java
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
+ --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -499,11 +547,17 @@ alternatives \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
+ key=jre_"$X"
+ alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}}
$PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
+key=jre_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_headless() %{expand:
@@ -536,10 +590,14 @@ exit 0
%define postun_headless() %{expand:
- alternatives --remove java %{jrebindir -- %{?1}}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state
%{family}}
+ %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
$post_state %{family}}
}
%define posttrans_script() %{expand:
@@ -548,14 +606,18 @@ exit 0
%define alternatives_javac_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
+key=javac
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
+ --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -649,12 +711,17 @@ alternatives \\
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+%{set_if_needed_alternatives $key %{family}}
+
for X in %{origin} %{javaver} ; do
- alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
+ key=java_sdk_"$X"
+ alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+ %{set_if_needed_alternatives $key %{family}}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
+key=java_sdk_%{javaver}_%{origin}
+alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir --
%{?1}} $PRIORITY --family %{family}
+%{set_if_needed_alternatives $key %{family}}
}
%define post_devel() %{expand:
@@ -665,10 +732,14 @@ exit 0
}
%define postun_devel() %{expand:
- alternatives --remove javac %{sdkbindir -- %{?1}}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state
%{family}}
+ %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
$post_state %{family}}
+ %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir --
%{?1}} $post_state %{family}}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -685,36 +756,49 @@ exit 0
}
%define alternatives_javadoc_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{family_noarch}
+key=javadocdir
+alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $PRIORITY --family %{family_noarch}
+%{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
%define postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api $post_state %{family_noarch}}
exit 0
}
%define alternatives_javadoczip_install() %{expand:
+if [ "x$debug" == "xtrue" ] ; then
+ set -x
+fi
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
-
-alternatives \\
- --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{family_noarch}
+key=javadoczip
+alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $PRIORITY --family %{family_noarch}
+%{set_if_needed_alternatives $key %{family_noarch}}
exit 0
}
%define postun_javadoc_zip() %{expand:
- alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+ if [ "x$debug" == "xtrue" ] ; then
+ set -x
+ fi
+ post_state=$1 # from postun,
https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_sy...
+ %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip $post_state %{family_noarch}}
exit 0
}
@@ -2694,6 +2778,17 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-6
+- Storing and restoring alterntives during update manually
+- Fixing Bug 2001567 - update of JDK/JRE is removing its manually selected alterantives
and select (as auto) system JDK/JRE
+-- The move of alternatives creation to posttrans to fix:
+-- Bug 1200302 - dnf reinstall breaks alternatives
+-- Had caused the alternatives to be removed, and then created again,
+-- instead of being added, and then removing the old, and thus persisting
+-- the selection in family
+-- Thus this fix, is storing the family of manually selected master, and if
+-- stored, then it is restoring the family of the master
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
- Family extracted to globals
commit 0da973f5a714bef5d665c3cc22869dad44a3a3bc
Author: Jiri <jvanek(a)redhat.com>
Date: Sat Feb 26 20:50:05 2022 +0100
family extracted to globals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8bb6504..587eee8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -426,6 +426,9 @@
%global alternatives_requires %{_sbindir}/alternatives
%endif
+%global family %{name}.%{_arch}
+%global family_noarch %{name}
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific sub-dir,
@@ -458,7 +461,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{family}
\\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
@@ -497,10 +500,10 @@ alternatives \\
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family}
done
-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family}
}
%define post_headless() %{expand:
@@ -552,7 +555,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{family} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
--slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
@@ -648,10 +651,10 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{family}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family}
}
%define post_devel() %{expand:
@@ -689,7 +692,7 @@ fi
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -706,7 +709,7 @@ fi
alternatives \\
--install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{family_noarch}
exit 0
}
@@ -2691,6 +2694,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-5
+- Family extracted to globals
+
* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
- javadoc-zip got its own provides next to plain javadoc ones
commit e88c69368c88f3a4a595433f1b9a21d1963c2054
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Feb 27 12:01:51 2022 +0100
Providing proper provides for javadoc-zip subpk
Before this patch, the java-17-openjdk-javadoc-zip was not existing, and
instead of that, javadoc was provided by both
Factm, that both subpkgs should provide javadoc, should be kept
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9885a10..8bb6504 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1217,10 +1217,10 @@ Requires(post): %{alternatives_requires}
Requires(postun): %{alternatives_requires}
# Standard JPackage javadoc provides
-Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
-Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-javadoc%{?1}%{?2} = %{epoch}:%{version}-%{release}
%endif
}
@@ -1705,7 +1705,8 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} -zip}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc
The %{origin_nice} %{majorver} API documentation.
@@ -1718,7 +1719,7 @@ Requires: javapackages-filesystem
Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
-%{java_javadoc_rpo %{nil}}
+%{java_javadoc_rpo -- %{nil} %{nil}}
%description javadoc-zip
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
@@ -2690,6 +2691,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat Feb 26 2022 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.322.b06-4
+- javadoc-zip got its own provides next to plain javadoc ones
+
* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
commit f2e995182a63de4467a5361b3516fd4e42bb74ef
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 23 17:22:05 2022 +0000
Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7e6f114..9885a10 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1357,6 +1357,7 @@ Patch1011: rh1991003-enable_fips_keys_import.patch
# RH2021263: Resolve outstanding FIPS issues
Patch1014: rh2021263-fips_ensure_security_initialised.patch
Patch1015: rh2021263-fips_missing_native_returns.patch
+Patch1016: rh2021263-fips_separate_policy_and_fips_init.patch
#############################################
#
@@ -1886,6 +1887,7 @@ sh %{SOURCE12}
%patch1011
%patch1014
%patch1015
+%patch1016
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2688,6 +2690,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Feb 22 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-3
+- Separate crypto policy initialisation from FIPS initialisation, now they are no longer
interdependent
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
- Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/rh2021263-fips_separate_policy_and_fips_init.patch
b/rh2021263-fips_separate_policy_and_fips_init.patch
new file mode 100644
index 0000000..e237841
--- /dev/null
+++ b/rh2021263-fips_separate_policy_and_fips_init.patch
@@ -0,0 +1,98 @@
+commit aaf92165ad1cbb1c9818eb60178c91293e13b053
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 15:13:14 2022 +0000
+
+ RH2021263: Improve Security initialisation, now FIPS support no longer relies on
crypto policy support
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+index fa494b680f..b5aa5c749d 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -57,10 +57,6 @@ public final class Security {
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
+- /* System property file*/
+- private static final String SYSTEM_PROPERTIES =
+- "/etc/crypto-policies/back-ends/java.config";
+-
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -202,13 +198,6 @@ public final class Security {
+ }
+ }
+
+- String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
+- if (disableSystemProps == null &&
+- "true".equalsIgnoreCase(props.getProperty
+- ("security.useSystemPropertiesFile"))) {
+- loadedProps = loadedProps && SystemConfigurator.configure(props);
+- }
+-
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
+@@ -217,6 +206,28 @@ public final class Security {
+ }
+ }
+
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
++ if ((disableSystemProps == null ||
"false".equalsIgnoreCase(disableSystemProps)) &&
++
"true".equalsIgnoreCase(props.getProperty("security.useSystemPropertiesFile")))
{
++ if (!SystemConfigurator.configureSysProps(props)) {
++ if (sdebug != null) {
++ sdebug.println("WARNING: System properties could not be
loaded.");
++ }
++ }
++ }
++
++ // FIPS support depends on the contents of java.security so
++ // ensure it has loaded first
++ if (loadedProps) {
++ boolean fipsEnabled = SystemConfigurator.configureFIPS(props);
++ if (sdebug != null) {
++ if (fipsEnabled) {
++ sdebug.println("FIPS support enabled.");
++ } else {
++ sdebug.println("FIPS support disabled.");
++ }
++ }
++ }
+ }
+
+ /*
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+index d1f677597d..7da65b1d2c 100644
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -76,7 +76,7 @@ final class SystemConfigurator {
+ * java.security.disableSystemPropertiesFile property is not set and
+ * security.useSystemPropertiesFile is true.
+ */
+- static boolean configure(Properties props) {
++ static boolean configureSysProps(Properties props) {
+ boolean loadedProps = false;
+
+ try (BufferedInputStream bis =
+@@ -96,11 +96,19 @@ final class SystemConfigurator {
+ e.printStackTrace();
+ }
+ }
++ return loadedProps;
++ }
++
++ /*
++ * Invoked at the end of java.security.Security initialisation
++ * if java.security properties have been loaded
++ */
++ static boolean configureFIPS(Properties props) {
++ boolean loadedProps = false;
+
+ try {
+ if (enableFips()) {
+ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
+- loadedProps = false;
+ // Remove all security providers
+ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
+ while (i.hasNext()) {
commit 6d412ee58b7019db098546df7e7b53f1f331ec93
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 02:36:10 2022 +0000
Fix FIPS issues in native code and with initialisation of java.security.Security
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c39eaaa..7e6f114 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1354,6 +1354,9 @@ Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
Patch1008: rh1996182-login_to_nss_software_token.patch
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
Patch1011: rh1991003-enable_fips_keys_import.patch
+# RH2021263: Resolve outstanding FIPS issues
+Patch1014: rh2021263-fips_ensure_security_initialised.patch
+Patch1015: rh2021263-fips_missing_native_returns.patch
#############################################
#
@@ -1881,6 +1884,8 @@ sh %{SOURCE12}
%patch1007
%patch1008
%patch1011
+%patch1014
+%patch1015
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2683,6 +2688,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-2
+- Fix FIPS issues in native code and with initialisation of java.security.Security
+
* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
- Update release notes for 8u322-b06.
diff --git a/rh2021263-fips_ensure_security_initialised.patch
b/rh2021263-fips_ensure_security_initialised.patch
new file mode 100644
index 0000000..5aa9ec7
--- /dev/null
+++ b/rh2021263-fips_ensure_security_initialised.patch
@@ -0,0 +1,28 @@
+commit 06c2decab204fcce5aca2d285953fcac1820b1ae
+Author: Andrew John Hughes <andrew(a)openjdk.org>
+Date: Mon Jan 24 01:23:28 2022 +0000
+
+ RH2021263: Make sure java.security.Security is initialised when retrieving
JavaSecuritySystemConfiguratorAccess instance
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+index 40ca609e02..0dafe6f59c 100644
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -31,6 +31,7 @@ import java.io.Console;
+ import java.io.FileDescriptor;
+ import java.io.ObjectInputStream;
+ import java.security.ProtectionDomain;
++import java.security.Security;
+ import java.security.Signature;
+
+ import java.security.AccessController;
+@@ -255,6 +256,9 @@ public class SharedSecrets {
+ }
+
+ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
++ if (javaSecuritySystemConfiguratorAccess == null) {
++ unsafe.ensureClassInitialized(Security.class);
++ }
+ return javaSecuritySystemConfiguratorAccess;
+ }
+ }
diff --git a/rh2021263-fips_missing_native_returns.patch
b/rh2021263-fips_missing_native_returns.patch
new file mode 100644
index 0000000..90cc44e
--- /dev/null
+++ b/rh2021263-fips_missing_native_returns.patch
@@ -0,0 +1,24 @@
+commit 7f58a05104138ebdfd3b7b968ed67ea4c8573073
+Author: Fridrich Strba <fstrba(a)suse.com>
+Date: Mon Jan 24 01:10:57 2022 +0000
+
+ RH2021263: Return in C code after having generated Java exception
+
+diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
+index 6f4656bfcb..34d0ff0ce9 100644
+--- openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
++++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
+@@ -131,11 +131,13 @@ JNIEXPORT jboolean JNICALL
Java_java_security_SystemConfigurator_getSystemFIPSEn
+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ fips_enabled = fgetc(fe);
+ fclose(fe);
+ if (fips_enabled == EOF) {
+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ return JNI_FALSE;
+ }
+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
+ " read character is '%c'", fips_enabled);
commit 050fecd883ec846a10507fa7b121b722f6ba0114
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Feb 16 00:05:22 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b06 (EA)
Update release notes for 8u322-b06.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index a986941..c3d10c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -251,3 +251,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index b8a1f92..e911b13 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,33 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u322
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+* Security fixes
+ - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
+ - JDK-8268488: More valuable DerValues
+ - JDK-8268494: Better inlining of inlined interfaces
+ - JDK-8268512: More content for ContentInfo
+ - JDK-8268795: Enhance digests of Jar files
+ - JDK-8268801: Improve PKCS attribute handling
+ - JDK-8268813, CVE-2022-21283: Better String matching
+ - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
+ - JDK-8269944: Better HTTP transport redux
+ - JDK-8270392, CVE-2022-21293: Improve String constructions
+ - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
+ - JDK-8270492, CVE-2022-21282: Better resolution of URIs
+ - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
+ - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
+ - JDK-8271962: Better TrueType font loading
+ - JDK-8271968: Better canonical naming
+ - JDK-8271987: Manifest improved manifest entries
+ - JDK-8272014, CVE-2022-21305: Better array indexing
+ - JDK-8272026, CVE-2022-21340: Verify Jar Verification
+ - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
+ - JDK-8272272: Enhance jcmd communication
+ - JDK-8272462: Enhance image handling
+ - JDK-8273290: Enhance sound handling
+ - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering
+ - JDK-8273756, CVE-2022-21360: Enhance BMP image support
+ - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
* Other changes
- JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
- JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java
fails NPE since 7u25b03
@@ -56,8 +83,10 @@ Live versions of these release notes can be found at:
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
- JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
+ - JDK-8273308: PatternMatchTest.java fails on CI
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
- JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8273968: JCK javax_xml tests fail in CI
- JDK-8274407: (tz) Update Timezone Data to 2021c
- JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
- JDK-8274468: TimeZoneTest.java fails with tzdata2021b
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f65ab51..c39eaaa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -329,7 +329,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project openjdk
%global shenandoah_repo shenandoah-jdk8u
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -349,7 +349,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2683,6 +2683,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Feb 16 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b06-1
+- Update to aarch64-shenandoah-jdk8u322-b06 (EA)
+- Update release notes for 8u322-b06.
+- Switch to GA mode for final release.
+
* Tue Feb 15 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b05 (EA)
- Update release notes for 8u322-b05.
diff --git a/sources b/sources
index 12cd6db..35c822f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz) =
5026d6bd2e6d052fa88fb27d7d9fca2f50c5cc66ca3a9e52f8d3903ec4c738c0c815c20dfd5dfd44ab0ec48d264a36c67f35c302c1eee06a1b2277d842035221
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b06-4curve.tar.xz) =
0f2af8cacb1a4acdca7c1b2d5cc1e0d27f9abf8e05ccf7e8384074ac124132012b15e36abc31b498f746d6f5295530f535a9d9d85a3e45b387728b4ce726ccc7
commit c867f608e3471506aea129a45d31aa10d815b389
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 15 16:45:42 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b05 (EA)
Update release notes for 8u322-b05.
Require tzdata 2021e as of JDK-8275766.
Update tarball generation script to use git following shenandoah-jdk8u's move to
github
diff --git a/.gitignore b/.gitignore
index f1536da..a986941 100644
--- a/.gitignore
+++ b/.gitignore
@@ -250,3 +250,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
+/openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 9773926..b8a1f92 100644
--- a/NEWS
+++ b/NEWS
@@ -63,6 +63,9 @@ Live versions of these release notes can be found at:
- JDK-8274468: TimeZoneTest.java fails with tzdata2021b
- JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
- JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
+ - JDK-8275766: (tz) Update Timezone Data to 2021e
+ - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
+ - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
Notes on individual issues:
===========================
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6f0756..61aad1f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -7,9 +7,9 @@
# If you want to use a local copy of patch PR3822, set the path to it in the PR3822
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
-# PROJECT_NAME=jdk8u OR aarch64-port
-# REPO_NAME=jdk8u60 OR jdk8u60
-# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should
do the job there
+# PROJECT_NAME=openjdk
+# REPO_NAME=shenandoah-jdk8u
+# VERSION=HEAD
#
# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
@@ -40,7 +40,7 @@ fi
set -e
-OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# jdk is last for its size
REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
@@ -99,7 +99,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
- REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$REPOS" = "x" ] ; then
@@ -123,15 +123,9 @@ mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
-hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+git clone -b ${VERSION} ${REPO_ROOT} openjdk
pushd openjdk
-for subrepo in ${REPOS}
-do
- echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
-done
-
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
if [ -d langtools ] ; then
echo "Removing langtools test case with non-Free license"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9dc6a8a..f65ab51 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -327,9 +327,9 @@
%endif
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
-%global shenandoah_project aarch64-port
-%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b04
+%global shenandoah_project openjdk
+%global shenandoah_repo shenandoah-jdk8u
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -344,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1141,8 +1141,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021c required as of JDK-8274407 in January 2022 CPU
-Requires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+Requires: tzdata-java >= 2021e
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1514,8 +1514,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >=
1.7.0.151-2.6.11.3
%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
-# 2021c required as of JDK-8274407 in January 2022 CPU
-BuildRequires: tzdata-java >= 2021c
+# 2021e required as of JDK-8275766 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021e
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2683,6 +2683,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Feb 15 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b05 (EA)
+- Update release notes for 8u322-b05.
+- Require tzdata 2021e as of JDK-8275766.
+- Update tarball generation script to use git following shenandoah-jdk8u's move to
github
+
* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b04-0.3.ea
- Re-enable gdb backtrace check.
diff --git a/sources b/sources
index eb1f71f..12cd6db 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz) =
ebc3cceb40f7ca567fd9fe751ba9762ad50ac474f63da5e2123cf268683db10132ffb09b6f6a99b3379c021b4fcc3b04a82bc81c2e63c8d4da0fdcf58d995322
+SHA512 (openjdk-shenandoah-jdk8u-aarch64-shenandoah-jdk8u322-b05-4curve.tar.xz) =
5026d6bd2e6d052fa88fb27d7d9fca2f50c5cc66ca3a9e52f8d3903ec4c738c0c815c20dfd5dfd44ab0ec48d264a36c67f35c302c1eee06a1b2277d842035221
commit d3b17054c227146584b900828461d6c414e1aad4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 8 15:48:38 2022 +0000
Re-enable gdb backtrace check.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 970234f..9dc6a8a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -115,15 +115,10 @@
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-# Set of architectures where we verify backtraces with gdb (ideally all)
-# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
-# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
-# A problem internal to GDB has been detected,
-# further debugging may prove unreliable.
-# See
https://bugzilla.redhat.com/show_bug.cgi?id=2041970
-%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
+# Set of architectures where we verify backtraces with gdb
+%global gdb_arches %{jit_arches} %{zero_arches}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -349,7 +344,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2688,6 +2683,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Feb 07 2022 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.322.b04-0.3.ea
+- Re-enable gdb backtrace check.
+
* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
- Temporarily move x86 to use Zero in order to get a working build
- Introduce architecture restriction logic for the gdb test. (RH2041970)
commit 2988ce90ffc176c047dcb63bb70e4c8ca1ec6d88
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jan 20 23:09:54 2022 +0000
Temporarily move x86 to use Zero in order to get a working build
Introduce architecture restriction logic for the gdb test.
Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC
build (JDK-8281098)
Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass
-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
Refactor build functions so we can build just HotSpot without any attempt at
installation.
Explicitly list JIT architectures rather than relying on those with slowdebug builds
Disable the serviceability agent on Zero architectures even when the architecture
itself is supported
Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
Resolves: rhbz#2045726
Related: rhbz#2051302
Related: rhbz#2041970
diff --git a/java-1.8.0-openjdk-gcc11.patch b/java-1.8.0-openjdk-gcc11.patch
deleted file mode 100644
index 2d0820d..0000000
--- a/java-1.8.0-openjdk-gcc11.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
b/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-index 31955ff7..6dcd90ac 100644
---- openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
-@@ -4564,7 +4564,7 @@ char *ADLParser::get_paren_expr(const char *description, bool
include_location)
- // string(still inside the file buffer). Returns a pointer to the string or
- // NULL if some other token is found instead.
- char *ADLParser::get_ident_common(bool do_preproc) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
-
-@@ -4762,7 +4762,7 @@ char *ADLParser::get_unique_ident(FormDict& dict, const char*
nameDescription){
- // invokes a parse_err if the next token is not an integer.
- // This routine does not leave the integer null-terminated.
- int ADLParser::get_int(void) {
-- register char c;
-+ char c;
- char *start; // Pointer to start of token
- char *end; // Pointer to end of token
- int result; // Storage for integer result
-diff --git a/openjdk/hotspot/src/share/vm/adlc/arena.cpp
b/openjdk/hotspot/src/share/vm/adlc/arena.cpp
-index d7e4fc6e..406187ae 100644
---- openjdk/hotspot/src/share/vm/adlc/arena.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/arena.cpp
-@@ -79,7 +79,7 @@ Arena::Arena( Arena *a )
- // Total of all Chunks in arena
- size_t Arena::used() const {
- size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk
-- register Chunk *k = _first;
-+ Chunk *k = _first;
- while( k != _chunk) { // Whilst have Chunks in a row
- sum += k->_len; // Total size of this Chunk
- k = k->_next; // Bump along to next Chunk
-@@ -93,7 +93,7 @@ void* Arena::grow( size_t x ) {
- // Get minimal required size. Either real big, or even bigger for giant objs
- size_t len = max(x, Chunk::size);
-
-- register Chunk *k = _chunk; // Get filled-up chunk address
-+ Chunk *k = _chunk; // Get filled-up chunk address
- _chunk = new (len) Chunk(len);
-
- if( k ) k->_next = _chunk; // Append new chunk to end of linked list
-diff --git a/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
b/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-index f341a2b6..2dc60b25 100644
---- openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/dict2.cpp
-@@ -283,9 +283,9 @@ void Dict::print(PrintKeyOrValue print_key, PrintKeyOrValue
print_value) {
- // limited to MAXID characters in length. Experimental evidence on 150K of
- // C text shows excellent spreading of values for any size hash table.
- int hashstr(const void *t) {
-- register char c, k = 0;
-- register int sum = 0;
-- register const char *s = (const char *)t;
-+ char c, k = 0;
-+ int sum = 0;
-+ const char *s = (const char *)t;
-
- while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters
till nul
- c = (char) ((c << 1) + 1); // Characters are always odd!
-diff --git a/openjdk/hotspot/src/share/vm/adlc/main.cpp
b/openjdk/hotspot/src/share/vm/adlc/main.cpp
-index 52044f12..40bcda74 100644
---- openjdk/hotspot/src/share/vm/adlc/main.cpp
-+++ openjdk/hotspot/src/share/vm/adlc/main.cpp
-@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
-
- // Read command line arguments and file names
- for( int i = 1; i < argc; i++ ) { // For all arguments
-- register char *s = argv[i]; // Get option/filename
-+ char *s = argv[i]; // Get option/filename
-
- if( *s++ == '-' ) { // It's a flag? (not a filename)
- if( !*s ) { // Stand-alone `-' means stdin
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 43b33d4..970234f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -24,6 +24,15 @@
%bcond_without release
# Remove build artifacts by default
%bcond_with artifacts
+# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
+%bcond_without fresh_libjvm
+
+# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
+%if %{with fresh_libjvm}
+%global build_hotspot_first 1
+%else
+%global build_hotspot_first 0
+%endif
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -91,9 +100,9 @@
# Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
-%global jit_arches %{debug_arches}
+%global jit_arches %{aarch64} %{power64} sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches)
-%global zero_arches %{arm} ppc s390 s390x
+%global zero_arches %{arm} %{ix86} ppc s390 s390x
# Set of architectures which run a full bootstrap cycle
%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
@@ -104,8 +113,15 @@
# See
https://bugzilla.redhat.com/show_bug.cgi?id=513605
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+# Set of architectures which support JFR
%global jfr_arches %{jit_arches}
-
+# Set of architectures where we verify backtraces with gdb (ideally all)
+# Temporarily disable check on x86, x86_64, ppc64le and s390x as gdb crashes
+# ../../gdb/objfiles.h:510: internal-error: sect_index_data not initialized
+# A problem internal to GDB has been detected,
+# further debugging may prove unreliable.
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=2041970
+%global gdb_arches sparcv9 sparc64 %{aarch64} %{arm} ppc s390
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
@@ -143,7 +159,7 @@
%global fastdebug_build %{nil}
%endif
-# If you disable both builds, then the build fails
+# If you disable all builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
@@ -156,6 +172,18 @@
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
+# Target to use to just build HotSpot
+%global hotspot_target hotspot
+
+# JDK to use for bootstrapping
+# Use OpenJDK 7 where available (on RHEL) to avoid
+# having to use the rhel-7.x-java-unsafe-candidate hack
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+%global buildjdkver 1.7.0
+%else
+%global buildjdkver 1.8.0
+%endif
+%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Disable LTO as this causes build failures at the moment.
# See RHBZ#1861401
@@ -321,7 +349,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -814,8 +842,10 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
%endif
+%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
@@ -952,8 +982,10 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
%ifarch %{sa_arches}
+%ifnarch %{zero_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
%endif
+%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
@@ -1215,7 +1247,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1358,8 +1390,8 @@ Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
-# Similar for GCC 11
-Patch112: %{name}-gcc11.patch
+# JDK-8281098, PR3836: Extra compiler flags not passed to adlc build
+Patch112: jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
#############################################
#
@@ -1404,6 +1436,8 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
# JDK-8195607, PR3776, RH1760437: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed
with "NSS initialization failed" on NSS 3.34.1
Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
+# JDK-8257794: Zero: assert(istate->_stack_limit ==
istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32
+Patch581: jdk8257794-remove_broken_assert.patch
#############################################
#
@@ -1479,16 +1513,10 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
BuildRequires: unzip
-# Use OpenJDK 7 where available (on RHEL) to avoid
-# having to use the rhel-7.x-java-unsafe-candidate hack
-%if ! 0%{?fedora} && 0%{?rhel} <= 7
# Require a boot JDK which doesn't fail due to RH1482244
-BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
-%else
-BuildRequires: java-1.8.0-openjdk-devel
-%endif
+BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3
# Zero-assembler build requirement
-%ifnarch %{jit_arches}
+%ifarch %{zero_arches}
BuildRequires: libffi-devel
%endif
# 2021c required as of JDK-8274407 in January 2022 CPU
@@ -1843,6 +1871,7 @@ sh %{SOURCE12}
%patch111
%patch112
%patch580
+%patch581
# RPM-only fixes
%patch539
@@ -1953,10 +1982,9 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
- local installdir=${2}
- local buildjdk=${3}
- local maketargets=${4}
- local debuglevel=${5}
+ local buildjdk=${2}
+ local maketargets="${3}"
+ local debuglevel=${4}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
@@ -1966,7 +1994,7 @@ function buildjdk() {
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
- mkdir -p ${outputdir} ${installdir}
+ mkdir -p ${outputdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
@@ -1975,7 +2003,7 @@ function buildjdk() {
%else
--disable-jfr \
%endif
-%ifnarch %{jit_arches}
+%ifarch %{zero_arches}
--with-jvm-variants=zero \
%endif
--with-native-debug-symbols=internal \
@@ -2011,24 +2039,16 @@ function buildjdk() {
SCTP_WERROR= \
${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
- # the build (erroneously) removes read permissions from some jars
- # this is a regression in OpenJDK 7 (our compiler):
- #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
- find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
- chmod ugo+r images/%{jdkimage}/lib/ct.sym
-
- # remove redundant *diz and *debuginfo files
- find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
- find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
-
- # Build screws up permissions on binaries
- #
https://bugs.openjdk.java.net/browse/JDK-8173610
- find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
- find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+ popd
+}
- popd >& /dev/null
+function installjdk() {
+ local outputdir=${1}
+ local installdir=${2}
+ local imagepath=${installdir}/images/%{jdkimage}
echo "Installing build from ${outputdir} to ${installdir}..."
+ mkdir -p ${installdir}
echo "Installing images..."
mv ${outputdir}/images ${installdir}
if [ -d ${outputdir}/bundles ] ; then
@@ -2044,8 +2064,35 @@ function buildjdk() {
echo "Removing output directory...";
rm -rf ${outputdir}
%endif
+
+ if [ -d ${imagepath} ] ; then
+ # the build (erroneously) removes read permissions from some jars
+ # this is a regression in OpenJDK 7 (our compiler):
+ #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+ find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \;
+ chmod ugo+r ${imagepath}/lib/ct.sym
+
+ # remove redundant *diz and *debuginfo files
+ find ${imagepath} -iname '*.diz' -exec rm -v {} \;
+ find ${imagepath} -iname '*.debuginfo' -exec rm -v {} \;
+
+ # Build screws up permissions on binaries
+ #
https://bugs.openjdk.java.net/browse/JDK-8173610
+ find ${imagepath} -iname '*.so' -exec chmod +x {} \;
+ find ${imagepath}/bin/ -exec chmod +x {} \;
+ fi
}
+%if %{build_hotspot_first}
+ # Build a fresh libjvm.so first and use it to bootstrap
+ cp -LR --preserve=mode,timestamps %{bootjdk} newboot
+ systemjdk=$(pwd)/newboot
+ buildjdk build/newboot ${systemjdk} %{hotspot_target} "release"
"bundled"
+ mv build/newboot/hotspot/dist/jre/lib/%{archinstall}/server/libjvm.so
newboot/jre/lib/%{archinstall}/server
+%else
+ systemjdk=%{bootjdk}
+%endif
+
for suffix in %{build_loop} ; do
if [ "x$suffix" = "x" ] ; then
debugbuild=release
@@ -2054,7 +2101,6 @@ else
debugbuild=`echo $suffix | sed "s/-//g"`
fi
-systemjdk=/usr/lib/jvm/java-openjdk
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
installdir=%{installoutputdir -- $suffix}
@@ -2072,11 +2118,14 @@ else
fi
if ${run_bootstrap} ; then
- buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk}
"%{bootstrap_targets}" ${debugbuild}
- buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+ installjdk ${bootbuilddir} ${bootinstalldir}
+ buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}}
else
- buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}"
${debugbuild}
+ buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+ installjdk ${builddir} ${installdir}
fi
# Install nss.cfg right away as we will be using the JRE above
@@ -2197,7 +2246,9 @@ end
run -version
EOF
+%ifarch %{gdb_arches}
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
+%endif
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -2637,6 +2688,20 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.2.ea
+- Temporarily move x86 to use Zero in order to get a working build
+- Introduce architecture restriction logic for the gdb test. (RH2041970)
+- Disable on x86, x86_64, ppc64le & s390x while these are broken in rawhide.
+- Replace GCC 11 patch to remove use of the register keyword with correct fix to ADLC
build (JDK-8281098)
+- Adjust JDK8199936/PR3533 -mstackrealign patch to instead pass
-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4
+- Refactor build functions so we can build just HotSpot without any attempt at
installation.
+- Explicitly list JIT architectures rather than relying on those with slowdebug builds
+- Disable the serviceability agent on Zero architectures even when the architecture
itself is supported
+- Add backport of JDK-8257794 to fix bogus assert on slowdebug x86-32 Zero builds
+- Resolves: rhbz#2045726
+- Related: rhbz#2051302
+- Related: rhbz#2041970
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.322.b04-0.1.ea.1
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
diff --git
a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
index ae48068..0af9d51 100644
--- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
+++ b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
@@ -22,7 +22,7 @@ diff --git openjdk.orig///common/autoconf/flags.m4
openjdk///common/autoconf/fla
+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
+ # While waiting for a better solution, the current workaround is to use
-mstackrealign
+ # This is also required on Linux systems which use libraries compiled with SSE
instructions
-+ REALIGN_CFLAG="-mstackrealign"
++ REALIGN_CFLAG="-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4"
+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
+ )
diff --git a/jdk8257794-remove_broken_assert.patch
b/jdk8257794-remove_broken_assert.patch
new file mode 100644
index 0000000..bb88013
--- /dev/null
+++ b/jdk8257794-remove_broken_assert.patch
@@ -0,0 +1,13 @@
+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+@@ -493,9 +493,6 @@
+ assert(labs(istate->_stack_base - istate->_stack_limit) ==
(istate->_method->max_stack() + extra_stack_entries
+
+ 1), "bad stack limit");
+ }
+-#ifndef SHARK
+- IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() +
1, "wrong"));
+-#endif // !SHARK
+ }
+ // Verify linkages.
+ interpreterState l = istate;
diff --git a/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
new file mode 100644
index 0000000..774a08e
--- /dev/null
+++ b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch
@@ -0,0 +1,67 @@
+# HG changeset patch
+# User Andrew John Hughes <gnu_andrew(a)member.fsf.org>
+# Date 1620365804 -3600
+# Fri May 07 06:36:44 2021 +0100
+# Node ID 39b62f35eca823b4c9a98bc1dc0cb9acb87360f8
+# Parent 723b59ed1afe878c5cd35f080399c8ceec4f776b
+PR3836: Extra compiler flags not passed to adlc build
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/adlc.make
openjdk/hotspot/make/aix/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/adlc.make
++++ openjdk/hotspot/make/aix/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = -w
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
openjdk/hotspot/make/bsd/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/adlc.make
++++ openjdk/hotspot/make/bsd/makefiles/adlc.make
+@@ -71,6 +71,11 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/linux/makefiles/adlc.make
openjdk/hotspot/make/linux/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/adlc.make
++++ openjdk/hotspot/make/linux/makefiles/adlc.make
+@@ -69,6 +69,11 @@
+ CFLAGS_WARN = $(WARNINGS_ARE_ERRORS)
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ OBJECTNAMES = \
+ adlparse.o \
+ archDesc.o \
+diff --git openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
openjdk/hotspot/make/solaris/makefiles/adlc.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/adlc.make
++++ openjdk/hotspot/make/solaris/makefiles/adlc.make
+@@ -85,6 +85,10 @@
+ endif
+ CFLAGS += $(CFLAGS_WARN)
+
++# Extra flags from gnumake's invocation or environment
++CFLAGS += $(EXTRA_CFLAGS)
++ASFLAGS += $(EXTRA_ASFLAGS)
++
+ ifeq ("${Platform_compiler}", "sparcWorks")
+ # Enable the following CFLAGS addition if you need to compare the
+ # built ELF objects.
commit 92c5ccf84cd523a631a4591a4caca18c28c7b722
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 13:39:33 2022 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 52325f3..43b33d4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1215,7 +1215,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# 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
@@ -2637,6 +2637,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.322.b04-0.1.ea.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Mon Jan 10 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b04 (EA)
- Update release notes for 8u322-b04.
commit e3e7a2f6b3250760d68043d5075cdb3d5806a596
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jan 10 16:26:55 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b04 (EA)
Update release notes for 8u322-b04.
Require tzdata 2021c as of JDK-8274407.
diff --git a/.gitignore b/.gitignore
index bc46b5c..f1536da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -249,3 +249,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index da4df72..9773926 100644
--- a/NEWS
+++ b/NEWS
@@ -58,6 +58,9 @@ Live versions of these release notes can be found at:
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
- JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8274407: (tz) Update Timezone Data to 2021c
+ - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
+ - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
- JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
- JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
@@ -82,6 +85,18 @@ The following root certificate from Google has been removed from the
Alias Name: globalsignr2ca [jdk]
Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+core-libs/java.time:
+
+JDK-8274857: Update Timezone Data to 2021c
+===========================================
+IANA Time Zone Database, on which JDK's Date/Time libraries are based,
+has been updated to version 2021c
+(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
+that with this update, some of the time zone rules prior to the year
+1970 have been modified according to the changes which were introduced
+with 2021b. For more detail, refer to the announcement of 2021b
+(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b17d121..52325f3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1114,8 +1114,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2021a required as of JDK-8260356 in April CPU
-Requires: tzdata-java >= 2021a
+# 2021c required as of JDK-8274407 in January 2022 CPU
+Requires: tzdata-java >= 2021c
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1491,8 +1491,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2021a required as of JDK-8260356 in April CPU
-BuildRequires: tzdata-java >= 2021a
+# 2021c required as of JDK-8274407 in January 2022 CPU
+BuildRequires: tzdata-java >= 2021c
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2637,6 +2637,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jan 10 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b04 (EA)
+- Update release notes for 8u322-b04.
+- Require tzdata 2021c as of JDK-8274407.
+
* Fri Jan 07 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b03-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b03 (EA)
- Update release notes for 8u322-b03.
diff --git a/sources b/sources
index f8bc0ea..eb1f71f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz) =
5a511b7721f5d3178c494ebf2ee51dd93b44ca4843226b3e9fc49a6350a5563651e0fe06cef68f21b229f13031661830dfab52ec2ead46d31aaa02c5720d71b0
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b04-4curve.tar.xz) =
ebc3cceb40f7ca567fd9fe751ba9762ad50ac474f63da5e2123cf268683db10132ffb09b6f6a99b3379c021b4fcc3b04a82bc81c2e63c8d4da0fdcf58d995322
commit 172b64584ad633cd9f755d573a4cebbd3c74cc23
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jan 7 15:25:17 2022 +0000
Update to aarch64-shenandoah-jdk8u322-b03 (EA)
Update release notes for 8u322-b03.
diff --git a/.gitignore b/.gitignore
index 9cd6ee4..bc46b5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -248,3 +248,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 433a4f6..da4df72 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ Live versions of these release notes can be found at:
- JDK-8041928: MouseEvent.getModifiersEx gives wrong result
- JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
- JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining
group (OS X 10.9)
+ - JDK-8048021: Remove @version tag in jaxp repo
- JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
- JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and
java/beans/XMLEncoder/java_awt_GridBagLayout.java
- JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
@@ -49,6 +50,7 @@ Live versions of these release notes can be found at:
- JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
- JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
- JDK-8235153: [TESTBUG] [macos 10.15]
java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
+ - JDK-8236897: Fix the copyright header for pkcs11gcm2.h
- JDK-8237499: JFR: Include stack trace in the ThreadStart event
- JDK-8239886: Minimal VM build fails after JDK-8237499
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 682224d..b17d121 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2637,6 +2637,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jan 07 2022 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b03 (EA)
+- Update release notes for 8u322-b03.
+
* Fri Dec 17 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b02-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b02 (EA)
- Update release notes for 8u322-b02.
diff --git a/sources b/sources
index 1ea332b..f8bc0ea 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz) =
ebf2c1495ad47345fdc9025fbb690e5fe31fdcb08f180020b061a91cd4f9d01f1617f56f1038c3acbdb1dd9e3ade2cdf7f7c3854cf229084ef5b1fc822ab5422
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b03-4curve.tar.xz) =
5a511b7721f5d3178c494ebf2ee51dd93b44ca4843226b3e9fc49a6350a5563651e0fe06cef68f21b229f13031661830dfab52ec2ead46d31aaa02c5720d71b0
commit a0ac8516d6ebc12bab3af9fec466a19e1c478869
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Dec 17 03:06:13 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b02 (EA)
Update release notes for 8u322-b02.
diff --git a/.gitignore b/.gitignore
index 891d2d8..9cd6ee4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -247,3 +247,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 2dac9d2..433a4f6 100644
--- a/NEWS
+++ b/NEWS
@@ -11,12 +11,22 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java
fails NPE since 7u25b03
+ - JDK-8025430: [TEST_BUG] javax/swing/JEditorPane/5076514/bug5076514.java failed since
jdk8b108
+ - JDK-8041928: MouseEvent.getModifiersEx gives wrong result
+ - JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402
+ - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining
group (OS X 10.9)
- JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
+ - JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and
java/beans/XMLEncoder/java_awt_GridBagLayout.java
- JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
+ - JDK-8066652: Default TimeZone is GMT not local if user.timezone is invalid on Mac OS
- JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly
failure
- JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win
compiler upgrade
- JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and
BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140329: [TEST_BUG] test FullScreenAfterSplash.java failed because image was not
generated
- JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with
java.net.BindException: Address already in use: NET_Bind
+ - JDK-8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a
resolver indicator
+ - JDK-8148915: Intermittent failures of bug6400879.java
- JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
- JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
- JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
@@ -25,20 +35,29 @@ Live versions of these release notes can be found at:
- JDK-8183543: Aarch64: C2 compilation often fails with "failed
spill-split-recycle sanity check"
- JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
- JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190482: InnocuousThread creation should not require the caller to possess
enableContextClassLoaderOverride
- JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8196572: Tests ColConvCCMTest.java and MTColConvTest.java fail
- JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
- JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W
glyphs
- JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
- JDK-8225083: Remove Google certificate that is expiring in December 2021
- JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate
thread
+ - JDK-8231254: (fs) Add test for macOS Catalina changes to protect system software
- JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina
- JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
+ - JDK-8235153: [TESTBUG] [macos 10.15]
java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
- JDK-8237499: JFR: Include stack trace in the ThreadStart event
- JDK-8239886: Minimal VM build fails after JDK-8237499
- JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
- JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
- JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
- JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+ - JDK-8273826: Correct Manifest file name and NPE checks
+ - JDK-8274595: DisableRMIOverHTTPTest failed: connection refused
+ - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request
method when set to POST
Notes on individual issues:
===========================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 41a4f39..682224d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u322-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2637,6 +2637,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Dec 17 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b02 (EA)
+- Update release notes for 8u322-b02.
+
* Tue Dec 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b01-0.1.ea
- Update to aarch64-shenandoah-jdk8u322-b01 (EA)
- Update release notes for 8u322-b01.
diff --git a/sources b/sources
index fc55bb8..1ea332b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz) =
0a514ce037f3681819f931312c3de38683d3d8a12fc8b038b11466a8ccb89d1828944816a47267f140707c4149ed959a921b03356f3587487988916c658d5197
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b02-4curve.tar.xz) =
ebf2c1495ad47345fdc9025fbb690e5fe31fdcb08f180020b061a91cd4f9d01f1617f56f1038c3acbdb1dd9e3ade2cdf7f7c3854cf229084ef5b1fc822ab5422
commit be50f32572d549f56dc2b1b39434ee6ebba211ac
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Dec 14 02:19:05 2021 +0000
Update to aarch64-shenandoah-jdk8u322-b01 (EA)
Update release notes for 8u322-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index d5493bd..891d2d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -246,3 +246,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index ef9db68..2dac9d2 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,64 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u322 (2022-01-18):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u322
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt
+
+* Other changes
+ - JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken
+ - JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use
incorrect assumption about REXB prefix usage
+ - JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
fails to compile
+ - JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly
failure
+ - JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win
compiler upgrade
+ - JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and
BufferedImage.TYPE_INT_ARGB_PRE is blank
+ - JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with
java.net.BindException: Address already in use: NET_Bind
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black
+ - JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests
+ - JDK-8182036: Load from initializing arraycopy uses wrong memory state
+ - JDK-8183369: RFC unconformity of HttpURLConnection with proxy
+ - JDK-8183543: Aarch64: C2 compilation often fails with "failed
spill-split-recycle sanity check"
+ - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
+ - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
+ - JDK-8190793: Httpserver does not detect truncated request body
+ - JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit
+ - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing
+ - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
+ - JDK-8225083: Remove Google certificate that is expiring in December 2021
+ - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate
thread
+ - JDK-8231438: [macOS] Dark mode for the desktop is not supported
+ - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may
fail
+ - JDK-8237499: JFR: Include stack trace in the ThreadStart event
+ - JDK-8239886: Minimal VM build fails after JDK-8237499
+ - JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
+ - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during
"PrinterJob.print"
+ - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches
all exceptions
+ - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8271434: Removed IdenTrust Root Certificate
+===============================================
+The following root certificate from IdenTrust has been removed from
+the `cacerts` keystore:
+
+Alias Name: identrustdstx3 [jdk]
+Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
+
+JDK-8272535: Removed Google's GlobalSign Root Certificate
+=========================================================
+The following root certificate from Google has been removed from the
+`cacerts` keystore:
+
+Alias Name: globalsignr2ca [jdk]
+Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
+
New in release OpenJDK 8u312 (2021-10-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5275910..41a4f39 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -306,7 +306,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u322-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -321,12 +321,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2637,6 +2637,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Dec 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.322.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u322-b01 (EA)
+- Update release notes for 8u322-b01.
+- Switch to EA mode.
+
* Mon Dec 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-3
- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/sources b/sources
index 32ce1e2..fc55bb8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) =
6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u322-b01-4curve.tar.xz) =
0a514ce037f3681819f931312c3de38683d3d8a12fc8b038b11466a8ccb89d1828944816a47267f140707c4149ed959a921b03356f3587487988916c658d5197
commit 0478a68d4063ca222c2a544192dfe376ede17488
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Dec 6 00:42:17 2021 +0000
Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6557c22..5275910 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -86,13 +86,18 @@
%global ppc64be ppc64 ppc64p7
# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-# Set of architectures for which we build debug builds
+# Set of architectures for which we build slowdebug builds
%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which we build fastdebug builds
+%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{debug_arches}
+# Set of architectures which use the Zero assembler port (!jit_arches)
+%global zero_arches %{arm} ppc s390 s390x
+# Set of architectures which run a full bootstrap cycle
+%global bootstrap_arches %{jit_arches} %{zero_arches}
# Set of architectures which support SystemTap tapsets
%global systemtap_arches %{jit_arches}
-%global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# Set of architectures which support class data sharing
@@ -137,12 +142,17 @@
%else
%global fastdebug_build %{nil}
%endif
-%global bootstrap_build 1
# If you disable both builds, then the build fails
# Build and test slowdebug first as it provides the best diagnostics
%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+%ifarch %{bootstrap_arches}
+%global bootstrap_build true
+%else
+%global bootstrap_build false
+%endif
+
%global bootstrap_targets images
%global release_targets images docs-zip
%global debug_targets images
@@ -311,7 +321,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2051,19 +2061,23 @@ installdir=%{installoutputdir -- $suffix}
bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
-# build speed-up
-maketargets="%{release_targets}"
+# build speed-up. We also avoid bootstrapping these
+# slower builds.
if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
+ run_bootstrap=false
+else
+ maketargets="%{release_targets}"
+ run_bootstrap=%{bootstrap_build}
fi
-%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}"
${debugbuild}
-buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
-%{!?with_artifacts:rm -rf ${bootinstalldir}}
-%else
-buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
-%endif
+if ${run_bootstrap} ; then
+ buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk}
"%{bootstrap_targets}" ${debugbuild}
+ buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+ %{!?with_artifacts:rm -rf ${bootinstalldir}}
+else
+ buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}"
${debugbuild}
+fi
# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
@@ -2623,6 +2637,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Dec 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-3
+- Turn off bootstrapping for slow debug builds, which are particularly slow on ppc64le.
+
* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
secmod.db file as part of nss
commit b1a7d3ba426353f381b04c725272bf1bb197e02a
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Nov 3 11:43:58 2021 +0100
Use 'sql:' prefix in nss.fips.cfg
Fedora 35 and better no longer ship the legacy
secmod.db file as part of the nss package. Explicitly
tell OpenJDK to use sqlite-based sec mode.
Resolves: RHBZ#2019555
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index afad6cd..6557c22 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1907,7 +1907,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
# Setup nss.fips.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
-sed -i -e "s:@NSS_SECMOD@:/etc/pki/nssdb:g" nss.fips.cfg
%build
# How many CPU's do we have?
@@ -2624,6 +2623,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Nov 03 2021 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.312.b07-2
+- Use 'sql:' prefix in nss.fips.cfg as F35+ no longer ship the legacy
+ secmod.db file as part of nss
+
* Fri Oct 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-1
- Update to aarch64-shenandoah-jdk8u312-b07 (GA)
- Update release notes for 8u312-b07.
diff --git a/nss.fips.cfg.in b/nss.fips.cfg.in
index ead27be..1aff153 100644
--- a/nss.fips.cfg.in
+++ b/nss.fips.cfg.in
@@ -1,6 +1,6 @@
name = NSS-FIPS
nssLibraryDirectory = @NSS_LIBDIR@
-nssSecmodDirectory = @NSS_SECMOD@
+nssSecmodDirectory = sql:/etc/pki/nssdb
nssDbMode = readOnly
nssModule = fips
commit 06afebf8011b6c20c3771e6f98f8f76ea2c0c36c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 20 01:46:06 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b07 (GA)
Update release notes for 8u312-b07.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index f34cedd..d5493bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -244,3 +244,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-shenandoah-merge-2021-10-07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 05c1b39..ef9db68 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,33 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u312
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
+* Security fixes
+ - JDK-8130183, CVE-2021-35588: InnerClasses: VM permits wrong Throw ClassFormatError if
InnerClasses attribute's inner_class_info_index is 0
+ - JDK-8161016: Strange behavior of URLConnection with proxy
+ - JDK-8163326, CVE-2021-35550: Update the default enabled cipher suites preference
+ - JDK-8254967, CVE-2021-35565: com.sun.net.HttpsServer spins on TLS session close
+ - JDK-8263314: Enhance XML Dsig modes
+ - JDK-8265167, CVE-2021-35556: Richer Text Editors
+ - JDK-8265574: Improve handling of sheets
+ - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit
+ - JDK-8265776: Improve Stream handling for SSL
+ - JDK-8266097, CVE-2021-35561: Better hashing support
+ - JDK-8266103: Better specified spec values
+ - JDK-8266109: More Resilient Classloading
+ - JDK-8266115: More Manifest Jar Loading
+ - JDK-8266137, CVE-2021-35564: Improve Keystore integrity
+ - JDK-8266689, CVE-2021-35567: More Constrained Delegation
+ - JDK-8267086: ArrayIndexOutOfBoundsException in
java.security.KeyFactory.generatePublic
+ - JDK-8267712: Better LDAP reference processing
+ - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking
+ - JDK-8267735, CVE-2021-35586: Better BMP support
+ - JDK-8268193: Improve requests of certificates
+ - JDK-8268199: Correct certificate requests
+ - JDK-8268506: More Manifest Digests
+ - JDK-8269618, CVE-2021-35603: Better session identification
+ - JDK-8269624: Enhance method selection support
+ - JDK-8270398: Enhance canonicalization
+ - JDK-8270404: Better canonicalization
* Other changes
- JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
@@ -29,10 +56,9 @@ Live versions of these release notes can be found at:
- JDK-8134869: AARCH64: GHASH intrinsic is not optimal
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
- - JDK-8161016: Strange behavior of URLConnection with proxy
+ - JDK-8157404: Unable to read certain PKCS12 keystores from SequenceInputStream
- JDK-8166673: The new implementation of Robot.waitForIdle() may hang
- JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
- - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
- JDK-8194246: JVM crashes when calling getStackTrace if stack contains a method that
is a member of a very large class
- JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
- JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
@@ -40,6 +66,7 @@ Live versions of these release notes can be found at:
- JDK-8214418: half-closed SSLEngine status may cause application dead loop
- JDK-8214513: A PKCS12 keystore from Java 8 using custom PBE parameters cannot be read
in Java 11
- JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
+ - JDK-8222751:
closed/test/jdk/sun/security/util/DerIndefLenConverter/IndefBerPkcs12.java fail
- JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
- JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
- JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a
raw 0xF7
@@ -49,7 +76,6 @@ Live versions of these release notes can be found at:
- JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- - JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
@@ -61,7 +87,9 @@ Live versions of these release notes can be found at:
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8266206: Build failure after JDK-8264752 with older GCCs
- JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
+ - JDK-8268965: TCP Connection Reset when connecting simple socket to SSL server
- JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
+ - JDK-8269763: The JEditorPane is blank after JDK-8265167
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu
usage in containers
- JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
@@ -72,6 +100,34 @@ Live versions of these release notes can be found at:
- JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path
contains colon
- JDK-8272214: [8u] Build failure after backport of JDK-8248901
- JDK-8272714: [8u] Build failure after backport of JDK-8248901 with MSVC 2013
+* Shenandoah
+ - [backport] JDK-8269661: JNI_GetStringCritical does not lock char array
+ - Re-cast JNI critical strings patch to be Shenandoah-specific
+
+Notes on individual issues:
+===========================
+
+core-libs/java.net:
+
+JDK-8164200: Modified HttpURLConnection behavior when no suitable proxy is found
+================================================================================
+The behavior of HttpURLConnection when using a ProxySelector has been
+modified with this JDK release. HttpURLConnection used to fall back to
+a DIRECT connection attempt if the configured proxy(s) failed to make
+a connection. This release introduces a change whereby no DIRECT
+connection will be attempted in such a scenario. Instead, the
+HttpURLConnection.connect() method will fail and throw an IOException
+which occurred from the last proxy tested.
+
+security-libs/javax.net.ssl:
+
+JDK-8219551: Updated the Default Enabled Cipher Suites Preference
+=================================================================
+The preference of the default enabled cipher suites has been
+changed. The compatibility impact should be minimal. If needed,
+applications can customize the enabled cipher suites and the
+preference. For more details, refer to the SunJSSE provider
+documentation and the JSSE Reference Guide documentation.
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 16c2d89..afad6cd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,12 +311,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2624,6 +2624,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Oct 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b07-1
+- Update to aarch64-shenandoah-jdk8u312-b07 (GA)
+- Update release notes for 8u312-b07.
+- Switch to GA mode for final release.
+
* Thu Oct 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
- Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
diff --git a/sources b/sources
index 7c2359c..32ce1e2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz) =
41aa7cfe6946f9b88e8ae66716e8db204a401f5ded43037c54c071b7a895e08df389d6a7ae5961da00c309a6802c88197cd59ed8e5e52a466c997a680f7f425f
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b07-4curve.tar.xz) =
6da9aab9f456336d73cb41755b9e075c43b21ce54fa208d94295aaeef0dce9e4059740efe87458e131b633c3ab3d6f964a5d2407a76e79dd9b080a5416efd7e7
commit 38ede77603423977c87a2c9298a9993fa00d9545
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Oct 10 22:01:08 2021 +0100
Add FIPS patch to allow plain key import.
Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 35a55bd..16c2d89 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1315,6 +1315,8 @@ Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
# RH1996182: Login to the NSS software token in FIPS mode
Patch1008: rh1996182-login_to_nss_software_token.patch
+# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to
false
+Patch1011: rh1991003-enable_fips_keys_import.patch
#############################################
#
@@ -1844,6 +1846,7 @@ sh %{SOURCE12}
%patch1006
%patch1007
%patch1008
+%patch1011
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2621,6 +2624,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Oct 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
+- Allow plain key import to be disabled with -Dcom.redhat.fips.plainKeySupport=false
+
+* Thu Oct 07 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b05-0.2.ea
+- Add patch to allow plain key import.
+
* Thu Sep 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b05 (EA)
- Update release notes for 8u312-b05.
diff --git a/rh1991003-enable_fips_keys_import.patch
b/rh1991003-enable_fips_keys_import.patch
new file mode 100644
index 0000000..028769d
--- /dev/null
+++ b/rh1991003-enable_fips_keys_import.patch
@@ -0,0 +1,583 @@
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -78,6 +78,10 @@
+ public boolean isSystemFipsEnabled() {
+ return SystemConfigurator.isSystemFipsEnabled();
+ }
++ @Override
++ public boolean isPlainKeySupportEnabled() {
++ return SystemConfigurator.isPlainKeySupportEnabled();
++ }
+ });
+
+ // doPrivileged here because there are multiple
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -55,6 +55,7 @@
+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
+
+ private static boolean systemFipsEnabled = false;
++ private static boolean plainKeySupportEnabled = false;
+
+ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
+
+@@ -149,6 +150,16 @@
+ }
+ loadedProps = true;
+ systemFipsEnabled = true;
++ String plainKeySupport =
System.getProperty("com.redhat.fips.plainKeySupport",
++ "true");
++ plainKeySupportEnabled = !"false".equals(plainKeySupport);
++ if (sdebug != null) {
++ if (plainKeySupportEnabled) {
++ sdebug.println("FIPS support enabled with plain key
support");
++ } else {
++ sdebug.println("FIPS support enabled without plain key
support");
++ }
++ }
+ }
+ } catch (Exception e) {
+ if (sdebug != null) {
+@@ -176,6 +187,19 @@
+ return systemFipsEnabled;
+ }
+
++ /**
++ * Returns {@code true} if system FIPS alignment is enabled
++ * and plain key support is allowed. Plain key support is
++ * enabled by default but can be disabled with
++ * {@code -Dcom.redhat.fips.plainKeySupport=false}.
++ *
++ * @return a boolean indicating whether plain key support
++ * should be enabled.
++ */
++ static boolean isPlainKeySupportEnabled() {
++ return plainKeySupportEnabled;
++ }
++
+ /*
+ * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
+ * system property is true (default) and the system is in FIPS mode.
+diff --git
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+---
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
++++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+@@ -27,4 +27,5 @@
+
+ public interface JavaSecuritySystemConfiguratorAccess {
+ boolean isSystemFipsEnabled();
++ boolean isPlainKeySupportEnabled();
+ }
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java
+@@ -0,0 +1,290 @@
++/*
++ * Copyright (c) 2021, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.security.pkcs11;
++
++import java.math.BigInteger;
++import java.security.KeyFactory;
++import java.security.Provider;
++import java.security.Security;
++import java.util.HashMap;
++import java.util.Map;
++import java.util.concurrent.locks.ReentrantLock;
++
++import javax.crypto.Cipher;
++import javax.crypto.spec.DHPrivateKeySpec;
++import javax.crypto.spec.IvParameterSpec;
++
++import sun.security.jca.JCAUtil;
++import sun.security.pkcs11.TemplateManager;
++import sun.security.pkcs11.wrapper.CK_ATTRIBUTE;
++import sun.security.pkcs11.wrapper.CK_MECHANISM;
++import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
++import sun.security.pkcs11.wrapper.PKCS11Exception;
++import sun.security.rsa.RSAUtil.KeyType;
++import sun.security.util.Debug;
++import sun.security.util.ECUtil;
++
++final class FIPSKeyImporter {
++
++ private static final Debug debug =
++ Debug.getInstance("sunpkcs11");
++
++ private static P11Key importerKey = null;
++ private static final ReentrantLock importerKeyLock = new ReentrantLock();
++ private static CK_MECHANISM importerKeyMechanism = null;
++ private static Cipher importerCipher = null;
++
++ private static Provider sunECProvider = null;
++ private static final ReentrantLock sunECProviderLock = new ReentrantLock();
++
++ private static KeyFactory DHKF = null;
++ private static final ReentrantLock DHKFLock = new ReentrantLock();
++
++ static Long importKey(SunPKCS11 sunPKCS11, long hSession, CK_ATTRIBUTE[]
attributes)
++ throws PKCS11Exception {
++ long keyID = -1;
++ Token token = sunPKCS11.getToken();
++ if (debug != null) {
++ debug.println("Private or Secret key will be imported in" +
++ " system FIPS mode.");
++ }
++ if (importerKey == null) {
++ importerKeyLock.lock();
++ try {
++ if (importerKey == null) {
++ if (importerKeyMechanism == null) {
++ // Importer Key creation has not been tried yet. Try it.
++ createImporterKey(token);
++ }
++ if (importerKey == null || importerCipher == null) {
++ if (debug != null) {
++ debug.println("Importer Key could not be" +
++ " generated.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ if (debug != null) {
++ debug.println("Importer Key successfully" +
++ " generated.");
++ }
++ }
++ } finally {
++ importerKeyLock.unlock();
++ }
++ }
++ long importerKeyID = importerKey.getKeyID();
++ try {
++ byte[] keyBytes = null;
++ byte[] encKeyBytes = null;
++ long keyClass = 0L;
++ long keyType = 0L;
++ Map<Long, CK_ATTRIBUTE> attrsMap = new HashMap<>();
++ for (CK_ATTRIBUTE attr : attributes) {
++ if (attr.type == CKA_CLASS) {
++ keyClass = attr.getLong();
++ } else if (attr.type == CKA_KEY_TYPE) {
++ keyType = attr.getLong();
++ }
++ attrsMap.put(attr.type, attr);
++ }
++ BigInteger v = null;
++ if (keyClass == CKO_PRIVATE_KEY) {
++ if (keyType == CKK_RSA) {
++ if (debug != null) {
++ debug.println("Importing an RSA private key...");
++ }
++ keyBytes = sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(
++ KeyType.RSA,
++ null,
++ ((v = attrsMap.get(CKA_MODULUS).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PUBLIC_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIVATE_EXPONENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_1).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME_2).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_1).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_EXPONENT_2).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_COEFFICIENT).getBigInteger()) !=
null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ } else if (keyType == CKK_DSA) {
++ if (debug != null) {
++ debug.println("Importing a DSA private key...");
++ }
++ keyBytes = new sun.security.provider.DSAPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_SUBPRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO
++ ).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_EC) {
++ if (debug != null) {
++ debug.println("Importing an EC private key...");
++ }
++ if (sunECProvider == null) {
++ sunECProviderLock.lock();
++ try {
++ if (sunECProvider == null) {
++ sunECProvider =
Security.getProvider("SunEC");
++ }
++ } finally {
++ sunECProviderLock.unlock();
++ }
++ }
++ keyBytes = P11ECUtil.generateECPrivateKey(
++ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ECUtil.getECParameterSpec(sunECProvider,
++ attrsMap.get(CKA_EC_PARAMS).getByteArray()))
++ .getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else if (keyType == CKK_DH) {
++ if (debug != null) {
++ debug.println("Importing a Diffie-Hellman private
key...");
++ }
++ if (DHKF == null) {
++ DHKFLock.lock();
++ try {
++ if (DHKF == null) {
++ DHKF = KeyFactory.getInstance(
++ "DH", P11Util.getSunJceProvider());
++ }
++ } finally {
++ DHKFLock.unlock();
++ }
++ }
++ DHPrivateKeySpec spec = new DHPrivateKeySpec
++ (((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null)
++ ? v : BigInteger.ZERO,
++ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null)
++ ? v : BigInteger.ZERO);
++ keyBytes = DHKF.generatePrivate(spec).getEncoded();
++ if (token.config.getNssNetscapeDbWorkaround() &&
++ attrsMap.get(CKA_NETSCAPE_DB) == null) {
++ attrsMap.put(CKA_NETSCAPE_DB,
++ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO));
++ }
++ } else {
++ if (debug != null) {
++ debug.println("Unrecognized private key type.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ } else if (keyClass == CKO_SECRET_KEY) {
++ if (debug != null) {
++ debug.println("Importing a secret key...");
++ }
++ keyBytes = attrsMap.get(CKA_VALUE).getByteArray();
++ }
++ if (keyBytes == null || keyBytes.length == 0) {
++ if (debug != null) {
++ debug.println("Private or secret key plain bytes could" +
++ " not be obtained. Import failed.");
++ }
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ importerCipher.init(Cipher.ENCRYPT_MODE, importerKey,
++ new IvParameterSpec((byte[])importerKeyMechanism.pParameter),
++ null);
++ attributes = new CK_ATTRIBUTE[attrsMap.size()];
++ attrsMap.values().toArray(attributes);
++ encKeyBytes = importerCipher.doFinal(keyBytes);
++ attributes = token.getAttributes(TemplateManager.O_IMPORT,
++ keyClass, keyType, attributes);
++ keyID = token.p11.C_UnwrapKey(hSession,
++ importerKeyMechanism, importerKeyID, encKeyBytes, attributes);
++ if (debug != null) {
++ debug.println("Imported key ID: " + keyID);
++ }
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ } finally {
++ importerKey.releaseKeyID();
++ }
++ return Long.valueOf(keyID);
++ }
++
++ private static void createImporterKey(Token token) {
++ if (debug != null) {
++ debug.println("Generating Importer Key...");
++ }
++ byte[] iv = new byte[16];
++ JCAUtil.getSecureRandom().nextBytes(iv);
++ importerKeyMechanism = new CK_MECHANISM(CKM_AES_CBC_PAD, iv);
++ try {
++ CK_ATTRIBUTE[] attributes = token.getAttributes(TemplateManager.O_GENERATE,
++ CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] {
++ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY),
++ new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3)});
++ Session s = null;
++ try {
++ s = token.getObjSession();
++ long keyID = token.p11.C_GenerateKey(
++ s.id(), new CK_MECHANISM(CKM_AES_KEY_GEN),
++ attributes);
++ if (debug != null) {
++ debug.println("Importer Key ID: " + keyID);
++ }
++ importerKey = (P11Key)P11Key.secretKey(s, keyID, "AES",
++ 256 >> 3, null);
++ } catch (PKCS11Exception e) {
++ // best effort
++ } finally {
++ token.releaseSession(s);
++ }
++ if (importerKey != null) {
++ importerCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
++ }
++ } catch (Throwable t) {
++ // best effort
++ importerKey = null;
++ importerCipher = null;
++ // importerKeyMechanism value is kept initialized to indicate that
++ // Importer Key creation has been tried and failed.
++ }
++ }
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -26,6 +26,9 @@
+ package sun.security.pkcs11;
+
+ import java.io.*;
++import java.lang.invoke.MethodHandle;
++import java.lang.invoke.MethodHandles;
++import java.lang.invoke.MethodType;
+ import java.util.*;
+
+ import java.security.*;
+@@ -63,6 +66,26 @@
+ private static final boolean systemFipsEnabled = SharedSecrets
+ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
+
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
++ private static final MethodHandle fipsImportKey;
++ static {
++ MethodHandle fipsImportKeyTmp = null;
++ if (plainKeySupportEnabled) {
++ try {
++ fipsImportKeyTmp = MethodHandles.lookup().findStatic(
++ FIPSKeyImporter.class, "importKey",
++ MethodType.methodType(Long.class, SunPKCS11.class,
++ long.class, CK_ATTRIBUTE[].class));
++ } catch (Throwable t) {
++ throw new SecurityException("FIPS key importer initialization"
+
++ " failed", t);
++ }
++ }
++ fipsImportKey = fipsImportKeyTmp;
++ }
++
+ private static final long serialVersionUID = -1354835039035306505L;
+
+ static final Debug debug = Debug.getInstance("sunpkcs11");
+@@ -314,10 +337,15 @@
+ // request multithreaded access first
+ initArgs.flags = CKF_OS_LOCKING_OK;
+ PKCS11 tmpPKCS11;
++ MethodHandle fipsKeyImporter = null;
++ if (plainKeySupportEnabled) {
++ fipsKeyImporter = MethodHandles.insertArguments(
++ fipsImportKey, 0, this);
++ }
+ try {
+ tmpPKCS11 = PKCS11.getInstance(
+ library, functionList, initArgs,
+- config.getOmitInitialize());
++ config.getOmitInitialize(), fipsKeyImporter);
+ } catch (PKCS11Exception e) {
+ if (debug != null) {
+ debug.println("Multi-threaded initialization failed: " +
e);
+@@ -333,7 +361,7 @@
+ initArgs.flags = 0;
+ }
+ tmpPKCS11 = PKCS11.getInstance(library,
+- functionList, initArgs, config.getOmitInitialize());
++ functionList, initArgs, config.getOmitInitialize(),
fipsKeyImporter);
+ }
+ p11 = tmpPKCS11;
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java
+@@ -49,6 +49,7 @@
+
+ import java.io.File;
+ import java.io.IOException;
++import java.lang.invoke.MethodHandle;
+ import java.util.*;
+
+ import java.security.AccessController;
+@@ -147,16 +148,28 @@
+
+ public static synchronized PKCS11 getInstance(String pkcs11ModulePath,
+ String functionList, CK_C_INITIALIZE_ARGS pInitArgs,
+- boolean omitInitialize) throws IOException, PKCS11Exception {
++ boolean omitInitialize, MethodHandle fipsKeyImporter)
++ throws IOException, PKCS11Exception {
+ // we may only call C_Initialize once per native .so/.dll
+ // so keep a cache using the (non-canonicalized!) path
+ PKCS11 pkcs11 = moduleMap.get(pkcs11ModulePath);
+ if (pkcs11 == null) {
++ boolean nssFipsMode = fipsKeyImporter != null;
+ if ((pInitArgs != null)
+ && ((pInitArgs.flags & CKF_OS_LOCKING_OK) != 0)) {
+- pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new FIPSPKCS11(pkcs11ModulePath, functionList,
++ fipsKeyImporter);
++ } else {
++ pkcs11 = new PKCS11(pkcs11ModulePath, functionList);
++ }
+ } else {
+- pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ if (nssFipsMode) {
++ pkcs11 = new SynchronizedFIPSPKCS11(pkcs11ModulePath,
++ functionList, fipsKeyImporter);
++ } else {
++ pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList);
++ }
+ }
+ if (omitInitialize == false) {
+ try {
+@@ -1905,4 +1918,69 @@
+ super.C_GenerateRandom(hSession, randomData);
+ }
+ }
++
++// PKCS11 subclass that allows using plain private or secret keys in
++// FIPS-configured NSS Software Tokens. Only used when System FIPS
++// is enabled.
++static class FIPSPKCS11 extends PKCS11 {
++ private MethodHandle fipsKeyImporter;
++ FIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // Creating sensitive key objects from plain key material in a
++ // FIPS-configured NSS Software Token is not allowed. We apply
++ // a key-unwrapping scheme to achieve so.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
+ }
++
++// FIPSPKCS11 synchronized counterpart.
++static class SynchronizedFIPSPKCS11 extends SynchronizedPKCS11 {
++ private MethodHandle fipsKeyImporter;
++ SynchronizedFIPSPKCS11(String pkcs11ModulePath, String functionListName,
++ MethodHandle fipsKeyImporter) throws IOException {
++ super(pkcs11ModulePath, functionListName);
++ this.fipsKeyImporter = fipsKeyImporter;
++ }
++
++ public synchronized long C_CreateObject(long hSession,
++ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception {
++ // See FIPSPKCS11::C_CreateObject.
++ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) {
++ try {
++ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate))
++ .longValue();
++ } catch (Throwable t) {
++ throw new PKCS11Exception(CKR_GENERAL_ERROR);
++ }
++ }
++ return super.C_CreateObject(hSession, pTemplate);
++ }
++}
++
++private static class FIPSPKCS11Helper {
++ static boolean isSensitiveObject(CK_ATTRIBUTE[] pTemplate) {
++ for (CK_ATTRIBUTE attr : pTemplate) {
++ if (attr.type == CKA_CLASS &&
++ (attr.getLong() == CKO_PRIVATE_KEY ||
++ attr.getLong() == CKO_SECRET_KEY)) {
++ return true;
++ }
++ }
++ return false;
++ }
++}
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java
+@@ -33,8 +33,13 @@
+
+ import javax.net.ssl.*;
+
++import sun.misc.SharedSecrets;
++
+ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi {
+
++ private static final boolean plainKeySupportEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled();
++
+ X509ExtendedKeyManager keyManager;
+ boolean isInitialized;
+
+@@ -62,7 +67,8 @@
+ KeyStoreException, NoSuchAlgorithmException,
+ UnrecoverableKeyException {
+ if ((ks != null) && SunJSSE.isFIPS()) {
+- if (ks.getProvider() != SunJSSE.cryptoProvider) {
++ if (ks.getProvider() != SunJSSE.cryptoProvider &&
++ !plainKeySupportEnabled) {
+ throw new KeyStoreException("FIPS mode: KeyStore must be
"
+ + "from provider " +
SunJSSE.cryptoProvider.getName());
+ }
+@@ -91,8 +97,8 @@
+ keyManager = new X509KeyManagerImpl(
+ Collections.<Builder>emptyList());
+ } else {
+- if (SunJSSE.isFIPS() &&
+- (ks.getProvider() != SunJSSE.cryptoProvider)) {
++ if (SunJSSE.isFIPS() && (ks.getProvider() !=
SunJSSE.cryptoProvider)
++ && !plainKeySupportEnabled) {
+ throw new KeyStoreException(
+ "FIPS mode: KeyStore must be " +
+ "from provider " + SunJSSE.cryptoProvider.getName());
commit afeb38682d63bf513aca64685b0b6938a86918ef
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Oct 9 23:21:05 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b05 (EA)
Update release notes for 8u312-b05.
diff --git a/.gitignore b/.gitignore
index 402cdf4..f34cedd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -243,3 +243,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 832ad01..05c1b39 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,9 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
+ - JDK-7188942: Remove support of pbuffers in OGL Java2d pipeline
- JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
+ - JDK-8022323: [JavaSecurityScanner] review package com.sun.management.* Native methods
should be private
- JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
- JDK-8035001: TEST_BUG: the retry logic in RMID.start() should check that the
subprocess hasn't terminated
- JDK-8035424: (reflect) Performance problem in
sun.reflect.generics.parser.SignatureParser
@@ -23,6 +25,8 @@ Live versions of these release notes can be found at:
- JDK-8079891: Store configure log in $BUILD/configure.log
- JDK-8080082: configure fails if you create an empty directory and then run configure
from it
- JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
+ - JDK-8131062: aarch64: add support for GHASH acceleration
+ - JDK-8134869: AARCH64: GHASH intrinsic is not optimal
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
- JDK-8161016: Strange behavior of URLConnection with proxy
@@ -59,12 +63,15 @@ Live versions of these release notes can be found at:
- JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
- JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu
usage in containers
- JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
- JDK-8269882: stack-use-after-scope in NewObjectA
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
- JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+ - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path
contains colon
- JDK-8272214: [8u] Build failure after backport of JDK-8248901
+ - JDK-8272714: [8u] Build failure after backport of JDK-8248901 with MSVC 2013
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 149ca75..35a55bd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2621,6 +2621,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Sep 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b05 (EA)
+- Update release notes for 8u312-b05.
+
* Mon Sep 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.2.ea
- Reduce disk footprint by removing build artifacts by default.
diff --git a/sources b/sources
index 36c8460..7c2359c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz) =
7553ff5b007150a3361be355e210ae8394926b61aeb1921c67e839710d8a57a639060725b589b7c62ef7b67936239452b438b68e08b38be4c74a3f636f7e9823
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b05-4curve.tar.xz) =
41aa7cfe6946f9b88e8ae66716e8db204a401f5ded43037c54c071b7a895e08df389d6a7ae5961da00c309a6802c88197cd59ed8e5e52a466c997a680f7f425f
commit 92642a8a9641a89fdbf0dd620f25258bb1d32f03
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Oct 1 16:29:42 2021 +0100
Reduce disk footprint by removing build artifacts by default.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 22a6971..149ca75 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -22,6 +22,8 @@
%bcond_without slowdebug
# Enable release builds by default on relevant arches.
%bcond_without release
+# Remove build artifacts by default
+%bcond_with artifacts
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
# This fixes detailed NMT and other tools which need minimal debug info.
@@ -309,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -343,6 +345,7 @@
%global jdkimage j2sdk-image
# output dir stub
%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
+%define installoutputdir() %{expand:install/jdk8.install%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
@@ -1045,8 +1048,8 @@ exit 0
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-#javadoc is in jdk8 noarch, so also licnese file must be treated like it
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+#javadoc is in jdk8 noarch, so also license file must be treated like it
+%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java
@@ -1057,8 +1060,8 @@ exit 0
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-#javadoc is in jdk8 noarch, so also licnese file must be treated like it
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+#javadoc is in jdk8 noarch, so also license file must be treated like it
+%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java-zip
@@ -1938,9 +1941,10 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS
function buildjdk() {
local outputdir=${1}
- local buildjdk=${2}
- local maketargets=${3}
- local debuglevel=${4}
+ local installdir=${2}
+ local buildjdk=${3}
+ local maketargets=${4}
+ local debuglevel=${5}
local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
# Variable used in hs_err hook on build failures
@@ -1950,7 +1954,7 @@ function buildjdk() {
${buildjdk}/bin/java -version
echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
- mkdir -p ${outputdir}
+ mkdir -p ${outputdir} ${installdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
@@ -2011,6 +2015,23 @@ function buildjdk() {
find images/%{jdkimage}/bin/ -exec chmod +x {} \;
popd >& /dev/null
+
+ echo "Installing build from ${outputdir} to ${installdir}..."
+ echo "Installing images..."
+ mv ${outputdir}/images ${installdir}
+ if [ -d ${outputdir}/bundles ] ; then
+ echo "Installing bundles...";
+ mv ${outputdir}/bundles ${installdir} ;
+ fi
+ if [ -d ${outputdir}/docs ] ; then
+ echo "Installing docs...";
+ mv ${outputdir}/docs ${installdir} ;
+ fi
+
+%if !%{with artifacts}
+ echo "Removing output directory...";
+ rm -rf ${outputdir}
+%endif
}
for suffix in %{build_loop} ; do
@@ -2024,6 +2045,8 @@ fi
systemjdk=/usr/lib/jvm/java-openjdk
builddir=%{buildoutputdir -- $suffix}
bootbuilddir=boot${builddir}
+installdir=%{installoutputdir -- $suffix}
+bootinstalldir=boot${installdir}
# Debug builds don't need same targets as release for
# build speed-up
@@ -2033,15 +2056,15 @@ if echo $debugbuild | grep -q "debug" ; then
fi
%if %{bootstrap_build}
-buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
-buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}"
${debugbuild}
-rm -rf ${bootbuilddir}
+buildjdk ${bootbuilddir} ${bootinstalldir} ${systemjdk} "%{bootstrap_targets}"
${debugbuild}
+buildjdk ${builddir} ${installdir} $(pwd)/${bootinstalldir}/images/%{jdkimage}
"${maketargets}" ${debugbuild}
+%{!?with_artifacts:rm -rf ${bootinstalldir}}
%else
-buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+buildjdk ${builddir} ${installdir} ${systemjdk} "${maketargets}" ${debugbuild}
%endif
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
@@ -2067,7 +2090,7 @@ done
# We test debug first as it will give better diagnostics on a crash
for suffix in %{build_loop} ; do
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+export JAVA_HOME=$(pwd)/%{installoutputdir -- $suffix}/images/%{jdkimage}
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -2182,7 +2205,7 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
# Install the jdk
-pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
+pushd %{installoutputdir -- $suffix}/images/%{jdkimage}
# Install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
@@ -2249,9 +2272,9 @@ popd
if ! echo $suffix | grep -q "debug" ; then
# Install Javadoc documentation
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
- cp -a %{buildoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
+ cp -a %{installoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
- cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+ cp -a %{installoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
fi
# Install release notes
@@ -2598,6 +2621,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Sep 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.2.ea
+- Reduce disk footprint by removing build artifacts by default.
+
* Sun Sep 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b04 (EA)
- Update release notes for 8u312-b04.
commit 5e8cea34ec67303a43c0d0bd3a57e05a93705b0a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Sep 26 20:02:53 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b04 (EA)
Update release notes for 8u312-b04.
diff --git a/.gitignore b/.gitignore
index 5ddd4a9..402cdf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -242,3 +242,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 9052cf4..832ad01 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,7 @@ Live versions of these release notes can be found at:
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
* Other changes
+ - JDK-6847157: java.lang.NullPointerException: HDC for component at
sun.java2d.loops.Blit.Blit
- JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
- JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
- JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
@@ -24,8 +25,11 @@ Live versions of these release notes can be found at:
- JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
- JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
- JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
+ - JDK-8161016: Strange behavior of URLConnection with proxy
- JDK-8166673: The new implementation of Robot.waitForIdle() may hang
- JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
+ - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
+ - JDK-8194246: JVM crashes when calling getStackTrace if stack contains a method that
is a member of a very large class
- JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
- JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
- JDK-8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error
@@ -38,6 +42,7 @@ Live versions of these release notes can be found at:
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
@@ -45,12 +50,17 @@ Live versions of these release notes can be found at:
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers:
getLoggerNames() returned unexpected loggers"
- JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
- JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8266206: Build failure after JDK-8264752 with older GCCs
+ - JDK-8268103: JNI functions incorrectly return a double after JDK-8265836
+ - JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating
handle outside HandleMark
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short
+ - JDK-8269882: stack-use-after-scope in NewObjectA
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
- JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dfda03b..22a6971 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2598,7 +2598,11 @@ cjc.mainProgram(args)
%endif
%changelog
-* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
+* Sun Sep 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b04 (EA)
+- Update release notes for 8u312-b04.
+
+* Tue Sep 14 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
- Add patch to login to the NSS software token when in FIPS mode.
* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
@@ -2727,7 +2731,7 @@ cjc.mainProgram(args)
- removed patch1 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch and patch3
rh1648644-java_access_bridge_privileged_security.patch
- removal of accessibility{,-slowdebug,-fastdebug} subpackages
- no longer creating symlinks of %%{_libdir}/java-atk-wrapper/libatk-wrapper.so.0
libatk-wrapper.so and %%{_libdir}/java-atk-wrapper/java-atk-wrapper.jar
java-atk-wrapper.jar
-- no longer creating %%{_jvmdir}/%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
+- no longer creating %%{_jvmdir}/%%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
- removal of accessibility{,-slowdebug,-fastdebug} subpackages files sections
* Mon Mar 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b06-0.0.ea
diff --git a/sources b/sources
index fc6c611..36c8460 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz) =
e6a9dd82d3c76920b03124f9cf261f68f520bea9368427b850adfb36385cd717cfe6a5f684b6f1653d4d79c9863e45e4b62907567446e8a5c68587a3a8bdef10
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b04-4curve.tar.xz) =
7553ff5b007150a3361be355e210ae8394926b61aeb1921c67e839710d8a57a639060725b589b7c62ef7b67936239452b438b68e08b38be4c74a3f636f7e9823
commit aa2c8f31b92b74e2eca59bdcf1acb5b92792764b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Sep 14 02:59:18 2021 +0100
Add patch to login to the NSS software token when in FIPS mode.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3d857b9..dfda03b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1310,6 +1310,8 @@ Patch1005: rh1906862-always_initialise_configurator_access.patch
# RH1929465: Improve system FIPS detection
Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
+# RH1996182: Login to the NSS software token in FIPS mode
+Patch1008: rh1996182-login_to_nss_software_token.patch
#############################################
#
@@ -1838,6 +1840,7 @@ sh %{SOURCE12}
%patch1005
%patch1006
%patch1007
+%patch1008
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2595,6 +2598,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.2.ea
+- Add patch to login to the NSS software token when in FIPS mode.
+
* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b03 (EA)
- Update release notes for 8u312-b03.
diff --git a/rh1996182-login_to_nss_software_token.patch
b/rh1996182-login_to_nss_software_token.patch
new file mode 100644
index 0000000..341e092
--- /dev/null
+++ b/rh1996182-login_to_nss_software_token.patch
@@ -0,0 +1,55 @@
+# HG changeset patch
+# User mbalao
+# Date 1630103180 -3600
+# Fri Aug 27 23:26:20 2021 +0100
+# Node ID b3bd3119fab9bc5adfd7073377aca12bb1af80b3
+# Parent c90394a76ee02a689f95199559d5724824b4b25e
+RH1996182: Login to the NSS Software Token in FIPS Mode
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -42,6 +42,8 @@
+ import javax.security.auth.callback.PasswordCallback;
+ import javax.security.auth.callback.TextOutputCallback;
+
++import sun.misc.SharedSecrets;
++
+ import sun.security.util.Debug;
+ import sun.security.util.ResourcesMgr;
+
+@@ -58,6 +60,9 @@
+ */
+ public final class SunPKCS11 extends AuthProvider {
+
++ private static final boolean systemFipsEnabled = SharedSecrets
++ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled();
++
+ private static final long serialVersionUID = -1354835039035306505L;
+
+ static final Debug debug = Debug.getInstance("sunpkcs11");
+@@ -368,6 +373,24 @@
+ if (nssModule != null) {
+ nssModule.setProvider(this);
+ }
++ if (systemFipsEnabled) {
++ // The NSS Software Token in FIPS 140-2 mode requires a user
++ // login for most operations. See sftk_fipsCheck. The NSS DB
++ // (/etc/pki/nssdb) PIN is empty.
++ Session session = null;
++ try {
++ session = token.getOpSession();
++ p11.C_Login(session.id(), CKU_USER, new char[] {});
++ } catch (PKCS11Exception p11e) {
++ if (debug != null) {
++ debug.println("Error during token login: " +
++ p11e.getMessage());
++ }
++ throw p11e;
++ } finally {
++ token.releaseSession(session);
++ }
++ }
+ } catch (Exception e) {
+ if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) {
+ throw new UnsupportedOperationException
commit 0cb1fbdb0bdab3fca4fd43433c0d0c677ceab770
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Sep 13 12:28:45 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b03 (EA)
Update release notes for 8u312-b03.
diff --git a/.gitignore b/.gitignore
index 5d0524d..5ddd4a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -241,3 +241,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 3cf6136..9052cf4 100644
--- a/NEWS
+++ b/NEWS
@@ -34,21 +34,27 @@ Live versions of these release notes can be found at:
- JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
- JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
- JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
+ - JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a
raw 0xF7
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
- JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
+ - JDK-8254967: com.sun.net.HttpsServer spins on TLS session close
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
- JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
+ - JDK-8266206: Build failure after JDK-8264752 with older GCCs
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
+ - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm
Setup
- JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+ - JDK-8272214: [8u] Build failure after backport of JDK-8248901
New in release OpenJDK 8u302 (2021-07-20):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c545df3..3d857b9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2595,6 +2595,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Sep 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b03 (EA)
+- Update release notes for 8u312-b03.
+
* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b02-0.1.ea
- Update to aarch64-shenandoah-jdk8u312-b02 (EA)
- Update release notes for 8u312-b02.
diff --git a/sources b/sources
index c2c873f..fc6c611 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz) =
fcff36d3c837de6770eb32ac1ff514278ec92feb6311aa0b8150d9da4b917494899993b498ffd3ac55c7ddbd22860105af0ffcb30b3c43ec702847650098c349
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b03-4curve.tar.xz) =
e6a9dd82d3c76920b03124f9cf261f68f520bea9368427b850adfb36385cd717cfe6a5f684b6f1653d4d79c9863e45e4b62907567446e8a5c68587a3a8bdef10
commit 12c54a64a11f9620ab5d31b3773f15156f442dba
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Sep 10 05:30:49 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b02 (EA)
Update release notes for 8u312-b02.
diff --git a/.gitignore b/.gitignore
index 4252ee4..5d0524d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -240,3 +240,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 947e72a..3cf6136 100644
--- a/NEWS
+++ b/NEWS
@@ -37,12 +37,14 @@ Live versions of these release notes can be found at:
- JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
- JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are
present and cpusets.effective_cpus is not available
- JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
- JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
- JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
- JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
- JDK-8263311: Watch registry changes for remote printers update instead of polling
- JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
+ - JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a
container
- JDK-8265978: make test should look for more locations when searching for exit code
- JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
- JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 294ed12..c545df3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u312-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2595,6 +2595,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Sep 10 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b02 (EA)
+- Update release notes for 8u312-b02.
+
* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
- Port FIPS system detection support to OpenJDK 8u
- Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
diff --git a/sources b/sources
index 743cecf..c2c873f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz) =
ddce8d47e12e4de078004d981d4c89538738a7cb201b7e7f820f51a39aac2c00040e3ba9c6ee92ec10d10e5607f420a4c3e4d059e05a8d9930e3f71e0917c84f
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b02-4curve.tar.xz) =
fcff36d3c837de6770eb32ac1ff514278ec92feb6311aa0b8150d9da4b917494899993b498ffd3ac55c7ddbd22860105af0ffcb30b3c43ec702847650098c349
commit d57e76505362030867d295ab1f4c36a2664de233
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Sep 4 02:14:31 2021 +0100
Detect FIPS using SECMOD_GetSystemFIPSEnabled in the new libsystemconf JDK library.
Port FIPS system detection support to OpenJDK 8u
Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
Remove unneeded Requires on NSS as it will now be dynamically linked and detected by
RPM.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a31c545..294ed12 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -352,7 +352,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
%if %is_system_jdk
%global __provides_exclude ^(%{_privatelibs})$
@@ -805,6 +805,7 @@ exit 0
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so
@@ -1112,8 +1113,6 @@ Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
-# for FIPS PKCS11 provider
-Requires: nss
# Post requires alternatives to install tool alternatives
Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
@@ -1308,6 +1307,9 @@ Patch1002: rh1760838-fips_default_keystore_type.patch
Patch1004: rh1860986-disable_tlsv1.3_in_fips_mode.patch
# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
Patch1005: rh1906862-always_initialise_configurator_access.patch
+# RH1929465: Improve system FIPS detection
+Patch1006: rh1929465-improve_system_FIPS_detection-root.patch
+Patch1007: rh1929465-improve_system_FIPS_detection-jdk.patch
#############################################
#
@@ -1454,8 +1456,8 @@ BuildRequires: libXinerama-devel
BuildRequires: libXrender-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
-# Requirements for setting up the nss.cfg
-BuildRequires: nss-devel
+# Requirements for setting up the nss.cfg and FIPS support
+BuildRequires: nss-devel >= 3.53
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
@@ -1834,6 +1836,8 @@ sh %{SOURCE12}
%patch1003
%patch1004
%patch1005
+%patch1006
+%patch1007
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -1965,6 +1969,7 @@ function buildjdk() {
--with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
+ --enable-sysconf-nss \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
@@ -2590,7 +2595,15 @@ cjc.mainProgram(args)
%endif
%changelog
-* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.1.ea
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
+- Port FIPS system detection support to OpenJDK 8u
+- Minor code cleanups on FIPS detection patch and check for SECMOD_GetSystemFIPSEnabled
in configure.
+- Remove unneeded Requires on NSS as it will now be dynamically linked and detected by
RPM.
+
+* Wed Sep 01 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.312.b01-0.3.ea
+- Detect FIPS using SECMOD_GetSystemFIPSEnabled in the new libsystemconf JDK library.
+
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.2.ea
- Update to aarch64-shenandoah-jdk8u312-b01 (EA)
- Update release notes for 8u312-b01.
- Switch to EA mode.
diff --git a/rh1929465-improve_system_FIPS_detection-jdk.patch
b/rh1929465-improve_system_FIPS_detection-jdk.patch
new file mode 100644
index 0000000..1461be8
--- /dev/null
+++ b/rh1929465-improve_system_FIPS_detection-jdk.patch
@@ -0,0 +1,344 @@
+diff --git openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
openjdk/jdk/make/lib/SecurityLibraries.gmk
+--- openjdk.orig/jdk/make/lib/SecurityLibraries.gmk
++++ openjdk/jdk/make/lib/SecurityLibraries.gmk
+@@ -289,3 +289,34 @@
+
+ endif
+ endif
++
++################################################################################
++# Create the systemconf library
++
++LIBSYSTEMCONF_CFLAGS :=
++LIBSYSTEMCONF_CXXFLAGS :=
++
++ifeq ($(USE_SYSCONF_NSS), true)
++ LIBSYSTEMCONF_CFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++ LIBSYSTEMCONF_CXXFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS
++endif
++
++ifeq ($(OPENJDK_BUILD_OS), linux)
++ $(eval $(call SetupNativeCompilation,BUILD_LIBSYSTEMCONF, \
++ LIBRARY := systemconf, \
++ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
++ SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/security, \
++ LANG := C, \
++ OPTIMIZATION := LOW, \
++ CFLAGS := $(CFLAGS_JDKLIB) $(LIBSYSTEMCONF_CFLAGS), \
++ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBSYSTEMCONF_CXXFLAGS), \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsystemconf/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX := $(LIBDL) $(NSS_LIBS), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsystemconf, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF)
++endif
++
+diff --git openjdk.orig/jdk/make/mapfiles/libsystemconf/mapfile-vers
openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/make/mapfiles/libsystemconf/mapfile-vers
+@@ -0,0 +1,35 @@
++#
++# Copyright (c) 2021, 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. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# 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.
++#
++
++# Define public interface.
++
++SUNWprivate_1.1 {
++ global:
++ DEF_JNI_OnLoad;
++ DEF_JNI_OnUnLoad;
++ Java_java_security_SystemConfigurator_getSystemFIPSEnabled;
++ local:
++ *;
++};
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2019, 2020, Red Hat, Inc.
++ * Copyright (c) 2019, 2021, Red Hat, Inc.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -30,14 +30,9 @@
+ import java.io.FileInputStream;
+ import java.io.IOException;
+
+-import java.nio.file.Files;
+-import java.nio.file.FileSystems;
+-import java.nio.file.Path;
+-
+ import java.util.Iterator;
+ import java.util.Map.Entry;
+ import java.util.Properties;
+-import java.util.regex.Pattern;
+
+ import sun.security.util.Debug;
+
+@@ -59,10 +54,21 @@
+ private static final String CRYPTO_POLICIES_JAVA_CONFIG =
+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
+
+- private static final String CRYPTO_POLICIES_CONFIG =
+- CRYPTO_POLICIES_BASE_DIR + "/config";
++ private static boolean systemFipsEnabled = false;
++
++ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf";
++
++ private static native boolean getSystemFIPSEnabled()
++ throws IOException;
+
+- private static boolean systemFipsEnabled = false;
++ static {
++ AccessController.doPrivileged(new PrivilegedAction<Void>() {
++ public Void run() {
++ System.loadLibrary(SYSTEMCONF_NATIVE_LIB);
++ return null;
++ }
++ });
++ }
+
+ /*
+ * Invoked when java.security.Security class is initialized, if
+@@ -171,17 +177,34 @@
+ }
+
+ /*
+- * FIPS is enabled only if crypto-policies are set to "FIPS"
+- * and the com.redhat.fips property is true.
++ * OpenJDK FIPS mode will be enabled only if the com.redhat.fips
++ * system property is true (default) and the system is in FIPS mode.
++ *
++ * There are 2 possible ways in which OpenJDK detects that the system
++ * is in FIPS mode: 1) if the NSS SECMOD_GetSystemFIPSEnabled API is
++ * available at OpenJDK's built-time, it is called; 2) otherwise, the
++ * /proc/sys/crypto/fips_enabled file is read.
+ */
+- private static boolean enableFips() throws Exception {
++ private static boolean enableFips() throws IOException {
+ boolean shouldEnable =
Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
+ if (shouldEnable) {
+- Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
+- String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
+- if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
+- Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
+- return pattern.matcher(cryptoPoliciesConfig).find();
++ if (sdebug != null) {
++ sdebug.println("Calling getSystemFIPSEnabled
(libsystemconf)...");
++ }
++ try {
++ shouldEnable = getSystemFIPSEnabled();
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
returned: "
++ + shouldEnable);
++ }
++ return shouldEnable;
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf)
failed:");
++ sdebug.println(e.getMessage());
++ }
++ throw e;
++ }
+ } else {
+ return false;
+ }
+diff --git openjdk.orig/jdk/src/solaris/native/java/security/systemconf.c
openjdk/jdk/src/solaris/native/java/security/systemconf.c
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/solaris/native/java/security/systemconf.c
+@@ -0,0 +1,168 @@
++/*
++ * Copyright (c) 2021, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++#include <dlfcn.h>
++#include <jni.h>
++#include <jni_util.h>
++#include <stdio.h>
++
++#ifdef SYSCONF_NSS
++#include <nss3/pk11pub.h>
++#endif //SYSCONF_NSS
++
++#include "java_security_SystemConfigurator.h"
++
++#define FIPS_ENABLED_PATH "/proc/sys/crypto/fips_enabled"
++#define MSG_MAX_SIZE 96
++
++static jmethodID debugPrintlnMethodID = NULL;
++static jobject debugObj = NULL;
++
++static void throwIOException(JNIEnv *env, const char *msg);
++static void dbgPrint(JNIEnv *env, const char* msg);
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnLoad
++ */
++JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++ jclass sysConfCls, debugCls;
++ jfieldID sdebugFld;
++
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return JNI_EVERSION; /* JNI version not supported */
++ }
++
++ sysConfCls =
(*env)->FindClass(env,"java/security/SystemConfigurator");
++ if (sysConfCls == NULL) {
++ printf("libsystemconf: SystemConfigurator class not found\n");
++ return JNI_ERR;
++ }
++ sdebugFld = (*env)->GetStaticFieldID(env, sysConfCls,
++ "sdebug", "Lsun/security/util/Debug;");
++ if (sdebugFld == NULL) {
++ printf("libsystemconf: SystemConfigurator::sdebug field not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->GetStaticObjectField(env, sysConfCls, sdebugFld);
++ if (debugObj != NULL) {
++ debugCls = (*env)->FindClass(env,"sun/security/util/Debug");
++ if (debugCls == NULL) {
++ printf("libsystemconf: Debug class not found\n");
++ return JNI_ERR;
++ }
++ debugPrintlnMethodID = (*env)->GetMethodID(env, debugCls,
++ "println", "(Ljava/lang/String;)V");
++ if (debugPrintlnMethodID == NULL) {
++ printf("libsystemconf: Debug::println(String) method not
found\n");
++ return JNI_ERR;
++ }
++ debugObj = (*env)->NewGlobalRef(env, debugObj);
++ }
++
++ return (*env)->GetVersion(env);
++}
++
++/*
++ * Class: java_security_SystemConfigurator
++ * Method: JNI_OnUnload
++ */
++JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved)
++{
++ JNIEnv *env;
++
++ if (debugObj != NULL) {
++ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) {
++ return; /* Should not happen */
++ }
++ (*env)->DeleteGlobalRef(env, debugObj);
++ }
++}
++
++JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEnabled
++ (JNIEnv *env, jclass cls)
++{
++ int fips_enabled;
++ char msg[MSG_MAX_SIZE];
++ int msg_bytes;
++
++#ifdef SYSCONF_NSS
++
++ dbgPrint(env, "getSystemFIPSEnabled: calling
SECMOD_GetSystemFIPSEnabled");
++ fips_enabled = SECMOD_GetSystemFIPSEnabled();
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " SECMOD_GetSystemFIPSEnabled returned 0x%x", fips_enabled);
++ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
++ dbgPrint(env, msg);
++ } else {
++ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
++ " SECMOD_GetSystemFIPSEnabled return value");
++ }
++ return (fips_enabled == 1 ? JNI_TRUE : JNI_FALSE);
++
++#else // SYSCONF_NSS
++
++ FILE *fe;
++
++ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH);
++ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) {
++ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH);
++ }
++ fips_enabled = fgetc(fe);
++ fclose(fe);
++ if (fips_enabled == EOF) {
++ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH);
++ }
++ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \
++ " read character is '%c'", fips_enabled);
++ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) {
++ dbgPrint(env, msg);
++ } else {
++ dbgPrint(env, "getSystemFIPSEnabled: cannot render" \
++ " read character");
++ }
++ return (fips_enabled == '1' ? JNI_TRUE : JNI_FALSE);
++
++#endif // SYSCONF_NSS
++}
++
++static void throwIOException(JNIEnv *env, const char *msg)
++{
++ jclass cls = (*env)->FindClass(env, "java/io/IOException");
++ if (cls != 0)
++ (*env)->ThrowNew(env, cls, msg);
++}
++
++static void dbgPrint(JNIEnv *env, const char* msg)
++{
++ jstring jMsg;
++ if (debugObj != NULL) {
++ jMsg = (*env)->NewStringUTF(env, msg);
++ CHECK_NULL(jMsg);
++ (*env)->CallVoidMethod(env, debugObj, debugPrintlnMethodID, jMsg);
++ }
++}
diff --git a/rh1929465-improve_system_FIPS_detection-root.patch
b/rh1929465-improve_system_FIPS_detection-root.patch
new file mode 100644
index 0000000..64d8ac0
--- /dev/null
+++ b/rh1929465-improve_system_FIPS_detection-root.patch
@@ -0,0 +1,152 @@
+diff --git openjdk.orig/common/autoconf/configure.ac
openjdk/common/autoconf/configure.ac
+--- openjdk.orig/common/autoconf/configure.ac
++++ openjdk/common/autoconf/configure.ac
+@@ -212,6 +212,7 @@
+ LIB_SETUP_ALSA
+ LIB_SETUP_FONTCONFIG
+ LIB_SETUP_MISC_LIBS
++LIB_SETUP_SYSCONF_LIBS
+ LIB_SETUP_STATIC_LINK_LIBSTDCPP
+ LIB_SETUP_ON_WINDOWS
+
+diff --git openjdk.orig/common/autoconf/libraries.m4
openjdk/common/autoconf/libraries.m4
+--- openjdk.orig/common/autoconf/libraries.m4
++++ openjdk/common/autoconf/libraries.m4
+@@ -1067,3 +1067,63 @@
+ BASIC_DEPRECATED_ARG_WITH([dxsdk-include])
+ fi
+ ])
++
++################################################################################
++# Setup system configuration libraries
++################################################################################
++AC_DEFUN_ONCE([LIB_SETUP_SYSCONF_LIBS],
++[
++ ###############################################################################
++ #
++ # Check for the NSS library
++ #
++
++ AC_MSG_CHECKING([whether to use the system NSS library with the System Configurator
(libsysconf)])
++
++ # default is not available
++ DEFAULT_SYSCONF_NSS=no
++
++ AC_ARG_ENABLE([sysconf-nss], [AS_HELP_STRING([--enable-sysconf-nss],
++ [build the System Configurator (libsysconf) using the system NSS library if
available @<:@disabled@:>@])],
++ [
++ case "${enableval}" in
++ yes)
++ sysconf_nss=yes
++ ;;
++ *)
++ sysconf_nss=no
++ ;;
++ esac
++ ],
++ [
++ sysconf_nss=${DEFAULT_SYSCONF_NSS}
++ ])
++ AC_MSG_RESULT([$sysconf_nss])
++
++ USE_SYSCONF_NSS=false
++ if test "x${sysconf_nss}" = "xyes"; then
++ PKG_CHECK_MODULES(NSS, nss >= 3.53, [NSS_FOUND=yes], [NSS_FOUND=no])
++ if test "x${NSS_FOUND}" = "xyes"; then
++ AC_MSG_CHECKING([for system FIPS support in NSS])
++ saved_libs="${LIBS}"
++ saved_cflags="${CFLAGS}"
++ CFLAGS="${CFLAGS} ${NSS_CFLAGS}"
++ LIBS="${LIBS} ${NSS_LIBS}"
++ AC_LANG_PUSH([C])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss3/pk11pub.h>]],
++ [[SECMOD_GetSystemFIPSEnabled()]])],
++ [AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])
++ AC_MSG_ERROR([System NSS FIPS detection unavailable])])
++ AC_LANG_POP([C])
++ CFLAGS="${saved_cflags}"
++ LIBS="${saved_libs}"
++ USE_SYSCONF_NSS=true
++ else
++ dnl NSS 3.53 is the one that introduces the SECMOD_GetSystemFIPSEnabled API
++ dnl in nss3/pk11pub.h.
++ AC_MSG_ERROR([--enable-sysconf-nss specified, but NSS 3.53 or above not
found.])
++ fi
++ fi
++ AC_SUBST(USE_SYSCONF_NSS)
++])
+diff --git openjdk.orig/common/autoconf/spec.gmk.in openjdk/common/autoconf/spec.gmk.in
+--- openjdk.orig/common/autoconf/spec.gmk.in
++++ openjdk/common/autoconf/spec.gmk.in
+@@ -312,6 +312,10 @@
+ ALSA_LIBS:=@ALSA_LIBS@
+ ALSA_CFLAGS:=@ALSA_CFLAGS@
+
++USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@
++NSS_LIBS:=@NSS_LIBS@
++NSS_CFLAGS:=@NSS_CFLAGS@
++
+ PACKAGE_PATH=@PACKAGE_PATH@
+
+ # Source file for cacerts
+diff --git openjdk.orig/common/bin/compare_exceptions.sh.incl
openjdk/common/bin/compare_exceptions.sh.incl
+--- openjdk.orig/common/bin/compare_exceptions.sh.incl
++++ openjdk/common/bin/compare_exceptions.sh.incl
+@@ -280,6 +280,7 @@
+ ./jre/lib/i386/libsplashscreen.so
+ ./jre/lib/i386/libsunec.so
+ ./jre/lib/i386/libsunwjdga.so
++./jre/lib/i386/libsystemconf.so
+ ./jre/lib/i386/libt2k.so
+ ./jre/lib/i386/libunpack.so
+ ./jre/lib/i386/libverify.so
+@@ -433,6 +434,7 @@
+ ./jre/lib/amd64/libsplashscreen.so
+ ./jre/lib/amd64/libsunec.so
+ ./jre/lib/amd64/libsunwjdga.so
++//jre/lib/amd64/libsystemconf.so
+ ./jre/lib/amd64/libt2k.so
+ ./jre/lib/amd64/libunpack.so
+ ./jre/lib/amd64/libverify.so
+@@ -587,6 +589,7 @@
+ ./jre/lib/sparc/libsplashscreen.so
+ ./jre/lib/sparc/libsunec.so
+ ./jre/lib/sparc/libsunwjdga.so
++./jre/lib/sparc/libsystemconf.so
+ ./jre/lib/sparc/libt2k.so
+ ./jre/lib/sparc/libunpack.so
+ ./jre/lib/sparc/libverify.so
+@@ -741,6 +744,7 @@
+ ./jre/lib/sparcv9/libsplashscreen.so
+ ./jre/lib/sparcv9/libsunec.so
+ ./jre/lib/sparcv9/libsunwjdga.so
++./jre/lib/sparcv9/libsystemconf.so
+ ./jre/lib/sparcv9/libt2k.so
+ ./jre/lib/sparcv9/libunpack.so
+ ./jre/lib/sparcv9/libverify.so
+diff --git openjdk.orig/common/nb_native/nbproject/configurations.xml
openjdk/common/nb_native/nbproject/configurations.xml
+--- openjdk.orig/common/nb_native/nbproject/configurations.xml
++++ openjdk/common/nb_native/nbproject/configurations.xml
+@@ -53,6 +53,9 @@
+ <in>jvmtiEnterTrace.cpp</in>
+ </df>
+ </df>
++ <df name="libsystemconf">
++ <in>systemconf.c</in>
++ </df>
+ </df>
+ </df>
+ <df name="jdk">
+@@ -12772,6 +12775,11 @@
+ tool="0"
+ flavor2="0">
+ </item>
++ <item path="../../jdk/src/solaris/native/java/security/systemconf.c"
++ ex="false"
++ tool="0"
++ flavor2="0">
++ </item>
+ <item path="../../jdk/src/share/native/java/util/TimeZone.c"
+ ex="false"
+ tool="0"
commit 37a363e30cf6934369ea54430e41bd92cd21d940
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Sep 1 23:23:51 2021 +0100
Update to aarch64-shenandoah-jdk8u312-b01 (EA)
Update release notes for 8u312-b01.
Switch to EA mode.
Remove "-clean" suffix as no 8u312 builds are unclean.
diff --git a/.gitignore b/.gitignore
index 67c9eb6..4252ee4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -239,3 +239,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 1cb973a..947e72a 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,51 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u312 (2021-10-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u312
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt
+
+* Other changes
+ - JDK-7146776: deadlock between URLStreamHandler.getHostAddress and
file.Handler.openconnection
+ - JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime
+ - JDK-8027154: [TESTBUG] Test
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
+ - JDK-8035001: TEST_BUG: the retry logic in RMID.start() should check that the
subprocess hasn't terminated
+ - JDK-8035424: (reflect) Performance problem in
sun.reflect.generics.parser.SignatureParser
+ - JDK-8042557: compiler/uncommontrap/TestSpecTrapClassUnloading.java fails with: GC
triggered before VM initialization completed
+ - JDK-8054118: java/net/ipv6tests/UdpTest.java failed intermittently
+ - JDK-8065215: Print warning summary at end of configure
+ - JDK-8072767: DefaultCellEditor for comboBox creates ActionEvent with wrong source
object
+ - JDK-8079891: Store configure log in $BUILD/configure.log
+ - JDK-8080082: configure fails if you create an empty directory and then run configure
from it
+ - JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass
base: 0x0000000000000000, Narrow klass shift: 3' missing
+ - JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP
address
+ - JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get
+ - JDK-8166673: The new implementation of Robot.waitForIdle() may hang
+ - JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders
+ - JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails
+ - JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore
+ - JDK-8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error
+ - JDK-8214418: half-closed SSLEngine status may cause application dead loop
+ - JDK-8214513: A PKCS12 keystore from Java 8 using custom PBE parameters cannot be read
in Java 11
+ - JDK-8220786: Create new switch to redirect error reporting output to stdout or
stderr
+ - JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
+ - JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces
+ - JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
+ - JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
+ - JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
+ - JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken.
+ - JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java
test
+ - JDK-8262000:
jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with
"OutOfMemoryError: Java heap space"
+ - JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
+ - JDK-8263311: Watch registry changes for remote printers update instead of polling
+ - JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older
xcode
+ - JDK-8265978: make test should look for more locations when searching for exit code
+ - JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport
+ - JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891
+ - JDK-8271466: StackGap test fails on aarch64 due to "-m64"
+
New in release OpenJDK 8u302 (2021-07-20):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index e9eed11..c6f0756 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -177,7 +177,7 @@ if [ "X$COMPRESSION" = "Xxz" ] ; then
else
SWITCH=czf
fi
-TARBALL_NAME=${FILE_NAME_ROOT}-4curve-clean.tar.${COMPRESSION}
+TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk
mv ${TARBALL_NAME} ..
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 68867b4..a31c545 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u312-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -314,7 +314,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1238,7 +1238,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve-clean.tar.xz
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -2590,6 +2590,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Sep 01 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.312.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u312-b01 (EA)
+- Update release notes for 8u312-b01.
+- Switch to EA mode.
+- Remove "-clean" suffix as no 8u312 builds are unclean.
+
* Mon Aug 30 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.302.b08-2
- alternatives creation moved to posttrans
- Thus fixing the old reisntall issue:
diff --git a/sources b/sources
index 3236329..743cecf 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz) =
04ecdcde841038c0042b44fb3c5303a08616864566fb918ab261fc381fae8804a21f875b1645538e864a1c6db5985f16dfc13b91eb1caeeab54d6d07828c7657
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u312-b01-4curve.tar.xz) =
ddce8d47e12e4de078004d981d4c89538738a7cb201b7e7f820f51a39aac2c00040e3ba9c6ee92ec10d10e5607f420a4c3e4d059e05a8d9930e3f71e0917c84f
commit ae9982ef76614e5357e5d4409d330f9e738b3277
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Sep 1 16:48:03 2021 +0200
alternatives creation moved to posttrans
Thus fixing the old reisntall issue:
https://bugzilla.redhat.com/show_bug.cgi?id=1200302
https://bugzilla.redhat.com/show_bug.cgi?id=1976053
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 53718f7..68867b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -63,7 +63,7 @@
# in alternatives those are slaves and master, very often triplicated by man pages
# in files all masters and slaves are ghosted
# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
-# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_
+# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_ -e alternatives
# TODO - fix those hardcoded lists via single list
# Those files must *NOT* be ghosted for *slowdebug* packages
# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -414,12 +414,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
exit 0
}
-
-%define post_headless() %{expand:
-%ifarch %{share_arches}
-%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
-%endif
-
+%define alternatives_java_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -469,8 +464,13 @@ for X in %{origin} %{javaver} ; do
alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin}
%{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+}
+%define post_headless() %{expand:
+%ifarch %{share_arches}
+%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
+%endif
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -507,8 +507,8 @@ exit 0
%{update_desktop_icons}
}
-%define post_devel() %{expand:
+%define alternatives_javac_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -616,7 +616,9 @@ for X in %{origin} %{javaver} ; do
done
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+}
+%define post_devel() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -639,11 +641,11 @@ exit 0
}
%define posttrans_devel() %{expand:
+%{alternatives_javac_install -- %{?1}}
%{update_desktop_icons}
}
-%define post_javadoc() %{expand:
-
+%define alternatives_javadoc_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -660,8 +662,7 @@ exit 0
exit 0
}
-%define post_javadoc_zip() %{expand:
-
+%define alternatives_javadoczip_install() %{expand:
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
@@ -2419,6 +2420,9 @@ cjc.mainProgram(args)
%posttrans
%{posttrans_script %{nil}}
+%posttrans headless
+%{alternatives_java_install %{nil}}
+
%post devel
%{post_devel %{nil}}
@@ -2428,14 +2432,14 @@ cjc.mainProgram(args)
%posttrans devel
%{posttrans_devel %{nil}}
-%post javadoc
-%{post_javadoc %{nil}}
+%posttrans javadoc
+%{alternatives_javadoc_install %{nil}}
%postun javadoc
%{postun_javadoc %{nil}}
-%post javadoc-zip
-%{post_javadoc_zip %{nil}}
+%posttrans javadoc-zip
+%{alternatives_javadoczip_install %{nil}}
%postun javadoc-zip
%{postun_javadoc_zip %{nil}}
@@ -2448,6 +2452,9 @@ cjc.mainProgram(args)
%post headless-slowdebug
%{post_headless -- %{debug_suffix_unquoted}}
+%posttrans headless-slowdebug
+%{alternatives_java_install -- %{debug_suffix_unquoted}}
+
%postun slowdebug
%{postun_script -- %{debug_suffix_unquoted}}
@@ -2483,6 +2490,9 @@ cjc.mainProgram(args)
%posttrans fastdebug
%{posttrans_script -- %{fastdebug_suffix_unquoted}}
+%posttrans headless-fastdebug
+%{alternatives_java_install -- %{fastdebug_suffix_unquoted}}
+
%post devel-fastdebug
%{post_devel -- %{fastdebug_suffix_unquoted}}
@@ -2580,6 +2590,12 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Aug 30 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.302.b08-2
+- alternatives creation moved to posttrans
+- Thus fixing the old reisntall issue:
+-
https://bugzilla.redhat.com/show_bug.cgi?id=1200302
+-
https://bugzilla.redhat.com/show_bug.cgi?id=1976053
+
* Sun Aug 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-1
- Remove non-Free test and demo files from source tarball.
commit 1b05b0ca2a1c58fa9eeee68440d19506bb238846
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Aug 8 05:21:18 2021 +0100
Remove non-Free test and demo files from source tarball.
diff --git a/.gitignore b/.gitignore
index a4aa037..67c9eb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -238,3 +238,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 94b75e7..e9eed11 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -19,12 +19,25 @@
# level folder, name is created, based on parameter
#
+SCRIPT_DIR=$(dirname $0)
+JCONSOLE_JS_PATCH_DEFAULT=${SCRIPT_DIR}/jconsole-plugin.patch
+
if [ ! "x$PR3822" = "x" ] ; then
if [ ! -f "$PR3822" ] ; then
- echo "You have specified PR3822 as $PR3822 but it does not exists.
exiting"
+ echo "You have specified PR3822 as $PR3822 but it does not exist. Exiting"
exit 1
fi
fi
+
+if [ "x${JCONSOLE_JS_PATCH}" != "x" ] ; then
+ if [ ! -f "${JCONSOLE_JS_PATCH}" ] ; then
+ echo "You have specified the jconsole.js patch as ${JCONSOLE_JS_PATCH} but it does
not exist. Exiting.";
+ exit 2;
+ fi
+else
+ JCONSOLE_JS_PATCH=${JCONSOLE_JS_PATCH_DEFAULT}
+fi
+
set -e
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
@@ -42,6 +55,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if
unavailable)"
+ echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of
jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -88,6 +102,22 @@ if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
+if [ "x$REPOS" = "x" ] ; then
+ REPOS=${REPOS_DEFAULT}
+ echo "No repositories specified; defaulting to ${REPOS}"
+fi;
+
+echo -e "Settings:"
+echo -e "\tVERSION: ${VERSION}"
+echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
+echo -e "\tREPO_NAME: ${REPO_NAME}"
+echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
+echo -e "\tCOMPRESSION: ${COMPRESSION}"
+echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
+echo -e "\tREPO_ROOT: ${REPO_ROOT}"
+echo -e "\tPR3822: ${PR3822}"
+echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}"
+echo -e "\tREPOS: ${REPOS}"
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
@@ -96,22 +126,22 @@ echo "Cloning ${VERSION} root repository from
${REPO_ROOT}"
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
pushd openjdk
-
-if [ "x$REPOS" = "x" ] ; then
- repos=${REPOS_DEFAULT}
- echo "No repositories specified; defaulting to ${repos}"
-else
- repos=$REPOS
- echo "Repositories: ${repos}"
-fi;
-
-for subrepo in $repos
+for subrepo in ${REPOS}
do
echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
done
-if [ -d jdk ]; then
+# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it
non-Free
+if [ -d langtools ] ; then
+ echo "Removing langtools test case with non-Free license"
+ rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java
+ rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java
+fi
+if [ -d jdk ]; then
+# jconsole.js has a BSD license with a field-of-use restriction, making it non-Free
+echo "Removing jconsole-plugin file with non-Free license"
+rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js
echo "Removing EC source code we don't build"
rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h
rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c
@@ -123,7 +153,6 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c
rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-
if [ "x$PR3822" = "x" ] ; then
# get pr3822.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822)
@@ -135,6 +164,10 @@ else
patch -Np1 < $PR3822
fi;
fi
+
+echo "Patching out use of jconsole.js"
+patch -Np1 < ${JCONSOLE_JS_PATCH}
+
find . -name '*.orig' -exec rm -vf '{}' ';'
popd
@@ -144,7 +177,7 @@ if [ "X$COMPRESSION" = "Xxz" ] ; then
else
SWITCH=czf
fi
-TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
+TARBALL_NAME=${FILE_NAME_ROOT}-4curve-clean.tar.${COMPRESSION}
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk
mv ${TARBALL_NAME} ..
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b5067ff..53718f7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1202,7 +1202,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1237,7 +1237,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
+Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve-clean.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -2580,6 +2580,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sun Aug 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-1
+- Remove non-Free test and demo files from source tarball.
+
* Thu Jul 22 2021 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.302.b08-0.1
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
diff --git a/jconsole-plugin.patch b/jconsole-plugin.patch
new file mode 100644
index 0000000..b015a78
--- /dev/null
+++ b/jconsole-plugin.patch
@@ -0,0 +1,31 @@
+diff --git openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
openjdk/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
+--- openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
++++ openjdk/jdk/src/share/demo/scripting/jconsole-plugin/README.txt
+@@ -18,11 +18,9 @@
+ engine javax.script.ScriptEngine
+ plugin com.sun.tools.jconsole.JConsolePlugin
+
+-If you use JavaScript, there are many useful global functions defined in
+-./src/resources/jconsole.js. This is built into the script plugin jar file.
+-In addition, you can add other global functions and global variables by
+-defining those in ~/jconsole.js (or jconsole.<ext> where <ext> is the file
+-extension for your scripting language of choice under your home directory).
++You can add global functions and global variables by defining those in
++~/jconsole.js (or jconsole.<ext> where <ext> is the file extension for
++your scripting language of choice under your home directory).
+
+ How do I compile script console plugin?
+
+diff --git openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
openjdk/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
+--- openjdk.orig/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
++++ openjdk/jdk/src/share/demo/scripting/jconsole-plugin/build.xml
+@@ -73,9 +73,6 @@
+ <copy todir="${classes.dir}/META-INF/services">
+ <fileset dir="${src.dir}/META-INF/services"/>
+ </copy>
+- <copy todir="${resources.dir}">
+- <fileset dir="${src.dir}/resources"/>
+- </copy>
+ </target>
+
+ <target name="all" depends="compile" description="buile
deployment bundle">
diff --git a/sources b/sources
index 0357887..3236329 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz) =
938b3308357c5be40fd474e861f5a612e758520988588b633791ada742fdaef522ecc05f4b2a0c40799a01e1b5d33960c1b76deb2089e36b6d92b0788a74bf74
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve-clean.tar.xz) =
04ecdcde841038c0042b44fb3c5303a08616864566fb918ab261fc381fae8804a21f875b1645538e864a1c6db5985f16dfc13b91eb1caeeab54d6d07828c7657
commit dc1cbfccd17474ddb687e2c0166e3d607048c2d0
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 22 08:56:33 2021 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6b3d66a..b5067ff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1202,7 +1202,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# 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
@@ -2580,6 +2580,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 22 2021 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.302.b08-0.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
* Fri Jul 16 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-0
- Update to aarch64-shenandoah-jdk8u302-b08 (EA)
- Update release notes for 8u302-b08.
commit 3c6c1a2a272320b06c338486ede63b378a403ef4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 21 01:28:21 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b08 (EA)
Update release notes for 8u302-b08.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index d479a9c..a4aa037 100644
--- a/.gitignore
+++ b/.gitignore
@@ -237,3 +237,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 0c08ae6..1cb973a 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,20 @@ Live versions of these release notes can be found at:
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u302.txt
* Security fixes
+ - JDK-8256157: Improve bytecode assembly
+ - JDK-8256491: Better HTTP transport
+ - JDK-8258432, CVE-2021-2341: Improve file transfers
+ - JDK-8260453: Improve Font Bounding
+ - JDK-8260960: Signs of jarsigner signing
+ - JDK-8260967, CVE-2021-2369: Better jar file validation
+ - JDK-8262380: Enhance XML processing passes
+ - JDK-8262403: Enhanced data transfer
+ - JDK-8262410: Enhanced rules for zones
+ - JDK-8262477: Enhance String Conclusions
+ - JDK-8262967: Improve Zip file support
+ - JDK-8264066, CVE-2021-2388: Enhance compiler validation
+ - JDK-8264079: Improve abstractions
+ - JDK-8264460: Improve NTLM support
* Other changes
- JDK-6878250: (so) IllegalBlockingModeException thrown when reading from a closed
SocketChannel's InputStream
- JDK-6990210: [TEST_BUG]
EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java fails on gnome
@@ -144,6 +158,7 @@ Live versions of these release notes can be found at:
- JDK-8268444: keytool -v -list print is incorrect after backport JDK-8141457
- JDK-8269388: Default build of OpenJDK 8 fails on newer GCCs with warnings as errors
on format-overflow
- JDK-8269468: JDK-8269388 breaks the build on older GCCs
+ - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a
CAS
* Shenandoah
- [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState
- [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4e3f4ae..6b3d66a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -314,7 +314,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2580,6 +2580,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jul 16 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b08-0
+- Update to aarch64-shenandoah-jdk8u302-b08 (EA)
+- Update release notes for 8u302-b08.
+- Switch to GA mode for final release.
+
* Thu Jul 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b07 (EA)
- Update release notes for 8u302-b07.
diff --git a/sources b/sources
index 0760ba5..0357887 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz) =
a228681a8b5fa437b9b0e2da5ce4ef1fa27b7cfcc639a375f499339479e10f68e422b69eda4a7db661769c8ef1290586c200c2d0197ec72cb56d99b4765f2c08
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b08-4curve.tar.xz) =
938b3308357c5be40fd474e861f5a612e758520988588b633791ada742fdaef522ecc05f4b2a0c40799a01e1b5d33960c1b76deb2089e36b6d92b0788a74bf74
commit bc8a2c217a304e6ac5cdf6fb1eec21b72dad4f78
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jul 8 02:37:19 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b07 (EA)
Update release notes for 8u302-b07.
diff --git a/.gitignore b/.gitignore
index cce8a4d..d479a9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -236,3 +236,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 541c395..0c08ae6 100644
--- a/NEWS
+++ b/NEWS
@@ -142,6 +142,8 @@ Live versions of these release notes can be found at:
- JDK-8267545: [8u] Enable Xcode 12 builds on macOS
- JDK-8267689: [aarch64] Crash due to bad shift in indirect addressing mode
- JDK-8268444: keytool -v -list print is incorrect after backport JDK-8141457
+ - JDK-8269388: Default build of OpenJDK 8 fails on newer GCCs with warnings as errors
on format-overflow
+ - JDK-8269468: JDK-8269388 breaks the build on older GCCs
* Shenandoah
- [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState
- [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp
@@ -173,7 +175,7 @@ Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998
VeriSign, Inc. - For
Alias Name: verisignclass3ca [jdk]
Distinguished Name: OU=Class 3 Public Primary Certification Authority, O="VeriSign,
Inc.", C=US
-Alias Name: verisignclass3g2caÂ[jdk]
+Alias Name: verisignclass3g2ca [jdk]
Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For
authorized use only", OU=Class 3 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
Alias Name: verisigntsaca [jdk]
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 93ed221..4e3f4ae 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2580,6 +2580,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Thu Jul 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b07 (EA)
+- Update release notes for 8u302-b07.
+
* Tue Jul 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b06 (EA)
- Update release notes for 8u302-b06.
diff --git a/sources b/sources
index 84c12ad..0760ba5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz) =
d6dfc358151a11c1ce81aabae82aba2b57f020be21100eb4b29fc4cc16bd13865450a36642cef8755fddbfde5a355c9001fbb6338ccab370b2ab9f38125ecdc8
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b07-4curve.tar.xz) =
a228681a8b5fa437b9b0e2da5ce4ef1fa27b7cfcc639a375f499339479e10f68e422b69eda4a7db661769c8ef1290586c200c2d0197ec72cb56d99b4765f2c08
commit 35d7fdc77fc07278dc058a3977e50eb5ce318246
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jul 6 17:31:13 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b06 (EA)
Update release notes for 8u302-b06.
diff --git a/.gitignore b/.gitignore
index c99d462..cce8a4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -235,3 +235,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 734417e..541c395 100644
--- a/NEWS
+++ b/NEWS
@@ -139,7 +139,9 @@ Live versions of these release notes can be found at:
- JDK-8266929: Unable to use algorithms from 3p providers
- JDK-8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up
LR results in crash
- JDK-8267426: MonitorVmStartTerminate test timed out on Embedded VM
+ - JDK-8267545: [8u] Enable Xcode 12 builds on macOS
- JDK-8267689: [aarch64] Crash due to bad shift in indirect addressing mode
+ - JDK-8268444: keytool -v -list print is incorrect after backport JDK-8141457
* Shenandoah
- [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState
- [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp
@@ -204,6 +206,10 @@ U+000007F that were previously encoded using UTF-8 may need to
either
be modified to perform the UTF-8 conversion, or set the Java security
property `jdk.tls.alpnCharset` to "UTF-8" revert the behavior.
+See the updated guide at
+https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/alpn.html
+for more information.
+
JDK-8244460: Support for certificate_authorities Extension
==========================================================
The "certificate_authorities" extension is an optional extension
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 93ed25b..93ed221 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -294,7 +294,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -309,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2580,6 +2580,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue Jul 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b06 (EA)
+- Update release notes for 8u302-b06.
+
* Mon Jul 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.1.ea
- Use the "reverse" build loop (debug first) as the main and only build loop to
get more diagnostics.
diff --git a/sources b/sources
index 33af4d9..84c12ad 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz) =
4034420e63d98b2268ee6c762a2c79528271d42e7c423a1fd27147e5e8479b2af94345bccae6a09789397627ff5c34ae77e010a30ae042c62df3d7e79a24fe8c
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b06-4curve.tar.xz) =
d6dfc358151a11c1ce81aabae82aba2b57f020be21100eb4b29fc4cc16bd13865450a36642cef8755fddbfde5a355c9001fbb6338ccab370b2ab9f38125ecdc8
commit 6d4aec5be31a2ee84462910806f8a3daffa8e188
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jul 5 23:09:44 2021 +0100
Use the "reverse" build loop (debug first) as the main and only build loop
to get more diagnostics.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d14175c..93ed25b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -138,10 +138,8 @@
%global bootstrap_build 1
# If you disable both builds, then the build fails
-# Note that the debug build requires the normal build for docs
-%global build_loop %{normal_build} %{fastdebug_build} %{slowdebug_build}
-# Test slowdebug first as it provides the best diagnostics
-%global rev_build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
+# Build and test slowdebug first as it provides the best diagnostics
+%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
%global bootstrap_targets images
%global release_targets images docs-zip
@@ -311,7 +309,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2058,7 +2056,7 @@ done
%check
# We test debug first as it will give better diagnostics on a crash
-for suffix in %{rev_build_loop} ; do
+for suffix in %{build_loop} ; do
export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
@@ -2582,6 +2580,9 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jul 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.1.ea
+- Use the "reverse" build loop (debug first) as the main and only build loop to
get more diagnostics.
+
* Fri Jul 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b05 (EA)
- Update release notes for 8u302-b05.
commit 148101f0bc5a9edf7b8a05cc5c855ceabc643c13
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jul 2 17:28:26 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b05 (EA)
Update release notes for 8u302-b05.
diff --git a/.gitignore b/.gitignore
index f3bf720..c99d462 100644
--- a/.gitignore
+++ b/.gitignore
@@ -234,3 +234,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 5bcec36..734417e 100644
--- a/NEWS
+++ b/NEWS
@@ -12,25 +12,37 @@ Live versions of these release notes can be found at:
* Security fixes
* Other changes
- JDK-6878250: (so) IllegalBlockingModeException thrown when reading from a closed
SocketChannel's InputStream
+ - JDK-6990210: [TEST_BUG]
EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java fails on gnome
- JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a
file
+ - JDK-7106851: Test should not use System.exit
- JDK-8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
+ - JDK-8028618: [TEST BUG] javax/swing/JScrollBar/bug4202954/bug4202954.java fails
- JDK-8030123: java/beans/Introspector/Test8027648.java fails
- JDK-8032050: Clean up for
java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java
- JDK-8033289: clang: clean up unused function warning
- JDK-8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
- JDK-8034857: gcc warnings compiling src/solaris/native/sun/management
+ - JDK-8035000: clean up ActivationLibrary.DestroyThread
- JDK-8035054: JarFacade.c should not include ctype.h
+ - JDK-8035287: gcc warnings compiling various libraries files
- JDK-8036095: RMI tests using testlibrary.RMID and testlibrary.JavaVM do not pass
through vmoptions
+ - JDK-8037825: Fix warnings and enable "warnings as errors" in serviceability
native libraries
- JDK-8042891: Format issues embedded in macros for two g1 source files
- JDK-8043264: hsdis library not picked up correctly on expected paths
+ - JDK-8043646: libosxapp.dylib fails to build on Mac OS 10.9 with clang
+ - JDK-8047939: [TESTBUG] Rewrite test/runtime/8001071/Test8001071.sh
- JDK-8055754: filemap.cpp does not compile with clang
- JDK-8064909: FragmentMetaspace.java got OutOfMemoryError
- JDK-8066508: JTReg tests timeout on slow devices when run using JPRT
- JDK-8066807: langtools/test/Makefile should use -agentvm not -samevm
- JDK-8071374: -XX:+PrintAssembly -XX:+PrintSignatureHandlers crash fastdebug VM with
assert(limit == __null || limit <= nm->code_end()) in RelocIterator::initialize
- JDK-8073446: TimeZone getOffset API does not return a dst offset between years
2038-2137
+ - JDK-8074835: Resolve disabled warnings for libj2gss
+ - JDK-8074836: Resolve disabled warnings for libosxkrb5
- JDK-8075071: [TEST_BUG] TimSortStackSize2.java: OOME: Java heap space: MaxHeap
shrinked by MaxRAMFraction
- JDK-8077364: "if( !this )" construct prevents build on Xcode 6.3
+ - JDK-8078855: [TEST_BUG] javax/swing/JComboBox/8032878/bug8032878.java fails in
WindowsClassicLookAndFeel
+ - JDK-8081764: [TEST_BUG] Test javax/swing/plaf/aqua/CustomComboBoxFocusTest.java fails
on Windows, Solaris Sparcv9 and Linux but passes on MacOSX
- JDK-8129511: PlatformMidi.c:83 uses malloc without malloc header
- JDK-8130308: Too low memory usage in
TestPromotionFromSurvivorToTenuredAfterMinorGC.java
- JDK-8130430: [TEST_BUG] remove unnecessary internal calls from
javax/swing/JRadioButton/8075609/bug8075609.java
@@ -44,6 +56,7 @@ Live versions of these release notes can be found at:
- JDK-8159898: Negative array size in java/beans/Introspector/Test8027905.java
- JDK-8166046: [TESTBUG] compiler/stringopts/TestStringObjectInitialization.java fails
with OOME
- JDK-8166724: gc/g1/TestHumongousShrinkHeap.java fails with OOME
+ - JDK-8172188: JDI tests fail due to "permission denied" when creating temp
file
- JDK-8177809: File.lastModified() is losing milliseconds (always ends in 000)
- JDK-8178403: DirectAudio in JavaSound may hang and leak
- JDK-8180478: tools/launcher/MultipleJRE.sh fails on Windows because of
extra-''
@@ -51,8 +64,10 @@ Live versions of these release notes can be found at:
- JDK-8190332: PngReader throws NegativeArraySizeException/OOM error when IHDR width is
very large
- JDK-8190679: java/util/Arrays/TimSortStackSize2.java fails with "Initial heap
size set to a larger value than the maximum heap size"
- JDK-8191955: AArch64: incorrect prefetch distance causes an internal error
+ - JDK-8196092: javax/swing/JComboBox/8032878/bug8032878.java fails
- JDK-8199265: java/util/Arrays/TimSortStackSize2.java fails with OOM
- JDK-8200550: Xcode 9.3 produce warning -Wexpansion-to-defined
+ - JDK-8202299: Java Keystore fails to load PKCS12/PFX certificates created in
WindowsServer2016
- JDK-8203196: C1 emits incorrect code due to integer overflow in _tableswitch keys
- JDK-8205014: com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java failed with "Read
timed out"
- JDK-8206243: java -XshowSettings fails if memory.limit_in_bytes overflows LONG.max
@@ -69,14 +84,19 @@ Live versions of these release notes can be found at:
- JDK-8231841: AArch64: debug.cpp help() is missing an AArch64 line for pns
- JDK-8231949: [PPC64, s390]: Make async profiling more reliable
- JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater()
+ - JDK-8239053: [8u] clean up undefined-var-template warnings
+ - JDK-8239400: [8u] clean up undefined-var-template warnings
- JDK-8241649: Optimize Character.toString
- JDK-8241829: Cleanup the code for PrinterJob on windows
- JDK-8242565: Policy initialization issues when the denyAfter constraint is enabled
- JDK-8243559: Remove root certificates with 1024-bit keys
- JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node
+ - JDK-8249142: java/awt/FontClass/CreateFont/DeleteFont.sh is unstable
- JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for
JList
+ - JDK-8250876: Fix issues with cross-compile on macos
- JDK-8252883: AccessDeniedException caused by delayed file deletion on Windows
- JDK-8253375: OSX build fails with Xcode 12.0 (12A7209)
+ - JDK-8254631: Better support ALPN byte wire values in SunJSSE
- JDK-8255086: Update the root locale display names
- JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too
- JDK-8256818: SSLSocket that is never bound or connected leaks socket resources
@@ -110,10 +130,16 @@ Live versions of these release notes can be found at:
- JDK-8264562: assert(verify_field_bit(1)) failed: Attempting to write an uninitialized
event field: type
- JDK-8264640: CMS ParScanClosure misses a barrier
- JDK-8264816: Weak handles leak causes GC to take longer
+ - JDK-8265462: Handle multiple slots in the NSS Internal Module from SunPKCS11's
Secmod
- JDK-8265666: Enable AIX build platform to make external debug symbols
- JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u
- JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u
- JDK-8266191: Missing aarch64 parts of JDK-8181872 (C1: possible overflow when
strength reducing integer multiply by constant)
+ - JDK-8266723: JFR periodic events are causing extra allocations
+ - JDK-8266929: Unable to use algorithms from 3p providers
+ - JDK-8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up
LR results in crash
+ - JDK-8267426: MonitorVmStartTerminate test timed out on Embedded VM
+ - JDK-8267689: [aarch64] Crash due to bad shift in indirect addressing mode
* Shenandoah
- [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState
- [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp
@@ -161,6 +187,23 @@ Distinguished Name: CN=Sonera Class2 CA, O=Sonera, C=FI
security-libs/javax.net.ssl:
+JDK-8257548: Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN)
Values
+=========================================================================================
+Certain TLS ALPN values couldn't be properly read or written by the
+SunJSSE provider. This is due to the choice of Strings as the API
+interface and the undocumented internal use of the UTF-8 Character Set
+which converts characters larger than U+00007F (7-bit ASCII) into
+multi-byte arrays that may not be expected by a peer.
+
+ALPN values are now represented using the network byte representation
+expected by the peer, which should require no modification for
+standard 7-bit ASCII-based character Strings. However, SunJSSE now
+encodes/decodes String characters as 8-bit ISO_8859_1/LATIN-1
+characters. This means applications that used characters above
+U+000007F that were previously encoded using UTF-8 may need to either
+be modified to perform the UTF-8 conversion, or set the Java security
+property `jdk.tls.alpnCharset` to "UTF-8" revert the behavior.
+
JDK-8244460: Support for certificate_authorities Extension
==========================================================
The "certificate_authorities" extension is an optional extension
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c710d66..d14175c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2582,6 +2582,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jul 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b05-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b05 (EA)
+- Update release notes for 8u302-b05.
+
* Wed Jun 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b04 (EA)
- Update release notes for 8u302-b04.
diff --git a/sources b/sources
index 07a777b..33af4d9 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz) =
4b49ae51eb4366e7b812ea9cd852af2ed0aa6b7b5a720598ecd3a7734968fa135e3d68b2ec9439b169e6197205b715763adf247831455163d63955d418a14c83
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b05-4curve.tar.xz) =
4034420e63d98b2268ee6c762a2c79528271d42e7c423a1fd27147e5e8479b2af94345bccae6a09789397627ff5c34ae77e010a30ae042c62df3d7e79a24fe8c
commit cf02803a5d818c01958016936b768dbb9aca777b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jul 1 05:31:56 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b04 (EA)
Update release notes for 8u302-b04.
diff --git a/.gitignore b/.gitignore
index 6957bb8..f3bf720 100644
--- a/.gitignore
+++ b/.gitignore
@@ -233,3 +233,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index d4bc4d7..5bcec36 100644
--- a/NEWS
+++ b/NEWS
@@ -15,12 +15,14 @@ Live versions of these release notes can be found at:
- JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a
file
- JDK-8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
- JDK-8030123: java/beans/Introspector/Test8027648.java fails
+ - JDK-8032050: Clean up for
java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java
- JDK-8033289: clang: clean up unused function warning
- JDK-8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
- JDK-8034857: gcc warnings compiling src/solaris/native/sun/management
- JDK-8035054: JarFacade.c should not include ctype.h
- JDK-8036095: RMI tests using testlibrary.RMID and testlibrary.JavaVM do not pass
through vmoptions
- JDK-8042891: Format issues embedded in macros for two g1 source files
+ - JDK-8043264: hsdis library not picked up correctly on expected paths
- JDK-8055754: filemap.cpp does not compile with clang
- JDK-8064909: FragmentMetaspace.java got OutOfMemoryError
- JDK-8066508: JTReg tests timeout on slow devices when run using JPRT
@@ -31,6 +33,7 @@ Live versions of these release notes can be found at:
- JDK-8077364: "if( !this )" construct prevents build on Xcode 6.3
- JDK-8129511: PlatformMidi.c:83 uses malloc without malloc header
- JDK-8130308: Too low memory usage in
TestPromotionFromSurvivorToTenuredAfterMinorGC.java
+ - JDK-8130430: [TEST_BUG] remove unnecessary internal calls from
javax/swing/JRadioButton/8075609/bug8075609.java
- JDK-8132148: G1 hs_err region dump legend out of sync with region values
- JDK-8132709: [TESTBUG] gc/g1/TestHumongousShrinkHeap.java might fail on embedded
- JDK-8134672: [TEST_BUG] Some tests should check isDisplayChangeSupported
@@ -52,12 +55,15 @@ Live versions of these release notes can be found at:
- JDK-8200550: Xcode 9.3 produce warning -Wexpansion-to-defined
- JDK-8203196: C1 emits incorrect code due to integer overflow in _tableswitch keys
- JDK-8205014: com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java failed with "Read
timed out"
+ - JDK-8206243: java -XshowSettings fails if memory.limit_in_bytes overflows LONG.max
+ - JDK-8206925: Support the certificate_authorities extension
- JDK-8209996: [PPC64] Fix JFR profiling
- JDK-8214345: infinite recursion while checking super class
- JDK-8217230: assert(t == t_no_spec) failure in
NodeHash::check_no_speculative_types()
- JDK-8217348: assert(thread->is_Java_thread()) failed: just checking
- JDK-8225081: Remove Telia Company CA certificate expiring in April 2021
- JDK-8225116: Test OwnedWindowsLeak.java intermittently fails
+ - JDK-8228757: Fail fast if the handshake type is unknown
- JDK-8230428: Cleanup dead CastIP node code in formssel.cpp
- JDK-8231631: sun/net/ftp/FtpURLConnectionLeak.java fails intermittently with NPE
- JDK-8231841: AArch64: debug.cpp help() is missing an AArch64 line for pns
@@ -65,13 +71,16 @@ Live versions of these release notes can be found at:
- JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater()
- JDK-8241649: Optimize Character.toString
- JDK-8241829: Cleanup the code for PrinterJob on windows
+ - JDK-8242565: Policy initialization issues when the denyAfter constraint is enabled
- JDK-8243559: Remove root certificates with 1024-bit keys
- JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node
- JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for
JList
- JDK-8252883: AccessDeniedException caused by delayed file deletion on Windows
+ - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209)
- JDK-8255086: Update the root locale display names
- JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too
- JDK-8256818: SSLSocket that is never bound or connected leaks socket resources
+ - JDK-8257039: [8u] GenericTaskQueue destructor is incorrect
- JDK-8257670: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java reports leaks
- JDK-8257884: Re-enable sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java as automatic
test
- JDK-8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks
after JDK-8257884
@@ -90,6 +99,7 @@ Live versions of these release notes can be found at:
- JDK-8261355: No data buffering in SunPKCS11 Cipher encryption when the underlying
mechanism has no padding
- JDK-8261867: Backport relevant test changes & additions from JDK-8130125
- JDK-8262110: DST starts from incorrect time in 2038
+ - JDK-8262446: DragAndDrop hangs on Windows
- JDK-8262726: AArch64: C1 StubAssembler::call_RT can corrupt stack
- JDK-8262730: Enable jdk8u MacOS external debug symbols
- JDK-8262864: No debug symbols in image for Windows
--with-native-debug-symbols=external
@@ -100,6 +110,7 @@ Live versions of these release notes can be found at:
- JDK-8264562: assert(verify_field_bit(1)) failed: Attempting to write an uninitialized
event field: type
- JDK-8264640: CMS ParScanClosure misses a barrier
- JDK-8264816: Weak handles leak causes GC to take longer
+ - JDK-8265666: Enable AIX build platform to make external debug symbols
- JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u
- JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u
- JDK-8266191: Missing aarch64 parts of JDK-8181872 (C1: possible overflow when
strength reducing integer multiply by constant)
@@ -148,6 +159,31 @@ The following root certificate have been removed from the cacerts
truststore:
Alias Name: soneraclass2ca
Distinguished Name: CN=Sonera Class2 CA, O=Sonera, C=FI
+security-libs/javax.net.ssl:
+
+JDK-8244460: Support for certificate_authorities Extension
+==========================================================
+The "certificate_authorities" extension is an optional extension
+introduced in TLS 1.3. It is used to indicate the certificate
+authorities (CAs) that an endpoint supports and should be used by the
+receiving endpoint to guide certificate selection.
+
+With this JDK release, the "certificate_authorities" extension is
+supported for TLS 1.3 in both the client and the server sides. This
+extension is always present for client certificate selection, while it
+is optional for server certificate selection.
+
+Applications can enable this extension for server certificate
+selection by setting the `jdk.tls.client.enableCAExtension` system
+property to `true`. The default value of the property is `false`.
+
+Note that if the client trusts more CAs than the size limit of the
+extension (less than 2^16 bytes), the extension is not enabled. Also,
+some server implementations do not allow handshake messages to exceed
+2^14 bytes. Consequently, there may be interoperability issues when
+`jdk.tls.client.enableCAExtension` is set to `true` and the client
+trusts more CAs than the server implementation limit.
+
New in release OpenJDK 8u292 (2021-04-20):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e891b3f..c710d66 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2582,6 +2582,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Jun 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b04 (EA)
+- Update release notes for 8u302-b04.
+
* Fri Jun 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.2.ea
- Update to aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23 (EA)
- Update release notes for 8u302-b03-shenandoah-merge-2021-06-23.
diff --git a/sources b/sources
index 971a667..07a777b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz)
=
41f2c7e2549ad569491d406b16f18a0f9840e804696238ef6ad3e2c49ed0b88f50afda152b6880758b0b34ae14e1b6fc548a9770fe32f8131ec96187d69afcb3
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b04-4curve.tar.xz) =
4b49ae51eb4366e7b812ea9cd852af2ed0aa6b7b5a720598ecd3a7734968fa135e3d68b2ec9439b169e6197205b715763adf247831455163d63955d418a14c83
commit 585f29fea66b0f7a5625e9c890bfd8a4e86ffb50
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Jun 26 23:51:48 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23 (EA)
Update release notes for 8u302-b03-shenandoah-merge-2021-06-23.
diff --git a/.gitignore b/.gitignore
index 248a89d..6957bb8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -232,3 +232,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 2f78280..d4bc4d7 100644
--- a/NEWS
+++ b/NEWS
@@ -103,6 +103,17 @@ Live versions of these release notes can be found at:
- JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u
- JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u
- JDK-8266191: Missing aarch64 parts of JDK-8181872 (C1: possible overflow when
strength reducing integer multiply by constant)
+* Shenandoah
+ - [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState
+ - [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp
+ - [backport] JDK-8261251: Shenandoah: Use object size for full GC humongous
+ - [backport] JDK-8261413: Shenandoah: Disable class-unloading in I-U mode
+ - [backport] JDK-8265239: Shenandoah: Shenandoah heap region count could be off by 1
+ - [backport] JDK-8266802: Shenandoah: Round up region size to page size
unconditionally
+ - [backport] JDK-8267561: Shenandoah: Reference processing not properly setup for
outside of cycle degenerated GC
+ - [backport] JDK-8268127: Shenandoah: Heap size may be too small for region to align to
large page size
+ - [backport] JDK-8268699: Shenandoah: Add test for JDK-8268127
+ - Shenandoah: Process weak roots during class unloading cycle
Notes on individual issues:
===========================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a68ee78..e891b3f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b03
+%global shenandoah_revision
aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2582,6 +2582,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Fri Jun 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.2.ea
+- Update to aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23 (EA)
+- Update release notes for 8u302-b03-shenandoah-merge-2021-06-23.
+
* Mon Jun 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.1.ea
- Backport FIPS mode patch (RH1655466) to java-1.8.0-openjdk, simplifying provider
removal.
- nss.fips.cfg needs to be moved to %%{etcjavadir} and symlinked into the JDK, like
nss.cfg
diff --git a/sources b/sources
index 7507617..971a667 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz) =
2da04211fadddf96a7acf18cc5e9a790f403eb31f3b9f960db93d1c2afd5a0d193b7ae70589e4382434816d5849b34be17ae0772cda2e4d7b4338b55cd6cd1f9
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-shenandoah-merge-2021-06-23-4curve.tar.xz)
=
41f2c7e2549ad569491d406b16f18a0f9840e804696238ef6ad3e2c49ed0b88f50afda152b6880758b0b34ae14e1b6fc548a9770fe32f8131ec96187d69afcb3
commit 0e6069cde381d80f94998a05af512f714da95707
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jun 8 04:50:48 2021 +0100
Support the FIPS mode crypto policy.
Backport FIPS mode patch to java-1.8.0-openjdk, simplifying provider removal.
nss.fips.cfg needs to be moved to %%{etcjavadir} and symlinked into the JDK, like
nss.cfg
SunPKCS11 runtime provider name is a concatenation of "SunPKCS11-" and the
name in the config file.
Change nss.fips.cfg config name to "NSS-FIPS" to avoid confusion with
nss.cfg.
Disable FIPS mode support unless com.redhat.fips is set to "true".
Add JDK-8195607/PR3776 to support NSS SQLite databases.
Use appropriate keystore types when in FIPS mode (RH1760838)
Enable alignment with FIPS crypto policy by default (-Dcom.redhat.fips=false to
disable).
Disable TLSv1.3 when using the NSS-FIPS provider (RH1860986)
Move setup of JavaSecuritySystemConfiguratorAccess to Security class so it always
occurs (RH1906862)
Add explicit runtime dependency on NSS for the PKCS11 provider in FIPS mode
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8097ba5..a68ee78 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -756,7 +756,9 @@ exit 0
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.fips.cfg
%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.fips.cfg
%ifarch %{share_arches}
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
@@ -1111,6 +1113,8 @@ Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
+# for FIPS PKCS11 provider
+Requires: nss
# Post requires alternatives to install tool alternatives
Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
@@ -1267,14 +1271,18 @@ Source14: TestECDSA.java
# Verify system crypto (policy) can be disabled via a property
Source15: TestSecurityProperties.java
+# Ensure vendor settings are correct
+Source16: CheckVendor.java
+
+# nss fips configuration file
+Source17: nss.fips.cfg.in
+
Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
-# Ensure vendor settings are correct
-Source16: CheckVendor.java
############################################
#
@@ -1290,6 +1298,18 @@ Patch534:
rh1648246-always_instruct_vm_to_assume_multiple_processors_are_availab
# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies
except LEGACY
Patch1003: rh1582504-rsa_default_for_keytool.patch
+# FIPS support patches
+# RH1648249: Add PKCS11 provider to java.security
+Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+# RH1655466: Support RHEL FIPS mode using SunPKCS11 provider
+Patch1001: rh1655466-global_crypto_and_fips.patch
+# RH1760838: No ciphersuites available for SSLSocket in FIPS mode
+Patch1002: rh1760838-fips_default_keystore_type.patch
+# RH1860986: Disable TLSv1.3 with the NSS-FIPS provider until PKCS#11 v3.0 support is
available
+Patch1004: rh1860986-disable_tlsv1.3_in_fips_mode.patch
+# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
+Patch1005: rh1906862-always_initialise_configurator_access.patch
+
#############################################
#
# Upstreamable patches
@@ -1364,6 +1384,8 @@ Patch202: jdk8035341-allow_using_system_installed_libpng.patch
# 8042159: Allow using a system-installed lcms2
Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
+# JDK-8195607, PR3776, RH1760437: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed
with "NSS initialization failed" on NSS 3.34.1
+Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
#############################################
#
@@ -1402,7 +1424,6 @@ Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
# This section includes patches to code other
# that from OpenJDK.
#############################################
-Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
#############################################
#
@@ -1803,12 +1824,17 @@ sh %{SOURCE12}
%patch574
%patch111
%patch112
+%patch580
# RPM-only fixes
%patch539
%patch600
%patch1000
+%patch1001
+%patch1002
%patch1003
+%patch1004
+%patch1005
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -1867,6 +1893,9 @@ done
# Setup nss.cfg
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
+# Setup nss.fips.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE17} > nss.fips.cfg
+sed -i -e "s:@NSS_SECMOD@:/etc/pki/nssdb:g" nss.fips.cfg
%build
# How many CPU's do we have?
@@ -2010,6 +2039,9 @@ export JAVA_HOME=$(pwd)/%{buildoutputdir --
$suffix}/images/%{jdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
+# Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
+install -m 644 nss.fips.cfg $JAVA_HOME/jre/lib/security/
+
# Use system-wide tzdata
rm $JAVA_HOME/jre/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
@@ -2309,7 +2341,7 @@ touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/securi
# moving config files to /etc
mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
-for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg lib/net.properties ; do
+for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg lib/security/nss.fips.cfg lib/net.properties
; do
mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
$RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
ln -sf %{etcjavadir -- $suffix}/$file
$RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
done
@@ -2550,6 +2582,22 @@ cjc.mainProgram(args)
%endif
%changelog
+* Mon Jun 07 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.1.ea
+- Backport FIPS mode patch (RH1655466) to java-1.8.0-openjdk, simplifying provider
removal.
+- nss.fips.cfg needs to be moved to %%{etcjavadir} and symlinked into the JDK, like
nss.cfg
+- SunPKCS11 runtime provider name is a concatenation of "SunPKCS11-" and the
name in the config file.
+- Change nss.fips.cfg config name to "NSS-FIPS" to avoid confusion with
nss.cfg.
+- Disable FIPS mode support unless com.redhat.fips is set to "true".
+- Add JDK-8195607/PR3776 to support NSS SQLite databases.
+- Enable alignment with FIPS crypto policy by default (-Dcom.redhat.fips=false to
disable).
+- Move setup of JavaSecuritySystemConfiguratorAccess to Security class so it always
occurs (RH1906862)
+- Add explicit runtime dependency on NSS for the PKCS11 provider in FIPS mode
+
+* Mon Jun 07 2021 Martin Balao <mbalao(a)redhat.com> - 1:1.8.0.302.b03-0.1.ea
+- Support the FIPS mode crypto policy on RHEL 8 (RH1655466)
+- Use appropriate keystore types when in FIPS mode (RH1760838)
+- Disable TLSv1.3 when using the NSS-FIPS provider (RH1860986)
+
* Wed Jun 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b03 (EA)
- Update release notes for 8u302-b03.
@@ -2571,7 +2619,7 @@ cjc.mainProgram(args)
main package now have to obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug,
fastdebug} < 1:1.8.0.292.b06
otherwise update fails
-* Fri Apr 29 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-1
+* Thu Apr 29 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-1
- adapted to newst cjc to fix issue with rpm 4.17
* Tue Apr 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b10-0
diff --git a/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
b/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
new file mode 100644
index 0000000..ddab642
--- /dev/null
+++ b/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
@@ -0,0 +1,125 @@
+# HG changeset patch
+# User mbalao
+# Date 1529971845 -28800
+# Tue Jun 26 08:10:45 2018 +0800
+# Node ID e9c20b7250cd98d16a67f2a30b34284c2caa01dc
+# Parent 9f1aa2e38d90dd60522237d7414af6bdcf03c4ff
+8195607, PR3776: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed with "NSS
initialization failed" on NSS 3.34.1
+Reviewed-by: valeriep, weijun
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
+@@ -197,7 +197,7 @@
+
+ if (configDir != null) {
+ String configDirPath = null;
+- String sqlPrefix = "sql:/";
++ String sqlPrefix = "sql:";
+ if (!configDir.startsWith(sqlPrefix)) {
+ configDirPath = configDir;
+ } else {
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
openjdk/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
+@@ -69,9 +69,14 @@
+ int res = 0;
+ FPTR_Initialize initialize =
+ (FPTR_Initialize)findFunction(env, jHandle, "NSS_Initialize");
++ #ifdef SECMOD_DEBUG
++ FPTR_GetError getError =
++ (FPTR_GetError)findFunction(env, jHandle, "PORT_GetError");
++ #endif // SECMOD_DEBUG
+ unsigned int flags = 0x00;
+ const char *configDir = NULL;
+ const char *functionName = NULL;
++ const char *configFile = NULL;
+
+ /* If we cannot initialize, exit now */
+ if (initialize == NULL) {
+@@ -97,13 +102,18 @@
+ flags = 0x20; // NSS_INIT_OPTIMIZESPACE flag
+ }
+
++ configFile = "secmod.db";
++ if (configDir != NULL && strncmp("sql:", configDir, 4U) == 0) {
++ configFile = "pkcs11.txt";
++ }
++
+ /*
+ * If the NSS_Init function is requested then call NSS_Initialize to
+ * open the Cert, Key and Security Module databases, read only.
+ */
+ if (strcmp("NSS_Init", functionName) == 0) {
+ flags = flags | 0x01; // NSS_INIT_READONLY flag
+- res = initialize(configDir, "", "", "secmod.db",
flags);
++ res = initialize(configDir, "", "", configFile, flags);
+
+ /*
+ * If the NSS_InitReadWrite function is requested then call
+@@ -111,7 +121,7 @@
+ * read/write.
+ */
+ } else if (strcmp("NSS_InitReadWrite", functionName) == 0) {
+- res = initialize(configDir, "", "", "secmod.db",
flags);
++ res = initialize(configDir, "", "", configFile, flags);
+
+ /*
+ * If the NSS_NoDB_Init function is requested then call
+@@ -137,6 +147,13 @@
+ (*env)->ReleaseStringUTFChars(env, jConfigDir, configDir);
+ }
+ dprintf1("-res: %d\n", res);
++ #ifdef SECMOD_DEBUG
++ if (res == -1) {
++ if (getError != NULL) {
++ dprintf1("-NSS error: %d\n", getError());
++ }
++ }
++ #endif // SECMOD_DEBUG
+
+ return (res == 0) ? JNI_TRUE : JNI_FALSE;
+ }
+diff --git openjdk.orig/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
openjdk/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
+--- openjdk.orig/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
++++ openjdk/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
+@@ -34,6 +34,10 @@
+ const char *certPrefix, const char *keyPrefix,
+ const char *secmodName, unsigned int flags);
+
++#ifdef SECMOD_DEBUG
++typedef int (*FPTR_GetError)(void);
++#endif //SECMOD_DEBUG
++
+ // in secmod.h
+ //extern SECMODModule *SECMOD_LoadModule(char *moduleSpec,SECMODModule *parent,
+ // PRBool recurse);
+diff --git openjdk.orig/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt
openjdk/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt
+@@ -0,0 +1,4 @@
++library=
++name=NSS Internal PKCS #11 Module
++parameters=configdir='sql:./tmpdb' certPrefix='' keyPrefix=''
secmod='' flags= updatedir='' updateCertPrefix=''
updateKeyPrefix='' updateid='' updateTokenDescription=''
++NSS=Flags=internal,critical trustOrder=75 cipherOrder=100
slotParams=(1={slotFlags=[RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512]
askpw=any timeout=30})
+diff --git openjdk.orig/jdk/test/sun/security/pkcs11/SecmodTest.java
openjdk/jdk/test/sun/security/pkcs11/SecmodTest.java
+--- openjdk.orig/jdk/test/sun/security/pkcs11/SecmodTest.java
++++ openjdk/jdk/test/sun/security/pkcs11/SecmodTest.java
+@@ -55,7 +55,7 @@
+
+ DBDIR = System.getProperty("test.classes", ".") + SEP +
"tmpdb";
+ if (useSqlite) {
+- System.setProperty("pkcs11test.nss.db", "sql:/" +
DBDIR);
++ System.setProperty("pkcs11test.nss.db", "sql:" +
DBDIR);
+ } else {
+ System.setProperty("pkcs11test.nss.db", DBDIR);
+ }
+@@ -67,6 +67,7 @@
+ if (useSqlite) {
+ copyFile("key4.db", BASE, DBDIR);
+ copyFile("cert9.db", BASE, DBDIR);
++ copyFile("pkcs11.txt", BASE, DBDIR);
+ } else {
+ copyFile("secmod.db", BASE, DBDIR);
+ copyFile("key3.db", BASE, DBDIR);
diff --git a/nss.fips.cfg.in b/nss.fips.cfg.in
new file mode 100644
index 0000000..ead27be
--- /dev/null
+++ b/nss.fips.cfg.in
@@ -0,0 +1,6 @@
+name = NSS-FIPS
+nssLibraryDirectory = @NSS_LIBDIR@
+nssSecmodDirectory = @NSS_SECMOD@
+nssDbMode = readOnly
+nssModule = fips
+
diff --git a/rh1655466-global_crypto_and_fips.patch
b/rh1655466-global_crypto_and_fips.patch
new file mode 100644
index 0000000..58d77b3
--- /dev/null
+++ b/rh1655466-global_crypto_and_fips.patch
@@ -0,0 +1,208 @@
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -191,27 +191,7 @@
+ if (disableSystemProps == null &&
+ "true".equalsIgnoreCase(props.getProperty
+ ("security.useSystemPropertiesFile"))) {
+-
+- // now load the system file, if it exists, so its values
+- // will win if they conflict with the earlier values
+- try (BufferedInputStream bis =
+- new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
+- props.load(bis);
+- loadedProps = true;
+-
+- if (sdebug != null) {
+- sdebug.println("reading system security properties file "
+
+- SYSTEM_PROPERTIES);
+- sdebug.println(props.toString());
+- }
+- } catch (IOException e) {
+- if (sdebug != null) {
+- sdebug.println
+- ("unable to load security properties from " +
+- SYSTEM_PROPERTIES);
+- e.printStackTrace();
+- }
+- }
++ loadedProps = loadedProps && SystemConfigurator.configure(props);
+ }
+
+ if (!loadedProps) {
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -0,0 +1,153 @@
++/*
++ * Copyright (c) 2019, 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.
++ */
++
++package java.security;
++
++import java.io.BufferedInputStream;
++import java.io.FileInputStream;
++import java.io.IOException;
++
++import java.nio.file.Files;
++import java.nio.file.FileSystems;
++import java.nio.file.Path;
++
++import java.util.Iterator;
++import java.util.Map.Entry;
++import java.util.Properties;
++import java.util.function.Consumer;
++import java.util.regex.Matcher;
++import java.util.regex.Pattern;
++
++import sun.security.util.Debug;
++
++/**
++ * Internal class to align OpenJDK with global crypto-policies.
++ * Called from java.security.Security class initialization,
++ * during startup.
++ *
++ */
++
++class SystemConfigurator {
++
++ private static final Debug sdebug =
++ Debug.getInstance("properties");
++
++ private static final String CRYPTO_POLICIES_BASE_DIR =
++ "/etc/crypto-policies";
++
++ private static final String CRYPTO_POLICIES_JAVA_CONFIG =
++ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
++
++ private static final String CRYPTO_POLICIES_CONFIG =
++ CRYPTO_POLICIES_BASE_DIR + "/config";
++
++ private static final class SecurityProviderInfo {
++ int number;
++ String key;
++ String value;
++ SecurityProviderInfo(int number, String key, String value) {
++ this.number = number;
++ this.key = key;
++ this.value = value;
++ }
++ }
++
++ /*
++ * Invoked when java.security.Security class is initialized, if
++ * java.security.disableSystemPropertiesFile property is not set and
++ * security.useSystemPropertiesFile is true.
++ */
++ static boolean configure(Properties props) {
++ boolean loadedProps = false;
++
++ try (BufferedInputStream bis =
++ new BufferedInputStream(
++ new FileInputStream(CRYPTO_POLICIES_JAVA_CONFIG))) {
++ props.load(bis);
++ loadedProps = true;
++ if (sdebug != null) {
++ sdebug.println("reading system security properties file " +
++ CRYPTO_POLICIES_JAVA_CONFIG);
++ sdebug.println(props.toString());
++ }
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println("unable to load security properties from " +
++ CRYPTO_POLICIES_JAVA_CONFIG);
++ e.printStackTrace();
++ }
++ }
++
++ try {
++ if (enableFips()) {
++ if (sdebug != null) { sdebug.println("FIPS mode detected"); }
++ loadedProps = false;
++ // Remove all security providers
++ Iterator<Entry<Object, Object>> i =
props.entrySet().iterator();
++ while (i.hasNext()) {
++ Entry<Object, Object> e = i.next();
++ if (((String) e.getKey()).startsWith("security.provider"))
{
++ if (sdebug != null) { sdebug.println("Removing provider:
" + e); }
++ i.remove();
++ }
++ }
++ // Add FIPS security providers
++ String fipsProviderValue = null;
++ for (int n = 1;
++ (fipsProviderValue = (String) props.get("fips.provider."
+ n)) != null; n++) {
++ String fipsProviderKey = "security.provider." + n;
++ if (sdebug != null) {
++ sdebug.println("Adding provider " + n + ": "
+
++ fipsProviderKey + "=" + fipsProviderValue);
++ }
++ props.put(fipsProviderKey, fipsProviderValue);
++ }
++ loadedProps = true;
++ }
++ } catch (Exception e) {
++ if (sdebug != null) {
++ sdebug.println("unable to load FIPS configuration");
++ e.printStackTrace();
++ }
++ }
++ return loadedProps;
++ }
++
++ /*
++ * FIPS is enabled only if crypto-policies are set to "FIPS"
++ * and the com.redhat.fips property is true.
++ */
++ private static boolean enableFips() throws Exception {
++ boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips",
"true"));
++ if (fipsEnabled) {
++ Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
++ String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
++ if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
++ Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
++ return pattern.matcher(cryptoPoliciesConfig).find();
++ } else {
++ return false;
++ }
++ }
++}
+diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux
openjdk/jdk/src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux
++++ openjdk/jdk/src/share/lib/security/java.security-linux
+@@ -77,6 +77,14 @@
+ #security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
+
+ #
++# Security providers used when global crypto-policies are set to FIPS.
++#
++fips.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.fips.cfg
++fips.provider.2=sun.security.provider.Sun
++fips.provider.3=sun.security.ec.SunEC
++fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS
++
++#
+ # Sun Provider SecureRandom seed source.
+ #
+ # Select the primary source of seed data for the "SHA1PRNG" and
diff --git a/rh1760838-fips_default_keystore_type.patch
b/rh1760838-fips_default_keystore_type.patch
new file mode 100644
index 0000000..bedc8ea
--- /dev/null
+++ b/rh1760838-fips_default_keystore_type.patch
@@ -0,0 +1,52 @@
+diff -r 6efbd7b35a10 src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java Thu Jan 23
18:22:31 2020 -0300
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Mon Mar 02
19:20:17 2020 -0300
+@@ -123,6 +123,33 @@
+ }
+ props.put(fipsProviderKey, fipsProviderValue);
+ }
++ // Add other security properties
++ String keystoreTypeValue = (String)
props.get("fips.keystore.type");
++ if (keystoreTypeValue != null) {
++ String nonFipsKeystoreType =
props.getProperty("keystore.type");
++ props.put("keystore.type", keystoreTypeValue);
++ if (keystoreTypeValue.equals("PKCS11")) {
++ // If keystore.type is PKCS11, javax.net.ssl.keyStore
++ // must be "NONE". See JDK-8238264.
++ System.setProperty("javax.net.ssl.keyStore",
"NONE");
++ }
++ if (System.getProperty("javax.net.ssl.trustStoreType") ==
null) {
++ // If no trustStoreType has been set, use the
++ // previous keystore.type under FIPS mode. In
++ // a default configuration, the Trust Store will
++ // be 'cacerts' (JKS type).
++ System.setProperty("javax.net.ssl.trustStoreType",
++ nonFipsKeystoreType);
++ }
++ if (sdebug != null) {
++ sdebug.println("FIPS mode default keystore.type = " +
++ keystoreTypeValue);
++ sdebug.println("FIPS mode javax.net.ssl.keyStore = "
+
++ System.getProperty("javax.net.ssl.keyStore",
""));
++ sdebug.println("FIPS mode javax.net.ssl.trustStoreType =
" +
++
System.getProperty("javax.net.ssl.trustStoreType", ""));
++ }
++ }
+ loadedProps = true;
+ }
+ } catch (Exception e) {
+diff -r 6efbd7b35a10 src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux Thu Jan 23 18:22:31 2020
-0300
++++ openjdk/jdk/src/share/lib/security/java.security-linux Mon Mar 02 19:20:17 2020
-0300
+@@ -179,6 +179,11 @@
+ keystore.type=jks
+
+ #
++# Default keystore type used when global crypto-policies are set to FIPS.
++#
++fips.keystore.type=PKCS11
++
++#
+ # Controls compatibility mode for the JKS keystore type.
+ #
+ # When set to 'true', the JKS keystore type supports loading
diff --git a/rh1860986-disable_tlsv1.3_in_fips_mode.patch
b/rh1860986-disable_tlsv1.3_in_fips_mode.patch
new file mode 100644
index 0000000..91e3705
--- /dev/null
+++ b/rh1860986-disable_tlsv1.3_in_fips_mode.patch
@@ -0,0 +1,327 @@
+diff -r bbc65dfa59d1 src/share/classes/java/security/SystemConfigurator.java
+--- openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Thu Jan 23
18:22:31 2020 -0300
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java Sat Aug 01
23:16:51 2020 -0300
+@@ -1,11 +1,13 @@
+ /*
+- * Copyright (c) 2019, Red Hat, Inc.
++ * Copyright (c) 2019, 2020, 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.
++ * published by the Free Software Foundation. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+@@ -34,10 +36,10 @@
+ import java.util.Iterator;
+ import java.util.Map.Entry;
+ import java.util.Properties;
+-import java.util.function.Consumer;
+-import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+
++import sun.misc.SharedSecrets;
++import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+
+ /**
+@@ -47,7 +49,7 @@
+ *
+ */
+
+-class SystemConfigurator {
++final class SystemConfigurator {
+
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+@@ -61,15 +63,16 @@
+ private static final String CRYPTO_POLICIES_CONFIG =
+ CRYPTO_POLICIES_BASE_DIR + "/config";
+
+- private static final class SecurityProviderInfo {
+- int number;
+- String key;
+- String value;
+- SecurityProviderInfo(int number, String key, String value) {
+- this.number = number;
+- this.key = key;
+- this.value = value;
+- }
++ private static boolean systemFipsEnabled = false;
++
++ static {
++ SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
++ new JavaSecuritySystemConfiguratorAccess() {
++ @Override
++ public boolean isSystemFipsEnabled() {
++ return SystemConfigurator.isSystemFipsEnabled();
++ }
++ });
+ }
+
+ /*
+@@ -128,9 +131,9 @@
+ String nonFipsKeystoreType =
props.getProperty("keystore.type");
+ props.put("keystore.type", keystoreTypeValue);
+ if (keystoreTypeValue.equals("PKCS11")) {
+- // If keystore.type is PKCS11, javax.net.ssl.keyStore
+- // must be "NONE". See JDK-8238264.
+- System.setProperty("javax.net.ssl.keyStore",
"NONE");
++ // If keystore.type is PKCS11, javax.net.ssl.keyStore
++ // must be "NONE". See JDK-8238264.
++ System.setProperty("javax.net.ssl.keyStore",
"NONE");
+ }
+ if (System.getProperty("javax.net.ssl.trustStoreType") ==
null) {
+ // If no trustStoreType has been set, use the
+@@ -144,12 +147,13 @@
+ sdebug.println("FIPS mode default keystore.type = " +
+ keystoreTypeValue);
+ sdebug.println("FIPS mode javax.net.ssl.keyStore = "
+
+- System.getProperty("javax.net.ssl.keyStore",
""));
++ System.getProperty("javax.net.ssl.keyStore",
""));
+ sdebug.println("FIPS mode javax.net.ssl.trustStoreType =
" +
+
System.getProperty("javax.net.ssl.trustStoreType", ""));
+ }
+ }
+ loadedProps = true;
++ systemFipsEnabled = true;
+ }
+ } catch (Exception e) {
+ if (sdebug != null) {
+@@ -165,20 +165,37 @@
+ return loadedProps;
+ }
+
++ /**
++ * Returns whether or not global system FIPS alignment is enabled.
++ *
++ * Value is always 'false' before java.security.Security class is
++ * initialized.
++ *
++ * Call from out of this package through SharedSecrets:
++ * SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ * .isSystemFipsEnabled();
++ *
++ * @return a boolean value indicating whether or not global
++ * system FIPS alignment is enabled.
++ */
++ static boolean isSystemFipsEnabled() {
++ return systemFipsEnabled;
++ }
++
+ /*
+ * FIPS is enabled only if crypto-policies are set to "FIPS"
+ * and the com.redhat.fips property is true.
+ */
+ private static boolean enableFips() throws Exception {
+- boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips",
"true"));
+- if (fipsEnabled) {
+- Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
+- String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
+- if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
+- Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
+- return pattern.matcher(cryptoPoliciesConfig).find();
+- } else {
+- return false;
+- }
++ boolean shouldEnable =
Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
++ if (shouldEnable) {
++ Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
++ String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
++ if (sdebug != null) { sdebug.println("Crypto config:\n" +
cryptoPoliciesConfig); }
++ Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
++ return pattern.matcher(cryptoPoliciesConfig).find();
++ } else {
++ return false;
++ }
+ }
+ }
+diff --git
openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (c) 2020, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.misc;
++
++public interface JavaSecuritySystemConfiguratorAccess {
++ boolean isSystemFipsEnabled();
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -63,6 +63,7 @@
+ private static JavaObjectInputStreamReadString javaObjectInputStreamReadString;
+ private static JavaObjectInputStreamAccess javaObjectInputStreamAccess;
+ private static JavaSecuritySignatureAccess javaSecuritySignatureAccess;
++ private static JavaSecuritySystemConfiguratorAccess
javaSecuritySystemConfiguratorAccess;
+
+ public static JavaUtilJarAccess javaUtilJarAccess() {
+ if (javaUtilJarAccess == null) {
+@@ -248,4 +249,12 @@
+ }
+ return javaxCryptoSealedObjectAccess;
+ }
++
++ public static void
setJavaSecuritySystemConfiguratorAccess(JavaSecuritySystemConfiguratorAccess jssca) {
++ javaSecuritySystemConfiguratorAccess = jssca;
++ }
++
++ public static JavaSecuritySystemConfiguratorAccess
getJavaSecuritySystemConfiguratorAccess() {
++ return javaSecuritySystemConfiguratorAccess;
++ }
+ }
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+@@ -31,6 +31,7 @@
+ import java.security.cert.*;
+ import java.util.*;
+ import javax.net.ssl.*;
++import sun.misc.SharedSecrets;
+ import sun.security.action.GetPropertyAction;
+ import sun.security.provider.certpath.AlgorithmChecker;
+ import sun.security.validator.Validator;
+@@ -539,20 +540,38 @@
+
+ static {
+ if (SunJSSE.isFIPS()) {
+- supportedProtocols = Arrays.asList(
+- ProtocolVersion.TLS13,
+- ProtocolVersion.TLS12,
+- ProtocolVersion.TLS11,
+- ProtocolVersion.TLS10
+- );
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ supportedProtocols = Arrays.asList(
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ );
+
+- serverDefaultProtocols = getAvailableProtocols(
+- new ProtocolVersion[] {
+- ProtocolVersion.TLS13,
+- ProtocolVersion.TLS12,
+- ProtocolVersion.TLS11,
+- ProtocolVersion.TLS10
+- });
++ serverDefaultProtocols = getAvailableProtocols(
++ new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ });
++ } else {
++ supportedProtocols = Arrays.asList(
++ ProtocolVersion.TLS13,
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ );
++
++ serverDefaultProtocols = getAvailableProtocols(
++ new ProtocolVersion[] {
++ ProtocolVersion.TLS13,
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ });
++ }
+ } else {
+ supportedProtocols = Arrays.asList(
+ ProtocolVersion.TLS13,
+@@ -612,6 +631,16 @@
+
+ static ProtocolVersion[] getSupportedProtocols() {
+ if (SunJSSE.isFIPS()) {
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ return new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ };
++ }
+ return new ProtocolVersion[] {
+ ProtocolVersion.TLS13,
+ ProtocolVersion.TLS12,
+@@ -939,6 +968,16 @@
+
+ static ProtocolVersion[] getProtocols() {
+ if (SunJSSE.isFIPS()) {
++ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ return new ProtocolVersion[] {
++ ProtocolVersion.TLS12,
++ ProtocolVersion.TLS11,
++ ProtocolVersion.TLS10
++ };
++ }
+ return new ProtocolVersion[]{
+ ProtocolVersion.TLS12,
+ ProtocolVersion.TLS11,
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+@@ -30,6 +30,8 @@
+
+ import java.security.*;
+
++import sun.misc.SharedSecrets;
++
+ /**
+ * The JSSE provider.
+ *
+@@ -215,8 +217,13 @@
+ "sun.security.ssl.SSLContextImpl$TLS11Context");
+ put("SSLContext.TLSv1.2",
+ "sun.security.ssl.SSLContextImpl$TLS12Context");
+- put("SSLContext.TLSv1.3",
+- "sun.security.ssl.SSLContextImpl$TLS13Context");
++ if (!SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++ .isSystemFipsEnabled()) {
++ // RH1860986: TLSv1.3 key derivation not supported with
++ // the Security Providers available in system FIPS mode.
++ put("SSLContext.TLSv1.3",
++ "sun.security.ssl.SSLContextImpl$TLS13Context");
++ }
+ put("SSLContext.TLS",
+ "sun.security.ssl.SSLContextImpl$TLSContext");
+ if (isfips == false) {
diff --git a/rh1906862-always_initialise_configurator_access.patch
b/rh1906862-always_initialise_configurator_access.patch
new file mode 100644
index 0000000..82116ad
--- /dev/null
+++ b/rh1906862-always_initialise_configurator_access.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User andrew
+# Date 1608219816 0
+# Thu Dec 17 15:43:36 2020 +0000
+# Node ID db5d1b28bfce04352b3a48960bf836f6eb20804b
+# Parent a2cfa397150e99b813354226d536eb8509b5850b
+RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -30,6 +30,8 @@
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.io.*;
+ import java.net.URL;
++import sun.misc.SharedSecrets;
++import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+ import sun.security.util.PropertyExpander;
+
+@@ -69,6 +71,15 @@
+ }
+
+ static {
++ // Initialise here as used by code with system properties disabled
++ SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
++ new JavaSecuritySystemConfiguratorAccess() {
++ @Override
++ public boolean isSystemFipsEnabled() {
++ return SystemConfigurator.isSystemFipsEnabled();
++ }
++ });
++
+ // doPrivileged here because there are multiple
+ // things in initialize that might require privs.
+ // (the FileInputStream call and the File.exists call,
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -39,8 +39,6 @@
+ import java.util.Properties;
+ import java.util.regex.Pattern;
+
+-import sun.misc.SharedSecrets;
+-import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+
+ /**
+@@ -66,16 +64,6 @@
+
+ private static boolean systemFipsEnabled = false;
+
+- static {
+- SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
+- new JavaSecuritySystemConfiguratorAccess() {
+- @Override
+- public boolean isSystemFipsEnabled() {
+- return SystemConfigurator.isSystemFipsEnabled();
+- }
+- });
+- }
+-
+ /*
+ * Invoked when java.security.Security class is initialized, if
+ * java.security.disableSystemPropertiesFile property is not set and
commit 9bb503395a4ebac7476bfe86633dc6ea16f8b19f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jun 7 13:35:52 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b03 (EA)
Update release notes for 8u302-b03.
diff --git a/.gitignore b/.gitignore
index fa44d8a..248a89d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -231,3 +231,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 95a3b38..2f78280 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,7 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6878250: (so) IllegalBlockingModeException thrown when reading from a closed
SocketChannel's InputStream
- JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a
file
+ - JDK-8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
- JDK-8030123: java/beans/Introspector/Test8027648.java fails
- JDK-8033289: clang: clean up unused function warning
- JDK-8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
@@ -35,6 +36,7 @@ Live versions of these release notes can be found at:
- JDK-8134672: [TEST_BUG] Some tests should check isDisplayChangeSupported
- JDK-8134883: C1 hard crash in range check elimination in Nashorn test262parallel
- JDK-8136592: [TEST_BUG] Fix 2 platform-specific closed regtests for jigsaw
+ - JDK-8138820: JDK Hotspot build fails with Xcode 7.0.1
- JDK-8151786: [TESTBUG] java/beans/XMLEncoder/Test4625418.java timed out
intermittently
- JDK-8159898: Negative array size in java/beans/Introspector/Test8027905.java
- JDK-8166046: [TESTBUG] compiler/stringopts/TestStringObjectInitialization.java fails
with OOME
@@ -62,11 +64,17 @@ Live versions of these release notes can be found at:
- JDK-8231949: [PPC64, s390]: Make async profiling more reliable
- JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater()
- JDK-8241649: Optimize Character.toString
+ - JDK-8241829: Cleanup the code for PrinterJob on windows
- JDK-8243559: Remove root certificates with 1024-bit keys
- JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node
- JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for
JList
+ - JDK-8252883: AccessDeniedException caused by delayed file deletion on Windows
- JDK-8255086: Update the root locale display names
- JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too
+ - JDK-8256818: SSLSocket that is never bound or connected leaks socket resources
+ - JDK-8257670: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java reports leaks
+ - JDK-8257884: Re-enable sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java as automatic
test
+ - JDK-8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks
after JDK-8257884
- JDK-8257999: Parallel GC crash in gc/parallel/TestDynShrinkHeap.java: new region is
not in covered_region
- JDK-8258419: RSA cipher buffer cleanup
- JDK-8258669: fastdebug jvm crashes when do event based tracing for monitor inflation
@@ -90,6 +98,7 @@ Live versions of these release notes can be found at:
- JDK-8263600: change rmidRunning to a simple lookup
- JDK-8264509: jdk8u MacOS zipped debug symbols won't build
- JDK-8264562: assert(verify_field_bit(1)) failed: Attempting to write an uninitialized
event field: type
+ - JDK-8264640: CMS ParScanClosure misses a barrier
- JDK-8264816: Weak handles leak causes GC to take longer
- JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u
- JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 315ab69..8097ba5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2550,6 +2550,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Wed Jun 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b03 (EA)
+- Update release notes for 8u302-b03.
+
* Tue May 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b02 (EA)
- Update release notes for 8u302-b02.
diff --git a/sources b/sources
index ff68f68..7507617 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz) =
1c3328c79551d76f0c3730d50e66d2abd251bb8614f947446d76d3543a39b41f8c32e4391b62aa2f4330da2df36686b6825e54d9079ce84b9625da7fa65f21fd
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b03-4curve.tar.xz) =
2da04211fadddf96a7acf18cc5e9a790f403eb31f3b9f960db93d1c2afd5a0d193b7ae70589e4382434816d5849b34be17ae0772cda2e4d7b4338b55cd6cd1f9
commit 6d48cf0847e9f45a424d69763643a7f5bf30d6c6
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jun 4 06:51:37 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b02 (EA)
Update release notes for 8u302-b02.
diff --git a/.gitignore b/.gitignore
index a29eb85..fa44d8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -230,3 +230,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index b78d9ce..95a3b38 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,9 @@ Live versions of these release notes can be found at:
- JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a
file
- JDK-8030123: java/beans/Introspector/Test8027648.java fails
- JDK-8033289: clang: clean up unused function warning
+ - JDK-8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
+ - JDK-8034857: gcc warnings compiling src/solaris/native/sun/management
+ - JDK-8035054: JarFacade.c should not include ctype.h
- JDK-8036095: RMI tests using testlibrary.RMID and testlibrary.JavaVM do not pass
through vmoptions
- JDK-8042891: Format issues embedded in macros for two g1 source files
- JDK-8055754: filemap.cpp does not compile with clang
@@ -25,6 +28,7 @@ Live versions of these release notes can be found at:
- JDK-8073446: TimeZone getOffset API does not return a dst offset between years
2038-2137
- JDK-8075071: [TEST_BUG] TimSortStackSize2.java: OOME: Java heap space: MaxHeap
shrinked by MaxRAMFraction
- JDK-8077364: "if( !this )" construct prevents build on Xcode 6.3
+ - JDK-8129511: PlatformMidi.c:83 uses malloc without malloc header
- JDK-8130308: Too low memory usage in
TestPromotionFromSurvivorToTenuredAfterMinorGC.java
- JDK-8132148: G1 hs_err region dump legend out of sync with region values
- JDK-8132709: [TESTBUG] gc/g1/TestHumongousShrinkHeap.java might fail on embedded
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1aac854..315ab69 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u302-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2550,6 +2550,10 @@ cjc.mainProgram(args)
%endif
%changelog
+* Tue May 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b02 (EA)
+- Update release notes for 8u302-b02.
+
* Sat May 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u302-b01 (EA)
- Update release notes for 8u302-b01.
diff --git a/sources b/sources
index 6774c52..ff68f68 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz) =
7a73f7ffcbe368edfd17b1c13509939bc57e7e14e18fa010d1c4341846c5306820111b789e529e37b5c31fb8fb67dfb3daeb12d6814e62cdff57503884dfbc1d
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b02-4curve.tar.xz) =
1c3328c79551d76f0c3730d50e66d2abd251bb8614f947446d76d3543a39b41f8c32e4391b62aa2f4330da2df36686b6825e54d9079ce84b9625da7fa65f21fd
commit 4c961126942d7b2d53fcaef5f7127e47cc61a213
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jun 2 06:03:04 2021 +0100
Update to aarch64-shenandoah-jdk8u302-b01 (EA)
Update release notes for 8u302-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index c959a85..a29eb85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -229,3 +229,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index e5dea8d..b78d9ce 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,127 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u302 (2021-07-20):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u302
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u302.txt
+
+* Security fixes
+* Other changes
+ - JDK-6878250: (so) IllegalBlockingModeException thrown when reading from a closed
SocketChannel's InputStream
+ - JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a
file
+ - JDK-8030123: java/beans/Introspector/Test8027648.java fails
+ - JDK-8033289: clang: clean up unused function warning
+ - JDK-8036095: RMI tests using testlibrary.RMID and testlibrary.JavaVM do not pass
through vmoptions
+ - JDK-8042891: Format issues embedded in macros for two g1 source files
+ - JDK-8055754: filemap.cpp does not compile with clang
+ - JDK-8064909: FragmentMetaspace.java got OutOfMemoryError
+ - JDK-8066508: JTReg tests timeout on slow devices when run using JPRT
+ - JDK-8066807: langtools/test/Makefile should use -agentvm not -samevm
+ - JDK-8071374: -XX:+PrintAssembly -XX:+PrintSignatureHandlers crash fastdebug VM with
assert(limit == __null || limit <= nm->code_end()) in RelocIterator::initialize
+ - JDK-8073446: TimeZone getOffset API does not return a dst offset between years
2038-2137
+ - JDK-8075071: [TEST_BUG] TimSortStackSize2.java: OOME: Java heap space: MaxHeap
shrinked by MaxRAMFraction
+ - JDK-8077364: "if( !this )" construct prevents build on Xcode 6.3
+ - JDK-8130308: Too low memory usage in
TestPromotionFromSurvivorToTenuredAfterMinorGC.java
+ - JDK-8132148: G1 hs_err region dump legend out of sync with region values
+ - JDK-8132709: [TESTBUG] gc/g1/TestHumongousShrinkHeap.java might fail on embedded
+ - JDK-8134672: [TEST_BUG] Some tests should check isDisplayChangeSupported
+ - JDK-8134883: C1 hard crash in range check elimination in Nashorn test262parallel
+ - JDK-8136592: [TEST_BUG] Fix 2 platform-specific closed regtests for jigsaw
+ - JDK-8151786: [TESTBUG] java/beans/XMLEncoder/Test4625418.java timed out
intermittently
+ - JDK-8159898: Negative array size in java/beans/Introspector/Test8027905.java
+ - JDK-8166046: [TESTBUG] compiler/stringopts/TestStringObjectInitialization.java fails
with OOME
+ - JDK-8166724: gc/g1/TestHumongousShrinkHeap.java fails with OOME
+ - JDK-8177809: File.lastModified() is losing milliseconds (always ends in 000)
+ - JDK-8178403: DirectAudio in JavaSound may hang and leak
+ - JDK-8180478: tools/launcher/MultipleJRE.sh fails on Windows because of
extra-''
+ - JDK-8183910: gc/arguments/TestAggressiveHeap.java fails intermittently
+ - JDK-8190332: PngReader throws NegativeArraySizeException/OOM error when IHDR width is
very large
+ - JDK-8190679: java/util/Arrays/TimSortStackSize2.java fails with "Initial heap
size set to a larger value than the maximum heap size"
+ - JDK-8191955: AArch64: incorrect prefetch distance causes an internal error
+ - JDK-8199265: java/util/Arrays/TimSortStackSize2.java fails with OOM
+ - JDK-8200550: Xcode 9.3 produce warning -Wexpansion-to-defined
+ - JDK-8203196: C1 emits incorrect code due to integer overflow in _tableswitch keys
+ - JDK-8205014: com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java failed with "Read
timed out"
+ - JDK-8209996: [PPC64] Fix JFR profiling
+ - JDK-8214345: infinite recursion while checking super class
+ - JDK-8217230: assert(t == t_no_spec) failure in
NodeHash::check_no_speculative_types()
+ - JDK-8217348: assert(thread->is_Java_thread()) failed: just checking
+ - JDK-8225081: Remove Telia Company CA certificate expiring in April 2021
+ - JDK-8225116: Test OwnedWindowsLeak.java intermittently fails
+ - JDK-8230428: Cleanup dead CastIP node code in formssel.cpp
+ - JDK-8231631: sun/net/ftp/FtpURLConnectionLeak.java fails intermittently with NPE
+ - JDK-8231841: AArch64: debug.cpp help() is missing an AArch64 line for pns
+ - JDK-8231949: [PPC64, s390]: Make async profiling more reliable
+ - JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater()
+ - JDK-8241649: Optimize Character.toString
+ - JDK-8243559: Remove root certificates with 1024-bit keys
+ - JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node
+ - JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for
JList
+ - JDK-8255086: Update the root locale display names
+ - JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too
+ - JDK-8257999: Parallel GC crash in gc/parallel/TestDynShrinkHeap.java: new region is
not in covered_region
+ - JDK-8258419: RSA cipher buffer cleanup
+ - JDK-8258669: fastdebug jvm crashes when do event based tracing for monitor inflation
+ - JDK-8258753: StartTlsResponse.close() hangs due to synchronization issues
+ - JDK-8259271: gc/parallel/TestDynShrinkHeap.java still fails
"assert(covered_region.contains(new_memregion)) failed: new region is not in
covered_region"
+ - JDK-8259619: C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect
+ - JDK-8259886: Improve SSL session cache performance and scalability
+ - JDK-8260029: aarch64: fix typo in verify_oop_array
+ - JDK-8260236: better init AnnotationCollector _contended_group
+ - JDK-8260255: C1: LoopInvariantCodeMotion constructor can leave some fields
uninitialized
+ - JDK-8260484: CheckExamples.java / NoJavaLangTest.java fail with jtreg 4.2
+ - JDK-8260704: ParallelGC: oldgen expansion needs release-store for _end
+ - JDK-8261355: No data buffering in SunPKCS11 Cipher encryption when the underlying
mechanism has no padding
+ - JDK-8261867: Backport relevant test changes & additions from JDK-8130125
+ - JDK-8262110: DST starts from incorrect time in 2038
+ - JDK-8262726: AArch64: C1 StubAssembler::call_RT can corrupt stack
+ - JDK-8262730: Enable jdk8u MacOS external debug symbols
+ - JDK-8262864: No debug symbols in image for Windows
--with-native-debug-symbols=external
+ - JDK-8263061: copy wrong unpack200 debuginfo to bin directory after 8252395
+ - JDK-8263504: Some OutputMachOpcodes fields are uninitialized
+ - JDK-8263600: change rmidRunning to a simple lookup
+ - JDK-8264509: jdk8u MacOS zipped debug symbols won't build
+ - JDK-8264562: assert(verify_field_bit(1)) failed: Attempting to write an uninitialized
event field: type
+ - JDK-8264816: Weak handles leak causes GC to take longer
+ - JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u
+ - JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u
+ - JDK-8266191: Missing aarch64 parts of JDK-8181872 (C1: possible overflow when
strength reducing integer multiply by constant)
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8256902: Removed Root Certificates with 1024-bit Keys
+=========================================================
+The following root certificates with weak 1024-bit RSA public keys
+have been removed from the `cacerts` keystore:
+
+Alias Name: thawtepremiumserverca [jdk]
+Distinguished Name: EMAILADDRESS=premium-server(a)thawte.com, CN=Thawte Premium Server CA,
OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape,
C=ZA
+
+Alias Name: verisignclass2g2ca [jdk]
+Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For
authorized use only", OU=Class 2 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
+
+Alias Name: verisignclass3ca [jdk]
+Distinguished Name: OU=Class 3 Public Primary Certification Authority, O="VeriSign,
Inc.", C=US
+
+Alias Name: verisignclass3g2caÂ[jdk]
+Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For
authorized use only", OU=Class 3 Public Primary Certification Authority - G2,
O="VeriSign, Inc.", C=US
+
+Alias Name: verisigntsaca [jdk]
+Distinguished Name: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte,
L=Durbanville, ST=Western Cape, C=ZA
+
+JDK-8261361: Removed Telia Company's Sonera Class2 CA certificate
+=================================================================
+
+The following root certificate have been removed from the cacerts truststore:
+
+Alias Name: soneraclass2ca
+Distinguished Name: CN=Sonera Class2 CA, O=Sonera, C=FI
+
New in release OpenJDK 8u292 (2021-04-20):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5e15372..1aac854 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b10
+%global shenandoah_revision aarch64-shenandoah-jdk8u302-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,12 +311,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2550,6 +2550,11 @@ cjc.mainProgram(args)
%endif
%changelog
+* Sat May 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.302.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u302-b01 (EA)
+- Update release notes for 8u302-b01.
+- Switch to EA mode.
+
* Mon May 10 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-3
- removed cjc backward comaptiblity, to fix when both rpm 4.16 and 4.17 are in
transaction
diff --git a/sources b/sources
index dc8efbe..6774c52 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz) =
3cde5e7eb2c6e72ad20fc3370d0a2d04d122152243196a4edc617495b428ddc16f7f902b7259999936a44232424032848447c87f3d7e296d0d2a902b61e72173
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u302-b01-4curve.tar.xz) =
7a73f7ffcbe368edfd17b1c13509939bc57e7e14e18fa010d1c4341846c5306820111b789e529e37b5c31fb8fb67dfb3daeb12d6814e62cdff57503884dfbc1d
commit f2efa3b9304d84d0547770a7581c52b81ba60cbb
Author: Jiri <jvanek(a)redhat.com>
Date: Mon May 10 20:34:52 2021 +0200
removed cjc backward comaptiblity, to fix when both rpm 4.16 and 4.17 are in
transaction
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 416f16e..5e15372 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1107,7 +1107,7 @@ Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
# considered as regression
-Requires: copy-jdk-configs >= 3.9
+Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
@@ -2369,10 +2369,10 @@ else
return
end
end
--- run content of included file with fake args
+arg = nil ; -- it is better to null the arg up, no meter if they exists or not, and use
cjc as module in unified way, instead of relaying on "main" method during
require "copy_jdk_configs.lua"
cjc = require "copy_jdk_configs.lua"
-arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
-cjc.mainProgram(arg)
+args = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
+cjc.mainProgram(args)
%post
%{post_script %{nil}}
@@ -2550,6 +2550,9 @@ cjc.mainProgram(arg)
%endif
%changelog
+* Mon May 10 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-3
+- removed cjc backward comaptiblity, to fix when both rpm 4.16 and 4.17 are in
transaction
+
* Mon May 03 2021 Sérgio Basto <sergio(a)serjux.com> - 1:1.8.0.292.b10-2
- Fix upgrade path after removal of accessibility subpackage. As main accessibility was
requiring main package,
main package now have to obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug,
fastdebug} < 1:1.8.0.292.b06
commit 808d7a0c2c021dbe2bf9273d444bccf8eb132bc9
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Tue May 4 11:22:44 2021 +0100
Fix upgrade path after removal of accessibility subpackage. As main accessibility was
requiring main package,
main package now have to obsolete java-1.8.0-openjdk-accessibility-{release,
slowdebug, fastdebug} < 1:1.8.0.292.b06
otherwise update fails
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 38d4d99..416f16e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1465,6 +1465,15 @@ BuildRequires: systemtap-sdt-devel
# when it is built in debug-only this package is just placeholder
%{java_rpo %{nil}}
+# Fix upgrade path after removal of accessibility subpackage
+# on commit 0c79c1451ef42c540682fb75329a92bb110609e7
+# As main accessibility was requiring main package, main package now have to
+# obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug, fastdebug} <
1:1.8.0.292.b06
+# otherwise update fails
+Obsoletes: java-1.8.0-openjdk-accessibility < 1:1.8.0.292.b06
+Obsoletes: java-1.8.0-openjdk-accessibility-slowdebug < 1:1.8.0.292.b06
+Obsoletes: java-1.8.0-openjdk-accessibility-fastdebug < 1:1.8.0.292.b06
+
%description
The %{origin_nice} %{majorver} runtime environment.
@@ -2541,6 +2550,11 @@ cjc.mainProgram(arg)
%endif
%changelog
+* Mon May 03 2021 Sérgio Basto <sergio(a)serjux.com> - 1:1.8.0.292.b10-2
+- Fix upgrade path after removal of accessibility subpackage. As main accessibility was
requiring main package,
+ main package now have to obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug,
fastdebug} < 1:1.8.0.292.b06
+ otherwise update fails
+
* Fri Apr 29 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-1
- adapted to newst cjc to fix issue with rpm 4.17
commit 7c44d4d12d148d87c4e471ffb06a93f99d08b0b3
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Apr 29 17:35:13 2021 +0200
Adapted to rpm 4.17 and cjc 4.0
As rpm 4.17 dropped arg from varaibale table, cjc now have to be sued as
module. cjc 4.0 was converted to module
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b8bf093..38d4d99 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1107,7 +1107,7 @@ Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
# considered as regression
-Requires: copy-jdk-configs >= 3.3
+Requires: copy-jdk-configs >= 3.9
OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
@@ -2326,7 +2326,13 @@ done
-- whether copy-jdk-configs is installed or not. If so, then configs are copied
-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
local posix = require "posix"
-local debug = false
+
+if (os.getenv("debug") == "true") then
+ debug = true;
+ print("cjc: in spec debug is on")
+else
+ debug = false;
+end
SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
@@ -2355,8 +2361,9 @@ else
end
end
-- run content of included file with fake args
+cjc = require "copy_jdk_configs.lua"
arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
-require "copy_jdk_configs.lua"
+cjc.mainProgram(arg)
%post
%{post_script %{nil}}
@@ -2534,6 +2541,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Apr 29 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b10-1
+- adapted to newst cjc to fix issue with rpm 4.17
+
* Tue Apr 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b10-0
- Update to aarch64-shenandoah-jdk8u292-b10 (GA)
- Update release notes for 8u292-b10.
commit 2e183d309d75fc1876656bc6d8af8aa45095a48c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 22 01:15:41 2021 +0100
Update to aarch64-shenandoah-jdk8u292-b10 (GA)
Update release notes for 8u292-b10.
diff --git a/.gitignore b/.gitignore
index 0855951..c959a85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -228,3 +228,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz
diff --git a/NEWS b/NEWS
index fa9e29f..e5dea8d 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,13 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u292
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u292.txt
+* Security fixes
+ - JDK-8227467: Better class method invocations
+ - JDK-8244473: Contextualize registration for JNDI
+ - JDK-8244543: Enhanced handling of abstract classes
+ - JDK-8249906, CVE-2021-2163: Enhance opening JARs
+ - JDK-8250568, CVE-2021-2161: Less ambiguous processing
+ - JDK-8253799: Make lists of normal filenames
* Other changes
- JDK-6345095: regression test EmptyClipRenderingTest fails
- JDK-6896810: TEST_BUG: java/lang/ref/SoftReference/Pin.java fails with OOME during
System.out.println
@@ -92,6 +99,7 @@ Live versions of these release notes can be found at:
- JDK-8256682: JDK-8202343 is incomplete
- JDK-8257746: Regression introduced with JDK-8250984 - memory might be null in some
machines
- JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575
+ - JDK-8258247: Couple of issues in fix for JDK-8249906
- JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
- JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
- JDK-8258833: Cancel multi-part cipher operations in SunPKCS11 after failures
@@ -99,10 +107,12 @@ Live versions of these release notes can be found at:
- JDK-8259048: (tz) Upgrade time-zone data to tzdata2020f
- JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
+ - JDK-8259428: AlgorithmId.getEncodedParams() should return copy
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
- JDK-8260349: Cannot programmatically retrieve Metaspace max set via
JAVA_TOOL_OPTIONS
- JDK-8260356: (tz) Upgrade time-zone data to tzdata2021a
- JDK-8260930: AARCH64: Invalid value passed to critical JNI function
+ - JDK-8261183: Follow on to Make lists of normal filenames
- JDK-8261231: Windows IME was disabled after DnD operation
- JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
- JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 36e87cb..b8bf093 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b09
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b10
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -316,7 +316,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2534,6 +2534,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Apr 13 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b10-0
+- Update to aarch64-shenandoah-jdk8u292-b10 (GA)
+- Update release notes for 8u292-b10.
+
* Tue Mar 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b09-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b09 (EA)
- Update release notes for 8u292-b09.
diff --git a/sources b/sources
index 62b0bbb..dc8efbe 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz) =
a3c69aba94c5e7ddd391296462bc6fb54c49e76d28d8df230144ccdb5dd584666cc895aeb42a2094d3073d11b64b3b3756b5e499484e7a3510283294df27a8e2
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b10-4curve.tar.xz) =
3cde5e7eb2c6e72ad20fc3370d0a2d04d122152243196a4edc617495b428ddc16f7f902b7259999936a44232424032848447c87f3d7e296d0d2a902b61e72173
commit 2d9c5160dda5d9d785eced1bb70927549b6bf7e7
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Apr 9 04:20:07 2021 +0100
Update to aarch64-shenandoah-jdk8u292-b09 (EA)
Update release notes for 8u292-b09.
diff --git a/.gitignore b/.gitignore
index 662ab2f..0855951 100644
--- a/.gitignore
+++ b/.gitignore
@@ -227,3 +227,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz
diff --git a/NEWS b/NEWS
index cc24bef..fa9e29f 100644
--- a/NEWS
+++ b/NEWS
@@ -13,7 +13,7 @@ Live versions of these release notes can be found at:
- JDK-6345095: regression test EmptyClipRenderingTest fails
- JDK-6896810: TEST_BUG: java/lang/ref/SoftReference/Pin.java fails with OOME during
System.out.println
- JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by
removing a infinite loop
- - JDK-7107012: sun.jvm.hostspot.code.CompressedReadStream readDouble() conversion to
long mishandled
+ - JDK-7107012: sun.jvm.hotspot.code.CompressedReadStream readDouble() conversion to
long mishandled
- JDK-7112454: TEST_BUG:
java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html failed
- JDK-7131835: [TEST_BUG] Test does not consider that the rounded edges of the window
in Mac OS 10.7
- JDK-7185221: [macosx] Regtest should not throw exception if a suitable display mode
found
@@ -108,6 +108,7 @@ Live versions of these release notes can be found at:
- JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory
- JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out
intermittently
- JDK-8263008: AARCH64: Add debug info for libsaproc.so
+ - JDK-8264171: Missing aarch64 parts of JDK-8236179 (C1 register allocation failure
with T_ADDRESS)
* Shenandoah
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b464e49..36e87cb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2534,6 +2534,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Mar 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b09-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b09 (EA)
+- Update release notes for 8u292-b09.
+
* Sat Mar 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b08-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b08 (EA)
- Update release notes for 8u292-b08.
diff --git a/sources b/sources
index c1b4274..62b0bbb 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz) =
03df325f6d34de3483609d1aa6de4f1998c6cf8b0502c7d1ee328dae89b5c7a03c3278dde3843e7b7de68291509eea0cda162a620e69fd053a85d3e01170c6ee
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b09-4curve.tar.xz) =
a3c69aba94c5e7ddd391296462bc6fb54c49e76d28d8df230144ccdb5dd584666cc895aeb42a2094d3073d11b64b3b3756b5e499484e7a3510283294df27a8e2
commit 34aae23aafe52e81301ea486aa819c3164dba39b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 8 07:18:29 2021 +0100
Fix bad date in Changelog.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6edd97c..b464e49 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -2543,7 +2543,7 @@ require "copy_jdk_configs.lua"
- Update to aarch64-shenandoah-jdk8u292-b07 (EA)
- Update release notes for 8u292-b07.
-* Mon Mar 24 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b06-0.1.ea
+* Wed Mar 24 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b06-0.1.ea
- removal of atk accessibility bridge bindings:
- removed libatk-wrapper[.]so.* from global _privatelibs
- removed files_accessibility and java_accessibility_rpo macros
commit 5df61f34ef80f723e545bb531f7a4b00a3a6ccb0
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 8 07:13:15 2021 +0100
Update to aarch64-shenandoah-jdk8u292-b08 (EA)
Update release notes for 8u292-b08.
Require tzdata 2021a due to JDK-8260356
diff --git a/.gitignore b/.gitignore
index 0a52cb3..662ab2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -226,3 +226,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 6a07c87..cc24bef 100644
--- a/NEWS
+++ b/NEWS
@@ -40,6 +40,7 @@ Live versions of these release notes can be found at:
- JDK-8171410: aarch64: long multiplyExact shifts by 31 instead of 63
- JDK-8172404: Tools should warn if weak algorithms are used before restricting them
- JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit
key"
+ - JDK-8191915: JCK tests produce incorrect results with C2
- JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode
- JDK-8202343: Disable TLS 1.0 and 1.1
- JDK-8209333: Socket reset issue for TLS 1.3 socket close
@@ -85,6 +86,7 @@ Live versions of these release notes can be found at:
- JDK-8255880: UI of Swing components is not redrawn after their internal state
changed
- JDK-8255908: ExceptionInInitializerError due to UncheckedIOException while
initializing cgroupv1 subsystem
- JDK-8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java
+ - JDK-8256421: Add 2 HARICA roots to cacerts truststore
- JDK-8256642: [TEST_BUG] jdk/test/javax/sound/midi/MidiSystem/DefaultProperties.java
failed
- JDK-8258079: Eliminate ParNew's use of klass_or_null()
- JDK-8256682: JDK-8202343 is incomplete
@@ -99,6 +101,7 @@ Live versions of these release notes can be found at:
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
- JDK-8260349: Cannot programmatically retrieve Metaspace max set via
JAVA_TOOL_OPTIONS
+ - JDK-8260356: (tz) Upgrade time-zone data to tzdata2021a
- JDK-8260930: AARCH64: Invalid value passed to critical JNI function
- JDK-8261231: Windows IME was disabled after DnD operation
- JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
@@ -146,6 +149,17 @@ Notes on individual issues:
security-libs/java.security:
+JDK-8260597: Added 2 HARICA Root CA Certificates
+================================================
+
+The following root certificates have been added to the cacerts truststore:
+
+Alias Name: haricarootca2015
+Distinguished Name: CN=Hellenic Academic and Research Institutions RootCA 2015,
O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR
+
+Alias Name: haricaeccrootca2015
+Distinguished Name: CN=Hellenic Academic and Research Institutions ECC RootCA 2015,
O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR
+
JDK-8236730: Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default
===================================================================================
Weak named curves are disabled by default by adding them to the
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4d80d62..6edd97c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1099,8 +1099,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2020f required as of JDK-8259048 in April CPU
-Requires: tzdata-java >= 2020f
+# 2021a required as of JDK-8260356 in April CPU
+Requires: tzdata-java >= 2021a
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1452,8 +1452,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2020f required as of JDK-8259048 in April CPU
-BuildRequires: tzdata-java >= 2020f
+# 2021a required as of JDK-8260356 in April CPU
+BuildRequires: tzdata-java >= 2021a
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2534,6 +2534,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Mar 27 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b08-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b08 (EA)
+- Update release notes for 8u292-b08.
+- Require tzdata 2021a due to JDK-8260356
+
* Thu Mar 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b07 (EA)
- Update release notes for 8u292-b07.
diff --git a/sources b/sources
index 8d2689b..c1b4274 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz) =
d12cba379f610b426ce95b67763e60e6eaf6821f08c69516dac49932c72f116f0e5934ca946877f1caa97efa6259097e5669fed0af9b2bc3bc575c88ef158f44
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b08-4curve.tar.xz) =
03df325f6d34de3483609d1aa6de4f1998c6cf8b0502c7d1ee328dae89b5c7a03c3278dde3843e7b7de68291509eea0cda162a620e69fd053a85d3e01170c6ee
commit b11200180bdbe8b2d780158fd80d7ac4eba50340
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Mar 30 04:17:23 2021 +0100
Update to aarch64-shenandoah-jdk8u292-b07 (EA)
Update release notes for 8u292-b07.
diff --git a/.gitignore b/.gitignore
index cd6ab2b..0a52cb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -225,3 +225,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index f9484d0..6a07c87 100644
--- a/NEWS
+++ b/NEWS
@@ -104,6 +104,7 @@ Live versions of these release notes can be found at:
- JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
- JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory
- JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out
intermittently
+ - JDK-8263008: AARCH64: Add debug info for libsaproc.so
* Shenandoah
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cdec57f..4d80d62 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2534,6 +2534,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b07 (EA)
+- Update release notes for 8u292-b07.
+
* Mon Mar 24 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b06-0.1.ea
- removal of atk accessibility bridge bindings:
- removed libatk-wrapper[.]so.* from global _privatelibs
diff --git a/sources b/sources
index c1c7289..8d2689b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz) =
f69272380ff719727e4213e17503a76505eb8103b73d582ba5ec862fb002e8becd106aa426d86326401c394362b11eb7b5891fc260f9d06662bce406c5c1a803
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b07-4curve.tar.xz) =
d12cba379f610b426ce95b67763e60e6eaf6821f08c69516dac49932c72f116f0e5934ca946877f1caa97efa6259097e5669fed0af9b2bc3bc575c88ef158f44
commit 0c79c1451ef42c540682fb75329a92bb110609e7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Mar 24 11:18:46 2021 +0100
removal of atk accessibility bridge bindings:
- removed libatk-wrapper[.]so.* from global _privatelibs
- removed files_accessibility and java_accessibility_rpo macros
- removed patch1 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch and patch3
rh1648644-java_access_bridge_privileged_security.patch
- removal of accessibility{,-slowdebug,-fastdebug} subpackages
- no longer creating symlinks of %%{_libdir}/java-atk-wrapper/libatk-wrapper.so.0
libatk-wrapper.so and %%{_libdir}/java-atk-wrapper/java-atk-wrapper.jar
java-atk-wrapper.jar
- no longer creating %%{_jvmdir}/%{jredir -- $suffix}/lib/accessibility.properties
with content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
- removal of accessibility{,-slowdebug,-fastdebug} subpackages files sections
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c3c803c..cdec57f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -354,7 +354,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs
libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _privatelibs
libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
%if %is_system_jdk
%global __provides_exclude ^(%{_privatelibs})$
@@ -1064,12 +1064,6 @@ exit 0
%endif
}
-%define files_accessibility() %{expand:
-%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar
-%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
-}
-
# not-duplicated requires/provides/obsoletes for normal/debug packages
%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
@@ -1200,17 +1194,6 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
%endif
}
-%define java_accessibility_rpo() %{expand:
-Requires: java-atk-wrapper%{?_isa}
-Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-
-Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
-
-}
# Prevent brp-java-repack-jars from being run
%global __jar_repack 0
@@ -1302,11 +1285,6 @@ Source16: CheckVendor.java
# either in their current form or at all.
############################################
-# Accessibility patches
-# Ignore AWTError when assistive technologies are loaded
-Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
-# Restrict access to java-atk-wrapper classes
-Patch3: rh1648644-java_access_bridge_privileged_security.patch
# Turn on AssumeMP by default on RHEL systems
Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies
except LEGACY
@@ -1671,44 +1649,6 @@ BuildArch: noarch
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
%endif
-%if %{include_normal_build}
-%package accessibility
-Summary: %{origin_nice} %{majorver} accessibility connector
-
-%{java_accessibility_rpo %{nil}}
-
-%description accessibility
-Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper.
This allows
-compatible at-spi2 based accessibility programs to work for AWT and Swing-based
-programs.
-
-Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself
is still
-being tuned to be working with accessibility features. There are known issues
-with accessibility on, so please do not install this package unless you really
-need to.
-%endif
-
-%if %{include_debug_build}
-%package accessibility-slowdebug
-Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug}
-
-%{java_accessibility_rpo -- %{debug_suffix_unquoted}}
-
-%description accessibility-slowdebug
-See normal java-%{version}-openjdk-accessibility description.
-%endif
-
-%if %{include_fastdebug_build}
-%package accessibility-fastdebug
-Summary: %{origin_nice} %{majorver} accessibility connector %{for_fastdebug}
-
-%{java_accessibility_rpo -- %{fastdebug_suffix_unquoted}}
-
-%description accessibility-fastdebug
-See normal java-%{version}-openjdk-accessibility description.
-%endif
-
-
%if %{with_openjfx_binding}
%package openjfx
Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
@@ -1832,8 +1772,6 @@ sh %{SOURCE12}
%patch400
%patch401
-%patch1
-%patch3
%patch5
# s390 build fixes
@@ -2317,21 +2255,6 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
| sed 's|^|%dir |' \
> %{name}-demo.files"$suffix"
-# 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}
- ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
- popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext
- ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
- popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/
- echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
- echo "" >> accessibility.properties
- echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >>
accessibility.properties
- echo "" >> accessibility.properties
- popd
-
# intentionally after all else, fx links with redirections on its own
%if %{with_openjfx_binding}
FXSDK_FILES=%{name}-openjfx-devel.files"$suffix"
@@ -2534,7 +2457,6 @@ require "copy_jdk_configs.lua"
# placeholder
%endif
-
%if %{include_normal_build}
%files headless
# important note, see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole
issue
@@ -2558,9 +2480,6 @@ require "copy_jdk_configs.lua"
%files javadoc-zip
%{files_javadoc_zip %{nil}}
-%files accessibility
-%{files_accessibility %{nil}}
-
%if %{with_openjfx_binding}
%files openjfx -f %{name}-openjfx.files
@@ -2584,9 +2503,6 @@ require "copy_jdk_configs.lua"
%files src-slowdebug
%{files_src -- %{debug_suffix_unquoted}}
-%files accessibility-slowdebug
-%{files_accessibility -- %{debug_suffix_unquoted}}
-
%if %{with_openjfx_binding}
%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug
@@ -2604,16 +2520,12 @@ require "copy_jdk_configs.lua"
%files devel-fastdebug
%{files_devel -- %{fastdebug_suffix_unquoted}}
-
%files demo-fastdebug -f %{name}-demo.files-fastdebug
%{files_demo -- %{fastdebug_suffix_unquoted}}
%files src-fastdebug
%{files_src -- %{fastdebug_suffix_unquoted}}
-%files accessibility-fastdebug
-%{files_accessibility -- %{fastdebug_suffix_unquoted}}
-
%if %{with_openjfx_binding}
%files openjfx-fastdebug -f %{name}-openjfx.files-fastdebug
@@ -2622,6 +2534,16 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 24 2021 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.292.b06-0.1.ea
+- removal of atk accessibility bridge bindings:
+- removed libatk-wrapper[.]so.* from global _privatelibs
+- removed files_accessibility and java_accessibility_rpo macros
+- removed patch1 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch and patch3
rh1648644-java_access_bridge_privileged_security.patch
+- removal of accessibility{,-slowdebug,-fastdebug} subpackages
+- no longer creating symlinks of %%{_libdir}/java-atk-wrapper/libatk-wrapper.so.0
libatk-wrapper.so and %%{_libdir}/java-atk-wrapper/java-atk-wrapper.jar
java-atk-wrapper.jar
+- no longer creating %%{_jvmdir}/%{jredir -- $suffix}/lib/accessibility.properties with
content of "assistive_technologies=org.GNOME.Accessibility.AtkWrapper"
+- removal of accessibility{,-slowdebug,-fastdebug} subpackages files sections
+
* Mon Mar 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b06 (EA)
- Update release notes for 8u292-b06.
diff --git a/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
b/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
deleted file mode 100644
index bddd702..0000000
--- a/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -uNr openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java
jdk8/jdk/src/share/classes/java/awt/Toolkit.java
---- openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23
11:59:47.000000000 -0500
-+++ jdk8/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23 12:05:20.000000000 -0500
-@@ -883,7 +883,11 @@
- return null;
- }
- });
-- loadAssistiveTechnologies();
-+ try {
-+ loadAssistiveTechnologies();
-+ } catch ( AWTError error) {
-+ // ignore silently
-+ }
- }
- return toolkit;
- }
diff --git a/rh1648644-java_access_bridge_privileged_security.patch
b/rh1648644-java_access_bridge_privileged_security.patch
deleted file mode 100644
index 28060ed..0000000
--- a/rh1648644-java_access_bridge_privileged_security.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux
openjdk/jdk/src/share/lib/security/java.security-linux
---- openjdk.orig/jdk/src/share/lib/security/java.security-linux
-+++ openjdk/jdk/src/share/lib/security/java.security-linux
-@@ -226,7 +226,9 @@
- com.sun.activation.registries.,\
- jdk.jfr.events.,\
- jdk.jfr.internal.,\
-- jdk.management.jfr.internal.
-+ jdk.management.jfr.internal.,\
-+ org.GNOME.Accessibility.,\
-+ org.GNOME.Bonobo.
-
- #
- # List of comma-separated packages that start with or equal this string
-@@ -279,7 +281,9 @@
- com.sun.activation.registries.,\
- jdk.jfr.events.,\
- jdk.jfr.internal.,\
-- jdk.management.jfr.internal.
-+ jdk.management.jfr.internal.,\
-+ org.GNOME.Accessibility.,\
-+ org.GNOME.Bonobo.
-
- #
- # Determines whether this properties file can be appended to
commit 4efcbc5b8772b8cf79002ef115cec77f28d2da8a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Mar 22 03:49:43 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b06 (EA)
Update release notes for 8u292-b06.
Require tzdata 2020f due to JDK-8259048
diff --git a/.gitignore b/.gitignore
index 6baa99c..cd6ab2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -224,3 +224,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz
diff --git a/NEWS b/NEWS
index e3183b6..f9484d0 100644
--- a/NEWS
+++ b/NEWS
@@ -94,6 +94,7 @@ Live versions of these release notes can be found at:
- JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
- JDK-8258833: Cancel multi-part cipher operations in SunPKCS11 after failures
- JDK-8258933: G1 needs klass_or_null_acquire
+ - JDK-8259048: (tz) Upgrade time-zone data to tzdata2020f
- JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b468e71..c3c803c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1105,8 +1105,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2020b required as of JDK-8254177 in October CPU
-Requires: tzdata-java >= 2020b
+# 2020f required as of JDK-8259048 in April CPU
+Requires: tzdata-java >= 2020f
# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1474,8 +1474,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2020b required as of JDK-8254177 in October CPU
-BuildRequires: tzdata-java >= 2020b
+# 2020f required as of JDK-8259048 in April CPU
+BuildRequires: tzdata-java >= 2020f
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2622,6 +2622,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 22 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b06 (EA)
+- Update release notes for 8u292-b06.
+- Require tzdata 2020f due to JDK-8259048
+
* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.2.ea
- Update to aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11 (EA)
- Update release notes for 8u292-b05-shenandoah-merge-2021-03-11.
diff --git a/sources b/sources
index 9c386e5..c1c7289 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz)
=
fc31d0933b5bf73b91b0e54e7683310b15debcbfe10e41f632a65b9fa4bc5345241107d4b4b99a18bd3e41b0843fbfa06348e267cb19a7e0739b8a2b291b2953
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b06-4curve.tar.xz) =
f69272380ff719727e4213e17503a76505eb8103b73d582ba5ec862fb002e8becd106aa426d86326401c394362b11eb7b5891fc260f9d06662bce406c5c1a803
commit a63448df0f164c612af39e9fbc2e5a174e441cd1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Mar 19 02:46:15 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11 (EA)
Update release notes for 8u292-b05-shenandoah-merge-2021-03-11.
Extend s390 patch to fix issue caused by JDK-8252660 backport and lack of JDK-8188813
in 8u.
Revise JDK-8252660 s390 failure to make _soft_max_size a jlong so pointer types are
accurate.
diff --git a/.gitignore b/.gitignore
index 956b2b5..6baa99c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -223,3 +223,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 835e478..e3183b6 100644
--- a/NEWS
+++ b/NEWS
@@ -103,8 +103,41 @@ Live versions of these release notes can be found at:
- JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
- JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory
- JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out
intermittently
+* Shenandoah
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
+ - [backport] 8202976: Add C1 lea patching support for x86
+ - [backport] 8221507: Implement JFR Events for Shenandoah
+ - [backport] 8224573: Fix windows build after JDK-8221507
+ - [backport] 8228369: Shenandoah: Refactor LRB C1 stubs
+ - [backport] 8229474: Shenandoah: Cleanup CM::update_roots()
+ - [backport] 8229709: x86_32 build and test failures after JDK-8228369 (Shenandoah:
Refactor LRB C1 stubs)
+ - [backport] 8231087: Shenandoah: Self-fixing load reference barriers for C1/C2
+ - [backport] 8232747: Shenandoah: Concurrent GC should deactivate SATB before
processing weak roots
+ - [backport] 8232992: Shenandoah: Implement self-fixing interpreter LRB
+ - [backport] 8233021: Shenandoah: SBSC2::is_shenandoah_lrb_call should match all LRB
shapes
+ - [backport] 8233165: Shenandoah:SBSA::gen_load_reference_barrier_stub() should use
pointer register for address on aarch64
+ - [backport] 8233574: Shenandoah: build is broken without jfr
+ - [backport] 8237837: Shenandoah: assert(mem == __null) failed: only one safepoint
+ - [backport] 8238153: CTW: C2 (Shenandoah) compilation fails with "Unknown node in
get_load_addr: CreateEx"
+ - [backport] 8238851: Shenandoah: C1: Resolve into registers of correct type
+ - [backport] 8240315: Shenandoah: Rename ShLBN::get_barrier_strength()
+ - [backport] 8240751: Shenandoah: fold ShenandoahTracer definition
+ - [backport] 8241765: Shenandoah: AARCH64 need to save/restore call clobbered registers
before calling keepalive barrier
+ - [backport] 8244510: Shenandoah: invert SHC2Support::is_in_cset condition
+ - [backport] 8244663: Shenandoah: C2 assertion fails in Matcher::collect_null_checks
+ - [backport] 8244721: CTW: C2 (Shenandoah) compilation fails with "unexpected
infinite loop graph shape"
+ - [backport] 8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U
+ - [backport] 8252660: Shenandoah: support manageable SoftMaxHeapSize option
+ - [backport] 8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual
num_queues()
+ - [backport] 8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access
VMThread state from other threads
+ - [backport] 8255457: Shenandoah: cleanup ShenandoahMarkTask
+ - [backport] 8255760: Shenandoah: match constants style in ShenandoahMarkTask fallback
+ - [backport] 8256806: Shenandoah: optimize shenandoah/jni/TestPinnedGarbage.java test
+ - [backport] 8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control
thread should return false
+ - Fix register allocation for thread register is 32bit LRB
+ - Fix Shenandoah bindings in ADLC formssel
+ - Shenandoah: Backed out weak roots cleaning during full gc
Notes on individual issues:
===========================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 491bcba..b468e71 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b05
+%global shenandoah_revision
aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2622,6 +2622,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.2.ea
+- Update to aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11 (EA)
+- Update release notes for 8u292-b05-shenandoah-merge-2021-03-11.
+- Extend s390 patch to fix issue caused by JDK-8252660 backport and lack of JDK-8188813
in 8u.
+- Revise JDK-8252660 s390 failure to make _soft_max_size a jlong so pointer types are
accurate.
+
* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.1.ea
- Re-organise S/390 patches for upstream submission, separating 8u upstream from
Shenandoah fixes.
- Add new formatting case found in memprofiler.cpp on debug builds to PR3593 patch.
diff --git a/s390-8214206_fix.patch b/s390-8214206_fix.patch
index fd5b7c5..1b78a9b 100644
--- a/s390-8214206_fix.patch
+++ b/s390-8214206_fix.patch
@@ -20,3 +20,27 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenan
// Defensively saturate for product bits:
if (mag < 0) {
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp
+@@ -659,7 +659,7 @@
+ }
+
+ size_t ShenandoahHeap::soft_max_capacity() const {
+- size_t v = OrderAccess::load_acquire((volatile size_t*)&_soft_max_size);
++ size_t v = OrderAccess::load_acquire((volatile jlong*)&_soft_max_size);
+ assert(min_capacity() <= v && v <= max_capacity(),
+ err_msg("Should be in bounds: " SIZE_FORMAT " <= "
SIZE_FORMAT " <= " SIZE_FORMAT,
+ min_capacity(), v, max_capacity()));
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp
+@@ -155,7 +155,7 @@
+ private:
+ size_t _initial_size;
+ size_t _minimum_size;
+- volatile size_t _soft_max_size;
++ volatile jlong _soft_max_size;
+ shenandoah_padding(0);
+ volatile jlong _used;
+ volatile size_t _committed;
diff --git a/sources b/sources
index b0c0d1b..9c386e5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz) =
6267e958e05c36d010578ea1b773b5575f11c085c4c1036a96f984c44df17d70cb46a5d6db75fb509a900f6918da7bfbbe5e24530691f393069471c7f2b51993
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-shenandoah-merge-2021-03-11-4curve.tar.xz)
=
fc31d0933b5bf73b91b0e54e7683310b15debcbfe10e41f632a65b9fa4bc5345241107d4b4b99a18bd3e41b0843fbfa06348e267cb19a7e0739b8a2b291b2953
commit c98058256bd97721ffdfb0dbf8a9fe8e7a9f5d47
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Mar 18 18:55:49 2021 +0000
Re-organise S/390 patches for upstream submission, separating 8u upstream from
Shenandoah fixes.
Add new formatting case found in memprofiler.cpp on debug builds to PR3593 patch.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index aeec4dd..491bcba 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2622,6 +2622,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 18 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.1.ea
+- Re-organise S/390 patches for upstream submission, separating 8u upstream from
Shenandoah fixes.
+- Add new formatting case found in memprofiler.cpp on debug builds to PR3593 patch.
+
* Mon Mar 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b05 (EA)
- Update release notes for 8u292-b05.
diff --git a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
index 53bceec..4098bdc 100644
--- a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
+++ b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
@@ -1,7 +1,7 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-@@ -2659,7 +2659,7 @@
+diff -r 4689eaf1a5c9
src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Mon
Aug 31 07:09:56 2020 +0100
++++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue
Sep 08 22:20:44 2020 -0400
+@@ -2689,7 +2689,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 --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSwe
}
assert(n_blks > 0, "Error");
_cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
-@@ -957,7 +957,7 @@
+diff -r 4689eaf1a5c9
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Mon
Aug 31 07:09:56 2020 +0100
++++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue
Sep 08 22:20:44 2020 -0400
+@@ -961,7 +961,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 --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSwe
if (PrintGCDetails && Verbose) {
size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
gclog_or_tty->print_cr("\nFrom compute_new_size: ");
-@@ -6577,7 +6577,7 @@
+@@ -6591,7 +6591,7 @@
HeapWord* curAddr = _markBitMap.startWord();
while (curAddr < _markBitMap.endWord()) {
size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr);
@@ -31,7 +31,7 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSwe
_markBitMap.clear_large_range(chunk);
if (ConcurrentMarkSweepThread::should_yield() &&
!foregroundGCIsActive() &&
-@@ -6875,7 +6875,7 @@
+@@ -6889,7 +6889,7 @@
return;
}
// Double capacity if possible
@@ -40,30 +40,34 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSwe
// 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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-@@ -3902,7 +3902,7 @@
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Aug 31
07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Sep 08
22:20:44 2020 -0400
+@@ -3916,7 +3916,7 @@
// of things to do) or totally (at the very end).
size_t target_size;
if (partially) {
- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
-+ target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)
GCDrainStackTargetSize);
++ target_size = MIN2((size_t)_task_queue->max_elems()/3,
(size_t)GCDrainStackTargetSize);
} else {
target_size = 0;
}
-@@ -4706,7 +4706,7 @@
- // The > 0 check is to deal with the prev and next live bytes which
- // could be 0.
- if (*hum_bytes > 0) {
-- bytes = MIN2(HeapRegion::GrainBytes, *hum_bytes);
-+ bytes = MIN2(HeapRegion::GrainBytes, (size_t)*hum_bytes);
- *hum_bytes -= bytes;
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp Mon Aug 31
07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp Tue Sep 08
22:20:44 2020 -0400
+@@ -78,7 +78,8 @@
+ size_t num_target_elems = pointer_delta(end, bottom, mapping_granularity_in_bytes);
+ idx_t bias = (uintptr_t)bottom / mapping_granularity_in_bytes;
+ address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
+- initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
log2_intptr(mapping_granularity_in_bytes));
++ initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
++ log2_intptr((uintptr_t)mapping_granularity_in_bytes));
}
- return bytes;
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+
+ size_t bias() const { return _bias; }
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Mon Aug 31
07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Sep 08
22:20:44 2020 -0400
@@ -1729,7 +1729,7 @@
verify_region_sets_optional();
@@ -73,21 +77,33 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHea
ergo_verbose1(ErgoHeapSizing,
"attempt heap expansion",
ergo_format_reason("allocation request failed")
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
---- openjdk.orig/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();
+diff -r 4689eaf1a5c9
src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp Mon
Aug 31 07:09:56 2020 +0100
++++
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp Tue
Sep 08 22:20:44 2020 -0400
+@@ -41,7 +41,7 @@
}
--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;
- }
+ size_t G1CMObjArrayProcessor::process_array_slice(objArrayOop obj, HeapWord* start_from,
size_t remaining) {
+- size_t words_to_scan = MIN2(remaining, ObjArrayMarkingStride);
++ size_t words_to_scan = MIN2(remaining, (size_t)ObjArrayMarkingStride);
+
+ if (remaining > ObjArrayMarkingStride) {
+ push_array_slice(start_from + ObjArrayMarkingStride);
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.hpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.hpp Mon Aug
31 07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.hpp Tue Sep
08 22:20:44 2020 -0400
+@@ -89,7 +89,7 @@
+ void pretouch_internal(size_t start_page, size_t end_page);
+
+ // Returns the index of the page which contains the given address.
+- uintptr_t addr_to_page_index(char* addr) const;
++ size_t addr_to_page_index(char* addr) const;
+ // Returns the address of the given page index.
+ char* page_start(size_t index) const;
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp Mon Aug
31 07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp Tue Sep 08
22:20:44 2020 -0400
@@ -38,7 +38,7 @@
_cancel(false),
_empty(true),
@@ -97,9 +113,9 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQ
_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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Mon Aug
31 07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Tue Sep 08
22:20:44 2020 -0400
@@ -120,7 +120,7 @@
};
@@ -109,10 +125,10 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupT
_max_list_length(0),
_cached(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)),
_overflowed(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)) {
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
-@@ -109,7 +109,7 @@
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/g1/heapRegion.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Mon Aug 31
07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Tue Sep 08 22:20:44
2020 -0400
+@@ -110,7 +110,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(),
@@ -121,9 +137,9 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
}
int region_size_log = log2_long((jlong) region_size);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+diff -r 4689eaf1a5c9 src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Mon
Aug 31 07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Sep 08
22:20:44 2020 -0400
@@ -194,7 +194,7 @@
const size_t num_overflow_elems = of_stack->size();
const size_t space_available = queue->max_elems() - queue->size();
@@ -133,29 +149,27 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGene
num_overflow_elems);
// Transfer the most recent num_take_elems from the overflow
// stack to our work queue.
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
-@@ -910,8 +910,8 @@
+diff -r 4689eaf1a5c9
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Mon
Aug 31 07:09:56 2020 +0100
++++
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Tue
Sep 08 22:20:44 2020 -0400
+@@ -912,7 +912,7 @@
+
void PSParallelCompact::initialize_dead_wood_limiter()
{
- const size_t max = 100;
-- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-+ _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-+ _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
+- const size_t max = 100;
++ const uintx max = 100;
+ _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
+ _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
_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 --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
-+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+diff -r 4689eaf1a5c9 src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp Mon Aug 31 07:09:56 2020
+0100
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Sep 08 22:20:44 2020
-0400
@@ -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);
- FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
smaller_new_size));
-+ FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
(size_t)smaller_new_size));
++ FLAG_SET_ERGO(uintx, NewSize, MAX2((uintx)young_gen_size_lower_bound(),
smaller_new_size));
_initial_gen0_size = NewSize;
// OldSize is already aligned because above we aligned MaxHeapSize to
@@ -168,7 +182,7 @@ diff --git
openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/
}
assert(max_new_size > 0, "All paths should set max_new_size");
-@@ -455,24 +455,23 @@
+@@ -455,23 +455,25 @@
// lower limit.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
@@ -190,15 +204,16 @@ diff --git
openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/
// NewRatio is overly large, the resulting sizes can be too
// small.
- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize);
-+ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
(size_t)NewSize);
++ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
++ (size_t)NewSize);
desired_new_size =
- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
-- }
-+ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); }
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size),
++ (size_t)NewSize);
+ }
assert(_min_gen0_size > 0, "Sanity check");
- _initial_gen0_size = desired_new_size;
-@@ -573,7 +572,7 @@
+@@ -573,7 +575,7 @@
} else {
// It's been explicitly set on the command line. Use the
// OldSize and then determine the consequences.
@@ -207,9 +222,9 @@ diff --git
openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/
_initial_gen1_size = OldSize;
// If the user has explicitly set an OldSize that is inconsistent
-diff --git openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
openjdk/hotspot/src/share/vm/memory/metaspace.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
-+++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+diff -r 4689eaf1a5c9 src/share/vm/memory/metaspace.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp Mon Aug 31 07:09:56 2020
+0100
++++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp Tue Sep 08 22:20:44 2020 -0400
@@ -1482,7 +1482,7 @@
void MetaspaceGC::post_initialize() {
@@ -237,38 +252,18 @@ diff --git openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
openjdk/hotspo
if (PrintGCDetails && Verbose) {
gclog_or_tty->print_cr(" "
" maximum_free_percentage: %6.2f"
-@@ -3361,7 +3361,7 @@
+@@ -3320,7 +3320,7 @@
+ // Make the first class chunk bigger than a medium chunk so it's not put
// 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,
-- (CompressedClassSpaceSize/BytesPerWord)*2);
-+
(size_t)(CompressedClassSpaceSize/BytesPerWord)*2);
+- _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6,
++ _first_class_chunk_word_size = MIN2((uintx)MediumChunk*6,
+ (CompressedClassSpaceSize/BytesPerWord)*2);
_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 --git openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
-+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
-@@ -250,13 +250,13 @@
- size_t init_sz = 0;
-
- if (TLABSize > 0) {
-- init_sz = TLABSize / HeapWordSize;
-+ init_sz = (size_t)(TLABSize / HeapWordSize);
- } else if (global_stats() != NULL) {
- // Initial size is a function of the average number of allocating threads.
- unsigned nof_threads = global_stats()->allocating_threads_avg();
-
-- init_sz = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
-- (nof_threads * target_refills());
-+ init_sz = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize)
/
-+ (nof_threads * target_refills()));
- init_sz = align_object_size(init_sz);
- }
- init_sz = MIN2(MAX2(init_sz, min_size()), max_size());
-diff --git openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
---- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
-+++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+diff -r 4689eaf1a5c9 src/share/vm/oops/objArrayKlass.inline.hpp
+--- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp Mon Aug 31 07:09:56
2020 +0100
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp Tue Sep 08 22:20:44 2020
-0400
@@ -48,7 +48,7 @@
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -287,10 +282,10 @@ diff --git
openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp openj
const size_t end_index = beg_index + stride;
T* const base = (T*)a->base();
T* const beg = base + beg_index;
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1289,7 +1289,7 @@
+diff -r 4689eaf1a5c9 src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp Mon Aug 31 07:09:56 2020
+0100
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Tue Sep 08 22:20:44 2020 -0400
+@@ -1301,7 +1301,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
@@ -299,7 +294,7 @@ diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotsp
} else {
FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
}
-@@ -1314,8 +1314,8 @@
+@@ -1326,8 +1326,8 @@
// Unless explicitly requested otherwise, make young gen
// at least min_new, and at most preferred_max_new_size.
if (FLAG_IS_DEFAULT(NewSize)) {
@@ -310,7 +305,7 @@ diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotsp
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1325,7 +1325,7 @@
+@@ -1337,7 +1337,7 @@
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
@@ -319,25 +314,15 @@ diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotsp
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
-@@ -41,7 +41,7 @@
+diff -r 4689eaf1a5c9 src/share/vm/runtime/os.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp Mon Aug 31 07:09:56 2020 +0100
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp Tue Sep 08 22:20:44 2020 -0400
+@@ -1272,7 +1272,7 @@
}
- size_t G1CMObjArrayProcessor::process_array_slice(objArrayOop obj, HeapWord* start_from,
size_t remaining) {
-- size_t words_to_scan = MIN2(remaining, ObjArrayMarkingStride);
-+ size_t words_to_scan = MIN2(remaining, (size_t) ObjArrayMarkingStride);
-
- if (remaining > ObjArrayMarkingStride) {
- push_array_slice(start_from + ObjArrayMarkingStride);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
-@@ -150,5 +150,5 @@
- return value;
- }
-
-- return (size_t)1 << (log2_intptr(value) + 1);
-+ return (size_t)1 << (log2_intptr((uintptr_t) value) + 1);
- }
+ void os::set_memory_serialize_page(address page) {
+- int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64);
++ int count = log2_intptr((uintptr_t)sizeof(class JavaThread)) - log2_int(64);
+ _mem_serialize_page = (volatile int32_t *)page;
+ // We initialize the serialization page shift count here
+ // We assume a cache line size of 64 bytes
diff --git
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
index e1e7214..a980895 100644
---
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
+++
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
@@ -141,3 +141,26 @@ diff --git
openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp ope
#define INTX_FORMAT "%" PRIdPTR
#define UINTX_FORMAT "%" PRIuPTR
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/memprofiler.cpp
openjdk/hotspot/src/share/vm/runtime/memprofiler.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/memprofiler.cpp
++++ openjdk/hotspot/src/share/vm/runtime/memprofiler.cpp
+@@ -117,16 +117,16 @@
+ }
+
+ // Print trace line in log
+- fprintf(_log_fp, "%6.1f,%5d,%5d," UINTX_FORMAT_W(6) ","
UINTX_FORMAT_W(6) ",",
++ fprintf(_log_fp, "%6.1f,%5d,%5d," SIZE_FORMAT_W(6) ","
SIZE_FORMAT_W(6) ",",
+ os::elapsedTime(),
+ Threads::number_of_threads(),
+ SystemDictionary::number_of_classes(),
+ Universe::heap()->used() / K,
+ Universe::heap()->capacity() / K);
+
+- fprintf(_log_fp, UINTX_FORMAT_W(6) ",", CodeCache::capacity() / K);
++ fprintf(_log_fp, SIZE_FORMAT_W(6) ",", CodeCache::capacity() / K);
+
+- fprintf(_log_fp, UINTX_FORMAT_W(6) "," UINTX_FORMAT_W(6) ","
UINTX_FORMAT_W(6) "\n",
++ fprintf(_log_fp, SIZE_FORMAT_W(6) "," SIZE_FORMAT_W(6) ","
SIZE_FORMAT_W(6) "\n",
+ handles_memory_usage / K,
+ resource_memory_usage / K,
+ OopMapCache::memory_usage() / K);
diff --git a/s390-8214206_fix.patch b/s390-8214206_fix.patch
index 42902cf..fd5b7c5 100644
--- a/s390-8214206_fix.patch
+++ b/s390-8214206_fix.patch
@@ -1,16 +1,13 @@
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
-@@ -78,7 +78,8 @@
- size_t num_target_elems = pointer_delta(end, bottom, mapping_granularity_in_bytes);
- idx_t bias = (uintptr_t)bottom / mapping_granularity_in_bytes;
- address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
-- initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
log2_intptr(mapping_granularity_in_bytes));
-+ initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
-+ log2_long(mapping_granularity_in_bytes));
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+@@ -150,5 +150,5 @@
+ return value;
}
- size_t bias() const { return _bias; }
+- return (size_t)1 << (log2_intptr(value) + 1);
++ return (size_t)1 << (log2_intptr((uintptr_t) value) + 1);
+ }
diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
@@ -19,19 +16,7 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenan
Atomic::add(val, &_sum);
- int mag = log2_intptr(val) + 1;
-+ int mag = log2_long(val) + 1;
++ int mag = log2_intptr((uintptr_t)val) + 1;
// Defensively saturate for product bits:
if (mag < 0) {
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
openjdk/hotspot/src/share/vm/runtime/os.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/os.cpp
-@@ -1284,7 +1284,7 @@
- }
-
- void os::set_memory_serialize_page(address page) {
-- int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64);
-+ int count = log2_long(sizeof(class JavaThread)) - log2_int(64);
- _mem_serialize_page = (volatile int32_t *)page;
- // We initialize the serialization page shift count here
- // We assume a cache line size of 64 bytes
commit 13bfe740ca068594961a45c85db435f8a471688f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Mar 9 17:18:55 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b05 (EA)
Update release notes for 8u292-b05.
diff --git a/.gitignore b/.gitignore
index 543be9e..956b2b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -222,3 +222,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz
diff --git a/NEWS b/NEWS
index a34e64e..835e478 100644
--- a/NEWS
+++ b/NEWS
@@ -10,17 +10,26 @@ Live versions of these release notes can be found at:
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u292.txt
* Other changes
+ - JDK-6345095: regression test EmptyClipRenderingTest fails
+ - JDK-6896810: TEST_BUG: java/lang/ref/SoftReference/Pin.java fails with OOME during
System.out.println
- JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by
removing a infinite loop
+ - JDK-7107012: sun.jvm.hostspot.code.CompressedReadStream readDouble() conversion to
long mishandled
+ - JDK-7112454: TEST_BUG:
java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html failed
+ - JDK-7131835: [TEST_BUG] Test does not consider that the rounded edges of the window
in Mac OS 10.7
+ - JDK-7185221: [macosx] Regtest should not throw exception if a suitable display mode
found
- JDK-8031126: java/lang/management/ThreadMXBean/ThreadUserTime.java fails
intermittently
- JDK-8035166: Remove dependency on EC classes from pkcs11 provider
- JDK-8035186: j2se_jdk/jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java -
assertion error
- JDK-8038723: Openup some PrinterJob tests
+ - JDK-8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
- JDK-8041561: Inconsistent opacity behaviour between JCheckBox and JRadioButton
- JDK-8061777: (zipfs) IllegalArgumentException in ZipCoder.toString when using
Shitft_JIS
+ - JDK-8078024: javac, several incorporation steps are silently failing when an error
should be reported
- JDK-8078450: Implement consistent process for quarantine of tests
- JDK-8078614: WindowsClassicLookAndFeel MetalComboBoxUI.getbaseLine fails with
IllegalArgumentException
- JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly
typed bugid
- JDK-8081547: Prepare client libs regression tests for running in a concurrent,
headless jtreg environment
+ - JDK-8129626: G1: set_in_progress() and clear_started() needs a barrier on non-TSO
platforms
- JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256
- JDK-8145051: Wrong parameter name in synthetic lambda method leads to verifier error
- JDK-8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging
output
@@ -34,6 +43,7 @@ Live versions of these release notes can be found at:
- JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode
- JDK-8202343: Disable TLS 1.0 and 1.1
- JDK-8209333: Socket reset issue for TLS 1.3 socket close
+ - JDK-8211301: [macos] support full window content options
- JDK-8211339: NPE during SSL handshake caused by HostnameChecker
- JDK-8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy
- JDK-8217338: [Containers] Improve systemd slice memory limit support
@@ -56,9 +66,11 @@ Live versions of these release notes can be found at:
- JDK-8236500: Windows ucrt.dll should be looked up in versioned WINSDK subdirectory
- JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read
- JDK-8239091: Reversed arguments in call to strstr in freetype "debug"
code.
+ - JDK-8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1
- JDK-8240827: Downport SSLSocketImpl.java from "8221882: Use fiber-friendly
java.util.concurrent.locks in JSSE"
- JDK-8242141: New System Properties to configure the TLS signature schemes
- JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when
building with Xcode 11
+ - JDK-8248336: AArch64: C2: offset overflow in BoxLockNode::emit
- JDK-8249183: JVM crash in "AwtFrame::WmSize" method
- JDK-8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in
GTKLookAndFeel
- JDK-8249588: libwindowsaccessbridge issues on 64bit Windows
@@ -76,6 +88,7 @@ Live versions of these release notes can be found at:
- JDK-8256642: [TEST_BUG] jdk/test/javax/sound/midi/MidiSystem/DefaultProperties.java
failed
- JDK-8258079: Eliminate ParNew's use of klass_or_null()
- JDK-8256682: JDK-8202343 is incomplete
+ - JDK-8257746: Regression introduced with JDK-8250984 - memory might be null in some
machines
- JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575
- JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
- JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
@@ -86,7 +99,9 @@ Live versions of these release notes can be found at:
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
- JDK-8260349: Cannot programmatically retrieve Metaspace max set via
JAVA_TOOL_OPTIONS
- JDK-8260930: AARCH64: Invalid value passed to critical JNI function
+ - JDK-8261231: Windows IME was disabled after DnD operation
- JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
+ - JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory
- JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out
intermittently
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
@@ -171,6 +186,53 @@ used for the TLS connections.
The names are described in the "Signature Schemes" section of the
*Java Security Standard Algorithm Names Specification*.
+tools/javac:
+
+JDK-8177368: Several incorporation steps are silently failing when an error should be
reported
+==============================================================================================
+Reporting previously silent errors found during incorporation, JLS
+8§18.3, was supposed to be a clean-up with performance only
+implications. But consider the test case:
+
+import java.util.Arrays;
+import java.util.List;
+
+class Klass {
+ public static <A> List<List<A>> foo(List<? extends A>... lists)
{
+ return foo(Arrays.asList(lists));
+ }
+
+ public static <B> List<List<B>> foo(List<? extends List<?
extends B>> lists) {
+ return null;
+ }
+}
+
+This code was not accepted before the patch for [1], but after this
+patch the compiler is accepting it. Accepting this code is the right
+behavior as not reporting incorporation errors was a bug in the
+compiler. While determining the applicability of method: <B>
+List<List<B>> foo(List<? extends List<? extends B>> lists) for
which
+we have the constraints: b <: Object t <: List<? extends B> t<:Object
+List<? extends A> <: t first, inference variable b is selected for
+instantiation: b = CAP1 of ? extends A so this implies that: t <:
+List<? extends CAP1 of ? extends A> t<: Object List<? extends A> <: t
+
+Now all the bounds are checked for consistency. While checking if
+List<? extends A> is a subtype of List<? extends CAP1 of ? extends A>
+a bound error is reported. Before the compiler was just swallowing
+it. As now the error is reported while inference variable b is being
+instantiated, the bound set is rolled back to it's initial state, 'b'
+is instantiated to Object, and with this instantiation the constraint
+set is solvable, the method is applicable, it's the only applicable
+one and the code is accepted as correct. The compiler behavior in this
+case is defined at JLS 8 §18.4
+
+This fix has source compatibility impact, right now code that wasn't
+being accepted is now being accepted by the javac compiler. Currently
+there are no reports of any other kind of incompatibility.
+
+[1]
https://bugs.openjdk.java.net/browse/JDK-8078024
+
New in release OpenJDK 8u282 (2021-01-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0249414..aeec4dd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2622,6 +2622,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 08 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b05-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b05 (EA)
+- Update release notes for 8u292-b05.
+
* Fri Mar 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b04 (EA)
- Update release notes for 8u292-b04.
diff --git a/sources b/sources
index fb2e5a7..b0c0d1b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz) =
db7a66478b34da1edc52488ee1ec3d8ce4bd3795df58ad9b34bdb8bc0cb863b6b29aa14c696fb5f48ac474def3b840bc2b279ffe16fffded838e2aec54f1fe1e
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b05-4curve.tar.xz) =
6267e958e05c36d010578ea1b773b5575f11c085c4c1036a96f984c44df17d70cb46a5d6db75fb509a900f6918da7bfbbe5e24530691f393069471c7f2b51993
commit 1b76c65723c98decdad20cc4dd1aab7cb40de68e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Mar 5 06:01:54 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b04 (EA)
Update release notes for 8u292-b04.
diff --git a/.gitignore b/.gitignore
index 1e967ba..543be9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -221,3 +221,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index edf401b..a34e64e 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ Live versions of these release notes can be found at:
- JDK-8035186: j2se_jdk/jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java -
assertion error
- JDK-8038723: Openup some PrinterJob tests
- JDK-8041561: Inconsistent opacity behaviour between JCheckBox and JRadioButton
+ - JDK-8061777: (zipfs) IllegalArgumentException in ZipCoder.toString when using
Shitft_JIS
- JDK-8078450: Implement consistent process for quarantine of tests
- JDK-8078614: WindowsClassicLookAndFeel MetalComboBoxUI.getbaseLine fails with
IllegalArgumentException
- JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly
typed bugid
@@ -23,9 +24,11 @@ Live versions of these release notes can be found at:
- JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256
- JDK-8145051: Wrong parameter name in synthetic lambda method leads to verifier error
- JDK-8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging
output
+ - JDK-8158525: Update a few java/net tests to use the loopback address instead of the
host address
- JDK-8160217: JavaSound should clean up resources better
- JDK-8167281: IIOMetadataNode bugs in getElementsByTagName and NodeList.item methods
- JDK-8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked
node
+ - JDK-8171410: aarch64: long multiplyExact shifts by 31 instead of 63
- JDK-8172404: Tools should warn if weak algorithms are used before restricting them
- JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit
key"
- JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode
@@ -37,6 +40,7 @@ Live versions of these release notes can be found at:
- JDK-8219991: New fix of the deadlock in sun.security.ssl.SSLSocketImpl
- JDK-8221408: Windows 32bit build build errors/warnings in hotspot
- JDK-8223186: HotSpot compile warnings from GCC 9
+ - JDK-8225435: Upgrade IANA Language Subtag Registry to the latest for JDK14
- JDK-8225805: Java Access Bridge does not close the logger
- JDK-8226899: Problemlist compiler/rtm tests
- JDK-8227642: [TESTBUG] Make docker tests podman compatible
@@ -46,7 +50,10 @@ Live versions of these release notes can be found at:
- JDK-8233228: Disable weak named curves by default in TLS, CertPath, and Signed JAR
- JDK-8234727: sun/security/ssl/X509TrustManagerImpl tests support TLSv1.3
- JDK-8234728: Some security tests should support TLSv1.3
+ - JDK-8235263: Revert TLS 1.3 change that wrapped IOExceptions
+ - JDK-8235311: Tag mismatch may alert bad_record_mac
- JDK-8235874: The ordering of Cipher Suites is not maintained provided through
jdk.tls.client.cipherSuites and jdk.tls.server.cipherSuites system property.
+ - JDK-8236500: Windows ucrt.dll should be looked up in versioned WINSDK subdirectory
- JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read
- JDK-8239091: Reversed arguments in call to strstr in freetype "debug"
code.
- JDK-8240827: Downport SSLSocketImpl.java from "8221882: Use fiber-friendly
java.util.concurrent.locks in JSSE"
@@ -77,7 +84,10 @@ Live versions of these release notes can be found at:
- JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
+ - JDK-8260349: Cannot programmatically retrieve Metaspace max set via
JAVA_TOOL_OPTIONS
- JDK-8260930: AARCH64: Invalid value passed to critical JNI function
+ - JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017
+ - JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out
intermittently
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 58c87bd..0249414 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2622,6 +2622,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Mar 05 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b04 (EA)
+- Update release notes for 8u292-b04.
+
* Thu Mar 04 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b03 (EA)
- Update release notes for 8u292-b03.
diff --git a/sources b/sources
index b463d0a..fb2e5a7 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz) =
9dabe45a32d25fd4332006e2b5b17a6bf43693cee3cb82a371c91857d647f86c5c50453b4a95a1c65121ca21fb4a74f9779925a07707f2b3d2e06b946b84b9ea
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b04-4curve.tar.xz) =
db7a66478b34da1edc52488ee1ec3d8ce4bd3795df58ad9b34bdb8bc0cb863b6b29aa14c696fb5f48ac474def3b840bc2b279ffe16fffded838e2aec54f1fe1e
commit 36a26ce298d7cf8ee36ea8d4c2ec3bc0dc9e446a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Mar 4 18:37:48 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b03 (EA)
Update release notes for 8u292-b03.
diff --git a/.gitignore b/.gitignore
index b701844..1e967ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -220,3 +220,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 2645cdb..edf401b 100644
--- a/NEWS
+++ b/NEWS
@@ -21,16 +21,20 @@ Live versions of these release notes can be found at:
- JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly
typed bugid
- JDK-8081547: Prepare client libs regression tests for running in a concurrent,
headless jtreg environment
- JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256
+ - JDK-8145051: Wrong parameter name in synthetic lambda method leads to verifier error
- JDK-8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging
output
- JDK-8160217: JavaSound should clean up resources better
- JDK-8167281: IIOMetadataNode bugs in getElementsByTagName and NodeList.item methods
- JDK-8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked
node
+ - JDK-8172404: Tools should warn if weak algorithms are used before restricting them
- JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit
key"
- JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode
- JDK-8202343: Disable TLS 1.0 and 1.1
+ - JDK-8209333: Socket reset issue for TLS 1.3 socket close
- JDK-8211339: NPE during SSL handshake caused by HostnameChecker
- JDK-8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy
- JDK-8217338: [Containers] Improve systemd slice memory limit support
+ - JDK-8219991: New fix of the deadlock in sun.security.ssl.SSLSocketImpl
- JDK-8221408: Windows 32bit build build errors/warnings in hotspot
- JDK-8223186: HotSpot compile warnings from GCC 9
- JDK-8225805: Java Access Bridge does not close the logger
@@ -44,6 +48,8 @@ Live versions of these release notes can be found at:
- JDK-8234728: Some security tests should support TLSv1.3
- JDK-8235874: The ordering of Cipher Suites is not maintained provided through
jdk.tls.client.cipherSuites and jdk.tls.server.cipherSuites system property.
- JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read
+ - JDK-8239091: Reversed arguments in call to strstr in freetype "debug"
code.
+ - JDK-8240827: Downport SSLSocketImpl.java from "8221882: Use fiber-friendly
java.util.concurrent.locks in JSSE"
- JDK-8242141: New System Properties to configure the TLS signature schemes
- JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when
building with Xcode 11
- JDK-8249183: JVM crash in "AwtFrame::WmSize" method
@@ -57,10 +63,12 @@ Live versions of these release notes can be found at:
- JDK-8253476: TestUseContainerSupport.java fails on some Linux kernels w/o swap limit
capabilities
- JDK-8253932: SSL debug log prints incorrect caller info
- JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller
combinations
+ - JDK-8255880: UI of Swing components is not redrawn after their internal state
changed
- JDK-8255908: ExceptionInInitializerError due to UncheckedIOException while
initializing cgroupv1 subsystem
- JDK-8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java
- JDK-8256642: [TEST_BUG] jdk/test/javax/sound/midi/MidiSystem/DefaultProperties.java
failed
- JDK-8258079: Eliminate ParNew's use of klass_or_null()
+ - JDK-8256682: JDK-8202343 is incomplete
- JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575
- JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
- JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
@@ -69,6 +77,7 @@ Live versions of these release notes can be found at:
- JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
+ - JDK-8260930: AARCH64: Invalid value passed to critical JNI function
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
- Revert differences against upstream 8u
@@ -116,6 +125,15 @@ jdk.disabled.namedCurves` either from specific or from all
curves, remove the specific named curve(s) from the
`jdk.disabled.namedCurves` property.
+JDK-8244286: Tools Warn If Weak Algorithms Are Used
+===================================================
+The `keytool` and `jarsigner` tools have been updated to warn users
+when weak cryptographic algorithms are used in keys, certificates, and
+signed JARs before they are disabled. The weak algorithms are set in
+the `jdk.security.legacyAlgorithms` security property in the
+`java.security` configuration file. In this release, the tools issue
+warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys.
+
security-libs/javax.net.ssl:
JDK-8256490: Disable TLS 1.0 and 1.1
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d60b160..58c87bd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2622,6 +2622,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 04 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b03 (EA)
+- Update release notes for 8u292-b03.
+
* Tue Mar 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b02 (EA)
- Update release notes for 8u292-b02.
diff --git a/sources b/sources
index 14dc49a..b463d0a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz) =
8b08ade80d5ee2fc9c175242b0f3ecddb342791bfab56779ca2f8b30de48c4f5e116dd23a8c5ad495c38a84d96738e7ba2011b6a96752cf71105d19a53cfe821
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b03-4curve.tar.xz) =
9dabe45a32d25fd4332006e2b5b17a6bf43693cee3cb82a371c91857d647f86c5c50453b4a95a1c65121ca21fb4a74f9779925a07707f2b3d2e06b946b84b9ea
commit af1441c7511f2cf209e73b9de33aa391e5098486
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Mar 3 02:14:53 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b02 (EA)
Update release notes for 8u292-b02.
diff --git a/.gitignore b/.gitignore
index 20468b5..b701844 100644
--- a/.gitignore
+++ b/.gitignore
@@ -219,3 +219,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index bc656ee..2645cdb 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,7 @@ Live versions of these release notes can be found at:
- JDK-8038723: Openup some PrinterJob tests
- JDK-8041561: Inconsistent opacity behaviour between JCheckBox and JRadioButton
- JDK-8078450: Implement consistent process for quarantine of tests
+ - JDK-8078614: WindowsClassicLookAndFeel MetalComboBoxUI.getbaseLine fails with
IllegalArgumentException
- JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly
typed bugid
- JDK-8081547: Prepare client libs regression tests for running in a concurrent,
headless jtreg environment
- JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256
@@ -25,6 +26,7 @@ Live versions of these release notes can be found at:
- JDK-8167281: IIOMetadataNode bugs in getElementsByTagName and NodeList.item methods
- JDK-8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked
node
- JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit
key"
+ - JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode
- JDK-8202343: Disable TLS 1.0 and 1.1
- JDK-8211339: NPE during SSL handshake caused by HostnameChecker
- JDK-8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy
@@ -45,7 +47,9 @@ Live versions of these release notes can be found at:
- JDK-8242141: New System Properties to configure the TLS signature schemes
- JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when
building with Xcode 11
- JDK-8249183: JVM crash in "AwtFrame::WmSize" method
+ - JDK-8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in
GTKLookAndFeel
- JDK-8249588: libwindowsaccessbridge issues on 64bit Windows
+ - JDK-8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS Kerberos
tickets
- JDK-8250984: Memory Docker tests fail on some Linux kernels w/o cgroupv1 swap limit
capabilities
- JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray
- JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails
on Windows
@@ -60,11 +64,13 @@ Live versions of these release notes can be found at:
- JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575
- JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
- JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
+ - JDK-8258833: Cancel multi-part cipher operations in SunPKCS11 after failures
- JDK-8258933: G1 needs klass_or_null_acquire
- JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
- JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
- JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
- Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
+ - Revert differences against upstream 8u
Notes on individual issues:
===========================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 99525d3..d60b160 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u292-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2622,6 +2622,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Mar 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b02 (EA)
+- Update release notes for 8u292-b02.
+
* Fri Feb 19 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u292-b01 (EA)
- Update release notes for 8u292-b01.
diff --git a/sources b/sources
index 49a40a0..14dc49a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz) =
35e527c387f55af66132cdae8c8ea198700d731ce2a69136cf7e02a8f837a6f2d9c96303c84468305cc7762d65c3f95ef8264218a82652a00063179d2557a648
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b02-4curve.tar.xz) =
8b08ade80d5ee2fc9c175242b0f3ecddb342791bfab56779ca2f8b30de48c4f5e116dd23a8c5ad495c38a84d96738e7ba2011b6a96752cf71105d19a53cfe821
commit 572aa88c5790feba3ff49c2a7b716dd592c275a1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Feb 20 03:23:35 2021 +0000
Update to aarch64-shenandoah-jdk8u292-b01 (EA)
Update release notes for 8u292-b01.
Switch to EA mode.
Update tarball generation script to use PR3822 which handles JDK-8233228 &
JDK-8035166 changes
diff --git a/.gitignore b/.gitignore
index a9304d6..20468b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -218,3 +218,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index ee1e724..bc656ee 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,140 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u292 (2021-04-20):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u292
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u292.txt
+
+* Other changes
+ - JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by
removing a infinite loop
+ - JDK-8031126: java/lang/management/ThreadMXBean/ThreadUserTime.java fails
intermittently
+ - JDK-8035166: Remove dependency on EC classes from pkcs11 provider
+ - JDK-8035186: j2se_jdk/jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java -
assertion error
+ - JDK-8038723: Openup some PrinterJob tests
+ - JDK-8041561: Inconsistent opacity behaviour between JCheckBox and JRadioButton
+ - JDK-8078450: Implement consistent process for quarantine of tests
+ - JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly
typed bugid
+ - JDK-8081547: Prepare client libs regression tests for running in a concurrent,
headless jtreg environment
+ - JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256
+ - JDK-8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging
output
+ - JDK-8160217: JavaSound should clean up resources better
+ - JDK-8167281: IIOMetadataNode bugs in getElementsByTagName and NodeList.item methods
+ - JDK-8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked
node
+ - JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit
key"
+ - JDK-8202343: Disable TLS 1.0 and 1.1
+ - JDK-8211339: NPE during SSL handshake caused by HostnameChecker
+ - JDK-8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy
+ - JDK-8217338: [Containers] Improve systemd slice memory limit support
+ - JDK-8221408: Windows 32bit build build errors/warnings in hotspot
+ - JDK-8223186: HotSpot compile warnings from GCC 9
+ - JDK-8225805: Java Access Bridge does not close the logger
+ - JDK-8226899: Problemlist compiler/rtm tests
+ - JDK-8227642: [TESTBUG] Make docker tests podman compatible
+ - JDK-8228434: jdk/net/Sockets/Test.java fails after JDK-8227642
+ - JDK-8229284: jdk/internal/platform/cgroup/TestCgroupMetrics.java fails for -
memory:getMemoryUsage
+ - JDK-8230388: Problemlist additional compiler/rtm tests
+ - JDK-8233228: Disable weak named curves by default in TLS, CertPath, and Signed JAR
+ - JDK-8234727: sun/security/ssl/X509TrustManagerImpl tests support TLSv1.3
+ - JDK-8234728: Some security tests should support TLSv1.3
+ - JDK-8235874: The ordering of Cipher Suites is not maintained provided through
jdk.tls.client.cipherSuites and jdk.tls.server.cipherSuites system property.
+ - JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read
+ - JDK-8242141: New System Properties to configure the TLS signature schemes
+ - JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when
building with Xcode 11
+ - JDK-8249183: JVM crash in "AwtFrame::WmSize" method
+ - JDK-8249588: libwindowsaccessbridge issues on 64bit Windows
+ - JDK-8250984: Memory Docker tests fail on some Linux kernels w/o cgroupv1 swap limit
capabilities
+ - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray
+ - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails
on Windows
+ - JDK-8253368: TLS connection always receives close_notify exception
+ - JDK-8253476: TestUseContainerSupport.java fails on some Linux kernels w/o swap limit
capabilities
+ - JDK-8253932: SSL debug log prints incorrect caller info
+ - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller
combinations
+ - JDK-8255908: ExceptionInInitializerError due to UncheckedIOException while
initializing cgroupv1 subsystem
+ - JDK-8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java
+ - JDK-8256642: [TEST_BUG] jdk/test/javax/sound/midi/MidiSystem/DefaultProperties.java
failed
+ - JDK-8258079: Eliminate ParNew's use of klass_or_null()
+ - JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575
+ - JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk()
+ - JDK-8258430: 8u backport of JDK-8063107 missing
test/javax/swing/JRadioButton/8041561/bug8041561.java changes
+ - JDK-8258933: G1 needs klass_or_null_acquire
+ - JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will
+ - JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548
+ - JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport
+ - Normalise whitespace in AArch64 sources prior to merge of upstreamed version in
8u292-b01.
+
+Notes on individual issues:
+===========================
+
+security-libs/java.security:
+
+JDK-8236730: Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default
+===================================================================================
+Weak named curves are disabled by default by adding them to the
+following `disabledAlgorithms` security properties:
+
+* jdk.tls.disabledAlgorithms
+* jdk.certpath.disabledAlgorithms
+* jdk.jar.disabledAlgorithms
+
+Red Hat has always disabled many of the curves provided by upstream,
+so the only addition in this release is:
+
+* secp256k1
+
+The curves that remain enabled are:
+
+* secp256r1
+* secp384r1
+* secp521r1
+* X25519
+* X448
+
+When large numbers of weak named curves need to be disabled, adding
+individual named curves to each `disabledAlgorithms` property would be
+overwhelming. To relieve this, a new security property,
+`jdk.disabled.namedCurves`, is implemented that can list the named
+curves common to all of the `disabledAlgorithms` properties. To use
+the new property in the `disabledAlgorithms` properties, precede the
+full property name with the keyword `include`. Users can still add
+individual named curves to `disabledAlgorithms` properties separate
+from this new property. No other properties can be included in the
+`disabledAlgorithms` properties.
+
+To restore the named curves, remove the `include
+jdk.disabled.namedCurves` either from specific or from all
+`disabledAlgorithms` security properties. To restore one or more
+curves, remove the specific named curve(s) from the
+`jdk.disabled.namedCurves` property.
+
+security-libs/javax.net.ssl:
+
+JDK-8256490: Disable TLS 1.0 and 1.1
+====================================
+TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer
+considered secure and have been superseded by more secure and modern
+versions (TLS 1.2 and 1.3).
+
+These versions have now been disabled by default. If you encounter
+issues, you can, at your own risk, re-enable the versions by removing
+"TLSv1" and/or "TLSv1.1" from the `jdk.tls.disabledAlgorithms`
+security property in the `java.security` configuration file.
+
+JDK-8242147: New System Properties to Configure the TLS Signature Schemes
+=========================================================================
+Two new system properties have been added to customize the TLS
+signature schemes in JDK. `jdk.tls.client.SignatureSchemes` has been
+added for the TLS client side, and `jdk.tls.server.SignatureSchemes`
+has been added for the server side.
+
+Each system property contains a comma-separated list of supported
+signature scheme names specifying the signature schemes that could be
+used for the TLS connections.
+
+The names are described in the "Signature Schemes" section of the
+*Java Security Standard Algorithm Names Specification*.
+
New in release OpenJDK 8u282 (2021-01-19):
===========================================
Live versions of these release notes can be found at:
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 5f3c6f0..94b75e7 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -4,7 +4,7 @@
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
# If your local repo follows upstream forests conventions, it may be enough to set
OPENJDK_URL
-# If you want to use a local copy of patch PR3799, set the path to it in the PR3799
variable
+# If you want to use a local copy of patch PR3822, set the path to it in the PR3822
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=jdk8u OR aarch64-port
@@ -19,9 +19,9 @@
# level folder, name is created, based on parameter
#
-if [ ! "x$PR3799" = "x" ] ; then
- if [ ! -f "$PR3799" ] ; then
- echo "You have specified PR3799 as $PR3799 but it does not exists.
exiting"
+if [ ! "x$PR3822" = "x" ] ; then
+ if [ ! -f "$PR3822" ] ; then
+ echo "You have specified PR3822 as $PR3822 but it does not exists.
exiting"
exit 1
fi
fi
@@ -41,7 +41,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
- echo "PR3799 - the path to the PR3799 patch to apply (optional; downloaded if
unavailable)"
+ echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if
unavailable)"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -124,15 +124,15 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-if [ "x$PR3799" = "x" ] ; then
-# get pr3799.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3799)
- wget -O pr3799.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3799-4cur...
- patch -Np1 < pr3799.patch
- rm pr3799.patch
+if [ "x$PR3822" = "x" ] ; then
+# get pr3822.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822)
+ wget -O pr3822.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3822-4cur...
+ patch -Np1 < pr3822.patch
+ rm pr3822.patch
else
- echo "Applying ${PR3799}"
- patch -Np1 < $PR3799
+ echo "Applying ${PR3822}"
+ patch -Np1 < $PR3822
fi;
fi
find . -name '*.orig' -exec rm -vf '{}' ';'
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fc5df6f..99525d3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -296,7 +296,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u292-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -311,12 +311,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2622,6 +2622,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 19 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.292.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u292-b01 (EA)
+- Update release notes for 8u292-b01.
+- Switch to EA mode.
+- Update tarball generation script to use PR3822 which handles
+ JDK-8233228 & JDK-8035166 changes
+
* Thu Feb 18 2021 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.282.b08-5
- Hardcode /usr/sbin/alternatives for Flatpak builds
diff --git a/sources b/sources
index a2b2f6a..49a40a0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz) =
166549a3cebab7a27811b9a486930d4cdce688af9a8e0ab6d6718550694cff42718cc6a9cee7703e409d82a967eacc6b009e9389ca85cfa0748d93bda3517c66
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u292-b01-4curve.tar.xz) =
35e527c387f55af66132cdae8c8ea198700d731ce2a69136cf7e02a8f837a6f2d9c96303c84468305cc7762d65c3f95ef8264218a82652a00063179d2557a648
commit 4916ef5be4fb433ded6d9e2c74a10929c8fff9c1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Feb 18 19:01:12 2021 +0000
Hardcode /usr/sbin/alternatives for Flatpak builds
/usr/sbin/alternatives is not under the Flatpak build's %{_prefix},
which is set to /app.
(See <
https://pagure.io/packaging-committee/issue/848> "Clarify the
use of path macros with respect to build dependencies").
Found when trying to do a LibreOffice Flatpak build from RHEL RPM
specs, which includes java-1.8.0-openjdk among its components.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6b4227f..fc5df6f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -311,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -384,6 +384,14 @@
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
+# For flatpack builds hard-code /usr/sbin/alternatives,
+# otherwise use %%{_sbindir} relative path.
+%if 0%{?flatpak}
+%global alternatives_requires /usr/sbin/alternatives
+%else
+%global alternatives_requires %{_sbindir}/alternatives
+%endif
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific sub-dir,
@@ -1110,9 +1118,9 @@ OrderWithRequires: copy-jdk-configs
# for printing support
Requires: cups-libs
# Post requires alternatives to install tool alternatives
-Requires(post): %{_sbindir}/alternatives
+Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
-Requires(postun): %{_sbindir}/alternatives
+Requires(postun): %{alternatives_requires}
# for optional support of kernel stream control, card reader and printing bindings
%if 0%{?fedora} || 0%{?rhel} >= 8
Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
@@ -1136,9 +1144,9 @@ Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives
-Requires(post): %{_sbindir}/alternatives
+Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall tool alternatives
-Requires(postun): %{_sbindir}/alternatives
+Requires(postun): %{alternatives_requires}
# Standard JPackage devel provides
Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
@@ -1168,9 +1176,9 @@ Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
%define java_javadoc_rpo() %{expand:
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative
-Requires(post): %{_sbindir}/alternatives
+Requires(post): %{alternatives_requires}
# Postun requires alternatives to uninstall javadoc alternative
-Requires(postun): %{_sbindir}/alternatives
+Requires(postun): %{alternatives_requires}
# Standard JPackage javadoc provides
Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
@@ -2614,6 +2622,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Feb 18 2021 Stephan Bergmann <sbergman(a)redhat.com> - 1:1.8.0.282.b08-5
+- Hardcode /usr/sbin/alternatives for Flatpak builds
+
* Sat Jan 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-4
- Cleanup package descriptions and version number placement.
commit dfa3a28dae350edbf13d2e79c3f90f95deb54bb1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Jan 30 16:01:35 2021 +0000
Cleanup package descriptions and version number placement.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7e60e5f..6b4227f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -41,10 +41,11 @@
%global normal_suffix ""
%global debug_warning This package is unoptimised with full debugging. Install only as
needed and remove ASAP.
-%global debug_on with full debug on
%global fastdebug_warning This package is optimised with full debugging. Install only as
needed and remove ASAP.
-%global for_fastdebug with minimal debug on
-%global for_debug for packages with debug on
+%global debug_on unoptimised with full debugging on
+%global fastdebug_on optimised with full debugging on
+%global for_fastdebug for packages with debugging on and optimisation
+%global for_debug for packages with debugging on and no optimisation
%if %{with release}
%global include_normal_build 1
@@ -310,7 +311,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1220,7 +1221,7 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 1
-Summary: %{origin_nice} Runtime Environment %{majorver}
+Summary: %{origin_nice} %{majorver} Runtime Environment
# HotSpot code is licensed under GPLv2
# JDK library code is licensed under GPLv2 with the Classpath exception
@@ -1479,160 +1480,160 @@ BuildRequires: systemtap-sdt-devel
%{java_rpo %{nil}}
%description
-The %{origin_nice} runtime environment %{majorver}.
+The %{origin_nice} %{majorver} runtime environment.
%if %{include_debug_build}
%package slowdebug
-Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
+Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
%{java_rpo -- %{debug_suffix_unquoted}}
%description slowdebug
-The %{origin_nice} runtime environment %{majorver}.
+The %{origin_nice} %{majorver} runtime environment.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package fastdebug
-Summary: %{origin_nice} Runtime Environment %{majorver} %{fastdebug_on}
+Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
Group: Development/Languages
%{java_rpo -- %{fastdebug_suffix_unquoted}}
%description fastdebug
-The %{origin_nice} runtime environment.
+The %{origin_nice} %{majorver} runtime environment.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package headless
-Summary: %{origin_nice} Headless Runtime Environment %{majorver}
+Summary: %{origin_nice} %{majorver} Headless Runtime Environment
%{java_headless_rpo %{nil}}
%description headless
-The %{origin_nice} runtime environment %{majorver} without audio and video support.
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
%endif
%if %{include_debug_build}
%package headless-slowdebug
-Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
+Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
%{java_headless_rpo -- %{debug_suffix_unquoted}}
%description headless-slowdebug
-The %{origin_nice} runtime environment %{majorver} without audio and video support.
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package headless-fastdebug
-Summary: %{origin_nice} Runtime Environment %{fastdebug_on}
+Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
Group: Development/Languages
%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
%description headless-fastdebug
-The %{origin_nice} runtime environment %{majorver} without audio and video support.
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package devel
-Summary: %{origin_nice} Development Environment %{majorver}
+Summary: %{origin_nice} %{majorver} Development Environment
%{java_devel_rpo %{nil}}
%description devel
-The %{origin_nice} development tools %{majorver}.
+The %{origin_nice} %{majorver} development tools.
%endif
%if %{include_debug_build}
%package devel-slowdebug
-Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
+Summary: %{origin_nice} %{majorver} Development Environment %{debug_on}
%{java_devel_rpo -- %{debug_suffix_unquoted}}
%description devel-slowdebug
-The %{origin_nice} development tools %{majorver}.
+The %{origin_nice} %{majorver} development tools.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package devel-fastdebug
-Summary: %{origin_nice} Development Environment %{majorver} %{fastdebug_on}
+Summary: %{origin_nice} %{majorver} Development Environment %{fastdebug_on}
Group: Development/Tools
%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
%description devel-fastdebug
-The %{origin_nice} development tools %{majorver}.
+The %{origin_nice} %{majorver} development tools.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package demo
-Summary: %{origin_nice} Demos %{majorver}
+Summary: %{origin_nice} %{majorver} Demos
%{java_demo_rpo %{nil}}
%description demo
-The %{origin_nice} demos %{majorver}.
+The %{origin_nice} %{majorver} demos.
%endif
%if %{include_debug_build}
%package demo-slowdebug
-Summary: %{origin_nice} Demos %{majorver} %{debug_on}
+Summary: %{origin_nice} %{majorver} Demos %{debug_on}
%{java_demo_rpo -- %{debug_suffix_unquoted}}
%description demo-slowdebug
-The %{origin_nice} demos %{majorver}.
+The %{origin_nice} %{majorver} demos.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package demo-fastdebug
-Summary: %{origin_nice} Demos %{majorver} %{fastdebug_on}
+Summary: %{origin_nice} %{majorver} Demos %{fastdebug_on}
Group: Development/Languages
%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
%description demo-fastdebug
-The %{origin_nice} demos %{majorver}.
+The %{origin_nice} %{majorver} demos.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package src
-Summary: %{origin_nice} Source Bundle %{majorver}
+Summary: %{origin_nice} %{majorver} Source Bundle
%{java_src_rpo %{nil}}
%description src
-The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver}
+The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{majorver}
class library source code for use by IDE indexers and debuggers.
%endif
%if %{include_debug_build}
%package src-slowdebug
-Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
+Summary: %{origin_nice} %{majorver} Source Bundle %{for_debug}
%{java_src_rpo -- %{debug_suffix_unquoted}}
%description src-slowdebug
-The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver}
- class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
+The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers, %{for_debug}.
%endif
%if %{include_fastdebug_build}
%package src-fastdebug
-Summary: %{origin_nice} Source Bundle %{majorver} %{for_fastdebug}
+Summary: %{origin_nice} %{majorver} Source Bundle %{for_fastdebug}
Group: Development/Languages
%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
%description src-fastdebug
-The java-%{origin}-src-fastdebug sub-package contains the complete %{origin_nice}
%{majorver}
- class library source code for use by IDE indexers and debuggers. Debugging
%{for_fastdebug}.
+The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers, %{for_fastdebug}.
%endif
@@ -2613,6 +2614,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Jan 30 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-4
+- Cleanup package descriptions and version number placement.
+
* Tue Jan 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-3
- Include a test in the RPM to check the build has the correct vendor information.
- Use 'oj_' prefix on new vendor globals to avoid a conflict with RPM's
vendor value.
commit 1bf2c1361b250745a3c11d810f08af3d418e5728
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jan 26 12:33:16 2021 +0000
Include a test in the RPM to check the build has the correct vendor information.
Use 'oj_' prefix on new vendor globals to avoid a conflict with RPM's
vendor value.
diff --git a/CheckVendor.java b/CheckVendor.java
new file mode 100644
index 0000000..e2101cf
--- /dev/null
+++ b/CheckVendor.java
@@ -0,0 +1,57 @@
+/* CheckVendor -- Check the vendor properties match specified values.
+ Copyright (C) 2020 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <
http://www.gnu.org/licenses/>.
+*/
+
+/**
+ * @test
+ */
+public class CheckVendor {
+
+ public static void main(String[] args) {
+ if (args.length < 3) {
+ System.err.println("CheckVendor <VENDOR> <VENDOR-URL>
<VENDOR-BUG-URL>");
+ System.exit(1);
+ }
+
+ String vendor = System.getProperty("java.vendor");
+ String expectedVendor = args[0];
+ String vendorURL = System.getProperty("java.vendor.url");
+ String expectedVendorURL = args[1];
+ String vendorBugURL = System.getProperty("java.vendor.url.bug");
+ String expectedVendorBugURL = args[2];
+
+ if (!expectedVendor.equals(vendor)) {
+ System.err.printf("Invalid vendor %s, expected %s\n",
+ vendor, expectedVendor);
+ System.exit(2);
+ }
+
+ if (!expectedVendorURL.equals(vendorURL)) {
+ System.err.printf("Invalid vendor URL %s, expected %s\n",
+ vendorURL, expectedVendorURL);
+ System.exit(3);
+ }
+
+ if (!expectedVendorBugURL.equals(vendorBugURL)) {
+ System.err.printf("Invalid vendor bug URL%s, expected %s\n",
+ vendorBugURL, expectedVendorBugURL);
+ System.exit(4);
+ }
+
+ System.err.printf("Vendor information verified as %s, %s, %s\n",
+ vendor, vendorURL, vendorBugURL);
+ }
+}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c0c60b0..7e60e5f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -271,6 +271,27 @@
%global origin openjdk
%global origin_nice OpenJDK
%global top_level_dir_name %{origin}
+
+# Define vendor information used by OpenJDK
+%global oj_vendor Red Hat, Inc.
+%global oj_vendor_url "https://www.redhat.com/"
+# Define what url should JVM offer in case of a crash report
+# order may be important, epel may have rhel declared
+%if 0%{?epel}
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&compo...
+%else
+%if 0%{?fedora}
+# Does not work for rawhide, keeps the version field empty
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{...
+%else
+%if 0%{?rhel}
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%...
+%else
+%global oj_vendor_bug_url
https://bugzilla.redhat.com/enter_bug.cgi
+%endif
+%endif
+%endif
+
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
@@ -289,7 +310,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -316,23 +337,6 @@
%global javaver 1.%{majorver}.0
-# Define what url should JVM offer in case of a crash report
-# order may be important, epel may have rhel declared
-%if 0%{?epel}
-%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&compo...
-%else
-%if 0%{?fedora}
-# Does not work for rawhide, keeps the version field empty
-%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{...
-%else
-%if 0%{?rhel}
-%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%...
-%else
-%global bugs
https://bugzilla.redhat.com/enter_bug.cgi
-%endif
-%endif
-%endif
-
# parametrized macros are order-sensitive
%global compatiblename %{name}
%global fullversion %{compatiblename}-%{version}-%{release}
@@ -1277,6 +1281,9 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
+# Ensure vendor settings are correct
+Source16: CheckVendor.java
+
############################################
#
# RPM/distribution specific patches
@@ -1968,10 +1975,10 @@ function buildjdk() {
--with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
- --with-vendor-name="Red Hat, Inc." \
- --with-vendor-url="https://www.redhat.com/" \
- --with-vendor-bug-url="%{bugs}" \
- --with-vendor-vm-bug-url="%{bugs}" \
+ --with-vendor-name="%{oj_vendor}" \
+ --with-vendor-url="%{oj_vendor_url}" \
+ --with-vendor-bug-url="%{oj_vendor_bug_url}" \
+ --with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
--enable-unlimited-crypto \
@@ -2090,6 +2097,10 @@ if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ;
then true ; els
%endif
+# Check correct vendor values have been set
+$JAVA_HOME/bin/javac -d . %{SOURCE16}
+$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||")
"%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
+
# Check debug symbols are present and can identify code
find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
do
@@ -2602,6 +2613,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jan 26 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-3
+- Include a test in the RPM to check the build has the correct vendor information.
+- Use 'oj_' prefix on new vendor globals to avoid a conflict with RPM's
vendor value.
+
* Mon Jan 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-2
- Add directories to files directive for demo package.
commit 394d30bddda472e3b69dd5d9f48f2dbf4503c1f0
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jan 25 04:00:37 2021 +0000
Add directories to files directive for demo package.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index df59e6c..c0c60b0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -289,7 +289,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2289,6 +2289,13 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
| sed 's|'$RPM_BUILD_ROOT'||' \
| sed 's|^|%doc |' \
> %{name}-demo.files"$suffix"
+# Find demo
directories.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+ -type d | sort \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ | sed 's|^|%dir |' \
+ >> %{name}-demo.files"$suffix"
# Create links which leads to separately installed java-atk-bridge and allow
configuration
# links points to java-atk-wrapper - an dependence
@@ -2595,6 +2602,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jan 25 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-2
+- Add directories to files directive for demo package.
+
* Sun Jan 24 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-1
- Use RSA as default for keytool, as DSA is disabled in all crypto policies except
LEGACY
commit e5ff6faa6e954efe5e0c80d655715fbf68acae32
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jan 24 16:20:33 2021 +0000
Use RSA as default for keytool, as DSA is disabled in all crypto policies except
LEGACY
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 69ca4da..df59e6c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -289,7 +289,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1293,6 +1293,8 @@ Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
Patch3: rh1648644-java_access_bridge_privileged_security.patch
# Turn on AssumeMP by default on RHEL systems
Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
+# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies
except LEGACY
+Patch1003: rh1582504-rsa_default_for_keytool.patch
#############################################
#
@@ -1843,6 +1845,7 @@ sh %{SOURCE12}
%patch539
%patch600
%patch1000
+%patch1003
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2592,6 +2595,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jan 24 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-1
+- Use RSA as default for keytool, as DSA is disabled in all crypto policies except
LEGACY
+
* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-0
- Update to aarch64-shenandoah-jdk8u282-b08 (GA)
- Update release notes for 8u282-b08.
diff --git a/rh1582504-rsa_default_for_keytool.patch
b/rh1582504-rsa_default_for_keytool.patch
new file mode 100644
index 0000000..f59dbf5
--- /dev/null
+++ b/rh1582504-rsa_default_for_keytool.patch
@@ -0,0 +1,12 @@
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java
openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+@@ -1004,7 +1004,7 @@
+ }
+ } else if (command == GENKEYPAIR) {
+ if (keyAlgName == null) {
+- keyAlgName = "DSA";
++ keyAlgName = "RSA";
+ }
+ doGenKeyPair(alias, dname, keyAlgName, keysize, sigAlgName);
+ kssave = true;
commit 5bfb5658af67bdba4de2d9009668453eb308657e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jan 24 05:43:24 2021 +0000
Update to aarch64-shenandoah-jdk8u282-b08 (GA)
Update release notes for 8u282-b08.
diff --git a/.gitignore b/.gitignore
index ce196c8..a9304d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -217,3 +217,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
diff --git a/NEWS b/NEWS
index faf21be..ee1e724 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@ Live versions of these release notes can be found at:
*
https://bitly.com/openjdk8u282
*
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u282.txt
+* Security fixes
+ - JDK-8247619: Improve Direct Buffering of Characters
* Other changes
- JDK-6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under
Linux
- JDK-8008657: JSpinner setComponentOrientation doesn't affect on text orientation
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4c22baf..69ca4da 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -294,7 +294,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2592,6 +2592,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b08-0
+- Update to aarch64-shenandoah-jdk8u282-b08 (GA)
+- Update release notes for 8u282-b08.
+
* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u282-b07 (EA)
- Update release notes for 8u282-b07 and make some minor corrections.
diff --git a/sources b/sources
index c649a4f..a2b2f6a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz) =
a44759e756a5a7c486e677f18f63d4ba988f36c0cd806372292122da178a210ce97b377bdfd9f04f9850b52cf7a81a488df2ed3a2285ab19ac1d0f1173a03c5a
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz) =
166549a3cebab7a27811b9a486930d4cdce688af9a8e0ab6d6718550694cff42718cc6a9cee7703e409d82a967eacc6b009e9389ca85cfa0748d93bda3517c66
commit 795674edca85020d24f1abe8bda9cf018fd9113e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jan 15 05:52:39 2021 +0000
Update to aarch64-shenandoah-jdk8u282-b07 (EA)
Update release notes for 8u282-b07 and make some minor corrections.
diff --git a/.gitignore b/.gitignore
index a10687b..ce196c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -214,3 +214,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 22f7f62..faf21be 100644
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,7 @@ Live versions of these release notes can be found at:
- JDK-8166663: Simplify oops_on_card_seq_iterate_careful
- JDK-8166862: CMS needs klass_or_null_acquire
- JDK-8168292: [TESTBUG] [macosx] Test
java/awt/TrayIcon/DragEventSource/DragEventSource.java fails on OS X
+ - JDK-8168682: jdk/test/java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java fails
with -Xcomp
- JDK-8179083: Uninitialized notifier in Java Monitor Wait tracing event
- JDK-8185003: JMX: Add a version of ThreadMXBean.dumpAllThreads with a maxDepth
argument
- JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8
@@ -97,6 +98,7 @@ Live versions of these release notes can be found at:
- JDK-8221710: [TESTBUG] more configurable parameters for docker testing
- JDK-8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable
- JDK-8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access
issues and OOM
+ - JDK-8225072: Add LuxTrust certificate that is expiring in March 2021 to list of
allowed but expired certs
- JDK-8227006: [linux] Runtime.availableProcessors execution time increased by factor
of 100
- JDK-8229868: Update Apache Santuario TPRM version
- JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self
thread
@@ -106,6 +108,7 @@ Live versions of these release notes can be found at:
- JDK-8234270: [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area
- JDK-8234339: replace JLI_StrTok in java_md_solinux.c
- JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
+ - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts
test
- JDK-8242335: Additional Tests for RSASSA-PSS
- JDK-8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker
- JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in
@@ -114,8 +117,8 @@ Live versions of these release notes can be found at:
- JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache
contention
- JDK-8249176: Update GlobalSignR6CA test certificates
- JDK-8249846: Change of behavior after JDK-8237117: Better ForkJoinPool behavior
- - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY
- JDK-8250636: iso8601_time returns incorrect offset part on MacOS
+ - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY
- JDK-8250928: JFR: Improve hash algorithm for stack traces
- JDK-8251365: Build failure on AIX after 8250636
- JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java
@@ -135,19 +138,36 @@ Live versions of these release notes can be found at:
- JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp
- JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp
- JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
+ - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c
- JDK-8255003: Build failures on Solaris
+ - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d
- JDK-8255269: Unsigned overflow in g1Policy.cpp
- - JDK-8255717: Fix JFR crash in WriteObjectSampleStacktrace due to object not
initialized
- JDK-8255603: Memory/Performance regression after JDK-8210985
+ - JDK-8255717: Fix JFR crash in WriteObjectSampleStacktrace due to object not
initialized
- JDK-8256618: Zero: Linux x86_32 build still fails
- JDK-8256671: Incorrect assignment operator used in guarantee() in genCollectedHeap
- JDK-8256752: 8252395 incorrect copy rule for macos .dSYM folder
- JDK-8257397: [TESTBUG] test/lib/containers/docker/Common.java refers to
-Xlog:os+container=trace
+ - JDK-8258630: Add expiry exception for QuoVadis root certificate
* AArch64 port
- Fix AArch64 build failure after JDK-8062808 backport
* Shenandoah
- Fix racy update of code roots
+Notes on individual issues:
+===========================
+
+security-libs/javax.xml.crypto:
+
+JDK-8230839: Updated XML Signature Implementation to Apache Santuario 2.1.3
+===========================================================================
+The XML Signature implementation in the `java.xml.crypto` module has
+been updated to version 2.1.3 of Apache Santuario. New features
+include:
+
+* Added support for embedding elliptic curve public keys in the
+ KeyValue element
+
New in release OpenJDK 8u275 (2020-11-05):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c8fee0d..4c22baf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2592,6 +2592,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jan 15 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u282-b07 (EA)
+- Update release notes for 8u282-b07 and make some minor corrections.
+
* Wed Jan 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u282-b04 (EA)
- Update release notes for 8u282-b04.
diff --git a/sources b/sources
index fdad124..c649a4f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b04-4curve.tar.xz) =
a47b2a15bf3bc8f6ba35350d99a004e9f82aedfa09a8cb8e9880036d2cff3a301b5cb0e6fe3be4cd97000108e1ed14971d904257a381d42486eb68bc8878fdca
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b07-4curve.tar.xz) =
a44759e756a5a7c486e677f18f63d4ba988f36c0cd806372292122da178a210ce97b377bdfd9f04f9850b52cf7a81a488df2ed3a2285ab19ac1d0f1173a03c5a
commit f9c1e9888690ee8e7c2f90369119da1753285c75
Author: Tom Stellard <tstellar(a)redhat.com>
Date: Wed Jan 13 02:33:57 2021 +0000
Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 52e5bd5..c8fee0d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1413,6 +1413,7 @@ Patch1000:
rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
# Dependencies
#
#############################################
+BuildRequires: make
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
commit 0edc2332e208d54503e189eef358a8cf32d1deba
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jan 6 04:06:55 2021 +0000
Update to aarch64-shenandoah-jdk8u282-b04 (EA)
Update release notes for 8u282-b04.
Remove upstreamed patch PR3519
diff --git a/.gitignore b/.gitignore
index 533a12c..a10687b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -213,3 +213,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b04-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 3e04889..22f7f62 100644
--- a/NEWS
+++ b/NEWS
@@ -12,47 +12,112 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under
Linux
- JDK-8008657: JSpinner setComponentOrientation doesn't affect on text orientation
+ - JDK-8022535: [TEST BUG] javax/swing/text/html/parser/Test8017492.java fails
- JDK-8025936: Windows .pdb and .map files does not have proper dependencies setup
- JDK-8030350: Enable additional compiler warnings for GCC
- JDK-8031423: Test java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java
fails by Timeout on Windows
- JDK-8036122: Fix warning 'format not a string literal'
- JDK-8039279: Move awt tests to openjdk repository
- JDK-8041592: [TEST_BUG] Move 42 AWT hw/lw mixing tests to jdk
+ - JDK-8043126: move awt automated functional tests from AWT_Events/Lw and
AWT_Events/AWT to OpenJDK repository
+ - JDK-8043131: Move ShapedAndTranslucentWindows and GC functional AWT tests to
regression tree
+ - JDK-8043899: compiler/5091921/Test7005594.java fails if specified -Xmx is less than
1600m
+ - JDK-8044157: [TEST_BUG] Improve recently submitted AWT_Mixing tests
+ - JDK-8044172: [TEST_BUG] Move regtests for 4523758 and
AltPlusNumberKeyCombinationsTest to jdk
+ - JDK-8044429: move awt automated tests for AWT_Modality to OpenJDK repository
+ - JDK-8044765: Move functional tests AWT_SystemTray/Automated to openjdk repository
+ - JDK-8046221: [TEST_BUG] Cleanup datatransfer tests
+ - JDK-8047180: Move functional tests AWT_Headless/Automated to OpenJDK repository
+ - JDK-8047367: move awt automated tests from AWT_Modality to OpenJDK repository - part
2
+ - JDK-8048246: Move AWT_DnD/Clipboard/Automated functional tests to OpenJDK
+ - JDK-8049617: move awt automated tests from AWT_Modality to OpenJDK repository - part
3
+ - JDK-8049694: Migrate functional AWT_DesktopProperties/Automated tests to OpenJDK
+ - JDK-8050885: move awt automated tests from AWT_Modality to OpenJDK repository - part
4
+ - JDK-8051440: move tests about maximizing undecorated to OpenJDK
- JDK-8051853: new URI("x/").resolve("..").getSchemeSpecificPart()
returns null!
+ - JDK-8052012: move awt automated tests from AWT_Modality to OpenJDK repository - part
5
+ - JDK-8052408: Move AWT_BAT functional tests to OpenJDK (3 of 3)
+ - JDK-8053657: [TEST_BUG] move some 5 tests related to undecorated Frame/JFrame to JDK
+ - JDK-8054143: move awt automated tests from AWT_Modality to OpenJDK repository - part
6
+ - JDK-8054358: move awt automated tests from AWT_Modality to OpenJDK repository - part
7
+ - JDK-8054359: move awt automated tests from AWT_Modality to OpenJDK repository - part
8
+ - JDK-8055360: Move the rest part of AWT ShapedAndTranslucent tests to OpenJDK
+ - JDK-8055664: move 14 tests about setLocationRelativeTo to jdk
+ - JDK-8055836: move awt tests from AWT_Modality to OpenJDK repository - part 9
+ - JDK-8057694: move awt tests from AWT_Modality to OpenJDK repository - part 10
+ - JDK-8058805: [TEST_BUG]Test
java/awt/TrayIcon/SecurityCheck/NoPermissionTest/NoPermissionTest.java fails
- JDK-8062808: Turn on the -Wreturn-type warning
+ - JDK-8063102: Change open awt regression tests to avoid sun.awt.SunToolkit.realSync,
part 1
+ - JDK-8063104: Change open awt regression tests to avoid sun.awt.SunToolkit.realSync,
part 2
+ - JDK-8063106: Change open swing regression tests to avoid sun.awt.SunToolkit.realSync,
part 1
+ - JDK-8063107: Change open swing regression tests to avoid sun.awt.SunToolkit.realSync,
part 2
+ - JDK-8064573: [TEST_BUG] javax/swing/text/AbstractDocument/6968363/Test6968363.java is
asocial pressing VK_LEFT and not releasing
+ - JDK-8064575: [TEST_BUG] javax/swing/JEditorPane/6917744/bug6917744.java 100 times
press keys and never releases
+ - JDK-8064809: [TEST_BUG] javax/swing/JComboBox/4199622/bug4199622.java contains a lot
of keyPress and not a single keyRelease
+ - JDK-8067441: Some tests fails with error: cannot find symbol
getSystemMnemonicKeyCodes()
+ - JDK-8068228: Test closed/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest fails
with GTKLookAndFeel
+ - JDK-8068275: Some tests failed after JDK-8063104
+ - JDK-8069211: (zipfs) ZipFileSystem creates corrupted zip if entry output stream gets
closed more than once
+ - JDK-8074807: Fix some tests unnecessary using internal API
+ - JDK-8076315: move 4 manual functional swing tests to regression suite
+ - JDK-8130772: Util.hitMnemonics does not work: getSystemMnemonicKeyCodes() returns
ALT_MASK rather than VK_ALT
- JDK-8132664: closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java locks
on Windows
- JDK-8134632: Mark javax/sound/midi/Devices/InitializationHang.java as headful
- JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by
JVM as an equivalent
- JDK-8148916: Mark bug6400879.java as intermittently failing
- JDK-8148983: Fix extra comma in changes for JDK-8148916
+ - JDK-8152545: Use preprocessor instead of compiling a program to generate native nio
constants
+ - JDK-8156803: Turn StressLCM/StressGCM flags to diagnostic
- JDK-8160438: javax/swing/plaf/nimbus/8057791/bug8057791.java fails
+ - JDK-8160761: [TESTBUG] Several compiler tests fail with product bits
- JDK-8163161: [PIT][TEST_BUG] increase timeout in
javax/swing/plaf/nimbus/8057791/bug8057791.java
- JDK-8165808: Add release barriers when allocating objects with concurrent collection
+ - JDK-8166015: [PIT][TEST_BUG] stray character in
java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java
+ - JDK-8166583: Add oopDesc::klass_or_null_acquire()
+ - JDK-8166663: Simplify oops_on_card_seq_iterate_careful
+ - JDK-8166862: CMS needs klass_or_null_acquire
- JDK-8168292: [TESTBUG] [macosx] Test
java/awt/TrayIcon/DragEventSource/DragEventSource.java fails on OS X
+ - JDK-8179083: Uninitialized notifier in Java Monitor Wait tracing event
- JDK-8185003: JMX: Add a version of ThreadMXBean.dumpAllThreads with a maxDepth
argument
- JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8
- JDK-8202076: test/jdk/java/io/File/WinSpecialFiles.java on windows with VS2017
+ - JDK-8205507: jdk/javax/xml/crypto/dsig/GenerationTests.java timed out
- JDK-8207766: [testbug] Adapt tests for Aix.
- JDK-8212070: Introduce diagnostic flag to abort VM on failed JIT compilation
- JDK-8213448: [TESTBUG] enhance jfr/jvm/TestDumpOnCrash
- JDK-8215727: Restore JFR thread sampler loop to old / previous behavior
+ - JDK-8217362: Emergency dump does not work when disk=false is set
+ - JDK-8217766: Container Support doesn't work for some Join Controllers
combinations
+ - JDK-8219013: Update Apache Santuario (XML Signature) to version 2.1.3
+ - JDK-8219562: Line of code in osContainer_linux.cpp L102 appears unreachable
+ - JDK-8220579: [Containers] SubSystem.java out of sync with osContainer_linux.cpp
- JDK-8220657: JFR.dump does not work when filename is set
+ - JDK-8221340: [TESTBUG] TestCgroupMetrics.java fails after fix for JDK-8219562
- JDK-8221342: [TESTBUG] Generate Dockerfile for docker testing
+ - JDK-8221710: [TESTBUG] more configurable parameters for docker testing
- JDK-8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable
- JDK-8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access
issues and OOM
+ - JDK-8227006: [linux] Runtime.availableProcessors execution time increased by factor
of 100
+ - JDK-8229868: Update Apache Santuario TPRM version
- JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self
thread
- JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b
getThreadAllocatedBytes
- JDK-8232114: JVM crashed at imjpapi.dll in native code
+ - JDK-8233548: Update CUP to v0.11b
- JDK-8234270: [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area
- JDK-8234339: replace JLI_StrTok in java_md_solinux.c
- JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
- JDK-8242335: Additional Tests for RSASSA-PSS
+ - JDK-8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker
- JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in
- JDK-8245400: Upgrade to LittleCMS 2.11
+ - JDK-8246648: issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after
8242480
- JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache
contention
- JDK-8249176: Update GlobalSignR6CA test certificates
+ - JDK-8249846: Change of behavior after JDK-8237117: Better ForkJoinPool behavior
- JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY
+ - JDK-8250636: iso8601_time returns incorrect offset part on MacOS
- JDK-8250928: JFR: Improve hash algorithm for stack traces
+ - JDK-8251365: Build failure on AIX after 8250636
- JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java
- JDK-8251840: Java_sun_awt_X11_XToolkit_getDefaultScreenData should not be in
make/mapfiles/libawt_xawt/mapfile-vers
- JDK-8252384: [TESTBUG] Some tests refer to COMPAT provider rather than JRE
@@ -72,7 +137,14 @@ Live versions of these release notes can be found at:
- JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
- JDK-8255003: Build failures on Solaris
- JDK-8255269: Unsigned overflow in g1Policy.cpp
+ - JDK-8255717: Fix JFR crash in WriteObjectSampleStacktrace due to object not
initialized
- JDK-8255603: Memory/Performance regression after JDK-8210985
+ - JDK-8256618: Zero: Linux x86_32 build still fails
+ - JDK-8256671: Incorrect assignment operator used in guarantee() in genCollectedHeap
+ - JDK-8256752: 8252395 incorrect copy rule for macos .dSYM folder
+ - JDK-8257397: [TESTBUG] test/lib/containers/docker/Common.java refers to
-Xlog:os+container=trace
+* AArch64 port
+ - Fix AArch64 build failure after JDK-8062808 backport
* Shenandoah
- Fix racy update of code roots
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d49549d..52e5bd5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1342,8 +1342,6 @@ Patch112: %{name}-gcc11.patch
Patch103:
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
-# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
-Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
# S390 ambiguous log2_intptr calls
Patch107: s390-8214206_fix.patch
@@ -1825,7 +1823,6 @@ sh %{SOURCE12}
%patch107
# AArch64 fixes
-%patch106
# x86 fixes
%patch105
@@ -2594,6 +2591,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 06 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u282-b04 (EA)
+- Update release notes for 8u282-b04.
+- Remove upstreamed patch PR3519
+
* Sat Jan 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u282-b03 (EA)
- Update release notes for 8u282-b03.
diff --git a/pr3519-fix_further_functions_with_a_missing_return_value.patch
b/pr3519-fix_further_functions_with_a_missing_return_value.patch
deleted file mode 100644
index 51ca7f1..0000000
--- a/pr3519-fix_further_functions_with_a_missing_return_value.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1518669922 0
-# Thu Feb 15 04:45:22 2018 +0000
-# Node ID adaf109718c10888cce5b6e73af7f3e15a7ab0db
-# Parent 3ade0115344b77e6d00462044e0cf68722685bfe
-PR3519: Fix further functions with a missing return value.
-
-diff --git openjdk.orig/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
---- openjdk.orig/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-@@ -205,6 +205,7 @@
- return Address(base, tmp, Address::lsl(addr->scale()));
- }
- }
-+ return Address();
- }
-
- Address LIR_Assembler::as_Address_hi(LIR_Address* addr) {
diff --git a/sources b/sources
index c14a232..fdad124 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b03-4curve.tar.xz) =
5f6bf571cf67a217dfbddfd61df94e8c5419784f9730588a0d8410db43f428fbfc2e30bc55b9c5eecbbe450d9f2533c54b14322ba7a3e456794d27fd43228691
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b04-4curve.tar.xz) =
a47b2a15bf3bc8f6ba35350d99a004e9f82aedfa09a8cb8e9880036d2cff3a301b5cb0e6fe3be4cd97000108e1ed14971d904257a381d42486eb68bc8878fdca
commit 2d21fabf5055c8c8d6dc640f530a661684c1d67f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jan 4 23:32:27 2021 +0000
Update to aarch64-shenandoah-jdk8u282-b03 (EA)
Update release notes for 8u282-b03.
diff --git a/.gitignore b/.gitignore
index 6dafce3..533a12c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -212,3 +212,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b03-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 4aeb5f5..3e04889 100644
--- a/NEWS
+++ b/NEWS
@@ -11,11 +11,13 @@ Live versions of these release notes can be found at:
* Other changes
- JDK-6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under
Linux
+ - JDK-8008657: JSpinner setComponentOrientation doesn't affect on text orientation
- JDK-8025936: Windows .pdb and .map files does not have proper dependencies setup
- JDK-8030350: Enable additional compiler warnings for GCC
- JDK-8031423: Test java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java
fails by Timeout on Windows
- JDK-8036122: Fix warning 'format not a string literal'
- JDK-8039279: Move awt tests to openjdk repository
+ - JDK-8041592: [TEST_BUG] Move 42 AWT hw/lw mixing tests to jdk
- JDK-8051853: new URI("x/").resolve("..").getSchemeSpecificPart()
returns null!
- JDK-8062808: Turn on the -Wreturn-type warning
- JDK-8132664: closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java locks
on Windows
@@ -24,7 +26,9 @@ Live versions of these release notes can be found at:
- JDK-8148916: Mark bug6400879.java as intermittently failing
- JDK-8148983: Fix extra comma in changes for JDK-8148916
- JDK-8160438: javax/swing/plaf/nimbus/8057791/bug8057791.java fails
+ - JDK-8163161: [PIT][TEST_BUG] increase timeout in
javax/swing/plaf/nimbus/8057791/bug8057791.java
- JDK-8165808: Add release barriers when allocating objects with concurrent collection
+ - JDK-8168292: [TESTBUG] [macosx] Test
java/awt/TrayIcon/DragEventSource/DragEventSource.java fails on OS X
- JDK-8185003: JMX: Add a version of ThreadMXBean.dumpAllThreads with a maxDepth
argument
- JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8
- JDK-8202076: test/jdk/java/io/File/WinSpecialFiles.java on windows with VS2017
@@ -34,6 +38,7 @@ Live versions of these release notes can be found at:
- JDK-8215727: Restore JFR thread sampler loop to old / previous behavior
- JDK-8220657: JFR.dump does not work when filename is set
- JDK-8221342: [TESTBUG] Generate Dockerfile for docker testing
+ - JDK-8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable
- JDK-8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access
issues and OOM
- JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self
thread
- JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b
getThreadAllocatedBytes
@@ -67,6 +72,7 @@ Live versions of these release notes can be found at:
- JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
- JDK-8255003: Build failures on Solaris
- JDK-8255269: Unsigned overflow in g1Policy.cpp
+ - JDK-8255603: Memory/Performance regression after JDK-8210985
* Shenandoah
- Fix racy update of code roots
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1e7dd5b..d49549d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2594,6 +2594,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Jan 02 2021 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u282-b03 (EA)
+- Update release notes for 8u282-b03.
+
* Tue Dec 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u282-b02 (EA)
- Update release notes for 8u282-b02.
diff --git a/sources b/sources
index 4832671..c14a232 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz) =
0dc5139da59aa45692ca01b4c1b2ca390e82345f40e9fe616c7eb263e4681b706a651cb90c75fd4140c74f0705e77fdf2574722bf450d5ea8b864b63bf758c05
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b03-4curve.tar.xz) =
5f6bf571cf67a217dfbddfd61df94e8c5419784f9730588a0d8410db43f428fbfc2e30bc55b9c5eecbbe450d9f2533c54b14322ba7a3e456794d27fd43228691
commit a1645ffbc0bf38b4050d2ea41f83882f0a343694
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 4 12:08:01 2021 +0100
Fixed typo in variable
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9835a21..1e7dd5b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -43,7 +43,7 @@
%global debug_warning This package is unoptimised with full debugging. Install only as
needed and remove ASAP.
%global debug_on with full debug on
%global fastdebug_warning This package is optimised with full debugging. Install only as
needed and remove ASAP.
-%global for_fastdebug_on with minimal debug on
+%global for_fastdebug with minimal debug on
%global for_debug for packages with debug on
%if %{with release}
commit db53a2c1ca8ed8e38749bfc28beccff1c0385014
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Dec 29 19:50:58 2020 +0000
Update to aarch64-shenandoah-jdk8u282-b02 (EA)
Update release notes for 8u282-b02.
diff --git a/.gitignore b/.gitignore
index 9089849..6dafce3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -211,3 +211,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 1f4e5d9..4aeb5f5 100644
--- a/NEWS
+++ b/NEWS
@@ -60,11 +60,15 @@ Live versions of these release notes can be found at:
- JDK-8253284: Zero OrderAccess barrier mappings are incorrect
- JDK-8253550: [8u] JDK-8252395 breaks the build for make STRIP_POLICY=no_strip
- JDK-8253752: test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java fails
randomly
+ - JDK-8253837: JFR 8u fix symbol and cstring hashtable equals implementaion
- JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an
expired certificate
- JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp
- JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp
- JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
- JDK-8255003: Build failures on Solaris
+ - JDK-8255269: Unsigned overflow in g1Policy.cpp
+* Shenandoah
+ - Fix racy update of code roots
New in release OpenJDK 8u275 (2020-11-05):
===========================================
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9a2f3b3..9835a21 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u282-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2594,6 +2594,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Dec 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u282-b02 (EA)
+- Update release notes for 8u282-b02.
+
* Tue Dec 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u282-b01 (EA)
- Update release notes for 8u282-b01.
diff --git a/sources b/sources
index 76a2226..4832671 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz) =
b37ee8f0e12acb717e31a1e6944377ace10a42e2dd2dd77a8c9328c1e9501cf92b5cc50f1a80467092a540e6de96dd00639e0cb0fd223a228807095c5fbc64b9
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b02-4curve.tar.xz) =
0dc5139da59aa45692ca01b4c1b2ca390e82345f40e9fe616c7eb263e4681b706a651cb90c75fd4140c74f0705e77fdf2574722bf450d5ea8b864b63bf758c05
commit 887fd98b7511938279cd7bc3c77b41e0eb240fc2
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Dec 22 22:24:49 2020 +0000
Update to aarch64-shenandoah-jdk8u282-b01 (EA)
Update release notes for 8u282-b01.
Switch to EA mode.
Remove PR3601, covered upstream by JDK-8062808.
Remove upstreamed JDK-8197981/PR3548, JDK-8062808/PR3548 & JDK-8254177.
Extend RH1750419 alt-java fix to include external debuginfo, following JDK-8252395
Adapt JDK-8143245 patch, following JDK-8254166
diff --git a/.gitignore b/.gitignore
index 3a2a67b..9089849 100644
--- a/.gitignore
+++ b/.gitignore
@@ -210,3 +210,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 0a93663..1f4e5d9 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,69 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u282 (2021-01-19):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u282
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u282.txt
+
+* Other changes
+ - JDK-6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under
Linux
+ - JDK-8025936: Windows .pdb and .map files does not have proper dependencies setup
+ - JDK-8030350: Enable additional compiler warnings for GCC
+ - JDK-8031423: Test java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java
fails by Timeout on Windows
+ - JDK-8036122: Fix warning 'format not a string literal'
+ - JDK-8039279: Move awt tests to openjdk repository
+ - JDK-8051853: new URI("x/").resolve("..").getSchemeSpecificPart()
returns null!
+ - JDK-8062808: Turn on the -Wreturn-type warning
+ - JDK-8132664: closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java locks
on Windows
+ - JDK-8134632: Mark javax/sound/midi/Devices/InitializationHang.java as headful
+ - JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by
JVM as an equivalent
+ - JDK-8148916: Mark bug6400879.java as intermittently failing
+ - JDK-8148983: Fix extra comma in changes for JDK-8148916
+ - JDK-8160438: javax/swing/plaf/nimbus/8057791/bug8057791.java fails
+ - JDK-8165808: Add release barriers when allocating objects with concurrent collection
+ - JDK-8185003: JMX: Add a version of ThreadMXBean.dumpAllThreads with a maxDepth
argument
+ - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8
+ - JDK-8202076: test/jdk/java/io/File/WinSpecialFiles.java on windows with VS2017
+ - JDK-8207766: [testbug] Adapt tests for Aix.
+ - JDK-8212070: Introduce diagnostic flag to abort VM on failed JIT compilation
+ - JDK-8213448: [TESTBUG] enhance jfr/jvm/TestDumpOnCrash
+ - JDK-8215727: Restore JFR thread sampler loop to old / previous behavior
+ - JDK-8220657: JFR.dump does not work when filename is set
+ - JDK-8221342: [TESTBUG] Generate Dockerfile for docker testing
+ - JDK-8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access
issues and OOM
+ - JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self
thread
+ - JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b
getThreadAllocatedBytes
+ - JDK-8232114: JVM crashed at imjpapi.dll in native code
+ - JDK-8234270: [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area
+ - JDK-8234339: replace JLI_StrTok in java_md_solinux.c
+ - JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
+ - JDK-8242335: Additional Tests for RSASSA-PSS
+ - JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in
+ - JDK-8245400: Upgrade to LittleCMS 2.11
+ - JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache
contention
+ - JDK-8249176: Update GlobalSignR6CA test certificates
+ - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY
+ - JDK-8250928: JFR: Improve hash algorithm for stack traces
+ - JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java
+ - JDK-8251840: Java_sun_awt_X11_XToolkit_getDefaultScreenData should not be in
make/mapfiles/libawt_xawt/mapfile-vers
+ - JDK-8252384: [TESTBUG] Some tests refer to COMPAT provider rather than JRE
+ - JDK-8252395: [8u] --with-native-debug-symbols=external doesn't include debuginfo
files for binaries
+ - JDK-8252497: Incorrect numeric currency code for ROL
+ - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent
+ - JDK-8252904: VM crashes when JFR is used and JFR event class is transformed
+ - JDK-8252975: [8u] JDK-8252395 breaks the build for
--with-native-debug-symbols=internal
+ - JDK-8253036: Support building the Zero assembler port on AArch64
+ - JDK-8253284: Zero OrderAccess barrier mappings are incorrect
+ - JDK-8253550: [8u] JDK-8252395 breaks the build for make STRIP_POLICY=no_strip
+ - JDK-8253752: test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java fails
randomly
+ - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an
expired certificate
+ - JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp
+ - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp
+ - JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
+ - JDK-8255003: Build failures on Solaris
+
New in release OpenJDK 8u275 (2020-11-05):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7b7a97a..9a2f3b3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -274,7 +274,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u275-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u282-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -289,12 +289,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1312,8 +1312,6 @@ Patch512:
rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
Patch523:
pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528:
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
-# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
-Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
@@ -1365,10 +1363,6 @@ Patch502:
pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binar
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8143245, PR3548: Zero build requires disabled warnings
Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
-# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
-Patch575:
jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
-# 8062808, PR3548: Turn on the -Wreturn-type warning
-Patch577: jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
# 8035341: Allow using a system installed libpng
@@ -1386,8 +1380,6 @@ Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
# able to be removed once that release is out
# and used by this RPM.
#############################################
-# JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b
-Patch13: jdk8254177-tzdata2020b.patch
#############################################
#
@@ -1844,14 +1836,10 @@ sh %{SOURCE12}
%patch512
%patch523
%patch528
-%patch530
%patch571
%patch574
-%patch575
-%patch577
%patch111
%patch112
-%patch13
# RPM-only fixes
%patch539
@@ -2606,6 +2594,15 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Dec 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.282.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u282-b01 (EA)
+- Update release notes for 8u282-b01.
+- Switch to EA mode.
+- Remove PR3601, covered upstream by JDK-8062808.
+- Remove upstreamed JDK-8197981/PR3548, JDK-8062808/PR3548 & JDK-8254177.
+- Extend RH1750419 alt-java fix to include external debuginfo, following JDK-8252395
+- Adapt JDK-8143245 patch, following JDK-8254166
+
* Tue Dec 22 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-6
- fixed missing condition for fastdebug packages being counted as debug ones
diff --git a/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
b/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
deleted file mode 100644
index 1010b73..0000000
--- a/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-# HG changeset patch
-# User stefank
-# Date 1525453613 -3600
-# Fri May 04 18:06:53 2018 +0100
-# Node ID 07a1135a327362f157955d470fad5df07cc35164
-# Parent de79964656fc652f2085dac4fe99bcc128b5a3b1
-8062808, PR3548: Turn on the -Wreturn-type warning
-Reviewed-by: mgerdin, tschatzl, coleenp, jrose, kbarrett
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make
-@@ -210,7 +210,7 @@
- WARNINGS_ARE_ERRORS += -Wno-return-type -Wno-empty-body
- endif
-
--WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value
-+WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value
-Wreturn-type
-
- ifeq ($(USE_CLANG),)
- # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
-diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
---- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
-+++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
-@@ -1250,6 +1250,7 @@
-
-
- Unimplemented();
-+ return 0; // Mute compiler
- }
-
- #ifndef PRODUCT
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
---- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
-@@ -541,6 +541,7 @@
- err.report_and_die();
-
- ShouldNotReachHere();
-+ return true; // Mute compiler
- }
-
- void os::Linux::init_thread_fpu_state(void) {
-diff --git openjdk.orig/hotspot/src/share/vm/classfile/defaultMethods.cpp
openjdk/hotspot/src/share/vm/classfile/defaultMethods.cpp
---- openjdk.orig/hotspot/src/share/vm/classfile/defaultMethods.cpp
-+++ openjdk/hotspot/src/share/vm/classfile/defaultMethods.cpp
-@@ -506,7 +506,7 @@
- ss.write((const char*)name->bytes(), name->utf8_length());
- ss.write((const char*)signature->bytes(), signature->utf8_length());
- ss.print(" is abstract");
-- return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
-+ return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
- }
-
- Symbol* MethodFamily::generate_conflicts_message(GrowableArray<Method*>* methods,
TRAPS) const {
-@@ -521,7 +521,7 @@
- ss.print(".");
- ss.write((const char*)name->bytes(), name->utf8_length());
- }
-- return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
-+ return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
- }
-
-
-diff --git openjdk.orig/hotspot/src/share/vm/classfile/symbolTable.cpp
openjdk/hotspot/src/share/vm/classfile/symbolTable.cpp
---- openjdk.orig/hotspot/src/share/vm/classfile/symbolTable.cpp
-+++ openjdk/hotspot/src/share/vm/classfile/symbolTable.cpp
-@@ -249,7 +249,7 @@
- MutexLocker ml(SymbolTable_lock, THREAD);
-
- // Otherwise, add to symbol to table
-- return the_table()->basic_add(index, (u1*)name, len, hashValue, true, CHECK_NULL);
-+ return the_table()->basic_add(index, (u1*)name, len, hashValue, true, THREAD);
- }
-
- Symbol* SymbolTable::lookup(const Symbol* sym, int begin, int end, TRAPS) {
-@@ -288,7 +288,7 @@
- // Grab SymbolTable_lock first.
- MutexLocker ml(SymbolTable_lock, THREAD);
-
-- return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true,
CHECK_NULL);
-+ return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true, THREAD);
- }
-
- Symbol* SymbolTable::lookup_only(const char* name, int len,
-diff --git openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp
openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp
---- openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp
-+++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp
-@@ -229,15 +229,15 @@
- class_name->as_C_string(),
- class_loader.is_null() ? "null" :
class_loader->klass()->name()->as_C_string()));
- if (FieldType::is_array(class_name)) {
-- return resolve_array_class_or_null(class_name, class_loader, protection_domain,
CHECK_NULL);
-+ return resolve_array_class_or_null(class_name, class_loader, protection_domain,
THREAD);
- } else if (FieldType::is_obj(class_name)) {
- ResourceMark rm(THREAD);
- // Ignore wrapping L and ;.
- TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
- class_name->utf8_length() - 2, CHECK_NULL);
-- return resolve_instance_class_or_null(name, class_loader, protection_domain,
CHECK_NULL);
-+ return resolve_instance_class_or_null(name, class_loader, protection_domain,
THREAD);
- } else {
-- return resolve_instance_class_or_null(class_name, class_loader, protection_domain,
CHECK_NULL);
-+ return resolve_instance_class_or_null(class_name, class_loader, protection_domain,
THREAD);
- }
- }
-
-diff --git openjdk.orig/hotspot/src/share/vm/memory/heapInspection.hpp
openjdk/hotspot/src/share/vm/memory/heapInspection.hpp
---- openjdk.orig/hotspot/src/share/vm/memory/heapInspection.hpp
-+++ openjdk/hotspot/src/share/vm/memory/heapInspection.hpp
-@@ -367,7 +367,7 @@
- _csv_format(csv_format), _print_help(print_help),
- _print_class_stats(print_class_stats), _columns(columns) {}
- void heap_inspection(outputStream* st) NOT_SERVICES_RETURN;
-- size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL)
NOT_SERVICES_RETURN;
-+ size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL)
NOT_SERVICES_RETURN_(0);
- static void find_instances_at_safepoint(Klass* k, GrowableArray<oop>* result)
NOT_SERVICES_RETURN;
- private:
- void iterate_over_heap(KlassInfoTable* cit, BoolObjectClosure* filter = NULL);
-diff --git openjdk.orig/hotspot/src/share/vm/memory/metaspaceShared.hpp
openjdk/hotspot/src/share/vm/memory/metaspaceShared.hpp
---- openjdk.orig/hotspot/src/share/vm/memory/metaspaceShared.hpp
-+++ openjdk/hotspot/src/share/vm/memory/metaspaceShared.hpp
-@@ -93,7 +93,7 @@
- static void preload_and_dump(TRAPS) NOT_CDS_RETURN;
- static int preload_and_dump(const char * class_list_path,
- GrowableArray<Klass*>* class_promote_order,
-- TRAPS) NOT_CDS_RETURN;
-+ TRAPS) NOT_CDS_RETURN_(0);
-
- static ReservedSpace* shared_rs() {
- CDS_ONLY(return _shared_rs);
-diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
openjdk/hotspot/src/share/vm/oops/constantPool.hpp
---- openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
-+++ openjdk/hotspot/src/share/vm/oops/constantPool.hpp
-@@ -353,7 +353,7 @@
-
- Klass* klass_at(int which, TRAPS) {
- constantPoolHandle h_this(THREAD, this);
-- return klass_at_impl(h_this, which, CHECK_NULL);
-+ return klass_at_impl(h_this, which, THREAD);
- }
-
- Symbol* klass_name_at(int which) const; // Returns the name, w/o resolving.
-diff --git openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
openjdk/hotspot/src/share/vm/prims/jvm.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
-+++ openjdk/hotspot/src/share/vm/prims/jvm.cpp
-@@ -4244,7 +4244,7 @@
- JVM_DTraceProvider* providers))
- JVMWrapper("JVM_DTraceActivate");
- return DTraceJSDT::activate(
-- version, module_name, providers_count, providers, CHECK_0);
-+ version, module_name, providers_count, providers, THREAD);
- JVM_END
-
- JVM_ENTRY(jboolean,JVM_DTraceIsProbeEnabled(JNIEnv* env, jmethodID method))
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/reflection.cpp
openjdk/hotspot/src/share/vm/runtime/reflection.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/reflection.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/reflection.cpp
-@@ -1093,7 +1093,7 @@
- } else {
- if (rtype == T_BOOLEAN || rtype == T_BYTE || rtype == T_CHAR || rtype == T_SHORT)
- narrow((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
-- return box((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
-+ return box((jvalue*) result.get_value_addr(), rtype, THREAD);
- }
- }
-
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
-@@ -1046,7 +1046,7 @@
- // last java frame on stack (which includes native call frames)
- vframeStream vfst(thread, true); // Do not skip and javaCalls
-
-- return find_callee_info_helper(thread, vfst, bc, callinfo, CHECK_(Handle()));
-+ return find_callee_info_helper(thread, vfst, bc, callinfo, THREAD);
- }
-
-
-diff --git openjdk.orig/hotspot/src/share/vm/services/memTracker.hpp
openjdk/hotspot/src/share/vm/services/memTracker.hpp
---- openjdk.orig/hotspot/src/share/vm/services/memTracker.hpp
-+++ openjdk/hotspot/src/share/vm/services/memTracker.hpp
-@@ -64,7 +64,7 @@
- const NativeCallStack& stack, MEMFLAGS flag = mtNone) { }
- static inline void record_virtual_memory_commit(void* addr, size_t size, const
NativeCallStack& stack) { }
- static inline Tracker get_virtual_memory_uncommit_tracker() { return Tracker(); }
-- static inline Tracker get_virtual_memory_release_tracker() { }
-+ static inline Tracker get_virtual_memory_release_tracker() { return Tracker(); }
- static inline void record_virtual_memory_type(void* addr, MEMFLAGS flag) { }
- static inline void record_thread_stack(void* addr, size_t size) { }
- static inline void release_thread_stack(void* addr, size_t size) { }
diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
index 98d3903..239cd68 100644
--- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -34,12 +34,12 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hots
diff --git openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
-@@ -100,7 +100,7 @@
- case T_DOUBLE:
- case T_VOID:
+@@ -102,7 +102,7 @@
return result;
-- default : ShouldNotReachHere();
-+ default : ShouldNotReachHere(); return NULL_WORD;
+ default:
+ ShouldNotReachHere();
+- return result; // silence compiler warnings
++ return NULL_WORD; // silence compiler warnings
}
}
diff --git
a/jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
b/jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
deleted file mode 100644
index 5f6d9ce..0000000
--- a/jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1518667645 0
-# Thu Feb 15 04:07:25 2018 +0000
-# Node ID 1d35411eb7bdf16191e220ffe3b1dc4d5d0c6041
-# Parent 999983606f5c61b093c6f6316a7b26c4cd4ca79e
-8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
-Summary: Fix issue discovered by -Wreturn-type on systems without LP64.
-Reviewed-by: aph
-
-diff --git openjdk.orig/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
openjdk/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
---- openjdk.orig/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
-+++ openjdk/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
-@@ -457,6 +457,7 @@
- long long unsigned int oldval,
- long long unsigned int newval) {
- ShouldNotCallThis();
-+ return 0;
- }
- };
- #endif // !_LP64
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -498,6 +498,7 @@
- long long unsigned int oldval,
- long long unsigned int newval) {
- ShouldNotCallThis();
-+ return 0;
- }
- };
- #endif // !_LP64
diff --git a/jdk8254177-tzdata2020b.patch b/jdk8254177-tzdata2020b.patch
deleted file mode 100644
index abd9131..0000000
--- a/jdk8254177-tzdata2020b.patch
+++ /dev/null
@@ -1,3849 +0,0 @@
-diff --git openjdk.orig/jdk/make/data/tzdata/VERSION
openjdk/jdk/make/data/tzdata/VERSION
---- openjdk.orig/jdk/make/data/tzdata/VERSION
-+++ openjdk/jdk/make/data/tzdata/VERSION
-@@ -21,4 +21,4 @@
- # or visit
www.oracle.com if you need additional information or have any
- # questions.
- #
--tzdata2020a
-+tzdata2020b
-diff --git openjdk.orig/jdk/make/data/tzdata/africa openjdk/jdk/make/data/tzdata/africa
---- openjdk.orig/jdk/make/data/tzdata/africa
-+++ openjdk/jdk/make/data/tzdata/africa
-@@ -87,7 +87,7 @@
- # Corrections are welcome.
-
- # Algeria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
- Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
- Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
-@@ -110,10 +110,9 @@
- Rule Algeria 1978 only - Sep 22 3:00 0 -
- Rule Algeria 1980 only - Apr 25 0:00 1:00 S
- Rule Algeria 1980 only - Oct 31 2:00 0 -
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
-+# See Europe/Paris for PMT-related transitions.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
-+Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
- 0:00 Algeria WE%sT 1940 Feb 25 2:00
- 1:00 Algeria CE%sT 1946 Oct 7
-@@ -199,7 +198,7 @@
- # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
- # did not apply to Cairo, Alexandria, or Port Said.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Egypt 1940 only - Jul 15 0:00 1:00 S
- Rule Egypt 1940 only - Oct 1 0:00 0 -
- Rule Egypt 1941 only - Apr 15 0:00 1:00 S
-@@ -434,7 +433,7 @@
- # now Ghana observed different DST regimes in different years. For
- # lack of better info, use Shanks except treat the minus sign as a
- # typo, and assume DST started in 1920 not 1936.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
- Rule Ghana 1920 1942 - Dec 31 0:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -524,7 +523,7 @@
- # From Paul Eggert (2013-10-25):
- # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Libya 1951 only - Oct 14 2:00 1:00 S
- Rule Libya 1952 only - Jan 1 0:00 0 -
- Rule Libya 1953 only - Oct 9 2:00 1:00 S
-@@ -647,7 +646,7 @@
- # "The trial ended on March 29, 2009, when the clocks moved back by one hour
- # at 2am (or 02:00) local time..."
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
- Rule Mauritius 1983 only - Mar 21 0:00 0 -
- Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
-@@ -898,17 +897,30 @@
- #
https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dim...
- #
http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-proc...
- #
--# From Paul Eggert (2020-04-14):
-+# From Milamber (2020-05-31)
-+# In Morocco (where I live), the end of Ramadan (Arabic month) is followed by
-+# the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with
-+# traditional visiting of family, big lunches/dinners, etc.). So for this
-+# year the astronomical calculations don't include the following 2 days off in
-+# the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by
-+# people to have a time shift during these 2 days off. Perhaps you can modify
-+# the (predicted) rules for next years: if the end of Ramadan is a (probable)
-+# Friday or Saturday (and so the 2 days off are on a weekend), the next time
-+# shift will be the next weekend.
-+#
-+# From Paul Eggert (2020-05-31):
- # For now, guess that in the future Morocco will fall back at 03:00
- # the last Sunday before Ramadan, and spring forward at 02:00 the
--# first Sunday after the day after Ramadan. To implement this,
--# transition dates for 2021 through 2087 were determined by running
--# the following program under GNU Emacs 26.3.
--# (let ((islamic-year 1442))
-+# first Sunday after two days after Ramadan. To implement this,
-+# transition dates and times for 2019 through 2087 were determined by
-+# running the following program under GNU Emacs 26.3. (This algorithm
-+# also produces the correct transition dates for 2016 through 2018,
-+# though the times differ due to Morocco's time zone change in 2018.)
-+# (let ((islamic-year 1440))
- # (require 'cal-islam)
- # (while (< islamic-year 1511)
- # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
--# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
-+# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
- # (sunday 0))
- # (while (/= sunday (mod (setq a (1- a)) 7)))
- # (while (/= sunday (mod b 7))
-@@ -923,7 +935,7 @@
- # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
- # (setq islamic-year (+ 1 islamic-year))))
-
--# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Morocco 1939 only - Sep 12 0:00 1:00 -
- Rule Morocco 1939 only - Nov 19 0:00 0 -
- Rule Morocco 1940 only - Feb 25 0:00 1:00 -
-@@ -974,7 +986,7 @@
- Rule Morocco 2022 only - Mar 27 3:00 0 -
- Rule Morocco 2022 only - May 8 2:00 1:00 -
- Rule Morocco 2023 only - Mar 19 3:00 0 -
--Rule Morocco 2023 only - Apr 23 2:00 1:00 -
-+Rule Morocco 2023 only - Apr 30 2:00 1:00 -
- Rule Morocco 2024 only - Mar 10 3:00 0 -
- Rule Morocco 2024 only - Apr 14 2:00 1:00 -
- Rule Morocco 2025 only - Feb 23 3:00 0 -
-@@ -990,7 +1002,7 @@
- Rule Morocco 2029 only - Dec 30 3:00 0 -
- Rule Morocco 2030 only - Feb 10 2:00 1:00 -
- Rule Morocco 2030 only - Dec 22 3:00 0 -
--Rule Morocco 2031 only - Jan 26 2:00 1:00 -
-+Rule Morocco 2031 only - Feb 2 2:00 1:00 -
- Rule Morocco 2031 only - Dec 14 3:00 0 -
- Rule Morocco 2032 only - Jan 18 2:00 1:00 -
- Rule Morocco 2032 only - Nov 28 3:00 0 -
-@@ -1006,7 +1018,7 @@
- Rule Morocco 2037 only - Oct 4 3:00 0 -
- Rule Morocco 2037 only - Nov 15 2:00 1:00 -
- Rule Morocco 2038 only - Sep 26 3:00 0 -
--Rule Morocco 2038 only - Oct 31 2:00 1:00 -
-+Rule Morocco 2038 only - Nov 7 2:00 1:00 -
- Rule Morocco 2039 only - Sep 18 3:00 0 -
- Rule Morocco 2039 only - Oct 23 2:00 1:00 -
- Rule Morocco 2040 only - Sep 2 3:00 0 -
-@@ -1022,7 +1034,7 @@
- Rule Morocco 2045 only - Jul 9 3:00 0 -
- Rule Morocco 2045 only - Aug 20 2:00 1:00 -
- Rule Morocco 2046 only - Jul 1 3:00 0 -
--Rule Morocco 2046 only - Aug 5 2:00 1:00 -
-+Rule Morocco 2046 only - Aug 12 2:00 1:00 -
- Rule Morocco 2047 only - Jun 23 3:00 0 -
- Rule Morocco 2047 only - Jul 28 2:00 1:00 -
- Rule Morocco 2048 only - Jun 7 3:00 0 -
-@@ -1038,7 +1050,7 @@
- Rule Morocco 2053 only - Apr 13 3:00 0 -
- Rule Morocco 2053 only - May 25 2:00 1:00 -
- Rule Morocco 2054 only - Apr 5 3:00 0 -
--Rule Morocco 2054 only - May 10 2:00 1:00 -
-+Rule Morocco 2054 only - May 17 2:00 1:00 -
- Rule Morocco 2055 only - Mar 28 3:00 0 -
- Rule Morocco 2055 only - May 2 2:00 1:00 -
- Rule Morocco 2056 only - Mar 12 3:00 0 -
-@@ -1054,7 +1066,7 @@
- Rule Morocco 2061 only - Jan 16 3:00 0 -
- Rule Morocco 2061 only - Feb 27 2:00 1:00 -
- Rule Morocco 2062 only - Jan 8 3:00 0 -
--Rule Morocco 2062 only - Feb 12 2:00 1:00 -
-+Rule Morocco 2062 only - Feb 19 2:00 1:00 -
- Rule Morocco 2062 only - Dec 31 3:00 0 -
- Rule Morocco 2063 only - Feb 4 2:00 1:00 -
- Rule Morocco 2063 only - Dec 16 3:00 0 -
-@@ -1070,7 +1082,7 @@
- Rule Morocco 2068 only - Oct 21 3:00 0 -
- Rule Morocco 2068 only - Dec 2 2:00 1:00 -
- Rule Morocco 2069 only - Oct 13 3:00 0 -
--Rule Morocco 2069 only - Nov 17 2:00 1:00 -
-+Rule Morocco 2069 only - Nov 24 2:00 1:00 -
- Rule Morocco 2070 only - Oct 5 3:00 0 -
- Rule Morocco 2070 only - Nov 9 2:00 1:00 -
- Rule Morocco 2071 only - Sep 20 3:00 0 -
-@@ -1086,7 +1098,7 @@
- Rule Morocco 2076 only - Jul 26 3:00 0 -
- Rule Morocco 2076 only - Sep 6 2:00 1:00 -
- Rule Morocco 2077 only - Jul 18 3:00 0 -
--Rule Morocco 2077 only - Aug 22 2:00 1:00 -
-+Rule Morocco 2077 only - Aug 29 2:00 1:00 -
- Rule Morocco 2078 only - Jul 10 3:00 0 -
- Rule Morocco 2078 only - Aug 14 2:00 1:00 -
- Rule Morocco 2079 only - Jun 25 3:00 0 -
-@@ -1096,13 +1108,13 @@
- Rule Morocco 2081 only - Jun 1 3:00 0 -
- Rule Morocco 2081 only - Jul 13 2:00 1:00 -
- Rule Morocco 2082 only - May 24 3:00 0 -
--Rule Morocco 2082 only - Jun 28 2:00 1:00 -
-+Rule Morocco 2082 only - Jul 5 2:00 1:00 -
- Rule Morocco 2083 only - May 16 3:00 0 -
- Rule Morocco 2083 only - Jun 20 2:00 1:00 -
- Rule Morocco 2084 only - Apr 30 3:00 0 -
- Rule Morocco 2084 only - Jun 11 2:00 1:00 -
- Rule Morocco 2085 only - Apr 22 3:00 0 -
--Rule Morocco 2085 only - May 27 2:00 1:00 -
-+Rule Morocco 2085 only - Jun 3 2:00 1:00 -
- Rule Morocco 2086 only - Apr 14 3:00 0 -
- Rule Morocco 2086 only - May 19 2:00 1:00 -
- Rule Morocco 2087 only - Mar 30 3:00 0 -
-@@ -1203,7 +1215,7 @@
- # Use plain "WAT" and "CAT" for the time zone abbreviations, to be
compatible
- # with Namibia's neighbors.
-
--# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Vanguard section, for zic and other parsers that support negative DST.
- #Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
- #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
-@@ -1326,7 +1338,7 @@
- # See Africa/Nairobi.
-
- # South Africa
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
- Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1359,7 +1371,7 @@
- # Abdalla of NTC, archived at:
- #
https://mm.icann.org/pipermail/tz/2017-October/025333.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Sudan 1970 only - May 1 0:00 1:00 S
- Rule Sudan 1970 1985 - Oct 15 0:00 0 -
- Rule Sudan 1971 only - Apr 30 0:00 1:00 S
-@@ -1447,7 +1459,7 @@
- #
http://www.almadenahnews.com/newss/news.php?c=118&id=38036
- #
http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
- Rule Tunisia 1939 only - Nov 18 23:00s 0 -
- Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
-@@ -1474,9 +1486,7 @@
- Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
- Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
-
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
--# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
-+# See Europe/Paris for PMT-related transitions.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
- Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
-diff --git openjdk.orig/jdk/make/data/tzdata/antarctica
openjdk/jdk/make/data/tzdata/antarctica
---- openjdk.orig/jdk/make/data/tzdata/antarctica
-+++ openjdk/jdk/make/data/tzdata/antarctica
-@@ -93,15 +93,30 @@
- # Australian Antarctica Division informed us that Casey changed time
- # zone to UTC+11 in "the morning of 22nd October 2016".
-
-+# From Steffen Thorsen (2020-10-02, as corrected):
-+# Based on information we have received from the Australian Antarctic
-+# Division, Casey station and Macquarie Island station will move to Tasmanian
-+# daylight savings time on Sunday 4 October. This will take effect from 0001
-+# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will
-+# be on the same time zone as Hobart. Some past dates too for this 3 hour
-+# time change back and forth between UTC+8 and UTC+11 for Casey:
-+# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00
-+# and now - 2020 Oct 4 0:01
-+
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Antarctica/Casey 0 - -00 1969
-- 8:00 - +08 2009 Oct 18 2:00
-+Zone Antarctica/Casey 0 - -00 1969
-+ 8:00 - +08 2009 Oct 18 2:00
- 11:00 - +11 2010 Mar 5 2:00
-- 8:00 - +08 2011 Oct 28 2:00
-+ 8:00 - +08 2011 Oct 28 2:00
- 11:00 - +11 2012 Feb 21 17:00u
-- 8:00 - +08 2016 Oct 22
-+ 8:00 - +08 2016 Oct 22
- 11:00 - +11 2018 Mar 11 4:00
-- 8:00 - +08
-+ 8:00 - +08 2018 Oct 7 4:00
-+ 11:00 - +11 2019 Mar 17 3:00
-+ 8:00 - +08 2019 Oct 4 3:00
-+ 11:00 - +11 2020 Mar 8 3:00
-+ 8:00 - +08 2020 Oct 4 0:01
-+ 11:00 - +11
- Zone Antarctica/Davis 0 - -00 1957 Jan 13
- 7:00 - +07 1964 Nov
- 0 - -00 1969 Feb
-@@ -247,7 +262,7 @@
- # suggested by Bengt-Inge Larsson comment them out for now, and approximate
- # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
- Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
- #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
-diff --git openjdk.orig/jdk/make/data/tzdata/asia openjdk/jdk/make/data/tzdata/asia
---- openjdk.orig/jdk/make/data/tzdata/asia
-+++ openjdk/jdk/make/data/tzdata/asia
-@@ -93,7 +93,7 @@
- ###############################################################################
-
- # These rules are stolen from the 'europe' file.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
- Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
- Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
-@@ -137,7 +137,7 @@
- # or
- # (brief)
- #
http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
- Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -163,7 +163,7 @@
- #
http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-d...
- #
http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
- Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -250,7 +250,7 @@
- #
http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
- #
http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
- Rule Dhaka 2009 only - Dec 31 24:00 0 -
-
-@@ -326,7 +326,7 @@
- # generally esteemed a success, it was announced early in 1920 that it would
- # not be repeated."
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Shang 1919 only - Apr 12 24:00 1:00 D
- Rule Shang 1919 only - Sep 30 24:00 0 S
-
-@@ -422,7 +422,7 @@
- # the Yangtze river delta area during that period of time although the scope
- # of such use will need to be investigated to determine.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Shang 1940 only - Jun 1 0:00 1:00 D
- Rule Shang 1940 only - Oct 12 24:00 0 S
- Rule Shang 1941 only - Mar 15 0:00 1:00 D
-@@ -485,7 +485,7 @@
- # to begin on 17 April.
- #
http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule PRC 1986 only - May 4 2:00 1:00 D
- Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
- Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
-@@ -869,7 +869,7 @@
- # or dates for the 1942 and 1945 transitions.
- # The Japanese occupation of Hong Kong began 1941-12-25.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule HK 1946 only - Apr 21 0:00 1:00 S
- Rule HK 1946 only - Dec 1 3:30s 0 -
- Rule HK 1947 only - Apr 13 3:30s 1:00 S
-@@ -996,7 +996,7 @@
- # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
- # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Taiwan 1946 only - May 15 0:00 1:00 D
- Rule Taiwan 1946 only - Oct 1 0:00 0 S
- Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
-@@ -1122,7 +1122,7 @@
- # The 1904 decree says that Macau changed from the meridian of
- # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
- Rule Macau 1942 only - Nov 17 23:00 0 -
- Rule Macau 1943 only - Sep 30 23:00 0 S
-@@ -1180,7 +1180,7 @@
- # Cyprus to remain united in time. Cyprus Mail 2017-10-17.
- #
https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
- Rule Cyprus 1975 only - Oct 12 0:00 0 -
- Rule Cyprus 1976 only - May 15 0:00 1:00 S
-@@ -1557,7 +1557,7 @@
- # be changed back to its previous state on the 24 hours of the
- # thirtieth day of Shahrivar.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iran 1978 1980 - Mar 20 24:00 1:00 -
- Rule Iran 1978 only - Oct 20 24:00 0 -
- Rule Iran 1979 only - Sep 18 24:00 0 -
-@@ -1699,7 +1699,7 @@
- # We have published a short article in English about the change:
- #
https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iraq 1982 only - May 1 0:00 1:00 -
- Rule Iraq 1982 1984 - Oct 1 0:00 0 -
- Rule Iraq 1983 only - Mar 31 0:00 1:00 -
-@@ -1722,6 +1722,10 @@
-
- # Israel
-
-+# For more info about the motivation for DST in Israel, see:
-+# Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs.
-+# 2020-08-11.
https://doi.org/10.1080/13537121.2020.1806564
-+
- # From Ephraim Silverberg (2001-01-11):
- #
- # I coined "IST/IDT" circa 1988. Until then there were three
-@@ -1743,7 +1747,7 @@
- # family is from India).
-
- # From Shanks & Pottenger:
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1940 only - Jun 1 0:00 1:00 D
- Rule Zion 1942 1944 - Nov 1 0:00 0 S
- Rule Zion 1943 only - Apr 1 2:00 1:00 D
-@@ -1835,7 +1839,7 @@
- # (except in 2002) is three nights before Yom Kippur [Day of Atonement]
- # (the eve of the 7th of Tishrei in the lunar Hebrew calendar).
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1989 only - Apr 30 0:00 1:00 D
- Rule Zion 1989 only - Sep 3 0:00 0 S
- Rule Zion 1990 only - Mar 25 0:00 1:00 D
-@@ -1851,7 +1855,7 @@
- # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by
- # calling the office directly at 972-2-6701447 or 972-2-6701448.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1994 only - Apr 1 0:00 1:00 D
- Rule Zion 1994 only - Aug 28 0:00 0 S
- Rule Zion 1995 only - Mar 31 0:00 1:00 D
-@@ -1871,7 +1875,7 @@
- #
- # where YYYY is the relevant year.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1996 only - Mar 15 0:00 1:00 D
- Rule Zion 1996 only - Sep 16 0:00 0 S
- Rule Zion 1997 only - Mar 21 0:00 1:00 D
-@@ -1894,7 +1898,7 @@
- #
- # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2000 only - Apr 14 2:00 1:00 D
- Rule Zion 2000 only - Oct 6 1:00 0 S
- Rule Zion 2001 only - Apr 9 1:00 1:00 D
-@@ -1916,7 +1920,7 @@
- #
- # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
- Rule Zion 2005 only - Oct 9 2:00 0 S
- Rule Zion 2006 only - Oct 1 2:00 0 S
-@@ -1936,7 +1940,7 @@
- # As of 2013, DST starts at 02:00 on the Friday before the last Sunday
- # in March. DST ends at 02:00 on the last Sunday of October.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
- Rule Zion 2013 max - Oct lastSun 2:00 0 S
-
-@@ -2036,7 +2040,7 @@
- # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later,
- # which should be safe now.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
- Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S
- Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
-@@ -2113,7 +2117,7 @@
- # From Paul Eggert (2013-12-11):
- # As Steffen suggested, consider the past 21-month experiment to be DST.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Jordan 1973 only - Jun 6 0:00 1:00 S
- Rule Jordan 1973 1975 - Oct 1 0:00 0 -
- Rule Jordan 1974 1977 - May 1 0:00 1:00 S
-@@ -2439,7 +2443,7 @@
- # Our government cancels daylight saving time 6th of August 2005.
- # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
- Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
- Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
-@@ -2495,7 +2499,7 @@
- # follow and continued to use GMT+9:00 for interoperability.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule ROK 1948 only - Jun 1 0:00 1:00 D
- Rule ROK 1948 only - Sep 12 24:00 0 S
- Rule ROK 1949 only - Apr 3 0:00 1:00 D
-@@ -2583,7 +2587,7 @@
-
-
- # Lebanon
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
- Rule Lebanon 1920 only - Oct 25 0:00 0 -
- Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
-@@ -2613,7 +2617,7 @@
- 2:00 Lebanon EE%sT
-
- # Malaysia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
- Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
- #
-@@ -2758,7 +2762,7 @@
- # September daylight saving time ends. Source:
- #
http://zasag.mn/news/view/8969
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
- Rule Mongol 1983 only - Oct 1 0:00 0 -
- # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
-@@ -2946,7 +2950,7 @@
- # "People laud PM's announcement to end DST"
- #
http://www.app.com.pk/en_/index.php?option=com_content&task=view&...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
- Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
- Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
-@@ -3248,7 +3252,7 @@
- # From Tim Parenti (2016-10-19):
- # Predict fall transitions on October's last Saturday at 01:00 from now on.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
- Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
- Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
-@@ -3348,7 +3352,7 @@
- # influence of the sources. There is no current abbreviation for DST,
- # so use "PDT", the usual American style.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Phil 1936 only - Nov 1 0:00 1:00 D
- Rule Phil 1937 only - Feb 1 0:00 0 S
- Rule Phil 1954 only - Apr 12 0:00 1:00 D
-@@ -3496,7 +3500,7 @@
- 5:30 - +0530
-
- # Syria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
- Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
- Rule Syria 1962 only - Apr 29 2:00 1:00 S
-diff --git openjdk.orig/jdk/make/data/tzdata/australasia
openjdk/jdk/make/data/tzdata/australasia
---- openjdk.orig/jdk/make/data/tzdata/australasia
-+++ openjdk/jdk/make/data/tzdata/australasia
-@@ -36,7 +36,7 @@
-
- # Please see the notes below for the controversy about "EST" versus
"AEST" etc.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Aus 1917 only - Jan 1 0:01 1:00 D
- Rule Aus 1917 only - Mar 25 2:00 0 S
- Rule Aus 1942 only - Jan 1 2:00 1:00 D
-@@ -55,7 +55,7 @@
- 9:30 Aus AC%sT
- # Western Australia
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
- Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
- Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
-@@ -93,7 +93,7 @@
- # applies to all of the Whitsundays.
- #
http://www.australia.gov.au/about-australia/australian-story/austn-islands
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
- Rule AQ 1972 only - Feb lastSun 2:00s 0 S
- Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
-@@ -109,7 +109,7 @@
- 10:00 Holiday AE%sT
-
- # South Australia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AS 1986 only - Oct 19 2:00s 1:00 D
- Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
-@@ -137,7 +137,7 @@
- #
http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
- # says King Island didn't observe DST from WWII until late 1971.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
- Rule AT 1968 only - Mar lastSun 2:00s 0 S
- Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
-@@ -170,7 +170,7 @@
- 10:00 AT AE%sT
-
- # Victoria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AV 1972 only - Feb lastSun 2:00s 0 S
- Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
-@@ -191,7 +191,7 @@
- 10:00 AV AE%sT
-
- # New South Wales
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AN 1972 only - Feb 27 2:00s 0 S
- Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
-@@ -220,7 +220,7 @@
- 9:30 AS AC%sT
-
- # Lord Howe Island
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
- Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
- Rule LH 1985 only - Oct lastSun 2:00 0:30 -
-@@ -275,8 +275,9 @@
- 10:00 Aus AE%sT 1919 Apr 1 0:00s
- 0 - -00 1948 Mar 25
- 10:00 Aus AE%sT 1967
-- 10:00 AT AE%sT 2010 Apr 4 3:00
-- 11:00 - +11
-+ 10:00 AT AE%sT 2010
-+ 10:00 1:00 AEDT 2011
-+ 10:00 AT AE%sT
-
- # Christmas
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -403,7 +404,7 @@
- # From Michael Deckers (2019-08-06):
- #
https://www.laws.gov.fj/LawsAsMade/downloadfile/848
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
- Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
- Rule Fiji 2009 only - Nov 29 2:00 1:00 -
-@@ -432,7 +433,7 @@
-
- # Guam
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #
http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
- #
http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savi...
- Rule Guam 1959 only - Jun 27 2:00 1:00 D
-@@ -543,7 +544,7 @@
- 12:00 - +12
-
- # New Caledonia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
- Rule NC 1978 1979 - Feb 27 0:00 0 -
- Rule NC 1996 only - Dec 1 2:00s 1:00 -
-@@ -558,7 +559,7 @@
-
- # New Zealand
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NZ 1927 only - Nov 6 2:00 1:00 S
- Rule NZ 1928 only - Mar 4 2:00 0 M
- Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
-@@ -610,7 +611,7 @@
-
- # Cook Is
- # From Shanks & Pottenger:
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cook 1978 only - Nov 12 0:00 0:30 -
- Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
- Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
-@@ -755,7 +756,7 @@
- # That web page currently lists transitions for 2012/3 and 2013/4.
- # Assume the pattern instituted in 2012 will continue indefinitely.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule WS 2010 only - Sep lastSun 0:00 1 -
- Rule WS 2011 only - Apr Sat>=1 4:00 0 -
- Rule WS 2011 only - Sep lastSat 3:00 1 -
-@@ -799,7 +800,7 @@
- 13:00 - +13
-
- # Tonga
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
- Rule Tonga 2000 only - Mar 19 2:00s 0 -
- Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
-@@ -880,7 +881,7 @@
-
-
- # Vanuatu
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Vanuatu 1983 only - Sep 25 0:00 1:00 -
- Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 -
- Rule Vanuatu 1984 only - Oct 23 0:00 1:00 -
-diff --git openjdk.orig/jdk/make/data/tzdata/europe openjdk/jdk/make/data/tzdata/europe
---- openjdk.orig/jdk/make/data/tzdata/europe
-+++ openjdk/jdk/make/data/tzdata/europe
-@@ -411,7 +411,7 @@
- #
http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
- #
http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Summer Time Act, 1916
- Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
- Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
-@@ -552,7 +552,7 @@
- # The following is like GB-Eire and EU, except with standard time in
- # summer and negative daylight saving time in winter. It is for when
- # negative SAVE values are used.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #Rule Eire 1971 only - Oct 31 2:00u -1:00 -
- #Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
- #Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
-@@ -589,7 +589,7 @@
- # predecessor organization, the European Communities.
- # For brevity they are called "EU rules" elsewhere in this file.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
- Rule EU 1977 only - Sep lastSun 1:00u 0 -
- Rule EU 1978 only - Oct 1 1:00u 0 -
-@@ -629,13 +629,13 @@
- # corrected in version 2008d). The circumstantial evidence is simply the
- # tz database itself, as seen below:
- #
--# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
-+# Zone Europe/Paris ...
- # 0:00 France WE%sT 1945 Sep 16 3:00
- #
--# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
-+# Zone Europe/Monaco ...
- # 0:00 France WE%sT 1945 Sep 16 3:00
- #
--# Zone Europe/Belgrade 1:22:00 - LMT 1884
-+# Zone Europe/Belgrade ...
- # 1:00 1:00 CEST 1945 Sep 16 2:00s
- #
- # Rule France 1945 only - Sep 16 3:00 0 -
-@@ -681,7 +681,7 @@
- #
- # The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
- #
- # Decree No. 142 (1917-12-22)
http://istmat.info/node/28137
-@@ -795,7 +795,7 @@
-
-
- # Albania
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Albania 1940 only - Jun 16 0:00 1:00 S
- Rule Albania 1942 only - Nov 2 3:00 0 -
- Rule Albania 1943 only - Mar 29 2:00 1:00 S
-@@ -849,7 +849,7 @@
- # In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
- # Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Austria 1920 only - Apr 5 2:00s 1:00 S
- Rule Austria 1920 only - Sep 13 2:00s 0 -
- Rule Austria 1946 only - Apr 14 2:00s 1:00 S
-@@ -936,7 +936,7 @@
- # The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
- # Assume Brussels switched to WET in 1918 when the armistice took effect.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
- Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
- Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
-@@ -996,7 +996,7 @@
- # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
- # EETDST -> EET is in 04:00 Local time in last Sunday of October
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Bulg 1979 only - Mar 31 23:00 1:00 S
- Rule Bulg 1979 only - Oct 1 1:00 0 -
- Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
-@@ -1028,7 +1028,7 @@
- # We know of no English-language name for historical Czech winter time;
- # abbreviate it as "GMT", as it happened to be GMT.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
- Rule Czech 1945 only - Oct 1 2:00s 0 -
- Rule Czech 1946 only - May 6 2:00s 1:00 S
-@@ -1084,7 +1084,7 @@
- # Hence the "02:00" of the 1980 law refers to standard time, not
- # wall-clock time, and so the EU rules were in effect in 1980.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Denmark 1916 only - May 14 23:00 1:00 S
- Rule Denmark 1916 only - Sep 30 23:00 0 -
- Rule Denmark 1940 only - May 15 0:00 1:00 S
-@@ -1186,7 +1186,7 @@
- #
http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-t...
- # It is their only National Park.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
- Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
- Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
-@@ -1317,7 +1317,7 @@
- # From Paul Eggert (2014-06-14):
- # Go with Oja over Shanks.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Finland 1942 only - Apr 2 24:00 1:00 S
- Rule Finland 1942 only - Oct 4 1:00 0 -
- Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
-@@ -1349,10 +1349,58 @@
- # Françoise Gauquelin, Problèmes de l'heure résolus en astrologie,
- # Guy Trédaniel, Paris 1987
-
-+# From Michael Deckers (2020-06-11):
-+# the law of 1891 <
https://gallica.bnf.fr/ark:/12148/bpt6k64415343.texteImage>
-+# was published on 1891-03-15, so it could only take force on 1891-03-16.
-+
-+# From Michael Deckers (2020-06-10):
-+# Le Gaulois, 1911-03-11, page 1/6, online at
-+#
https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lh...
-+# ... [ Instantly, all pressure driven clock dials halted... Nine minutes and
-+# twenty-one seconds later the hands resumed their circular motion. ]
-+# There are also precise reports about how the change was prepared in train
-+# stations: all the publicly visible clocks stopped at midnight railway time
-+# (or were covered), only the chief of service had a watch, labeled
-+# "Heure ancienne", that he kept running until it reached 00:04:21, when
-+# he announced "Heure nouvelle". See the "Le Petit Journal
1911-03-11".
-+#
https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom
-+#
-+# From Michael Deckers (2020-06-12):
-+# That "all French clocks stopped" for 00:09:21 is a misreading of French
-+# newspapers; this sort of adjustment applies only to certain
-+# remote-controlled clocks ("pendules pneumatiques", of which there existed
-+# perhaps a dozen in Paris, and which simply could not be set back remotely),
-+# but not to all the clocks in all French towns and villages. For instance,
-+# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2:
-+# only works if legal time was stepped back (was not monotone): ...
-+# [One can observe that children who had been born at midnight less 5
-+# minutes and who had died at midnight of the old time, would turn out to
-+# be dead before being born, time having been set back and having
-+# suppressed 9 minutes and 25 seconds of their existence, that is, more
-+# than they could spend.]
-+#
-+# From Paul Eggert (2020-06-12):
-+# French time in railway stations was legally five minutes behind civil time,
-+# which explains why railway "old time" ran to 00:04:21 instead of to
00:09:21.
-+# The law's text (which Michael Deckers noted is at
-+# <
https://gallica.bnf.fr/ark:/12148/bpt6k2022333z/f2>) says only that
-+# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by
-+# nine minutes and twenty-one seconds, and does not say how the
-+# transition from Paris mean time was to occur.
-+#
-+# tzdb has no way to represent stopped clocks. As the railway practice
-+# was to keep a watch running on "old time" to decide when to restart
-+# the other clocks, this could be modeled as a transition for "old time" at
-+# 00:09:21. However, since the law was ambiguous and clocks outside railway
-+# stations were probably done haphazardly with the popular impression being
-+# that the transition was done at 00:00 "old time", simply leave the time
-+# blank; this causes zic to default to 00:00 "old time" which is good enough.
-+# Do something similar for the 1891-03-16 transition. There are similar
-+# problems in Algiers, Monaco and Tunis.
-
- #
- # Shank & Pottenger seem to use '24:00' ambiguously; resolve it with
Whitman.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule France 1916 only - Jun 14 23:00s 1:00 S
- Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
- Rule France 1917 only - Mar 24 23:00s 1:00 S
-@@ -1412,13 +1460,11 @@
- # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
- Rule France 1976 only - Mar 28 1:00 1:00 S
- Rule France 1976 only - Sep 26 1:00 0 -
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
--# but Howse quotes the actual French legislation as saying 0:09:21.
--# Go with Howse. Howse writes that the time in France was officially based
-+# Howse writes that the time in France was officially based
- # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
-- 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT
-+Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
-+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
- # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
- 0:00 France WE%sT 1940 Jun 14 23:00
- # Le Corre says Paris stuck with occupied-France time after the liberation;
-@@ -1447,7 +1493,7 @@
- # this was equivalent to UT +03, not +04.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Germany 1946 only - Apr 14 2:00s 1:00 S
- Rule Germany 1946 only - Oct 7 2:00s 0 -
- Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
-@@ -1499,7 +1545,7 @@
- 1:00 EU CE%sT
-
- # Greece
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
- Rule Greece 1932 only - Jul 7 0:00 1:00 S
- Rule Greece 1932 only - Sep 1 0:00 0 -
-@@ -1534,38 +1580,69 @@
- 2:00 EU EE%sT
-
- # Hungary
--# From Paul Eggert (2014-07-15):
--# Dates for 1916-1945 are taken from:
--# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945.
--# National Archives of Hungary (2012-10-29).
--#
http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19...
--# This source does not always give times, which are taken from Shanks
--# & Pottenger (which disagree about the dates).
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--Rule Hungary 1918 only - Apr 1 3:00 1:00 S
--Rule Hungary 1918 only - Sep 16 3:00 0 -
--Rule Hungary 1919 only - Apr 15 3:00 1:00 S
--Rule Hungary 1919 only - Nov 24 3:00 0 -
-+
-+# From Michael Deckers (2020-06-09):
-+# an Austrian encyclopedia of railroads of 1913, online at
-+#
http://www.zeno.org/Roell-1912/A/Eisenbahnzeit
-+# says that the switch [to CET] happened on 1890-11-01.
-+
-+# From Géza Nyáry (2020-06-07):
-+# Data for 1918-1983 are based on the archive database of Library Hungaricana.
-+# The dates are collected from original, scanned governmental orders,
-+# bulletins, instructions and public press.
-+# [See URLs below.]
-+
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201
-+Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
-+Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
-+Rule Hungary 1920 only - Apr 5 2:00 1:00 S
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882
- Rule Hungary 1945 only - May 1 23:00 1:00 S
--Rule Hungary 1945 only - Nov 1 0:00 0 -
-+Rule Hungary 1945 only - Nov 1 1:00 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49
- Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
--Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54
-+Rule Hungary 1946 only - Oct 7 2:00 0 -
-+#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?...
-+#
https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128
-+#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?...
-+#
https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64
-+#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
-+#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94
- Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
--Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
--Rule Hungary 1950 only - Oct 23 2:00s 0 -
--Rule Hungary 1954 1955 - May 23 0:00 1:00 S
--Rule Hungary 1954 1955 - Oct 3 0:00 0 -
--Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
--Rule Hungary 1956 only - Sep lastSun 0:00 0 -
--Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
--Rule Hungary 1957 only - Sep lastSun 3:00 0 -
--Rule Hungary 1980 only - Apr 6 1:00 1:00 S
-+Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg...
-+Rule Hungary 1954 only - May 23 0:00 1:00 S
-+Rule Hungary 1954 only - Oct 3 0:00 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg...
-+Rule Hungary 1955 only - May 22 2:00 1:00 S
-+Rule Hungary 1955 only - Oct 2 3:00 0 -
-+#
https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0
-+#
https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6
-+#
https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120
-+#
https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143
-+Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
-+Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg...
-+Rule Hungary 1980 only - Apr 6 0:00 1:00 S
-+Rule Hungary 1980 only - Sep 28 1:00 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg...
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85
-+Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
-+Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
-+#
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
-+Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
- 1:00 C-Eur CE%sT 1918
-- 1:00 Hungary CE%sT 1941 Apr 8
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204
-+ 1:00 Hungary CE%sT 1941 Apr 7 23:00
- 1:00 C-Eur CE%sT 1945
-- 1:00 Hungary CE%sT 1980 Sep 28 2:00s
-+ 1:00 Hungary CE%sT 1984
- 1:00 EU CE%sT
-
- # Iceland
-@@ -1601,7 +1678,7 @@
- # The information below is taken from the 1988 Almanak; see
- #
http://www.almanak.hi.is/klukkan.html
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iceland 1917 1919 - Feb 19 23:00 1:00 -
- Rule Iceland 1917 only - Oct 21 1:00 0 -
- Rule Iceland 1918 1919 - Nov 16 1:00 0 -
-@@ -1693,7 +1770,7 @@
- # to 1944-06-04; although Rome was an open city during this period, it
- # was effectively controlled by Germany.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Italy 1916 only - Jun 3 24:00 1:00 S
- Rule Italy 1916 1917 - Sep 30 24:00 0 -
- Rule Italy 1917 only - Mar 31 24:00 1:00 S
-@@ -1803,7 +1880,7 @@
- # urged Lithuania and Estonia to adopt a similar time policy, but it
- # appears that they will not do so....
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
- Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
-
-@@ -1896,7 +1973,7 @@
- # Luxembourg
- # Whitman disagrees with most of these dates in minor ways;
- # go with Shanks & Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Lux 1916 only - May 14 23:00 1:00 S
- Rule Lux 1916 only - Oct 1 1:00 0 -
- Rule Lux 1917 only - Apr 28 23:00 1:00 S
-@@ -1937,7 +2014,7 @@
- # From Paul Eggert (2016-10-21):
- # Assume 1900-1972 was like Rome, overriding Shanks.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Malta 1973 only - Mar 31 0:00s 1:00 S
- Rule Malta 1973 only - Sep 29 0:00s 0 -
- Rule Malta 1974 only - Apr 21 0:00s 1:00 S
-@@ -2010,7 +2087,7 @@
- # says the 2014-03-30 spring-forward transition was at 02:00 local time.
- # Guess that since 1997 Moldova has switched one hour before the EU.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
- Rule Moldova 1997 max - Oct lastSun 3:00 0 -
-
-@@ -2028,11 +2105,24 @@
- 2:00 Moldova EE%sT
-
- # Monaco
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
-+#
-+# From Michael Deckers (2020-06-12):
-+# In the "Journal de Monaco" of 1892-05-24, online at
-+#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c6...
-+# we read: ...
-+# [In virtue of a Sovereign Ordinance of the May 13 of the current [year],
-+# legal time in the Principality will be set to, from the date of June 1,
-+# 1892 onwards, to the meridian of Paris, as in France.]
-+# In the "Journal de Monaco" of 1911-03-28, online at
-+#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74...
-+# we read an ordinance of 1911-03-16: ...
-+# [Legal time in the Principality will be set, from the date of promulgation
-+# of the present ordinance, to legal time in France.... Consequently, legal
-+# time will be retarded by 9 minutes and 21 seconds.]
-+#
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
-- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
-+Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1
-+ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time
- 0:00 France WE%sT 1945 Sep 16 3:00
- 1:00 France CE%sT 1977
- 1:00 EU CE%sT
-@@ -2080,7 +2170,7 @@
- # The data entries before 1945 are taken from
- #
https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time
- Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time
- Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
-@@ -2117,7 +2207,7 @@
- # Norway
- #
http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
- # Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Norway 1916 only - May 22 1:00 1:00 S
- Rule Norway 1916 only - Sep 30 0:00 0 -
- Rule Norway 1945 only - Apr 2 2:00s 1:00 S
-@@ -2186,7 +2276,7 @@
- # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
- # <
http://www.wbc.poznan.pl/publication/32156> pp 1-2.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Poland 1918 1919 - Sep 16 2:00s 0 -
- Rule Poland 1919 only - Apr 15 2:00s 1:00 S
- Rule Poland 1944 only - Apr 3 2:00s 1:00 S
-@@ -2257,7 +2347,7 @@
- # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
- # harmonized with EU rules), and that they stayed +0:00 that winter.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
- # done every year, depending on what Spain did, because of railroad schedules.
- # Go with Shanks & Pottenger.
-@@ -2370,7 +2460,7 @@
- # assume that Romania and Moldova switched to EU rules in 1997,
- # the same year as Bulgaria.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Romania 1932 only - May 21 0:00s 1:00 S
- Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
- Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
-@@ -3468,14 +3558,14 @@
- # fallback transition from the next day's 00:59... to 00:00.
-
- # From Michael Deckers (2016-12-15):
--# The Royal Decree of 1900-06-26 quoted by Planesas, online at
-+# The Royal Decree of 1900-07-26 quoted by Planesas, online at
- #
https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf
- # says in its article 5 (my translation):
- # These dispositions will enter into force beginning with the
- # instant at which, according to the time indicated in article 1,
- # the 1st day of January of 1901 will begin.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Spain 1918 only - Apr 15 23:00 1:00 S
- Rule Spain 1918 1919 - Oct 6 24:00s 0 -
- Rule Spain 1919 only - Apr 6 23:00 1:00 S
-@@ -3612,7 +3702,7 @@
- # By the end of the 18th century clocks and watches became commonplace
- # and their performance improved enormously. Communities began to keep
- # mean time in preference to apparent time - Geneva from 1780 ....
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # From Whitman (who writes "Midnight?"):
- # Rule Swiss 1940 only - Nov 2 0:00 1:00 S
- # Rule Swiss 1940 only - Dec 31 0:00 0 -
-@@ -3699,7 +3789,7 @@
- # 1853-07-16, though it probably occurred at some other date in Zurich, and
- # legal civil time probably changed at still some other transition date.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
- Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -3848,7 +3938,7 @@
- # Although Google Translate misfires on that source, it looks like
- # Turkey reversed last month's decision, and so will stay at +03.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Turkey 1916 only - May 1 0:00 1:00 S
- Rule Turkey 1916 only - Oct 1 0:00 0 -
- Rule Turkey 1920 only - Mar 28 0:00 1:00 S
-@@ -4006,7 +4096,7 @@
- 2:00 1:00 EEST 1991 Sep 29 3:00
- 2:00 E-Eur EE%sT 1995
- 2:00 EU EE%sT
--# Ruthenia used CET 1990/1991.
-+# Transcarpathia used CET 1990/1991.
- # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
- # "Uzhgorod" is more common in English.
- Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
-diff --git openjdk.orig/jdk/make/data/tzdata/leapseconds
openjdk/jdk/make/data/tzdata/leapseconds
---- openjdk.orig/jdk/make/data/tzdata/leapseconds
-+++ openjdk/jdk/make/data/tzdata/leapseconds
-@@ -91,11 +91,11 @@
- # Any additional leap seconds will come after this.
- # This Expires line is commented out for now,
- # so that pre-2020a zic implementations do not reject this file.
--#Expires 2020 Dec 28 00:00:00
-+#Expires 2021 Jun 28 00:00:00
-
- # POSIX timestamps for the data in this file:
- #updated 1467936000 (2016-07-08 00:00:00 UTC)
--#expires 1609113600 (2020-12-28 00:00:00 UTC)
-+#expires 1624838400 (2021-06-28 00:00:00 UTC)
-
--# Updated through IERS Bulletin C59
--# File expires on: 28 December 2020
-+# Updated through IERS Bulletin C60
-+# File expires on: 28 June 2021
-diff --git openjdk.orig/jdk/make/data/tzdata/northamerica
openjdk/jdk/make/data/tzdata/northamerica
---- openjdk.orig/jdk/make/data/tzdata/northamerica
-+++ openjdk/jdk/make/data/tzdata/northamerica
-@@ -193,7 +193,7 @@
- # U.S. government action. So even though the "US" rules have changed
- # in the latest release, other countries won't be affected.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
- Rule US 1918 1919 - Oct lastSun 2:00 0 S
- Rule US 1942 only - Feb 9 2:00 1:00 W # War
-@@ -370,7 +370,7 @@
- # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the
- # nearest second.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
- Rule NYC 1920 only - Oct lastSun 2:00 0 S
- Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
-@@ -454,7 +454,7 @@
- # The Tennessean 2007-05-11, republished 2015-04-06.
- #
https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seige...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Chicago 1920 only - Jun 13 2:00 1:00 D
- Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
- Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
-@@ -523,7 +523,7 @@
- # El Paso Times. 2018-10-24 06:40 -06.
- #
https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoan...
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
- Rule Denver 1920 only - Oct lastSun 2:00 0 S
- Rule Denver 1921 only - May 22 2:00 0 S
-@@ -576,7 +576,7 @@
- #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&co...
- #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&co...
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule CA 1948 only - Mar 14 2:01 1:00 D
- Rule CA 1949 only - Jan 1 2:00 0 S
- Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
-@@ -934,7 +934,7 @@
- # going to switch from Central to Eastern Time on March 11, 2007....
- #
http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/7...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
- Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
- Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
-@@ -953,7 +953,7 @@
- #
- # Eastern Crawford County, Indiana, left its clocks alone in 1974,
- # as well as from 1976 through 2005.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
- Rule Marengo 1951 only - Sep lastSun 2:00 0 S
- Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
-@@ -972,7 +972,7 @@
- # Daviess, Dubois, Knox, and Martin Counties, Indiana,
- # switched from eastern to central time in April 2006, then switched back
- # in November 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
- Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
- Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
-@@ -997,7 +997,7 @@
- # The Indianapolis News, Friday 27 October 1967 states that Perry County
- # returned to CST. It went again to EST on 27 April 1969, as documented by the
- # Indianapolis star of Saturday 26 April.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Perry 1955 only - May 1 0:00 1:00 D
- Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
- Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
-@@ -1014,7 +1014,7 @@
- #
- # Pike County, Indiana moved from central to eastern time in 1977,
- # then switched back in 2006, then switched back again in 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Pike 1955 only - May 1 0:00 1:00 D
- Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
- Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
-@@ -1035,7 +1035,7 @@
- # An article on page A3 of the Sunday, 1991-10-27 Washington Post
- # notes that Starke County switched from Central time to Eastern time as of
- # 1991-10-27.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
- Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
- Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
-@@ -1052,7 +1052,7 @@
- #
- # Pulaski County, Indiana, switched from eastern to central time in
- # April 2006 and then switched back in March 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
- Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
- Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
-@@ -1094,7 +1094,7 @@
- #
- # Part of Kentucky left its clocks alone in 1974.
- # This also includes Clark, Floyd, and Harrison counties in Indiana.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Louisville 1921 only - May 1 2:00 1:00 D
- Rule Louisville 1921 only - Sep 1 2:00 0 S
- Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
-@@ -1208,7 +1208,7 @@
- # election Michigan voters narrowly repealed DST, effective 1969.
- #
- # Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
- Rule Detroit 1948 only - Sep lastSun 2:00 0 S
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1225,7 +1225,7 @@
- #
- # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
- # switched from EST to CST/CDT in 1973.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
- Rule Menominee 1946 only - Sep lastSun 2:00 0 S
- Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
-@@ -1395,7 +1395,7 @@
- # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
- # than Thursday) in all Canadian rulesets.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Canada 1918 only - Apr 14 2:00 1:00 D
- Rule Canada 1918 only - Oct 27 2:00 0 S
- Rule Canada 1942 only - Feb 9 2:00 1:00 W # War
-@@ -1418,7 +1418,7 @@
- # that follows the rules is the southeast corner, including Port Hope
- # Simpson and Mary's Harbour, but excluding, say, Black Tickle.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule StJohns 1917 only - Apr 8 2:00 1:00 D
- Rule StJohns 1917 only - Sep 17 2:00 0 S
- # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
-@@ -1520,7 +1520,7 @@
- # bill say that it is "accommodating the customs and practices" of those
- # regions, which suggests that they have always been in-line with Halifax.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Halifax 1916 only - Apr 1 0:00 1:00 D
- Rule Halifax 1916 only - Oct 1 0:00 0 S
- Rule Halifax 1920 only - May 9 0:00 1:00 D
-@@ -1586,7 +1586,7 @@
- # clear that this was the case since at least 1993.
- # For now, assume it started in 1993.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
- Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
- Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
-@@ -1795,7 +1795,7 @@
- # With some exceptions, the use of daylight saving may be said to be limited
- # to those cities and towns lying between Quebec city and Windsor, Ont.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Toronto 1919 only - Mar 30 23:30 1:00 D
- Rule Toronto 1919 only - Oct 26 0:00 0 S
- Rule Toronto 1920 only - May 2 2:00 1:00 D
-@@ -1893,7 +1893,7 @@
- # starting 1966. Since 02:00s is clearly correct for 1967 on, assume
- # it was also 02:00s in 1966.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Winn 1916 only - Apr 23 0:00 1:00 D
- Rule Winn 1916 only - Sep 17 0:00 0 S
- Rule Winn 1918 only - Apr 14 2:00 1:00 D
-@@ -1984,7 +1984,7 @@
- # long and rather painful to read.
- #
http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Regina 1918 only - Apr 14 2:00 1:00 D
- Rule Regina 1918 only - Oct 27 2:00 0 S
- Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
-@@ -2034,7 +2034,7 @@
- # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
- # ISBN 978-1459739123.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
- Rule Edm 1918 only - Oct 27 2:00 0 S
- Rule Edm 1919 only - May 27 2:00 0 S
-@@ -2143,7 +2143,7 @@
- #
https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-jul...
- # We have no further details, so omit them for now.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Vanc 1918 only - Apr 14 2:00 1:00 D
- Rule Vanc 1918 only - Oct 27 2:00 0 S
- Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
-@@ -2472,7 +2472,19 @@
- # consistency with nearby Dawson Creek, Creston, and Fort Nelson.
- #
https://yukon.ca/en/news/yukon-end-seasonal-time-change
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# From Andrew G. Smith (2020-09-24):
-+# Yukon has completed its regulatory change to be on UTC -7 year-round....
-+#
http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf
-+# What we have done is re-defined Yukon Standard Time, as we are
-+# authorized to do under section 33 of our Interpretation Act:
-+#
http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf
-+#
-+# From Paul Eggert (2020-09-24):
-+# tzdb uses the obsolete YST abbreviation for standard time in Yukon through
-+# about 1970, and uses PST for standard time in Yukon since then. Consistent
-+# with that, use MST for -07, the new standard time in Yukon effective Nov. 1.
-+
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
- Rule NT_YK 1918 only - Oct 27 2:00 0 S
- Rule NT_YK 1919 only - May 25 2:00 1:00 D
-@@ -2526,12 +2538,12 @@
- Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
- -9:00 NT_YK Y%sT 1967 May 28 0:00
- -8:00 NT_YK P%sT 1980
-- -8:00 Canada P%sT 2020 Mar 8 2:00
-+ -8:00 Canada P%sT 2020 Nov 1
- -7:00 - MST
- Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
- -9:00 NT_YK Y%sT 1973 Oct 28 0:00
- -8:00 NT_YK P%sT 1980
-- -8:00 Canada P%sT 2020 Mar 8 2:00
-+ -8:00 Canada P%sT 2020 Nov 1
- -7:00 - MST
-
-
-@@ -2746,7 +2758,7 @@
- # 5- The islands, reefs and keys shall take their timezone from the
- # longitude they are located at.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mexico 1939 only - Feb 5 0:00 1:00 D
- Rule Mexico 1939 only - Jun 25 0:00 0 S
- Rule Mexico 1940 only - Dec 9 0:00 1:00 D
-@@ -2951,7 +2963,7 @@
- # rules to sync with the U.S. starting in 2007....
- #
http://www.jonesbahamas.com/?c=45&a=10412
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
- Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -2963,7 +2975,7 @@
-
- # For 1899 Milne gives -3:58:29.2; round that.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Barb 1977 only - Jun 12 2:00 1:00 D
- Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
- Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
-@@ -2976,7 +2988,7 @@
-
- # Belize
- # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530
- Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST
- Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
-@@ -3013,7 +3025,7 @@
-
- # Milne gives -5:36:13.3 as San José mean time; round to nearest.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
- Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
- Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
-@@ -3187,7 +3199,7 @@
- # From Paul Eggert (2012-11-03):
- # For now, assume the future rule is first Sunday in November.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cuba 1928 only - Jun 10 0:00 1:00 D
- Rule Cuba 1928 only - Oct 10 0:00 0 S
- Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
-@@ -3256,7 +3268,7 @@
- # decided to revert.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule DR 1966 only - Oct 30 0:00 1:00 EDT
- Rule DR 1967 only - Feb 28 0:00 0 EST
- Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
-@@ -3273,7 +3285,7 @@
-
- # El Salvador
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
- Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
- # There are too many San Salvadors elsewhere, so use America/El_Salvador
-@@ -3302,7 +3314,7 @@
- # (2006-04-19), says DST ends at 24:00. See
- #
http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Hora...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Guat 1973 only - Nov 25 0:00 1:00 D
- Rule Guat 1974 only - Feb 24 0:00 0 S
- Rule Guat 1983 only - May 21 0:00 1:00 D
-@@ -3383,7 +3395,7 @@
- # I have not been able to find a more authoritative source:
- #
https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-hai...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Haiti 1983 only - May 8 0:00 1:00 D
- Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
- Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
-@@ -3431,7 +3443,7 @@
- #
http://www.laprensahn.com/pais_nota.php?id04962=7386
- # So it seems that Honduras will not enter DST this year....
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
- Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
- Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
-@@ -3522,7 +3534,7 @@
- # The natural sun time is restored in all the national territory, in that the
- # time is returned one hour at 01:00 am of October 1 of 2006.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
- Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
- Rule Nic 2005 only - Apr 10 0:00 1:00 D
-diff --git openjdk.orig/jdk/make/data/tzdata/pacificnew
openjdk/jdk/make/data/tzdata/pacificnew
-deleted file mode 100644
---- openjdk/jdk/make/data/tzdata/pacificnew
-+++ /dev/null
-@@ -1,52 +0,0 @@
--#
--# 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. Oracle designates this
--# particular file as subject to the "Classpath" exception as provided
--# by Oracle in the LICENSE file that accompanied this code.
--#
--# 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.
--#
--# tzdb data for proposed US election time (this file is obsolete)
--
--# This file is in the public domain, so clarified as of
--# 2009-05-17 by Arthur David Olson.
--
--# From Arthur David Olson (1989-04-05):
--# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
--# establishing "Pacific Presidential Election Time"; it was not acted on
--# by the Senate or signed into law by the President.
--# You might want to change the "PE" (Presidential Election) below to
--# "Q" (Quadrennial) to maintain three-character zone abbreviations.
--# If you're really conservative, you might want to change it to "D".
--# Avoid "L" (Leap Year), which won't be true in 2100.
--
--# If Presidential Election Time is ever established, replace "XXXX" below
--# with the year the law takes effect and uncomment the "##" lines.
--
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
--## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
--## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
--## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
--
--# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
--## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
--## -8:00 Twilite P%sT
--
--# For now...
--Link America/Los_Angeles US/Pacific-New ##
-diff --git openjdk.orig/jdk/make/data/tzdata/southamerica
openjdk/jdk/make/data/tzdata/southamerica
---- openjdk.orig/jdk/make/data/tzdata/southamerica
-+++ openjdk/jdk/make/data/tzdata/southamerica
-@@ -71,7 +71,7 @@
- # I am sending modifications to the Argentine time zone table...
- # AR was chosen because they are the ISO letters that represent Argentina.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Arg 1930 only - Dec 1 0:00 1:00 -
- Rule Arg 1931 only - Apr 1 0:00 0 -
- Rule Arg 1931 only - Oct 15 0:00 1:00 -
-@@ -792,7 +792,7 @@
- # From Paul Eggert (2013-10-17):
- # For now, assume western Amazonas will change as well.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Decree 20,466 <
http://pcdsh01.on.br/HV20466.htm> (1931-10-01)
- # Decree 21,896 <
http://pcdsh01.on.br/HV21896.htm> (1932-01-10)
- Rule Brazil 1931 only - Oct 3 11:00 1:00 -
-@@ -1281,7 +1281,7 @@
- # For now, assume that they will not revert,
- # since they have extended the expiration date once already.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
- Rule Chile 1928 1932 - Apr 1 0:00 0 -
- Rule Chile 1968 only - Nov 3 4:00u 1:00 -
-@@ -1381,7 +1381,7 @@
- # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
- # "A variation of fifteen minutes in the public clocks of Bogota is not
rare."
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule CO 1992 only - May 3 0:00 1:00 -
- Rule CO 1993 only - Apr 4 0:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1441,7 +1441,7 @@
- # (Not one step back), the clocks went back in 1993 and the experiment was not
- # repeated. For now, assume transitions were at 00:00 local time country-wide.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
- Rule Ecuador 1993 only - Feb 5 0:00 0 -
- #
-@@ -1535,7 +1535,7 @@
- # For now we will assume permanent -03 for the Falklands
- # until advised differently (to apply for 2012 and beyond, after the 2011
- # experiment was apparently successful.)
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
- Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
- Rule Falk 1939 only - Oct 1 0:00 1:00 -
-@@ -1581,7 +1581,7 @@
- # No time of the day is established for the adjustment, so people normally
- # adjust their clocks at 0 hour of the given dates.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Para 1975 1988 - Oct 1 0:00 1:00 -
- Rule Para 1975 1978 - Mar 1 0:00 0 -
- Rule Para 1979 1991 - Apr 1 0:00 0 -
-@@ -1674,7 +1674,7 @@
- # From Paul Eggert (2006-03-22):
- # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Peru 1938 only - Jan 1 0:00 1:00 -
- Rule Peru 1938 only - Apr 1 0:00 0 -
- Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
-@@ -1770,7 +1770,7 @@
- #
https://www.impo.com.uy/diariooficial/1926/03/10/2
- #
https://www.impo.com.uy/diariooficial/1926/03/18/2
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
- Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
- # From Tim Parenti (2018-02-15):
-diff --git openjdk.orig/jdk/make/data/tzdata/systemv
openjdk/jdk/make/data/tzdata/systemv
-deleted file mode 100644
---- openjdk/jdk/make/data/tzdata/systemv
-+++ /dev/null
-@@ -1,62 +0,0 @@
--#
--# 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. Oracle designates this
--# particular file as subject to the "Classpath" exception as provided
--# by Oracle in the LICENSE file that accompanied this code.
--#
--# 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.
--#
--# tzdb data for System V rules (this file is obsolete)
--
--# This file is in the public domain, so clarified as of
--# 2009-05-17 by Arthur David Olson.
--
--# Old rules, should the need arise.
--# No attempt is made to handle Newfoundland, since it cannot be expressed
--# using the System V "TZ" scheme (half-hour offset), or anything outside
--# North America (no support for non-standard DST start/end dates), nor
--# the changes in the DST rules in the US after 1976 (which occurred after
--# the old rules were written).
--#
--# If you need the old rules, uncomment ## lines.
--# Compile this *without* leap second correction for true conformance.
--
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
--Rule SystemV min 1973 - Oct lastSun 2:00 0 S
--Rule SystemV 1974 only - Jan 6 2:00 1:00 D
--Rule SystemV 1974 only - Nov lastSun 2:00 0 S
--Rule SystemV 1975 only - Feb 23 2:00 1:00 D
--Rule SystemV 1975 only - Oct lastSun 2:00 0 S
--Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
--Rule SystemV 1976 max - Oct lastSun 2:00 0 S
--
--# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
--## Zone SystemV/AST4ADT -4:00 SystemV A%sT
--## Zone SystemV/EST5EDT -5:00 SystemV E%sT
--## Zone SystemV/CST6CDT -6:00 SystemV C%sT
--## Zone SystemV/MST7MDT -7:00 SystemV M%sT
--## Zone SystemV/PST8PDT -8:00 SystemV P%sT
--## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
--## Zone SystemV/AST4 -4:00 - AST
--## Zone SystemV/EST5 -5:00 - EST
--## Zone SystemV/CST6 -6:00 - CST
--## Zone SystemV/MST7 -7:00 - MST
--## Zone SystemV/PST8 -8:00 - PST
--## Zone SystemV/YST9 -9:00 - YST
--## Zone SystemV/HST10 -10:00 - HST
-diff --git openjdk.orig/jdk/make/gendata/GendataTZDB.gmk
openjdk/jdk/make/gendata/GendataTZDB.gmk
---- openjdk.orig/jdk/make/gendata/GendataTZDB.gmk
-+++ openjdk/jdk/make/gendata/GendataTZDB.gmk
-@@ -29,7 +29,7 @@
- # Time zone data file creation
- #
- TZDATA_DIR := $(JDK_TOPDIR)/make/data/tzdata
--TZDATA_TZFILE := africa antarctica asia australasia europe northamerica pacificnew
southamerica backward etcetera gmt jdk11_backward
-+TZDATA_TZFILE := africa antarctica asia australasia europe northamerica southamerica
backward etcetera gmt jdk11_backward
- TZDATA_TZFILES := $(addprefix $(TZDATA_DIR)/,$(TZDATA_TZFILE))
-
- GENDATA_TZDB_DAT := $(JDK_OUTPUTDIR)/lib/tzdb.dat
-diff --git openjdk.orig/jdk/src/aix/lib/tzmappings openjdk/jdk/src/aix/lib/tzmappings
---- openjdk.orig/jdk/src/aix/lib/tzmappings
-+++ openjdk/jdk/src/aix/lib/tzmappings
-@@ -568,7 +568,6 @@
- US/Michigan America/New_York
- US/Mountain America/Denver
- US/Pacific America/Los_Angeles
--US/Pacific-New America/Los_Angeles
- US/Samoa Pacific/Pago_Pago
- USAST-2 Africa/Johannesburg
- USAST-2USADT Europe/Istanbul
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
openjdk/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
-@@ -1040,7 +1040,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
openjdk/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
openjdk/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
openjdk/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
openjdk/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
openjdk/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
openjdk/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git
openjdk.orig/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
openjdk/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
openjdk/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git
openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
-@@ -1035,7 +1035,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git a/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
b/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
---- openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
-+++ openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
-@@ -1037,7 +1037,6 @@
- {"US/Michigan", EST},
- {"US/Mountain", MST},
- {"US/Pacific", PST},
-- {"US/Pacific-New", PST},
- {"US/Samoa", SAMOA},
- {"VST", ICT},
- {"W-SU", MSK},
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
openjdk/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
---- openjdk.orig/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
-+++ openjdk/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
-@@ -47,7 +47,7 @@
- String TESTDIR = System.getProperty("test.dir", ".");
- String SRCDIR = System.getProperty("test.src", ".");
- String tzdir = SRCDIR + File.separator + "tzdata";
-- String tzfiles = "africa antarctica asia australasia europe northamerica
pacificnew southamerica backward etcetera systemv";
-+ String tzfiles = "africa antarctica asia australasia europe northamerica
southamerica backward etcetera";
- String jdk_tzdir = SRCDIR + File.separator + "tzdata_jdk";
- String jdk_tzfiles = "gmt jdk11_backward";
- String zidir = TESTDIR + File.separator + "zi";
-@@ -194,8 +194,9 @@
-
- // test getAvailableIDs(raw);
- zids_new = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
-- //Arrays.sort(zids_new);
-+ Arrays.sort(zids_new);
- zids_old = ZoneInfoOld.getAvailableIDs(-8 * 60 * 60 * 1000);
-+ Arrays.sort(zids_old);
- if (!Arrays.equals(zids_new, zids_old)) {
- System.out.println("------------------------");
- System.out.println("NEW.getAvailableIDs(-8:00)");
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/VERSION
openjdk/jdk/test/sun/util/calendar/zi/tzdata/VERSION
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/VERSION
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/VERSION
-@@ -21,4 +21,4 @@
- # or visit
www.oracle.com if you need additional information or have any
- # questions.
- #
--tzdata2020a
-+tzdata2020b
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/africa
openjdk/jdk/test/sun/util/calendar/zi/tzdata/africa
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/africa
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/africa
-@@ -87,7 +87,7 @@
- # Corrections are welcome.
-
- # Algeria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
- Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
- Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
-@@ -110,10 +110,9 @@
- Rule Algeria 1978 only - Sep 22 3:00 0 -
- Rule Algeria 1980 only - Apr 25 0:00 1:00 S
- Rule Algeria 1980 only - Oct 31 2:00 0 -
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
-+# See Europe/Paris for PMT-related transitions.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
-+Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
- 0:00 Algeria WE%sT 1940 Feb 25 2:00
- 1:00 Algeria CE%sT 1946 Oct 7
-@@ -199,7 +198,7 @@
- # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
- # did not apply to Cairo, Alexandria, or Port Said.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Egypt 1940 only - Jul 15 0:00 1:00 S
- Rule Egypt 1940 only - Oct 1 0:00 0 -
- Rule Egypt 1941 only - Apr 15 0:00 1:00 S
-@@ -434,7 +433,7 @@
- # now Ghana observed different DST regimes in different years. For
- # lack of better info, use Shanks except treat the minus sign as a
- # typo, and assume DST started in 1920 not 1936.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
- Rule Ghana 1920 1942 - Dec 31 0:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -524,7 +523,7 @@
- # From Paul Eggert (2013-10-25):
- # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Libya 1951 only - Oct 14 2:00 1:00 S
- Rule Libya 1952 only - Jan 1 0:00 0 -
- Rule Libya 1953 only - Oct 9 2:00 1:00 S
-@@ -647,7 +646,7 @@
- # "The trial ended on March 29, 2009, when the clocks moved back by one hour
- # at 2am (or 02:00) local time..."
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
- Rule Mauritius 1983 only - Mar 21 0:00 0 -
- Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
-@@ -898,17 +897,30 @@
- #
https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dim...
- #
http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-proc...
- #
--# From Paul Eggert (2020-04-14):
-+# From Milamber (2020-05-31)
-+# In Morocco (where I live), the end of Ramadan (Arabic month) is followed by
-+# the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with
-+# traditional visiting of family, big lunches/dinners, etc.). So for this
-+# year the astronomical calculations don't include the following 2 days off in
-+# the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by
-+# people to have a time shift during these 2 days off. Perhaps you can modify
-+# the (predicted) rules for next years: if the end of Ramadan is a (probable)
-+# Friday or Saturday (and so the 2 days off are on a weekend), the next time
-+# shift will be the next weekend.
-+#
-+# From Paul Eggert (2020-05-31):
- # For now, guess that in the future Morocco will fall back at 03:00
- # the last Sunday before Ramadan, and spring forward at 02:00 the
--# first Sunday after the day after Ramadan. To implement this,
--# transition dates for 2021 through 2087 were determined by running
--# the following program under GNU Emacs 26.3.
--# (let ((islamic-year 1442))
-+# first Sunday after two days after Ramadan. To implement this,
-+# transition dates and times for 2019 through 2087 were determined by
-+# running the following program under GNU Emacs 26.3. (This algorithm
-+# also produces the correct transition dates for 2016 through 2018,
-+# though the times differ due to Morocco's time zone change in 2018.)
-+# (let ((islamic-year 1440))
- # (require 'cal-islam)
- # (while (< islamic-year 1511)
- # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
--# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
-+# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
- # (sunday 0))
- # (while (/= sunday (mod (setq a (1- a)) 7)))
- # (while (/= sunday (mod b 7))
-@@ -923,7 +935,7 @@
- # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
- # (setq islamic-year (+ 1 islamic-year))))
-
--# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Morocco 1939 only - Sep 12 0:00 1:00 -
- Rule Morocco 1939 only - Nov 19 0:00 0 -
- Rule Morocco 1940 only - Feb 25 0:00 1:00 -
-@@ -974,7 +986,7 @@
- Rule Morocco 2022 only - Mar 27 3:00 0 -
- Rule Morocco 2022 only - May 8 2:00 1:00 -
- Rule Morocco 2023 only - Mar 19 3:00 0 -
--Rule Morocco 2023 only - Apr 23 2:00 1:00 -
-+Rule Morocco 2023 only - Apr 30 2:00 1:00 -
- Rule Morocco 2024 only - Mar 10 3:00 0 -
- Rule Morocco 2024 only - Apr 14 2:00 1:00 -
- Rule Morocco 2025 only - Feb 23 3:00 0 -
-@@ -990,7 +1002,7 @@
- Rule Morocco 2029 only - Dec 30 3:00 0 -
- Rule Morocco 2030 only - Feb 10 2:00 1:00 -
- Rule Morocco 2030 only - Dec 22 3:00 0 -
--Rule Morocco 2031 only - Jan 26 2:00 1:00 -
-+Rule Morocco 2031 only - Feb 2 2:00 1:00 -
- Rule Morocco 2031 only - Dec 14 3:00 0 -
- Rule Morocco 2032 only - Jan 18 2:00 1:00 -
- Rule Morocco 2032 only - Nov 28 3:00 0 -
-@@ -1006,7 +1018,7 @@
- Rule Morocco 2037 only - Oct 4 3:00 0 -
- Rule Morocco 2037 only - Nov 15 2:00 1:00 -
- Rule Morocco 2038 only - Sep 26 3:00 0 -
--Rule Morocco 2038 only - Oct 31 2:00 1:00 -
-+Rule Morocco 2038 only - Nov 7 2:00 1:00 -
- Rule Morocco 2039 only - Sep 18 3:00 0 -
- Rule Morocco 2039 only - Oct 23 2:00 1:00 -
- Rule Morocco 2040 only - Sep 2 3:00 0 -
-@@ -1022,7 +1034,7 @@
- Rule Morocco 2045 only - Jul 9 3:00 0 -
- Rule Morocco 2045 only - Aug 20 2:00 1:00 -
- Rule Morocco 2046 only - Jul 1 3:00 0 -
--Rule Morocco 2046 only - Aug 5 2:00 1:00 -
-+Rule Morocco 2046 only - Aug 12 2:00 1:00 -
- Rule Morocco 2047 only - Jun 23 3:00 0 -
- Rule Morocco 2047 only - Jul 28 2:00 1:00 -
- Rule Morocco 2048 only - Jun 7 3:00 0 -
-@@ -1038,7 +1050,7 @@
- Rule Morocco 2053 only - Apr 13 3:00 0 -
- Rule Morocco 2053 only - May 25 2:00 1:00 -
- Rule Morocco 2054 only - Apr 5 3:00 0 -
--Rule Morocco 2054 only - May 10 2:00 1:00 -
-+Rule Morocco 2054 only - May 17 2:00 1:00 -
- Rule Morocco 2055 only - Mar 28 3:00 0 -
- Rule Morocco 2055 only - May 2 2:00 1:00 -
- Rule Morocco 2056 only - Mar 12 3:00 0 -
-@@ -1054,7 +1066,7 @@
- Rule Morocco 2061 only - Jan 16 3:00 0 -
- Rule Morocco 2061 only - Feb 27 2:00 1:00 -
- Rule Morocco 2062 only - Jan 8 3:00 0 -
--Rule Morocco 2062 only - Feb 12 2:00 1:00 -
-+Rule Morocco 2062 only - Feb 19 2:00 1:00 -
- Rule Morocco 2062 only - Dec 31 3:00 0 -
- Rule Morocco 2063 only - Feb 4 2:00 1:00 -
- Rule Morocco 2063 only - Dec 16 3:00 0 -
-@@ -1070,7 +1082,7 @@
- Rule Morocco 2068 only - Oct 21 3:00 0 -
- Rule Morocco 2068 only - Dec 2 2:00 1:00 -
- Rule Morocco 2069 only - Oct 13 3:00 0 -
--Rule Morocco 2069 only - Nov 17 2:00 1:00 -
-+Rule Morocco 2069 only - Nov 24 2:00 1:00 -
- Rule Morocco 2070 only - Oct 5 3:00 0 -
- Rule Morocco 2070 only - Nov 9 2:00 1:00 -
- Rule Morocco 2071 only - Sep 20 3:00 0 -
-@@ -1086,7 +1098,7 @@
- Rule Morocco 2076 only - Jul 26 3:00 0 -
- Rule Morocco 2076 only - Sep 6 2:00 1:00 -
- Rule Morocco 2077 only - Jul 18 3:00 0 -
--Rule Morocco 2077 only - Aug 22 2:00 1:00 -
-+Rule Morocco 2077 only - Aug 29 2:00 1:00 -
- Rule Morocco 2078 only - Jul 10 3:00 0 -
- Rule Morocco 2078 only - Aug 14 2:00 1:00 -
- Rule Morocco 2079 only - Jun 25 3:00 0 -
-@@ -1096,13 +1108,13 @@
- Rule Morocco 2081 only - Jun 1 3:00 0 -
- Rule Morocco 2081 only - Jul 13 2:00 1:00 -
- Rule Morocco 2082 only - May 24 3:00 0 -
--Rule Morocco 2082 only - Jun 28 2:00 1:00 -
-+Rule Morocco 2082 only - Jul 5 2:00 1:00 -
- Rule Morocco 2083 only - May 16 3:00 0 -
- Rule Morocco 2083 only - Jun 20 2:00 1:00 -
- Rule Morocco 2084 only - Apr 30 3:00 0 -
- Rule Morocco 2084 only - Jun 11 2:00 1:00 -
- Rule Morocco 2085 only - Apr 22 3:00 0 -
--Rule Morocco 2085 only - May 27 2:00 1:00 -
-+Rule Morocco 2085 only - Jun 3 2:00 1:00 -
- Rule Morocco 2086 only - Apr 14 3:00 0 -
- Rule Morocco 2086 only - May 19 2:00 1:00 -
- Rule Morocco 2087 only - Mar 30 3:00 0 -
-@@ -1203,7 +1215,7 @@
- # Use plain "WAT" and "CAT" for the time zone abbreviations, to be
compatible
- # with Namibia's neighbors.
-
--# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Vanguard section, for zic and other parsers that support negative DST.
- #Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
- #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
-@@ -1326,7 +1338,7 @@
- # See Africa/Nairobi.
-
- # South Africa
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
- Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1359,7 +1371,7 @@
- # Abdalla of NTC, archived at:
- #
https://mm.icann.org/pipermail/tz/2017-October/025333.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Sudan 1970 only - May 1 0:00 1:00 S
- Rule Sudan 1970 1985 - Oct 15 0:00 0 -
- Rule Sudan 1971 only - Apr 30 0:00 1:00 S
-@@ -1447,7 +1459,7 @@
- #
http://www.almadenahnews.com/newss/news.php?c=118&id=38036
- #
http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
- Rule Tunisia 1939 only - Nov 18 23:00s 0 -
- Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
-@@ -1474,9 +1486,7 @@
- Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
- Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
-
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
--# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
-+# See Europe/Paris for PMT-related transitions.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
- Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/antarctica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/antarctica
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/antarctica
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/antarctica
-@@ -93,15 +93,30 @@
- # Australian Antarctica Division informed us that Casey changed time
- # zone to UTC+11 in "the morning of 22nd October 2016".
-
-+# From Steffen Thorsen (2020-10-02, as corrected):
-+# Based on information we have received from the Australian Antarctic
-+# Division, Casey station and Macquarie Island station will move to Tasmanian
-+# daylight savings time on Sunday 4 October. This will take effect from 0001
-+# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will
-+# be on the same time zone as Hobart. Some past dates too for this 3 hour
-+# time change back and forth between UTC+8 and UTC+11 for Casey:
-+# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00
-+# and now - 2020 Oct 4 0:01
-+
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Antarctica/Casey 0 - -00 1969
-- 8:00 - +08 2009 Oct 18 2:00
-+Zone Antarctica/Casey 0 - -00 1969
-+ 8:00 - +08 2009 Oct 18 2:00
- 11:00 - +11 2010 Mar 5 2:00
-- 8:00 - +08 2011 Oct 28 2:00
-+ 8:00 - +08 2011 Oct 28 2:00
- 11:00 - +11 2012 Feb 21 17:00u
-- 8:00 - +08 2016 Oct 22
-+ 8:00 - +08 2016 Oct 22
- 11:00 - +11 2018 Mar 11 4:00
-- 8:00 - +08
-+ 8:00 - +08 2018 Oct 7 4:00
-+ 11:00 - +11 2019 Mar 17 3:00
-+ 8:00 - +08 2019 Oct 4 3:00
-+ 11:00 - +11 2020 Mar 8 3:00
-+ 8:00 - +08 2020 Oct 4 0:01
-+ 11:00 - +11
- Zone Antarctica/Davis 0 - -00 1957 Jan 13
- 7:00 - +07 1964 Nov
- 0 - -00 1969 Feb
-@@ -247,7 +262,7 @@
- # suggested by Bengt-Inge Larsson comment them out for now, and approximate
- # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
- Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
- #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/asia
openjdk/jdk/test/sun/util/calendar/zi/tzdata/asia
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/asia
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/asia
-@@ -93,7 +93,7 @@
- ###############################################################################
-
- # These rules are stolen from the 'europe' file.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
- Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
- Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
-@@ -137,7 +137,7 @@
- # or
- # (brief)
- #
http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
- Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -163,7 +163,7 @@
- #
http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-d...
- #
http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
- Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -250,7 +250,7 @@
- #
http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
- #
http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
- Rule Dhaka 2009 only - Dec 31 24:00 0 -
-
-@@ -326,7 +326,7 @@
- # generally esteemed a success, it was announced early in 1920 that it would
- # not be repeated."
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Shang 1919 only - Apr 12 24:00 1:00 D
- Rule Shang 1919 only - Sep 30 24:00 0 S
-
-@@ -422,7 +422,7 @@
- # the Yangtze river delta area during that period of time although the scope
- # of such use will need to be investigated to determine.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Shang 1940 only - Jun 1 0:00 1:00 D
- Rule Shang 1940 only - Oct 12 24:00 0 S
- Rule Shang 1941 only - Mar 15 0:00 1:00 D
-@@ -485,7 +485,7 @@
- # to begin on 17 April.
- #
http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule PRC 1986 only - May 4 2:00 1:00 D
- Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
- Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
-@@ -869,7 +869,7 @@
- # or dates for the 1942 and 1945 transitions.
- # The Japanese occupation of Hong Kong began 1941-12-25.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule HK 1946 only - Apr 21 0:00 1:00 S
- Rule HK 1946 only - Dec 1 3:30s 0 -
- Rule HK 1947 only - Apr 13 3:30s 1:00 S
-@@ -996,7 +996,7 @@
- # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
- # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Taiwan 1946 only - May 15 0:00 1:00 D
- Rule Taiwan 1946 only - Oct 1 0:00 0 S
- Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
-@@ -1122,7 +1122,7 @@
- # The 1904 decree says that Macau changed from the meridian of
- # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
- Rule Macau 1942 only - Nov 17 23:00 0 -
- Rule Macau 1943 only - Sep 30 23:00 0 S
-@@ -1180,7 +1180,7 @@
- # Cyprus to remain united in time. Cyprus Mail 2017-10-17.
- #
https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
- Rule Cyprus 1975 only - Oct 12 0:00 0 -
- Rule Cyprus 1976 only - May 15 0:00 1:00 S
-@@ -1557,7 +1557,7 @@
- # be changed back to its previous state on the 24 hours of the
- # thirtieth day of Shahrivar.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iran 1978 1980 - Mar 20 24:00 1:00 -
- Rule Iran 1978 only - Oct 20 24:00 0 -
- Rule Iran 1979 only - Sep 18 24:00 0 -
-@@ -1699,7 +1699,7 @@
- # We have published a short article in English about the change:
- #
https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iraq 1982 only - May 1 0:00 1:00 -
- Rule Iraq 1982 1984 - Oct 1 0:00 0 -
- Rule Iraq 1983 only - Mar 31 0:00 1:00 -
-@@ -1722,6 +1722,10 @@
-
- # Israel
-
-+# For more info about the motivation for DST in Israel, see:
-+# Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs.
-+# 2020-08-11.
https://doi.org/10.1080/13537121.2020.1806564
-+
- # From Ephraim Silverberg (2001-01-11):
- #
- # I coined "IST/IDT" circa 1988. Until then there were three
-@@ -1743,7 +1747,7 @@
- # family is from India).
-
- # From Shanks & Pottenger:
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1940 only - Jun 1 0:00 1:00 D
- Rule Zion 1942 1944 - Nov 1 0:00 0 S
- Rule Zion 1943 only - Apr 1 2:00 1:00 D
-@@ -1835,7 +1839,7 @@
- # (except in 2002) is three nights before Yom Kippur [Day of Atonement]
- # (the eve of the 7th of Tishrei in the lunar Hebrew calendar).
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1989 only - Apr 30 0:00 1:00 D
- Rule Zion 1989 only - Sep 3 0:00 0 S
- Rule Zion 1990 only - Mar 25 0:00 1:00 D
-@@ -1851,7 +1855,7 @@
- # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by
- # calling the office directly at 972-2-6701447 or 972-2-6701448.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1994 only - Apr 1 0:00 1:00 D
- Rule Zion 1994 only - Aug 28 0:00 0 S
- Rule Zion 1995 only - Mar 31 0:00 1:00 D
-@@ -1871,7 +1875,7 @@
- #
- # where YYYY is the relevant year.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 1996 only - Mar 15 0:00 1:00 D
- Rule Zion 1996 only - Sep 16 0:00 0 S
- Rule Zion 1997 only - Mar 21 0:00 1:00 D
-@@ -1894,7 +1898,7 @@
- #
- # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2000 only - Apr 14 2:00 1:00 D
- Rule Zion 2000 only - Oct 6 1:00 0 S
- Rule Zion 2001 only - Apr 9 1:00 1:00 D
-@@ -1916,7 +1920,7 @@
- #
- # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
- Rule Zion 2005 only - Oct 9 2:00 0 S
- Rule Zion 2006 only - Oct 1 2:00 0 S
-@@ -1936,7 +1940,7 @@
- # As of 2013, DST starts at 02:00 on the Friday before the last Sunday
- # in March. DST ends at 02:00 on the last Sunday of October.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
- Rule Zion 2013 max - Oct lastSun 2:00 0 S
-
-@@ -2036,7 +2040,7 @@
- # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later,
- # which should be safe now.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
- Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S
- Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
-@@ -2113,7 +2117,7 @@
- # From Paul Eggert (2013-12-11):
- # As Steffen suggested, consider the past 21-month experiment to be DST.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Jordan 1973 only - Jun 6 0:00 1:00 S
- Rule Jordan 1973 1975 - Oct 1 0:00 0 -
- Rule Jordan 1974 1977 - May 1 0:00 1:00 S
-@@ -2439,7 +2443,7 @@
- # Our government cancels daylight saving time 6th of August 2005.
- # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
- Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
- Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
-@@ -2495,7 +2499,7 @@
- # follow and continued to use GMT+9:00 for interoperability.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule ROK 1948 only - Jun 1 0:00 1:00 D
- Rule ROK 1948 only - Sep 12 24:00 0 S
- Rule ROK 1949 only - Apr 3 0:00 1:00 D
-@@ -2583,7 +2587,7 @@
-
-
- # Lebanon
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
- Rule Lebanon 1920 only - Oct 25 0:00 0 -
- Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
-@@ -2613,7 +2617,7 @@
- 2:00 Lebanon EE%sT
-
- # Malaysia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
- Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
- #
-@@ -2758,7 +2762,7 @@
- # September daylight saving time ends. Source:
- #
http://zasag.mn/news/view/8969
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
- Rule Mongol 1983 only - Oct 1 0:00 0 -
- # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
-@@ -2946,7 +2950,7 @@
- # "People laud PM's announcement to end DST"
- #
http://www.app.com.pk/en_/index.php?option=com_content&task=view&...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
- Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
- Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
-@@ -3248,7 +3252,7 @@
- # From Tim Parenti (2016-10-19):
- # Predict fall transitions on October's last Saturday at 01:00 from now on.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
- Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
- Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
-@@ -3348,7 +3352,7 @@
- # influence of the sources. There is no current abbreviation for DST,
- # so use "PDT", the usual American style.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Phil 1936 only - Nov 1 0:00 1:00 D
- Rule Phil 1937 only - Feb 1 0:00 0 S
- Rule Phil 1954 only - Apr 12 0:00 1:00 D
-@@ -3496,7 +3500,7 @@
- 5:30 - +0530
-
- # Syria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
- Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
- Rule Syria 1962 only - Apr 29 2:00 1:00 S
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/australasia
openjdk/jdk/test/sun/util/calendar/zi/tzdata/australasia
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/australasia
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/australasia
-@@ -36,7 +36,7 @@
-
- # Please see the notes below for the controversy about "EST" versus
"AEST" etc.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Aus 1917 only - Jan 1 0:01 1:00 D
- Rule Aus 1917 only - Mar 25 2:00 0 S
- Rule Aus 1942 only - Jan 1 2:00 1:00 D
-@@ -55,7 +55,7 @@
- 9:30 Aus AC%sT
- # Western Australia
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
- Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
- Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
-@@ -93,7 +93,7 @@
- # applies to all of the Whitsundays.
- #
http://www.australia.gov.au/about-australia/australian-story/austn-islands
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
- Rule AQ 1972 only - Feb lastSun 2:00s 0 S
- Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
-@@ -109,7 +109,7 @@
- 10:00 Holiday AE%sT
-
- # South Australia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AS 1986 only - Oct 19 2:00s 1:00 D
- Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
-@@ -137,7 +137,7 @@
- #
http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
- # says King Island didn't observe DST from WWII until late 1971.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
- Rule AT 1968 only - Mar lastSun 2:00s 0 S
- Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
-@@ -170,7 +170,7 @@
- 10:00 AT AE%sT
-
- # Victoria
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AV 1972 only - Feb lastSun 2:00s 0 S
- Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
-@@ -191,7 +191,7 @@
- 10:00 AV AE%sT
-
- # New South Wales
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
- Rule AN 1972 only - Feb 27 2:00s 0 S
- Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
-@@ -220,7 +220,7 @@
- 9:30 AS AC%sT
-
- # Lord Howe Island
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
- Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
- Rule LH 1985 only - Oct lastSun 2:00 0:30 -
-@@ -275,8 +275,9 @@
- 10:00 Aus AE%sT 1919 Apr 1 0:00s
- 0 - -00 1948 Mar 25
- 10:00 Aus AE%sT 1967
-- 10:00 AT AE%sT 2010 Apr 4 3:00
-- 11:00 - +11
-+ 10:00 AT AE%sT 2010
-+ 10:00 1:00 AEDT 2011
-+ 10:00 AT AE%sT
-
- # Christmas
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -403,7 +404,7 @@
- # From Michael Deckers (2019-08-06):
- #
https://www.laws.gov.fj/LawsAsMade/downloadfile/848
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
- Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
- Rule Fiji 2009 only - Nov 29 2:00 1:00 -
-@@ -432,7 +433,7 @@
-
- # Guam
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #
http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
- #
http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savi...
- Rule Guam 1959 only - Jun 27 2:00 1:00 D
-@@ -543,7 +544,7 @@
- 12:00 - +12
-
- # New Caledonia
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
- Rule NC 1978 1979 - Feb 27 0:00 0 -
- Rule NC 1996 only - Dec 1 2:00s 1:00 -
-@@ -558,7 +559,7 @@
-
- # New Zealand
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NZ 1927 only - Nov 6 2:00 1:00 S
- Rule NZ 1928 only - Mar 4 2:00 0 M
- Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
-@@ -610,7 +611,7 @@
-
- # Cook Is
- # From Shanks & Pottenger:
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cook 1978 only - Nov 12 0:00 0:30 -
- Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
- Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
-@@ -755,7 +756,7 @@
- # That web page currently lists transitions for 2012/3 and 2013/4.
- # Assume the pattern instituted in 2012 will continue indefinitely.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule WS 2010 only - Sep lastSun 0:00 1 -
- Rule WS 2011 only - Apr Sat>=1 4:00 0 -
- Rule WS 2011 only - Sep lastSat 3:00 1 -
-@@ -799,7 +800,7 @@
- 13:00 - +13
-
- # Tonga
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
- Rule Tonga 2000 only - Mar 19 2:00s 0 -
- Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
-@@ -880,7 +881,7 @@
-
-
- # Vanuatu
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Vanuatu 1983 only - Sep 25 0:00 1:00 -
- Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 -
- Rule Vanuatu 1984 only - Oct 23 0:00 1:00 -
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/europe
openjdk/jdk/test/sun/util/calendar/zi/tzdata/europe
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/europe
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/europe
-@@ -411,7 +411,7 @@
- #
http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
- #
http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Summer Time Act, 1916
- Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
- Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
-@@ -552,7 +552,7 @@
- # The following is like GB-Eire and EU, except with standard time in
- # summer and negative daylight saving time in winter. It is for when
- # negative SAVE values are used.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- #Rule Eire 1971 only - Oct 31 2:00u -1:00 -
- #Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
- #Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
-@@ -589,7 +589,7 @@
- # predecessor organization, the European Communities.
- # For brevity they are called "EU rules" elsewhere in this file.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
- Rule EU 1977 only - Sep lastSun 1:00u 0 -
- Rule EU 1978 only - Oct 1 1:00u 0 -
-@@ -629,13 +629,13 @@
- # corrected in version 2008d). The circumstantial evidence is simply the
- # tz database itself, as seen below:
- #
--# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
-+# Zone Europe/Paris ...
- # 0:00 France WE%sT 1945 Sep 16 3:00
- #
--# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
-+# Zone Europe/Monaco ...
- # 0:00 France WE%sT 1945 Sep 16 3:00
- #
--# Zone Europe/Belgrade 1:22:00 - LMT 1884
-+# Zone Europe/Belgrade ...
- # 1:00 1:00 CEST 1945 Sep 16 2:00s
- #
- # Rule France 1945 only - Sep 16 3:00 0 -
-@@ -681,7 +681,7 @@
- #
- # The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
- #
- # Decree No. 142 (1917-12-22)
http://istmat.info/node/28137
-@@ -795,7 +795,7 @@
-
-
- # Albania
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Albania 1940 only - Jun 16 0:00 1:00 S
- Rule Albania 1942 only - Nov 2 3:00 0 -
- Rule Albania 1943 only - Mar 29 2:00 1:00 S
-@@ -849,7 +849,7 @@
- # In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
- # Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Austria 1920 only - Apr 5 2:00s 1:00 S
- Rule Austria 1920 only - Sep 13 2:00s 0 -
- Rule Austria 1946 only - Apr 14 2:00s 1:00 S
-@@ -936,7 +936,7 @@
- # The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
- # Assume Brussels switched to WET in 1918 when the armistice took effect.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
- Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
- Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
-@@ -996,7 +996,7 @@
- # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
- # EETDST -> EET is in 04:00 Local time in last Sunday of October
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Bulg 1979 only - Mar 31 23:00 1:00 S
- Rule Bulg 1979 only - Oct 1 1:00 0 -
- Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
-@@ -1028,7 +1028,7 @@
- # We know of no English-language name for historical Czech winter time;
- # abbreviate it as "GMT", as it happened to be GMT.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
- Rule Czech 1945 only - Oct 1 2:00s 0 -
- Rule Czech 1946 only - May 6 2:00s 1:00 S
-@@ -1084,7 +1084,7 @@
- # Hence the "02:00" of the 1980 law refers to standard time, not
- # wall-clock time, and so the EU rules were in effect in 1980.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Denmark 1916 only - May 14 23:00 1:00 S
- Rule Denmark 1916 only - Sep 30 23:00 0 -
- Rule Denmark 1940 only - May 15 0:00 1:00 S
-@@ -1186,7 +1186,7 @@
- #
http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-t...
- # It is their only National Park.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
- Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
- Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
-@@ -1317,7 +1317,7 @@
- # From Paul Eggert (2014-06-14):
- # Go with Oja over Shanks.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Finland 1942 only - Apr 2 24:00 1:00 S
- Rule Finland 1942 only - Oct 4 1:00 0 -
- Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
-@@ -1349,10 +1349,58 @@
- # Françoise Gauquelin, Problèmes de l'heure résolus en astrologie,
- # Guy Trédaniel, Paris 1987
-
-+# From Michael Deckers (2020-06-11):
-+# the law of 1891 <
https://gallica.bnf.fr/ark:/12148/bpt6k64415343.texteImage>
-+# was published on 1891-03-15, so it could only take force on 1891-03-16.
-+
-+# From Michael Deckers (2020-06-10):
-+# Le Gaulois, 1911-03-11, page 1/6, online at
-+#
https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lh...
-+# ... [ Instantly, all pressure driven clock dials halted... Nine minutes and
-+# twenty-one seconds later the hands resumed their circular motion. ]
-+# There are also precise reports about how the change was prepared in train
-+# stations: all the publicly visible clocks stopped at midnight railway time
-+# (or were covered), only the chief of service had a watch, labeled
-+# "Heure ancienne", that he kept running until it reached 00:04:21, when
-+# he announced "Heure nouvelle". See the "Le Petit Journal
1911-03-11".
-+#
https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom
-+#
-+# From Michael Deckers (2020-06-12):
-+# That "all French clocks stopped" for 00:09:21 is a misreading of French
-+# newspapers; this sort of adjustment applies only to certain
-+# remote-controlled clocks ("pendules pneumatiques", of which there existed
-+# perhaps a dozen in Paris, and which simply could not be set back remotely),
-+# but not to all the clocks in all French towns and villages. For instance,
-+# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2:
-+# only works if legal time was stepped back (was not monotone): ...
-+# [One can observe that children who had been born at midnight less 5
-+# minutes and who had died at midnight of the old time, would turn out to
-+# be dead before being born, time having been set back and having
-+# suppressed 9 minutes and 25 seconds of their existence, that is, more
-+# than they could spend.]
-+#
-+# From Paul Eggert (2020-06-12):
-+# French time in railway stations was legally five minutes behind civil time,
-+# which explains why railway "old time" ran to 00:04:21 instead of to
00:09:21.
-+# The law's text (which Michael Deckers noted is at
-+# <
https://gallica.bnf.fr/ark:/12148/bpt6k2022333z/f2>) says only that
-+# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by
-+# nine minutes and twenty-one seconds, and does not say how the
-+# transition from Paris mean time was to occur.
-+#
-+# tzdb has no way to represent stopped clocks. As the railway practice
-+# was to keep a watch running on "old time" to decide when to restart
-+# the other clocks, this could be modeled as a transition for "old time" at
-+# 00:09:21. However, since the law was ambiguous and clocks outside railway
-+# stations were probably done haphazardly with the popular impression being
-+# that the transition was done at 00:00 "old time", simply leave the time
-+# blank; this causes zic to default to 00:00 "old time" which is good enough.
-+# Do something similar for the 1891-03-16 transition. There are similar
-+# problems in Algiers, Monaco and Tunis.
-
- #
- # Shank & Pottenger seem to use '24:00' ambiguously; resolve it with
Whitman.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule France 1916 only - Jun 14 23:00s 1:00 S
- Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
- Rule France 1917 only - Mar 24 23:00s 1:00 S
-@@ -1412,13 +1460,11 @@
- # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
- Rule France 1976 only - Mar 28 1:00 1:00 S
- Rule France 1976 only - Sep 26 1:00 0 -
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
--# but Howse quotes the actual French legislation as saying 0:09:21.
--# Go with Howse. Howse writes that the time in France was officially based
-+# Howse writes that the time in France was officially based
- # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
-- 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT
-+Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
-+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
- # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
- 0:00 France WE%sT 1940 Jun 14 23:00
- # Le Corre says Paris stuck with occupied-France time after the liberation;
-@@ -1447,7 +1493,7 @@
- # this was equivalent to UT +03, not +04.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Germany 1946 only - Apr 14 2:00s 1:00 S
- Rule Germany 1946 only - Oct 7 2:00s 0 -
- Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
-@@ -1499,7 +1545,7 @@
- 1:00 EU CE%sT
-
- # Greece
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
- Rule Greece 1932 only - Jul 7 0:00 1:00 S
- Rule Greece 1932 only - Sep 1 0:00 0 -
-@@ -1534,38 +1580,69 @@
- 2:00 EU EE%sT
-
- # Hungary
--# From Paul Eggert (2014-07-15):
--# Dates for 1916-1945 are taken from:
--# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945.
--# National Archives of Hungary (2012-10-29).
--#
http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19...
--# This source does not always give times, which are taken from Shanks
--# & Pottenger (which disagree about the dates).
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--Rule Hungary 1918 only - Apr 1 3:00 1:00 S
--Rule Hungary 1918 only - Sep 16 3:00 0 -
--Rule Hungary 1919 only - Apr 15 3:00 1:00 S
--Rule Hungary 1919 only - Nov 24 3:00 0 -
-+
-+# From Michael Deckers (2020-06-09):
-+# an Austrian encyclopedia of railroads of 1913, online at
-+#
http://www.zeno.org/Roell-1912/A/Eisenbahnzeit
-+# says that the switch [to CET] happened on 1890-11-01.
-+
-+# From Géza Nyáry (2020-06-07):
-+# Data for 1918-1983 are based on the archive database of Library Hungaricana.
-+# The dates are collected from original, scanned governmental orders,
-+# bulletins, instructions and public press.
-+# [See URLs below.]
-+
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201
-+Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
-+Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
-+Rule Hungary 1920 only - Apr 5 2:00 1:00 S
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882
- Rule Hungary 1945 only - May 1 23:00 1:00 S
--Rule Hungary 1945 only - Nov 1 0:00 0 -
-+Rule Hungary 1945 only - Nov 1 1:00 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49
- Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
--Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54
-+Rule Hungary 1946 only - Oct 7 2:00 0 -
-+#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?...
-+#
https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128
-+#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?...
-+#
https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64
-+#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
-+#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94
- Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
--Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
--Rule Hungary 1950 only - Oct 23 2:00s 0 -
--Rule Hungary 1954 1955 - May 23 0:00 1:00 S
--Rule Hungary 1954 1955 - Oct 3 0:00 0 -
--Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
--Rule Hungary 1956 only - Sep lastSun 0:00 0 -
--Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
--Rule Hungary 1957 only - Sep lastSun 3:00 0 -
--Rule Hungary 1980 only - Apr 6 1:00 1:00 S
-+Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg...
-+Rule Hungary 1954 only - May 23 0:00 1:00 S
-+Rule Hungary 1954 only - Oct 3 0:00 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg...
-+Rule Hungary 1955 only - May 22 2:00 1:00 S
-+Rule Hungary 1955 only - Oct 2 3:00 0 -
-+#
https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0
-+#
https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6
-+#
https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120
-+#
https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143
-+Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
-+Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg...
-+Rule Hungary 1980 only - Apr 6 0:00 1:00 S
-+Rule Hungary 1980 only - Sep 28 1:00 0 -
-+#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg...
-+#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85
-+Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
-+Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
-+#
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
-+Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
- 1:00 C-Eur CE%sT 1918
-- 1:00 Hungary CE%sT 1941 Apr 8
-+#
https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204
-+ 1:00 Hungary CE%sT 1941 Apr 7 23:00
- 1:00 C-Eur CE%sT 1945
-- 1:00 Hungary CE%sT 1980 Sep 28 2:00s
-+ 1:00 Hungary CE%sT 1984
- 1:00 EU CE%sT
-
- # Iceland
-@@ -1601,7 +1678,7 @@
- # The information below is taken from the 1988 Almanak; see
- #
http://www.almanak.hi.is/klukkan.html
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Iceland 1917 1919 - Feb 19 23:00 1:00 -
- Rule Iceland 1917 only - Oct 21 1:00 0 -
- Rule Iceland 1918 1919 - Nov 16 1:00 0 -
-@@ -1693,7 +1770,7 @@
- # to 1944-06-04; although Rome was an open city during this period, it
- # was effectively controlled by Germany.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Italy 1916 only - Jun 3 24:00 1:00 S
- Rule Italy 1916 1917 - Sep 30 24:00 0 -
- Rule Italy 1917 only - Mar 31 24:00 1:00 S
-@@ -1803,7 +1880,7 @@
- # urged Lithuania and Estonia to adopt a similar time policy, but it
- # appears that they will not do so....
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
- Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
-
-@@ -1896,7 +1973,7 @@
- # Luxembourg
- # Whitman disagrees with most of these dates in minor ways;
- # go with Shanks & Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Lux 1916 only - May 14 23:00 1:00 S
- Rule Lux 1916 only - Oct 1 1:00 0 -
- Rule Lux 1917 only - Apr 28 23:00 1:00 S
-@@ -1937,7 +2014,7 @@
- # From Paul Eggert (2016-10-21):
- # Assume 1900-1972 was like Rome, overriding Shanks.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Malta 1973 only - Mar 31 0:00s 1:00 S
- Rule Malta 1973 only - Sep 29 0:00s 0 -
- Rule Malta 1974 only - Apr 21 0:00s 1:00 S
-@@ -2010,7 +2087,7 @@
- # says the 2014-03-30 spring-forward transition was at 02:00 local time.
- # Guess that since 1997 Moldova has switched one hour before the EU.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
- Rule Moldova 1997 max - Oct lastSun 3:00 0 -
-
-@@ -2028,11 +2105,24 @@
- 2:00 Moldova EE%sT
-
- # Monaco
--# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
--# more precise 0:09:21.
-+#
-+# From Michael Deckers (2020-06-12):
-+# In the "Journal de Monaco" of 1892-05-24, online at
-+#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c6...
-+# we read: ...
-+# [In virtue of a Sovereign Ordinance of the May 13 of the current [year],
-+# legal time in the Principality will be set to, from the date of June 1,
-+# 1892 onwards, to the meridian of Paris, as in France.]
-+# In the "Journal de Monaco" of 1911-03-28, online at
-+#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74...
-+# we read an ordinance of 1911-03-16: ...
-+# [Legal time in the Principality will be set, from the date of promulgation
-+# of the present ordinance, to legal time in France.... Consequently, legal
-+# time will be retarded by 9 minutes and 21 seconds.]
-+#
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
--Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
-- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
-+Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1
-+ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time
- 0:00 France WE%sT 1945 Sep 16 3:00
- 1:00 France CE%sT 1977
- 1:00 EU CE%sT
-@@ -2080,7 +2170,7 @@
- # The data entries before 1945 are taken from
- #
https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time
- Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time
- Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
-@@ -2117,7 +2207,7 @@
- # Norway
- #
http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
- # Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Norway 1916 only - May 22 1:00 1:00 S
- Rule Norway 1916 only - Sep 30 0:00 0 -
- Rule Norway 1945 only - Apr 2 2:00s 1:00 S
-@@ -2186,7 +2276,7 @@
- # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
- # <
http://www.wbc.poznan.pl/publication/32156> pp 1-2.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Poland 1918 1919 - Sep 16 2:00s 0 -
- Rule Poland 1919 only - Apr 15 2:00s 1:00 S
- Rule Poland 1944 only - Apr 3 2:00s 1:00 S
-@@ -2257,7 +2347,7 @@
- # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
- # harmonized with EU rules), and that they stayed +0:00 that winter.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
- # done every year, depending on what Spain did, because of railroad schedules.
- # Go with Shanks & Pottenger.
-@@ -2370,7 +2460,7 @@
- # assume that Romania and Moldova switched to EU rules in 1997,
- # the same year as Bulgaria.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Romania 1932 only - May 21 0:00s 1:00 S
- Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
- Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
-@@ -3468,14 +3558,14 @@
- # fallback transition from the next day's 00:59... to 00:00.
-
- # From Michael Deckers (2016-12-15):
--# The Royal Decree of 1900-06-26 quoted by Planesas, online at
-+# The Royal Decree of 1900-07-26 quoted by Planesas, online at
- #
https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf
- # says in its article 5 (my translation):
- # These dispositions will enter into force beginning with the
- # instant at which, according to the time indicated in article 1,
- # the 1st day of January of 1901 will begin.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Spain 1918 only - Apr 15 23:00 1:00 S
- Rule Spain 1918 1919 - Oct 6 24:00s 0 -
- Rule Spain 1919 only - Apr 6 23:00 1:00 S
-@@ -3612,7 +3702,7 @@
- # By the end of the 18th century clocks and watches became commonplace
- # and their performance improved enormously. Communities began to keep
- # mean time in preference to apparent time - Geneva from 1780 ....
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # From Whitman (who writes "Midnight?"):
- # Rule Swiss 1940 only - Nov 2 0:00 1:00 S
- # Rule Swiss 1940 only - Dec 31 0:00 0 -
-@@ -3699,7 +3789,7 @@
- # 1853-07-16, though it probably occurred at some other date in Zurich, and
- # legal civil time probably changed at still some other transition date.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
- Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -3848,7 +3938,7 @@
- # Although Google Translate misfires on that source, it looks like
- # Turkey reversed last month's decision, and so will stay at +03.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Turkey 1916 only - May 1 0:00 1:00 S
- Rule Turkey 1916 only - Oct 1 0:00 0 -
- Rule Turkey 1920 only - Mar 28 0:00 1:00 S
-@@ -4006,7 +4096,7 @@
- 2:00 1:00 EEST 1991 Sep 29 3:00
- 2:00 E-Eur EE%sT 1995
- 2:00 EU EE%sT
--# Ruthenia used CET 1990/1991.
-+# Transcarpathia used CET 1990/1991.
- # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
- # "Uzhgorod" is more common in English.
- Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
openjdk/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
-@@ -91,11 +91,11 @@
- # Any additional leap seconds will come after this.
- # This Expires line is commented out for now,
- # so that pre-2020a zic implementations do not reject this file.
--#Expires 2020 Dec 28 00:00:00
-+#Expires 2021 Jun 28 00:00:00
-
- # POSIX timestamps for the data in this file:
- #updated 1467936000 (2016-07-08 00:00:00 UTC)
--#expires 1609113600 (2020-12-28 00:00:00 UTC)
-+#expires 1624838400 (2021-06-28 00:00:00 UTC)
-
--# Updated through IERS Bulletin C59
--# File expires on: 28 December 2020
-+# Updated through IERS Bulletin C60
-+# File expires on: 28 June 2021
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/northamerica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/northamerica
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/northamerica
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/northamerica
-@@ -193,7 +193,7 @@
- # U.S. government action. So even though the "US" rules have changed
- # in the latest release, other countries won't be affected.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
- Rule US 1918 1919 - Oct lastSun 2:00 0 S
- Rule US 1942 only - Feb 9 2:00 1:00 W # War
-@@ -370,7 +370,7 @@
- # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the
- # nearest second.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
- Rule NYC 1920 only - Oct lastSun 2:00 0 S
- Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
-@@ -454,7 +454,7 @@
- # The Tennessean 2007-05-11, republished 2015-04-06.
- #
https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seige...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Chicago 1920 only - Jun 13 2:00 1:00 D
- Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
- Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
-@@ -523,7 +523,7 @@
- # El Paso Times. 2018-10-24 06:40 -06.
- #
https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoan...
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
- Rule Denver 1920 only - Oct lastSun 2:00 0 S
- Rule Denver 1921 only - May 22 2:00 0 S
-@@ -576,7 +576,7 @@
- #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&co...
- #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&co...
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule CA 1948 only - Mar 14 2:01 1:00 D
- Rule CA 1949 only - Jan 1 2:00 0 S
- Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
-@@ -934,7 +934,7 @@
- # going to switch from Central to Eastern Time on March 11, 2007....
- #
http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/7...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
- Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
- Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
-@@ -953,7 +953,7 @@
- #
- # Eastern Crawford County, Indiana, left its clocks alone in 1974,
- # as well as from 1976 through 2005.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
- Rule Marengo 1951 only - Sep lastSun 2:00 0 S
- Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
-@@ -972,7 +972,7 @@
- # Daviess, Dubois, Knox, and Martin Counties, Indiana,
- # switched from eastern to central time in April 2006, then switched back
- # in November 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
- Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
- Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
-@@ -997,7 +997,7 @@
- # The Indianapolis News, Friday 27 October 1967 states that Perry County
- # returned to CST. It went again to EST on 27 April 1969, as documented by the
- # Indianapolis star of Saturday 26 April.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Perry 1955 only - May 1 0:00 1:00 D
- Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
- Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
-@@ -1014,7 +1014,7 @@
- #
- # Pike County, Indiana moved from central to eastern time in 1977,
- # then switched back in 2006, then switched back again in 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Pike 1955 only - May 1 0:00 1:00 D
- Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
- Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
-@@ -1035,7 +1035,7 @@
- # An article on page A3 of the Sunday, 1991-10-27 Washington Post
- # notes that Starke County switched from Central time to Eastern time as of
- # 1991-10-27.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
- Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
- Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
-@@ -1052,7 +1052,7 @@
- #
- # Pulaski County, Indiana, switched from eastern to central time in
- # April 2006 and then switched back in March 2007.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
- Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
- Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
-@@ -1094,7 +1094,7 @@
- #
- # Part of Kentucky left its clocks alone in 1974.
- # This also includes Clark, Floyd, and Harrison counties in Indiana.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Louisville 1921 only - May 1 2:00 1:00 D
- Rule Louisville 1921 only - Sep 1 2:00 0 S
- Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
-@@ -1208,7 +1208,7 @@
- # election Michigan voters narrowly repealed DST, effective 1969.
- #
- # Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
- Rule Detroit 1948 only - Sep lastSun 2:00 0 S
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1225,7 +1225,7 @@
- #
- # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
- # switched from EST to CST/CDT in 1973.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER
- Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
- Rule Menominee 1946 only - Sep lastSun 2:00 0 S
- Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
-@@ -1395,7 +1395,7 @@
- # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
- # than Thursday) in all Canadian rulesets.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Canada 1918 only - Apr 14 2:00 1:00 D
- Rule Canada 1918 only - Oct 27 2:00 0 S
- Rule Canada 1942 only - Feb 9 2:00 1:00 W # War
-@@ -1418,7 +1418,7 @@
- # that follows the rules is the southeast corner, including Port Hope
- # Simpson and Mary's Harbour, but excluding, say, Black Tickle.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule StJohns 1917 only - Apr 8 2:00 1:00 D
- Rule StJohns 1917 only - Sep 17 2:00 0 S
- # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
-@@ -1520,7 +1520,7 @@
- # bill say that it is "accommodating the customs and practices" of those
- # regions, which suggests that they have always been in-line with Halifax.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Halifax 1916 only - Apr 1 0:00 1:00 D
- Rule Halifax 1916 only - Oct 1 0:00 0 S
- Rule Halifax 1920 only - May 9 0:00 1:00 D
-@@ -1586,7 +1586,7 @@
- # clear that this was the case since at least 1993.
- # For now, assume it started in 1993.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
- Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
- Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
-@@ -1795,7 +1795,7 @@
- # With some exceptions, the use of daylight saving may be said to be limited
- # to those cities and towns lying between Quebec city and Windsor, Ont.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Toronto 1919 only - Mar 30 23:30 1:00 D
- Rule Toronto 1919 only - Oct 26 0:00 0 S
- Rule Toronto 1920 only - May 2 2:00 1:00 D
-@@ -1893,7 +1893,7 @@
- # starting 1966. Since 02:00s is clearly correct for 1967 on, assume
- # it was also 02:00s in 1966.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Winn 1916 only - Apr 23 0:00 1:00 D
- Rule Winn 1916 only - Sep 17 0:00 0 S
- Rule Winn 1918 only - Apr 14 2:00 1:00 D
-@@ -1984,7 +1984,7 @@
- # long and rather painful to read.
- #
http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Regina 1918 only - Apr 14 2:00 1:00 D
- Rule Regina 1918 only - Oct 27 2:00 0 S
- Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
-@@ -2034,7 +2034,7 @@
- # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
- # ISBN 978-1459739123.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
- Rule Edm 1918 only - Oct 27 2:00 0 S
- Rule Edm 1919 only - May 27 2:00 0 S
-@@ -2143,7 +2143,7 @@
- #
https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-jul...
- # We have no further details, so omit them for now.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Vanc 1918 only - Apr 14 2:00 1:00 D
- Rule Vanc 1918 only - Oct 27 2:00 0 S
- Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
-@@ -2472,7 +2472,19 @@
- # consistency with nearby Dawson Creek, Creston, and Fort Nelson.
- #
https://yukon.ca/en/news/yukon-end-seasonal-time-change
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# From Andrew G. Smith (2020-09-24):
-+# Yukon has completed its regulatory change to be on UTC -7 year-round....
-+#
http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf
-+# What we have done is re-defined Yukon Standard Time, as we are
-+# authorized to do under section 33 of our Interpretation Act:
-+#
http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf
-+#
-+# From Paul Eggert (2020-09-24):
-+# tzdb uses the obsolete YST abbreviation for standard time in Yukon through
-+# about 1970, and uses PST for standard time in Yukon since then. Consistent
-+# with that, use MST for -07, the new standard time in Yukon effective Nov. 1.
-+
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
- Rule NT_YK 1918 only - Oct 27 2:00 0 S
- Rule NT_YK 1919 only - May 25 2:00 1:00 D
-@@ -2526,12 +2538,12 @@
- Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
- -9:00 NT_YK Y%sT 1967 May 28 0:00
- -8:00 NT_YK P%sT 1980
-- -8:00 Canada P%sT 2020 Mar 8 2:00
-+ -8:00 Canada P%sT 2020 Nov 1
- -7:00 - MST
- Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
- -9:00 NT_YK Y%sT 1973 Oct 28 0:00
- -8:00 NT_YK P%sT 1980
-- -8:00 Canada P%sT 2020 Mar 8 2:00
-+ -8:00 Canada P%sT 2020 Nov 1
- -7:00 - MST
-
-
-@@ -2746,7 +2758,7 @@
- # 5- The islands, reefs and keys shall take their timezone from the
- # longitude they are located at.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Mexico 1939 only - Feb 5 0:00 1:00 D
- Rule Mexico 1939 only - Jun 25 0:00 0 S
- Rule Mexico 1940 only - Dec 9 0:00 1:00 D
-@@ -2951,7 +2963,7 @@
- # rules to sync with the U.S. starting in 2007....
- #
http://www.jonesbahamas.com/?c=45&a=10412
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
- Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -2963,7 +2975,7 @@
-
- # For 1899 Milne gives -3:58:29.2; round that.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Barb 1977 only - Jun 12 2:00 1:00 D
- Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
- Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
-@@ -2976,7 +2988,7 @@
-
- # Belize
- # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530
- Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST
- Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
-@@ -3013,7 +3025,7 @@
-
- # Milne gives -5:36:13.3 as San José mean time; round to nearest.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
- Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
- Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
-@@ -3187,7 +3199,7 @@
- # From Paul Eggert (2012-11-03):
- # For now, assume the future rule is first Sunday in November.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Cuba 1928 only - Jun 10 0:00 1:00 D
- Rule Cuba 1928 only - Oct 10 0:00 0 S
- Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
-@@ -3256,7 +3268,7 @@
- # decided to revert.
-
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule DR 1966 only - Oct 30 0:00 1:00 EDT
- Rule DR 1967 only - Feb 28 0:00 0 EST
- Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
-@@ -3273,7 +3285,7 @@
-
- # El Salvador
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
- Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
- # There are too many San Salvadors elsewhere, so use America/El_Salvador
-@@ -3302,7 +3314,7 @@
- # (2006-04-19), says DST ends at 24:00. See
- #
http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Hora...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Guat 1973 only - Nov 25 0:00 1:00 D
- Rule Guat 1974 only - Feb 24 0:00 0 S
- Rule Guat 1983 only - May 21 0:00 1:00 D
-@@ -3383,7 +3395,7 @@
- # I have not been able to find a more authoritative source:
- #
https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-hai...
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Haiti 1983 only - May 8 0:00 1:00 D
- Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
- Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
-@@ -3431,7 +3443,7 @@
- #
http://www.laprensahn.com/pais_nota.php?id04962=7386
- # So it seems that Honduras will not enter DST this year....
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
- Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
- Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
-@@ -3522,7 +3534,7 @@
- # The natural sun time is restored in all the national territory, in that the
- # time is returned one hour at 01:00 am of October 1 of 2006.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
- Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
- Rule Nic 2005 only - Apr 10 0:00 1:00 D
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
openjdk/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
-deleted file mode 100644
---- openjdk/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
-+++ /dev/null
-@@ -1,52 +0,0 @@
--#
--# 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. Oracle designates this
--# particular file as subject to the "Classpath" exception as provided
--# by Oracle in the LICENSE file that accompanied this code.
--#
--# 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.
--#
--# tzdb data for proposed US election time (this file is obsolete)
--
--# This file is in the public domain, so clarified as of
--# 2009-05-17 by Arthur David Olson.
--
--# From Arthur David Olson (1989-04-05):
--# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
--# establishing "Pacific Presidential Election Time"; it was not acted on
--# by the Senate or signed into law by the President.
--# You might want to change the "PE" (Presidential Election) below to
--# "Q" (Quadrennial) to maintain three-character zone abbreviations.
--# If you're really conservative, you might want to change it to "D".
--# Avoid "L" (Leap Year), which won't be true in 2100.
--
--# If Presidential Election Time is ever established, replace "XXXX" below
--# with the year the law takes effect and uncomment the "##" lines.
--
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
--## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
--## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
--## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
--
--# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
--## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
--## -8:00 Twilite P%sT
--
--# For now...
--Link America/Los_Angeles US/Pacific-New ##
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/southamerica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/southamerica
---- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/southamerica
-+++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/southamerica
-@@ -71,7 +71,7 @@
- # I am sending modifications to the Argentine time zone table...
- # AR was chosen because they are the ISO letters that represent Argentina.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Arg 1930 only - Dec 1 0:00 1:00 -
- Rule Arg 1931 only - Apr 1 0:00 0 -
- Rule Arg 1931 only - Oct 15 0:00 1:00 -
-@@ -792,7 +792,7 @@
- # From Paul Eggert (2013-10-17):
- # For now, assume western Amazonas will change as well.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- # Decree 20,466 <
http://pcdsh01.on.br/HV20466.htm> (1931-10-01)
- # Decree 21,896 <
http://pcdsh01.on.br/HV21896.htm> (1932-01-10)
- Rule Brazil 1931 only - Oct 3 11:00 1:00 -
-@@ -1281,7 +1281,7 @@
- # For now, assume that they will not revert,
- # since they have extended the expiration date once already.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
- Rule Chile 1928 1932 - Apr 1 0:00 0 -
- Rule Chile 1968 only - Nov 3 4:00u 1:00 -
-@@ -1381,7 +1381,7 @@
- # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
- # "A variation of fifteen minutes in the public clocks of Bogota is not
rare."
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule CO 1992 only - May 3 0:00 1:00 -
- Rule CO 1993 only - Apr 4 0:00 0 -
- # Zone NAME STDOFF RULES FORMAT [UNTIL]
-@@ -1441,7 +1441,7 @@
- # (Not one step back), the clocks went back in 1993 and the experiment was not
- # repeated. For now, assume transitions were at 00:00 local time country-wide.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
- Rule Ecuador 1993 only - Feb 5 0:00 0 -
- #
-@@ -1535,7 +1535,7 @@
- # For now we will assume permanent -03 for the Falklands
- # until advised differently (to apply for 2012 and beyond, after the 2011
- # experiment was apparently successful.)
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
- Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
- Rule Falk 1939 only - Oct 1 0:00 1:00 -
-@@ -1581,7 +1581,7 @@
- # No time of the day is established for the adjustment, so people normally
- # adjust their clocks at 0 hour of the given dates.
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Para 1975 1988 - Oct 1 0:00 1:00 -
- Rule Para 1975 1978 - Mar 1 0:00 0 -
- Rule Para 1979 1991 - Apr 1 0:00 0 -
-@@ -1674,7 +1674,7 @@
- # From Paul Eggert (2006-03-22):
- # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
-
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Peru 1938 only - Jan 1 0:00 1:00 -
- Rule Peru 1938 only - Apr 1 0:00 0 -
- Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
-@@ -1770,7 +1770,7 @@
- #
https://www.impo.com.uy/diariooficial/1926/03/10/2
- #
https://www.impo.com.uy/diariooficial/1926/03/18/2
- #
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-+# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
- Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
- Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
- # From Tim Parenti (2018-02-15):
-diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/systemv
openjdk/jdk/test/sun/util/calendar/zi/tzdata/systemv
-deleted file mode 100644
---- openjdk/jdk/test/sun/util/calendar/zi/tzdata/systemv
-+++ /dev/null
-@@ -1,62 +0,0 @@
--#
--# 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. Oracle designates this
--# particular file as subject to the "Classpath" exception as provided
--# by Oracle in the LICENSE file that accompanied this code.
--#
--# 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.
--#
--# tzdb data for System V rules (this file is obsolete)
--
--# This file is in the public domain, so clarified as of
--# 2009-05-17 by Arthur David Olson.
--
--# Old rules, should the need arise.
--# No attempt is made to handle Newfoundland, since it cannot be expressed
--# using the System V "TZ" scheme (half-hour offset), or anything outside
--# North America (no support for non-standard DST start/end dates), nor
--# the changes in the DST rules in the US after 1976 (which occurred after
--# the old rules were written).
--#
--# If you need the old rules, uncomment ## lines.
--# Compile this *without* leap second correction for true conformance.
--
--# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
--Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
--Rule SystemV min 1973 - Oct lastSun 2:00 0 S
--Rule SystemV 1974 only - Jan 6 2:00 1:00 D
--Rule SystemV 1974 only - Nov lastSun 2:00 0 S
--Rule SystemV 1975 only - Feb 23 2:00 1:00 D
--Rule SystemV 1975 only - Oct lastSun 2:00 0 S
--Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
--Rule SystemV 1976 max - Oct lastSun 2:00 0 S
--
--# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
--## Zone SystemV/AST4ADT -4:00 SystemV A%sT
--## Zone SystemV/EST5EDT -5:00 SystemV E%sT
--## Zone SystemV/CST6CDT -6:00 SystemV C%sT
--## Zone SystemV/MST7MDT -7:00 SystemV M%sT
--## Zone SystemV/PST8PDT -8:00 SystemV P%sT
--## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
--## Zone SystemV/AST4 -4:00 - AST
--## Zone SystemV/EST5 -5:00 - EST
--## Zone SystemV/CST6 -6:00 - CST
--## Zone SystemV/MST7 -7:00 - MST
--## Zone SystemV/PST8 -8:00 - PST
--## Zone SystemV/YST9 -9:00 - YST
--## Zone SystemV/HST10 -10:00 - HST
diff --git
a/pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
b/pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
deleted file mode 100644
index d1e9576..0000000
---
a/pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1529475043 -3600
-# Wed Jun 20 07:10:43 2018 +0100
-# Node ID f6341f4635dacb56678264d29a88cd052b74036b
-# Parent 30520d5018b509b0ae68f5fcc9a5c540e3e5b2de
-PR3601: Fix additional -Wreturn-type issues introduced by 8061651
-
-diff --git openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
openjdk/hotspot/src/share/vm/prims/jvm.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
-+++ openjdk/hotspot/src/share/vm/prims/jvm.cpp
-@@ -835,7 +835,7 @@
- JVM_ENTRY(jboolean, JVM_KnownToNotExist(JNIEnv *env, jobject loader, const char
*classname))
- JVMWrapper("JVM_KnownToNotExist");
- #if INCLUDE_CDS
-- return ClassLoaderExt::known_to_not_exist(env, loader, classname, CHECK_(false));
-+ return ClassLoaderExt::known_to_not_exist(env, loader, classname, THREAD);
- #else
- return false;
- #endif
-@@ -845,7 +845,7 @@
- JVM_ENTRY(jobjectArray, JVM_GetResourceLookupCacheURLs(JNIEnv *env, jobject loader))
- JVMWrapper("JVM_GetResourceLookupCacheURLs");
- #if INCLUDE_CDS
-- return ClassLoaderExt::get_lookup_cache_urls(env, loader, CHECK_NULL);
-+ return ClassLoaderExt::get_lookup_cache_urls(env, loader, THREAD);
- #else
- return NULL;
- #endif
-@@ -855,7 +855,7 @@
- JVM_ENTRY(jintArray, JVM_GetResourceLookupCache(JNIEnv *env, jobject loader, const char
*resource_name))
- JVMWrapper("JVM_GetResourceLookupCache");
- #if INCLUDE_CDS
-- return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, CHECK_NULL);
-+ return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, THREAD);
- #else
- return NULL;
- #endif
diff --git a/rh1750419-redhat_alt_java.patch b/rh1750419-redhat_alt_java.patch
index b3cbff8..4789f0b 100644
--- a/rh1750419-redhat_alt_java.patch
+++ b/rh1750419-redhat_alt_java.patch
@@ -1,11 +1,11 @@
-diff -r 25e94aa812b2 make/CompileLaunchers.gmk
---- openjdk/jdk/make/CompileLaunchers.gmk Wed Feb 05 12:20:36 2020 -0300
-+++ openjdk/jdk/make/CompileLaunchers.gmk Tue Jun 02 17:15:28 2020 +0100
-@@ -234,6 +234,21 @@
+diff --git openjdk.orig/jdk/make/CompileLaunchers.gmk
openjdk/jdk/make/CompileLaunchers.gmk
+--- openjdk.orig/jdk/make/CompileLaunchers.gmk
++++ openjdk/jdk/make/CompileLaunchers.gmk
+@@ -255,6 +255,33 @@
+ endif
+ endif
- BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX)
-
-+#Wno-error=cpp is present to allow commented warning in ifdef part of main.c
++# -Wno-error=cpp is present to allow commented warning in ifdef part of main.c
+$(eval $(call SetupLauncher,alt-java, \
+ -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA -Wno-error=cpp,,,user32.lib
comctl32.lib, \
+ $(JDK_OUTPUTDIR)/objs/jli_static.lib, $(JAVA_RC_FLAGS), \
@@ -16,16 +16,29 @@ diff -r 25e94aa812b2 make/CompileLaunchers.gmk
+ $(RM) $@
+ $(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX) $@
+
++$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT):
$(BUILD_LAUNCHER_alt-java)
++ $(MKDIR) -p $(@D)
++ $(RM) $@
++ $(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT) $@
++
+ifeq ($(OPENJDK_TARGET_OS), linux)
+ BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX)
++ ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
++ ifneq ($(POST_STRIP_CMD), )
++ ifneq ($(STRIP_POLICY), no_strip)
++ BUILD_LAUNCHERS +=
$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT)
++ endif
++ endif
++ endif
+endif
+
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupLauncher,javaw, \
-DJAVAW -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib, \
-diff -r 25e94aa812b2 src/share/bin/alt_main.h
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/src/share/bin/alt_main.h Tue Jun 02 17:15:28 2020 +0100
+diff --git openjdk.orig/jdk/src/share/bin/alt_main.h
openjdk/jdk/src/share/bin/alt_main.h
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/bin/alt_main.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
@@ -100,9 +113,9 @@ diff -r 25e94aa812b2 src/share/bin/alt_main.h
+}
+
+#endif // REDHAT_ALT_JAVA
-diff -r 25e94aa812b2 src/share/bin/main.c
---- openjdk/jdk/src/share/bin/main.c Wed Feb 05 12:20:36 2020 -0300
-+++ openjdk/jdk/src/share/bin/main.c Tue Jun 02 17:15:28 2020 +0100
+diff --git openjdk.orig/jdk/src/share/bin/main.c openjdk/jdk/src/share/bin/main.c
+--- openjdk.orig/jdk/src/share/bin/main.c
++++ openjdk/jdk/src/share/bin/main.c
@@ -32,6 +32,14 @@
#include "defines.h"
diff --git a/sources b/sources
index 2b4888c..76a2226 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01-4curve.tar.xz) =
600f79f2f2157ca818c34860611a69a5000c6d8387ea068b3b8a534650f0d9558034d1a6b431d110e62cee533abee1fc25e2e2802baba2950055ea6324faf772
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b01-4curve.tar.xz) =
b37ee8f0e12acb717e31a1e6944377ace10a42e2dd2dd77a8c9328c1e9501cf92b5cc50f1a80467092a540e6de96dd00639e0cb0fd223a228807095c5fbc64b9
commit 23664c3b90063c7730e54f0ee8290343fb88fab2
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Dec 22 10:57:29 2020 +0100
fixed missing condition for fastdebug packages being counted as debug ones
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f5c9c18..7b7a97a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,7 +71,7 @@
# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm |
grep bin
# != rpm -ql java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
# similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}
-%define is_release_build() %( if [ "%{?1}" ==
"%{debug_suffix_unquoted}" ]; then echo "0" ; else echo "1";
fi )
+%define is_release_build() %( if [ "%{?1}" ==
"%{debug_suffix_unquoted}" -o "%{?1}" ==
"%{fastdebug_suffix_unquoted}" ]; then echo "0" ; else echo
"1"; fi )
# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk
stops to be an techpreview, move it to 1
# as sytem JDK, we mean any JDK which can run whole system java stack without issues
(like bytecode issues, module issues, dependencies...)
@@ -289,7 +289,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 5
+%global rpmrelease 6
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2606,6 +2606,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Dec 22 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-6
+- fixed missing condition for fastdebug packages being counted as debug ones
+
* Mon Dec 21 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-5
- Enable JFR on x86, now we have JDK-8252096: Shenandoah: adjust SerialPageShiftCount for
x86_32 and JFR
commit 8a8ab814be43acd6cdc1e58212475cb2d79392a9
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Dec 21 15:53:52 2020 +0000
Enable JFR on x86, now we have JDK-8252096: Shenandoah: adjust SerialPageShiftCount
for x86_32 and JFR
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 71c719a..f5c9c18 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -96,7 +96,7 @@
# See
https://bugzilla.redhat.com/show_bug.cgi?id=513605
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
-%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+%global jfr_arches %{jit_arches}
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
@@ -289,7 +289,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 5
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2606,6 +2606,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Dec 21 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-5
+- Enable JFR on x86, now we have JDK-8252096: Shenandoah: adjust SerialPageShiftCount for
x86_32 and JFR
+
* Sat Dec 19 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-4
- introduced fastdebug build cycle and subpackages
commit 12a52127ab7ddcb452350514603f8b2790cdfc4e
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Dec 21 09:42:40 2020 +0100
returned license for javadoc as correctly noarch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c00d26a..71c719a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1030,7 +1030,8 @@ exit 0
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+#javadoc is in jdk8 noarch, so also licnese file must be treated like it
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java
@@ -1041,7 +1042,8 @@ exit 0
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+#javadoc is in jdk8 noarch, so also licnese file must be treated like it
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java-zip
commit 66faaa32c37d93c4f61235d1e0f7f647894b687f
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Dec 20 17:51:35 2020 +0100
introduced fastdebug build cycle and subpackages
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4e4cbfc..c00d26a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -4,18 +4,20 @@
#
# Examples:
#
-# Produce release *and* slowdebug builds on x86_64 (default):
+# Produce release, fastdebug *and* slowdebug builds on x86_64 (default):
# $ rpmbuild -ba java-1.8.0-openjdk.spec
#
# Produce only release builds (no slowdebug builds) on x86_64:
-# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
+# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug --without fastdebug
#
# Only produce a release build on x86_64:
-# $ fedpkg mockbuild --without slowdebug
+# $ fedpkg mockbuild --without slowdebug --without fastdebug
#
# Only produce a debug build on x86_64:
# $ fedpkg local --without release
#
+# Enable fastdebug builds by default on relevant arches.
+%bcond_without fastdebug
# Enable slowdebug builds by default on relevant arches.
%bcond_without slowdebug
# Enable release builds by default on relevant arches.
@@ -32,13 +34,16 @@
# See
https://github.com/rpm-software-management/rpm/issues/127 to comments at
"pmatilai commented on Aug 18, 2017"
# (initiated in
https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
%global debug_suffix_unquoted -slowdebug
+%global fastdebug_suffix_unquoted -fastdebug
# quoted one for shell operations
%global debug_suffix "%{debug_suffix_unquoted}"
+%global fastdebug_suffix "%{fastdebug_suffix_unquoted}"
%global normal_suffix ""
-# if you want only debug build but providing java build only normal build but set
normalbuild_parameter
-%global debug_warning This package has full debug on. Install only in need and remove
asap.
+%global debug_warning This package is unoptimised with full debugging. Install only as
needed and remove ASAP.
%global debug_on with full debug on
+%global fastdebug_warning This package is optimised with full debugging. Install only as
needed and remove ASAP.
+%global for_fastdebug_on with minimal debug on
%global for_debug for packages with debug on
%if %{with release}
@@ -48,9 +53,9 @@
%endif
%if %{include_normal_build}
-%global build_loop1 %{normal_suffix}
+%global normal_build %{normal_suffix}
%else
-%global build_loop1 %{nil}
+%global normal_build %{nil}
%endif
# We have hardcoded list of files, which is appearing in alternatives, and in files
@@ -59,8 +64,8 @@
# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_
# TODO - fix those hardcoded lists via single list
-# those files ,must *NOT* be ghosted for *slowdebug* packages
-# FIXME - if you are moving jshell or jlink or simialr, always modify all three sections
+# Those files must *NOT* be ghosted for *slowdebug* packages
+# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
# you can check via headless and devels:
# rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm |
grep bin
@@ -76,17 +81,29 @@
# we need to distinguish between big and little endian PPC64
%global ppc64le ppc64le
%global ppc64be ppc64 ppc64p7
+# Set of architectures which support multiple ABIs
%global multilib_arches %{power64} sparc64 x86_64
-%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which we build debug builds
+%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures with a Just-In-Time (JIT) compiler
+%global jit_arches %{debug_arches}
+# Set of architectures which support SystemTap tapsets
+%global systemtap_arches %{jit_arches}
+%global fastdebug_arches x86_64 ppc64le aarch64
+# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+# Set of architectures which support class data sharing
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
+%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+
# Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
-%ifarch %{jit_arches}
-%ifnarch %{arm}
+%ifarch %{debug_arches}
%global include_debug_build 1
%else
%global include_debug_build 0
@@ -94,42 +111,48 @@
%else
%global include_debug_build 0
%endif
+
+# By default, we build a fastdebug build during main build only on fastdebug
architectures
+%if %{with fastdebug}
+%ifarch %{fastdebug_arches}
+%global include_fastdebug_build 1
%else
-%global include_debug_build 0
+%global include_fastdebug_build 0
+%endif
+%else
+%global include_fastdebug_build 0
%endif
%if %{include_debug_build}
-%global build_loop2 %{debug_suffix}
+%global slowdebug_build %{debug_suffix}
%else
-%global build_loop2 %{nil}
+%global slowdebug_build %{nil}
%endif
-# if you disable both builds, then the build fails
-%global build_loop %{build_loop1} %{build_loop2}
-# note: that order: normal_suffix debug_suffix, in case of both enabled
-# is expected in one single case at the end of the build
-%global rev_build_loop %{build_loop2} %{build_loop1}
-
-%ifarch %{jit_arches}
-%global bootstrap_build 1
+%if %{include_fastdebug_build}
+%global fastdebug_build %{fastdebug_suffix}
%else
-%global bootstrap_build 1
+%global fastdebug_build %{nil}
%endif
+%global bootstrap_build 1
+
+# If you disable both builds, then the build fails
+# Note that the debug build requires the normal build for docs
+%global build_loop %{normal_build} %{fastdebug_build} %{slowdebug_build}
+# Test slowdebug first as it provides the best diagnostics
+%global rev_build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build}
%global bootstrap_targets images
%global release_targets images docs-zip
-# No docs nor bootcycle for debug builds
%global debug_targets images
-# This package fails to build with LTO due to undefined symbols. LTO
-# was disabled in OpenSuSE as well, but with no real explanation why
-# beyond the undefined symbols. It really should be investigated further.
-# Disable LTO
+# Disable LTO as this causes build failures at the moment.
+# See RHBZ#1861401
%define _lto_cflags %{nil}
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
-# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
+# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
@@ -210,7 +233,9 @@
%global stapinstall %{nil}
%endif
-%ifarch %{jit_arches}
+
+
+%ifarch %{systemtap_arches}
%global with_systemtap 1
%else
%global with_systemtap 0
@@ -239,7 +264,10 @@
%global with_openjfx_binding 0
%endif
-# Standard JPackage naming and versioning defines.
+# Define IcedTea version used for SystemTap tapsets and desktop file
+%global icedteaver 3.15.0
+
+# Standard JPackage naming and versioning defines
%global origin openjdk
%global origin_nice OpenJDK
%global top_level_dir_name %{origin}
@@ -251,8 +279,7 @@
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
%global revision %{shenandoah_revision}
-# Define IcedTea version used for SystemTap tapsets and desktop files
-%global icedteaver 3.15.0
+
# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
@@ -262,7 +289,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -309,7 +336,7 @@
# parametrized macros are order-sensitive
%global compatiblename %{name}
%global fullversion %{compatiblename}-%{version}-%{release}
-# images stub
+# images directories from upstream build
%global jdkimage j2sdk-image
# output dir stub
%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
@@ -318,6 +345,7 @@
# main id and dir of this jdk
%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
+#################################################################
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
@@ -329,6 +357,8 @@
# Never generate lib-style provides/requires for slowdebug packages
%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
+%global __provides_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
+%global __requires_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
%else
# Don't generate provides/requires for JDK provided shared libraries at all.
%global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$
@@ -375,13 +405,9 @@ exit 0
%define post_headless() %{expand:
-%ifarch %{jit_arches}
-# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
-%ifnarch %{power64}
-# see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+%ifarch %{share_arches}
%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
-%endif
PRIORITY=%{priority}
if [ "%{?1}" == %{debug_suffix} ]; then
@@ -718,12 +744,10 @@ exit 0
%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
-%ifarch %{jit_arches}
-%ifnarch %{power64}
+%ifarch %{share_arches}
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
%endif
-%endif
%dir %{etcjavasubdir}
%dir %{etcjavadir -- %{?1}}
%dir %{etcjavadir -- %{?1}}/lib
@@ -991,13 +1015,10 @@ exit 0
%endif
}
-%define files_jmods() %{expand:
-%{_jvmdir}/%{sdkdir -- %{?1}}/jmods
-}
%define files_demo() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
}
%define files_src() %{expand:
@@ -1009,7 +1030,7 @@ exit 0
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java
@@ -1020,7 +1041,7 @@ exit 0
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
%if %is_system_jdk
%if %{is_release_build -- %{?1}}
%ghost %{_javadocdir}/java-zip
@@ -1049,7 +1070,7 @@ OrderWithRequires: %{name}-headless%{?1}%{?_isa} =
%{epoch}:%{version}-%{release
Recommends: gtk2%{?_isa}
%endif
-Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides
Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
@@ -1066,11 +1087,12 @@ Provides: jre%{?1} = %{epoch}:%{version}-%{release}
%define java_headless_rpo() %{expand:
# Require /etc/pki/java/cacerts
Requires: ca-certificates
-# Require javapackages-filesystem for ownership of /usr/lib/jvm/
+# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
# 2020b required as of JDK-8254177 in October CPU
Requires: tzdata-java >= 2020b
+# for support of kernel stream control
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
@@ -1467,6 +1489,17 @@ The %{origin_nice} runtime environment %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package fastdebug
+Summary: %{origin_nice} Runtime Environment %{majorver} %{fastdebug_on}
+Group: Development/Languages
+
+%{java_rpo -- %{fastdebug_suffix_unquoted}}
+%description fastdebug
+The %{origin_nice} runtime environment.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package headless
Summary: %{origin_nice} Headless Runtime Environment %{majorver}
@@ -1488,6 +1521,18 @@ The %{origin_nice} runtime environment %{majorver} without audio
and video suppo
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package headless-fastdebug
+Summary: %{origin_nice} Runtime Environment %{fastdebug_on}
+Group: Development/Languages
+
+%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description headless-fastdebug
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package devel
Summary: %{origin_nice} Development Environment %{majorver}
@@ -1509,6 +1554,18 @@ The %{origin_nice} development tools %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package devel-fastdebug
+Summary: %{origin_nice} Development Environment %{majorver} %{fastdebug_on}
+Group: Development/Tools
+
+%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description devel-fastdebug
+The %{origin_nice} development tools %{majorver}.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package demo
Summary: %{origin_nice} Demos %{majorver}
@@ -1530,6 +1587,18 @@ The %{origin_nice} demos %{majorver}.
%{debug_warning}
%endif
+%if %{include_fastdebug_build}
+%package demo-fastdebug
+Summary: %{origin_nice} Demos %{majorver} %{fastdebug_on}
+Group: Development/Languages
+
+%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description demo-fastdebug
+The %{origin_nice} demos %{majorver}.
+%{fastdebug_warning}
+%endif
+
%if %{include_normal_build}
%package src
Summary: %{origin_nice} Source Bundle %{majorver}
@@ -1552,6 +1621,19 @@ The java-%{origin}-src-slowdebug sub-package contains the complete
%{origin_nice
class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
%endif
+%if %{include_fastdebug_build}
+%package src-fastdebug
+Summary: %{origin_nice} Source Bundle %{majorver} %{for_fastdebug}
+Group: Development/Languages
+
+%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description src-fastdebug
+The java-%{origin}-src-fastdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers. Debugging
%{for_fastdebug}.
+%endif
+
+
%if %{include_normal_build}
%package javadoc
Summary: %{origin_nice} %{majorver} API documentation
@@ -1605,6 +1687,16 @@ Summary: %{origin_nice} %{majorver} accessibility connector
%{for_debug}
See normal java-%{version}-openjdk-accessibility description.
%endif
+%if %{include_fastdebug_build}
+%package accessibility-fastdebug
+Summary: %{origin_nice} %{majorver} accessibility connector %{for_fastdebug}
+
+%{java_accessibility_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description accessibility-fastdebug
+See normal java-%{version}-openjdk-accessibility description.
+%endif
+
%if %{with_openjfx_binding}
%package openjfx
@@ -1640,6 +1732,24 @@ Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release}
%description openjfx-devel-slowdebug
Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
%endif
+
+%if %{include_fastdebug_build}
+%package openjfx-fastdebug
+Summary: OpenJDK x OpenJFX connector %{for_fastdebug}. his package adds symliks finishing
Java FX integration to %{name}-fastdebug
+Requires: %{name}-fastdebug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx8%{?_isa}
+Provides: javafx-fastdebug = %{epoch}:%{version}-%{release}
+%description openjfx-fastdebug
+Set of links from OpenJDK-fastdebug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+
+%package openjfx-devel-fastdebug
+Summary: OpenJDK x OpenJFX connector for FX developers %{for_fastdebug}. This package
adds symliks finishing Java FX integration to %{name}-devel-slowdebug
+Requires: %{name}-devel-fastdebug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx8-devel%{?_isa}
+Provides: javafx-devel-fastdebug = %{epoch}:%{version}-%{release}
+%description openjfx-devel-fastdebug
+Set of links from OpenJDK-fastdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+%endif
%endif
%prep
@@ -1654,19 +1764,25 @@ Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX.
OpenJFX do not supp
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
echo "include_normal_build is %{include_normal_build}"
else
- echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for
yes or 0 for no"
+ echo "include_normal_build is %{include_normal_build}, that is invalid. Use 1 for
yes or 0 for no"
exit 11
fi
if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then
echo "include_debug_build is %{include_debug_build}"
else
- echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes
or 0 for no"
+ echo "include_debug_build is %{include_debug_build}, that is invalid. Use 1 for
yes or 0 for no"
exit 12
fi
-if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
- echo "You have disabled both include_debug_build and include_normal_build. That is
a no go."
+if [ %{include_fastdebug_build} -eq 0 -o %{include_fastdebug_build} -eq 1 ] ; then
+ echo "include_fastdebug_build is %{include_fastdebug_build}"
+else
+ echo "include_fastdebug_build is %{include_fastdebug_build}, that is invalid. Use
1 for yes or 0 for no"
exit 13
fi
+if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 -a
%{include_fastdebug_build} -eq 0 ] ; then
+ echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no
go."
+ exit 14
+fi
echo "Update version: %{updatever}"
echo "Build number: %{buildver}"
@@ -1753,6 +1869,9 @@ tar --strip-components=1 -x -I xz -f %{SOURCE8}
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
+%if %{include_fastdebug_build}
+cp -r tapset tapset%{fastdebug_suffix}
+%endif
for suffix in %{build_loop} ; do
@@ -1965,7 +2084,7 @@ $JAVA_HOME/bin/java TestCryptoLevel
$JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
-# Verify system crypto (policy) can be disabled
+# Check system crypto (policy) can be disabled
$JAVA_HOME/bin/javac -d . %{SOURCE15}
$JAVA_HOME/bin/java -Djava.security.disableSystemPropertiesFile=true $(echo $(basename
%{SOURCE15})|sed "s|\.java||")
@@ -2041,6 +2160,7 @@ quit
end
run -version
EOF
+
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
# Check src.zip has all sources. See RHBZ#1130490
@@ -2358,6 +2478,32 @@ require "copy_jdk_configs.lua"
%posttrans devel-slowdebug
%{posttrans_devel -- %{debug_suffix_unquoted}}
+%endif
+
+%if %{include_fastdebug_build}
+%post fastdebug
+%{post_script -- %{fastdebug_suffix_unquoted}}
+
+%post headless-fastdebug
+%{post_headless -- %{fastdebug_suffix_unquoted}}
+
+%postun fastdebug
+%{postun_script -- %{fastdebug_suffix_unquoted}}
+
+%postun headless-fastdebug
+%{postun_headless -- %{fastdebug_suffix_unquoted}}
+
+%posttrans fastdebug
+%{posttrans_script -- %{fastdebug_suffix_unquoted}}
+
+%post devel-fastdebug
+%{post_devel -- %{fastdebug_suffix_unquoted}}
+
+%postun devel-fastdebug
+%{postun_devel -- %{fastdebug_suffix_unquoted}}
+
+%posttrans devel-fastdebug
+%{posttrans_devel -- %{fastdebug_suffix_unquoted}}
%endif
@@ -2389,9 +2535,7 @@ require "copy_jdk_configs.lua"
%files javadoc
%{files_javadoc %{nil}}
-# this puts huge file to /usr/share
-# unluckily ti is really a documentation file
-# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64
only
+# This puts a huge documentation file in /usr/share
# same for debug variant
%files javadoc-zip
%{files_javadoc_zip %{nil}}
@@ -2432,7 +2576,37 @@ require "copy_jdk_configs.lua"
%endif
%endif
+%if %{include_fastdebug_build}
+%files fastdebug
+%{files_jre -- %{fastdebug_suffix_unquoted}}
+
+%files headless-fastdebug
+%{files_jre_headless -- %{fastdebug_suffix_unquoted}}
+
+%files devel-fastdebug
+%{files_devel -- %{fastdebug_suffix_unquoted}}
+
+
+%files demo-fastdebug -f %{name}-demo.files-fastdebug
+%{files_demo -- %{fastdebug_suffix_unquoted}}
+
+%files src-fastdebug
+%{files_src -- %{fastdebug_suffix_unquoted}}
+
+%files accessibility-fastdebug
+%{files_accessibility -- %{fastdebug_suffix_unquoted}}
+
+%if %{with_openjfx_binding}
+%files openjfx-fastdebug -f %{name}-openjfx.files-fastdebug
+
+%files openjfx-devel-fastdebug -f %{name}-openjfx-devel.files-fastdebug
+%endif
+%endif
+
%changelog
+* Sat Dec 19 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-4
+- introduced fastdebug build cycle and subpackages
+
* Thu Dec 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-3
- introduced nm based check to verify alt-java on x86_64 is patched, and no other
alt-java or java is patched
- patch600 rh1750419-redhat_alt_java.patch amended to die, if it is used wrongly
commit aa2fac59de9a77b026139755c77d0f89a671a3cc
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 17 15:49:22 2020 +0100
Added checks and restrictions around alt-java
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a96e6b3..4e4cbfc 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -80,6 +80,8 @@
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+# Set of architectures for which alt-java has SSB mitigation
+%global ssbd_arches x86_64
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -260,7 +262,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1967,6 +1969,17 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed
"s|\.java||")
$JAVA_HOME/bin/javac -d . %{SOURCE15}
$JAVA_HOME/bin/java -Djava.security.disableSystemPropertiesFile=true $(echo $(basename
%{SOURCE15})|sed "s|\.java||")
+# Check java launcher has no SSB mitigation
+if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
+
+# Check alt-java launcher has SSB mitigation on supported architectures
+%ifarch %{ssbd_arches}
+nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
+%else
+if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false;
fi
+%endif
+
+
# Check debug symbols are present and can identify code
find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
do
@@ -2420,6 +2433,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Dec 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-3
+- introduced nm based check to verify alt-java on x86_64 is patched, and no other
alt-java or java is patched
+- patch600 rh1750419-redhat_alt_java.patch amended to die, if it is used wrongly
+- introduced ssbd_arches with currently only valid arch of x86_64 to separate real
alt-java architectures
+
* Fri Nov 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-2
- added patch600, rh1750419-redhat_alt_java.patch
- Replaced alt-java palceholder by real pathced alt-java
diff --git a/rh1750419-redhat_alt_java.patch b/rh1750419-redhat_alt_java.patch
index d7accf1..b3cbff8 100644
--- a/rh1750419-redhat_alt_java.patch
+++ b/rh1750419-redhat_alt_java.patch
@@ -1,12 +1,13 @@
diff -r 25e94aa812b2 make/CompileLaunchers.gmk
--- openjdk/jdk/make/CompileLaunchers.gmk Wed Feb 05 12:20:36 2020 -0300
+++ openjdk/jdk/make/CompileLaunchers.gmk Tue Jun 02 17:15:28 2020 +0100
-@@ -234,6 +234,20 @@
+@@ -234,6 +234,21 @@
BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX)
++#Wno-error=cpp is present to allow commented warning in ifdef part of main.c
+$(eval $(call SetupLauncher,alt-java, \
-+ -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA,,,user32.lib comctl32.lib, \
++ -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA -Wno-error=cpp,,,user32.lib
comctl32.lib, \
+ $(JDK_OUTPUTDIR)/objs/jli_static.lib, $(JAVA_RC_FLAGS), \
+ $(JDK_TOPDIR)/src/windows/resource/java.rc, $(JDK_OUTPUTDIR)/objs/java_objs,true))
+
@@ -102,12 +103,16 @@ diff -r 25e94aa812b2 src/share/bin/alt_main.h
diff -r 25e94aa812b2 src/share/bin/main.c
--- openjdk/jdk/src/share/bin/main.c Wed Feb 05 12:20:36 2020 -0300
+++ openjdk/jdk/src/share/bin/main.c Tue Jun 02 17:15:28 2020 +0100
-@@ -32,6 +32,10 @@
+@@ -32,6 +32,14 @@
#include "defines.h"
++#ifdef REDHAT_ALT_JAVA
+#if defined(__linux__) && defined(__x86_64__)
+#include "alt_main.h"
++#else
++#warning alt-java requested but SSB mitigation not available on this platform.
++#endif
+#endif
+
#ifdef _MSC_VER
commit 1175043de1573bf8bbf7c154c3f439b630103deb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 17 13:34:57 2020 +0100
Redeffined linux -> __linux__ and __x86_64 -> __x86_64__
diff --git a/rh1750419-redhat_alt_java.patch b/rh1750419-redhat_alt_java.patch
index 5a7b2d8..d7accf1 100644
--- a/rh1750419-redhat_alt_java.patch
+++ b/rh1750419-redhat_alt_java.patch
@@ -106,7 +106,7 @@ diff -r 25e94aa812b2 src/share/bin/main.c
#include "defines.h"
-+#if defined(linux) && defined(__x86_64)
++#if defined(__linux__) && defined(__x86_64__)
+#include "alt_main.h"
+#endif
+
commit 1b5d0082c3d8f2c454de0ba73640f42b54e13026
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Dec 7 20:05:38 2020 +0100
Fixes comment for speculative store bypass patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6bbd0a4..a96e6b3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1295,7 +1295,7 @@ Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_jav
Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
Patch401: pr3655-toggle_system_crypto_policy.patch
-# enable build of spectre/meltdown hardened alt-java
+# enable build of speculative store bypass hardened alt-java
Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
commit f40d1185163fbdbe6cedd0b04dabc7d20e436f5a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 27 18:41:13 2020 +0100
Replaced alt-java palceholder by real pathced alt-java
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 96bf3bd..6bbd0a4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1286,9 +1286,6 @@ Patch512:
rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
Patch523:
pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528:
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
-# RH1566890: CVE-2018-3639
-Patch529: rh1566890-CVE_2018_3639-speculative_store_bypass.patch
-Patch531: rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
@@ -1298,6 +1295,8 @@ Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_jav
Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
Patch401: pr3655-toggle_system_crypto_policy.patch
+# enable build of spectre/meltdown hardened alt-java
+Patch600: rh1750419-redhat_alt_java.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
@@ -1725,8 +1724,6 @@ sh %{SOURCE12}
%patch512
%patch523
%patch528
-%patch529
-%patch531
%patch530
%patch571
%patch574
@@ -1738,6 +1735,7 @@ sh %{SOURCE12}
# RPM-only fixes
%patch539
+%patch600
%patch1000
# RHEL-only patches
@@ -1941,11 +1939,8 @@ install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
rm $JAVA_HOME/jre/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
-# Create fake alt-java as a placeholder for future alt-java
-pushd ${JAVA_HOME}
-cp -a jre/bin/java jre/bin/%{alt_java_name}
-cp -a bin/java bin/%{alt_java_name}
# add alt-java man page
+pushd ${JAVA_HOME}
echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
popd
@@ -2425,6 +2420,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Nov 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-2
+- added patch600, rh1750419-redhat_alt_java.patch
+- Replaced alt-java palceholder by real pathced alt-java
+- remove patch529 rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+- remove patch531 rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
+- both suprassed by new patch
+
+
* Mon Nov 23 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-1
- Created copy of java as alt-java and adapted alternatives and man pages
diff --git a/rh1566890-CVE_2018_3639-speculative_store_bypass.patch
b/rh1566890-CVE_2018_3639-speculative_store_bypass.patch
deleted file mode 100644
index d8f3a5a..0000000
--- a/rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -103,6 +103,8 @@
- # include <inttypes.h>
- # include <sys/ioctl.h>
-
-+#include <sys/prctl.h>
-+
- PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
-
- #ifndef _GNU_SOURCE
-@@ -4997,6 +4999,31 @@
- }
- }
-
-+/* Per task speculation control */
-+#ifndef PR_GET_SPECULATION_CTRL
-+#define PR_GET_SPECULATION_CTRL 52
-+#endif
-+#ifndef PR_SET_SPECULATION_CTRL
-+#define PR_SET_SPECULATION_CTRL 53
-+#endif
-+/* Speculation control variants */
-+# undef PR_SPEC_STORE_BYPASS
-+# define PR_SPEC_STORE_BYPASS 0
-+/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
-+# undef PR_SPEC_NOT_AFFECTED
-+# undef PR_SPEC_PRCTL
-+# undef PR_SPEC_ENABLE
-+# undef PR_SPEC_DISABLE
-+# define PR_SPEC_NOT_AFFECTED 0
-+# define PR_SPEC_PRCTL (1UL << 0)
-+# define PR_SPEC_ENABLE (1UL << 1)
-+# define PR_SPEC_DISABLE (1UL << 2)
-+
-+static void set_speculation() __attribute__((constructor));
-+static void set_speculation() {
-+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
-+}
-+
- // this is called _before_ most of the global arguments have been parsed
- void os::init(void) {
- char dummy; /* used to get a guess on initial stack address */
diff --git a/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
b/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
deleted file mode 100644
index 94ef9d4..0000000
--- a/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -5001,26 +5001,43 @@
-
- /* Per task speculation control */
- #ifndef PR_GET_SPECULATION_CTRL
--#define PR_GET_SPECULATION_CTRL 52
-+# define PR_GET_SPECULATION_CTRL 52
- #endif
- #ifndef PR_SET_SPECULATION_CTRL
--#define PR_SET_SPECULATION_CTRL 53
-+# define PR_SET_SPECULATION_CTRL 53
- #endif
- /* Speculation control variants */
--# undef PR_SPEC_STORE_BYPASS
-+#ifndef PR_SPEC_STORE_BYPASS
- # define PR_SPEC_STORE_BYPASS 0
-+#endif
- /* Return and control values for PR_SET/GET_SPECULATION_CTRL */
--# undef PR_SPEC_NOT_AFFECTED
--# undef PR_SPEC_PRCTL
--# undef PR_SPEC_ENABLE
--# undef PR_SPEC_DISABLE
-+
-+#ifndef PR_SPEC_NOT_AFFECTED
- # define PR_SPEC_NOT_AFFECTED 0
-+#endif
-+#ifndef PR_SPEC_PRCTL
- # define PR_SPEC_PRCTL (1UL << 0)
-+#endif
-+#ifndef PR_SPEC_ENABLE
- # define PR_SPEC_ENABLE (1UL << 1)
-+#endif
-+#ifndef PR_SPEC_DISABLE
- # define PR_SPEC_DISABLE (1UL << 2)
-+#endif
-+#ifndef PR_SPEC_FORCE_DISABLE
-+# define PR_SPEC_FORCE_DISABLE (1UL << 3)
-+#endif
-+#ifndef PR_SPEC_DISABLE_NOEXEC
-+# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
-+#endif
-
- static void set_speculation() __attribute__((constructor));
- static void set_speculation() {
-+ if ( prctl(PR_SET_SPECULATION_CTRL,
-+ PR_SPEC_STORE_BYPASS,
-+ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
-+ return;
-+ }
- prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
- }
-
diff --git a/rh1750419-redhat_alt_java.patch b/rh1750419-redhat_alt_java.patch
new file mode 100644
index 0000000..5a7b2d8
--- /dev/null
+++ b/rh1750419-redhat_alt_java.patch
@@ -0,0 +1,115 @@
+diff -r 25e94aa812b2 make/CompileLaunchers.gmk
+--- openjdk/jdk/make/CompileLaunchers.gmk Wed Feb 05 12:20:36 2020 -0300
++++ openjdk/jdk/make/CompileLaunchers.gmk Tue Jun 02 17:15:28 2020 +0100
+@@ -234,6 +234,20 @@
+
+ BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java$(EXE_SUFFIX)
+
++$(eval $(call SetupLauncher,alt-java, \
++ -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA,,,user32.lib comctl32.lib, \
++ $(JDK_OUTPUTDIR)/objs/jli_static.lib, $(JAVA_RC_FLAGS), \
++ $(JDK_TOPDIR)/src/windows/resource/java.rc, $(JDK_OUTPUTDIR)/objs/java_objs,true))
++
++$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX): $(BUILD_LAUNCHER_alt-java)
++ $(MKDIR) -p $(@D)
++ $(RM) $@
++ $(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX) $@
++
++ifeq ($(OPENJDK_TARGET_OS), linux)
++ BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX)
++endif
++
+ ifeq ($(OPENJDK_TARGET_OS), windows)
+ $(eval $(call SetupLauncher,javaw, \
+ -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib, \
+diff -r 25e94aa812b2 src/share/bin/alt_main.h
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/src/share/bin/alt_main.h Tue Jun 02 17:15:28 2020 +0100
+@@ -0,0 +1,73 @@
++/*
++ * Copyright (c) 2019, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++#ifdef REDHAT_ALT_JAVA
++
++#include <sys/prctl.h>
++
++
++/* Per task speculation control */
++#ifndef PR_GET_SPECULATION_CTRL
++# define PR_GET_SPECULATION_CTRL 52
++#endif
++#ifndef PR_SET_SPECULATION_CTRL
++# define PR_SET_SPECULATION_CTRL 53
++#endif
++/* Speculation control variants */
++#ifndef PR_SPEC_STORE_BYPASS
++# define PR_SPEC_STORE_BYPASS 0
++#endif
++/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
++
++#ifndef PR_SPEC_NOT_AFFECTED
++# define PR_SPEC_NOT_AFFECTED 0
++#endif
++#ifndef PR_SPEC_PRCTL
++# define PR_SPEC_PRCTL (1UL << 0)
++#endif
++#ifndef PR_SPEC_ENABLE
++# define PR_SPEC_ENABLE (1UL << 1)
++#endif
++#ifndef PR_SPEC_DISABLE
++# define PR_SPEC_DISABLE (1UL << 2)
++#endif
++#ifndef PR_SPEC_FORCE_DISABLE
++# define PR_SPEC_FORCE_DISABLE (1UL << 3)
++#endif
++#ifndef PR_SPEC_DISABLE_NOEXEC
++# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
++#endif
++
++static void set_speculation() __attribute__((constructor));
++static void set_speculation() {
++ if ( prctl(PR_SET_SPECULATION_CTRL,
++ PR_SPEC_STORE_BYPASS,
++ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
++ return;
++ }
++ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
++}
++
++#endif // REDHAT_ALT_JAVA
+diff -r 25e94aa812b2 src/share/bin/main.c
+--- openjdk/jdk/src/share/bin/main.c Wed Feb 05 12:20:36 2020 -0300
++++ openjdk/jdk/src/share/bin/main.c Tue Jun 02 17:15:28 2020 +0100
+@@ -32,6 +32,10 @@
+
+ #include "defines.h"
+
++#if defined(linux) && defined(__x86_64)
++#include "alt_main.h"
++#endif
++
+ #ifdef _MSC_VER
+ #if _MSC_VER > 1400 && _MSC_VER < 1600
+
commit 277adb5a50fdc880e94d22742610cbf317b70ae5
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Nov 23 23:03:50 2020 +0100
Created a copy of java as alt-java and adapted alternatives and man pages
Sync alt-java support with java-11-openjdk version.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 57bb7e4..96bf3bd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -343,6 +343,7 @@
%define jredir() %{expand:%{sdkdir -- %{?1}}/jre}
%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
+%global alt_java_name alt-java
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
@@ -389,6 +390,7 @@ ext=.gz
alternatives \\
--install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
+ --slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir --
%{?1}}/%{alt_java_name} \\
--slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
--slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
--slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
@@ -401,6 +403,8 @@ alternatives \\
--slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
--slave %{_mandir}/man1/java.1$ext java.1$ext \\
%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \\
+ %{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
@@ -667,6 +671,7 @@ exit 0
%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
%{_jvmdir}/%{jredir -- %{?1}}/bin/java
+%{_jvmdir}/%{jredir -- %{?1}}/bin/%{alt_java_name}
%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd
@@ -698,6 +703,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
@@ -843,6 +849,7 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/%{alt_java_name}
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah
@@ -1934,6 +1941,15 @@ install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
rm $JAVA_HOME/jre/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+# Create fake alt-java as a placeholder for future alt-java
+pushd ${JAVA_HOME}
+cp -a jre/bin/java jre/bin/%{alt_java_name}
+cp -a bin/java bin/%{alt_java_name}
+# add alt-java man page
+echo "Hardened java binary recommended for launching untrusted code from the Web
e.g. javaws" > man/man1/%{alt_java_name}.1
+cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
+popd
+
# build cycles
done
@@ -2409,6 +2425,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Nov 23 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.275.b01-1
+- Created copy of java as alt-java and adapted alternatives and man pages
+
* Fri Nov 06 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-0
- Update to aarch64-shenandoah-jdk8u275-b01 (GA)
- Update release notes for 8u275.
commit 1eff715bb4b00b53b1a335e18c9683f78af8f064
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Nov 16 14:45:12 2020 +0000
Update to aarch64-shenandoah-jdk8u275-b01 (GA)
Update release notes for 8u275.
diff --git a/.gitignore b/.gitignore
index c89ee59..3a2a67b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -207,3 +207,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01.tar.xz
diff --git a/NEWS b/NEWS
index 1c1d679..0a93663 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,18 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u275 (2020-11-05):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u275
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u275.txt
+
+* Regression fixes
+ - JDK-8214440: ldap over a TLS connection negotiate failed with
"javax.net.ssl.SSLPeerUnverifiedException: hostname of the server '' does not
match the hostname in the server's certificate"
+ - JDK-8223940: Private key not supported by chosen signature algorithm
+ - JDK-8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding
+ - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool)
+
New in release OpenJDK 8u272 (2020-10-20):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ee762e5..57bb7e4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b10
+%global shenandoah_revision aarch64-shenandoah-jdk8u275-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2409,6 +2409,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Nov 06 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.275.b01-0
+- Update to aarch64-shenandoah-jdk8u275-b01 (GA)
+- Update release notes for 8u275.
+
* Sat Oct 31 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.272.b10-1
- Avoid "register" for C++17
diff --git a/sources b/sources
index e5f9ad5..2b4888c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10-4curve.tar.xz) =
76b75cb67fb86651b9b2a0c9c07e48585ce402e6076a8b4a6989daf5e949cf1b9159fbcd3e28afd17156093494e9a260bceda9cf89cfdc51238224cb96a428de
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u275-b01-4curve.tar.xz) =
600f79f2f2157ca818c34860611a69a5000c6d8387ea068b3b8a534650f0d9558034d1a6b431d110e62cee533abee1fc25e2e2802baba2950055ea6324faf772
commit f82ab873a867441cff43ed1c650217be652cf600
Author: Jeff Law <law(a)redhat.com>
Date: Sat Oct 31 14:52:46 2020 -0600
Avoid "register" for C++17
diff --git a/java-1.8.0-openjdk-gcc11.patch b/java-1.8.0-openjdk-gcc11.patch
new file mode 100644
index 0000000..2d0820d
--- /dev/null
+++ b/java-1.8.0-openjdk-gcc11.patch
@@ -0,0 +1,74 @@
+diff --git a/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
b/openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
+index 31955ff7..6dcd90ac 100644
+--- openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
++++ openjdk/hotspot/src/share/vm/adlc/adlparse.cpp
+@@ -4564,7 +4564,7 @@ char *ADLParser::get_paren_expr(const char *description, bool
include_location)
+ // string(still inside the file buffer). Returns a pointer to the string or
+ // NULL if some other token is found instead.
+ char *ADLParser::get_ident_common(bool do_preproc) {
+- register char c;
++ char c;
+ char *start; // Pointer to start of token
+ char *end; // Pointer to end of token
+
+@@ -4762,7 +4762,7 @@ char *ADLParser::get_unique_ident(FormDict& dict, const char*
nameDescription){
+ // invokes a parse_err if the next token is not an integer.
+ // This routine does not leave the integer null-terminated.
+ int ADLParser::get_int(void) {
+- register char c;
++ char c;
+ char *start; // Pointer to start of token
+ char *end; // Pointer to end of token
+ int result; // Storage for integer result
+diff --git a/openjdk/hotspot/src/share/vm/adlc/arena.cpp
b/openjdk/hotspot/src/share/vm/adlc/arena.cpp
+index d7e4fc6e..406187ae 100644
+--- openjdk/hotspot/src/share/vm/adlc/arena.cpp
++++ openjdk/hotspot/src/share/vm/adlc/arena.cpp
+@@ -79,7 +79,7 @@ Arena::Arena( Arena *a )
+ // Total of all Chunks in arena
+ size_t Arena::used() const {
+ size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk
+- register Chunk *k = _first;
++ Chunk *k = _first;
+ while( k != _chunk) { // Whilst have Chunks in a row
+ sum += k->_len; // Total size of this Chunk
+ k = k->_next; // Bump along to next Chunk
+@@ -93,7 +93,7 @@ void* Arena::grow( size_t x ) {
+ // Get minimal required size. Either real big, or even bigger for giant objs
+ size_t len = max(x, Chunk::size);
+
+- register Chunk *k = _chunk; // Get filled-up chunk address
++ Chunk *k = _chunk; // Get filled-up chunk address
+ _chunk = new (len) Chunk(len);
+
+ if( k ) k->_next = _chunk; // Append new chunk to end of linked list
+diff --git a/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
b/openjdk/hotspot/src/share/vm/adlc/dict2.cpp
+index f341a2b6..2dc60b25 100644
+--- openjdk/hotspot/src/share/vm/adlc/dict2.cpp
++++ openjdk/hotspot/src/share/vm/adlc/dict2.cpp
+@@ -283,9 +283,9 @@ void Dict::print(PrintKeyOrValue print_key, PrintKeyOrValue
print_value) {
+ // limited to MAXID characters in length. Experimental evidence on 150K of
+ // C text shows excellent spreading of values for any size hash table.
+ int hashstr(const void *t) {
+- register char c, k = 0;
+- register int sum = 0;
+- register const char *s = (const char *)t;
++ char c, k = 0;
++ int sum = 0;
++ const char *s = (const char *)t;
+
+ while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters
till nul
+ c = (char) ((c << 1) + 1); // Characters are always odd!
+diff --git a/openjdk/hotspot/src/share/vm/adlc/main.cpp
b/openjdk/hotspot/src/share/vm/adlc/main.cpp
+index 52044f12..40bcda74 100644
+--- openjdk/hotspot/src/share/vm/adlc/main.cpp
++++ openjdk/hotspot/src/share/vm/adlc/main.cpp
+@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
+
+ // Read command line arguments and file names
+ for( int i = 1; i < argc; i++ ) { // For all arguments
+- register char *s = argv[i]; // Get option/filename
++ char *s = argv[i]; // Get option/filename
+
+ if( *s++ == '-' ) { // It's a flag? (not a filename)
+ if( !*s ) { // Stand-alone `-' means stdin
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bfbb066..ee762e5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1294,6 +1294,8 @@ Patch401: pr3655-toggle_system_crypto_policy.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
+# Similar for GCC 11
+Patch112: %{name}-gcc11.patch
#############################################
#
@@ -1724,6 +1726,7 @@ sh %{SOURCE12}
%patch575
%patch577
%patch111
+%patch112
%patch13
# RPM-only fixes
@@ -2406,6 +2409,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Oct 31 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.272.b10-1
+- Avoid "register" for C++17
+
* Sat Oct 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b10-0
- Update to aarch64-shenandoah-jdk8u272-b10.
- Switch to GA mode for final release.
commit 0278f514ee6d81a9b6a252aa54a65e28a4692235
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 21 02:45:11 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b10.
Switch to GA mode for final release.
Update release notes for 8u272 release.
Add backport of JDK-8254177 to update to tzdata 2020b
Require tzdata 2020b due to resource changes in JDK-8254177
Adjust JDK-8062808/PR3548 following constantPool.hpp context change in JDK-8243302
Adjust PR3593 following g1StringDedupTable.cpp context change in JDK-8240124 &
JDK-8244955
diff --git a/.gitignore b/.gitignore
index b3b29b4..c89ee59 100644
--- a/.gitignore
+++ b/.gitignore
@@ -206,3 +206,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b09-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10-4curve.tar.xz
diff --git a/NEWS b/NEWS
index fd782fc..1c1d679 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,313 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u272 (2020-10-20):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u272
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u272.txt
+
+* New features
+ - JDK-8245468: Add TLSv1.3 implementation classes from 11.0.7
+* Security fixes
+ - JDK-8233624: Enhance JNI linkage
+ - JDK-8236196: Improve string pooling
+ - JDK-8236862, CVE-2020-14779: Enhance support of Proxy class
+ - JDK-8237990, CVE-2020-14781: Enhanced LDAP contexts
+ - JDK-8237995, CVE-2020-14782: Enhance certificate processing
+ - JDK-8240124: Better VM Interning
+ - JDK-8241114, CVE-2020-14792: Better range handling
+ - JDK-8242680, CVE-2020-14796: Improved URI Support
+ - JDK-8242685, CVE-2020-14797: Better Path Validation
+ - JDK-8242695, CVE-2020-14798: Enhanced buffer support
+ - JDK-8243302: Advanced class supports
+ - JDK-8244136, CVE-2020-14803: Improved Buffer supports
+ - JDK-8244479: Further constrain certificates
+ - JDK-8244955: Additional Fix for JDK-8240124
+ - JDK-8245407: Enhance zoning of times
+ - JDK-8245412: Better class definitions
+ - JDK-8245417: Improve certificate chain handling
+ - JDK-8248574: Improve jpeg processing
+ - JDK-8249927: Specify limits of jdk.serialProxyInterfaceLimit
+ - JDK-8253019: Enhanced JPEG decoding
+* Other changes
+ - JDK-6574989: TEST_BUG: javax/sound/sampled/Clip/bug5070081.java fails sometimes
+ - JDK-8006205: [TESTBUG] NEED_TEST: please JTREGIFY
test/compiler/7177917/Test7177917.java
+ - JDK-8023697: failed class resolution reports different class name in detail message
for the first and subsequent times
+ - JDK-8025886: replace [[ and == bash extensions in regtest
+ - JDK-8026236: Add PrimeTest for BigInteger
+ - JDK-8031625: javadoc problems referencing inner class constructors
+ - JDK-8035493: JVMTI PopFrame capability must instruct compilers not to prune locals
+ - JDK-8036088: Replace strtok() with its safe equivalent strtok_s() in
DefaultProxySelector.c
+ - JDK-8039082: [TEST_BUG] Test
java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails
+ - JDK-8046274: Removing dependency on jakarta-regexp
+ - JDK-8048933: -XX:+TraceExceptions output should include the message
+ - JDK-8057003: Large reference arrays cause extremely long synchronization times
+ - JDK-8060721: Test runtime/SharedArchiveFile/LimitSharedSizes.java fails in jdk 9 fcs
new platforms/compiler
+ - JDK-8061616: HotspotDiagnosticMXBean.getVMOption() throws IllegalArgumentException
for flags of type double
+ - JDK-8062947: Fix exception message to correctly represent LDAP connection failure
+ - JDK-8064319: Need to enable -XX:+TraceExceptions in release builds
+ - JDK-8075774: Small readability and performance improvements for zipfs
+ - JDK-8076151: [TESTBUG] Test java/awt/FontClass/CreateFont/fileaccess/FontFile.java
fails
+ - JDK-8078334: Mark regression tests using randomness
+ - JDK-8078880: Mark a few more intermittently failuring security-libs
+ - JDK-8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
+ - JDK-8132206: move ScanTest.java into OpenJDK
+ - JDK-8132376: Add @requires os.family to the client tests with access to internal
OS-specific API
+ - JDK-8132745: minor cleanup of java/util/Scanner/ScanTest.java
+ - JDK-8137087: [TEST_BUG] Cygwin failure of
java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh
+ - JDK-8144539: Update PKCS11 tests to run with security manager
+ - JDK-8145808: java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java hangs
on Win. 8
+ - JDK-8148754: C2 loop unrolling fails due to unexpected graph shape
+ - JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by
JVM as an equivalent
+ - JDK-8151678: com/sun/jndi/ldap/LdapTimeoutTest.java failed due to timeout on
DeadServerNoTimeoutTest is incorrect
+ - JDK-8151788: NullPointerException from ntlm.Client.type3
+ - JDK-8151834: Test SmallPrimeExponentP.java times out intermittently
+ - JDK-8152077: (cal) Calendar.roll does not always roll the hours during daylight
savings
+ - JDK-8153430: jdk regression test MletParserLocaleTest, ParserInfiniteLoopTest reduce
default timeout
+ - JDK-8153583: Make OutputAnalyzer.reportDiagnosticSummary public
+ - JDK-8154313: Generated javadoc scattered all over the place
+ - JDK-8156169: Some sound tests rarely hangs because of incorrect synchronization
+ - JDK-8160768: Add capability to custom resolve host/domain names within the default
JNDI LDAP provider
+ - JDK-8161973: PKIXRevocationChecker.getSoftFailExceptions() not working
+ - JDK-8163251: Hard coded loop limit prevents reading of smart card data greater than
8k
+ - JDK-8165936: Potential Heap buffer overflow when seaching timezone info files
+ - JDK-8165996: PKCS11 using NSS throws an error regarding secmod.db when NSS uses
sqlite
+ - JDK-8166148: Fix for JDK-8165936 broke solaris builds
+ - JDK-8167300: Scheduling failures during gcm should be fatal
+ - JDK-8167615: Opensource unit/regression tests for JavaSound
+ - JDK-8168517: java/lang/ProcessBuilder/Basic.java failed
+ - JDK-8169925: PKCS #11 Cryptographic Token Interface license
+ - JDK-8172012: [TEST_BUG] delays needed in javax/swing/JTree/4633594/bug4633594.java
+ - JDK-8173300: [TESTBUG]compiler/tiered/NonTieredLevelsTest.java fails with
compiler.whitebox.SimpleTestCaseHelper(int) must be compiled
+ - JDK-8177334: Update xmldsig implementation to Apache Santuario 2.1.1
+ - JDK-8177628: Opensource unit/regression tests for ImageIO
+ - JDK-8183341: Better cleanup for javax/imageio/AllowSearch.java
+ - JDK-8183349: Better cleanup for
jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java and WriteAfterAbort.java
+ - JDK-8183351: Better cleanup for
jdk/test/javax/imageio/spi/AppletContextTest/BadPluginConfigurationTest.sh
+ - JDK-8184762: ZapStackSegments should use optimized memset
+ - JDK-8191678: [TESTBUG] Add keyword headful in java/awt FocusTransitionTest test.
+ - JDK-8192953: sun/management/jmxremote/bootstrap/*.sh tests fail with error :
revokeall.exe: Permission denied
+ - JDK-8193137: Nashorn crashes when given an empty script file
+ - JDK-8193234: When using -Xcheck:jni an internally allocated buffer can leak
+ - JDK-8194298: Add support for per Socket configuration of TCP keepalive
+ - JDK-8198004: javax/swing/JFileChooser/6868611/bug6868611.java throws error
+ - JDK-8200313: java/awt/Gtk/GtkVersionTest/GtkVersionTest.java fails
+ - JDK-8201633: Problems with AES-GCM native acceleration
+ - JDK-8203357: Container Metrics
+ - JDK-8209113: Use WeakReference for lastFontStrike for created Fonts
+ - JDK-8210147: adjust some WSAGetLastError usages in windows network coding
+ - JDK-8211049: Second parameter of "initialize" method is not used
+ - JDK-8211163: UNIX version of Java_java_io_Console_echo does not return a clean
boolean
+ - JDK-8211714: Need to update vm_version.cpp to recognise VS2017 minor versions
+ - JDK-8214862: assert(proj != __null) at compile.cpp:3251
+ - JDK-8216283: Allow shorter method sampling interval than 10 ms
+ - JDK-8217606: LdapContext#reconnect always opens a new connection
+ - JDK-8217647: JFR: recordings on 32-bit systems unreadable
+ - JDK-8217878: ENVELOPING XML signature no longer works in JDK 11
+ - JDK-8218629: XML Digital Signature throws NAMESPACE_ERR exception on OpenJDK 11,
works 8/9/10
+ - JDK-8219566: JFR did not collect call stacks when MaxJavaStackTraceDepth is set to
zero
+ - JDK-8219919: RuntimeStub name lost with PrintFrameConverterAssembly
+ - JDK-8220165: Encryption using GCM results in RuntimeException- input length out of
bound
+ - JDK-8220313: [TESTBUG] Update base image for Docker testing to OL 7.6
+ - JDK-8220555: JFR tool shows potentially misleading message when it cannot access a
file
+ - JDK-8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only
works with debug JVMs
+ - JDK-8221569: JFR tool produces incorrect output when both --categories and --events
are specified
+ - JDK-8222079: Don't use memset to initialize fields decode_env constructor in
disassembler.cpp
+ - JDK-8224217: RecordingInfo should use textual representation of path
+ - JDK-8225695: 32-bit build failures after JDK-8080462 (Update SunPKCS11 provider with
PKCS11 v2.40 support)
+ - JDK-8226575: OperatingSystemMXBean should be made container aware
+ - JDK-8226697: Several tests which need the @key headful keyword are missing it.
+ - JDK-8226809: Circular reference in printed stack trace is not correctly indented
& ambiguous
+ - JDK-8228835: Memory leak in PKCS11 provider when using AES GCM
+ - JDK-8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow
+ - JDK-8230303: JDB hangs when running monitor command
+ - JDK-8230711: ConnectionGraph::unique_java_object(Node* N) return NULL if n is not in
the CG
+ - JDK-8231213: Migrate SimpleDateFormatConstTest to JDK Repo
+ - JDK-8231779: crash HeapWord*ParallelScavengeHeap::failed_mem_allocate
+ - JDK-8233097: Fontmetrics for large Fonts has zero width
+ - JDK-8233621: Mismatch in jsse.enableMFLNExtension property name
+ - JDK-8234617: C1: Incorrect result of field load due to missing narrowing conversion
+ - JDK-8235243: handle VS2017 15.9 and VS2019 in abstract_vm_version
+ - JDK-8235325: build failure on Linux after 8235243
+ - JDK-8235687: Contents/MacOS/libjli.dylib cannot be a symlink
+ - JDK-8236645: JDK 8u231 introduces a regression with incompatible handling of XML
messages
+ - JDK-8237951: CTW: C2 compilation fails with "malformed control flow"
+ - JDK-8238225: Issues reported after replacing symlink at Contents/MacOS/libjli.dylib
with binary
+ - JDK-8238380: java.base/unix/native/libjava/childproc.c "multiple
definition" link errors with GCC10
+ - JDK-8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple
definition" link errors with GCC10
+ - JDK-8238388: libj2gss/NativeFunc.o "multiple definition" link errors with
GCC10
+ - JDK-8238898: Missing hash characters for header on license file
+ - JDK-8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD
+ - JDK-8239819: XToolkit: Misread of screen information memory
+ - JDK-8240295: hs_err elapsed time in seconds is not accurate enough
+ - JDK-8240676: Meet not symmetric failure when running lucene on jdk8
+ - JDK-8241888: Mirror jdk.security.allowNonCaAnchor system property with a security
one
+ - JDK-8242498: Invalid "sun.awt.TimedWindowEvent" object leads to JVM crash
+ - JDK-8242556: Cannot load RSASSA-PSS public key with non-null params from byte array
+ - JDK-8243138: Enhance BaseLdapServer to support starttls extended request
+ - JDK-8243320: Add SSL root certificates to Oracle Root CA program
+ - JDK-8243321: Add Entrust root CA - G4 to Oracle Root CA program
+ - JDK-8243489: Thread CPU Load event may contain wrong data for CPU time under certain
conditions
+ - JDK-8244151: Update MUSCLE PC/SC-Lite headers to the latest release 1.8.26
+ - JDK-8244818: Java2D Queue Flusher crash while moving application window to external
monitor
+ - JDK-8245467: Remove 8u TLSv1.2 implementation files
+ - JDK-8245469: Remove DTLS protocol implementation
+ - JDK-8245470: Fix JDK8 compatibility issues
+ - JDK-8245471: Revert JDK-8148188
+ - JDK-8245472: Backport JDK-8038893 to JDK8
+ - JDK-8245473: OCSP stapling support
+ - JDK-8245474: Add TLS_KRB5 cipher suites support according to RFC-2712
+ - JDK-8245476: Disable TLSv1.3 protocol in the ClientHello message by default
+ - JDK-8245477: Adjust TLS tests location
+ - JDK-8245653: Remove 8u TLS tests
+ - JDK-8245681: Add TLSv1.3 regression test from 11.0.7
+ - JDK-8246193: Possible NPE in ENC-PA-REP search in AS-REQ
+ - JDK-8246310: Clean commented-out code about ModuleEntry andPackageEntry in JFR
+ - JDK-8246384: Enable JFR by default on supported architectures for October 2020
release
+ - JDK-8248643: Remove extra leading space in JDK-8240295 8u backport
+ - JDK-8248851: CMS: Missing memory fences between free chunk check and klass read
+ - JDK-8249158: THREAD_START and THREAD_END event posted in primordial phase
+ - JDK-8249610: Make sun.security.krb5.Config.getBooleanObject(String... keys) method
public
+ - JDK-8249677: Regression in 8u after JDK-8237117: Better ForkJoinPool behavior
+ - JDK-8250546: Expect changed behaviour reported in JDK-8249846
+ - JDK-8250627: Use -XX:+/-UseContainerSupport for enabling/disabling Java container
metrics
+ - JDK-8250755: Better cleanup for
jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java
+ - JDK-8250875: Incorrect parameter type for update_number in JDK_Version::jdk_update
+ - JDK-8251117: Cannot check P11Key size in P11Cipher and P11AEADCipher
+ - JDK-8251120: [8u] HotSpot build assumes ENABLE_JFR is set to either true or false
+ - JDK-8251341: Minimal Java specification change
+ - JDK-8251478: Backport TLSv1.3 regression tests to JDK8u
+ - JDK-8251546: 8u backport of JDK-8194298 breaks AIX and Solaris builds
+ - JDK-8252084: Minimal VM fails to bootcycle: undefined symbol:
AgeTableTracer::is_tenuring_distribution_event_enabled
+ - JDK-8252573: 8u: Windows build failed after 8222079 backport
+ - JDK-8252886: [TESTBUG] sun/security/ec/TestEC.java : Compilation failed
+ - JDK-8254673: Call to JvmtiExport::post_vm_start() was removed by the fix for
JDK-8249158
+ - JDK-8254937: Revert JDK-8148854 for 8u272
+
+Notes on individual issues:
+===========================
+
+core-svc/java.lang.management:
+
+JDK-8236876: OperatingSystemMXBean Methods Inside a Container Return Container Specific
Data
+============================================================================================
+When executing in a container, or other virtualized operating
+environment, the following `OperatingSystemMXBean` methods in this
+release return container specific information, if
+available. Otherwise, they return host specific data:
+
+* getFreePhysicalMemorySize()
+* getTotalPhysicalMemorySize()
+* getFreeSwapSpaceSize()
+* getTotalSwapSpaceSize()
+* getSystemCpuLoad()
+
+security-libs/java.security:
+
+JDK-8250756: Added Entrust Root Certification Authority - G4 certificate
+========================================================================
+The Entrust root certificate has been added to the cacerts truststore:
+
+Alias Name: entrustrootcag4
+Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015
Entrust, Inc. - for authorized use only", OU=See
www.entrust.net/legal-terms,
O="Entrust, Inc.", C=US
+
+JDK-8250860: Added 3 SSL Corporation Root CA Certificates
+=========================================================
+The following root certificates have been added to the cacerts truststore for the SSL
Corporation:
+
+Alias Name: sslrootrsaca
+Distinguished Name:
CN=SSL.com Root Certification Authority RSA, O=SSL Corporation,
L=Houston, ST=Texas, C=US
+
+Alias Name: sslrootevrsaca
+Distinguished Name:
CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation,
L=Houston, ST=Texas, C=US
+
+Alias Name: sslrooteccca
+Distinguished Name:
CN=SSL.com Root Certification Authority ECC, O=SSL Corporation,
L=Houston, ST=Texas, C=US
+
+security-libs/javax.crypto:pkcs11:
+
+JDK-8221441: SunPKCS11 Provider Upgraded with Support for PKCS#11 v2.40
+=======================================================================
+The SunPKCS11 provider has been updated with support for PKCS#11
+v2.40. This version adds support for more algorithms such as the
+AES/GCM/NoPadding cipher, DSA signatures using SHA-2 family of message
+digests, and RSASSA-PSS signatures when the corresponding PKCS11
+mechanisms are supported by the underlying PKCS11 library.
+
+security-libs/javax.security:
+
+JDK-8242059: Support for canonicalize in krb5.conf
+==================================================
+The 'canonicalize' flag in the [krb5.conf file][0] is now supported by
+the JDK Kerberos implementation. When set to *true*, RFC 6806 [1] name
+canonicalization is requested by clients in TGT requests to KDC
+services (AS protocol). Otherwise, and by default, it is not
+requested.
+
+The new default behavior is different from previous releases where
+name canonicalization was always requested by clients in TGT requests
+to KDC services (provided that support for RFC 6806[1] was not
+explicitly disabled with the *sun.security.krb5.disableReferrals*
+system or security properties).
+
+[0]:
https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html
+[1]:
https://tools.ietf.org/html/rfc6806
+
+security-libs/javax.xml.crypto:
+
+JDK-8202891: Updated xmldsig Implementation to Apache Santuario 2.1.1
+=====================================================================
+The XMLDSig provider implementation in the `java.xml.crypto` module has been updated to
version 2.1.1 of Apache Santuario.
+
+New features include:
+
+1. Support for the SHA-224 and SHA-3 DigestMethod algorithms specified
+in RFC 6931.
+2. Support for the HMAC-SHA224, RSA-SHA224, ECDSA-SHA224, and
+RSASSA-PSS family of SignatureMethod algorithms specified in RFC 6931.
+
+JDK-8238185: New OpenJDK-specific JDK 8 Updates System Property to fallback to legacy
Base64 Encoding format
+============================================================================================================
+The upgrade to the Apache Santuario libraries (see above) introduced
+an issue where XML signature using Base64 encoding resulted in
+appending `
` or `
` to the encoded output. This behavioural
+change was made in the Apache Santuario codebase to comply with RFC
+2045. The Santuario team has adopted a position of keeping their
+libraries compliant with RFC 2045.
+
+Earlier versions of OpenJDK 8 using the legacy encoder returns encoded
+data in a format without `
` or `
`.
+
+Therefore a new system property, specific to the 8 update stream,
+`com.sun.org.apache.xml.internal.security.lineFeedOnly` is made
+available to fall back to the legacy Base64 encoded format.
+
+Users can set this flag in one of two ways:
+
+1. -Dcom.sun.org.apache.xml.internal.security.lineFeedOnly=true
+
+2. System.setProperty("com.sun.org.apache.xml.internal.security.lineFeedOnly",
"true")
+
+This new system property is disabled by default. It has no effect on
+default behaviour nor when
+`com.sun.org.apache.xml.internal.security.ignoreLineBreaks` property
+is set.
+
+Later JDK family versions will only support the recommended property:
+
+`com.sun.org.apache.xml.internal.security.ignoreLineBreaks`
+
+JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b
+====================================================================
+Following JDK's update to tzdata2020b, the long-obsolete files
+pacificnew and systemv have been removed. As a result, the
+"US/Pacific-New" zone name declared in the pacificnew data file is no
+longer available for use.
+
+Information regarding the update can be viewed at
+https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html
+
New in release OpenJDK 8u265 (2020-07-27):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 200c989..bfbb066 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b09
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b10
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -265,7 +265,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1060,8 +1060,8 @@ Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/
Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
-# 2020a required as of JDK-8243541
-Requires: tzdata-java >= 2020a
+# 2020b required as of JDK-8254177 in October CPU
+Requires: tzdata-java >= 2020b
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
@@ -1345,13 +1345,15 @@ Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
#############################################
#
-# Patches appearing in 8u262
+# Patches appearing in 8u282
#
# This section includes patches which are present
# in the listed OpenJDK 8u release and should be
# able to be removed once that release is out
# and used by this RPM.
#############################################
+# JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b
+Patch13: jdk8254177-tzdata2020b.patch
#############################################
#
@@ -1429,8 +1431,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-# 2020a required as of JDK-8243541
-BuildRequires: tzdata-java >= 2020a
+# 2020b required as of JDK-8254177 in October CPU
+BuildRequires: tzdata-java >= 2020b
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -1722,6 +1724,7 @@ sh %{SOURCE12}
%patch575
%patch577
%patch111
+%patch13
# RPM-only fixes
%patch539
@@ -2403,6 +2406,15 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Oct 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b10-0
+- Update to aarch64-shenandoah-jdk8u272-b10.
+- Switch to GA mode for final release.
+- Update release notes for 8u272 release.
+- Add backport of JDK-8254177 to update to tzdata 2020b
+- Require tzdata 2020b due to resource changes in JDK-8254177
+- Adjust JDK-8062808/PR3548 following constantPool.hpp context change in JDK-8243302
+- Adjust PR3593 following g1StringDedupTable.cpp context change in JDK-8240124 &
JDK-8244955
+
* Mon Sep 28 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b09-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b09 (EA).
diff --git a/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
b/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
index e91abd3..1010b73 100644
--- a/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
+++ b/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
@@ -132,7 +132,7 @@ diff --git
openjdk.orig/hotspot/src/share/vm/memory/metaspaceShared.hpp openjdk/
diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
openjdk/hotspot/src/share/vm/oops/constantPool.hpp
--- openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
+++ openjdk/hotspot/src/share/vm/oops/constantPool.hpp
-@@ -352,7 +352,7 @@
+@@ -353,7 +353,7 @@
Klass* klass_at(int which, TRAPS) {
constantPoolHandle h_this(THREAD, this);
@@ -140,7 +140,7 @@ diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
openjdk/hotsp
+ return klass_at_impl(h_this, which, THREAD);
}
- Symbol* klass_name_at(int which); // Returns the name, w/o resolving.
+ Symbol* klass_name_at(int which) const; // Returns the name, w/o resolving.
diff --git openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
openjdk/hotspot/src/share/vm/prims/jvm.cpp
--- openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
+++ openjdk/hotspot/src/share/vm/prims/jvm.cpp
diff --git a/jdk8254177-tzdata2020b.patch b/jdk8254177-tzdata2020b.patch
new file mode 100644
index 0000000..abd9131
--- /dev/null
+++ b/jdk8254177-tzdata2020b.patch
@@ -0,0 +1,3849 @@
+diff --git openjdk.orig/jdk/make/data/tzdata/VERSION
openjdk/jdk/make/data/tzdata/VERSION
+--- openjdk.orig/jdk/make/data/tzdata/VERSION
++++ openjdk/jdk/make/data/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2020a
++tzdata2020b
+diff --git openjdk.orig/jdk/make/data/tzdata/africa openjdk/jdk/make/data/tzdata/africa
+--- openjdk.orig/jdk/make/data/tzdata/africa
++++ openjdk/jdk/make/data/tzdata/africa
+@@ -87,7 +87,7 @@
+ # Corrections are welcome.
+
+ # Algeria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
+ Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
+ Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
+@@ -110,10 +110,9 @@
+ Rule Algeria 1978 only - Sep 22 3:00 0 -
+ Rule Algeria 1980 only - Apr 25 0:00 1:00 S
+ Rule Algeria 1980 only - Oct 31 2:00 0 -
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
++# See Europe/Paris for PMT-related transitions.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
++Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+ 0:00 Algeria WE%sT 1940 Feb 25 2:00
+ 1:00 Algeria CE%sT 1946 Oct 7
+@@ -199,7 +198,7 @@
+ # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
+ # did not apply to Cairo, Alexandria, or Port Said.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Egypt 1940 only - Jul 15 0:00 1:00 S
+ Rule Egypt 1940 only - Oct 1 0:00 0 -
+ Rule Egypt 1941 only - Apr 15 0:00 1:00 S
+@@ -434,7 +433,7 @@
+ # now Ghana observed different DST regimes in different years. For
+ # lack of better info, use Shanks except treat the minus sign as a
+ # typo, and assume DST started in 1920 not 1936.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
+ Rule Ghana 1920 1942 - Dec 31 0:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -524,7 +523,7 @@
+ # From Paul Eggert (2013-10-25):
+ # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Libya 1951 only - Oct 14 2:00 1:00 S
+ Rule Libya 1952 only - Jan 1 0:00 0 -
+ Rule Libya 1953 only - Oct 9 2:00 1:00 S
+@@ -647,7 +646,7 @@
+ # "The trial ended on March 29, 2009, when the clocks moved back by one hour
+ # at 2am (or 02:00) local time..."
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
+ Rule Mauritius 1983 only - Mar 21 0:00 0 -
+ Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
+@@ -898,17 +897,30 @@
+ #
https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dim...
+ #
http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-proc...
+ #
+-# From Paul Eggert (2020-04-14):
++# From Milamber (2020-05-31)
++# In Morocco (where I live), the end of Ramadan (Arabic month) is followed by
++# the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with
++# traditional visiting of family, big lunches/dinners, etc.). So for this
++# year the astronomical calculations don't include the following 2 days off in
++# the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by
++# people to have a time shift during these 2 days off. Perhaps you can modify
++# the (predicted) rules for next years: if the end of Ramadan is a (probable)
++# Friday or Saturday (and so the 2 days off are on a weekend), the next time
++# shift will be the next weekend.
++#
++# From Paul Eggert (2020-05-31):
+ # For now, guess that in the future Morocco will fall back at 03:00
+ # the last Sunday before Ramadan, and spring forward at 02:00 the
+-# first Sunday after the day after Ramadan. To implement this,
+-# transition dates for 2021 through 2087 were determined by running
+-# the following program under GNU Emacs 26.3.
+-# (let ((islamic-year 1442))
++# first Sunday after two days after Ramadan. To implement this,
++# transition dates and times for 2019 through 2087 were determined by
++# running the following program under GNU Emacs 26.3. (This algorithm
++# also produces the correct transition dates for 2016 through 2018,
++# though the times differ due to Morocco's time zone change in 2018.)
++# (let ((islamic-year 1440))
+ # (require 'cal-islam)
+ # (while (< islamic-year 1511)
+ # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
+-# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
++# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
+ # (sunday 0))
+ # (while (/= sunday (mod (setq a (1- a)) 7)))
+ # (while (/= sunday (mod b 7))
+@@ -923,7 +935,7 @@
+ # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
+ # (setq islamic-year (+ 1 islamic-year))))
+
+-# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Morocco 1939 only - Sep 12 0:00 1:00 -
+ Rule Morocco 1939 only - Nov 19 0:00 0 -
+ Rule Morocco 1940 only - Feb 25 0:00 1:00 -
+@@ -974,7 +986,7 @@
+ Rule Morocco 2022 only - Mar 27 3:00 0 -
+ Rule Morocco 2022 only - May 8 2:00 1:00 -
+ Rule Morocco 2023 only - Mar 19 3:00 0 -
+-Rule Morocco 2023 only - Apr 23 2:00 1:00 -
++Rule Morocco 2023 only - Apr 30 2:00 1:00 -
+ Rule Morocco 2024 only - Mar 10 3:00 0 -
+ Rule Morocco 2024 only - Apr 14 2:00 1:00 -
+ Rule Morocco 2025 only - Feb 23 3:00 0 -
+@@ -990,7 +1002,7 @@
+ Rule Morocco 2029 only - Dec 30 3:00 0 -
+ Rule Morocco 2030 only - Feb 10 2:00 1:00 -
+ Rule Morocco 2030 only - Dec 22 3:00 0 -
+-Rule Morocco 2031 only - Jan 26 2:00 1:00 -
++Rule Morocco 2031 only - Feb 2 2:00 1:00 -
+ Rule Morocco 2031 only - Dec 14 3:00 0 -
+ Rule Morocco 2032 only - Jan 18 2:00 1:00 -
+ Rule Morocco 2032 only - Nov 28 3:00 0 -
+@@ -1006,7 +1018,7 @@
+ Rule Morocco 2037 only - Oct 4 3:00 0 -
+ Rule Morocco 2037 only - Nov 15 2:00 1:00 -
+ Rule Morocco 2038 only - Sep 26 3:00 0 -
+-Rule Morocco 2038 only - Oct 31 2:00 1:00 -
++Rule Morocco 2038 only - Nov 7 2:00 1:00 -
+ Rule Morocco 2039 only - Sep 18 3:00 0 -
+ Rule Morocco 2039 only - Oct 23 2:00 1:00 -
+ Rule Morocco 2040 only - Sep 2 3:00 0 -
+@@ -1022,7 +1034,7 @@
+ Rule Morocco 2045 only - Jul 9 3:00 0 -
+ Rule Morocco 2045 only - Aug 20 2:00 1:00 -
+ Rule Morocco 2046 only - Jul 1 3:00 0 -
+-Rule Morocco 2046 only - Aug 5 2:00 1:00 -
++Rule Morocco 2046 only - Aug 12 2:00 1:00 -
+ Rule Morocco 2047 only - Jun 23 3:00 0 -
+ Rule Morocco 2047 only - Jul 28 2:00 1:00 -
+ Rule Morocco 2048 only - Jun 7 3:00 0 -
+@@ -1038,7 +1050,7 @@
+ Rule Morocco 2053 only - Apr 13 3:00 0 -
+ Rule Morocco 2053 only - May 25 2:00 1:00 -
+ Rule Morocco 2054 only - Apr 5 3:00 0 -
+-Rule Morocco 2054 only - May 10 2:00 1:00 -
++Rule Morocco 2054 only - May 17 2:00 1:00 -
+ Rule Morocco 2055 only - Mar 28 3:00 0 -
+ Rule Morocco 2055 only - May 2 2:00 1:00 -
+ Rule Morocco 2056 only - Mar 12 3:00 0 -
+@@ -1054,7 +1066,7 @@
+ Rule Morocco 2061 only - Jan 16 3:00 0 -
+ Rule Morocco 2061 only - Feb 27 2:00 1:00 -
+ Rule Morocco 2062 only - Jan 8 3:00 0 -
+-Rule Morocco 2062 only - Feb 12 2:00 1:00 -
++Rule Morocco 2062 only - Feb 19 2:00 1:00 -
+ Rule Morocco 2062 only - Dec 31 3:00 0 -
+ Rule Morocco 2063 only - Feb 4 2:00 1:00 -
+ Rule Morocco 2063 only - Dec 16 3:00 0 -
+@@ -1070,7 +1082,7 @@
+ Rule Morocco 2068 only - Oct 21 3:00 0 -
+ Rule Morocco 2068 only - Dec 2 2:00 1:00 -
+ Rule Morocco 2069 only - Oct 13 3:00 0 -
+-Rule Morocco 2069 only - Nov 17 2:00 1:00 -
++Rule Morocco 2069 only - Nov 24 2:00 1:00 -
+ Rule Morocco 2070 only - Oct 5 3:00 0 -
+ Rule Morocco 2070 only - Nov 9 2:00 1:00 -
+ Rule Morocco 2071 only - Sep 20 3:00 0 -
+@@ -1086,7 +1098,7 @@
+ Rule Morocco 2076 only - Jul 26 3:00 0 -
+ Rule Morocco 2076 only - Sep 6 2:00 1:00 -
+ Rule Morocco 2077 only - Jul 18 3:00 0 -
+-Rule Morocco 2077 only - Aug 22 2:00 1:00 -
++Rule Morocco 2077 only - Aug 29 2:00 1:00 -
+ Rule Morocco 2078 only - Jul 10 3:00 0 -
+ Rule Morocco 2078 only - Aug 14 2:00 1:00 -
+ Rule Morocco 2079 only - Jun 25 3:00 0 -
+@@ -1096,13 +1108,13 @@
+ Rule Morocco 2081 only - Jun 1 3:00 0 -
+ Rule Morocco 2081 only - Jul 13 2:00 1:00 -
+ Rule Morocco 2082 only - May 24 3:00 0 -
+-Rule Morocco 2082 only - Jun 28 2:00 1:00 -
++Rule Morocco 2082 only - Jul 5 2:00 1:00 -
+ Rule Morocco 2083 only - May 16 3:00 0 -
+ Rule Morocco 2083 only - Jun 20 2:00 1:00 -
+ Rule Morocco 2084 only - Apr 30 3:00 0 -
+ Rule Morocco 2084 only - Jun 11 2:00 1:00 -
+ Rule Morocco 2085 only - Apr 22 3:00 0 -
+-Rule Morocco 2085 only - May 27 2:00 1:00 -
++Rule Morocco 2085 only - Jun 3 2:00 1:00 -
+ Rule Morocco 2086 only - Apr 14 3:00 0 -
+ Rule Morocco 2086 only - May 19 2:00 1:00 -
+ Rule Morocco 2087 only - Mar 30 3:00 0 -
+@@ -1203,7 +1215,7 @@
+ # Use plain "WAT" and "CAT" for the time zone abbreviations, to be
compatible
+ # with Namibia's neighbors.
+
+-# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Vanguard section, for zic and other parsers that support negative DST.
+ #Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
+ #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
+@@ -1326,7 +1338,7 @@
+ # See Africa/Nairobi.
+
+ # South Africa
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
+ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1359,7 +1371,7 @@
+ # Abdalla of NTC, archived at:
+ #
https://mm.icann.org/pipermail/tz/2017-October/025333.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Sudan 1970 only - May 1 0:00 1:00 S
+ Rule Sudan 1970 1985 - Oct 15 0:00 0 -
+ Rule Sudan 1971 only - Apr 30 0:00 1:00 S
+@@ -1447,7 +1459,7 @@
+ #
http://www.almadenahnews.com/newss/news.php?c=118&id=38036
+ #
http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
+ Rule Tunisia 1939 only - Nov 18 23:00s 0 -
+ Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
+@@ -1474,9 +1486,7 @@
+ Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
+ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
+
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
+-# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
++# See Europe/Paris for PMT-related transitions.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+diff --git openjdk.orig/jdk/make/data/tzdata/antarctica
openjdk/jdk/make/data/tzdata/antarctica
+--- openjdk.orig/jdk/make/data/tzdata/antarctica
++++ openjdk/jdk/make/data/tzdata/antarctica
+@@ -93,15 +93,30 @@
+ # Australian Antarctica Division informed us that Casey changed time
+ # zone to UTC+11 in "the morning of 22nd October 2016".
+
++# From Steffen Thorsen (2020-10-02, as corrected):
++# Based on information we have received from the Australian Antarctic
++# Division, Casey station and Macquarie Island station will move to Tasmanian
++# daylight savings time on Sunday 4 October. This will take effect from 0001
++# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will
++# be on the same time zone as Hobart. Some past dates too for this 3 hour
++# time change back and forth between UTC+8 and UTC+11 for Casey:
++# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00
++# and now - 2020 Oct 4 0:01
++
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Antarctica/Casey 0 - -00 1969
+- 8:00 - +08 2009 Oct 18 2:00
++Zone Antarctica/Casey 0 - -00 1969
++ 8:00 - +08 2009 Oct 18 2:00
+ 11:00 - +11 2010 Mar 5 2:00
+- 8:00 - +08 2011 Oct 28 2:00
++ 8:00 - +08 2011 Oct 28 2:00
+ 11:00 - +11 2012 Feb 21 17:00u
+- 8:00 - +08 2016 Oct 22
++ 8:00 - +08 2016 Oct 22
+ 11:00 - +11 2018 Mar 11 4:00
+- 8:00 - +08
++ 8:00 - +08 2018 Oct 7 4:00
++ 11:00 - +11 2019 Mar 17 3:00
++ 8:00 - +08 2019 Oct 4 3:00
++ 11:00 - +11 2020 Mar 8 3:00
++ 8:00 - +08 2020 Oct 4 0:01
++ 11:00 - +11
+ Zone Antarctica/Davis 0 - -00 1957 Jan 13
+ 7:00 - +07 1964 Nov
+ 0 - -00 1969 Feb
+@@ -247,7 +262,7 @@
+ # suggested by Bengt-Inge Larsson comment them out for now, and approximate
+ # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
+ Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
+ #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
+diff --git openjdk.orig/jdk/make/data/tzdata/asia openjdk/jdk/make/data/tzdata/asia
+--- openjdk.orig/jdk/make/data/tzdata/asia
++++ openjdk/jdk/make/data/tzdata/asia
+@@ -93,7 +93,7 @@
+ ###############################################################################
+
+ # These rules are stolen from the 'europe' file.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
+ Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
+ Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
+@@ -137,7 +137,7 @@
+ # or
+ # (brief)
+ #
http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
+ Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -163,7 +163,7 @@
+ #
http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-d...
+ #
http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
+ Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -250,7 +250,7 @@
+ #
http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
+ #
http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
+ Rule Dhaka 2009 only - Dec 31 24:00 0 -
+
+@@ -326,7 +326,7 @@
+ # generally esteemed a success, it was announced early in 1920 that it would
+ # not be repeated."
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Shang 1919 only - Apr 12 24:00 1:00 D
+ Rule Shang 1919 only - Sep 30 24:00 0 S
+
+@@ -422,7 +422,7 @@
+ # the Yangtze river delta area during that period of time although the scope
+ # of such use will need to be investigated to determine.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Shang 1940 only - Jun 1 0:00 1:00 D
+ Rule Shang 1940 only - Oct 12 24:00 0 S
+ Rule Shang 1941 only - Mar 15 0:00 1:00 D
+@@ -485,7 +485,7 @@
+ # to begin on 17 April.
+ #
http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule PRC 1986 only - May 4 2:00 1:00 D
+ Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
+ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
+@@ -869,7 +869,7 @@
+ # or dates for the 1942 and 1945 transitions.
+ # The Japanese occupation of Hong Kong began 1941-12-25.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule HK 1946 only - Apr 21 0:00 1:00 S
+ Rule HK 1946 only - Dec 1 3:30s 0 -
+ Rule HK 1947 only - Apr 13 3:30s 1:00 S
+@@ -996,7 +996,7 @@
+ # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
+ # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Taiwan 1946 only - May 15 0:00 1:00 D
+ Rule Taiwan 1946 only - Oct 1 0:00 0 S
+ Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
+@@ -1122,7 +1122,7 @@
+ # The 1904 decree says that Macau changed from the meridian of
+ # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
+ Rule Macau 1942 only - Nov 17 23:00 0 -
+ Rule Macau 1943 only - Sep 30 23:00 0 S
+@@ -1180,7 +1180,7 @@
+ # Cyprus to remain united in time. Cyprus Mail 2017-10-17.
+ #
https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
+ Rule Cyprus 1975 only - Oct 12 0:00 0 -
+ Rule Cyprus 1976 only - May 15 0:00 1:00 S
+@@ -1557,7 +1557,7 @@
+ # be changed back to its previous state on the 24 hours of the
+ # thirtieth day of Shahrivar.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iran 1978 1980 - Mar 20 24:00 1:00 -
+ Rule Iran 1978 only - Oct 20 24:00 0 -
+ Rule Iran 1979 only - Sep 18 24:00 0 -
+@@ -1699,7 +1699,7 @@
+ # We have published a short article in English about the change:
+ #
https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iraq 1982 only - May 1 0:00 1:00 -
+ Rule Iraq 1982 1984 - Oct 1 0:00 0 -
+ Rule Iraq 1983 only - Mar 31 0:00 1:00 -
+@@ -1722,6 +1722,10 @@
+
+ # Israel
+
++# For more info about the motivation for DST in Israel, see:
++# Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs.
++# 2020-08-11.
https://doi.org/10.1080/13537121.2020.1806564
++
+ # From Ephraim Silverberg (2001-01-11):
+ #
+ # I coined "IST/IDT" circa 1988. Until then there were three
+@@ -1743,7 +1747,7 @@
+ # family is from India).
+
+ # From Shanks & Pottenger:
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1940 only - Jun 1 0:00 1:00 D
+ Rule Zion 1942 1944 - Nov 1 0:00 0 S
+ Rule Zion 1943 only - Apr 1 2:00 1:00 D
+@@ -1835,7 +1839,7 @@
+ # (except in 2002) is three nights before Yom Kippur [Day of Atonement]
+ # (the eve of the 7th of Tishrei in the lunar Hebrew calendar).
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1989 only - Apr 30 0:00 1:00 D
+ Rule Zion 1989 only - Sep 3 0:00 0 S
+ Rule Zion 1990 only - Mar 25 0:00 1:00 D
+@@ -1851,7 +1855,7 @@
+ # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by
+ # calling the office directly at 972-2-6701447 or 972-2-6701448.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1994 only - Apr 1 0:00 1:00 D
+ Rule Zion 1994 only - Aug 28 0:00 0 S
+ Rule Zion 1995 only - Mar 31 0:00 1:00 D
+@@ -1871,7 +1875,7 @@
+ #
+ # where YYYY is the relevant year.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1996 only - Mar 15 0:00 1:00 D
+ Rule Zion 1996 only - Sep 16 0:00 0 S
+ Rule Zion 1997 only - Mar 21 0:00 1:00 D
+@@ -1894,7 +1898,7 @@
+ #
+ # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2000 only - Apr 14 2:00 1:00 D
+ Rule Zion 2000 only - Oct 6 1:00 0 S
+ Rule Zion 2001 only - Apr 9 1:00 1:00 D
+@@ -1916,7 +1920,7 @@
+ #
+ # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
+ Rule Zion 2005 only - Oct 9 2:00 0 S
+ Rule Zion 2006 only - Oct 1 2:00 0 S
+@@ -1936,7 +1940,7 @@
+ # As of 2013, DST starts at 02:00 on the Friday before the last Sunday
+ # in March. DST ends at 02:00 on the last Sunday of October.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
+ Rule Zion 2013 max - Oct lastSun 2:00 0 S
+
+@@ -2036,7 +2040,7 @@
+ # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later,
+ # which should be safe now.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
+ Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S
+ Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
+@@ -2113,7 +2117,7 @@
+ # From Paul Eggert (2013-12-11):
+ # As Steffen suggested, consider the past 21-month experiment to be DST.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Jordan 1973 only - Jun 6 0:00 1:00 S
+ Rule Jordan 1973 1975 - Oct 1 0:00 0 -
+ Rule Jordan 1974 1977 - May 1 0:00 1:00 S
+@@ -2439,7 +2443,7 @@
+ # Our government cancels daylight saving time 6th of August 2005.
+ # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
+ Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
+ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
+@@ -2495,7 +2499,7 @@
+ # follow and continued to use GMT+9:00 for interoperability.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule ROK 1948 only - Jun 1 0:00 1:00 D
+ Rule ROK 1948 only - Sep 12 24:00 0 S
+ Rule ROK 1949 only - Apr 3 0:00 1:00 D
+@@ -2583,7 +2587,7 @@
+
+
+ # Lebanon
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
+ Rule Lebanon 1920 only - Oct 25 0:00 0 -
+ Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
+@@ -2613,7 +2617,7 @@
+ 2:00 Lebanon EE%sT
+
+ # Malaysia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
+ Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
+ #
+@@ -2758,7 +2762,7 @@
+ # September daylight saving time ends. Source:
+ #
http://zasag.mn/news/view/8969
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
+ Rule Mongol 1983 only - Oct 1 0:00 0 -
+ # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
+@@ -2946,7 +2950,7 @@
+ # "People laud PM's announcement to end DST"
+ #
http://www.app.com.pk/en_/index.php?option=com_content&task=view&...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
+ Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
+ Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
+@@ -3248,7 +3252,7 @@
+ # From Tim Parenti (2016-10-19):
+ # Predict fall transitions on October's last Saturday at 01:00 from now on.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
+ Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
+ Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
+@@ -3348,7 +3352,7 @@
+ # influence of the sources. There is no current abbreviation for DST,
+ # so use "PDT", the usual American style.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Phil 1936 only - Nov 1 0:00 1:00 D
+ Rule Phil 1937 only - Feb 1 0:00 0 S
+ Rule Phil 1954 only - Apr 12 0:00 1:00 D
+@@ -3496,7 +3500,7 @@
+ 5:30 - +0530
+
+ # Syria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
+ Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
+ Rule Syria 1962 only - Apr 29 2:00 1:00 S
+diff --git openjdk.orig/jdk/make/data/tzdata/australasia
openjdk/jdk/make/data/tzdata/australasia
+--- openjdk.orig/jdk/make/data/tzdata/australasia
++++ openjdk/jdk/make/data/tzdata/australasia
+@@ -36,7 +36,7 @@
+
+ # Please see the notes below for the controversy about "EST" versus
"AEST" etc.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Aus 1917 only - Jan 1 0:01 1:00 D
+ Rule Aus 1917 only - Mar 25 2:00 0 S
+ Rule Aus 1942 only - Jan 1 2:00 1:00 D
+@@ -55,7 +55,7 @@
+ 9:30 Aus AC%sT
+ # Western Australia
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
+ Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
+ Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
+@@ -93,7 +93,7 @@
+ # applies to all of the Whitsundays.
+ #
http://www.australia.gov.au/about-australia/australian-story/austn-islands
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
+ Rule AQ 1972 only - Feb lastSun 2:00s 0 S
+ Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
+@@ -109,7 +109,7 @@
+ 10:00 Holiday AE%sT
+
+ # South Australia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AS 1986 only - Oct 19 2:00s 1:00 D
+ Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
+@@ -137,7 +137,7 @@
+ #
http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
+ # says King Island didn't observe DST from WWII until late 1971.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
+ Rule AT 1968 only - Mar lastSun 2:00s 0 S
+ Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
+@@ -170,7 +170,7 @@
+ 10:00 AT AE%sT
+
+ # Victoria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AV 1972 only - Feb lastSun 2:00s 0 S
+ Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
+@@ -191,7 +191,7 @@
+ 10:00 AV AE%sT
+
+ # New South Wales
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AN 1972 only - Feb 27 2:00s 0 S
+ Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
+@@ -220,7 +220,7 @@
+ 9:30 AS AC%sT
+
+ # Lord Howe Island
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
+ Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
+ Rule LH 1985 only - Oct lastSun 2:00 0:30 -
+@@ -275,8 +275,9 @@
+ 10:00 Aus AE%sT 1919 Apr 1 0:00s
+ 0 - -00 1948 Mar 25
+ 10:00 Aus AE%sT 1967
+- 10:00 AT AE%sT 2010 Apr 4 3:00
+- 11:00 - +11
++ 10:00 AT AE%sT 2010
++ 10:00 1:00 AEDT 2011
++ 10:00 AT AE%sT
+
+ # Christmas
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -403,7 +404,7 @@
+ # From Michael Deckers (2019-08-06):
+ #
https://www.laws.gov.fj/LawsAsMade/downloadfile/848
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
+ Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
+ Rule Fiji 2009 only - Nov 29 2:00 1:00 -
+@@ -432,7 +433,7 @@
+
+ # Guam
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #
http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
+ #
http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savi...
+ Rule Guam 1959 only - Jun 27 2:00 1:00 D
+@@ -543,7 +544,7 @@
+ 12:00 - +12
+
+ # New Caledonia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
+ Rule NC 1978 1979 - Feb 27 0:00 0 -
+ Rule NC 1996 only - Dec 1 2:00s 1:00 -
+@@ -558,7 +559,7 @@
+
+ # New Zealand
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NZ 1927 only - Nov 6 2:00 1:00 S
+ Rule NZ 1928 only - Mar 4 2:00 0 M
+ Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
+@@ -610,7 +611,7 @@
+
+ # Cook Is
+ # From Shanks & Pottenger:
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cook 1978 only - Nov 12 0:00 0:30 -
+ Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
+ Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
+@@ -755,7 +756,7 @@
+ # That web page currently lists transitions for 2012/3 and 2013/4.
+ # Assume the pattern instituted in 2012 will continue indefinitely.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule WS 2010 only - Sep lastSun 0:00 1 -
+ Rule WS 2011 only - Apr Sat>=1 4:00 0 -
+ Rule WS 2011 only - Sep lastSat 3:00 1 -
+@@ -799,7 +800,7 @@
+ 13:00 - +13
+
+ # Tonga
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
+ Rule Tonga 2000 only - Mar 19 2:00s 0 -
+ Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
+@@ -880,7 +881,7 @@
+
+
+ # Vanuatu
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Vanuatu 1983 only - Sep 25 0:00 1:00 -
+ Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 -
+ Rule Vanuatu 1984 only - Oct 23 0:00 1:00 -
+diff --git openjdk.orig/jdk/make/data/tzdata/europe openjdk/jdk/make/data/tzdata/europe
+--- openjdk.orig/jdk/make/data/tzdata/europe
++++ openjdk/jdk/make/data/tzdata/europe
+@@ -411,7 +411,7 @@
+ #
http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
+ #
http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Summer Time Act, 1916
+ Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
+ Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
+@@ -552,7 +552,7 @@
+ # The following is like GB-Eire and EU, except with standard time in
+ # summer and negative daylight saving time in winter. It is for when
+ # negative SAVE values are used.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #Rule Eire 1971 only - Oct 31 2:00u -1:00 -
+ #Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
+ #Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
+@@ -589,7 +589,7 @@
+ # predecessor organization, the European Communities.
+ # For brevity they are called "EU rules" elsewhere in this file.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
+ Rule EU 1977 only - Sep lastSun 1:00u 0 -
+ Rule EU 1978 only - Oct 1 1:00u 0 -
+@@ -629,13 +629,13 @@
+ # corrected in version 2008d). The circumstantial evidence is simply the
+ # tz database itself, as seen below:
+ #
+-# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
++# Zone Europe/Paris ...
+ # 0:00 France WE%sT 1945 Sep 16 3:00
+ #
+-# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
++# Zone Europe/Monaco ...
+ # 0:00 France WE%sT 1945 Sep 16 3:00
+ #
+-# Zone Europe/Belgrade 1:22:00 - LMT 1884
++# Zone Europe/Belgrade ...
+ # 1:00 1:00 CEST 1945 Sep 16 2:00s
+ #
+ # Rule France 1945 only - Sep 16 3:00 0 -
+@@ -681,7 +681,7 @@
+ #
+ # The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
+ #
+ # Decree No. 142 (1917-12-22)
http://istmat.info/node/28137
+@@ -795,7 +795,7 @@
+
+
+ # Albania
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Albania 1940 only - Jun 16 0:00 1:00 S
+ Rule Albania 1942 only - Nov 2 3:00 0 -
+ Rule Albania 1943 only - Mar 29 2:00 1:00 S
+@@ -849,7 +849,7 @@
+ # In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
+ # Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Austria 1920 only - Apr 5 2:00s 1:00 S
+ Rule Austria 1920 only - Sep 13 2:00s 0 -
+ Rule Austria 1946 only - Apr 14 2:00s 1:00 S
+@@ -936,7 +936,7 @@
+ # The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
+ # Assume Brussels switched to WET in 1918 when the armistice took effect.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
+ Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
+ Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
+@@ -996,7 +996,7 @@
+ # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
+ # EETDST -> EET is in 04:00 Local time in last Sunday of October
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Bulg 1979 only - Mar 31 23:00 1:00 S
+ Rule Bulg 1979 only - Oct 1 1:00 0 -
+ Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
+@@ -1028,7 +1028,7 @@
+ # We know of no English-language name for historical Czech winter time;
+ # abbreviate it as "GMT", as it happened to be GMT.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
+ Rule Czech 1945 only - Oct 1 2:00s 0 -
+ Rule Czech 1946 only - May 6 2:00s 1:00 S
+@@ -1084,7 +1084,7 @@
+ # Hence the "02:00" of the 1980 law refers to standard time, not
+ # wall-clock time, and so the EU rules were in effect in 1980.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Denmark 1916 only - May 14 23:00 1:00 S
+ Rule Denmark 1916 only - Sep 30 23:00 0 -
+ Rule Denmark 1940 only - May 15 0:00 1:00 S
+@@ -1186,7 +1186,7 @@
+ #
http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-t...
+ # It is their only National Park.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
+ Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
+ Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
+@@ -1317,7 +1317,7 @@
+ # From Paul Eggert (2014-06-14):
+ # Go with Oja over Shanks.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Finland 1942 only - Apr 2 24:00 1:00 S
+ Rule Finland 1942 only - Oct 4 1:00 0 -
+ Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
+@@ -1349,10 +1349,58 @@
+ # Françoise Gauquelin, Problèmes de l'heure résolus en astrologie,
+ # Guy Trédaniel, Paris 1987
+
++# From Michael Deckers (2020-06-11):
++# the law of 1891 <
https://gallica.bnf.fr/ark:/12148/bpt6k64415343.texteImage>
++# was published on 1891-03-15, so it could only take force on 1891-03-16.
++
++# From Michael Deckers (2020-06-10):
++# Le Gaulois, 1911-03-11, page 1/6, online at
++#
https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lh...
++# ... [ Instantly, all pressure driven clock dials halted... Nine minutes and
++# twenty-one seconds later the hands resumed their circular motion. ]
++# There are also precise reports about how the change was prepared in train
++# stations: all the publicly visible clocks stopped at midnight railway time
++# (or were covered), only the chief of service had a watch, labeled
++# "Heure ancienne", that he kept running until it reached 00:04:21, when
++# he announced "Heure nouvelle". See the "Le Petit Journal
1911-03-11".
++#
https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom
++#
++# From Michael Deckers (2020-06-12):
++# That "all French clocks stopped" for 00:09:21 is a misreading of French
++# newspapers; this sort of adjustment applies only to certain
++# remote-controlled clocks ("pendules pneumatiques", of which there existed
++# perhaps a dozen in Paris, and which simply could not be set back remotely),
++# but not to all the clocks in all French towns and villages. For instance,
++# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2:
++# only works if legal time was stepped back (was not monotone): ...
++# [One can observe that children who had been born at midnight less 5
++# minutes and who had died at midnight of the old time, would turn out to
++# be dead before being born, time having been set back and having
++# suppressed 9 minutes and 25 seconds of their existence, that is, more
++# than they could spend.]
++#
++# From Paul Eggert (2020-06-12):
++# French time in railway stations was legally five minutes behind civil time,
++# which explains why railway "old time" ran to 00:04:21 instead of to
00:09:21.
++# The law's text (which Michael Deckers noted is at
++# <
https://gallica.bnf.fr/ark:/12148/bpt6k2022333z/f2>) says only that
++# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by
++# nine minutes and twenty-one seconds, and does not say how the
++# transition from Paris mean time was to occur.
++#
++# tzdb has no way to represent stopped clocks. As the railway practice
++# was to keep a watch running on "old time" to decide when to restart
++# the other clocks, this could be modeled as a transition for "old time" at
++# 00:09:21. However, since the law was ambiguous and clocks outside railway
++# stations were probably done haphazardly with the popular impression being
++# that the transition was done at 00:00 "old time", simply leave the time
++# blank; this causes zic to default to 00:00 "old time" which is good enough.
++# Do something similar for the 1891-03-16 transition. There are similar
++# problems in Algiers, Monaco and Tunis.
+
+ #
+ # Shank & Pottenger seem to use '24:00' ambiguously; resolve it with
Whitman.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule France 1916 only - Jun 14 23:00s 1:00 S
+ Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
+ Rule France 1917 only - Mar 24 23:00s 1:00 S
+@@ -1412,13 +1460,11 @@
+ # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
+ Rule France 1976 only - Mar 28 1:00 1:00 S
+ Rule France 1976 only - Sep 26 1:00 0 -
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
+-# but Howse quotes the actual French legislation as saying 0:09:21.
+-# Go with Howse. Howse writes that the time in France was officially based
++# Howse writes that the time in France was officially based
+ # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
+- 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT
++Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
++ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+ # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
+ 0:00 France WE%sT 1940 Jun 14 23:00
+ # Le Corre says Paris stuck with occupied-France time after the liberation;
+@@ -1447,7 +1493,7 @@
+ # this was equivalent to UT +03, not +04.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Germany 1946 only - Apr 14 2:00s 1:00 S
+ Rule Germany 1946 only - Oct 7 2:00s 0 -
+ Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
+@@ -1499,7 +1545,7 @@
+ 1:00 EU CE%sT
+
+ # Greece
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
+ Rule Greece 1932 only - Jul 7 0:00 1:00 S
+ Rule Greece 1932 only - Sep 1 0:00 0 -
+@@ -1534,38 +1580,69 @@
+ 2:00 EU EE%sT
+
+ # Hungary
+-# From Paul Eggert (2014-07-15):
+-# Dates for 1916-1945 are taken from:
+-# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945.
+-# National Archives of Hungary (2012-10-29).
+-#
http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19...
+-# This source does not always give times, which are taken from Shanks
+-# & Pottenger (which disagree about the dates).
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-Rule Hungary 1918 only - Apr 1 3:00 1:00 S
+-Rule Hungary 1918 only - Sep 16 3:00 0 -
+-Rule Hungary 1919 only - Apr 15 3:00 1:00 S
+-Rule Hungary 1919 only - Nov 24 3:00 0 -
++
++# From Michael Deckers (2020-06-09):
++# an Austrian encyclopedia of railroads of 1913, online at
++#
http://www.zeno.org/Roell-1912/A/Eisenbahnzeit
++# says that the switch [to CET] happened on 1890-11-01.
++
++# From Géza Nyáry (2020-06-07):
++# Data for 1918-1983 are based on the archive database of Library Hungaricana.
++# The dates are collected from original, scanned governmental orders,
++# bulletins, instructions and public press.
++# [See URLs below.]
++
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201
++Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
++Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
++Rule Hungary 1920 only - Apr 5 2:00 1:00 S
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882
+ Rule Hungary 1945 only - May 1 23:00 1:00 S
+-Rule Hungary 1945 only - Nov 1 0:00 0 -
++Rule Hungary 1945 only - Nov 1 1:00 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49
+ Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
+-Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54
++Rule Hungary 1946 only - Oct 7 2:00 0 -
++#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?...
++#
https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128
++#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?...
++#
https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64
++#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
++#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94
+ Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
+-Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
+-Rule Hungary 1950 only - Oct 23 2:00s 0 -
+-Rule Hungary 1954 1955 - May 23 0:00 1:00 S
+-Rule Hungary 1954 1955 - Oct 3 0:00 0 -
+-Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
+-Rule Hungary 1956 only - Sep lastSun 0:00 0 -
+-Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
+-Rule Hungary 1957 only - Sep lastSun 3:00 0 -
+-Rule Hungary 1980 only - Apr 6 1:00 1:00 S
++Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg...
++Rule Hungary 1954 only - May 23 0:00 1:00 S
++Rule Hungary 1954 only - Oct 3 0:00 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg...
++Rule Hungary 1955 only - May 22 2:00 1:00 S
++Rule Hungary 1955 only - Oct 2 3:00 0 -
++#
https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0
++#
https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6
++#
https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120
++#
https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143
++Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
++Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg...
++Rule Hungary 1980 only - Apr 6 0:00 1:00 S
++Rule Hungary 1980 only - Sep 28 1:00 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg...
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85
++Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
++Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
++#
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
++Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
+ 1:00 C-Eur CE%sT 1918
+- 1:00 Hungary CE%sT 1941 Apr 8
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204
++ 1:00 Hungary CE%sT 1941 Apr 7 23:00
+ 1:00 C-Eur CE%sT 1945
+- 1:00 Hungary CE%sT 1980 Sep 28 2:00s
++ 1:00 Hungary CE%sT 1984
+ 1:00 EU CE%sT
+
+ # Iceland
+@@ -1601,7 +1678,7 @@
+ # The information below is taken from the 1988 Almanak; see
+ #
http://www.almanak.hi.is/klukkan.html
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iceland 1917 1919 - Feb 19 23:00 1:00 -
+ Rule Iceland 1917 only - Oct 21 1:00 0 -
+ Rule Iceland 1918 1919 - Nov 16 1:00 0 -
+@@ -1693,7 +1770,7 @@
+ # to 1944-06-04; although Rome was an open city during this period, it
+ # was effectively controlled by Germany.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Italy 1916 only - Jun 3 24:00 1:00 S
+ Rule Italy 1916 1917 - Sep 30 24:00 0 -
+ Rule Italy 1917 only - Mar 31 24:00 1:00 S
+@@ -1803,7 +1880,7 @@
+ # urged Lithuania and Estonia to adopt a similar time policy, but it
+ # appears that they will not do so....
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
+ Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
+
+@@ -1896,7 +1973,7 @@
+ # Luxembourg
+ # Whitman disagrees with most of these dates in minor ways;
+ # go with Shanks & Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Lux 1916 only - May 14 23:00 1:00 S
+ Rule Lux 1916 only - Oct 1 1:00 0 -
+ Rule Lux 1917 only - Apr 28 23:00 1:00 S
+@@ -1937,7 +2014,7 @@
+ # From Paul Eggert (2016-10-21):
+ # Assume 1900-1972 was like Rome, overriding Shanks.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Malta 1973 only - Mar 31 0:00s 1:00 S
+ Rule Malta 1973 only - Sep 29 0:00s 0 -
+ Rule Malta 1974 only - Apr 21 0:00s 1:00 S
+@@ -2010,7 +2087,7 @@
+ # says the 2014-03-30 spring-forward transition was at 02:00 local time.
+ # Guess that since 1997 Moldova has switched one hour before the EU.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
+ Rule Moldova 1997 max - Oct lastSun 3:00 0 -
+
+@@ -2028,11 +2105,24 @@
+ 2:00 Moldova EE%sT
+
+ # Monaco
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
++#
++# From Michael Deckers (2020-06-12):
++# In the "Journal de Monaco" of 1892-05-24, online at
++#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c6...
++# we read: ...
++# [In virtue of a Sovereign Ordinance of the May 13 of the current [year],
++# legal time in the Principality will be set to, from the date of June 1,
++# 1892 onwards, to the meridian of Paris, as in France.]
++# In the "Journal de Monaco" of 1911-03-28, online at
++#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74...
++# we read an ordinance of 1911-03-16: ...
++# [Legal time in the Principality will be set, from the date of promulgation
++# of the present ordinance, to legal time in France.... Consequently, legal
++# time will be retarded by 9 minutes and 21 seconds.]
++#
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
+- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
++Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1
++ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time
+ 0:00 France WE%sT 1945 Sep 16 3:00
+ 1:00 France CE%sT 1977
+ 1:00 EU CE%sT
+@@ -2080,7 +2170,7 @@
+ # The data entries before 1945 are taken from
+ #
https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time
+ Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time
+ Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
+@@ -2117,7 +2207,7 @@
+ # Norway
+ #
http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
+ # Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Norway 1916 only - May 22 1:00 1:00 S
+ Rule Norway 1916 only - Sep 30 0:00 0 -
+ Rule Norway 1945 only - Apr 2 2:00s 1:00 S
+@@ -2186,7 +2276,7 @@
+ # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
+ # <
http://www.wbc.poznan.pl/publication/32156> pp 1-2.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Poland 1918 1919 - Sep 16 2:00s 0 -
+ Rule Poland 1919 only - Apr 15 2:00s 1:00 S
+ Rule Poland 1944 only - Apr 3 2:00s 1:00 S
+@@ -2257,7 +2347,7 @@
+ # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
+ # harmonized with EU rules), and that they stayed +0:00 that winter.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
+ # done every year, depending on what Spain did, because of railroad schedules.
+ # Go with Shanks & Pottenger.
+@@ -2370,7 +2460,7 @@
+ # assume that Romania and Moldova switched to EU rules in 1997,
+ # the same year as Bulgaria.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Romania 1932 only - May 21 0:00s 1:00 S
+ Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
+ Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
+@@ -3468,14 +3558,14 @@
+ # fallback transition from the next day's 00:59... to 00:00.
+
+ # From Michael Deckers (2016-12-15):
+-# The Royal Decree of 1900-06-26 quoted by Planesas, online at
++# The Royal Decree of 1900-07-26 quoted by Planesas, online at
+ #
https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf
+ # says in its article 5 (my translation):
+ # These dispositions will enter into force beginning with the
+ # instant at which, according to the time indicated in article 1,
+ # the 1st day of January of 1901 will begin.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Spain 1918 only - Apr 15 23:00 1:00 S
+ Rule Spain 1918 1919 - Oct 6 24:00s 0 -
+ Rule Spain 1919 only - Apr 6 23:00 1:00 S
+@@ -3612,7 +3702,7 @@
+ # By the end of the 18th century clocks and watches became commonplace
+ # and their performance improved enormously. Communities began to keep
+ # mean time in preference to apparent time - Geneva from 1780 ....
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # From Whitman (who writes "Midnight?"):
+ # Rule Swiss 1940 only - Nov 2 0:00 1:00 S
+ # Rule Swiss 1940 only - Dec 31 0:00 0 -
+@@ -3699,7 +3789,7 @@
+ # 1853-07-16, though it probably occurred at some other date in Zurich, and
+ # legal civil time probably changed at still some other transition date.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
+ Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -3848,7 +3938,7 @@
+ # Although Google Translate misfires on that source, it looks like
+ # Turkey reversed last month's decision, and so will stay at +03.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Turkey 1916 only - May 1 0:00 1:00 S
+ Rule Turkey 1916 only - Oct 1 0:00 0 -
+ Rule Turkey 1920 only - Mar 28 0:00 1:00 S
+@@ -4006,7 +4096,7 @@
+ 2:00 1:00 EEST 1991 Sep 29 3:00
+ 2:00 E-Eur EE%sT 1995
+ 2:00 EU EE%sT
+-# Ruthenia used CET 1990/1991.
++# Transcarpathia used CET 1990/1991.
+ # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
+ # "Uzhgorod" is more common in English.
+ Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
+diff --git openjdk.orig/jdk/make/data/tzdata/leapseconds
openjdk/jdk/make/data/tzdata/leapseconds
+--- openjdk.orig/jdk/make/data/tzdata/leapseconds
++++ openjdk/jdk/make/data/tzdata/leapseconds
+@@ -91,11 +91,11 @@
+ # Any additional leap seconds will come after this.
+ # This Expires line is commented out for now,
+ # so that pre-2020a zic implementations do not reject this file.
+-#Expires 2020 Dec 28 00:00:00
++#Expires 2021 Jun 28 00:00:00
+
+ # POSIX timestamps for the data in this file:
+ #updated 1467936000 (2016-07-08 00:00:00 UTC)
+-#expires 1609113600 (2020-12-28 00:00:00 UTC)
++#expires 1624838400 (2021-06-28 00:00:00 UTC)
+
+-# Updated through IERS Bulletin C59
+-# File expires on: 28 December 2020
++# Updated through IERS Bulletin C60
++# File expires on: 28 June 2021
+diff --git openjdk.orig/jdk/make/data/tzdata/northamerica
openjdk/jdk/make/data/tzdata/northamerica
+--- openjdk.orig/jdk/make/data/tzdata/northamerica
++++ openjdk/jdk/make/data/tzdata/northamerica
+@@ -193,7 +193,7 @@
+ # U.S. government action. So even though the "US" rules have changed
+ # in the latest release, other countries won't be affected.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
+ Rule US 1918 1919 - Oct lastSun 2:00 0 S
+ Rule US 1942 only - Feb 9 2:00 1:00 W # War
+@@ -370,7 +370,7 @@
+ # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the
+ # nearest second.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
+ Rule NYC 1920 only - Oct lastSun 2:00 0 S
+ Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
+@@ -454,7 +454,7 @@
+ # The Tennessean 2007-05-11, republished 2015-04-06.
+ #
https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seige...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Chicago 1920 only - Jun 13 2:00 1:00 D
+ Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
+ Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
+@@ -523,7 +523,7 @@
+ # El Paso Times. 2018-10-24 06:40 -06.
+ #
https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoan...
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
+ Rule Denver 1920 only - Oct lastSun 2:00 0 S
+ Rule Denver 1921 only - May 22 2:00 0 S
+@@ -576,7 +576,7 @@
+ #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&co...
+ #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&co...
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule CA 1948 only - Mar 14 2:01 1:00 D
+ Rule CA 1949 only - Jan 1 2:00 0 S
+ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
+@@ -934,7 +934,7 @@
+ # going to switch from Central to Eastern Time on March 11, 2007....
+ #
http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/7...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
+ Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
+ Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
+@@ -953,7 +953,7 @@
+ #
+ # Eastern Crawford County, Indiana, left its clocks alone in 1974,
+ # as well as from 1976 through 2005.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
+ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
+ Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
+@@ -972,7 +972,7 @@
+ # Daviess, Dubois, Knox, and Martin Counties, Indiana,
+ # switched from eastern to central time in April 2006, then switched back
+ # in November 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
+ Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
+ Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
+@@ -997,7 +997,7 @@
+ # The Indianapolis News, Friday 27 October 1967 states that Perry County
+ # returned to CST. It went again to EST on 27 April 1969, as documented by the
+ # Indianapolis star of Saturday 26 April.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Perry 1955 only - May 1 0:00 1:00 D
+ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
+@@ -1014,7 +1014,7 @@
+ #
+ # Pike County, Indiana moved from central to eastern time in 1977,
+ # then switched back in 2006, then switched back again in 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Pike 1955 only - May 1 0:00 1:00 D
+ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
+@@ -1035,7 +1035,7 @@
+ # An article on page A3 of the Sunday, 1991-10-27 Washington Post
+ # notes that Starke County switched from Central time to Eastern time as of
+ # 1991-10-27.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
+ Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
+ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
+@@ -1052,7 +1052,7 @@
+ #
+ # Pulaski County, Indiana, switched from eastern to central time in
+ # April 2006 and then switched back in March 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
+ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
+ Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
+@@ -1094,7 +1094,7 @@
+ #
+ # Part of Kentucky left its clocks alone in 1974.
+ # This also includes Clark, Floyd, and Harrison counties in Indiana.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Louisville 1921 only - May 1 2:00 1:00 D
+ Rule Louisville 1921 only - Sep 1 2:00 0 S
+ Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
+@@ -1208,7 +1208,7 @@
+ # election Michigan voters narrowly repealed DST, effective 1969.
+ #
+ # Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
+ Rule Detroit 1948 only - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1225,7 +1225,7 @@
+ #
+ # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
+ # switched from EST to CST/CDT in 1973.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
+ Rule Menominee 1946 only - Sep lastSun 2:00 0 S
+ Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
+@@ -1395,7 +1395,7 @@
+ # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
+ # than Thursday) in all Canadian rulesets.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Canada 1918 only - Apr 14 2:00 1:00 D
+ Rule Canada 1918 only - Oct 27 2:00 0 S
+ Rule Canada 1942 only - Feb 9 2:00 1:00 W # War
+@@ -1418,7 +1418,7 @@
+ # that follows the rules is the southeast corner, including Port Hope
+ # Simpson and Mary's Harbour, but excluding, say, Black Tickle.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule StJohns 1917 only - Apr 8 2:00 1:00 D
+ Rule StJohns 1917 only - Sep 17 2:00 0 S
+ # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
+@@ -1520,7 +1520,7 @@
+ # bill say that it is "accommodating the customs and practices" of those
+ # regions, which suggests that they have always been in-line with Halifax.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Halifax 1916 only - Apr 1 0:00 1:00 D
+ Rule Halifax 1916 only - Oct 1 0:00 0 S
+ Rule Halifax 1920 only - May 9 0:00 1:00 D
+@@ -1586,7 +1586,7 @@
+ # clear that this was the case since at least 1993.
+ # For now, assume it started in 1993.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
+ Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
+ Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
+@@ -1795,7 +1795,7 @@
+ # With some exceptions, the use of daylight saving may be said to be limited
+ # to those cities and towns lying between Quebec city and Windsor, Ont.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Toronto 1919 only - Mar 30 23:30 1:00 D
+ Rule Toronto 1919 only - Oct 26 0:00 0 S
+ Rule Toronto 1920 only - May 2 2:00 1:00 D
+@@ -1893,7 +1893,7 @@
+ # starting 1966. Since 02:00s is clearly correct for 1967 on, assume
+ # it was also 02:00s in 1966.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Winn 1916 only - Apr 23 0:00 1:00 D
+ Rule Winn 1916 only - Sep 17 0:00 0 S
+ Rule Winn 1918 only - Apr 14 2:00 1:00 D
+@@ -1984,7 +1984,7 @@
+ # long and rather painful to read.
+ #
http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Regina 1918 only - Apr 14 2:00 1:00 D
+ Rule Regina 1918 only - Oct 27 2:00 0 S
+ Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
+@@ -2034,7 +2034,7 @@
+ # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
+ # ISBN 978-1459739123.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
+ Rule Edm 1918 only - Oct 27 2:00 0 S
+ Rule Edm 1919 only - May 27 2:00 0 S
+@@ -2143,7 +2143,7 @@
+ #
https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-jul...
+ # We have no further details, so omit them for now.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Vanc 1918 only - Apr 14 2:00 1:00 D
+ Rule Vanc 1918 only - Oct 27 2:00 0 S
+ Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
+@@ -2472,7 +2472,19 @@
+ # consistency with nearby Dawson Creek, Creston, and Fort Nelson.
+ #
https://yukon.ca/en/news/yukon-end-seasonal-time-change
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# From Andrew G. Smith (2020-09-24):
++# Yukon has completed its regulatory change to be on UTC -7 year-round....
++#
http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf
++# What we have done is re-defined Yukon Standard Time, as we are
++# authorized to do under section 33 of our Interpretation Act:
++#
http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf
++#
++# From Paul Eggert (2020-09-24):
++# tzdb uses the obsolete YST abbreviation for standard time in Yukon through
++# about 1970, and uses PST for standard time in Yukon since then. Consistent
++# with that, use MST for -07, the new standard time in Yukon effective Nov. 1.
++
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
+ Rule NT_YK 1918 only - Oct 27 2:00 0 S
+ Rule NT_YK 1919 only - May 25 2:00 1:00 D
+@@ -2526,12 +2538,12 @@
+ Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1967 May 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT 2020 Mar 8 2:00
++ -8:00 Canada P%sT 2020 Nov 1
+ -7:00 - MST
+ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1973 Oct 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT 2020 Mar 8 2:00
++ -8:00 Canada P%sT 2020 Nov 1
+ -7:00 - MST
+
+
+@@ -2746,7 +2758,7 @@
+ # 5- The islands, reefs and keys shall take their timezone from the
+ # longitude they are located at.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+ Rule Mexico 1940 only - Dec 9 0:00 1:00 D
+@@ -2951,7 +2963,7 @@
+ # rules to sync with the U.S. starting in 2007....
+ #
http://www.jonesbahamas.com/?c=45&a=10412
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
+ Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -2963,7 +2975,7 @@
+
+ # For 1899 Milne gives -3:58:29.2; round that.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Barb 1977 only - Jun 12 2:00 1:00 D
+ Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
+ Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
+@@ -2976,7 +2988,7 @@
+
+ # Belize
+ # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530
+ Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST
+ Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
+@@ -3013,7 +3025,7 @@
+
+ # Milne gives -5:36:13.3 as San José mean time; round to nearest.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
+ Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
+ Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
+@@ -3187,7 +3199,7 @@
+ # From Paul Eggert (2012-11-03):
+ # For now, assume the future rule is first Sunday in November.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cuba 1928 only - Jun 10 0:00 1:00 D
+ Rule Cuba 1928 only - Oct 10 0:00 0 S
+ Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
+@@ -3256,7 +3268,7 @@
+ # decided to revert.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule DR 1966 only - Oct 30 0:00 1:00 EDT
+ Rule DR 1967 only - Feb 28 0:00 0 EST
+ Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
+@@ -3273,7 +3285,7 @@
+
+ # El Salvador
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
+ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
+ # There are too many San Salvadors elsewhere, so use America/El_Salvador
+@@ -3302,7 +3314,7 @@
+ # (2006-04-19), says DST ends at 24:00. See
+ #
http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Hora...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Guat 1973 only - Nov 25 0:00 1:00 D
+ Rule Guat 1974 only - Feb 24 0:00 0 S
+ Rule Guat 1983 only - May 21 0:00 1:00 D
+@@ -3383,7 +3395,7 @@
+ # I have not been able to find a more authoritative source:
+ #
https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-hai...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Haiti 1983 only - May 8 0:00 1:00 D
+ Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
+ Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
+@@ -3431,7 +3443,7 @@
+ #
http://www.laprensahn.com/pais_nota.php?id04962=7386
+ # So it seems that Honduras will not enter DST this year....
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
+ Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
+ Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
+@@ -3522,7 +3534,7 @@
+ # The natural sun time is restored in all the national territory, in that the
+ # time is returned one hour at 01:00 am of October 1 of 2006.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
+ Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
+ Rule Nic 2005 only - Apr 10 0:00 1:00 D
+diff --git openjdk.orig/jdk/make/data/tzdata/pacificnew
openjdk/jdk/make/data/tzdata/pacificnew
+deleted file mode 100644
+--- openjdk/jdk/make/data/tzdata/pacificnew
++++ /dev/null
+@@ -1,52 +0,0 @@
+-#
+-# 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. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# 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.
+-#
+-# tzdb data for proposed US election time (this file is obsolete)
+-
+-# This file is in the public domain, so clarified as of
+-# 2009-05-17 by Arthur David Olson.
+-
+-# From Arthur David Olson (1989-04-05):
+-# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
+-# establishing "Pacific Presidential Election Time"; it was not acted on
+-# by the Senate or signed into law by the President.
+-# You might want to change the "PE" (Presidential Election) below to
+-# "Q" (Quadrennial) to maintain three-character zone abbreviations.
+-# If you're really conservative, you might want to change it to "D".
+-# Avoid "L" (Leap Year), which won't be true in 2100.
+-
+-# If Presidential Election Time is ever established, replace "XXXX" below
+-# with the year the law takes effect and uncomment the "##" lines.
+-
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
+-## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
+-## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
+-## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
+-
+-# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
+-## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
+-## -8:00 Twilite P%sT
+-
+-# For now...
+-Link America/Los_Angeles US/Pacific-New ##
+diff --git openjdk.orig/jdk/make/data/tzdata/southamerica
openjdk/jdk/make/data/tzdata/southamerica
+--- openjdk.orig/jdk/make/data/tzdata/southamerica
++++ openjdk/jdk/make/data/tzdata/southamerica
+@@ -71,7 +71,7 @@
+ # I am sending modifications to the Argentine time zone table...
+ # AR was chosen because they are the ISO letters that represent Argentina.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Arg 1930 only - Dec 1 0:00 1:00 -
+ Rule Arg 1931 only - Apr 1 0:00 0 -
+ Rule Arg 1931 only - Oct 15 0:00 1:00 -
+@@ -792,7 +792,7 @@
+ # From Paul Eggert (2013-10-17):
+ # For now, assume western Amazonas will change as well.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Decree 20,466 <
http://pcdsh01.on.br/HV20466.htm> (1931-10-01)
+ # Decree 21,896 <
http://pcdsh01.on.br/HV21896.htm> (1932-01-10)
+ Rule Brazil 1931 only - Oct 3 11:00 1:00 -
+@@ -1281,7 +1281,7 @@
+ # For now, assume that they will not revert,
+ # since they have extended the expiration date once already.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
+ Rule Chile 1928 1932 - Apr 1 0:00 0 -
+ Rule Chile 1968 only - Nov 3 4:00u 1:00 -
+@@ -1381,7 +1381,7 @@
+ # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
+ # "A variation of fifteen minutes in the public clocks of Bogota is not
rare."
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule CO 1992 only - May 3 0:00 1:00 -
+ Rule CO 1993 only - Apr 4 0:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1441,7 +1441,7 @@
+ # (Not one step back), the clocks went back in 1993 and the experiment was not
+ # repeated. For now, assume transitions were at 00:00 local time country-wide.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
+ Rule Ecuador 1993 only - Feb 5 0:00 0 -
+ #
+@@ -1535,7 +1535,7 @@
+ # For now we will assume permanent -03 for the Falklands
+ # until advised differently (to apply for 2012 and beyond, after the 2011
+ # experiment was apparently successful.)
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
+ Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
+ Rule Falk 1939 only - Oct 1 0:00 1:00 -
+@@ -1581,7 +1581,7 @@
+ # No time of the day is established for the adjustment, so people normally
+ # adjust their clocks at 0 hour of the given dates.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Para 1975 1988 - Oct 1 0:00 1:00 -
+ Rule Para 1975 1978 - Mar 1 0:00 0 -
+ Rule Para 1979 1991 - Apr 1 0:00 0 -
+@@ -1674,7 +1674,7 @@
+ # From Paul Eggert (2006-03-22):
+ # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Peru 1938 only - Jan 1 0:00 1:00 -
+ Rule Peru 1938 only - Apr 1 0:00 0 -
+ Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
+@@ -1770,7 +1770,7 @@
+ #
https://www.impo.com.uy/diariooficial/1926/03/10/2
+ #
https://www.impo.com.uy/diariooficial/1926/03/18/2
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
+ Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
+ # From Tim Parenti (2018-02-15):
+diff --git openjdk.orig/jdk/make/data/tzdata/systemv
openjdk/jdk/make/data/tzdata/systemv
+deleted file mode 100644
+--- openjdk/jdk/make/data/tzdata/systemv
++++ /dev/null
+@@ -1,62 +0,0 @@
+-#
+-# 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. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# 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.
+-#
+-# tzdb data for System V rules (this file is obsolete)
+-
+-# This file is in the public domain, so clarified as of
+-# 2009-05-17 by Arthur David Olson.
+-
+-# Old rules, should the need arise.
+-# No attempt is made to handle Newfoundland, since it cannot be expressed
+-# using the System V "TZ" scheme (half-hour offset), or anything outside
+-# North America (no support for non-standard DST start/end dates), nor
+-# the changes in the DST rules in the US after 1976 (which occurred after
+-# the old rules were written).
+-#
+-# If you need the old rules, uncomment ## lines.
+-# Compile this *without* leap second correction for true conformance.
+-
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
+-Rule SystemV min 1973 - Oct lastSun 2:00 0 S
+-Rule SystemV 1974 only - Jan 6 2:00 1:00 D
+-Rule SystemV 1974 only - Nov lastSun 2:00 0 S
+-Rule SystemV 1975 only - Feb 23 2:00 1:00 D
+-Rule SystemV 1975 only - Oct lastSun 2:00 0 S
+-Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
+-Rule SystemV 1976 max - Oct lastSun 2:00 0 S
+-
+-# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
+-## Zone SystemV/AST4ADT -4:00 SystemV A%sT
+-## Zone SystemV/EST5EDT -5:00 SystemV E%sT
+-## Zone SystemV/CST6CDT -6:00 SystemV C%sT
+-## Zone SystemV/MST7MDT -7:00 SystemV M%sT
+-## Zone SystemV/PST8PDT -8:00 SystemV P%sT
+-## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
+-## Zone SystemV/AST4 -4:00 - AST
+-## Zone SystemV/EST5 -5:00 - EST
+-## Zone SystemV/CST6 -6:00 - CST
+-## Zone SystemV/MST7 -7:00 - MST
+-## Zone SystemV/PST8 -8:00 - PST
+-## Zone SystemV/YST9 -9:00 - YST
+-## Zone SystemV/HST10 -10:00 - HST
+diff --git openjdk.orig/jdk/make/gendata/GendataTZDB.gmk
openjdk/jdk/make/gendata/GendataTZDB.gmk
+--- openjdk.orig/jdk/make/gendata/GendataTZDB.gmk
++++ openjdk/jdk/make/gendata/GendataTZDB.gmk
+@@ -29,7 +29,7 @@
+ # Time zone data file creation
+ #
+ TZDATA_DIR := $(JDK_TOPDIR)/make/data/tzdata
+-TZDATA_TZFILE := africa antarctica asia australasia europe northamerica pacificnew
southamerica backward etcetera gmt jdk11_backward
++TZDATA_TZFILE := africa antarctica asia australasia europe northamerica southamerica
backward etcetera gmt jdk11_backward
+ TZDATA_TZFILES := $(addprefix $(TZDATA_DIR)/,$(TZDATA_TZFILE))
+
+ GENDATA_TZDB_DAT := $(JDK_OUTPUTDIR)/lib/tzdb.dat
+diff --git openjdk.orig/jdk/src/aix/lib/tzmappings openjdk/jdk/src/aix/lib/tzmappings
+--- openjdk.orig/jdk/src/aix/lib/tzmappings
++++ openjdk/jdk/src/aix/lib/tzmappings
+@@ -568,7 +568,6 @@
+ US/Michigan America/New_York
+ US/Mountain America/Denver
+ US/Pacific America/Los_Angeles
+-US/Pacific-New America/Los_Angeles
+ US/Samoa Pacific/Pago_Pago
+ USAST-2 Africa/Johannesburg
+ USAST-2USADT Europe/Istanbul
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
openjdk/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
+@@ -1040,7 +1040,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
openjdk/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
openjdk/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
openjdk/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
openjdk/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
openjdk/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
openjdk/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git
openjdk.orig/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
openjdk/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
openjdk/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git
openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
+@@ -1035,7 +1035,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git a/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
b/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
+--- openjdk.orig/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
++++ openjdk/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
+@@ -1037,7 +1037,6 @@
+ {"US/Michigan", EST},
+ {"US/Mountain", MST},
+ {"US/Pacific", PST},
+- {"US/Pacific-New", PST},
+ {"US/Samoa", SAMOA},
+ {"VST", ICT},
+ {"W-SU", MSK},
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
openjdk/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
++++ openjdk/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java
+@@ -47,7 +47,7 @@
+ String TESTDIR = System.getProperty("test.dir", ".");
+ String SRCDIR = System.getProperty("test.src", ".");
+ String tzdir = SRCDIR + File.separator + "tzdata";
+- String tzfiles = "africa antarctica asia australasia europe northamerica
pacificnew southamerica backward etcetera systemv";
++ String tzfiles = "africa antarctica asia australasia europe northamerica
southamerica backward etcetera";
+ String jdk_tzdir = SRCDIR + File.separator + "tzdata_jdk";
+ String jdk_tzfiles = "gmt jdk11_backward";
+ String zidir = TESTDIR + File.separator + "zi";
+@@ -194,8 +194,9 @@
+
+ // test getAvailableIDs(raw);
+ zids_new = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
+- //Arrays.sort(zids_new);
++ Arrays.sort(zids_new);
+ zids_old = ZoneInfoOld.getAvailableIDs(-8 * 60 * 60 * 1000);
++ Arrays.sort(zids_old);
+ if (!Arrays.equals(zids_new, zids_old)) {
+ System.out.println("------------------------");
+ System.out.println("NEW.getAvailableIDs(-8:00)");
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/VERSION
openjdk/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/VERSION
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+@@ -21,4 +21,4 @@
+ # or visit
www.oracle.com if you need additional information or have any
+ # questions.
+ #
+-tzdata2020a
++tzdata2020b
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/africa
openjdk/jdk/test/sun/util/calendar/zi/tzdata/africa
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/africa
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/africa
+@@ -87,7 +87,7 @@
+ # Corrections are welcome.
+
+ # Algeria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
+ Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
+ Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
+@@ -110,10 +110,9 @@
+ Rule Algeria 1978 only - Sep 22 3:00 0 -
+ Rule Algeria 1980 only - Apr 25 0:00 1:00 S
+ Rule Algeria 1980 only - Oct 31 2:00 0 -
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
++# See Europe/Paris for PMT-related transitions.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
++Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+ 0:00 Algeria WE%sT 1940 Feb 25 2:00
+ 1:00 Algeria CE%sT 1946 Oct 7
+@@ -199,7 +198,7 @@
+ # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
+ # did not apply to Cairo, Alexandria, or Port Said.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Egypt 1940 only - Jul 15 0:00 1:00 S
+ Rule Egypt 1940 only - Oct 1 0:00 0 -
+ Rule Egypt 1941 only - Apr 15 0:00 1:00 S
+@@ -434,7 +433,7 @@
+ # now Ghana observed different DST regimes in different years. For
+ # lack of better info, use Shanks except treat the minus sign as a
+ # typo, and assume DST started in 1920 not 1936.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
+ Rule Ghana 1920 1942 - Dec 31 0:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -524,7 +523,7 @@
+ # From Paul Eggert (2013-10-25):
+ # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Libya 1951 only - Oct 14 2:00 1:00 S
+ Rule Libya 1952 only - Jan 1 0:00 0 -
+ Rule Libya 1953 only - Oct 9 2:00 1:00 S
+@@ -647,7 +646,7 @@
+ # "The trial ended on March 29, 2009, when the clocks moved back by one hour
+ # at 2am (or 02:00) local time..."
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
+ Rule Mauritius 1983 only - Mar 21 0:00 0 -
+ Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
+@@ -898,17 +897,30 @@
+ #
https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dim...
+ #
http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-proc...
+ #
+-# From Paul Eggert (2020-04-14):
++# From Milamber (2020-05-31)
++# In Morocco (where I live), the end of Ramadan (Arabic month) is followed by
++# the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with
++# traditional visiting of family, big lunches/dinners, etc.). So for this
++# year the astronomical calculations don't include the following 2 days off in
++# the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by
++# people to have a time shift during these 2 days off. Perhaps you can modify
++# the (predicted) rules for next years: if the end of Ramadan is a (probable)
++# Friday or Saturday (and so the 2 days off are on a weekend), the next time
++# shift will be the next weekend.
++#
++# From Paul Eggert (2020-05-31):
+ # For now, guess that in the future Morocco will fall back at 03:00
+ # the last Sunday before Ramadan, and spring forward at 02:00 the
+-# first Sunday after the day after Ramadan. To implement this,
+-# transition dates for 2021 through 2087 were determined by running
+-# the following program under GNU Emacs 26.3.
+-# (let ((islamic-year 1442))
++# first Sunday after two days after Ramadan. To implement this,
++# transition dates and times for 2019 through 2087 were determined by
++# running the following program under GNU Emacs 26.3. (This algorithm
++# also produces the correct transition dates for 2016 through 2018,
++# though the times differ due to Morocco's time zone change in 2018.)
++# (let ((islamic-year 1440))
+ # (require 'cal-islam)
+ # (while (< islamic-year 1511)
+ # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
+-# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
++# (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
+ # (sunday 0))
+ # (while (/= sunday (mod (setq a (1- a)) 7)))
+ # (while (/= sunday (mod b 7))
+@@ -923,7 +935,7 @@
+ # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
+ # (setq islamic-year (+ 1 islamic-year))))
+
+-# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Morocco 1939 only - Sep 12 0:00 1:00 -
+ Rule Morocco 1939 only - Nov 19 0:00 0 -
+ Rule Morocco 1940 only - Feb 25 0:00 1:00 -
+@@ -974,7 +986,7 @@
+ Rule Morocco 2022 only - Mar 27 3:00 0 -
+ Rule Morocco 2022 only - May 8 2:00 1:00 -
+ Rule Morocco 2023 only - Mar 19 3:00 0 -
+-Rule Morocco 2023 only - Apr 23 2:00 1:00 -
++Rule Morocco 2023 only - Apr 30 2:00 1:00 -
+ Rule Morocco 2024 only - Mar 10 3:00 0 -
+ Rule Morocco 2024 only - Apr 14 2:00 1:00 -
+ Rule Morocco 2025 only - Feb 23 3:00 0 -
+@@ -990,7 +1002,7 @@
+ Rule Morocco 2029 only - Dec 30 3:00 0 -
+ Rule Morocco 2030 only - Feb 10 2:00 1:00 -
+ Rule Morocco 2030 only - Dec 22 3:00 0 -
+-Rule Morocco 2031 only - Jan 26 2:00 1:00 -
++Rule Morocco 2031 only - Feb 2 2:00 1:00 -
+ Rule Morocco 2031 only - Dec 14 3:00 0 -
+ Rule Morocco 2032 only - Jan 18 2:00 1:00 -
+ Rule Morocco 2032 only - Nov 28 3:00 0 -
+@@ -1006,7 +1018,7 @@
+ Rule Morocco 2037 only - Oct 4 3:00 0 -
+ Rule Morocco 2037 only - Nov 15 2:00 1:00 -
+ Rule Morocco 2038 only - Sep 26 3:00 0 -
+-Rule Morocco 2038 only - Oct 31 2:00 1:00 -
++Rule Morocco 2038 only - Nov 7 2:00 1:00 -
+ Rule Morocco 2039 only - Sep 18 3:00 0 -
+ Rule Morocco 2039 only - Oct 23 2:00 1:00 -
+ Rule Morocco 2040 only - Sep 2 3:00 0 -
+@@ -1022,7 +1034,7 @@
+ Rule Morocco 2045 only - Jul 9 3:00 0 -
+ Rule Morocco 2045 only - Aug 20 2:00 1:00 -
+ Rule Morocco 2046 only - Jul 1 3:00 0 -
+-Rule Morocco 2046 only - Aug 5 2:00 1:00 -
++Rule Morocco 2046 only - Aug 12 2:00 1:00 -
+ Rule Morocco 2047 only - Jun 23 3:00 0 -
+ Rule Morocco 2047 only - Jul 28 2:00 1:00 -
+ Rule Morocco 2048 only - Jun 7 3:00 0 -
+@@ -1038,7 +1050,7 @@
+ Rule Morocco 2053 only - Apr 13 3:00 0 -
+ Rule Morocco 2053 only - May 25 2:00 1:00 -
+ Rule Morocco 2054 only - Apr 5 3:00 0 -
+-Rule Morocco 2054 only - May 10 2:00 1:00 -
++Rule Morocco 2054 only - May 17 2:00 1:00 -
+ Rule Morocco 2055 only - Mar 28 3:00 0 -
+ Rule Morocco 2055 only - May 2 2:00 1:00 -
+ Rule Morocco 2056 only - Mar 12 3:00 0 -
+@@ -1054,7 +1066,7 @@
+ Rule Morocco 2061 only - Jan 16 3:00 0 -
+ Rule Morocco 2061 only - Feb 27 2:00 1:00 -
+ Rule Morocco 2062 only - Jan 8 3:00 0 -
+-Rule Morocco 2062 only - Feb 12 2:00 1:00 -
++Rule Morocco 2062 only - Feb 19 2:00 1:00 -
+ Rule Morocco 2062 only - Dec 31 3:00 0 -
+ Rule Morocco 2063 only - Feb 4 2:00 1:00 -
+ Rule Morocco 2063 only - Dec 16 3:00 0 -
+@@ -1070,7 +1082,7 @@
+ Rule Morocco 2068 only - Oct 21 3:00 0 -
+ Rule Morocco 2068 only - Dec 2 2:00 1:00 -
+ Rule Morocco 2069 only - Oct 13 3:00 0 -
+-Rule Morocco 2069 only - Nov 17 2:00 1:00 -
++Rule Morocco 2069 only - Nov 24 2:00 1:00 -
+ Rule Morocco 2070 only - Oct 5 3:00 0 -
+ Rule Morocco 2070 only - Nov 9 2:00 1:00 -
+ Rule Morocco 2071 only - Sep 20 3:00 0 -
+@@ -1086,7 +1098,7 @@
+ Rule Morocco 2076 only - Jul 26 3:00 0 -
+ Rule Morocco 2076 only - Sep 6 2:00 1:00 -
+ Rule Morocco 2077 only - Jul 18 3:00 0 -
+-Rule Morocco 2077 only - Aug 22 2:00 1:00 -
++Rule Morocco 2077 only - Aug 29 2:00 1:00 -
+ Rule Morocco 2078 only - Jul 10 3:00 0 -
+ Rule Morocco 2078 only - Aug 14 2:00 1:00 -
+ Rule Morocco 2079 only - Jun 25 3:00 0 -
+@@ -1096,13 +1108,13 @@
+ Rule Morocco 2081 only - Jun 1 3:00 0 -
+ Rule Morocco 2081 only - Jul 13 2:00 1:00 -
+ Rule Morocco 2082 only - May 24 3:00 0 -
+-Rule Morocco 2082 only - Jun 28 2:00 1:00 -
++Rule Morocco 2082 only - Jul 5 2:00 1:00 -
+ Rule Morocco 2083 only - May 16 3:00 0 -
+ Rule Morocco 2083 only - Jun 20 2:00 1:00 -
+ Rule Morocco 2084 only - Apr 30 3:00 0 -
+ Rule Morocco 2084 only - Jun 11 2:00 1:00 -
+ Rule Morocco 2085 only - Apr 22 3:00 0 -
+-Rule Morocco 2085 only - May 27 2:00 1:00 -
++Rule Morocco 2085 only - Jun 3 2:00 1:00 -
+ Rule Morocco 2086 only - Apr 14 3:00 0 -
+ Rule Morocco 2086 only - May 19 2:00 1:00 -
+ Rule Morocco 2087 only - Mar 30 3:00 0 -
+@@ -1203,7 +1215,7 @@
+ # Use plain "WAT" and "CAT" for the time zone abbreviations, to be
compatible
+ # with Namibia's neighbors.
+
+-# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Vanguard section, for zic and other parsers that support negative DST.
+ #Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
+ #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
+@@ -1326,7 +1338,7 @@
+ # See Africa/Nairobi.
+
+ # South Africa
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
+ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1359,7 +1371,7 @@
+ # Abdalla of NTC, archived at:
+ #
https://mm.icann.org/pipermail/tz/2017-October/025333.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Sudan 1970 only - May 1 0:00 1:00 S
+ Rule Sudan 1970 1985 - Oct 15 0:00 0 -
+ Rule Sudan 1971 only - Apr 30 0:00 1:00 S
+@@ -1447,7 +1459,7 @@
+ #
http://www.almadenahnews.com/newss/news.php?c=118&id=38036
+ #
http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
+ Rule Tunisia 1939 only - Nov 18 23:00s 0 -
+ Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
+@@ -1474,9 +1486,7 @@
+ Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
+ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
+
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
+-# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
++# See Europe/Paris for PMT-related transitions.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
+ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/antarctica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/antarctica
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/antarctica
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/antarctica
+@@ -93,15 +93,30 @@
+ # Australian Antarctica Division informed us that Casey changed time
+ # zone to UTC+11 in "the morning of 22nd October 2016".
+
++# From Steffen Thorsen (2020-10-02, as corrected):
++# Based on information we have received from the Australian Antarctic
++# Division, Casey station and Macquarie Island station will move to Tasmanian
++# daylight savings time on Sunday 4 October. This will take effect from 0001
++# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will
++# be on the same time zone as Hobart. Some past dates too for this 3 hour
++# time change back and forth between UTC+8 and UTC+11 for Casey:
++# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00
++# and now - 2020 Oct 4 0:01
++
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Antarctica/Casey 0 - -00 1969
+- 8:00 - +08 2009 Oct 18 2:00
++Zone Antarctica/Casey 0 - -00 1969
++ 8:00 - +08 2009 Oct 18 2:00
+ 11:00 - +11 2010 Mar 5 2:00
+- 8:00 - +08 2011 Oct 28 2:00
++ 8:00 - +08 2011 Oct 28 2:00
+ 11:00 - +11 2012 Feb 21 17:00u
+- 8:00 - +08 2016 Oct 22
++ 8:00 - +08 2016 Oct 22
+ 11:00 - +11 2018 Mar 11 4:00
+- 8:00 - +08
++ 8:00 - +08 2018 Oct 7 4:00
++ 11:00 - +11 2019 Mar 17 3:00
++ 8:00 - +08 2019 Oct 4 3:00
++ 11:00 - +11 2020 Mar 8 3:00
++ 8:00 - +08 2020 Oct 4 0:01
++ 11:00 - +11
+ Zone Antarctica/Davis 0 - -00 1957 Jan 13
+ 7:00 - +07 1964 Nov
+ 0 - -00 1969 Feb
+@@ -247,7 +262,7 @@
+ # suggested by Bengt-Inge Larsson comment them out for now, and approximate
+ # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
+ Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
+ #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/asia
openjdk/jdk/test/sun/util/calendar/zi/tzdata/asia
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/asia
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/asia
+@@ -93,7 +93,7 @@
+ ###############################################################################
+
+ # These rules are stolen from the 'europe' file.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
+ Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
+ Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
+@@ -137,7 +137,7 @@
+ # or
+ # (brief)
+ #
http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
+ Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -163,7 +163,7 @@
+ #
http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-d...
+ #
http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
+ Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -250,7 +250,7 @@
+ #
http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
+ #
http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
+ Rule Dhaka 2009 only - Dec 31 24:00 0 -
+
+@@ -326,7 +326,7 @@
+ # generally esteemed a success, it was announced early in 1920 that it would
+ # not be repeated."
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Shang 1919 only - Apr 12 24:00 1:00 D
+ Rule Shang 1919 only - Sep 30 24:00 0 S
+
+@@ -422,7 +422,7 @@
+ # the Yangtze river delta area during that period of time although the scope
+ # of such use will need to be investigated to determine.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Shang 1940 only - Jun 1 0:00 1:00 D
+ Rule Shang 1940 only - Oct 12 24:00 0 S
+ Rule Shang 1941 only - Mar 15 0:00 1:00 D
+@@ -485,7 +485,7 @@
+ # to begin on 17 April.
+ #
http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule PRC 1986 only - May 4 2:00 1:00 D
+ Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
+ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
+@@ -869,7 +869,7 @@
+ # or dates for the 1942 and 1945 transitions.
+ # The Japanese occupation of Hong Kong began 1941-12-25.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule HK 1946 only - Apr 21 0:00 1:00 S
+ Rule HK 1946 only - Dec 1 3:30s 0 -
+ Rule HK 1947 only - Apr 13 3:30s 1:00 S
+@@ -996,7 +996,7 @@
+ # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
+ # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Taiwan 1946 only - May 15 0:00 1:00 D
+ Rule Taiwan 1946 only - Oct 1 0:00 0 S
+ Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
+@@ -1122,7 +1122,7 @@
+ # The 1904 decree says that Macau changed from the meridian of
+ # Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
+ Rule Macau 1942 only - Nov 17 23:00 0 -
+ Rule Macau 1943 only - Sep 30 23:00 0 S
+@@ -1180,7 +1180,7 @@
+ # Cyprus to remain united in time. Cyprus Mail 2017-10-17.
+ #
https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
+ Rule Cyprus 1975 only - Oct 12 0:00 0 -
+ Rule Cyprus 1976 only - May 15 0:00 1:00 S
+@@ -1557,7 +1557,7 @@
+ # be changed back to its previous state on the 24 hours of the
+ # thirtieth day of Shahrivar.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iran 1978 1980 - Mar 20 24:00 1:00 -
+ Rule Iran 1978 only - Oct 20 24:00 0 -
+ Rule Iran 1979 only - Sep 18 24:00 0 -
+@@ -1699,7 +1699,7 @@
+ # We have published a short article in English about the change:
+ #
https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iraq 1982 only - May 1 0:00 1:00 -
+ Rule Iraq 1982 1984 - Oct 1 0:00 0 -
+ Rule Iraq 1983 only - Mar 31 0:00 1:00 -
+@@ -1722,6 +1722,10 @@
+
+ # Israel
+
++# For more info about the motivation for DST in Israel, see:
++# Barak Y. Israel's Daylight Saving Time controversy. Israel Affairs.
++# 2020-08-11.
https://doi.org/10.1080/13537121.2020.1806564
++
+ # From Ephraim Silverberg (2001-01-11):
+ #
+ # I coined "IST/IDT" circa 1988. Until then there were three
+@@ -1743,7 +1747,7 @@
+ # family is from India).
+
+ # From Shanks & Pottenger:
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1940 only - Jun 1 0:00 1:00 D
+ Rule Zion 1942 1944 - Nov 1 0:00 0 S
+ Rule Zion 1943 only - Apr 1 2:00 1:00 D
+@@ -1835,7 +1839,7 @@
+ # (except in 2002) is three nights before Yom Kippur [Day of Atonement]
+ # (the eve of the 7th of Tishrei in the lunar Hebrew calendar).
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1989 only - Apr 30 0:00 1:00 D
+ Rule Zion 1989 only - Sep 3 0:00 0 S
+ Rule Zion 1990 only - Mar 25 0:00 1:00 D
+@@ -1851,7 +1855,7 @@
+ # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by
+ # calling the office directly at 972-2-6701447 or 972-2-6701448.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1994 only - Apr 1 0:00 1:00 D
+ Rule Zion 1994 only - Aug 28 0:00 0 S
+ Rule Zion 1995 only - Mar 31 0:00 1:00 D
+@@ -1871,7 +1875,7 @@
+ #
+ # where YYYY is the relevant year.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 1996 only - Mar 15 0:00 1:00 D
+ Rule Zion 1996 only - Sep 16 0:00 0 S
+ Rule Zion 1997 only - Mar 21 0:00 1:00 D
+@@ -1894,7 +1898,7 @@
+ #
+ # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2000-2004.ps.gz
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2000 only - Apr 14 2:00 1:00 D
+ Rule Zion 2000 only - Oct 6 1:00 0 S
+ Rule Zion 2001 only - Apr 9 1:00 1:00 D
+@@ -1916,7 +1920,7 @@
+ #
+ # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
+ Rule Zion 2005 only - Oct 9 2:00 0 S
+ Rule Zion 2006 only - Oct 1 2:00 0 S
+@@ -1936,7 +1940,7 @@
+ # As of 2013, DST starts at 02:00 on the Friday before the last Sunday
+ # in March. DST ends at 02:00 on the last Sunday of October.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
+ Rule Zion 2013 max - Oct lastSun 2:00 0 S
+
+@@ -2036,7 +2040,7 @@
+ # do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later,
+ # which should be safe now.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
+ Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S
+ Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
+@@ -2113,7 +2117,7 @@
+ # From Paul Eggert (2013-12-11):
+ # As Steffen suggested, consider the past 21-month experiment to be DST.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Jordan 1973 only - Jun 6 0:00 1:00 S
+ Rule Jordan 1973 1975 - Oct 1 0:00 0 -
+ Rule Jordan 1974 1977 - May 1 0:00 1:00 S
+@@ -2439,7 +2443,7 @@
+ # Our government cancels daylight saving time 6th of August 2005.
+ # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
+ Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
+ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
+@@ -2495,7 +2499,7 @@
+ # follow and continued to use GMT+9:00 for interoperability.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule ROK 1948 only - Jun 1 0:00 1:00 D
+ Rule ROK 1948 only - Sep 12 24:00 0 S
+ Rule ROK 1949 only - Apr 3 0:00 1:00 D
+@@ -2583,7 +2587,7 @@
+
+
+ # Lebanon
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
+ Rule Lebanon 1920 only - Oct 25 0:00 0 -
+ Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
+@@ -2613,7 +2617,7 @@
+ 2:00 Lebanon EE%sT
+
+ # Malaysia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
+ Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
+ #
+@@ -2758,7 +2762,7 @@
+ # September daylight saving time ends. Source:
+ #
http://zasag.mn/news/view/8969
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
+ Rule Mongol 1983 only - Oct 1 0:00 0 -
+ # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
+@@ -2946,7 +2950,7 @@
+ # "People laud PM's announcement to end DST"
+ #
http://www.app.com.pk/en_/index.php?option=com_content&task=view&...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
+ Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
+ Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
+@@ -3248,7 +3252,7 @@
+ # From Tim Parenti (2016-10-19):
+ # Predict fall transitions on October's last Saturday at 01:00 from now on.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
+ Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
+ Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
+@@ -3348,7 +3352,7 @@
+ # influence of the sources. There is no current abbreviation for DST,
+ # so use "PDT", the usual American style.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Phil 1936 only - Nov 1 0:00 1:00 D
+ Rule Phil 1937 only - Feb 1 0:00 0 S
+ Rule Phil 1954 only - Apr 12 0:00 1:00 D
+@@ -3496,7 +3500,7 @@
+ 5:30 - +0530
+
+ # Syria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
+ Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
+ Rule Syria 1962 only - Apr 29 2:00 1:00 S
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/australasia
openjdk/jdk/test/sun/util/calendar/zi/tzdata/australasia
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/australasia
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/australasia
+@@ -36,7 +36,7 @@
+
+ # Please see the notes below for the controversy about "EST" versus
"AEST" etc.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Aus 1917 only - Jan 1 0:01 1:00 D
+ Rule Aus 1917 only - Mar 25 2:00 0 S
+ Rule Aus 1942 only - Jan 1 2:00 1:00 D
+@@ -55,7 +55,7 @@
+ 9:30 Aus AC%sT
+ # Western Australia
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
+ Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
+ Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
+@@ -93,7 +93,7 @@
+ # applies to all of the Whitsundays.
+ #
http://www.australia.gov.au/about-australia/australian-story/austn-islands
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
+ Rule AQ 1972 only - Feb lastSun 2:00s 0 S
+ Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
+@@ -109,7 +109,7 @@
+ 10:00 Holiday AE%sT
+
+ # South Australia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AS 1986 only - Oct 19 2:00s 1:00 D
+ Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
+@@ -137,7 +137,7 @@
+ #
http://www.bom.gov.au/climate/averages/tables/dst_times.shtml
+ # says King Island didn't observe DST from WWII until late 1971.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
+ Rule AT 1968 only - Mar lastSun 2:00s 0 S
+ Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
+@@ -170,7 +170,7 @@
+ 10:00 AT AE%sT
+
+ # Victoria
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AV 1972 only - Feb lastSun 2:00s 0 S
+ Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
+@@ -191,7 +191,7 @@
+ 10:00 AV AE%sT
+
+ # New South Wales
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
+ Rule AN 1972 only - Feb 27 2:00s 0 S
+ Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
+@@ -220,7 +220,7 @@
+ 9:30 AS AC%sT
+
+ # Lord Howe Island
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
+ Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
+ Rule LH 1985 only - Oct lastSun 2:00 0:30 -
+@@ -275,8 +275,9 @@
+ 10:00 Aus AE%sT 1919 Apr 1 0:00s
+ 0 - -00 1948 Mar 25
+ 10:00 Aus AE%sT 1967
+- 10:00 AT AE%sT 2010 Apr 4 3:00
+- 11:00 - +11
++ 10:00 AT AE%sT 2010
++ 10:00 1:00 AEDT 2011
++ 10:00 AT AE%sT
+
+ # Christmas
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -403,7 +404,7 @@
+ # From Michael Deckers (2019-08-06):
+ #
https://www.laws.gov.fj/LawsAsMade/downloadfile/848
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
+ Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
+ Rule Fiji 2009 only - Nov 29 2:00 1:00 -
+@@ -432,7 +433,7 @@
+
+ # Guam
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #
http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf
+ #
http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savi...
+ Rule Guam 1959 only - Jun 27 2:00 1:00 D
+@@ -543,7 +544,7 @@
+ 12:00 - +12
+
+ # New Caledonia
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
+ Rule NC 1978 1979 - Feb 27 0:00 0 -
+ Rule NC 1996 only - Dec 1 2:00s 1:00 -
+@@ -558,7 +559,7 @@
+
+ # New Zealand
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NZ 1927 only - Nov 6 2:00 1:00 S
+ Rule NZ 1928 only - Mar 4 2:00 0 M
+ Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
+@@ -610,7 +611,7 @@
+
+ # Cook Is
+ # From Shanks & Pottenger:
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cook 1978 only - Nov 12 0:00 0:30 -
+ Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
+ Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
+@@ -755,7 +756,7 @@
+ # That web page currently lists transitions for 2012/3 and 2013/4.
+ # Assume the pattern instituted in 2012 will continue indefinitely.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule WS 2010 only - Sep lastSun 0:00 1 -
+ Rule WS 2011 only - Apr Sat>=1 4:00 0 -
+ Rule WS 2011 only - Sep lastSat 3:00 1 -
+@@ -799,7 +800,7 @@
+ 13:00 - +13
+
+ # Tonga
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
+ Rule Tonga 2000 only - Mar 19 2:00s 0 -
+ Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
+@@ -880,7 +881,7 @@
+
+
+ # Vanuatu
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Vanuatu 1983 only - Sep 25 0:00 1:00 -
+ Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 -
+ Rule Vanuatu 1984 only - Oct 23 0:00 1:00 -
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/europe
openjdk/jdk/test/sun/util/calendar/zi/tzdata/europe
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/europe
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/europe
+@@ -411,7 +411,7 @@
+ #
http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print
+ #
http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Summer Time Act, 1916
+ Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
+ Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
+@@ -552,7 +552,7 @@
+ # The following is like GB-Eire and EU, except with standard time in
+ # summer and negative daylight saving time in winter. It is for when
+ # negative SAVE values are used.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ #Rule Eire 1971 only - Oct 31 2:00u -1:00 -
+ #Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
+ #Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
+@@ -589,7 +589,7 @@
+ # predecessor organization, the European Communities.
+ # For brevity they are called "EU rules" elsewhere in this file.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
+ Rule EU 1977 only - Sep lastSun 1:00u 0 -
+ Rule EU 1978 only - Oct 1 1:00u 0 -
+@@ -629,13 +629,13 @@
+ # corrected in version 2008d). The circumstantial evidence is simply the
+ # tz database itself, as seen below:
+ #
+-# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
++# Zone Europe/Paris ...
+ # 0:00 France WE%sT 1945 Sep 16 3:00
+ #
+-# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
++# Zone Europe/Monaco ...
+ # 0:00 France WE%sT 1945 Sep 16 3:00
+ #
+-# Zone Europe/Belgrade 1:22:00 - LMT 1884
++# Zone Europe/Belgrade ...
+ # 1:00 1:00 CEST 1945 Sep 16 2:00s
+ #
+ # Rule France 1945 only - Sep 16 3:00 0 -
+@@ -681,7 +681,7 @@
+ #
+ # The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
+ #
+ # Decree No. 142 (1917-12-22)
http://istmat.info/node/28137
+@@ -795,7 +795,7 @@
+
+
+ # Albania
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Albania 1940 only - Jun 16 0:00 1:00 S
+ Rule Albania 1942 only - Nov 2 3:00 0 -
+ Rule Albania 1943 only - Mar 29 2:00 1:00 S
+@@ -849,7 +849,7 @@
+ # In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
+ # Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Austria 1920 only - Apr 5 2:00s 1:00 S
+ Rule Austria 1920 only - Sep 13 2:00s 0 -
+ Rule Austria 1946 only - Apr 14 2:00s 1:00 S
+@@ -936,7 +936,7 @@
+ # The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
+ # Assume Brussels switched to WET in 1918 when the armistice took effect.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
+ Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
+ Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
+@@ -996,7 +996,7 @@
+ # EET -> EETDST is in 03:00 Local time in last Sunday of March ...
+ # EETDST -> EET is in 04:00 Local time in last Sunday of October
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Bulg 1979 only - Mar 31 23:00 1:00 S
+ Rule Bulg 1979 only - Oct 1 1:00 0 -
+ Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
+@@ -1028,7 +1028,7 @@
+ # We know of no English-language name for historical Czech winter time;
+ # abbreviate it as "GMT", as it happened to be GMT.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
+ Rule Czech 1945 only - Oct 1 2:00s 0 -
+ Rule Czech 1946 only - May 6 2:00s 1:00 S
+@@ -1084,7 +1084,7 @@
+ # Hence the "02:00" of the 1980 law refers to standard time, not
+ # wall-clock time, and so the EU rules were in effect in 1980.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Denmark 1916 only - May 14 23:00 1:00 S
+ Rule Denmark 1916 only - Sep 30 23:00 0 -
+ Rule Denmark 1940 only - May 15 0:00 1:00 S
+@@ -1186,7 +1186,7 @@
+ #
http://naalakkersuisut.gl/~/media/Nanoq/Files/Attached%20Files/Engelske-t...
+ # It is their only National Park.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
+ Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
+ Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
+@@ -1317,7 +1317,7 @@
+ # From Paul Eggert (2014-06-14):
+ # Go with Oja over Shanks.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Finland 1942 only - Apr 2 24:00 1:00 S
+ Rule Finland 1942 only - Oct 4 1:00 0 -
+ Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
+@@ -1349,10 +1349,58 @@
+ # Françoise Gauquelin, Problèmes de l'heure résolus en astrologie,
+ # Guy Trédaniel, Paris 1987
+
++# From Michael Deckers (2020-06-11):
++# the law of 1891 <
https://gallica.bnf.fr/ark:/12148/bpt6k64415343.texteImage>
++# was published on 1891-03-15, so it could only take force on 1891-03-16.
++
++# From Michael Deckers (2020-06-10):
++# Le Gaulois, 1911-03-11, page 1/6, online at
++#
https://www.retronews.fr/societe/echo-de-presse/2018/01/29/1911-change-lh...
++# ... [ Instantly, all pressure driven clock dials halted... Nine minutes and
++# twenty-one seconds later the hands resumed their circular motion. ]
++# There are also precise reports about how the change was prepared in train
++# stations: all the publicly visible clocks stopped at midnight railway time
++# (or were covered), only the chief of service had a watch, labeled
++# "Heure ancienne", that he kept running until it reached 00:04:21, when
++# he announced "Heure nouvelle". See the "Le Petit Journal
1911-03-11".
++#
https://gallica.bnf.fr/ark:/12148/bpt6k6192911/f1.item.zoom
++#
++# From Michael Deckers (2020-06-12):
++# That "all French clocks stopped" for 00:09:21 is a misreading of French
++# newspapers; this sort of adjustment applies only to certain
++# remote-controlled clocks ("pendules pneumatiques", of which there existed
++# perhaps a dozen in Paris, and which simply could not be set back remotely),
++# but not to all the clocks in all French towns and villages. For instance,
++# the following story in the "Courrier de Saône-et-Loire" 1911-03-11, page 2:
++# only works if legal time was stepped back (was not monotone): ...
++# [One can observe that children who had been born at midnight less 5
++# minutes and who had died at midnight of the old time, would turn out to
++# be dead before being born, time having been set back and having
++# suppressed 9 minutes and 25 seconds of their existence, that is, more
++# than they could spend.]
++#
++# From Paul Eggert (2020-06-12):
++# French time in railway stations was legally five minutes behind civil time,
++# which explains why railway "old time" ran to 00:04:21 instead of to
00:09:21.
++# The law's text (which Michael Deckers noted is at
++# <
https://gallica.bnf.fr/ark:/12148/bpt6k2022333z/f2>) says only that
++# at 1911-03-11 00:00 legal time was that of Paris mean time delayed by
++# nine minutes and twenty-one seconds, and does not say how the
++# transition from Paris mean time was to occur.
++#
++# tzdb has no way to represent stopped clocks. As the railway practice
++# was to keep a watch running on "old time" to decide when to restart
++# the other clocks, this could be modeled as a transition for "old time" at
++# 00:09:21. However, since the law was ambiguous and clocks outside railway
++# stations were probably done haphazardly with the popular impression being
++# that the transition was done at 00:00 "old time", simply leave the time
++# blank; this causes zic to default to 00:00 "old time" which is good enough.
++# Do something similar for the 1891-03-16 transition. There are similar
++# problems in Algiers, Monaco and Tunis.
+
+ #
+ # Shank & Pottenger seem to use '24:00' ambiguously; resolve it with
Whitman.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule France 1916 only - Jun 14 23:00s 1:00 S
+ Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
+ Rule France 1917 only - Mar 24 23:00s 1:00 S
+@@ -1412,13 +1460,11 @@
+ # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
+ Rule France 1976 only - Mar 28 1:00 1:00 S
+ Rule France 1976 only - Sep 26 1:00 0 -
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
+-# but Howse quotes the actual French legislation as saying 0:09:21.
+-# Go with Howse. Howse writes that the time in France was officially based
++# Howse writes that the time in France was officially based
+ # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
+- 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT
++Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16
++ 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
+ # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
+ 0:00 France WE%sT 1940 Jun 14 23:00
+ # Le Corre says Paris stuck with occupied-France time after the liberation;
+@@ -1447,7 +1493,7 @@
+ # this was equivalent to UT +03, not +04.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Germany 1946 only - Apr 14 2:00s 1:00 S
+ Rule Germany 1946 only - Oct 7 2:00s 0 -
+ Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
+@@ -1499,7 +1545,7 @@
+ 1:00 EU CE%sT
+
+ # Greece
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
+ Rule Greece 1932 only - Jul 7 0:00 1:00 S
+ Rule Greece 1932 only - Sep 1 0:00 0 -
+@@ -1534,38 +1580,69 @@
+ 2:00 EU EE%sT
+
+ # Hungary
+-# From Paul Eggert (2014-07-15):
+-# Dates for 1916-1945 are taken from:
+-# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945.
+-# National Archives of Hungary (2012-10-29).
+-#
http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19...
+-# This source does not always give times, which are taken from Shanks
+-# & Pottenger (which disagree about the dates).
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-Rule Hungary 1918 only - Apr 1 3:00 1:00 S
+-Rule Hungary 1918 only - Sep 16 3:00 0 -
+-Rule Hungary 1919 only - Apr 15 3:00 1:00 S
+-Rule Hungary 1919 only - Nov 24 3:00 0 -
++
++# From Michael Deckers (2020-06-09):
++# an Austrian encyclopedia of railroads of 1913, online at
++#
http://www.zeno.org/Roell-1912/A/Eisenbahnzeit
++# says that the switch [to CET] happened on 1890-11-01.
++
++# From Géza Nyáry (2020-06-07):
++# Data for 1918-1983 are based on the archive database of Library Hungaricana.
++# The dates are collected from original, scanned governmental orders,
++# bulletins, instructions and public press.
++# [See URLs below.]
++
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1918/?pg=238
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1919/?pg=808
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1920/?pg=201
++Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
++Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
++Rule Hungary 1920 only - Apr 5 2:00 1:00 S
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1945/?pg=882
+ Rule Hungary 1945 only - May 1 23:00 1:00 S
+-Rule Hungary 1945 only - Nov 1 0:00 0 -
++Rule Hungary 1945 only - Nov 1 1:00 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_03/?pg=49
+ Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
+-Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1946_09/?pg=54
++Rule Hungary 1946 only - Oct 7 2:00 0 -
++#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1947_04_1__001-123/?...
++#
https://library.hungaricana.hu/hu/view/DunantuliNaplo_1947_09/?pg=128
++#
https://library.hungaricana.hu/hu/view/KulfBelfHirek_1948_03_3__001-123/?...
++#
https://library.hungaricana.hu/hu/view/Zala_1948_09/?pg=64
++#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
++#
https://library.hungaricana.hu/hu/view/SatoraljaujhelyiLeveltar_ZempleniN...
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1949_09/?pg=94
+ Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
+-Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
+-Rule Hungary 1950 only - Oct 23 2:00s 0 -
+-Rule Hungary 1954 1955 - May 23 0:00 1:00 S
+-Rule Hungary 1954 1955 - Oct 3 0:00 0 -
+-Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
+-Rule Hungary 1956 only - Sep lastSun 0:00 0 -
+-Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
+-Rule Hungary 1957 only - Sep lastSun 3:00 0 -
+-Rule Hungary 1980 only - Apr 6 1:00 1:00 S
++Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1954/?pg...
++Rule Hungary 1954 only - May 23 0:00 1:00 S
++Rule Hungary 1954 only - Oct 3 0:00 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1955/?pg...
++Rule Hungary 1955 only - May 22 2:00 1:00 S
++Rule Hungary 1955 only - Oct 2 3:00 0 -
++#
https://library.hungaricana.hu/hu/view/HevesMegyeiNepujsag_1956_06/?pg=0
++#
https://library.hungaricana.hu/hu/view/EszakMagyarorszag_1956_06/?pg=6
++#
https://library.hungaricana.hu/hu/view/SzolnokMegyeiNeplap_1957_04/?pg=120
++#
https://library.hungaricana.hu/hu/view/PestMegyeiHirlap_1957_09/?pg=143
++Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
++Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1980/?pg...
++Rule Hungary 1980 only - Apr 6 0:00 1:00 S
++Rule Hungary 1980 only - Sep 28 1:00 0 -
++#
https://library.hungaricana.hu/hu/view/Delmagyarorszag_1981_01/?pg=79
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1982/?pg...
++#
https://library.hungaricana.hu/hu/view/DTT_KOZL_TanacsokKozlonye_1983/?pg=85
++Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
++Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
++#
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
++Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1
+ 1:00 C-Eur CE%sT 1918
+- 1:00 Hungary CE%sT 1941 Apr 8
++#
https://library.hungaricana.hu/hu/view/OGYK_RT_1941/?pg=1204
++ 1:00 Hungary CE%sT 1941 Apr 7 23:00
+ 1:00 C-Eur CE%sT 1945
+- 1:00 Hungary CE%sT 1980 Sep 28 2:00s
++ 1:00 Hungary CE%sT 1984
+ 1:00 EU CE%sT
+
+ # Iceland
+@@ -1601,7 +1678,7 @@
+ # The information below is taken from the 1988 Almanak; see
+ #
http://www.almanak.hi.is/klukkan.html
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Iceland 1917 1919 - Feb 19 23:00 1:00 -
+ Rule Iceland 1917 only - Oct 21 1:00 0 -
+ Rule Iceland 1918 1919 - Nov 16 1:00 0 -
+@@ -1693,7 +1770,7 @@
+ # to 1944-06-04; although Rome was an open city during this period, it
+ # was effectively controlled by Germany.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Italy 1916 only - Jun 3 24:00 1:00 S
+ Rule Italy 1916 1917 - Sep 30 24:00 0 -
+ Rule Italy 1917 only - Mar 31 24:00 1:00 S
+@@ -1803,7 +1880,7 @@
+ # urged Lithuania and Estonia to adopt a similar time policy, but it
+ # appears that they will not do so....
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
+ Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
+
+@@ -1896,7 +1973,7 @@
+ # Luxembourg
+ # Whitman disagrees with most of these dates in minor ways;
+ # go with Shanks & Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Lux 1916 only - May 14 23:00 1:00 S
+ Rule Lux 1916 only - Oct 1 1:00 0 -
+ Rule Lux 1917 only - Apr 28 23:00 1:00 S
+@@ -1937,7 +2014,7 @@
+ # From Paul Eggert (2016-10-21):
+ # Assume 1900-1972 was like Rome, overriding Shanks.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Malta 1973 only - Mar 31 0:00s 1:00 S
+ Rule Malta 1973 only - Sep 29 0:00s 0 -
+ Rule Malta 1974 only - Apr 21 0:00s 1:00 S
+@@ -2010,7 +2087,7 @@
+ # says the 2014-03-30 spring-forward transition was at 02:00 local time.
+ # Guess that since 1997 Moldova has switched one hour before the EU.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
+ Rule Moldova 1997 max - Oct lastSun 3:00 0 -
+
+@@ -2028,11 +2105,24 @@
+ 2:00 Moldova EE%sT
+
+ # Monaco
+-# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
+-# more precise 0:09:21.
++#
++# From Michael Deckers (2020-06-12):
++# In the "Journal de Monaco" of 1892-05-24, online at
++#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c6...
++# we read: ...
++# [In virtue of a Sovereign Ordinance of the May 13 of the current [year],
++# legal time in the Principality will be set to, from the date of June 1,
++# 1892 onwards, to the meridian of Paris, as in France.]
++# In the "Journal de Monaco" of 1911-03-28, online at
++#
https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74...
++# we read an ordinance of 1911-03-16: ...
++# [Legal time in the Principality will be set, from the date of promulgation
++# of the present ordinance, to legal time in France.... Consequently, legal
++# time will be retarded by 9 minutes and 21 seconds.]
++#
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+-Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
+- 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
++Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1
++ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time
+ 0:00 France WE%sT 1945 Sep 16 3:00
+ 1:00 France CE%sT 1977
+ 1:00 EU CE%sT
+@@ -2080,7 +2170,7 @@
+ # The data entries before 1945 are taken from
+ #
https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time
+ Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time
+ Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
+@@ -2117,7 +2207,7 @@
+ # Norway
+ #
http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
+ # Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Norway 1916 only - May 22 1:00 1:00 S
+ Rule Norway 1916 only - Sep 30 0:00 0 -
+ Rule Norway 1945 only - Apr 2 2:00s 1:00 S
+@@ -2186,7 +2276,7 @@
+ # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20),
+ # <
http://www.wbc.poznan.pl/publication/32156> pp 1-2.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Poland 1918 1919 - Sep 16 2:00s 0 -
+ Rule Poland 1919 only - Apr 15 2:00s 1:00 S
+ Rule Poland 1944 only - Apr 3 2:00s 1:00 S
+@@ -2257,7 +2347,7 @@
+ # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
+ # harmonized with EU rules), and that they stayed +0:00 that winter.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
+ # done every year, depending on what Spain did, because of railroad schedules.
+ # Go with Shanks & Pottenger.
+@@ -2370,7 +2460,7 @@
+ # assume that Romania and Moldova switched to EU rules in 1997,
+ # the same year as Bulgaria.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Romania 1932 only - May 21 0:00s 1:00 S
+ Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
+ Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
+@@ -3468,14 +3558,14 @@
+ # fallback transition from the next day's 00:59... to 00:00.
+
+ # From Michael Deckers (2016-12-15):
+-# The Royal Decree of 1900-06-26 quoted by Planesas, online at
++# The Royal Decree of 1900-07-26 quoted by Planesas, online at
+ #
https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf
+ # says in its article 5 (my translation):
+ # These dispositions will enter into force beginning with the
+ # instant at which, according to the time indicated in article 1,
+ # the 1st day of January of 1901 will begin.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Spain 1918 only - Apr 15 23:00 1:00 S
+ Rule Spain 1918 1919 - Oct 6 24:00s 0 -
+ Rule Spain 1919 only - Apr 6 23:00 1:00 S
+@@ -3612,7 +3702,7 @@
+ # By the end of the 18th century clocks and watches became commonplace
+ # and their performance improved enormously. Communities began to keep
+ # mean time in preference to apparent time - Geneva from 1780 ....
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # From Whitman (who writes "Midnight?"):
+ # Rule Swiss 1940 only - Nov 2 0:00 1:00 S
+ # Rule Swiss 1940 only - Dec 31 0:00 0 -
+@@ -3699,7 +3789,7 @@
+ # 1853-07-16, though it probably occurred at some other date in Zurich, and
+ # legal civil time probably changed at still some other transition date.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
+ Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -3848,7 +3938,7 @@
+ # Although Google Translate misfires on that source, it looks like
+ # Turkey reversed last month's decision, and so will stay at +03.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Turkey 1916 only - May 1 0:00 1:00 S
+ Rule Turkey 1916 only - Oct 1 0:00 0 -
+ Rule Turkey 1920 only - Mar 28 0:00 1:00 S
+@@ -4006,7 +4096,7 @@
+ 2:00 1:00 EEST 1991 Sep 29 3:00
+ 2:00 E-Eur EE%sT 1995
+ 2:00 EU EE%sT
+-# Ruthenia used CET 1990/1991.
++# Transcarpathia used CET 1990/1991.
+ # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
+ # "Uzhgorod" is more common in English.
+ Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
openjdk/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/leapseconds
+@@ -91,11 +91,11 @@
+ # Any additional leap seconds will come after this.
+ # This Expires line is commented out for now,
+ # so that pre-2020a zic implementations do not reject this file.
+-#Expires 2020 Dec 28 00:00:00
++#Expires 2021 Jun 28 00:00:00
+
+ # POSIX timestamps for the data in this file:
+ #updated 1467936000 (2016-07-08 00:00:00 UTC)
+-#expires 1609113600 (2020-12-28 00:00:00 UTC)
++#expires 1624838400 (2021-06-28 00:00:00 UTC)
+
+-# Updated through IERS Bulletin C59
+-# File expires on: 28 December 2020
++# Updated through IERS Bulletin C60
++# File expires on: 28 June 2021
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/northamerica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/northamerica
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/northamerica
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/northamerica
+@@ -193,7 +193,7 @@
+ # U.S. government action. So even though the "US" rules have changed
+ # in the latest release, other countries won't be affected.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
+ Rule US 1918 1919 - Oct lastSun 2:00 0 S
+ Rule US 1942 only - Feb 9 2:00 1:00 W # War
+@@ -370,7 +370,7 @@
+ # Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the
+ # nearest second.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
+ Rule NYC 1920 only - Oct lastSun 2:00 0 S
+ Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
+@@ -454,7 +454,7 @@
+ # The Tennessean 2007-05-11, republished 2015-04-06.
+ #
https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seige...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Chicago 1920 only - Jun 13 2:00 1:00 D
+ Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
+ Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
+@@ -523,7 +523,7 @@
+ # El Paso Times. 2018-10-24 06:40 -06.
+ #
https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoan...
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
+ Rule Denver 1920 only - Oct lastSun 2:00 0 S
+ Rule Denver 1921 only - May 22 2:00 0 S
+@@ -576,7 +576,7 @@
+ #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&co...
+ #
https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&co...
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule CA 1948 only - Mar 14 2:01 1:00 D
+ Rule CA 1949 only - Jan 1 2:00 0 S
+ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
+@@ -934,7 +934,7 @@
+ # going to switch from Central to Eastern Time on March 11, 2007....
+ #
http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/7...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
+ Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
+ Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
+@@ -953,7 +953,7 @@
+ #
+ # Eastern Crawford County, Indiana, left its clocks alone in 1974,
+ # as well as from 1976 through 2005.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
+ Rule Marengo 1951 only - Sep lastSun 2:00 0 S
+ Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
+@@ -972,7 +972,7 @@
+ # Daviess, Dubois, Knox, and Martin Counties, Indiana,
+ # switched from eastern to central time in April 2006, then switched back
+ # in November 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
+ Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
+ Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
+@@ -997,7 +997,7 @@
+ # The Indianapolis News, Friday 27 October 1967 states that Perry County
+ # returned to CST. It went again to EST on 27 April 1969, as documented by the
+ # Indianapolis star of Saturday 26 April.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Perry 1955 only - May 1 0:00 1:00 D
+ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
+@@ -1014,7 +1014,7 @@
+ #
+ # Pike County, Indiana moved from central to eastern time in 1977,
+ # then switched back in 2006, then switched back again in 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Pike 1955 only - May 1 0:00 1:00 D
+ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
+ Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
+@@ -1035,7 +1035,7 @@
+ # An article on page A3 of the Sunday, 1991-10-27 Washington Post
+ # notes that Starke County switched from Central time to Eastern time as of
+ # 1991-10-27.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
+ Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
+ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
+@@ -1052,7 +1052,7 @@
+ #
+ # Pulaski County, Indiana, switched from eastern to central time in
+ # April 2006 and then switched back in March 2007.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
+ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
+ Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
+@@ -1094,7 +1094,7 @@
+ #
+ # Part of Kentucky left its clocks alone in 1974.
+ # This also includes Clark, Floyd, and Harrison counties in Indiana.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Louisville 1921 only - May 1 2:00 1:00 D
+ Rule Louisville 1921 only - Sep 1 2:00 0 S
+ Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
+@@ -1208,7 +1208,7 @@
+ # election Michigan voters narrowly repealed DST, effective 1969.
+ #
+ # Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
+ Rule Detroit 1948 only - Sep lastSun 2:00 0 S
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1225,7 +1225,7 @@
+ #
+ # Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
+ # switched from EST to CST/CDT in 1973.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
++# Rule NAME FROM TO - IN ON AT SAVE LETTER
+ Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
+ Rule Menominee 1946 only - Sep lastSun 2:00 0 S
+ Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
+@@ -1395,7 +1395,7 @@
+ # Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
+ # than Thursday) in all Canadian rulesets.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Canada 1918 only - Apr 14 2:00 1:00 D
+ Rule Canada 1918 only - Oct 27 2:00 0 S
+ Rule Canada 1942 only - Feb 9 2:00 1:00 W # War
+@@ -1418,7 +1418,7 @@
+ # that follows the rules is the southeast corner, including Port Hope
+ # Simpson and Mary's Harbour, but excluding, say, Black Tickle.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule StJohns 1917 only - Apr 8 2:00 1:00 D
+ Rule StJohns 1917 only - Sep 17 2:00 0 S
+ # Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
+@@ -1520,7 +1520,7 @@
+ # bill say that it is "accommodating the customs and practices" of those
+ # regions, which suggests that they have always been in-line with Halifax.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Halifax 1916 only - Apr 1 0:00 1:00 D
+ Rule Halifax 1916 only - Oct 1 0:00 0 S
+ Rule Halifax 1920 only - May 9 0:00 1:00 D
+@@ -1586,7 +1586,7 @@
+ # clear that this was the case since at least 1993.
+ # For now, assume it started in 1993.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
+ Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
+ Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
+@@ -1795,7 +1795,7 @@
+ # With some exceptions, the use of daylight saving may be said to be limited
+ # to those cities and towns lying between Quebec city and Windsor, Ont.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Toronto 1919 only - Mar 30 23:30 1:00 D
+ Rule Toronto 1919 only - Oct 26 0:00 0 S
+ Rule Toronto 1920 only - May 2 2:00 1:00 D
+@@ -1893,7 +1893,7 @@
+ # starting 1966. Since 02:00s is clearly correct for 1967 on, assume
+ # it was also 02:00s in 1966.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Winn 1916 only - Apr 23 0:00 1:00 D
+ Rule Winn 1916 only - Sep 17 0:00 0 S
+ Rule Winn 1918 only - Apr 14 2:00 1:00 D
+@@ -1984,7 +1984,7 @@
+ # long and rather painful to read.
+ #
http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Regina 1918 only - Apr 14 2:00 1:00 D
+ Rule Regina 1918 only - Oct 27 2:00 0 S
+ Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
+@@ -2034,7 +2034,7 @@
+ # Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
+ # ISBN 978-1459739123.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
+ Rule Edm 1918 only - Oct 27 2:00 0 S
+ Rule Edm 1919 only - May 27 2:00 0 S
+@@ -2143,7 +2143,7 @@
+ #
https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-jul...
+ # We have no further details, so omit them for now.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Vanc 1918 only - Apr 14 2:00 1:00 D
+ Rule Vanc 1918 only - Oct 27 2:00 0 S
+ Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
+@@ -2472,7 +2472,19 @@
+ # consistency with nearby Dawson Creek, Creston, and Fort Nelson.
+ #
https://yukon.ca/en/news/yukon-end-seasonal-time-change
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# From Andrew G. Smith (2020-09-24):
++# Yukon has completed its regulatory change to be on UTC -7 year-round....
++#
http://www.gov.yk.ca/legislation/regs/oic2020_125.pdf
++# What we have done is re-defined Yukon Standard Time, as we are
++# authorized to do under section 33 of our Interpretation Act:
++#
http://www.gov.yk.ca/legislation/acts/interpretation_c.pdf
++#
++# From Paul Eggert (2020-09-24):
++# tzdb uses the obsolete YST abbreviation for standard time in Yukon through
++# about 1970, and uses PST for standard time in Yukon since then. Consistent
++# with that, use MST for -07, the new standard time in Yukon effective Nov. 1.
++
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
+ Rule NT_YK 1918 only - Oct 27 2:00 0 S
+ Rule NT_YK 1919 only - May 25 2:00 1:00 D
+@@ -2526,12 +2538,12 @@
+ Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1967 May 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT 2020 Mar 8 2:00
++ -8:00 Canada P%sT 2020 Nov 1
+ -7:00 - MST
+ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1973 Oct 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT 2020 Mar 8 2:00
++ -8:00 Canada P%sT 2020 Nov 1
+ -7:00 - MST
+
+
+@@ -2746,7 +2758,7 @@
+ # 5- The islands, reefs and keys shall take their timezone from the
+ # longitude they are located at.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Mexico 1939 only - Feb 5 0:00 1:00 D
+ Rule Mexico 1939 only - Jun 25 0:00 0 S
+ Rule Mexico 1940 only - Dec 9 0:00 1:00 D
+@@ -2951,7 +2963,7 @@
+ # rules to sync with the U.S. starting in 2007....
+ #
http://www.jonesbahamas.com/?c=45&a=10412
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
+ Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -2963,7 +2975,7 @@
+
+ # For 1899 Milne gives -3:58:29.2; round that.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Barb 1977 only - Jun 12 2:00 1:00 D
+ Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
+ Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
+@@ -2976,7 +2988,7 @@
+
+ # Belize
+ # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530
+ Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST
+ Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
+@@ -3013,7 +3025,7 @@
+
+ # Milne gives -5:36:13.3 as San José mean time; round to nearest.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
+ Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
+ Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
+@@ -3187,7 +3199,7 @@
+ # From Paul Eggert (2012-11-03):
+ # For now, assume the future rule is first Sunday in November.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Cuba 1928 only - Jun 10 0:00 1:00 D
+ Rule Cuba 1928 only - Oct 10 0:00 0 S
+ Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
+@@ -3256,7 +3268,7 @@
+ # decided to revert.
+
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule DR 1966 only - Oct 30 0:00 1:00 EDT
+ Rule DR 1967 only - Feb 28 0:00 0 EST
+ Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
+@@ -3273,7 +3285,7 @@
+
+ # El Salvador
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
+ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
+ # There are too many San Salvadors elsewhere, so use America/El_Salvador
+@@ -3302,7 +3314,7 @@
+ # (2006-04-19), says DST ends at 24:00. See
+ #
http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Hora...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Guat 1973 only - Nov 25 0:00 1:00 D
+ Rule Guat 1974 only - Feb 24 0:00 0 S
+ Rule Guat 1983 only - May 21 0:00 1:00 D
+@@ -3383,7 +3395,7 @@
+ # I have not been able to find a more authoritative source:
+ #
https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-hai...
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Haiti 1983 only - May 8 0:00 1:00 D
+ Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
+ Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
+@@ -3431,7 +3443,7 @@
+ #
http://www.laprensahn.com/pais_nota.php?id04962=7386
+ # So it seems that Honduras will not enter DST this year....
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
+ Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
+ Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
+@@ -3522,7 +3534,7 @@
+ # The natural sun time is restored in all the national territory, in that the
+ # time is returned one hour at 01:00 am of October 1 of 2006.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
+ Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
+ Rule Nic 2005 only - Apr 10 0:00 1:00 D
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
openjdk/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
+deleted file mode 100644
+--- openjdk/jdk/test/sun/util/calendar/zi/tzdata/pacificnew
++++ /dev/null
+@@ -1,52 +0,0 @@
+-#
+-# 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. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# 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.
+-#
+-# tzdb data for proposed US election time (this file is obsolete)
+-
+-# This file is in the public domain, so clarified as of
+-# 2009-05-17 by Arthur David Olson.
+-
+-# From Arthur David Olson (1989-04-05):
+-# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
+-# establishing "Pacific Presidential Election Time"; it was not acted on
+-# by the Senate or signed into law by the President.
+-# You might want to change the "PE" (Presidential Election) below to
+-# "Q" (Quadrennial) to maintain three-character zone abbreviations.
+-# If you're really conservative, you might want to change it to "D".
+-# Avoid "L" (Leap Year), which won't be true in 2100.
+-
+-# If Presidential Election Time is ever established, replace "XXXX" below
+-# with the year the law takes effect and uncomment the "##" lines.
+-
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
+-## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
+-## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
+-## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
+-
+-# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
+-## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
+-## -8:00 Twilite P%sT
+-
+-# For now...
+-Link America/Los_Angeles US/Pacific-New ##
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/southamerica
openjdk/jdk/test/sun/util/calendar/zi/tzdata/southamerica
+--- openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/southamerica
++++ openjdk/jdk/test/sun/util/calendar/zi/tzdata/southamerica
+@@ -71,7 +71,7 @@
+ # I am sending modifications to the Argentine time zone table...
+ # AR was chosen because they are the ISO letters that represent Argentina.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Arg 1930 only - Dec 1 0:00 1:00 -
+ Rule Arg 1931 only - Apr 1 0:00 0 -
+ Rule Arg 1931 only - Oct 15 0:00 1:00 -
+@@ -792,7 +792,7 @@
+ # From Paul Eggert (2013-10-17):
+ # For now, assume western Amazonas will change as well.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ # Decree 20,466 <
http://pcdsh01.on.br/HV20466.htm> (1931-10-01)
+ # Decree 21,896 <
http://pcdsh01.on.br/HV21896.htm> (1932-01-10)
+ Rule Brazil 1931 only - Oct 3 11:00 1:00 -
+@@ -1281,7 +1281,7 @@
+ # For now, assume that they will not revert,
+ # since they have extended the expiration date once already.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
+ Rule Chile 1928 1932 - Apr 1 0:00 0 -
+ Rule Chile 1968 only - Nov 3 4:00u 1:00 -
+@@ -1381,7 +1381,7 @@
+ # Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
+ # "A variation of fifteen minutes in the public clocks of Bogota is not
rare."
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule CO 1992 only - May 3 0:00 1:00 -
+ Rule CO 1993 only - Apr 4 0:00 0 -
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+@@ -1441,7 +1441,7 @@
+ # (Not one step back), the clocks went back in 1993 and the experiment was not
+ # repeated. For now, assume transitions were at 00:00 local time country-wide.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
+ Rule Ecuador 1993 only - Feb 5 0:00 0 -
+ #
+@@ -1535,7 +1535,7 @@
+ # For now we will assume permanent -03 for the Falklands
+ # until advised differently (to apply for 2012 and beyond, after the 2011
+ # experiment was apparently successful.)
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
+ Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
+ Rule Falk 1939 only - Oct 1 0:00 1:00 -
+@@ -1581,7 +1581,7 @@
+ # No time of the day is established for the adjustment, so people normally
+ # adjust their clocks at 0 hour of the given dates.
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Para 1975 1988 - Oct 1 0:00 1:00 -
+ Rule Para 1975 1978 - Mar 1 0:00 0 -
+ Rule Para 1979 1991 - Apr 1 0:00 0 -
+@@ -1674,7 +1674,7 @@
+ # From Paul Eggert (2006-03-22):
+ # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
+
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Peru 1938 only - Jan 1 0:00 1:00 -
+ Rule Peru 1938 only - Apr 1 0:00 0 -
+ Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
+@@ -1770,7 +1770,7 @@
+ #
https://www.impo.com.uy/diariooficial/1926/03/10/2
+ #
https://www.impo.com.uy/diariooficial/1926/03/18/2
+ #
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
+ Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
+ Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
+ # From Tim Parenti (2018-02-15):
+diff --git openjdk.orig/jdk/test/sun/util/calendar/zi/tzdata/systemv
openjdk/jdk/test/sun/util/calendar/zi/tzdata/systemv
+deleted file mode 100644
+--- openjdk/jdk/test/sun/util/calendar/zi/tzdata/systemv
++++ /dev/null
+@@ -1,62 +0,0 @@
+-#
+-# 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. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# 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.
+-#
+-# tzdb data for System V rules (this file is obsolete)
+-
+-# This file is in the public domain, so clarified as of
+-# 2009-05-17 by Arthur David Olson.
+-
+-# Old rules, should the need arise.
+-# No attempt is made to handle Newfoundland, since it cannot be expressed
+-# using the System V "TZ" scheme (half-hour offset), or anything outside
+-# North America (no support for non-standard DST start/end dates), nor
+-# the changes in the DST rules in the US after 1976 (which occurred after
+-# the old rules were written).
+-#
+-# If you need the old rules, uncomment ## lines.
+-# Compile this *without* leap second correction for true conformance.
+-
+-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+-Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
+-Rule SystemV min 1973 - Oct lastSun 2:00 0 S
+-Rule SystemV 1974 only - Jan 6 2:00 1:00 D
+-Rule SystemV 1974 only - Nov lastSun 2:00 0 S
+-Rule SystemV 1975 only - Feb 23 2:00 1:00 D
+-Rule SystemV 1975 only - Oct lastSun 2:00 0 S
+-Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
+-Rule SystemV 1976 max - Oct lastSun 2:00 0 S
+-
+-# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL]
+-## Zone SystemV/AST4ADT -4:00 SystemV A%sT
+-## Zone SystemV/EST5EDT -5:00 SystemV E%sT
+-## Zone SystemV/CST6CDT -6:00 SystemV C%sT
+-## Zone SystemV/MST7MDT -7:00 SystemV M%sT
+-## Zone SystemV/PST8PDT -8:00 SystemV P%sT
+-## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
+-## Zone SystemV/AST4 -4:00 - AST
+-## Zone SystemV/EST5 -5:00 - EST
+-## Zone SystemV/CST6 -6:00 - CST
+-## Zone SystemV/MST7 -7:00 - MST
+-## Zone SystemV/PST8 -8:00 - PST
+-## Zone SystemV/YST9 -9:00 - YST
+-## Zone SystemV/HST10 -10:00 - HST
diff --git
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
index 2700f3c..e1e7214 100644
---
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
+++
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
@@ -32,7 +32,7 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupT
- " [Entries: " UINTX_FORMAT ", Load: "
G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " UINTX_FORMAT ", Added: "
UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
+ " [Entries: " UINTX_FORMAT ", Load: "
G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " SIZE_FORMAT ", Added: "
UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
" [Resize Count: " UINTX_FORMAT ", Shrink Threshold: "
UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS "), Grow Threshold: "
UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS ")]\n"
- " [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: "
UINTX_FORMAT ", Hash Seed: 0x%x]\n"
+ " [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: "
UINTX_FORMAT ", Hash Seed: " UINT64_FORMAT "]\n"
" [Age Threshold: " UINTX_FORMAT "]",
diff --git openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp
openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp
--- openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp
diff --git a/sources b/sources
index 8863e1c..e5f9ad5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b09-4curve.tar.xz) =
c7854756dece4537091d465afccd2d7d15f7c474e679c704322645b97d98f124a433c9b642d40080c19aa3cace0a8569d6d17cb1df86bbc01afdd3e061de5825
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b10-4curve.tar.xz) =
76b75cb67fb86651b9b2a0c9c07e48585ce402e6076a8b4a6989daf5e949cf1b9159fbcd3e28afd17156093494e9a260bceda9cf89cfdc51238224cb96a428de
commit f805bfcfda0b8f4d8cb73219c5604fee0ed6a9cd
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Sep 28 05:02:21 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b09 (EA).
diff --git a/.gitignore b/.gitignore
index 3251ec2..b3b29b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -205,3 +205,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b09-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c577134..200c989 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2403,6 +2403,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Sep 28 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b09-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b09 (EA).
+
* Wed Sep 16 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b08-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b08 (EA).
diff --git a/sources b/sources
index acbfaed..8863e1c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz) =
86788aaf347fb0eac519b53c6c239e089675c3537b9103c0e25e073203f091f1d1c91f7aa51952ddb540869ad8daac736c042bb852feba6ff06425bcf42dfb83
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b09-4curve.tar.xz) =
c7854756dece4537091d465afccd2d7d15f7c474e679c704322645b97d98f124a433c9b642d40080c19aa3cace0a8569d6d17cb1df86bbc01afdd3e061de5825
commit 6037d594eeb97a06d066cc541d1801e1ba16155d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Sep 16 16:11:40 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b08 (EA).
diff --git a/.gitignore b/.gitignore
index e26de91..3251ec2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -204,3 +204,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 80070b2..c577134 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2403,6 +2403,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Sep 16 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b08-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b08 (EA).
+
* Tue Sep 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b07.
diff --git a/sources b/sources
index dca4b2f..acbfaed 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz) =
da83f077e5f15e024175929a8730200e1180a56bb29a28a8b4eaa6a02385e9be2276b8d766a3353b813bae607e4ae82a1a58749d5d84b530dea9ac546f7d3a8b
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b08-4curve.tar.xz) =
86788aaf347fb0eac519b53c6c239e089675c3537b9103c0e25e073203f091f1d1c91f7aa51952ddb540869ad8daac736c042bb852feba6ff06425bcf42dfb83
commit a9172932cb422d0f2c81645c50ece9466b85111a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Sep 16 06:08:20 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b07.
diff --git a/.gitignore b/.gitignore
index 3d7037d..e26de91 100644
--- a/.gitignore
+++ b/.gitignore
@@ -203,3 +203,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d4125a9..80070b2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2403,6 +2403,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Sep 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b07.
+
* Thu Sep 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b06.
- Update tarball generation script to use PR3799, following inclusion of JDK-8245468
(TLSv1.3)
diff --git a/sources b/sources
index e7da2c5..dca4b2f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz) =
cb5ae7eed7b535d429463d830423ef9de335d97d64eaac0bd770b57045587b9387ed139b8c67d44597d37222d80e6f4f1f936265fd4c85f339b141c7f9946d49
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b07-4curve.tar.xz) =
da83f077e5f15e024175929a8730200e1180a56bb29a28a8b4eaa6a02385e9be2276b8d766a3353b813bae607e4ae82a1a58749d5d84b530dea9ac546f7d3a8b
commit 96b7bf4ad016d68ee2667b73130aaac1301e2b14
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Sep 4 15:07:11 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b06.
Update tarball generation script to use PR3799, following inclusion of JDK-8245468
(TLSv1.3)
diff --git a/.gitignore b/.gitignore
index 5ae92ea..3d7037d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -202,3 +202,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index f90a8df..5f3c6f0 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -4,7 +4,7 @@
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
# If your local repo follows upstream forests conventions, it may be enough to set
OPENJDK_URL
-# If you want to use a local copy of patch PR3795, set the path to it in the PR3795
variable
+# If you want to use a local copy of patch PR3799, set the path to it in the PR3799
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=jdk8u OR aarch64-port
@@ -19,9 +19,9 @@
# level folder, name is created, based on parameter
#
-if [ ! "x$PR3795" = "x" ] ; then
- if [ ! -f "$PR3795" ] ; then
- echo "You have specified PR3795 as $PR3795 but it does not exists.
exiting"
+if [ ! "x$PR3799" = "x" ] ; then
+ if [ ! -f "$PR3799" ] ; then
+ echo "You have specified PR3799 as $PR3799 but it does not exists.
exiting"
exit 1
fi
fi
@@ -41,7 +41,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
- echo "PR3795 - the path to the PR3795 patch to apply (optional; downloaded if
unavailable)"
+ echo "PR3799 - the path to the PR3799 patch to apply (optional; downloaded if
unavailable)"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -124,15 +124,15 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-if [ "x$PR3795" = "x" ] ; then
-# get pr3795.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3795)
- wget -O pr3795.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3795-4cur...
- patch -Np1 < pr3795.patch
- rm pr3795.patch
+if [ "x$PR3799" = "x" ] ; then
+# get pr3799.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3799)
+ wget -O pr3799.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3799-4cur...
+ patch -Np1 < pr3799.patch
+ rm pr3799.patch
else
- echo "Applying ${PR3795}"
- patch -Np1 < $PR3795
+ echo "Applying ${PR3799}"
+ patch -Np1 < $PR3799
fi;
fi
find . -name '*.orig' -exec rm -vf '{}' ';'
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 15512c8..d4125a9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2403,6 +2403,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Sep 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b06.
+- Update tarball generation script to use PR3799, following inclusion of JDK-8245468
(TLSv1.3)
+
* Wed Sep 02 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28.
- Add additional s390 log2_intptr case in shenandoahUtils.cpp introduced by JDK-8245464
diff --git a/sources b/sources
index f48e4f4..e7da2c5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz)
=
0b97e71fda79399179439aa850edd7228e8ea318be09e80e1a1c380a145cdb968e3a22a27d4b388d9cc28ec52de2815aa67e0931e998c79ff47f122e26f31b2d
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b06-4curve.tar.xz) =
cb5ae7eed7b535d429463d830423ef9de335d97d64eaac0bd770b57045587b9387ed139b8c67d44597d37222d80e6f4f1f936265fd4c85f339b141c7f9946d49
commit 5cf3d024017b0cba685517682cc6a8a0106721e1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Sep 3 14:04:04 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28.
Add additional s390 log2_intptr case in shenandoahUtils.cpp introduced by JDK-8245464
diff --git a/.gitignore b/.gitignore
index 2a94d3b..5ae92ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -201,3 +201,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index efcc646..15512c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b05
+%global shenandoah_revision
aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2403,6 +2403,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Sep 02 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28.
+- Add additional s390 log2_intptr case in shenandoahUtils.cpp introduced by JDK-8245464
+
* Thu Aug 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b05.
- Add additional s390 size_t case in g1ConcurrentMarkObjArrayProcessor.cpp introduced by
JDK-8057003
diff --git a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
index 7bdce3a..53bceec 100644
--- a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
+++ b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
@@ -331,3 +331,13 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMa
if (remaining > ObjArrayMarkingStride) {
push_array_slice(start_from + ObjArrayMarkingStride);
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+@@ -150,5 +150,5 @@
+ return value;
+ }
+
+- return (size_t)1 << (log2_intptr(value) + 1);
++ return (size_t)1 << (log2_intptr((uintptr_t) value) + 1);
+ }
diff --git a/sources b/sources
index 7789d61..f48e4f4 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz) =
59c31185d067d0384561dc3451265e4dbb36331a8734975a29e5ce5b0c100f713dcb070fb5b8aa53e2e4e8f44ca7caf4935d6061488cea4f4bd5f95fd3145e93
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28-4curve.tar.xz)
=
0b97e71fda79399179439aa850edd7228e8ea318be09e80e1a1c380a145cdb968e3a22a27d4b388d9cc28ec52de2815aa67e0931e998c79ff47f122e26f31b2d
commit 9b532ed2d500c4e0dc200890dd86f51a83ff6fd8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Aug 31 06:25:37 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b05.
Add additional s390 size_t case in g1ConcurrentMarkObjArrayProcessor.cpp introduced by
JDK-8057003
diff --git a/.gitignore b/.gitignore
index b384d73..2a94d3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -200,3 +200,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 047453b..efcc646 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2403,6 +2403,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b05-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b05.
+- Add additional s390 size_t case in g1ConcurrentMarkObjArrayProcessor.cpp introduced by
JDK-8057003
+
* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b04.
- Update tarball generation script to use PR3795, following inclusion of JDK-8177334
diff --git a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
index 843158e..7bdce3a 100644
--- a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
+++ b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
@@ -319,3 +319,15 @@ diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotsp
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
+@@ -41,7 +41,7 @@
+ }
+
+ size_t G1CMObjArrayProcessor::process_array_slice(objArrayOop obj, HeapWord* start_from,
size_t remaining) {
+- size_t words_to_scan = MIN2(remaining, ObjArrayMarkingStride);
++ size_t words_to_scan = MIN2(remaining, (size_t) ObjArrayMarkingStride);
+
+ if (remaining > ObjArrayMarkingStride) {
+ push_array_slice(start_from + ObjArrayMarkingStride);
diff --git a/sources b/sources
index 01c5291..7789d61 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz) =
095c117c613fcb1322fd9f0eabbfa52cac3680c671588180a620d3423324934c295d2c25959bda1421de1336d9462ab43b254a7a09b19107c86a55830eb60c7b
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b05-4curve.tar.xz) =
59c31185d067d0384561dc3451265e4dbb36331a8734975a29e5ce5b0c100f713dcb070fb5b8aa53e2e4e8f44ca7caf4935d6061488cea4f4bd5f95fd3145e93
commit 92edf1fe1e28f565d9f2a4f9622c7ba82645319f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Aug 30 01:38:59 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b04.
Update tarball generation script to use PR3795, following inclusion of JDK-8177334
diff --git a/.gitignore b/.gitignore
index 9af6436..b384d73 100644
--- a/.gitignore
+++ b/.gitignore
@@ -199,3 +199,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 46aa18e..f90a8df 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -4,7 +4,7 @@
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
# If your local repo follows upstream forests conventions, it may be enough to set
OPENJDK_URL
-# If you want to use a local copy of patch PR3756, set the path to it in the PR3756
variable
+# If you want to use a local copy of patch PR3795, set the path to it in the PR3795
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=jdk8u OR aarch64-port
@@ -19,9 +19,9 @@
# level folder, name is created, based on parameter
#
-if [ ! "x$PR3756" = "x" ] ; then
- if [ ! -f "$PR3756" ] ; then
- echo "You have specified PR3756 as $PR3756 but it does not exists.
exiting"
+if [ ! "x$PR3795" = "x" ] ; then
+ if [ ! -f "$PR3795" ] ; then
+ echo "You have specified PR3795 as $PR3795 but it does not exists.
exiting"
exit 1
fi
fi
@@ -41,7 +41,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
- echo "PR3756 - the path to the PR3756 patch to apply (optional; downloaded if
unavailable)"
+ echo "PR3795 - the path to the PR3795 patch to apply (optional; downloaded if
unavailable)"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -124,15 +124,15 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-if [ "x$PR3756" = "x" ] ; then
-# get pr3756.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3756)
- wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3756.patch
- patch -Np1 < pr3756.patch
- rm pr3756.patch
+if [ "x$PR3795" = "x" ] ; then
+# get pr3795.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3795)
+ wget -O pr3795.patch
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3795-4cur...
+ patch -Np1 < pr3795.patch
+ rm pr3795.patch
else
- echo "Applying ${PR3756}"
- patch -Np1 < $PR3756
+ echo "Applying ${PR3795}"
+ patch -Np1 < $PR3795
fi;
fi
find . -name '*.orig' -exec rm -vf '{}' ';'
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ac990eb..047453b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2403,6 +2403,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b04.
+- Update tarball generation script to use PR3795, following inclusion of JDK-8177334
+
* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b03.
diff --git a/sources b/sources
index 4e93340..01c5291 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz) =
391b3662d7fa8687d93468f0b9e9731d0678c05bb60367a25df0fdab1dbbe3cf28cda14f75baeda35fd7e5e48d85a3579bcc427ab5ce4bd7d60b016bc054e960
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b04-4curve.tar.xz) =
095c117c613fcb1322fd9f0eabbfa52cac3680c671588180a620d3423324934c295d2c25959bda1421de1336d9462ab43b254a7a09b19107c86a55830eb60c7b
commit 376c4dd81add583b160e3de315a5ec36134e40a0
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Aug 28 06:29:20 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b03.
diff --git a/.gitignore b/.gitignore
index 699143e..9af6436 100644
--- a/.gitignore
+++ b/.gitignore
@@ -198,3 +198,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a0320f3..ac990eb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2403,6 +2403,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b03.
+
* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.1.ea
- Remove "-fcommon" following GCC 10 fixes upstream (JDK-8238380, JDK-8238386,
JDK-8238388)
diff --git a/sources b/sources
index 1632f9f..4e93340 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz) =
bd243bb11a6ae8361a7724029a5d89b73909a28c1f5233e3e4f5847f4957fbecb39b989a888ab3038aa438dab17e1e8502ccf0f9faa2da12d78046f5805159c6
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b03-4curve.tar.xz) =
391b3662d7fa8687d93468f0b9e9731d0678c05bb60367a25df0fdab1dbbe3cf28cda14f75baeda35fd7e5e48d85a3579bcc427ab5ce4bd7d60b016bc054e960
commit 5c4f27c64842b9154f332e150ff21cdbd277b38b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Aug 20 15:21:06 2020 +0000
Remove "-fcommon" following GCC 10 fixes upstream (JDK-8238380, JDK-8238386,
JDK-8238388)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 718f1cb..a0320f3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1800,7 +1800,7 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
-EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon"
+EXTRA_CFLAGS="%ourcppflags -Wno-error"
EXTRA_CPP_FLAGS="%ourcppflags"
%ifarch %{power64} ppc
@@ -2403,6 +2403,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 19 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.1.ea
+- Remove "-fcommon" following GCC 10 fixes upstream (JDK-8238380, JDK-8238386,
JDK-8238388)
+
* Sun Aug 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b02.
- Remove JDK-8154313 backport now applied upstream.
commit ee08e04599f4eebc12db112f8e14deef95e5a372
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Aug 17 19:51:17 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b02.
Remove JDK-8154313 backport now applied upstream.
Change target from 'zip-docs' to 'docs-zip', which is the naming used
upstream.
diff --git a/.gitignore b/.gitignore
index df6ba2c..699143e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -197,3 +197,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5634043..718f1cb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -115,7 +115,7 @@
%endif
%global bootstrap_targets images
-%global release_targets images zip-docs
+%global release_targets images docs-zip
# No docs nor bootcycle for debug builds
%global debug_targets images
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u272-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1327,8 +1327,6 @@ Patch107: s390-8214206_fix.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
-# S8154313: Generated javadoc scattered all over the place
-Patch578: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8143245, PR3548: Zero build requires disabled warnings
@@ -1714,7 +1712,6 @@ sh %{SOURCE12}
%patch502
%patch504
%patch512
-%patch578
%patch523
%patch528
%patch529
@@ -2406,6 +2403,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Aug 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b02.
+- Remove JDK-8154313 backport now applied upstream.
+- Change target from 'zip-docs' to 'docs-zip', which is the naming used
upstream.
+
* Wed Aug 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.272.b01-0.1.ea
- Fix vendor name to include '.': Red Hat, Inc => Red Hat, Inc.
diff --git a/jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
b/jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
deleted file mode 100644
index 3a43c5f..0000000
--- a/jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.069477682 +0200
-+++ jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.014477059 +0200
-@@ -220,6 +220,12 @@
- JRE_API_DOCSDIR = $(DOCSDIR)/jre/api
- PLATFORM_DOCSDIR = $(DOCSDIR)/platform
-
-+
-+JAVADOC_ARCHIVE_NAME := jdk-$(FULL_VERSION)-docs.zip
-+JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(DOCSTMPDIR)/zip-docs
-+JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles
-+JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME)
-+
- # The non-core api javadocs need to be able to access the root of the core
- # api directory, so for jdk/api or jre/api to get to the core api/
- # directory we would use this:
-@@ -319,6 +325,37 @@
- all: docs
- docs: coredocs otherdocs
-
-+#
-+# Optional target which bundles all generated javadocs into a zip
-+# archive. The dependency on docs is handled in Main.gmk. Incremental
-+# building of docs is currently broken so if you invoke zip-docs after
-+# docs, the docs are always rebuilt.
-+#
-+
-+zip-docs: $(JAVADOC_ARCHIVE)
-+
-+#
-+# Add the core docs as prerequisite to the archive to trigger a rebuild
-+# if the core docs were rebuilt. Ideally any doc rebuild should trigger
-+# this, but the way prerequisites are currently setup in this file, that
-+# is hard to achieve.
-+#
-+
-+$(JAVADOC_ARCHIVE): $(COREAPI_INDEX_FILE)
-+ @$(ECHO) "Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME)" ;
-+ $(MKDIR) -p $(JAVADOC_ARCHIVE_DIR) ;
-+ $(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR) ;
-+ $(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR);
-+ all_roots=`$(FIND) $(DOCSDIR) | $(GREP) index.html `; \
-+ pushd $(JAVADOC_ARCHIVE_ASSEMBLY_DIR); \
-+ for index_file in $${all_roots} ; do \
-+ target_dir=`dirname $${index_file}`; \
-+ name=`$(ECHO) $${target_dir} | $(SED) "s;/spec;;" | $(SED)
"s;.*/;;"`; \
-+ $(LN) -s $${target_dir} $${name}; \
-+ done; \
-+ $(ZIP) -q -r $(JAVADOC_ARCHIVE) * ; \
-+ popd ;
-+
- #################################################################
- # Production Targets -- USE THESE TARGETS WHEN:
- # a) You're generating docs outside of release engineering's
---- jdk8/make/Main.gmk 2016-04-01 16:53:41.311480424 +0200
-+++ jdk8/make/Main.gmk 2016-04-01 16:53:41.266479914 +0200
-@@ -165,6 +165,12 @@
- @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f
Javadoc.gmk docs)
- @$(call TargetExit)
-
-+zip-docs: docs zip-docs-only
-+zip-docs-only: start-make
-+ @$(call TargetEnter)
-+ @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f
Javadoc.gmk zip-docs)
-+ @$(call TargetExit)
-+
- sign-jars: jdk sign-jars-only
- sign-jars-only: start-make
- @$(call TargetEnter)
diff --git a/sources b/sources
index 9eb8096..1632f9f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz) =
aa4697511a892e08e7a0935b041809272a5e75ee4ac00c43c649807968e1858aaa83281df04c4d3f369fc8aa65ce72996d02bb46e3f38bd1a04716decd4556ea
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b02-4curve.tar.xz) =
bd243bb11a6ae8361a7724029a5d89b73909a28c1f5233e3e4f5847f4957fbecb39b989a888ab3038aa438dab17e1e8502ccf0f9faa2da12d78046f5805159c6
commit 3542d7367595562af0826dbcfd1dc7d690a56497
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Aug 5 10:58:35 2020 +0200
Fix vendor name to include '.'
Red Hat, Inc => Red Hat, Inc.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 08e7538..5634043 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1848,7 +1848,7 @@ function buildjdk() {
--with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
- --with-vendor-name="Red Hat, Inc" \
+ --with-vendor-name="Red Hat, Inc." \
--with-vendor-url="https://www.redhat.com/" \
--with-vendor-bug-url="%{bugs}" \
--with-vendor-vm-bug-url="%{bugs}" \
@@ -2406,6 +2406,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.272.b01-0.1.ea
+- Fix vendor name to include '.': Red Hat, Inc => Red Hat, Inc.
+
* Sat Aug 01 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u272-b01.
- Switch to EA mode.
commit e1ca9817a15080467dd2c36e475435861ca7285d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Aug 2 00:08:47 2020 +0000
Update to aarch64-shenandoah-jdk8u272-b01.
Switch to EA mode.
Test build JDK is usable by running 'java -version'.
JFR must now be explicitly disabled when unwanted (e.g. x86), following switch of
upstream default.
diff --git a/.gitignore b/.gitignore
index 3f503e8..df6ba2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -196,3 +196,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 331ffce..08e7538 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u265-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u272-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,12 +260,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1828,12 +1828,18 @@ function buildjdk() {
# Variable used in hs_err hook on build failures
local top_builddir_abs_path=$(pwd)/${outputdir}
+ echo "Checking build JDK ${buildjdk} is operational..."
+ ${buildjdk}/bin/java -version
+ echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
+
mkdir -p ${outputdir}
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
%ifarch %{jfr_arches}
--enable-jfr \
+%else
+ --disable-jfr \
%endif
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
@@ -2400,6 +2406,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Aug 01 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.272.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u272-b01.
+- Switch to EA mode.
+- Test build JDK is usable by running 'java -version'.
+- JFR must now be explicitly disabled when unwanted (e.g. x86), following switch of
upstream default.
+
* Mon Jul 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.265.b01-2
- ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README moved to fully versioned dirs
diff --git a/sources b/sources
index ab48a0a..9eb8096 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz) =
ccb2d1c7fff2256e1e4f837399e5bab1fe773c9bda7f2ed3719d59fd653c4cace8343d370d66bcb28e51e5c03635718b67732f7de593fa6c956a90c1a742a028
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u272-b01-4curve.tar.xz) =
aa4697511a892e08e7a0935b041809272a5e75ee4ac00c43c649807968e1858aaa83281df04c4d3f369fc8aa65ce72996d02bb46e3f38bd1a04716decd4556ea
commit c7faf763ed0d3def4e08f8fe68fd53c34c4ac0e3
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Jul 23 13:06:27 2020 +0200
ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README moved to fully versioned dirs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e142c8..331ffce 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -655,9 +655,9 @@ exit 0
%defattr(-,root,root,-)
%dir %{_sysconfdir}/.java/.systemPrefs
%dir %{_sysconfdir}/.java
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
%dir %{_jvmdir}/%{sdkdir -- %{?1}}
%{_jvmdir}/%{jrelnk -- %{?1}}
@@ -829,9 +829,9 @@ exit 0
%define files_devel() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/LICENSE
-%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/THIRD_PARTY_README
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
@@ -2040,9 +2040,9 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
# Install main files.
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
- cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ cp -a bin include lib src.zip {ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
- cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+ cp -a jre/bin jre/lib jre/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README}
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
%if %{with_systemtap}
# Install systemtap support files
@@ -2400,6 +2400,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 27 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.265.b01-2
+- ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README moved to fully versioned dirs
+
* Mon Jul 27 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.265.b01-1
- Reorder _lto_cflags define so that it gets picked up via optflags
commit 54c894ca10731af196c67fbb5b34ebd48cc254f0
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Jul 27 12:50:02 2020 +0200
Actually disable LTO
Previously, the define for _lto_cflags was too far down in the
spec file. optflags is being evaluated before it, thus, it
still contained -flto -ffat-lto-objects cflags which is then
passed to the build. Fix is to move the define further up.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fbd261e..3e142c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -119,6 +119,12 @@
# No docs nor bootcycle for debug builds
%global debug_targets images
+# This package fails to build with LTO due to undefined symbols. LTO
+# was disabled in OpenSuSE as well, but with no real explanation why
+# beyond the undefined symbols. It really should be investigated further.
+# Disable LTO
+%define _lto_cflags %{nil}
+
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
@@ -128,12 +134,6 @@
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
-# This package fails to build with LTO due to undefined symbols. LTO
-# was disabled in OpenSuSE as well, but with no real explanation why
-# beyond the undefined symbols. It really should be investigated further.
-# Disable LTO
-%define _lto_cflags %{nil}
-
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialization must be here. Later the pkg-config have buggy behavior
# looks like openjdk RPM specific bug
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2400,6 +2400,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 27 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.265.b01-1
+- Reorder _lto_cflags define so that it gets picked up via optflags
+
* Mon Jul 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.265.b01-1
- Update to aarch64-shenandoah-jdk8u265-b01.
- Update release notes for 8u265 release.
commit 6d3163d3ed28fc0fdde94f34a72b1b0d872ae714
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jul 27 02:50:10 2020 +0000
Update to aarch64-shenandoah-jdk8u265-b01.
Update release notes for 8u265 release.
diff --git a/.gitignore b/.gitignore
index f676e78..3f503e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -195,3 +195,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 0a0003a..fd782fc 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,16 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u265 (2020-07-27):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/openjdk8u265
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u265.txt
+
+* Bug fixes
+ - JDK-8249677: Regression in 8u after JDK-8237117: Better ForkJoinPool behavior
+ - JDK-8250546: Expect changed behaviour reported in JDK-8249846
+
New in release OpenJDK 8u262 (2020-07-14):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index acb4e74..fbd261e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b10
+%global shenandoah_revision aarch64-shenandoah-jdk8u265-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2400,7 +2400,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b10-0.1
+* Mon Jul 27 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.265.b01-1
+- Update to aarch64-shenandoah-jdk8u265-b01.
+- Update release notes for 8u265 release.
+
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b10-1
- Update to aarch64-shenandoah-jdk8u262-b10.
- Switch to GA mode for final release.
- Update release notes for 8u262 release.
diff --git a/sources b/sources
index 6bfff72..ab48a0a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz) =
ed4e67d3b6254113cbe93f47feae2dbbc205995b7a0ec613c87d1c9fc037c9275f332bcdb9c4b7a158e27dfbecb4772671b64084e47f5d1b25ba4677b27c7096
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u265-b01-4curve.tar.xz) =
ccb2d1c7fff2256e1e4f837399e5bab1fe773c9bda7f2ed3719d59fd653c4cace8343d370d66bcb28e51e5c03635718b67732f7de593fa6c956a90c1a742a028
commit 39ec874dbeb79b15bf59d70605afa798deb3fbd8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jul 16 17:46:47 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b10.
Switch to GA mode for final release.
Update release notes for 8u262 release.
Split JDK-8042159 patch into per-repo patches as upstream.
Update JDK-8042159 JDK patch to apply after JDK-8238002 changes to Awt2dLibraries.gmk
Remove issues in NEWS file duplicated between 8u252 & 8u262 releases.
diff --git a/.gitignore b/.gitignore
index b264023..f676e78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -194,3 +194,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz
diff --git a/NEWS b/NEWS
index 59f5724..0a0003a 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,260 @@ Key:
JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+New in release OpenJDK 8u262 (2020-07-14):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/oj8u262
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u262.txt
+
+* New features
+ - JDK-8223147: JFR Backport
+* Security fixes
+ - JDK-8028431, CVE-2020-14579: NullPointerException in DerValue.equals(DerValue)
+ - JDK-8028591, CVE-2020-14578: NegativeArraySizeException in
sun.security.util.DerInputStream.getUnalignedBitString()
+ - JDK-8230613: Better ASCII conversions
+ - JDK-8231800: Better listing of arrays
+ - JDK-8232014: Expand DTD support
+ - JDK-8233255: Better Swing Buttons
+ - JDK-8234032: Improve basic calendar services
+ - JDK-8234042: Better factory production of certificates
+ - JDK-8234418: Better parsing with CertificateFactory
+ - JDK-8234836: Improve serialization handling
+ - JDK-8236191: Enhance OID processing
+ - JDK-8237117, CVE-2020-14556: Better ForkJoinPool behavior
+ - JDK-8237592, CVE-2020-14577: Enhance certificate verification
+ - JDK-8238002, CVE-2020-14581: Better matrix operations
+ - JDK-8238804: Enhance key handling process
+ - JDK-8238842: AIOOBE in GIFImageReader.initializeStringTable
+ - JDK-8238843: Enhanced font handing
+ - JDK-8238920, CVE-2020-14583: Better Buffer support
+ - JDK-8238925: Enhance WAV file playback
+ - JDK-8240119, CVE-2020-14593: Less Affine Transformations
+ - JDK-8240482: Improved WAV file playback
+ - JDK-8241379: Update JCEKS support
+ - JDK-8241522: Manifest improved jar headers redux
+ - JDK-8242136, CVE-2020-14621: Better XML namespace handling
+* Other changes
+ - JDK-4949105: Access Bridge lacks html tags parsing
+ - JDK-7147060: com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java
doesn't run in agentvm mode
+ - JDK-8003209: JFR events for network utilization
+ - JDK-8030680: 292 cleanup from default method code assessment
+ - JDK-8035633: TEST_BUG: java/net/NetworkInterface/Equals.java and some tests failed on
windows intermittently
+ - JDK-8037866: Replace the Fun class in tests with lambdas
+ - JDK-8041626: Shutdown tracing event
+ - JDK-8041915: Move 8 awt tests to OpenJDK regression tests tree
+ - JDK-8067796: (process) Process.waitFor(timeout, unit) doesn't throw NPE if
timeout is less than, or equal to zero when unit == null
+ - JDK-8076475: Misuses of strncpy/strncat
+ - JDK-8130737: AffineTransformOp can't handle child raster with non-zero x-offset
+ - JDK-8141056: Erroneous assignment in HeapRegionSet.cpp
+ - JDK-8146612: C2: Precedence edges specification violated
+ - JDK-8148886: SEGV in sun.java2d.marlin.Renderer._endRendering
+ - JDK-8149338: JVM Crash caused by Marlin renderer not handling NaN coordinates
+ - JDK-8150986: serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java failing because
expects HPROF JAVA PROFILE 1.0.1 file format
+ - JDK-8151582: (ch) test java/nio/channels/AsyncCloseAndInterrupt.java failing due to
"Connection succeeded"
+ - JDK-8165675: Trace event for thread park has incorrect unit for timeout
+ - JDK-8171934: ObjectSizeCalculator.getEffectiveMemoryLayoutSpecification() does not
recognize OpenJDK's HotSpot VM
+ - JDK-8172559: [PIT][TEST_BUG] Move @test to be 1st annotation in
java/awt/image/Raster/TestChildRasterOp.java
+ - JDK-8176182: 4 security tests are not run
+ - JDK-8178374: Problematic ByteBuffer handling in CipherSpi.bufferCrypt method
+ - JDK-8178910: Problemlist sample tests
+ - JDK-8181841: A TSA server returns timestamp with precision higher than milliseconds
+ - JDK-8183925: Decouple crash protection from watcher thread
+ - JDK-8191393: Random crashes during cfree+0x1c
+ - JDK-8195817: JFR.stop should require name of recording
+ - JDK-8195818: JFR.start should increase autogenerated name by one
+ - JDK-8195819: Remove recording=x from jcmd JFR.check output
+ - JDK-8196969: JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE
+ - JDK-8199712: Flight Recorder
+ - JDK-8202578: Revisit location for class unload events
+ - JDK-8202835: jfr/event/os/TestSystemProcess.java fails on missing events
+ - JDK-8203287: Zero fails to build after JDK-8199712 (Flight Recorder)
+ - JDK-8203346: JFR: Inconsistent signature of jfr_add_string_constant
+ - JDK-8203664: JFR start failure after AppCDS archive created with JFR
StartFlightRecording
+ - JDK-8203921: JFR thread sampling is missing fixes from JDK-8194552
+ - JDK-8203929: Limit amount of data for JFR.dump
+ - JDK-8205516: JFR tool
+ - JDK-8207392: [PPC64] Implement JFR profiling
+ - JDK-8207829: FlightRecorderMXBeanImpl is leaking the first classloader which calls
it
+ - JDK-8209960: -Xlog:jfr* doesn't work with the JFR
+ - JDK-8210024: JFR calls virtual is_Java_thread from ~Thread()
+ - JDK-8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7
+ - JDK-8211239: Build fails without JFR: empty JFR events signatures mismatch
+ - JDK-8212232: Wrong metadata for the configuration of the cutoff for old object sample
events
+ - JDK-8213015: Inconsistent settings between JFR.configure and
-XX:FlightRecorderOptions
+ - JDK-8213421: Line number information for execution samples always 0
+ - JDK-8213617: JFR should record the PID of the recorded process
+ - JDK-8213734: SAXParser.parse(File, ..) does not close resources when Exception
occurs.
+ - JDK-8213914: [TESTBUG] Several JFR VM events are not covered by tests
+ - JDK-8213917: [TESTBUG] Shutdown JFR event is not covered by test
+ - JDK-8213966: The ZGC JFR events should be marked as experimental
+ - JDK-8214542: JFR: Old Object Sample event slow on a deep heap in debug builds
+ - JDK-8214750: Unnecessary <p> tags in jfr classes
+ - JDK-8214896: JFR Tool left files behind
+ - JDK-8214906: [TESTBUG] jfr/event/sampling/TestNative.java fails with
UnsatisfiedLinkError
+ - JDK-8214925: JFR tool fails to execute
+ - JDK-8215175: Inconsistencies in JFR event metadata
+ - JDK-8215237: jdk.jfr.Recording javadoc does not compile
+ - JDK-8215284: Reduce noise induced by periodic task getFileSize()
+ - JDK-8215355: Object monitor deadlock with no threads holding the monitor (using
jemalloc 5.1)
+ - JDK-8215362: JFR GTest JfrTestNetworkUtilization fails
+ - JDK-8215771: The jfr tool should pretty print reference chains
+ - JDK-8216064: -XX:StartFlightRecording:settings= doesn't work properly
+ - JDK-8216486: Possibility of integer overflow in JfrThreadSampler::run()
+ - JDK-8216528:
test/jdk/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java
failing with Xcomp
+ - JDK-8216559: [JFR] Native libraries not correctly parsed from /proc/self/maps
+ - JDK-8216578: Remove unused/obsolete method in JFR code
+ - JDK-8216995: Clean up JFR command line processing
+ - JDK-8217744: [TESTBUG] JFR TestShutdownEvent fails on some systems due to process
surviving SIGINT
+ - JDK-8217748: [TESTBUG] Exclude TestSig test case from JFR TestShutdownEvent
+ - JDK-8218935: Make jfr strncpy uses GCC 8.x friendly
+ - JDK-8220293: Deadlock in JFR string pool
+ - JDK-8223689: Add JFR Thread Sampling Support
+ - JDK-8223690: Add JFR BiasedLock Event Support
+ - JDK-8223691: Add JFR G1 Region Type Change Event Support
+ - JDK-8223692: Add JFR G1 Heap Summary Event Support
+ - JDK-8224172: assert(jfr_is_event_enabled(id)) failed: invariant
+ - JDK-8224475: JTextPane does not show images in HTML rendering
+ - JDK-8225068: Remove DocuSign root certificate that is expiring in May 2020
+ - JDK-8225069: Remove Comodo root certificate that is expiring in May 2020
+ - JDK-8226253: JAWS reports wrong number of radio buttons when buttons are hidden.
+ - JDK-8226779: [TESTBUG] Test JFR API from Java agent
+ - JDK-8226892: ActionListeners on JRadioButtons don't get notified when selection
is changed with arrow keys
+ - JDK-8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent
premain corrupts memory
+ - JDK-8227269: Slow class loading when running with JDWP
+ - JDK-8227605: Kitchensink fails "assert((((klass)->trace_id() &
(JfrTraceIdEpoch::leakp_in_use_this_epoch_bit())) != 0)) failed: invariant"
+ - JDK-8229366: JFR backport allows unchecked writing to memory
+ - JDK-8229401: Fix JFR code cache test failures
+ - JDK-8229708: JFR backport code does not initialize
+ - JDK-8229873: 8229401 broke jdk8u-jfr-incubator
+ - JDK-8229888: (zipfs) Updating an existing zip file does not preserve original
permissions
+ - JDK-8229899: Make java.io.File.isInvalid() less racy
+ - JDK-8230448: [test] JFRSecurityTestSuite.java is failing on Windows
+ - JDK-8230597: Update GIFlib library to the 5.2.1
+ - JDK-8230707: JFR related tests are failing
+ - JDK-8230769: BufImg_SetupICM add ReleasePrimitiveArrayCritical call in early return
+ - JDK-8230782: Robot.createScreenCapture() fails if ?awt.robot.gtk? is set to false
+ - JDK-8230856: Java_java_net_NetworkInterface_getByName0 on unix misses
ReleaseStringUTFChars in early return
+ - JDK-8230926: [macosx] Two apostrophes are entered instead of one with "U.S.
International - PC" layout
+ - JDK-8230947: TestLookForUntestedEvents.java is failing after JDK-8230707
+ - JDK-8231995: two jtreg tests failed after 8229366 is fixed
+ - JDK-8233197: Invert JvmtiExport::post_vm_initialized() and Jfr:on_vm_start() start-up
order for correct option parsing
+ - JDK-8233623: Add classpath exception to copyright in EventHandlerProxyCreator.java
file
+ - JDK-8233880: Support compilers with multi-digit major version numbers
+ - JDK-8236002: CSR for JFR backport suggests not leaving out the package-info
+ - JDK-8236008: Some backup files were accidentally left in the hotspot tree
+ - JDK-8236074: Missed package-info
+ - JDK-8236174: Should update javadoc since tags
+ - JDK-8236996: Incorrect Roboto font rendering on Windows with subpixel antialiasing
+ - JDK-8238076: Fix OpenJDK 7 Bootstrap Broken by JFR Backport
+ - JDK-8238452: Keytool generates wrong expiration date if validity is set to
2050/01/01
+ - JDK-8238555: Allow Initialization of SunPKCS11 with NSS when there are external FIPS
modules in the NSSDB
+ - JDK-8238589: Necessary code cleanup in JFR for JDK8u
+ - JDK-8238590: Enable JFR by default during compilation in 8u
+ - JDK-8239055: Wrong implementation of VMState.hasListener
+ - JDK-8239476: JDK-8238589 broke windows build by moving OrderedPair
+ - JDK-8239479: minimal1 and zero builds are failing
+ - JDK-8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges:
assert(!VerifyGraphEdges) failed: verification should have failed
+ - JDK-8239867: correct over use of INCLUDE_JFR macro
+ - JDK-8240375: Disable JFR by default for July 2020 release
+ - JDK-8240576: JVM crashes after transformation in C2
IdealLoopTree::merge_many_backedges
+ - JDK-8241444: Metaspace::_class_vsm not initialized if compressed class pointers are
disabled
+ - JDK-8241638: launcher time metrics always report 1 on Linux when _JAVA_LAUNCHER_DEBUG
set
+ - JDK-8241750: x86_32 build failure after JDK-8227269
+ - JDK-8241902: AIX Build broken after integration of JDK-8223147 (JFR Backport)
+ - JDK-8242788: Non-PCH build is broken after JDK-8191393
+ - JDK-8242883: Incomplete backport of JDK-8078268: backport test part
+ - JDK-8243059: Build fails when --with-vendor-name contains a comma
+ - JDK-8243474: [TESTBUG] removed three tests of 0 bytes
+ - JDK-8243539: Copyright info (Year) should be updated for fix of 8241638
+ - JDK-8243541: (tz) Upgrade time-zone data to tzdata2020a
+ - JDK-8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in
+ - JDK-8244461: [JDK 8u] Build fails with glibc 2.32
+ - JDK-8244548: JDK 8u: sun.misc.Version.jdkUpdateVersion() returns wrong result
+ - JDK-8244777: ClassLoaderStats VM Op uses constant hash value
+ - JDK-8244843: JapanEraNameCompatTest fails
+ - JDK-8245167: Top package in method profiling shows null in JMC
+ - JDK-8246223: Windows build fails after JDK-8227269
+ - JDK-8246703: [TESTBUG] Add test for JDK-8233197
+ - JDK-8248399: Build installs jfr binary when JFR is disabled
+ - JDK-8248715: New JavaTimeSupplementary localisation for 'in' installed in
wrong package
+
+Notes on individual issues:
+===========================
+
+hotspot/jfr:
+
+JDK-8240687: JDK Flight Recorder Integrated to OpenJDK 8u
+=========================================================
+
+OpenJDK 8u now contains the backport of JEP 328: Flight Recorder
+(https://openjdk.java.net/jeps/328) from later versions of OpenJDK.
+
+JFR is a low-overhead framework to collect and provide data helpful to
+troubleshoot the performance of the OpenJDK runtime and of Java
+applications. It consists of a new API to define custom events under
+the jdk.jfr namespace and a JMX interface to interact with the
+framework. The recording can also be initiated with the application
+startup using the -XX:+FlightRecorder flag or via jcmd. JFR replaces
+the +XX:EnableTracing feature introduced in JEP 167, providing a more
+efficient way to retrieve the same information. For compatibility
+reasons, +XX:EnableTracing is still accepted, however no data will be
+printed.
+
+While JFR is not built by default upstream, it is included in Red Hat
+binaries for supported architectures (x86_64, AArch64 & PowerPC 64)
+
+hotspot/runtime:
+
+JDK-8205622: JFR Start Failure After AppCDS Archive Created with JFR
StartFlightRecording
+=========================================================================================
+
+JFR will be disabled with a warning message if it is enabled during
+CDS dumping. The user will see the following warning message:
+
+OpenJDK 64-Bit Server VM warning: JFR will be disabled during CDS dumping
+
+if JFR is enabled during CDS dumping such as in the following command
+line:
+
+$ java -Xshare:dump -XX:StartFlightRecording=dumponexit=true
+
+security-libs/java.security:
+
+JDK-8244167: Removal of Comodo Root CA Certificate
+==================================================
+
+The following expired Comodo root CA certificate was removed from the
+`cacerts` keystore: + alias name "addtrustclass1ca [jdk]"
+
+Distinguished Name: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB,
C=SE
+
+JDK-8244166: Removal of DocuSign Root CA Certificate
+====================================================
+
+The following expired DocuSign root CA certificate was removed from
+ the `cacerts` keystore: + alias name "keynectisrootca [jdk]"
+
+Distinguished Name: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
+
+security-libs/javax.crypto:pkcs11:
+
+JDK-8240191: Allow SunPKCS11 initialization with NSS when external FIPS modules are
present in the Security Modules Database
+============================================================================================================================
+
+The SunPKCS11 security provider can now be initialized with NSS when
+FIPS-enabled external modules are configured in the Security Modules
+Database (NSSDB). Prior to this change, the SunPKCS11 provider would
+throw a RuntimeException with the message: "FIPS flag set for
+non-internal module" when such a library was configured for NSS in
+non-FIPS mode.
+
+This change allows the JDK to work properly with recent NSS releases
+on GNU/Linux operating systems when the system-wide FIPS policy is
+turned on.
+
+Further information can be found in JDK-8238555.
+
New in release OpenJDK 8u252 (2020-04-14):
===========================================
Live versions of these release notes can be found at:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b92f2a2..acb4e74 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b10
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,12 +260,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1342,7 +1342,8 @@ Patch102:
jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
# 8035341: Allow using a system installed libpng
Patch202: jdk8035341-allow_using_system_installed_libpng.patch
# 8042159: Allow using a system-installed lcms2
-Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
+Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
+Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
#############################################
#
@@ -1688,6 +1689,7 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
+%patch204
# System security policy fixes
%patch400
@@ -2398,6 +2400,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b10-0.1
+- Update to aarch64-shenandoah-jdk8u262-b10.
+- Switch to GA mode for final release.
+- Update release notes for 8u262 release.
+- Split JDK-8042159 patch into per-repo patches as upstream.
+- Update JDK-8042159 JDK patch to apply after JDK-8238002 changes to Awt2dLibraries.gmk
+- Remove issues in NEWS file duplicated between 8u252 & 8u262 releases.
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.1.ea
- Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
diff --git a/jdk8042159-allow_using_system_installed_lcms2.patch
b/jdk8042159-allow_using_system_installed_lcms2-jdk.patch
similarity index 52%
rename from jdk8042159-allow_using_system_installed_lcms2.patch
rename to jdk8042159-allow_using_system_installed_lcms2-jdk.patch
index 6f39b57..ebfbdd2 100644
--- a/jdk8042159-allow_using_system_installed_lcms2.patch
+++ b/jdk8042159-allow_using_system_installed_lcms2-jdk.patch
@@ -1,59 +1,9 @@
-diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
---- openjdk/common/autoconf/libraries.m4 2013-11-14 22:04:38.039440136 -0500
-+++ openjdk/common/autoconf/libraries.m4 2013-11-14 22:05:11.474356424 -0500
-@@ -676,6 +676,46 @@
-
- ###############################################################################
- #
-+ # Check for the lcms2 library
-+ #
-+
-+ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
-+ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
-+ [ LCMS_FOUND=yes ],
-+ [ LCMS_FOUND=no ])
-+
-+ AC_MSG_CHECKING([for which lcms to use])
-+
-+ DEFAULT_LCMS=bundled
-+
-+ #
-+ # If user didn't specify, use DEFAULT_LCMS
-+ #
-+ if test "x${with_lcms}" = "x"; then
-+ with_lcms=${DEFAULT_LCMS}
-+ fi
-+
-+ if test "x${with_lcms}" = "xbundled"; then
-+ USE_EXTERNAL_LCMS=false
-+ AC_MSG_RESULT([bundled])
-+ elif test "x${with_lcms}" = "xsystem"; then
-+ if test "x${LCMS_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LCMS=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
-+ fi
-+ else
-+ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
-+ fi
-+
-+ AC_SUBST(USE_EXTERNAL_LCMS)
-+
-+ ###############################################################################
-+ #
- # Check for the png library
- #
-
-diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
---- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
-+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
-@@ -666,18 +666,35 @@
-
-
##########################################################################################
+diff --git openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
openjdk/jdk/make/lib/Awt2dLibraries.gmk
+--- openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk
+@@ -665,18 +665,35 @@
+ endif
+ endif
+LIBLCMS_DIR := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms
+
@@ -89,7 +39,7 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
CFLAGS_solaris := -xc99=no_lib, \
CFLAGS_windows := -DCMS_IS_WINDOWS_, \
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
-@@ -685,10 +702,10 @@
+@@ -684,10 +701,10 @@
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
@@ -104,9 +54,9 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=lcms.dll" \
-diff -r 3d1c3b0b73a3 src/share/native/sun/java2d/cmm/lcms/LCMS.c
---- openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Tue Sep 08 22:31:26 2015
+0300
-+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Thu Oct 15 05:29:28 2015
+0100
+diff --git openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
+--- openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
@@ -30,7 +30,7 @@
#include "jni_util.h"
#include "Trace.h"
diff --git a/jdk8042159-allow_using_system_installed_lcms2-root.patch
b/jdk8042159-allow_using_system_installed_lcms2-root.patch
new file mode 100644
index 0000000..7ce90b1
--- /dev/null
+++ b/jdk8042159-allow_using_system_installed_lcms2-root.patch
@@ -0,0 +1,50 @@
+diff -ruN openjdk/common/autoconf/libraries.m4 openjdk/common/autoconf/libraries.m4
+--- openjdk/common/autoconf/libraries.m4 2013-11-14 22:04:38.039440136 -0500
++++ openjdk/common/autoconf/libraries.m4 2013-11-14 22:05:11.474356424 -0500
+@@ -676,6 +676,46 @@
+
+ ###############################################################################
+ #
++ # Check for the lcms2 library
++ #
++
++ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++ [ LCMS_FOUND=yes ],
++ [ LCMS_FOUND=no ])
++
++ AC_MSG_CHECKING([for which lcms to use])
++
++ DEFAULT_LCMS=bundled
++
++ #
++ # If user didn't specify, use DEFAULT_LCMS
++ #
++ if test "x${with_lcms}" = "x"; then
++ with_lcms=${DEFAULT_LCMS}
++ fi
++
++ if test "x${with_lcms}" = "xbundled"; then
++ USE_EXTERNAL_LCMS=false
++ AC_MSG_RESULT([bundled])
++ elif test "x${with_lcms}" = "xsystem"; then
++ if test "x${LCMS_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LCMS=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++ fi
++ else
++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
++ fi
++
++ AC_SUBST(USE_EXTERNAL_LCMS)
++
++ ###############################################################################
++ #
+ # Check for the png library
+ #
+
diff --git a/sources b/sources
index 7868c12..6bfff72 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz)
=
35cb605b2fa98ab0f461e79e3b2bbbdc037e85f24d4b5730425fc3eb2c78de0690269bfda858325a251a6b3978dce0daa274b702d538e00a4428265e4fd34b36
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b10-4curve.tar.xz) =
ed4e67d3b6254113cbe93f47feae2dbbc205995b7a0ec613c87d1c9fc037c9275f332bcdb9c4b7a158e27dfbecb4772671b64084e47f5d1b25ba4677b27c7096
commit 1c6f2e043e772c9afb3b91c6e37ee28a70530bd6
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jul 13 00:08:12 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
diff --git a/.gitignore b/.gitignore
index aa46059..b264023 100644
--- a/.gitignore
+++ b/.gitignore
@@ -193,3 +193,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b9b68ae..b92f2a2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b09
+%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2398,6 +2398,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b09.
- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures
without JFR.
diff --git a/sources b/sources
index 090ed65..7868c12 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz) =
01aa2641e047efa7398f9d7b1377f13c1f4c18d7cb5b9136af48ab09b9e2d587f9684a298fbadcbc7cf30ec1531d336102b0f4818b09b9b0990df0b785dd9176
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03-4curve.tar.xz)
=
35cb605b2fa98ab0f461e79e3b2bbbdc037e85f24d4b5730425fc3eb2c78de0690269bfda858325a251a6b3978dce0daa274b702d538e00a4428265e4fd34b36
commit 3065fc3d0b8c87a51b7efe45e420a4097f80e538
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 12 22:33:52 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b09.
With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures
without JFR.
diff --git a/.gitignore b/.gitignore
index f24a5b1..aa46059 100644
--- a/.gitignore
+++ b/.gitignore
@@ -192,3 +192,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 86afaad..b9b68ae 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -489,7 +489,9 @@ alternatives \\
--slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
--slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
--slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
+%ifarch %{jfr_arches}
--slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\
+%endif
--slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
--slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
--slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
@@ -850,7 +852,9 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
+%ifarch %{jfr_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr
+%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs
@@ -2394,6 +2398,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b09-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b09.
+- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures
without JFR.
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.1.ea
- Fix typo in jfr_arches which leads to ppc64 being wrongly excluded.
diff --git a/sources b/sources
index 0df70f1..090ed65 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz) =
4395b7f8e972a5685b746a0ce2fd36c88f27057c2350a1db662b090293d301950564a13bc33153ddafdbcb40b897e90dd4ecec07a570a7767fa4b956d64715ed
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b09-4curve.tar.xz) =
01aa2641e047efa7398f9d7b1377f13c1f4c18d7cb5b9136af48ab09b9e2d587f9684a298fbadcbc7cf30ec1531d336102b0f4818b09b9b0990df0b785dd9176
commit b814da142ed54d865133434f298c984e0a96b61a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 12 20:43:07 2020 +0000
Fix typo in jfr_arches which leads to ppc64 being wrongly excluded.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4f134f3..86afaad 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -79,7 +79,7 @@
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
-%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} ${power64}
+%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2394,6 +2394,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.1.ea
+- Fix typo in jfr_arches which leads to ppc64 being wrongly excluded.
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b08.
commit 4213860e1ca3109fd3679640a6fef0f98204beb6
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 12 16:44:32 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b08.
diff --git a/.gitignore b/.gitignore
index b2104d6..f24a5b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -191,3 +191,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fd60ed2..4f134f3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2394,6 +2394,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b08-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b08.
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.1.ea
- Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18.
diff --git a/sources b/sources
index 4a02efc..0df70f1 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz)
=
82041bd8524a0ab4515f0aa479b6c419f20d974770751d8f71056bb40aad89a0933db0df6e1ae3f4716789549626b1de2cd9a946177a4a732530e09fc105cc05
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b08-4curve.tar.xz) =
4395b7f8e972a5685b746a0ce2fd36c88f27057c2350a1db662b090293d301950564a13bc33153ddafdbcb40b897e90dd4ecec07a570a7767fa4b956d64715ed
commit ef015069c5a6bde1c8c1d799bb0daa41dca1c666
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 12 14:37:52 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18.
diff --git a/.gitignore b/.gitignore
index 9a22907..b2104d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -190,3 +190,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 67e609b..fd60ed2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b07
+%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2394,6 +2394,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18.
+
* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b07.
- Require tzdata 2020a so system tzdata matches resource updates in b07
diff --git a/sources b/sources
index 297c49f..4a02efc 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz) =
de059bf75556474b5706a65db44e4606945b4bac2064304556cfb762ec43be74f4b6cba69bea89f8e82c314539a1a5f949fe61b769a0eaa2439845cfadfe41d1
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18-4curve.tar.xz)
=
82041bd8524a0ab4515f0aa479b6c419f20d974770751d8f71056bb40aad89a0933db0df6e1ae3f4716789549626b1de2cd9a946177a4a732530e09fc105cc05
commit 7d1776739854010a3086adc5473a5335cc59f9d8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 12 12:45:34 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b07.
Require tzdata 2020a so system tzdata matches resource updates in b07
diff --git a/.gitignore b/.gitignore
index 2656961..9a22907 100644
--- a/.gitignore
+++ b/.gitignore
@@ -189,3 +189,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 654bbfb..67e609b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1055,8 +1055,9 @@ Provides: jre%{?1} = %{epoch}:%{version}-%{release}
Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/
Requires: javapackages-filesystem
-# Require zone-info data provided by tzdata-java sub-package
-Requires: tzdata-java >= 2015d
+# Require zoneinfo data provided by tzdata-java subpackage.
+# 2020a required as of JDK-8243541
+Requires: tzdata-java >= 2020a
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
@@ -1425,7 +1426,8 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-BuildRequires: tzdata-java >= 2015d
+# 2020a required as of JDK-8243541
+BuildRequires: tzdata-java >= 2020a
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
@@ -2392,6 +2394,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b07.
+- Require tzdata 2020a so system tzdata matches resource updates in b07
+
* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b06.
diff --git a/sources b/sources
index 7969ce8..297c49f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz) =
6956f6b5155c5de765ee80361ac2e27e3be52c00ccc6249bc4d00b53eac4a2645cbb2273bf3bcc32b4bc07dfd687ae20e799a6e9e84bd9f2889c2f2bce1b4a0f
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b07-4curve.tar.xz) =
de059bf75556474b5706a65db44e4606945b4bac2064304556cfb762ec43be74f4b6cba69bea89f8e82c314539a1a5f949fe61b769a0eaa2439845cfadfe41d1
commit e1ceb01127d616263b253b276f1fad6104ce71dd
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Jul 11 20:05:07 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b06.
diff --git a/.gitignore b/.gitignore
index f3e8261..2656961 100644
--- a/.gitignore
+++ b/.gitignore
@@ -188,3 +188,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f055a9b..654bbfb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2392,6 +2392,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b06.
+
* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.4.ea
- Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04.
diff --git a/sources b/sources
index 80e1553..7969ce8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz)
=
8433189b398c8ae89cf56db478a01ad57db0a9e97353d954c3ccdbadb9dfc153a9d7bd48d4aa5bc5e9b94f60aa484aea42d837fb00fa8d83fbb14399607465d8
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b06-4curve.tar.xz) =
6956f6b5155c5de765ee80361ac2e27e3be52c00ccc6249bc4d00b53eac4a2645cbb2273bf3bcc32b4bc07dfd687ae20e799a6e9e84bd9f2889c2f2bce1b4a0f
commit 54cca6cc65c45d1a2d4051037746f2642b21bef5
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Jul 11 18:26:09 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04.
diff --git a/.gitignore b/.gitignore
index 5170424..f3e8261 100644
--- a/.gitignore
+++ b/.gitignore
@@ -187,3 +187,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f913c70..f055a9b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -244,7 +244,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b05
+%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2392,6 +2392,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Jul 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.4.ea
+- Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04.
+
* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea
- changed to be non-system jdk
- is_system_jdk set to 0
diff --git a/sources b/sources
index 8f49fd4..80e1553 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz) =
fd715590ff5664d47cce3efe9dcc85617f291e090cfdb40cbc528fc04931b5f29141aabcb0ad5d6bceed9f00ac060507dad31a2ff88c3250622c50dfa3dd3a3e
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04-4curve.tar.xz)
=
8433189b398c8ae89cf56db478a01ad57db0a9e97353d954c3ccdbadb9dfc153a9d7bd48d4aa5bc5e9b94f60aa484aea42d837fb00fa8d83fbb14399607465d8
commit 059bed8189e1343aa8eb283555fcb4d7565243d0
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Jul 10 13:15:14 2020 +0200
Revert "Rebuilt for JDK-11"
This reverts commit 67d2111b3ef3982418a3d4710519aa5a83599fd0.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3d902c4..f913c70 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1166,7 +1166,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} =
%{epoch}:%{version}-%{r
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -2392,9 +2392,6 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Fri Jul 10 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea.1
-- Rebuilt for JDK-11, see
https://fedoraproject.org/wiki/Changes/Java11
-
* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea
- changed to be non-system jdk
- is_system_jdk set to 0
commit 67d2111b3ef3982418a3d4710519aa5a83599fd0
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Jul 10 11:40:49 2020 +0200
Rebuilt for JDK-11
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f913c70..3d902c4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1166,7 +1166,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} =
%{epoch}:%{version}-%{r
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# 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
@@ -2392,6 +2392,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jul 10 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea.1
+- Rebuilt for JDK-11, see
https://fedoraproject.org/wiki/Changes/Java11
+
* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea
- changed to be non-system jdk
- is_system_jdk set to 0
commit 6b38e01a0e5aea56e80c2115cc839e2582f160e1
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Jul 9 14:19:22 2020 +0200
changed to be non-system jdk
- is_system_jdk set to 0
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0dcc4a8..f913c70 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -70,7 +70,7 @@
# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk
stops to be an techpreview, move it to 1
# as sytem JDK, we mean any JDK which can run whole system java stack without issues
(like bytecode issues, module issues, dependencies...)
-%global is_system_jdk 1
+%global is_system_jdk 0
%global aarch64 aarch64 arm64 armv8
# we need to distinguish between big and little endian PPC64
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2392,6 +2392,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.3.ea
+- changed to be non-system jdk
+- is_system_jdk set to 0
+
* Thu Jul 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.2.ea
- Re-introduce java-openjdk-src & java-openjdk-demo for system_jdk builds.
- Fix accidental renaming of java-openjdk-devel to java-devel-openjdk.
commit 51e816fae79bfce3df72896c24b67fa6f505759b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jul 9 14:08:40 2020 +0000
Fix changes in Provides from system_jdk backport.
Re-introduce java-openjdk-src & java-openjdk-demo for system_jdk builds.
Fix accidental renaming of java-openjdk-devel to java-devel-openjdk.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8513d30..0dcc4a8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -260,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1103,9 +1103,9 @@ Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
-Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
%endif
}
@@ -1118,6 +1118,7 @@ Provides: java-%{javaver}-demo%{?1} =
%{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
%endif
}
@@ -1144,6 +1145,7 @@ Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
%if %is_system_jdk
Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
%endif
}
@@ -2390,6 +2392,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jul 09 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.2.ea
+- Re-introduce java-openjdk-src & java-openjdk-demo for system_jdk builds.
+- Fix accidental renaming of java-openjdk-devel to java-devel-openjdk.
+
* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.1.ea
- prepared to become non system jdk soon, by backporting is_system_jdk patch from jdk11
- Added is_system_jdk variable, but left it on 1, used that variable where neessary
commit 520c054982e993fdff447cbef475a1abdd60b29a
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Apr 28 18:15:56 2020 +0200
prepared to become non system jdk soon, by backporting is_system_jdk patch from jdk11
Added is_system_jdk variable, but left it on 1, used that variable where neessary
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4cef38a..8513d30 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -53,6 +53,25 @@
%global build_loop1 %{nil}
%endif
+# We have hardcoded list of files, which is appearing in alternatives, and in files
+# in alternatives those are slaves and master, very often triplicated by man pages
+# in files all masters and slaves are ghosted
+# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
+# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e
--slave -e post_
+# TODO - fix those hardcoded lists via single list
+# those files ,must *NOT* be ghosted for *slowdebug* packages
+# FIXME - if you are moving jshell or jlink or simialr, always modify all three sections
+# you can check via headless and devels:
+# rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
+# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm |
grep bin
+# != rpm -ql java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
+# similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}
+%define is_release_build() %( if [ "%{?1}" ==
"%{debug_suffix_unquoted}" ]; then echo "0" ; else echo "1";
fi )
+
+# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk
stops to be an techpreview, move it to 1
+# as sytem JDK, we mean any JDK which can run whole system java stack without issues
(like bytecode issues, module issues, dependencies...)
+%global is_system_jdk 1
+
%global aarch64 aarch64 arm64 armv8
# we need to distinguish between big and little endian PPC64
%global ppc64le ppc64le
@@ -129,17 +148,6 @@
%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}"
== "x" ] ; then echo "" ;else echo ">=
%{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)
%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" ==
"x" ] ; then echo "" ;else echo ">=
%{NSS_BUILDTIME_NUMBER}" ;fi)
-
-# Fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349.
-# See also
https://bugzilla.redhat.com/show_bug.cgi?id=1590796
-# as to why some libraries *cannot* be excluded. In particular,
-# these are:
-# libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so
-%global _privatelibs
libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
-
-%global __provides_exclude ^(%{_privatelibs})$
-%global __requires_exclude ^(%{_privatelibs})$
-
# In some cases, the arch used by the JDK does
# not match _arch.
# Also, in some cases, the machine name used by SystemTap
@@ -252,7 +260,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -269,8 +277,13 @@
%global extraver .%{milestone}
%global eaprefix 0.
%endif
-# priority must be 7 digits in total. The expression is workarounding tip
-%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
+# priority must be 7 digits in total; up to openjdk 1.8
+%if %is_system_jdk
+%global priority 1800%{updatever}
+%else
+# for techpreview, using 1, so slowdebugs can have 0
+%global priority 0000001
+%endif
%global javaver 1.%{majorver}.0
@@ -303,6 +316,24 @@
# main id and dir of this jdk
%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
+# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1655938
+%global _privatelibs
libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+%global _publiclibs
libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
+%if %is_system_jdk
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+# Never generate lib-style provides/requires for slowdebug packages
+%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
+%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
+%else
+# Don't generate provides/requires for JDK provided shared libraries at all.
+%global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$
+%global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$
+%endif
+
+
%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin}
%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
# Standard JPackage directories and symbolic links.
@@ -610,6 +641,11 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
+%if %is_system_jdk
+%if %{is_release_build -- %{?1}}
+%ghost %{_bindir}/policytool
+%endif
+%endif
}
@@ -771,6 +807,22 @@ exit 0
%ifarch %{jfr_arches}
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr
%endif
+%if %is_system_jdk
+%if %{is_release_build -- %{?1}}
+%ghost %{_bindir}/java
+%ghost %{_jvmdir}/jre
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+%ghost %{_bindir}/jjs
+%ghost %{_bindir}/keytool
+%ghost %{_bindir}/orbd
+%ghost %{_bindir}/pack200
+%ghost %{_bindir}/rmid
+%ghost %{_bindir}/rmiregistry
+%ghost %{_bindir}/servertool
+%ghost %{_bindir}/tnameserv
+%ghost %{_bindir}/unpack200
+%endif
+%endif
}
%define files_devel() %{expand:
@@ -876,6 +928,58 @@ exit 0
%dir %{tapsetdir}
%{tapsetdir}/*%{_arch}%{?1}.stp
%endif
+%if %is_system_jdk
+%if %{is_release_build -- %{?1}}
+%ghost %{_jvmdir}/java
+%ghost %{_bindir}/appletviewer
+%ghost %{_bindir}/clhsdb
+%ghost %{_bindir}/extcheck
+%ghost %{_bindir}/hsdb
+%ghost %{_bindir}/idlj
+%ghost %{_bindir}/jar
+%ghost %{_bindir}/jarsigner
+%ghost %{_bindir}/java
+%ghost %{_bindir}/java-rmi.cgi
+%ghost %{_bindir}/javac
+%ghost %{_bindir}/javadoc
+%ghost %{_bindir}/javah
+%ghost %{_bindir}/javap
+%ghost %{_bindir}/jcmd
+%ghost %{_bindir}/jconsole
+%ghost %{_bindir}/jdb
+%ghost %{_bindir}/jdeps
+%ghost %{_bindir}/jhat
+%ghost %{_bindir}/jinfo
+%ghost %{_bindir}/jjs
+%ghost %{_bindir}/jmap
+%ghost %{_bindir}/jps
+%ghost %{_bindir}/jrunscript
+%ghost %{_bindir}/jsadebugd
+%ghost %{_bindir}/jstack
+%ghost %{_bindir}/jstat
+%ghost %{_bindir}/jstatd
+%ghost %{_bindir}/keytool
+%ghost %{_bindir}/native2ascii
+%ghost %{_bindir}/orbd
+%ghost %{_bindir}/pack200
+%ghost %{_bindir}/policytool
+%ghost %{_bindir}/rmic
+%ghost %{_bindir}/rmid
+%ghost %{_bindir}/rmiregistry
+%ghost %{_bindir}/schemagen
+%ghost %{_bindir}/serialver
+%ghost %{_bindir}/servertool
+%ghost %{_bindir}/tnameserv
+%ghost %{_bindir}/unpack200
+%ghost %{_bindir}/wsgen
+%ghost %{_bindir}/wsimport
+%ghost %{_bindir}/xjc
+%endif
+%endif
+}
+
+%define files_jmods() %{expand:
+%{_jvmdir}/%{sdkdir -- %{?1}}/jmods
}
%define files_demo() %{expand:
@@ -893,12 +997,22 @@ exit 0
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%if %is_system_jdk
+%if %{is_release_build -- %{?1}}
+%ghost %{_javadocdir}/java
+%endif
+%endif
}
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%if %is_system_jdk
+%if %{is_release_build -- %{?1}}
+%ghost %{_javadocdir}/java-zip
+%endif
+%endif
}
%define files_accessibility() %{expand:
@@ -925,13 +1039,15 @@ Recommends: gtk2%{?_isa}
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides
-Provides: jre%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+%if %is_system_jdk
Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre%{?1} = %{epoch}:%{version}-%{release}
+%endif
}
%define java_headless_rpo() %{expand:
@@ -960,18 +1076,16 @@ Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
%endif
# Standard JPackage base provides
-Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+%if %is_system_jdk
Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}
-
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
-Provides: /usr/bin/jjs
-
+%endif
}
%define java_devel_rpo() %{expand:
@@ -986,25 +1100,25 @@ Requires(postun): %{_sbindir}/alternatives
# Standard JPackage devel provides
Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
+%if %is_system_jdk
+Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}
-
+Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
+%endif
}
-
%define java_demo_rpo() %{expand:
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
-
+%if %is_system_jdk
+Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+%endif
}
%define java_javadoc_rpo() %{expand:
@@ -1015,19 +1129,22 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage javadoc provides
-Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+%if %is_system_jdk
+Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+%endif
}
%define java_src_rpo() %{expand:
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Standard JPackage sources provides
-Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
+%if %is_system_jdk
+Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+%endif
}
%define java_accessibility_rpo() %{expand:
@@ -1659,7 +1776,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
%build
-
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
@@ -2274,6 +2390,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jul 09 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b05-0.1.ea
+- prepared to become non system jdk soon, by backporting is_system_jdk patch from jdk11
+- Added is_system_jdk variable, but left it on 1, used that variable where neessary
+
* Tue Jul 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b05.
commit 3deda8834c1d93c2f35bfed8fab34a240e2eafc2
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 8 14:32:20 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b05.
diff --git a/.gitignore b/.gitignore
index 76da5e0..5170424 100644
--- a/.gitignore
+++ b/.gitignore
@@ -186,3 +186,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6b723af..4cef38a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -236,7 +236,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2274,6 +2274,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jul 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b05-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b05.
+
* Sun Jul 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b04.
diff --git a/sources b/sources
index ee831d3..8f49fd4 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz) =
32af3a0fd402c010a4e27a2280548f754226096ad61c5cbb5cc28d134a3e70e51dea87365c1a1bc82131c5dba24d949cea0069e764b510ec6cc55728053d1562
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b05-4curve.tar.xz) =
fd715590ff5664d47cce3efe9dcc85617f291e090cfdb40cbc528fc04931b5f29141aabcb0ad5d6bceed9f00ac060507dad31a2ff88c3250622c50dfa3dd3a3e
commit dbcd01e2cde5df450150a3a71bfea3094625b460
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jul 5 20:08:59 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b04.
diff --git a/.gitignore b/.gitignore
index fc37863..76da5e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -185,3 +185,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index db5cdab..6b723af 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -236,7 +236,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -252,7 +252,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2274,6 +2274,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b04.
+
* Fri Jul 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.4.ea
- Enable JFR in our builds, ahead of upstream default.
- Only enable JFR for JIT builds, as it is not supported with Zero.
diff --git a/sources b/sources
index 704dc02..ee831d3 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz)
=
42894672165e890232039156a93c7358c66c0dca7a2e50a3cbea1ec08bd80dd391140aa0ef385a52eed8996d002377fbf29bd42a509c0a8ec5e298163e65a236
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b04-4curve.tar.xz) =
32af3a0fd402c010a4e27a2280548f754226096ad61c5cbb5cc28d134a3e70e51dea87365c1a1bc82131c5dba24d949cea0069e764b510ec6cc55728053d1562
commit 2d62096aa25b1b2fd103d43fdfb4cf60c75f95d1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sat Jul 4 00:53:45 2020 +0000
Enable JFR in our builds, ahead of upstream default.
Only enable JFR for JIT builds, as it is not supported with Zero.
Turn off JFR on x86 for now due to assert(SerializePageShiftCount == count) crash.
Explicitly list jfr.jar, default.jfc & profile.jfc in the spec file.
Introduce jfr_arches for architectures which support JFR.
Use sa_arches for libsaproc.so inclusion.
Move LTO handling to same location as other compiler flags handling.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c4ce52b..db5cdab 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -60,6 +60,7 @@
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+%global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} ${power64}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -108,6 +109,12 @@
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
+# This package fails to build with LTO due to undefined symbols. LTO
+# was disabled in OpenSuSE as well, but with no real explanation why
+# beyond the undefined symbols. It really should be investigated further.
+# Disable LTO
+%define _lto_cflags %{nil}
+
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialization must be here. Later the pkg-config have buggy behavior
# looks like openjdk RPM specific bug
@@ -245,7 +252,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -709,7 +716,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
-%ifarch x86_64 %{ix86} %{aarch64}
+%ifarch %{sa_arches}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
@@ -750,12 +757,20 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
+%ifarch %{jfr_arches}
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc
+%endif
%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
+%ifarch %{jfr_arches}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr
+%endif
}
%define files_devel() %{expand:
@@ -1644,11 +1659,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
%build
-# This package fails to build with LTO due to undefined symbols. LTO
-# was disabled in OpenSuSE as well, but with no real explanation why
-# beyond the undefined symbols. It really shold be investigated further.
-# Disable LTO
-%define _lto_cflags %{nil}
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
@@ -1696,6 +1706,9 @@ function buildjdk() {
pushd ${outputdir}
bash ${top_srcdir_abs_path}/configure \
+%ifarch %{jfr_arches}
+ --enable-jfr \
+%endif
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
@@ -2261,6 +2274,15 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jul 03 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.4.ea
+- Enable JFR in our builds, ahead of upstream default.
+- Only enable JFR for JIT builds, as it is not supported with Zero.
+- Turn off JFR on x86 for now due to assert(SerializePageShiftCount == count) crash.
+- Explicitly list jfr.jar, default.jfc & profile.jfc in the spec file.
+- Introduce jfr_arches for architectures which support JFR.
+- Use sa_arches for libsaproc.so inclusion.
+- Move LTO handling to same location as other compiler flags handling.
+
* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.262.b03-0.3.ea
- Disable LTO
commit 83f96774d0f14509a0d7535f59986d0317f9c595
Author: Jeff Law <law(a)redhat.com>
Date: Wed Jul 1 15:24:49 2020 -0600
Disable LTO
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 44d26af..c4ce52b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1644,6 +1644,12 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
%build
+# This package fails to build with LTO due to undefined symbols. LTO
+# was disabled in OpenSuSE as well, but with no real explanation why
+# beyond the undefined symbols. It really shold be investigated further.
+# Disable LTO
+%define _lto_cflags %{nil}
+
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
@@ -2255,6 +2261,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jul 01 2020 Jeff Law <law(a)redhat.com> - 1:1.8.0.262.b03-0.3.ea
+- Disable LTO
+
* Mon Jun 29 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b03-0.2.ea
- Set vendor property and vendor URLs
- Made URLs to be preconfigured by os
commit c7cf54633e26f800602290d34cd32c5c0f649f88
Author: Jayashree Huttanagoudar <jhuttana(a)redhat.com>
Date: Mon Jun 15 16:57:05 2020 +0530
Added --with-vendor id and URL family of switches
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7046f65..44d26af 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -267,6 +267,23 @@
%global javaver 1.%{majorver}.0
+# Define what url should JVM offer in case of a crash report
+# order may be important, epel may have rhel declared
+%if 0%{?epel}
+%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&compo...
+%else
+%if 0%{?fedora}
+# Does not work for rawhide, keeps the version field empty
+%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{...
+%else
+%if 0%{?rhel}
+%global bugs
https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%...
+%else
+%global bugs
https://bugzilla.redhat.com/enter_bug.cgi
+%endif
+%endif
+%endif
+
# parametrized macros are order-sensitive
%global compatiblename %{name}
%global fullversion %{compatiblename}-%{version}-%{release}
@@ -1680,6 +1697,10 @@ function buildjdk() {
--with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
+ --with-vendor-name="Red Hat, Inc" \
+ --with-vendor-url="https://www.redhat.com/" \
+ --with-vendor-bug-url="%{bugs}" \
+ --with-vendor-vm-bug-url="%{bugs}" \
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
--enable-unlimited-crypto \
@@ -2234,6 +2255,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 29 2020 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.262.b03-0.2.ea
+- Set vendor property and vendor URLs
+- Made URLs to be preconfigured by os
+
* Wed Jun 24 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.1.ea
- Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20.
commit 94a926c49ff39b52343d9e5e69e9d086f4b3f7b1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jun 28 20:50:32 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20.
diff --git a/.gitignore b/.gitignore
index 9cc71a7..fc37863 100644
--- a/.gitignore
+++ b/.gitignore
@@ -184,3 +184,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 154ee75..7046f65 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b03
+%global shenandoah_revision
aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2234,6 +2234,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 24 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20.
+
* Tue Jun 23 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b03.
- Remove JDK-8244461 & JDK-8233880 backports included upstream in b03.
diff --git a/sources b/sources
index 3cfe0f0..704dc02 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz) =
44e2665ead02abd6b3b026f5ca703ec21b75873e291e65d9761a8379a83359a7c96a28767971eb448b10dde99b0d01799efd87731d2e1f51f829809f83109e3c
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20-4curve.tar.xz)
=
42894672165e890232039156a93c7358c66c0dca7a2e50a3cbea1ec08bd80dd391140aa0ef385a52eed8996d002377fbf29bd42a509c0a8ec5e298163e65a236
commit 9c5c3ce478116f212532aa32bd17d221ab5c3241
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jun 28 19:18:23 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b03.
Remove JDK-8244461 & JDK-8233880 backports included upstream in b03.
diff --git a/.gitignore b/.gitignore
index e477285..9cc71a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -183,3 +183,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fd4d8e6..154ee75 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1138,8 +1138,6 @@ Patch401: pr3655-toggle_system_crypto_policy.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
-# JDK-8244461: [JDK 8u] Build fails with glibc 2.32
-Patch113: jdk8244461-remove_unused_sysctl.h.patch
#############################################
#
@@ -1199,8 +1197,6 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# able to be removed once that release is out
# and used by this RPM.
#############################################
-# JDK-8233880: Support compilers with multi-digit major version numbers
-Patch579: jdk8233880-compiler_versioning.patch
#############################################
#
@@ -1570,8 +1566,6 @@ sh %{SOURCE12}
%patch575
%patch577
%patch111
-%patch113
-%patch579
# RPM-only fixes
%patch539
@@ -2240,6 +2234,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jun 23 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b03.
+- Remove JDK-8244461 & JDK-8233880 backports included upstream in b03.
+
* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u262-b02.
diff --git a/jdk8233880-compiler_versioning.patch b/jdk8233880-compiler_versioning.patch
deleted file mode 100644
index 4028285..0000000
--- a/jdk8233880-compiler_versioning.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1589215018 -3600
-# Mon May 11 17:36:58 2020 +0100
-# Node ID 39a7914e14a0c73ecc80091724c833b9f0410d47
-# Parent 493a0176587ec5917ab4a64c0760a131e9d0b7b4
-8233880: Support compilers with multi-digit major version numbers
-Summary: Also includes JDK-8151841 version changes regressed by JDK-8034788
-Reviewed-by: aph, andrew
-
-diff --git openjdk.orig/common/autoconf/toolchain.m4
openjdk/common/autoconf/toolchain.m4
---- openjdk.orig/common/autoconf/toolchain.m4
-+++ openjdk/common/autoconf/toolchain.m4
-@@ -433,7 +433,7 @@
- COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
- $SED -e 's/ *Copyright .*//'`
- COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
-- $SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\) .*$/\1/'`
-+ $SED -e 's/^.* \(@<:@1-9@:>@@<:@0-9@:>@*\.@<:@0-9.@:>@*\)
.*$/\1/'`
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- # clang --version output typically looks like
- # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
diff --git a/jdk8244461-remove_unused_sysctl.h.patch
b/jdk8244461-remove_unused_sysctl.h.patch
deleted file mode 100644
index 07c9139..0000000
--- a/jdk8244461-remove_unused_sysctl.h.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/solaris/native/java/net/PlainDatagramSocketImpl.c
b/src/solaris/native/java/net/PlainDatagramSocketImpl.c
---- openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
-+++ openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
-@@ -41,7 +41,6 @@
- #endif
- #ifdef __linux__
- #include <unistd.h>
--#include <sys/sysctl.h>
- #include <sys/utsname.h>
- #include <netinet/ip.h>
-
-diff --git a/src/solaris/native/java/net/PlainSocketImpl.c
b/src/solaris/native/java/net/PlainSocketImpl.c
---- openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c
-+++ openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c
-@@ -43,7 +43,6 @@
- #endif
- #ifdef __linux__
- #include <unistd.h>
--#include <sys/sysctl.h>
- #endif
-
- #include "jvm.h"
diff --git a/sources b/sources
index a15a00a..3cfe0f0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz) =
bf545d0f860ab09129a92720668eef0c1f761fa3badde9dc70ad8ea03d434b9172b85a84672cf66817cf359b65367cf6baddffbe5e3564ae6a1f1bc28030b112
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b03-4curve.tar.xz) =
44e2665ead02abd6b3b026f5ca703ec21b75873e291e65d9761a8379a83359a7c96a28767971eb448b10dde99b0d01799efd87731d2e1f51f829809f83109e3c
commit 2e4f5f73627c2644993ae8e6d898facaec36557d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jun 22 21:50:25 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b02.
diff --git a/.gitignore b/.gitignore
index f0d896d..e477285 100644
--- a/.gitignore
+++ b/.gitignore
@@ -182,3 +182,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ca6a947..fd4d8e6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u262-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2240,7 +2240,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b01-0.0.ea
+* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b02.
+
+* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b01-0.1.ea
- Update to aarch64-shenandoah-jdk8u262-b01.
- Switch to EA mode.
- Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR
diff --git a/sources b/sources
index 3827fa0..a15a00a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz) =
ef4516ba83f77161e7c6ef3d4b02cdadca5fef41086520f41bde93d10f4ca09f0511e753c56ecd8775deedd8fe46c3a8efb9939e9005ccc04304779c804ad8c3
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b02-4curve.tar.xz) =
bf545d0f860ab09129a92720668eef0c1f761fa3badde9dc70ad8ea03d434b9172b85a84672cf66817cf359b65367cf6baddffbe5e3564ae6a1f1bc28030b112
commit 6a8794519bf66d4e20a0183e01785534109520a7
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jun 22 14:08:13 2020 +0000
Update to aarch64-shenandoah-jdk8u262-b01.
Switch to EA mode.
Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR
Adjust RH1648644 following context changes due to introduction of JFR packages
Add jfr binary to devel package and alternatives set
diff --git a/.gitignore b/.gitignore
index 4c205f8..f0d896d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -181,3 +181,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3754659..ca6a947 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b09
+%global shenandoah_revision aarch64-shenandoah-jdk8u262-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -250,7 +250,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -434,6 +434,7 @@ alternatives \\
--slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
--slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
--slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
+ --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\
--slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
--slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
--slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
@@ -765,6 +766,7 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs
@@ -2238,6 +2240,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 22 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.262.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u262-b01.
+- Switch to EA mode.
+- Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR
+- Adjust RH1648644 following context changes due to introduction of JFR packages
+- Add jfr binary to devel package and alternatives set
+
* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-1
- Add release notes.
diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
index 298bbd3..98d3903 100644
--- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -145,4 +145,4 @@ diff --git
openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp o
+ return false; // silence compile warning
}
- // These routines are only used on cpu architectures that
+ bool pd_get_top_frame_for_profiling(frame* fr_addr,
diff --git a/rh1648644-java_access_bridge_privileged_security.patch
b/rh1648644-java_access_bridge_privileged_security.patch
index 538468a..28060ed 100644
--- a/rh1648644-java_access_bridge_privileged_security.patch
+++ b/rh1648644-java_access_bridge_privileged_security.patch
@@ -1,22 +1,23 @@
---- jdk8/jdk/src/share/lib/security/java.security-linux.orig
-+++ jdk8/jdk/src/share/lib/security/java.security-linux
-@@ -223,7 +223,9 @@
- jdk.nashorn.internal.,\
- jdk.nashorn.tools.,\
- jdk.xml.internal.,\
-- com.sun.activation.registries.
-+ com.sun.activation.registries.,\
+diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux
openjdk/jdk/src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux
++++ openjdk/jdk/src/share/lib/security/java.security-linux
+@@ -226,7 +226,9 @@
+ com.sun.activation.registries.,\
+ jdk.jfr.events.,\
+ jdk.jfr.internal.,\
+- jdk.management.jfr.internal.
++ jdk.management.jfr.internal.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
#
# List of comma-separated packages that start with or equal this string
-@@ -273,7 +275,9 @@
- jdk.nashorn.internal.,\
- jdk.nashorn.tools.,\
- jdk.xml.internal.,\
-- com.sun.activation.registries.
-+ com.sun.activation.registries.,\
+@@ -279,7 +281,9 @@
+ com.sun.activation.registries.,\
+ jdk.jfr.events.,\
+ jdk.jfr.internal.,\
+- jdk.management.jfr.internal.
++ jdk.management.jfr.internal.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
diff --git a/sources b/sources
index 441c7ba..3827fa0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09-4curve.tar.xz) =
d64e8961a1aa95e70ebe82eb3d894a9638b5f9d5e8674e4cbc35658658e7b7864b73fdf0ebaed7e7cc8b74a3419137e8f7483f10f9e3d34396c99c889bf3de74
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u262-b01-4curve.tar.xz) =
ef4516ba83f77161e7c6ef3d4b02cdadca5fef41086520f41bde93d10f4ca09f0511e753c56ecd8775deedd8fe46c3a8efb9939e9005ccc04304779c804ad8c3
commit ecbc6fc63c4867272e2f06276be342a7dd47164b
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jun 19 01:14:48 2020 +0000
Add release notes.
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..59f5724
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,113 @@
+Key:
+
+JDK-X -
https://bugs.openjdk.java.net/browse/JDK-X
+CVE-XXXX-YYYY:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+
+New in release OpenJDK 8u252 (2020-04-14):
+===========================================
+Live versions of these release notes can be found at:
+ *
https://bitly.com/oj8u252
+ *
https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u252.txt
+
+* Security fixes
+ - JDK-8223898, CVE-2020-2754: Forward references to Nashorn
+ - JDK-8223904, CVE-2020-2755: Improve Nashorn matching
+ - JDK-8224541, CVE-2020-2756: Better mapping of serial ENUMs
+ - JDK-8224549, CVE-2020-2757: Less Blocking Array Queues
+ - JDK-8225603: Enhancement for big integers
+ - JDK-8227542: Manifest improved jar headers
+ - JDK-8231415, CVE-2020-2773: Better signatures in XML
+ - JDK-8233250: Better X11 rendering
+ - JDK-8233410: Better Build Scripting
+ - JDK-8234027: Better JCEKS key support
+ - JDK-8234408, CVE-2020-2781: Improve TLS session handling
+ - JDK-8234825, CVE-2020-2800: Better Headings for HTTP Servers
+ - JDK-8234841, CVE-2020-2803: Enhance buffering of byte buffers
+ - JDK-8235274, CVE-2020-2805: Enhance typing of methods
+ - JDK-8236201, CVE-2020-2830: Better Scanner conversions
+ - JDK-8238960: linux-i586 builds are inconsistent as the newly build jdk is not able to
reserve enough space for object heap
+* Other changes
+ - JDK-8005819: Support cross-realm MSSFU
+ - JDK-8022263: use same Clang warnings on BSD as on Linux
+ - JDK-8038631: Create wrapper for awt.Robot with additional functionality
+ - JDK-8047212: runtime/ParallelClassLoading/bootstrap/random/inner-complex
assert(ObjectSynchronizer::verify_objmon_isinpool(inf)) failed: monitor is invalid
+ - JDK-8055283: Expand ResourceHashtable with C_HEAP allocation, removal and some unit
tests
+ - JDK-8068184: Fix for JDK-8032832 caused a deadlock
+ - JDK-8079693: Add support for ECDSA P-384 and P-521 curves to XML Signature
+ - JDK-8132130: some docs cleanup
+ - JDK-8135318: CMS wrong max_eden_size for check_gc_overhead_limit
+ - JDK-8144445: Maximum size checking in Marlin ArrayCache utility methods is not
optimal
+ - JDK-8144446: Automate the Marlin crash test
+ - JDK-8144526: Remove Marlin logging use of deleted internal API
+ - JDK-8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
+ - JDK-8144654: Improve Marlin logging
+ - JDK-8144718: Pisces / Marlin Strokers may generate invalid curves with huge
coordinates and round joins
+ - JDK-8166976: TestCipherPBECons has wrong @run line
+ - JDK-8167409: Invalid value passed to critical JNI function
+ - JDK-8181872: C1: possible overflow when strength reducing integer multiply by
constant
+ - JDK-8187078: -XX:+VerifyOops finds numerous problems when running JPRT
+ - JDK-8191227: issues with unsafe handle resolution
+ - JDK-8197441: Signature#initSign/initVerify for an invalid private/public key fails
with ClassCastException for SunPKCS11 provider
+ - JDK-8204152: SignedObject throws NullPointerException for null keys with an
initialized Signature object
+ - JDK-8215756: Memory leaks in the AWT on macOS
+ - JDK-8216472: (se) Stack overflow during selection operation leads to crash (win)
+ - JDK-8219244: NMT: Change ThreadSafepointState's allocation type from mtInternal
to mtThread
+ - JDK-8219597: (bf) Heap buffer state changes could provoke unexpected exceptions
+ - JDK-8225128: Add exception for expiring DocuSign root to VerifyCACerts test
+ - JDK-8225130: Add exception for expiring Comodo roots to VerifyCACerts test
+ - JDK-8229022: BufferedReader performance can be improved by using StringBuilder
+ - JDK-8229345: Memory leak due to vtable stubs not being shared on SPARC
+ - JDK-8229872: (fs) Increase buffer size used with getmntent
+ - JDK-8230235: Rendering HTML with empty img attribute and documentBaseKey cause
Exception
+ - JDK-8231430: C2: Memory stomp in max_array_length() for T_ILLEGAL type
+ - JDK-8235744: PIT: test/jdk/javax/swing/text/html/TestJLabelWithHTMLText.java times
out in linux-x64
+ - JDK-8235904: Infinite loop when rendering huge lines
+ - JDK-8236179: C1 register allocation error with T_ADDRESS
+ - JDK-8237368: Problem with NullPointerException in RMI TCPEndpoint.read
+ - JDK-8240521: Revert backport of 8231584: Deadlock with ClassLoader.findLibrary and
System.loadLibrary call
+ - JDK-8241296: Segfault in JNIHandleBlock::oops_do()
+ - JDK-8241307: Marlin renderer should not be the default in 8u252
+
+Notes on individual issues:
+===========================
+
+hotspot/svc:
+
+JDK-8174881: Binary format for HPROF updated
+============================================
+
+When dumping the heap in binary format, HPROF format 1.0.2 is always
+used now. Previously, format 1.0.1 was used for heaps smaller than
+2GB. HPROF format 1.0.2 is also used by jhsdb jmap for the
+serviceability agent.
+
+security-libs/java.security:
+
+JDK-8229518: Added Support for PKCS#1 v2.2 Algorithms Including RSASSA-PSS Signature
+====================================================================================
+
+The SunRsaSign and SunJCE providers have been enhanced with support
+for more algorithms defined in PKCS#1 v2.2, such as RSASSA-PSS
+signature and OAEP using FIPS 180-4 digest algorithms. New
+constructors and methods have been added to relevant JCA/JCE classes
+under the `java.security.spec` and `javax.crypto.spec` packages for
+supporting additional RSASSA-PSS parameters.
+
+security-libs/javax.crypto:
+
+JDK-8205471: RSASSA-PSS Signature Support Added to SunMSCAPI
+============================================================
+
+The RSASSA-PSS signature algorithm support has been added to the SunMSCAPI provider.
+
+security-libs/javax.security:
+
+JDK-8227564: Allow SASL Mechanisms to Be Restricted
+===================================================
+
+A security property named `jdk.sasl.disabledMechanisms` has been added
+that can be used to disable SASL mechanisms. Any disabled mechanism
+will be ignored if it is specified in the `mechanisms` argument of
+`Sasl.createSaslClient` or the `mechanism` argument of
+`Sasl.createSaslServer`. The default value for this security property
+is empty, which means that no mechanisms are disabled out-of-the-box.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4333781..3754659 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -595,6 +595,7 @@ exit 0
%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION
%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README
+%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
%dir %{_jvmdir}/%{sdkdir -- %{?1}}
%{_jvmdir}/%{jrelnk -- %{?1}}
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
@@ -1052,6 +1053,9 @@ Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.
# Custom README for -src subpackage
Source2: README.md
+# Release notes
+Source7: NEWS
+
# Use 'icedtea_sync.sh' to update the following
# They are based on code contained in the IcedTea project (3.x).
# Systemtap tapsets. Zipped up to keep it small.
@@ -1938,6 +1942,11 @@ if ! echo $suffix | grep -q "debug" ; then
cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
fi
+# Install release notes
+commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
+install -d -m 755 ${commondocdir}
+cp -a %{SOURCE7} ${commondocdir}
+
# Install icons and menu entries
for s in 16 24 32 48 ; do
install -D -p -m 644 \
@@ -2229,6 +2238,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-1
+- Add release notes.
+
* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-0
- Update to aarch64-shenandoah-jdk8u252-b09.
- Switch to GA mode for final release.
commit e2af37c969ec79995a7a3069acad7fc7eda2990c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jun 18 17:02:46 2020 +0000
Update to aarch64-shenandoah-jdk8u252-b09.
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index 4de1b52..4c205f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -179,3 +179,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 090536d..4333781 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -250,7 +250,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2229,6 +2229,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b09-0
+- Update to aarch64-shenandoah-jdk8u252-b09.
+- Switch to GA mode for final release.
+
* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b08-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b08.
- Drop JDK-8241296 backport now applied upstream.
diff --git a/sources b/sources
index 8d17d82..441c7ba 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08-4curve.tar.xz) =
b33ce5c789981dcf85713d29c91fed71b691cb30b242edc42733c37151ba1266cfc566a6f073488fce9684000ff4b5614c9ab7f6f2ad0e1c73246f8653fda388
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b09-4curve.tar.xz) =
d64e8961a1aa95e70ebe82eb3d894a9638b5f9d5e8674e4cbc35658658e7b7864b73fdf0ebaed7e7cc8b74a3419137e8f7483f10f9e3d34396c99c889bf3de74
commit 4c801115aa49a2d0ff5598d767af807b82d77fbe
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jun 18 13:40:42 2020 +0000
Update to aarch64-shenandoah-jdk8u252-b08.
Drop JDK-8241296 backport now applied upstream.
diff --git a/.gitignore b/.gitignore
index f5d72f2..4de1b52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -177,3 +177,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 70a9cf3..090536d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1132,8 +1132,6 @@ Patch401: pr3655-toggle_system_crypto_policy.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
-# JDK-8241296: Segfault in JNIHandleBlock::oops_do()
-Patch112: jdk8241296-jnihandleblock_segfault.patch
# JDK-8244461: [JDK 8u] Build fails with glibc 2.32
Patch113: jdk8244461-remove_unused_sysctl.h.patch
@@ -1566,7 +1564,6 @@ sh %{SOURCE12}
%patch575
%patch577
%patch111
-%patch112
%patch113
%patch579
@@ -2232,6 +2229,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jun 18 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b08-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b08.
+- Drop JDK-8241296 backport now applied upstream.
+
* Wed Jun 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b07.
diff --git a/jdk8241296-jnihandleblock_segfault.patch
b/jdk8241296-jnihandleblock_segfault.patch
deleted file mode 100644
index f50aca1..0000000
--- a/jdk8241296-jnihandleblock_segfault.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1584629637 0
-# Thu Mar 19 14:53:57 2020 +0000
-# Node ID e96597ea4d672793ab205fd67009efed809fae11
-# Parent 0daa6b52ba568246e8f930138fb36f8f04d9fadd
-8241296: Segfault in JNIHandleBlock::oops_do()
-Reviewed-by: duke
-
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
openjdk/hotspot/src/share/vm/runtime/thread.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/thread.cpp
-@@ -836,7 +836,9 @@
- }
-
- void Thread::oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf) {
-- active_handles()->oops_do(f);
-+ if (active_handles() != NULL) {
-+ active_handles()->oops_do(f);
-+ }
- // Do oop for ThreadShadow
- f->do_oop((oop*)&_pending_exception);
- handle_area()->oops_do(f);
diff --git a/sources b/sources
index 9cadd52..8d17d82 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07-4curve.tar.xz) =
e5872465055fd5a96fe196901ef726bfab014216482466835607fefb1b3dd2a2263e85c55fc356abca0a8c9c7fe72d41b4c9f44c859b05d2cc3cdb41e7fa7192
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b08-4curve.tar.xz) =
b33ce5c789981dcf85713d29c91fed71b691cb30b242edc42733c37151ba1266cfc566a6f073488fce9684000ff4b5614c9ab7f6f2ad0e1c73246f8653fda388
commit c2b377997508df9add8da398b59684c47f5bb8cf
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jun 17 15:54:42 2020 +0000
Update to aarch64-shenandoah-jdk8u252-b07.
diff --git a/.gitignore b/.gitignore
index a45f965..f5d72f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -174,3 +174,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b05-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 169b59d..70a9cf3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2232,6 +2232,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 17 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b07.
+
* Thu Jun 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b06.
- Drop upstreamed AArch64 fix JDK-8224851
diff --git a/sources b/sources
index cd37d4e..9cadd52 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06-4curve.tar.xz) =
8fa3dffea5fde48d2c2ef6de2ebdc7292a2439d5792c407e656a0755aebef0818c0626a841861c0dca34da2f2df34968fc6d187e0fc1e7b49ec5e5c2580e176e
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b07-4curve.tar.xz) =
e5872465055fd5a96fe196901ef726bfab014216482466835607fefb1b3dd2a2263e85c55fc356abca0a8c9c7fe72d41b4c9f44c859b05d2cc3cdb41e7fa7192
commit f26926bcdf170971b8365f46b71840d99437044a
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jun 12 20:59:00 2020 +0000
Update to aarch64-shenandoah-jdk8u252-b06.
Drop upstreamed AArch64 fix JDK-8224851
diff --git a/.gitignore b/.gitignore
index 8ae2cca..a45f965 100644
--- a/.gitignore
+++ b/.gitignore
@@ -173,3 +173,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b05-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7be17ad..169b59d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1156,9 +1156,6 @@ Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
# S390 ambiguous log2_intptr calls
Patch107: s390-8214206_fix.patch
-# JDK-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
-# GCC 10 fix for redeclaration
-Patch120: jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
#############################################
#
@@ -1550,7 +1547,6 @@ sh %{SOURCE12}
# AArch64 fixes
%patch106
-%patch120
# x86 fixes
%patch105
@@ -2236,6 +2232,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jun 11 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b06.
+- Drop upstreamed AArch64 fix JDK-8224851
+
* Wed Jun 10 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b05.
diff --git a/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
b/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
deleted file mode 100644
index 1b77c61..0000000
--- a/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1580791377 0
-# Tue Feb 04 04:42:57 2020 +0000
-# Node ID d76a1de48f87fb7c08e401920dca0aac2e7567ea
-# Parent 6ead1e97a4ea437c51829394f76dc2de7b5ea033
-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
-Reviewed-by: shade, aph, sgehwolf
-
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
---- openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
-+++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
-@@ -12928,7 +12928,7 @@
- format %{ "fcmps $src1, 0.0" %}
-
- ins_encode %{
-- __ fcmps(as_FloatRegister($src1$$reg), 0.0D);
-+ __ fcmps(as_FloatRegister($src1$$reg), 0.0);
- %}
-
- ins_pipe(pipe_class_compare);
-@@ -12957,7 +12957,7 @@
- format %{ "fcmpd $src1, 0.0" %}
-
- ins_encode %{
-- __ fcmpd(as_FloatRegister($src1$$reg), 0.0D);
-+ __ fcmpd(as_FloatRegister($src1$$reg), 0.0);
- %}
-
- ins_pipe(pipe_class_compare);
-@@ -13033,7 +13033,7 @@
- Label done;
- FloatRegister s1 = as_FloatRegister($src1$$reg);
- Register d = as_Register($dst$$reg);
-- __ fcmps(s1, 0.0D);
-+ __ fcmps(s1, 0.0);
- // installs 0 if EQ else -1
- __ csinvw(d, zr, zr, Assembler::EQ);
- // keeps -1 if less or unordered else installs 1
-@@ -13060,7 +13060,7 @@
- Label done;
- FloatRegister s1 = as_FloatRegister($src1$$reg);
- Register d = as_Register($dst$$reg);
-- __ fcmpd(s1, 0.0D);
-+ __ fcmpd(s1, 0.0);
- // installs 0 if EQ else -1
- __ csinvw(d, zr, zr, Assembler::EQ);
- // keeps -1 if less or unordered else installs 1
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
---- openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
-@@ -281,7 +281,7 @@
- unsigned get(int msb = 31, int lsb = 0) {
- int nbits = msb - lsb + 1;
- unsigned mask = ((1U << nbits) - 1) << lsb;
-- assert_cond(bits & mask == mask);
-+ assert_cond((bits & mask) == mask);
- return (insn & mask) >> lsb;
- }
-
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2013, Red Hat Inc.
-- * Copyright (c) 2000, 2012, Oracle and/or its affiliates.
-+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates.
- * All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
-@@ -1129,8 +1129,8 @@
- // Assembler::EQ does not permit unordered branches, so we add
- // another branch here. Likewise, Assembler::NE does not permit
- // ordered branches.
-- if (is_unordered && op->cond() == lir_cond_equal
-- || !is_unordered && op->cond() == lir_cond_notEqual)
-+ if ((is_unordered && op->cond() == lir_cond_equal)
-+ || (!is_unordered && op->cond() == lir_cond_notEqual))
- __ br(Assembler::VS, *(op->ublock()->label()));
- switch(op->cond()) {
- case lir_cond_equal: acond = Assembler::EQ; break;
-@@ -1850,18 +1850,22 @@
- switch (code) {
- case lir_add: __ fadds (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
- case lir_sub: __ fsubs (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
-+ case lir_mul_strictfp: // fall through
- case lir_mul: __ fmuls (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
-+ case lir_div_strictfp: // fall through
- case lir_div: __ fdivs (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
- default:
- ShouldNotReachHere();
- }
- } else if (left->is_double_fpu()) {
- if (right->is_double_fpu()) {
-- // cpu register - cpu register
-+ // fpu register - fpu register
- switch (code) {
- case lir_add: __ faddd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
- case lir_sub: __ fsubd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
-+ case lir_mul_strictfp: // fall through
- case lir_mul: __ fmuld (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
-+ case lir_div_strictfp: // fall through
- case lir_div: __ fdivd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
- default:
- ShouldNotReachHere();
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2013, Red Hat Inc.
-- * Copyright (c) 2005, 2011, Oracle and/or its affiliates.
-+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates.
- * All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
-@@ -500,7 +500,7 @@
- tmp = new_register(T_DOUBLE);
- }
-
-- arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), NULL);
-+ arithmetic_op_fpu(x->op(), reg, left.result(), right.result(),
x->is_strictfp());
-
- set_result(x, round_item(reg));
- }
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2013, Red Hat Inc.
-- * Copyright (c) 1997, 2012, Oracle and/or its affiliates.
-+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates.
- * All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
-@@ -819,11 +819,13 @@
-
- extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc,
- unsigned long bcx, unsigned long thread) {
-- RegisterMap map((JavaThread*)thread, false);
- if (!reg_map) {
-- reg_map = (RegisterMap*)os::malloc(sizeof map, mtNone);
-+ reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone);
-+ ::new (reg_map) RegisterMap((JavaThread*)thread, false);
-+ } else {
-+ *reg_map = RegisterMap((JavaThread*)thread, false);
- }
-- memcpy(reg_map, &map, sizeof map);
-+
- {
- CodeBlob *cb = CodeCache::find_blob((address)pc);
- if (cb && cb->frame_size())
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
---- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-@@ -40,8 +40,6 @@
- protected:
-
- protected:
-- using MacroAssembler::call_VM_leaf_base;
--
- // Interpreter specific version of call_VM_base
- using MacroAssembler::call_VM_leaf_base;
-
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-@@ -2460,7 +2460,7 @@
- if ((offset & (size-1)) && offset >= (1<<8)) {
- add(tmp, base, offset & ((1<<12)-1));
- base = tmp;
-- offset &= -1<<12;
-+ offset &= -1u<<12;
- }
-
- if (offset >= (1<<12) * size) {
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
-@@ -158,7 +158,7 @@
- if (FILE *f = fopen("/proc/cpuinfo", "r")) {
- char buf[128], *p;
- while (fgets(buf, sizeof (buf), f) != NULL) {
-- if (p = strchr(buf, ':')) {
-+ if ((p = strchr(buf, ':')) != NULL) {
- long v = strtol(p+1, NULL, 0);
- if (strncmp(buf, "CPU implementer", sizeof "CPU implementer"
- 1) == 0) {
- _cpu = v;
-diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
---- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
-+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
-@@ -248,7 +248,7 @@
- blo bwd_copy_drain
-
- bwd_copy_again:
-- prfm pldl1keep, [s, #-256]
-+ prfum pldl1keep, [s, #-256]
- stp t0, t1, [d, #-16]
- ldp t0, t1, [s, #-16]
- stp t2, t3, [d, #-32]
-diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -76,12 +76,10 @@
-
- #define REG_FP 29
-
--#define SPELL_REG_SP "sp"
--#define SPELL_REG_FP "x29"
-+#define NOINLINE __attribute__ ((noinline))
-
--address os::current_stack_pointer() {
-- register void *esp __asm__ (SPELL_REG_SP);
-- return (address) esp;
-+NOINLINE address os::current_stack_pointer() {
-+ return (address)__builtin_frame_address(0);
- }
-
- char* os::non_memory_address_word() {
-@@ -155,14 +153,8 @@
- return frame(fr->link(), fr->link(), fr->sender_pc());
- }
-
--intptr_t* _get_previous_fp() {
-- register intptr_t **ebp __asm__ (SPELL_REG_FP);
-- return (intptr_t*) *ebp; // we want what it points to.
--}
--
--
--frame os::current_frame() {
-- intptr_t* fp = _get_previous_fp();
-+NOINLINE frame os::current_frame() {
-+ intptr_t *fp = *(intptr_t **)__builtin_frame_address(0);
- frame myframe((intptr_t*)os::current_stack_pointer(),
- (intptr_t*)fp,
- CAST_FROM_FN_PTR(address, os::current_frame));
-@@ -176,12 +168,6 @@
-
- // Utility functions
-
--// From IA32 System Programming Guide
--enum {
-- trap_page_fault = 0xE
--};
--
--
- // An operation in Unsafe has faulted. We're going to return to the
- // instruction after the faulting load or store. We also set
- // pending_unsafe_access_error so that at some point in the future our
-@@ -607,12 +593,12 @@
-
- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
- if (from > to) {
-- jshort *end = from + count;
-+ const jshort *end = from + count;
- while (from < end)
- *(to++) = *(from++);
- }
- else if (from < to) {
-- jshort *end = from;
-+ const jshort *end = from;
- from += count - 1;
- to += count - 1;
- while (from >= end)
-@@ -621,12 +607,12 @@
- }
- void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
- if (from > to) {
-- jint *end = from + count;
-+ const jint *end = from + count;
- while (from < end)
- *(to++) = *(from++);
- }
- else if (from < to) {
-- jint *end = from;
-+ const jint *end = from;
- from += count - 1;
- to += count - 1;
- while (from >= end)
-@@ -635,12 +621,12 @@
- }
- void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
- if (from > to) {
-- jlong *end = from + count;
-+ const jlong *end = from + count;
- while (from < end)
- os::atomic_copy64(from++, to++);
- }
- else if (from < to) {
-- jlong *end = from;
-+ const jlong *end = from;
- from += count - 1;
- to += count - 1;
- while (from >= end)
diff --git a/sources b/sources
index aecb00d..cd37d4e 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b05-4curve.tar.xz) =
5aa22289f50969617a26c9f50784c1c32a6579703414970a012b321fa587a996b133d4568d3d4b85ab081d33675754bdb4f70c04a82f9e792a061a58a38c0e88
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b06-4curve.tar.xz) =
8fa3dffea5fde48d2c2ef6de2ebdc7292a2439d5792c407e656a0755aebef0818c0626a841861c0dca34da2f2df34968fc6d187e0fc1e7b49ec5e5c2580e176e
commit 59400e18b998a11613818d3bd9a281d85aea9ac4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jun 10 22:40:29 2020 +0100
Update to aarch64-shenandoah-jdk8u252-b05.
diff --git a/.gitignore b/.gitignore
index 01fab88..8ae2cca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -172,3 +172,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b05-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ed1fea4..7be17ad 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2236,6 +2236,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 10 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b05-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b05.
+
* Mon Jun 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b04.
diff --git a/sources b/sources
index a30e5fd..aecb00d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz) =
a3ec9375597920e802c8c991d78cb7e55bfac222f5170a8830508a19b726053d346cdd373ccff2e3261a7c8e4febd4fe5aa7dd1f7fa3106a20bca318a816a1c1
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b05-4curve.tar.xz) =
5aa22289f50969617a26c9f50784c1c32a6579703414970a012b321fa587a996b133d4568d3d4b85ab081d33675754bdb4f70c04a82f9e792a061a58a38c0e88
commit 319a158b9d6934e0508fab3a9e97c8f50b521ce8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jun 8 16:24:44 2020 +0100
Update to aarch64-shenandoah-jdk8u252-b04.
diff --git a/.gitignore b/.gitignore
index e7929a2..01fab88 100644
--- a/.gitignore
+++ b/.gitignore
@@ -171,3 +171,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5ef2d22..ed1fea4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2236,6 +2236,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 08 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b04.
+
* Sun Jun 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b03.
- Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in
JDK-8230978
diff --git a/sources b/sources
index c24b4bc..a30e5fd 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz) =
bb4922e4fe244dd4a64767c5ddd5ab8f888265b006ddf0ec1e5038f8ab8bb5d0c4a88780db50c7fd02926b38c5f3dbf39cc28a96b0a153736d52c2b9b2f9bb88
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b04-4curve.tar.xz) =
a3ec9375597920e802c8c991d78cb7e55bfac222f5170a8830508a19b726053d346cdd373ccff2e3261a7c8e4febd4fe5aa7dd1f7fa3106a20bca318a816a1c1
commit eed066a1b19d6ca026f1b947b627ac4099004fdd
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Sun Jun 7 18:38:05 2020 +0100
Update to aarch64-shenandoah-jdk8u252-b03.
Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in
JDK-8230978
diff --git a/.gitignore b/.gitignore
index 1b727bd..e7929a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -170,3 +170,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 42b4a41..5ef2d22 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2236,6 +2236,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jun 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b03.
+- Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in
JDK-8230978
+
* Tue Jun 02 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b02.
diff --git
a/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
b/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
index 4859ca6..06973aa 100644
---
a/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
+++
b/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
@@ -7,18 +7,10 @@
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 --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
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
+--- openjdk.orig/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;
-
-+import java.security.AccessController;
- import java.security.cert.CertificateException;
- import java.security.NoSuchAlgorithmException;
- import java.security.InvalidKeyException;
-@@ -39,6 +40,7 @@
+@@ -35,6 +35,7 @@
import java.util.Base64;
@@ -26,7 +18,7 @@ diff --git a/src/share/classes/sun/security/pkcs10/PKCS10.java
b/src/share/class
import sun.security.util.*;
import sun.security.x509.AlgorithmId;
import sun.security.x509.X509Key;
-@@ -76,6 +78,14 @@
+@@ -74,6 +75,14 @@
* @author Hemma Prafullchandra
*/
public class PKCS10 {
@@ -41,7 +33,7 @@ diff --git a/src/share/classes/sun/security/pkcs10/PKCS10.java
b/src/share/class
/**
* Constructs an unsigned PKCS #10 certificate request. Before this
* request may be used, it must be encoded and signed. Then it
-@@ -293,13 +303,39 @@
+@@ -303,13 +312,39 @@
*/
public void print(PrintStream out)
throws IOException, SignatureException {
@@ -83,10 +75,10 @@ diff --git a/src/share/classes/sun/security/pkcs10/PKCS10.java
b/src/share/class
out.println("-----END NEW CERTIFICATE REQUEST-----");
}
-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
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java
openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk.orig/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 @@
+@@ -126,6 +126,7 @@
private String infilename = null;
private String outfilename = null;
private String srcksfname = null;
@@ -94,7 +86,7 @@ diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/
// User-specified providers are added before any command is called.
// However, they are not removed before the end of the main() method.
-@@ -186,7 +187,7 @@
+@@ -188,7 +189,7 @@
CERTREQ("Generates.a.certificate.request",
ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME,
STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
@@ -103,7 +95,7 @@ diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/
CHANGEALIAS("Changes.an.entry.s.alias",
ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS,
STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG,
-@@ -319,6 +320,7 @@
+@@ -321,6 +322,7 @@
STARTDATE("startdate", "<startdate>",
"certificate.validity.start.date.time"),
STOREPASS("storepass", "<arg>",
"keystore.password"),
STORETYPE("storetype", "<storetype>",
"keystore.type"),
@@ -111,7 +103,7 @@ diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/
TRUSTCACERTS("trustcacerts", null,
"trust.certificates.from.cacerts"),
V("v", null, "verbose.output"),
VALIDITY("validity", "<valDays>",
"validity.number.of.days");
-@@ -559,6 +561,8 @@
+@@ -561,6 +563,8 @@
protectedPath = true;
} else if (collator.compare(flags, "-srcprotected") == 0) {
srcprotectedPath = true;
@@ -120,7 +112,7 @@ diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/
} else {
System.err.println(rb.getString("Illegal.option.") + flags);
tinyHelp();
-@@ -1463,7 +1467,7 @@
+@@ -1464,7 +1468,7 @@
// Sign the request and base-64 encode it
request.encodeAndSign(subject, signature);
@@ -129,13 +121,13 @@ diff --git a/src/share/classes/sun/security/tools/keytool/Main.java
b/src/share/
checkWeak(rb.getString("the.generated.certificate.request"),
request);
}
-@@ -4540,4 +4544,3 @@
+@@ -4544,4 +4548,3 @@
return new Pair<>(a,b);
}
}
-
-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
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
+--- openjdk.orig/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
diff --git
a/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
index b52c087..00e3a2e 100644
---
a/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
+++
b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
@@ -35,7 +35,7 @@ diff --git
openjdk.orig/jdk/src/share/classes/sun/security/util/ECUtil.java open
+++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java
@@ -41,6 +41,9 @@
- public class ECUtil {
+ public final class ECUtil {
+ /* Are we debugging ? */
+ private static final Debug debug = Debug.getInstance("ecc");
diff --git a/sources b/sources
index f1cace0..c24b4bc 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02-4curve.tar.xz) =
03a1ff7a7da3fa565dd06de6f638121fc9c36c8f3e1639a73869034782969445310ff8d33674a03c72d84a089600e5cfd8dafa04f6c3dad34c0f0c750c32408d
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b03-4curve.tar.xz) =
bb4922e4fe244dd4a64767c5ddd5ab8f888265b006ddf0ec1e5038f8ab8bb5d0c4a88780db50c7fd02926b38c5f3dbf39cc28a96b0a153736d52c2b9b2f9bb88
commit c32fe487338d766102aec1ddc083d416c082de1b
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jun 2 09:54:40 2020 +0100
Update to aarch64-shenandoah-jdk8u252-b02.
diff --git a/.gitignore b/.gitignore
index 49432d6..1b727bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -168,3 +168,5 @@
/tapsets-icedtea-3.15.0.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01-4curve.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 75d87ba..42b4a41 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u252-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2236,6 +2236,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jun 02 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b02.
+
* Fri May 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.3.ea
- Update generate_source_tarball.sh script to use the PR3756 patch and retain the
secp256k1 curve.
- Regenerate source tarball using the updated script and add the -'4curve'
suffix.
diff --git a/sources b/sources
index 59eb1e8..f1cace0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01-4curve.tar.xz) =
168ca286aef346c6c525ce47606c062bdda241d231594a9f7cd9f7ee99a633bbf9aebd59bbee1c0af43b1eb61362d33114aa066f296629916836067692c82eaa
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b02-4curve.tar.xz) =
03a1ff7a7da3fa565dd06de6f638121fc9c36c8f3e1639a73869034782969445310ff8d33674a03c72d84a089600e5cfd8dafa04f6c3dad34c0f0c750c32408d
commit f2a4910fb13d38483e174c203b1a174a8ea9af67
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri May 22 12:56:41 2020 +0100
Update generate_source_tarball.sh script to use the PR3756 patch and retain the
secp256k1 curve.
Regenerate source tarball using the updated script and add the -'4curve'
suffix.
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index ecbc982..46aa18e 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -4,7 +4,7 @@
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
# If your local repo follows upstream forests conventions, it may be enough to set
OPENJDK_URL
-# If you want to use a local copy of patch PR3667, set the path to it in the PR3667
variable
+# If you want to use a local copy of patch PR3756, set the path to it in the PR3756
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=jdk8u OR aarch64-port
@@ -19,9 +19,9 @@
# level folder, name is created, based on parameter
#
-if [ ! "x$PR3667" = "x" ] ; then
- if [ ! -f "$PR3667" ] ; then
- echo "You have specified PR3667 as $PR3667 but it does not exists.
exiting"
+if [ ! "x$PR3756" = "x" ] ; then
+ if [ ! -f "$PR3756" ] ; then
+ echo "You have specified PR3756 as $PR3756 but it does not exists.
exiting"
exit 1
fi
fi
@@ -41,7 +41,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
- echo "PR3667 - the path to the PR3667 patch to apply (optional; downloaded if
unavailable)"
+ echo "PR3756 - the path to the PR3756 patch to apply (optional; downloaded if
unavailable)"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -124,15 +124,15 @@ rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-if [ "x$PR3667" = "x" ] ; then
-# get pr3667.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3667)
- wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3667.patch
- patch -Np1 < pr3667.patch
- rm pr3667.patch
+if [ "x$PR3756" = "x" ] ; then
+# get pr3756.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3756)
+ wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3756.patch
+ patch -Np1 < pr3756.patch
+ rm pr3756.patch
else
- echo "Applying ${PR3667}"
- patch -Np1 < $PR3667
+ echo "Applying ${PR3756}"
+ patch -Np1 < $PR3756
fi;
fi
find . -name '*.orig' -exec rm -vf '{}' ';'
@@ -140,12 +140,14 @@ find . -name '*.orig' -exec rm -vf '{}' ';'
popd
echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
- tar --exclude-vcs -cJf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
+ SWITCH=cJf
else
- tar --exclude-vcs -czf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
+ SWITCH=czf
fi
+TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
+tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk
+mv ${TARBALL_NAME} ..
-mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
popd
echo "Done. You may want to remove the uncompressed version."
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c48ba95..75d87ba 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1047,7 +1047,7 @@ URL:
http://openjdk.java.net/
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -2236,6 +2236,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri May 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.3.ea
+- Update generate_source_tarball.sh script to use the PR3756 patch and retain the
secp256k1 curve.
+- Regenerate source tarball using the updated script and add the -'4curve'
suffix.
+
* Wed May 20 2020 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.252.b01-0.2.ea
- Switch package openjfx from openjfx to openjfx8
diff --git a/sources b/sources
index 4fa9aea..59eb1e8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01.tar.xz) =
0cf78ddff5601964371ae754713d7e46e271dab183aa87bf9de760a45050a80e5183022404ec4b73215fb38b6baeecd1a29bc81139c59b773107ed350c6c7e81
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01-4curve.tar.xz) =
168ca286aef346c6c525ce47606c062bdda241d231594a9f7cd9f7ee99a633bbf9aebd59bbee1c0af43b1eb61362d33114aa066f296629916836067692c82eaa
commit 284f9475522a5d463a498f7e34386b2ebd3d68e6
Author: Nicolas De Amicis <deamicis(a)bluewin.ch>
Date: Wed May 20 09:25:34 2020 +0000
Switch package dependency openjfx from openjfx to openjfx8
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1463587..c48ba95 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,7 @@
%ifarch %{ix86} x86_64
%global with_openjfx_binding 1
-%global openjfx_path %{_jvmdir}/openjfx
+%global openjfx_path %{_jvmdir}/openjfx8
# links src directories
%global jfx_jre_libs_dir %{openjfx_path}/rt/lib
%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1445,7 +1445,7 @@ See normal java-%{version}-openjdk-accessibility description.
%package openjfx
Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx%{?_isa}
+Requires: openjfx8%{?_isa}
Provides: javafx = %{epoch}:%{version}-%{release}
%description openjfx
Set of links from OpenJDK (jre) to OpenJFX
@@ -1453,7 +1453,7 @@ Set of links from OpenJDK (jre) to OpenJFX
%package openjfx-devel
Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx-devel%{?_isa}
+Requires: openjfx8-devel%{?_isa}
Provides: javafx-devel = %{epoch}:%{version}-%{release}
%description openjfx-devel
Set of links from OpenJDK (sdk) to OpenJFX
@@ -1462,7 +1462,7 @@ Set of links from OpenJDK (sdk) to OpenJFX
%package openjfx-slowdebug
Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-slowdebug
Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx%{?_isa}
+Requires: openjfx8%{?_isa}
Provides: javafx-slowdebug = %{epoch}:%{version}-%{release}
%description openjfx-slowdebug
Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
@@ -1470,7 +1470,7 @@ Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX
do not supp
%package openjfx-devel-slowdebug
Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-slowdebug
Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx-devel%{?_isa}
+Requires: openjfx8-devel%{?_isa}
Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release}
%description openjfx-devel-slowdebug
Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
@@ -2236,6 +2236,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed May 20 2020 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.252.b01-0.2.ea
+- Switch package openjfx from openjfx to openjfx8
+
* Sun May 17 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.1.ea
- Backport JDK-8233880 to fix version detection of GCC 10.
- Remove compiler flags used to disable GCC optimisations. This is now
commit 39e7af2cc30e5b70b3d1357f763909852894ce8d
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Mon May 18 15:08:21 2020 +0100
Backport JDK-8233880 to fix version detection of GCC 10.
Remove compiler flags used to disable GCC optimisations. This is now
resolved by -fno-delete-null-pointer-checks and -fno-lifetime-dse being turned
on in the upstream build, after GCC >= 6 is detected.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0e443a7..1463587 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1191,13 +1191,15 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
#############################################
#
-# Patches appearing in 8u222
+# Patches appearing in 8u262
#
# This section includes patches which are present
# in the listed OpenJDK 8u release and should be
# able to be removed once that release is out
# and used by this RPM.
#############################################
+# JDK-8233880: Support compilers with multi-digit major version numbers
+Patch579: jdk8233880-compiler_versioning.patch
#############################################
#
@@ -1570,6 +1572,7 @@ sh %{SOURCE12}
%patch111
%patch112
%patch113
+%patch579
# RPM-only fixes
%patch539
@@ -1646,11 +1649,10 @@ export ARCH_DATA_MODEL=64
export CFLAGS="$CFLAGS -mieee"
%endif
-GCC_10_OPT_DISABLE="-fno-tree-pta -fno-tree-scev-cprop -fno-tree-sink
-fno-tree-slp-vectorize -fno-tree-slsr -fno-tree-sra -fno-tree-switch-conversion
-fno-tree-tail-merge -fno-tree-ter -fno-tree-vrp -fno-unit-at-a-time -fno-unswitch-loops
-fno-vect-cost-model -fno-version-loops-for-strides -fno-tree-coalesce-vars
-fno-tree-copy-prop -fno-tree-dce -fno-tree-dominator-opts -fno-tree-dse
-fno-tree-forwprop -fno-tree-fre -fno-tree-loop-distribute-patterns
-fno-tree-loop-distribution -fno-tree-loop-vectorize -fno-tree-partial-pre
-fno-tree-phiprop -fno-tree-pre"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
-EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon $GCC_10_OPT_DISABLE"
-EXTRA_CPP_FLAGS="%ourcppflags -fcommon $GCC_10_OPT_DISABLE"
+EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon"
+EXTRA_CPP_FLAGS="%ourcppflags"
%ifarch %{power64} ppc
# fix rpmlint warnings
@@ -2234,6 +2236,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun May 17 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> -
1:1.8.0.252.b01-0.1.ea
+- Backport JDK-8233880 to fix version detection of GCC 10.
+- Remove compiler flags used to disable GCC optimisations. This is now
+ resolved by -fno-delete-null-pointer-checks and -fno-lifetime-dse being turned
+ on in the upstream build, after GCC >= 6 is detected.
+
* Thu May 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u252-b01.
- Switch to EA mode.
diff --git a/jdk8233880-compiler_versioning.patch b/jdk8233880-compiler_versioning.patch
new file mode 100644
index 0000000..4028285
--- /dev/null
+++ b/jdk8233880-compiler_versioning.patch
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1589215018 -3600
+# Mon May 11 17:36:58 2020 +0100
+# Node ID 39a7914e14a0c73ecc80091724c833b9f0410d47
+# Parent 493a0176587ec5917ab4a64c0760a131e9d0b7b4
+8233880: Support compilers with multi-digit major version numbers
+Summary: Also includes JDK-8151841 version changes regressed by JDK-8034788
+Reviewed-by: aph, andrew
+
+diff --git openjdk.orig/common/autoconf/toolchain.m4
openjdk/common/autoconf/toolchain.m4
+--- openjdk.orig/common/autoconf/toolchain.m4
++++ openjdk/common/autoconf/toolchain.m4
+@@ -433,7 +433,7 @@
+ COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
+ $SED -e 's/ *Copyright .*//'`
+ COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
+- $SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\) .*$/\1/'`
++ $SED -e 's/^.* \(@<:@1-9@:>@@<:@0-9@:>@*\.@<:@0-9.@:>@*\)
.*$/\1/'`
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ # clang --version output typically looks like
+ # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
commit d2472c46bd69795660705581cdbc19fa9d63f4c3
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 16 12:52:40 2020 -0400
Update to aarch64-shenandoah-jdk8u252-b01.
Switch to EA mode.
Adjust JDK-8199936/PR3533 patch following JDK-8227397 configure change
Make use of --with-extra-asflags introduced in jdk8u252-b01.
diff --git a/.gitignore b/.gitignore
index 21ee408..49432d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -166,3 +166,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz
/tapsets-icedtea-3.15.0.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01-4curve.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0f54e1e..0e443a7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -229,7 +229,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u252-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -245,12 +245,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 4
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1129,13 +1129,12 @@ Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_jav
Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
Patch401: pr3655-toggle_system_crypto_policy.patch
-# JDK-8219772: EXTRA_CFLAGS not being picked up for assembler files
-Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
# JDK-8241296: Segfault in JNIHandleBlock::oops_do()
Patch112: jdk8241296-jnihandleblock_segfault.patch
+# JDK-8244461: [JDK 8u] Build fails with glibc 2.32
Patch113: jdk8244461-remove_unused_sysctl.h.patch
#############################################
@@ -1568,7 +1567,6 @@ sh %{SOURCE12}
%patch574
%patch575
%patch577
-%patch110
%patch111
%patch112
%patch113
@@ -1653,15 +1651,14 @@ GCC_10_OPT_DISABLE="-fno-tree-pta -fno-tree-scev-cprop
-fno-tree-sink -fno-tree-
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon $GCC_10_OPT_DISABLE"
EXTRA_CPP_FLAGS="%ourcppflags -fcommon $GCC_10_OPT_DISABLE"
-# Fixes annocheck warnings in assembler files due to missing build notes
-EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -Wa,--generate-missing-build-notes=yes"
-EXTRA_CFLAGS="$EXTRA_CFLAGS -Wa,--generate-missing-build-notes=yes"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
-export EXTRA_CFLAGS
+
+EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes"
+export EXTRA_CFLAGS EXTRA_ASFLAGS
(cd %{top_level_dir_name}/common/autoconf
bash ./autogen.sh
@@ -1699,6 +1696,7 @@ function buildjdk() {
--with-stdc++lib=dynamic \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
+ --with-extra-asflags="$EXTRA_ASFLAGS" \
--with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC"
@@ -2236,6 +2234,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu May 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.252.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u252-b01.
+- Switch to EA mode.
+- Adjust JDK-8199936/PR3533 patch following JDK-8227397 configure change
+- Make use of --with-extra-asflags introduced in jdk8u252-b01.
+
* Tue May 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b08-4
- Add patch for JDK-8244461 so as to fix sys/sysctl.h removal
in upcoming glibc 2.32
diff --git
a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
index 533ea2d..ae48068 100644
--- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
+++ b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
@@ -10,7 +10,7 @@ Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
--- openjdk.orig///common/autoconf/flags.m4
+++ openjdk///common/autoconf/flags.m4
-@@ -389,6 +389,21 @@
+@@ -402,6 +402,21 @@
AC_SUBST($2CXXSTD_CXXFLAG)
fi
@@ -44,11 +44,11 @@ diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in
openjdk///common/a
+ $(REALIGN_CFLAG)
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
-
+ EXTRA_ASFLAGS=@LEGACY_EXTRA_ASFLAGS@
diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/spec.gmk.in
--- openjdk.orig///common/autoconf/spec.gmk.in
+++ openjdk///common/autoconf/spec.gmk.in
-@@ -334,6 +334,7 @@
+@@ -366,6 +366,7 @@
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
diff --git a/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
b/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
deleted file mode 100644
index 33ccea4..0000000
--- a/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk.orig/hotspot/make/linux/makefiles/vm.make
---- openjdk.orig/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -121,6 +121,7 @@
- CFLAGS += $(CFLAGS/NOEX)
-
- # Extra flags from gnumake's invocation or environment
-+ASFLAGS += $(EXTRA_CFLAGS)
- CFLAGS += $(EXTRA_CFLAGS)
- LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
diff --git a/sources b/sources
index 55ce4fd..4fa9aea 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
a0376b936e28392e1d66abb1fc6a8f715cc2085319e5496627d65a9d65d5d5e32fc7b9d3edeefed64087f597503fb2b54f0de613be01049aaa61b598d63945aa
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz) =
5102b72f47c53834942a2b970e0019f9de4fff32e4146bddfb8e0abcbf7805aa07456afb43fb9130cc3c1fd6d94bc0ab2e851d1d133fe2ec2a0fcffde3e288af
+SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u252-b01.tar.xz) =
0cf78ddff5601964371ae754713d7e46e271dab183aa87bf9de760a45050a80e5183022404ec4b73215fb38b6baeecd1a29bc81139c59b773107ed350c6c7e81
commit 5ff7ed65dbba5a36c69bbd138269758296a32d61
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon May 4 16:18:57 2020 +0200
Add patch so as to remove unused include of sys/sysctl.h
Tracked upstream as JDK-8244461
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f905c59..0f54e1e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -245,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 4
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1136,6 +1136,7 @@ Patch110:
jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
Patch111: jdk8218811-perfMemory_linux.patch
# JDK-8241296: Segfault in JNIHandleBlock::oops_do()
Patch112: jdk8241296-jnihandleblock_segfault.patch
+Patch113: jdk8244461-remove_unused_sysctl.h.patch
#############################################
#
@@ -1570,6 +1571,7 @@ sh %{SOURCE12}
%patch110
%patch111
%patch112
+%patch113
# RPM-only fixes
%patch539
@@ -2234,6 +2236,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue May 05 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b08-4
+- Add patch for JDK-8244461 so as to fix sys/sysctl.h removal
+ in upcoming glibc 2.32
+
* Tue Mar 24 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-3
- Introduce stapinstall variable to set SystemTap arch directory correctly (e.g. arm64 on
aarch64)
- Include support for noarch for when koji creates source RPMs
diff --git a/jdk8244461-remove_unused_sysctl.h.patch
b/jdk8244461-remove_unused_sysctl.h.patch
new file mode 100644
index 0000000..07c9139
--- /dev/null
+++ b/jdk8244461-remove_unused_sysctl.h.patch
@@ -0,0 +1,22 @@
+diff --git a/src/solaris/native/java/net/PlainDatagramSocketImpl.c
b/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+--- openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++++ openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+@@ -41,7 +41,6 @@
+ #endif
+ #ifdef __linux__
+ #include <unistd.h>
+-#include <sys/sysctl.h>
+ #include <sys/utsname.h>
+ #include <netinet/ip.h>
+
+diff --git a/src/solaris/native/java/net/PlainSocketImpl.c
b/src/solaris/native/java/net/PlainSocketImpl.c
+--- openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++++ openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+@@ -43,7 +43,6 @@
+ #endif
+ #ifdef __linux__
+ #include <unistd.h>
+-#include <sys/sysctl.h>
+ #endif
+
+ #include "jvm.h"
commit 1b1cbf2cdfb8346f9e7d2fed4cf3a17e16def54e
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Tue Mar 31 20:19:21 2020 +0100
Introduce stapinstall variable to set SystemTap arch directory correctly (e.g. arm64
on aarch64)
Include support for noarch for when koji creates source RPMs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cd286ae..f905c59 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -136,47 +136,61 @@
# In some cases, the arch used by the JDK does
# not match _arch.
# Also, in some cases, the machine name used by SystemTap
-# does not match that given by _build_cpu
+# does not match that given by _target_cpu
%ifarch x86_64
%global archinstall amd64
+%global stapinstall x86_64
%endif
%ifarch ppc
%global archinstall ppc
+%global stapinstall powerpc
%endif
%ifarch %{ppc64be}
%global archinstall ppc64
+%global stapinstall powerpc
%endif
%ifarch %{ppc64le}
%global archinstall ppc64le
+%global stapinstall powerpc
%endif
%ifarch %{ix86}
%global archinstall i386
+%global stapinstall i386
%endif
%ifarch ia64
%global archinstall ia64
+%global stapinstall ia64
%endif
%ifarch s390
%global archinstall s390
+%global stapinstall s390
%endif
%ifarch s390x
%global archinstall s390x
+%global stapinstall s390
%endif
%ifarch %{arm}
%global archinstall arm
+%global stapinstall arm
%endif
%ifarch %{aarch64}
%global archinstall aarch64
+%global stapinstall arm64
%endif
# 32 bit sparc, optimized for v9
%ifarch sparcv9
%global archinstall sparc
+%global stapinstall %{_target_cpu}
%endif
# 64 bit sparc
%ifarch sparc64
%global archinstall sparcv9
+%global stapinstall %{_target_cpu}
%endif
-%ifnarch %{jit_arches}
-%global archinstall %{_arch}
+# Need to support noarch for srpm build
+%ifarch noarch
+%global archinstall %{nil}
+%global stapinstall %{nil}
%endif
%ifarch %{jit_arches}
@@ -231,7 +245,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -285,10 +299,10 @@
# and 32 bit architectures we place the tapsets under the arch
# specific dir (note that systemtap will only pickup the tapset
# for the primary arch for now). Systemtap uses the machine name
-# aka build_cpu as architecture specific directory name.
+# aka target_cpu as architecture specific directory name.
%global tapsetroot /usr/share/systemtap
%global tapsetdirttapset %{tapsetroot}/tapset/
-%global tapsetdir %{tapsetdirttapset}/%{_build_cpu}
+%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
%endif
# not-duplicated scriptlets for normal/debug packages
@@ -1462,6 +1476,14 @@ Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX.
OpenJFX do not supp
%endif
%prep
+
+# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
+%if 0%{?stapinstall:1}
+ echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap
install directory: %{stapinstall}"
+%else
+ %{error:Unrecognised architecture %{_target_cpu}}
+%endif
+
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
echo "include_normal_build is %{include_normal_build}"
else
@@ -2212,6 +2234,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Mar 24 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-3
+- Introduce stapinstall variable to set SystemTap arch directory correctly (e.g. arm64 on
aarch64)
+- Include support for noarch for when koji creates source RPMs
+
* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
- Replace Bash 'if' with rpm '%if'
- Resolves: rhbz#1813550
commit c20d187fd682fbe1b71b6b304fae283752cdb3a1
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Sun Mar 22 11:39:57 2020 +0000
Replace Bash 'if' with rpm '%if'
Resolves: rhbz#1813550
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 61de300..cd286ae 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1724,7 +1724,7 @@ if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
fi
-if %{bootstrap_build}
+%if %{bootstrap_build}
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}"
${debugbuild}
rm -rf ${bootbuilddir}
@@ -2212,6 +2212,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
+- Replace Bash 'if' with rpm '%if'
+- Resolves: rhbz#1813550
+
* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
- Restructure the build so a minimal initial build is then used for the final build (with
docs)
- This reduces pressure on the system JDK and ensures the JDK being built can do a full
build
commit c3c571de83d4c175fdb19b0b7d2e430f1c8f80ed
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Sun Mar 22 11:10:36 2020 +0000
Restructure the build so a minimal initial build is then used for the final build
(with docs)
This reduces pressure on the system JDK and ensures the JDK being built can do a full
build
Resolves: rhbz#1813550
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4cf3e4a..61de300 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -94,11 +94,8 @@
%global bootstrap_build 1
%endif
-%if %{bootstrap_build}
-%global release_targets bootcycle-images zip-docs
-%else
+%global bootstrap_targets images
%global release_targets images zip-docs
-%endif
# No docs nor bootcycle for debug builds
%global debug_targets images
@@ -262,7 +259,7 @@
# images stub
%global jdkimage j2sdk-image
# output dir stub
-%define buildoutputdir() %{expand:%{top_level_dir_name}/build/jdk8.build%{?1}}
+%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
@@ -1646,21 +1643,20 @@ export EXTRA_CFLAGS
bash ./autogen.sh
)
-for suffix in %{build_loop} ; do
-if [ "x$suffix" = "x" ] ; then
- debugbuild=release
-else
- # change --something to something
- debugbuild=`echo $suffix | sed "s/-//g"`
-fi
+function buildjdk() {
+ local outputdir=${1}
+ local buildjdk=${2}
+ local maketargets=${3}
+ local debuglevel=${4}
-# Variable used in hs_err hook on build failures
-top_dir_abs_path=$(pwd)/%{top_level_dir_name}
+ local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
+ # Variable used in hs_err hook on build failures
+ local top_builddir_abs_path=$(pwd)/${outputdir}
-mkdir -p %{buildoutputdir -- $suffix}
-pushd %{buildoutputdir -- $suffix}
+ mkdir -p ${outputdir}
+ pushd ${outputdir}
-bash ../../configure \
+ bash ${top_srcdir_abs_path}/configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
@@ -1668,8 +1664,8 @@ bash ../../configure \
--with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
- --with-boot-jdk=/usr/lib/jvm/java-openjdk \
- --with-debug-level=$debugbuild \
+ --with-boot-jdk=${buildjdk} \
+ --with-debug-level=${debuglevel} \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
@@ -1682,8 +1678,44 @@ bash ../../configure \
--with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC"
-cat spec.gmk
-cat hotspot-spec.gmk
+ cat spec.gmk
+ cat hotspot-spec.gmk
+
+ make \
+ JAVAC_FLAGS=-g \
+ LOG=trace \
+ SCTP_WERROR= \
+ ${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name
"hs_err_pid*.log" | xargs cat && false )
+
+ # the build (erroneously) removes read permissions from some jars
+ # this is a regression in OpenJDK 7 (our compiler):
+ #
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+ find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+ chmod ugo+r images/%{jdkimage}/lib/ct.sym
+
+ # remove redundant *diz and *debuginfo files
+ find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
+ find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
+
+ # Build screws up permissions on binaries
+ #
https://bugs.openjdk.java.net/browse/JDK-8173610
+ find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
+ find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+
+ popd >& /dev/null
+}
+
+for suffix in %{build_loop} ; do
+if [ "x$suffix" = "x" ] ; then
+ debugbuild=release
+else
+ # change --something to something
+ debugbuild=`echo $suffix | sed "s/-//g"`
+fi
+
+systemjdk=/usr/lib/jvm/java-openjdk
+builddir=%{buildoutputdir -- $suffix}
+bootbuilddir=boot${builddir}
# Debug builds don't need same targets as release for
# build speed-up
@@ -1691,28 +1723,14 @@ maketargets="%{release_targets}"
if echo $debugbuild | grep -q "debug" ; then
maketargets="%{debug_targets}"
fi
-make \
- JAVAC_FLAGS=-g \
- LOG=trace \
- SCTP_WERROR= \
- $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" |
xargs cat && false )
-# the build (erroneously) removes read permissions from some jars
-# this is a regression in OpenJDK 7 (our compiler):
-#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
-find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
-chmod ugo+r images/%{jdkimage}/lib/ct.sym
-
-# remove redundant *diz and *debuginfo files
-find images/%{jdkimage} -iname '*.diz' -exec rm {} \;
-find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \;
-
-# Build screws up permissions on binaries
-#
https://bugs.openjdk.java.net/browse/JDK-8173610
-find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
-find images/%{jdkimage}/bin/ -exec chmod +x {} \;
-
-popd >& /dev/null
+if %{bootstrap_build}
+buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}"
${debugbuild}
+rm -rf ${bootbuilddir}
+%else
+buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+%endif
# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
@@ -2194,6 +2212,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Mar 22 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
+- Restructure the build so a minimal initial build is then used for the final build (with
docs)
+- This reduces pressure on the system JDK and ensures the JDK being built can do a full
build
+- Resolves: rhbz#1813550
+
* Fri Mar 20 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
- Backport JDK-8241296 to fix segfaults when active_handles is NULL
- Resolves: rhbz#1813550
commit 1b81e9374ae1c3d473461f20737119f489aa4b4c
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri Mar 20 14:22:42 2020 +0000
Backport JDK-8241296 to fix segfaults when active_handles is NULL
Resolves: rhbz#1813550
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index db472d8..4cf3e4a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1123,6 +1123,8 @@ Patch110:
jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
# JDK-8218811: replace open by os::open in hotspot coding
# This fixes a GCC 10 build issue
Patch111: jdk8218811-perfMemory_linux.patch
+# JDK-8241296: Segfault in JNIHandleBlock::oops_do()
+Patch112: jdk8241296-jnihandleblock_segfault.patch
#############################################
#
@@ -1548,6 +1550,7 @@ sh %{SOURCE12}
%patch577
%patch110
%patch111
+%patch112
# RPM-only fixes
%patch539
@@ -2191,6 +2194,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Mar 20 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-2
+- Backport JDK-8241296 to fix segfaults when active_handles is NULL
+- Resolves: rhbz#1813550
+
* Fri Mar 13 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-1
- Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing
previous workarounds
diff --git a/jdk8241296-jnihandleblock_segfault.patch
b/jdk8241296-jnihandleblock_segfault.patch
new file mode 100644
index 0000000..f50aca1
--- /dev/null
+++ b/jdk8241296-jnihandleblock_segfault.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User aph
+# Date 1584629637 0
+# Thu Mar 19 14:53:57 2020 +0000
+# Node ID e96597ea4d672793ab205fd67009efed809fae11
+# Parent 0daa6b52ba568246e8f930138fb36f8f04d9fadd
+8241296: Segfault in JNIHandleBlock::oops_do()
+Reviewed-by: duke
+
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
openjdk/hotspot/src/share/vm/runtime/thread.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
++++ openjdk/hotspot/src/share/vm/runtime/thread.cpp
+@@ -836,7 +836,9 @@
+ }
+
+ void Thread::oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf) {
+- active_handles()->oops_do(f);
++ if (active_handles() != NULL) {
++ active_handles()->oops_do(f);
++ }
+ // Do oop for ThreadShadow
+ f->do_oop((oop*)&_pending_exception);
+ handle_area()->oops_do(f);
commit c374350ed3862123e89ca0ee1ab196e377e3114b
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri Mar 13 05:37:00 2020 +0000
Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing
previous workarounds
diff --git a/.gitignore b/.gitignore
index 4a7e0a1..21ee408 100644
--- a/.gitignore
+++ b/.gitignore
@@ -165,3 +165,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz
+/tapsets-icedtea-3.15.0.tar.xz
diff --git a/icedtea_sync.sh b/icedtea_sync.sh
index a9d5881..061637b 100755
--- a/icedtea_sync.sh
+++ b/icedtea_sync.sh
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <
http://www.gnu.org/licenses/>.
-ICEDTEA_VERSION=3.11.0
+ICEDTEA_VERSION=3.15.0
ICEDTEA_URL=https://icedtea.classpath.org/download/source
ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
@@ -89,11 +89,6 @@ echo "Replacing desktop files...";
mv -v icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in .
mv -v icedtea-${ICEDTEA_VERSION}/policytool.desktop.in .
-echo "Adding temporary fix to policytool.desktop (PR3718)";
-sed -i 's#Development#Settings#' policytool.desktop.in
-echo "Adding temporary fix to policytool.desktop (PR3719)";
-sed -i 's#_BINDIR_#_JREBINDIR_#' policytool.desktop.in
-
echo "Creating new tapset tarball...";
mv -v icedtea-${ICEDTEA_VERSION} openjdk
${TAR} cJf tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz openjdk
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e11888c..db472d8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -224,7 +224,7 @@
%global repo %{shenandoah_repo}
%global revision %{shenandoah_revision}
# Define IcedTea version used for SystemTap tapsets and desktop files
-%global icedteaver 3.11.0
+%global icedteaver 3.15.0
# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1595,10 +1595,10 @@ for file in %{SOURCE9} %{SOURCE10} ; do
EXT="${FILE##*.}"
NAME="${FILE%.*}"
OUTPUT_FILE=$NAME$suffix.$EXT
- sed -e "s:_BINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE
+ sed -e "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
- sed -i -e "s:@target_cpu@:%{version}-%{release}.%{_arch}$suffix:g"
$OUTPUT_FILE
- sed -i -e "s:@OPENJDK_VER@:%{javaver}:g" $OUTPUT_FILE
+ sed -i -e "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE
+ sed -i -e "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g"
$OUTPUT_FILE
sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE
sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
done
@@ -2191,6 +2191,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Mar 13 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-1
+- Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing
previous workarounds
+
* Wed Mar 11 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-0
- Update to aarch64-shenandoah-jdk8u242-b08.
- Switch to GA mode for final release.
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index b88bd7c..8a3b04d 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
-Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Monitoring & Management Console
+Name=OpenJDK @JAVA_VER@ for @target_cpu@ Monitoring & Management Console
(@OPENJDK_VER@)
Comment=Monitor and manage OpenJDK applications
-Exec=_BINDIR_/jconsole
+Exec=_SDKBINDIR_/jconsole
Icon=java-@JAVA_VER@-@JAVA_VENDOR@
Terminal=false
Type=Application
diff --git a/policytool.desktop.in b/policytool.desktop.in
index 112a24f..5f4cb4a 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,5 +1,5 @@
[Desktop Entry]
-Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Policy Tool
+Name=OpenJDK @JAVA_VER@ for @target_cpu@ Policy Tool (@OPENJDK_VER@)
Comment=Manage OpenJDK policy files
Exec=_JREBINDIR_/policytool
Icon=java-@JAVA_VER@-@JAVA_VENDOR@
diff --git a/sources b/sources
index d5868e4..55ce4fd 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
+SHA512 (tapsets-icedtea-3.15.0.tar.xz) =
a0376b936e28392e1d66abb1fc6a8f715cc2085319e5496627d65a9d65d5d5e32fc7b9d3edeefed64087f597503fb2b54f0de613be01049aaa61b598d63945aa
SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz) =
5102b72f47c53834942a2b970e0019f9de4fff32e4146bddfb8e0abcbf7805aa07456afb43fb9130cc3c1fd6d94bc0ab2e851d1d133fe2ec2a0fcffde3e288af
commit 7d607cb7301980136373d98dc6a161af7ab01f05
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Thu Mar 12 13:18:06 2020 +0000
Update to aarch64-shenandoah-jdk8u242-b08.
diff --git a/.gitignore b/.gitignore
index ca99e1d..4a7e0a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -164,3 +164,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cb76445..e11888c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -234,12 +234,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2191,6 +2191,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Mar 11 2020 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b08-0
+- Update to aarch64-shenandoah-jdk8u242-b08.
+- Switch to GA mode for final release.
+
* Wed Mar 04 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b07-0.1.ea
- Add work-arounds for GCC 10 build issues. See RHBZ#1795268.
diff --git a/sources b/sources
index bd0a6a5..d5868e4 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz) =
a394689d9402f2a268f60c15c6f13eb7ca2d5b68d929b631d48848590d0a2e0e94d4c202290d98dcb1a7d2d804288512f3a784e0d4a4dc24a2245dc2a571cec2
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b08.tar.xz) =
5102b72f47c53834942a2b970e0019f9de4fff32e4146bddfb8e0abcbf7805aa07456afb43fb9130cc3c1fd6d94bc0ab2e851d1d133fe2ec2a0fcffde3e288af
commit d22128935c89fa1917d8df083ff70a2acfac2d91
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Mar 5 20:07:19 2020 +0100
Use proper JDK 8 patch for JDK-8224851
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 59feb2f..cb76445 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1145,7 +1145,7 @@ Patch106:
pr3519-fix_further_functions_with_a_missing_return_value.patch
Patch107: s390-8214206_fix.patch
# JDK-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
# GCC 10 fix for redeclaration
-Patch120: jdk8224851-aarch64_macroasm_call_vm.patch
+Patch120: jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
#############################################
#
@@ -1527,7 +1527,7 @@ sh %{SOURCE12}
# AArch64 fixes
%patch106
-%patch120 -p2
+%patch120
# x86 fixes
%patch105
diff --git a/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
b/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
new file mode 100644
index 0000000..1b77c61
--- /dev/null
+++ b/jdk8224851-aarch64_fix_warnings_and_errors_GCC_8_3.patch
@@ -0,0 +1,296 @@
+# HG changeset patch
+# User andrew
+# Date 1580791377 0
+# Tue Feb 04 04:42:57 2020 +0000
+# Node ID d76a1de48f87fb7c08e401920dca0aac2e7567ea
+# Parent 6ead1e97a4ea437c51829394f76dc2de7b5ea033
+8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
+Reviewed-by: shade, aph, sgehwolf
+
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
+--- openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
++++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
+@@ -12928,7 +12928,7 @@
+ format %{ "fcmps $src1, 0.0" %}
+
+ ins_encode %{
+- __ fcmps(as_FloatRegister($src1$$reg), 0.0D);
++ __ fcmps(as_FloatRegister($src1$$reg), 0.0);
+ %}
+
+ ins_pipe(pipe_class_compare);
+@@ -12957,7 +12957,7 @@
+ format %{ "fcmpd $src1, 0.0" %}
+
+ ins_encode %{
+- __ fcmpd(as_FloatRegister($src1$$reg), 0.0D);
++ __ fcmpd(as_FloatRegister($src1$$reg), 0.0);
+ %}
+
+ ins_pipe(pipe_class_compare);
+@@ -13033,7 +13033,7 @@
+ Label done;
+ FloatRegister s1 = as_FloatRegister($src1$$reg);
+ Register d = as_Register($dst$$reg);
+- __ fcmps(s1, 0.0D);
++ __ fcmps(s1, 0.0);
+ // installs 0 if EQ else -1
+ __ csinvw(d, zr, zr, Assembler::EQ);
+ // keeps -1 if less or unordered else installs 1
+@@ -13060,7 +13060,7 @@
+ Label done;
+ FloatRegister s1 = as_FloatRegister($src1$$reg);
+ Register d = as_Register($dst$$reg);
+- __ fcmpd(s1, 0.0D);
++ __ fcmpd(s1, 0.0);
+ // installs 0 if EQ else -1
+ __ csinvw(d, zr, zr, Assembler::EQ);
+ // keeps -1 if less or unordered else installs 1
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp
+@@ -281,7 +281,7 @@
+ unsigned get(int msb = 31, int lsb = 0) {
+ int nbits = msb - lsb + 1;
+ unsigned mask = ((1U << nbits) - 1) << lsb;
+- assert_cond(bits & mask == mask);
++ assert_cond((bits & mask) == mask);
+ return (insn & mask) >> lsb;
+ }
+
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (c) 2013, Red Hat Inc.
+- * Copyright (c) 2000, 2012, Oracle and/or its affiliates.
++ * Copyright (c) 2000, 2019, Oracle and/or its affiliates.
+ * All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -1129,8 +1129,8 @@
+ // Assembler::EQ does not permit unordered branches, so we add
+ // another branch here. Likewise, Assembler::NE does not permit
+ // ordered branches.
+- if (is_unordered && op->cond() == lir_cond_equal
+- || !is_unordered && op->cond() == lir_cond_notEqual)
++ if ((is_unordered && op->cond() == lir_cond_equal)
++ || (!is_unordered && op->cond() == lir_cond_notEqual))
+ __ br(Assembler::VS, *(op->ublock()->label()));
+ switch(op->cond()) {
+ case lir_cond_equal: acond = Assembler::EQ; break;
+@@ -1850,18 +1850,22 @@
+ switch (code) {
+ case lir_add: __ fadds (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
+ case lir_sub: __ fsubs (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
++ case lir_mul_strictfp: // fall through
+ case lir_mul: __ fmuls (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
++ case lir_div_strictfp: // fall through
+ case lir_div: __ fdivs (dest->as_float_reg(), left->as_float_reg(),
right->as_float_reg()); break;
+ default:
+ ShouldNotReachHere();
+ }
+ } else if (left->is_double_fpu()) {
+ if (right->is_double_fpu()) {
+- // cpu register - cpu register
++ // fpu register - fpu register
+ switch (code) {
+ case lir_add: __ faddd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
+ case lir_sub: __ fsubd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
++ case lir_mul_strictfp: // fall through
+ case lir_mul: __ fmuld (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
++ case lir_div_strictfp: // fall through
+ case lir_div: __ fdivd (dest->as_double_reg(), left->as_double_reg(),
right->as_double_reg()); break;
+ default:
+ ShouldNotReachHere();
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (c) 2013, Red Hat Inc.
+- * Copyright (c) 2005, 2011, Oracle and/or its affiliates.
++ * Copyright (c) 2005, 2019, Oracle and/or its affiliates.
+ * All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -500,7 +500,7 @@
+ tmp = new_register(T_DOUBLE);
+ }
+
+- arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), NULL);
++ arithmetic_op_fpu(x->op(), reg, left.result(), right.result(),
x->is_strictfp());
+
+ set_result(x, round_item(reg));
+ }
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (c) 2013, Red Hat Inc.
+- * Copyright (c) 1997, 2012, Oracle and/or its affiliates.
++ * Copyright (c) 1997, 2019, Oracle and/or its affiliates.
+ * All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -819,11 +819,13 @@
+
+ extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc,
+ unsigned long bcx, unsigned long thread) {
+- RegisterMap map((JavaThread*)thread, false);
+ if (!reg_map) {
+- reg_map = (RegisterMap*)os::malloc(sizeof map, mtNone);
++ reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone);
++ ::new (reg_map) RegisterMap((JavaThread*)thread, false);
++ } else {
++ *reg_map = RegisterMap((JavaThread*)thread, false);
+ }
+- memcpy(reg_map, &map, sizeof map);
++
+ {
+ CodeBlob *cb = CodeCache::find_blob((address)pc);
+ if (cb && cb->frame_size())
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+@@ -40,8 +40,6 @@
+ protected:
+
+ protected:
+- using MacroAssembler::call_VM_leaf_base;
+-
+ // Interpreter specific version of call_VM_base
+ using MacroAssembler::call_VM_leaf_base;
+
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+@@ -2460,7 +2460,7 @@
+ if ((offset & (size-1)) && offset >= (1<<8)) {
+ add(tmp, base, offset & ((1<<12)-1));
+ base = tmp;
+- offset &= -1<<12;
++ offset &= -1u<<12;
+ }
+
+ if (offset >= (1<<12) * size) {
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.cpp
+@@ -158,7 +158,7 @@
+ if (FILE *f = fopen("/proc/cpuinfo", "r")) {
+ char buf[128], *p;
+ while (fgets(buf, sizeof (buf), f) != NULL) {
+- if (p = strchr(buf, ':')) {
++ if ((p = strchr(buf, ':')) != NULL) {
+ long v = strtol(p+1, NULL, 0);
+ if (strncmp(buf, "CPU implementer", sizeof "CPU implementer"
- 1) == 0) {
+ _cpu = v;
+diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
+--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.s
+@@ -248,7 +248,7 @@
+ blo bwd_copy_drain
+
+ bwd_copy_again:
+- prfm pldl1keep, [s, #-256]
++ prfum pldl1keep, [s, #-256]
+ stp t0, t1, [d, #-16]
+ ldp t0, t1, [s, #-16]
+ stp t2, t3, [d, #-32]
+diff --git openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -76,12 +76,10 @@
+
+ #define REG_FP 29
+
+-#define SPELL_REG_SP "sp"
+-#define SPELL_REG_FP "x29"
++#define NOINLINE __attribute__ ((noinline))
+
+-address os::current_stack_pointer() {
+- register void *esp __asm__ (SPELL_REG_SP);
+- return (address) esp;
++NOINLINE address os::current_stack_pointer() {
++ return (address)__builtin_frame_address(0);
+ }
+
+ char* os::non_memory_address_word() {
+@@ -155,14 +153,8 @@
+ return frame(fr->link(), fr->link(), fr->sender_pc());
+ }
+
+-intptr_t* _get_previous_fp() {
+- register intptr_t **ebp __asm__ (SPELL_REG_FP);
+- return (intptr_t*) *ebp; // we want what it points to.
+-}
+-
+-
+-frame os::current_frame() {
+- intptr_t* fp = _get_previous_fp();
++NOINLINE frame os::current_frame() {
++ intptr_t *fp = *(intptr_t **)__builtin_frame_address(0);
+ frame myframe((intptr_t*)os::current_stack_pointer(),
+ (intptr_t*)fp,
+ CAST_FROM_FN_PTR(address, os::current_frame));
+@@ -176,12 +168,6 @@
+
+ // Utility functions
+
+-// From IA32 System Programming Guide
+-enum {
+- trap_page_fault = 0xE
+-};
+-
+-
+ // An operation in Unsafe has faulted. We're going to return to the
+ // instruction after the faulting load or store. We also set
+ // pending_unsafe_access_error so that at some point in the future our
+@@ -607,12 +593,12 @@
+
+ void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+ if (from > to) {
+- jshort *end = from + count;
++ const jshort *end = from + count;
+ while (from < end)
+ *(to++) = *(from++);
+ }
+ else if (from < to) {
+- jshort *end = from;
++ const jshort *end = from;
+ from += count - 1;
+ to += count - 1;
+ while (from >= end)
+@@ -621,12 +607,12 @@
+ }
+ void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
+ if (from > to) {
+- jint *end = from + count;
++ const jint *end = from + count;
+ while (from < end)
+ *(to++) = *(from++);
+ }
+ else if (from < to) {
+- jint *end = from;
++ const jint *end = from;
+ from += count - 1;
+ to += count - 1;
+ while (from >= end)
+@@ -635,12 +621,12 @@
+ }
+ void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
+ if (from > to) {
+- jlong *end = from + count;
++ const jlong *end = from + count;
+ while (from < end)
+ os::atomic_copy64(from++, to++);
+ }
+ else if (from < to) {
+- jlong *end = from;
++ const jlong *end = from;
+ from += count - 1;
+ to += count - 1;
+ while (from >= end)
diff --git a/jdk8224851-aarch64_macroasm_call_vm.patch
b/jdk8224851-aarch64_macroasm_call_vm.patch
deleted file mode 100644
index ecd1ccb..0000000
--- a/jdk8224851-aarch64_macroasm_call_vm.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git
a/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
b/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-index 22beab0..f3572e1 100644
----
a/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-+++
b/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-@@ -40,8 +40,6 @@ class InterpreterMacroAssembler: public MacroAssembler {
- protected:
-
- protected:
-- using MacroAssembler::call_VM_leaf_base;
--
- // Interpreter specific version of call_VM_base
- using MacroAssembler::call_VM_leaf_base;
-
commit 15561557e218bcccf76185a6fb258dd245082e46
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Mar 4 20:20:06 2020 +0100
Bump release and add changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6bee0b5..59feb2f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2191,7 +2191,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Wed Jan 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b07-0
+* Wed Mar 04 2020 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.242.b07-0.1.ea
+- Add work-arounds for GCC 10 build issues. See RHBZ#1795268.
+
+* Wed Jan 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u242-b07.
- Remove Shenandoah S390 patch which is now included upstream as JDK-8236829.
@@ -3726,4 +3729,4 @@ added and applied patch604: aarch64-ifdefbugfix.patch to fix
rhbz1276959
- Initial version for Fedora 19
* Tue Sep 04 2012 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.0-b53.1
-- Initial build from java-1.7.0-openjdk RPM
\ No newline at end of file
+- Initial build from java-1.7.0-openjdk RPM
commit b2021a545e47a5451ef10b5829f8990a5fdbc3db
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Feb 13 18:49:10 2020 +0100
Refer to right JDK patch for aarch macro assembler redeclaration
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fa7bcfa..6bee0b5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1143,8 +1143,9 @@ Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
# S390 ambiguous log2_intptr calls
Patch107: s390-8214206_fix.patch
-# JDK-8237885: GCC 10 fix redeclaration
-Patch120: jdk8236829-aarch64_macroasm_call_vm.patch
+# JDK-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
+# GCC 10 fix for redeclaration
+Patch120: jdk8224851-aarch64_macroasm_call_vm.patch
#############################################
#
diff --git a/jdk8236829-aarch64_macroasm_call_vm.patch
b/jdk8224851-aarch64_macroasm_call_vm.patch
similarity index 100%
rename from jdk8236829-aarch64_macroasm_call_vm.patch
rename to jdk8224851-aarch64_macroasm_call_vm.patch
commit 4408c2610784bf0ba503ac53b629b748b7bf202f
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Feb 13 18:17:41 2020 +0100
Add patch for JDK-8218811, which fixes a GCC 10 build issue
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3297900..fa7bcfa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1120,6 +1120,9 @@ Patch400:
pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
Patch401: pr3655-toggle_system_crypto_policy.patch
# JDK-8219772: EXTRA_CFLAGS not being picked up for assembler files
Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
+# JDK-8218811: replace open by os::open in hotspot coding
+# This fixes a GCC 10 build issue
+Patch111: jdk8218811-perfMemory_linux.patch
#############################################
#
@@ -1543,6 +1546,7 @@ sh %{SOURCE12}
%patch575
%patch577
%patch110
+%patch111
# RPM-only fixes
%patch539
diff --git a/jdk8218811-perfMemory_linux.patch b/jdk8218811-perfMemory_linux.patch
new file mode 100644
index 0000000..7b3d2f7
--- /dev/null
+++ b/jdk8218811-perfMemory_linux.patch
@@ -0,0 +1,12 @@
+diff --git openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp
openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp
+@@ -878,7 +878,7 @@
+
+ // open the file
+ int result;
+- RESTARTABLE(::open(filename, oflags), result);
++ RESTARTABLE(::open(filename, oflags, 0), result);
+ if (result == OS_ERR) {
+ if (errno == ENOENT) {
+ THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
commit e2c0e0e31176db7eeb6eadc190c87d9bf1c9c542
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Feb 13 17:39:31 2020 +0100
Disable a bag of GCC 10 OPTO flags for a working build
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 71f28bc..3297900 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1619,10 +1619,11 @@ export ARCH_DATA_MODEL=64
export CFLAGS="$CFLAGS -mieee"
%endif
+GCC_10_OPT_DISABLE="-fno-tree-pta -fno-tree-scev-cprop -fno-tree-sink
-fno-tree-slp-vectorize -fno-tree-slsr -fno-tree-sra -fno-tree-switch-conversion
-fno-tree-tail-merge -fno-tree-ter -fno-tree-vrp -fno-unit-at-a-time -fno-unswitch-loops
-fno-vect-cost-model -fno-version-loops-for-strides -fno-tree-coalesce-vars
-fno-tree-copy-prop -fno-tree-dce -fno-tree-dominator-opts -fno-tree-dse
-fno-tree-forwprop -fno-tree-fre -fno-tree-loop-distribute-patterns
-fno-tree-loop-distribution -fno-tree-loop-vectorize -fno-tree-partial-pre
-fno-tree-phiprop -fno-tree-pre"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
-EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon"
-EXTRA_CPP_FLAGS="%ourcppflags -fcommon"
+EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon $GCC_10_OPT_DISABLE"
+EXTRA_CPP_FLAGS="%ourcppflags -fcommon $GCC_10_OPT_DISABLE"
# Fixes annocheck warnings in assembler files due to missing build notes
EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -Wa,--generate-missing-build-notes=yes"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wa,--generate-missing-build-notes=yes"
commit 43d1f0cd186651f3870efcd435984c117b502612
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Jan 27 16:11:31 2020 +0100
Account for -fno-common default and dupl. declaration.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 74def62..71f28bc 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1140,6 +1140,8 @@ Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
# S390 ambiguous log2_intptr calls
Patch107: s390-8214206_fix.patch
+# JDK-8237885: GCC 10 fix redeclaration
+Patch120: jdk8236829-aarch64_macroasm_call_vm.patch
#############################################
#
@@ -1521,6 +1523,7 @@ sh %{SOURCE12}
# AArch64 fixes
%patch106
+%patch120 -p2
# x86 fixes
%patch105
@@ -1618,8 +1621,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
-EXTRA_CFLAGS="%ourcppflags -Wno-error"
-EXTRA_CPP_FLAGS="%ourcppflags"
+EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon"
+EXTRA_CPP_FLAGS="%ourcppflags -fcommon"
# Fixes annocheck warnings in assembler files due to missing build notes
EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -Wa,--generate-missing-build-notes=yes"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wa,--generate-missing-build-notes=yes"
diff --git a/jdk8236829-aarch64_macroasm_call_vm.patch
b/jdk8236829-aarch64_macroasm_call_vm.patch
new file mode 100644
index 0000000..ecd1ccb
--- /dev/null
+++ b/jdk8236829-aarch64_macroasm_call_vm.patch
@@ -0,0 +1,13 @@
+diff --git
a/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
b/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+index 22beab0..f3572e1 100644
+---
a/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
++++
b/java-1.8.0-openjdk-1.8.0.242.b06-0.0.ea.fc32.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+@@ -40,8 +40,6 @@ class InterpreterMacroAssembler: public MacroAssembler {
+ protected:
+
+ protected:
+- using MacroAssembler::call_VM_leaf_base;
+-
+ // Interpreter specific version of call_VM_base
+ using MacroAssembler::call_VM_leaf_base;
+
commit 8d461f86a1fd3b4cf9d8304ee032407e57d06856
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri Feb 14 14:34:38 2020 +0000
Update to aarch64-shenandoah-jdk8u242-b07.
Remove Shenandoah S390 patch which is now included upstream as JDK-8236829.
diff --git a/.gitignore b/.gitignore
index 9b8b2ec..ca99e1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -163,3 +163,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 70e8ff8..74def62 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b06
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1001,7 +1001,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} =
%{epoch}:%{version}-%{r
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1199,8 +1199,6 @@ Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
# and should be upstreamed to the appropriate
# trees.
#############################################
-# JDK-8236829: JDK-8232102 backport breaks s390
-Patch301: jdk8236829-s390_shenandoah.patch
#############################################
#
@@ -1553,7 +1551,6 @@ sh %{SOURCE12}
%endif
# Shenandoah patches
-%patch301
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -2185,6 +2182,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 29 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b07-0
+- Update to aarch64-shenandoah-jdk8u242-b07.
+- Remove Shenandoah S390 patch which is now included upstream as JDK-8236829.
+
* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.242.b06-0.0.ea.1
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/jdk8236829-s390_shenandoah.patch b/jdk8236829-s390_shenandoah.patch
deleted file mode 100644
index ec1e619..0000000
--- a/jdk8236829-s390_shenandoah.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-@@ -479,31 +479,37 @@
- "of regions (" SIZE_FORMAT ") of minimum region
size (" SIZE_FORMAT "%s).",
- byte_size_in_proper_unit(max_heap_size),
proper_unit_for_byte_size(max_heap_size),
- MIN_NUM_REGIONS,
-- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMinRegionSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
- }
- if (ShenandoahMinRegionSize < MIN_REGION_SIZE) {
- err_msg message("" SIZE_FORMAT "%s should not be lower than minimum
region size (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
-- byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
-+ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMinRegionSize),
-+ byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
- vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
- }
- if (ShenandoahMinRegionSize < MinTLABSize) {
- err_msg message("" SIZE_FORMAT "%s should not be lower than TLAB
size size (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
-- byte_size_in_proper_unit(MinTLABSize),
proper_unit_for_byte_size(MinTLABSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMinRegionSize),
-+ byte_size_in_proper_unit<size_t>(MinTLABSize),
proper_unit_for_byte_size(MinTLABSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
- }
- if (ShenandoahMaxRegionSize < MIN_REGION_SIZE) {
- err_msg message("" SIZE_FORMAT "%s should not be lower than min
region size (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize),
-- byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
-+ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMaxRegionSize),
-+ byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
- vm_exit_during_initialization("Invalid -XX:ShenandoahMaxRegionSize
option", message);
- }
- if (ShenandoahMinRegionSize > ShenandoahMaxRegionSize) {
- err_msg message("Minimum (" SIZE_FORMAT "%s) should be larger than
maximum (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
-- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMinRegionSize),
-+ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMaxRegionSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize or
-XX:ShenandoahMaxRegionSize", message);
- }
-
-@@ -521,19 +527,24 @@
- "of regions (" SIZE_FORMAT ") of requested
size (" SIZE_FORMAT "%s).",
- byte_size_in_proper_unit(max_heap_size),
proper_unit_for_byte_size(max_heap_size),
- MIN_NUM_REGIONS,
-- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
-+ proper_unit_for_byte_size(ShenandoahHeapRegionSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
- }
- if (ShenandoahHeapRegionSize < ShenandoahMinRegionSize) {
- err_msg message("Heap region size (" SIZE_FORMAT "%s) should be
larger than min region size (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize),
-- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
-+ proper_unit_for_byte_size(ShenandoahHeapRegionSize),
-+ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMinRegionSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
- }
- if (ShenandoahHeapRegionSize > ShenandoahMaxRegionSize) {
- err_msg message("Heap region size (" SIZE_FORMAT "%s) should be
lower than max region size (" SIZE_FORMAT "%s).",
-- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize),
-- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize));
-+ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
-+ proper_unit_for_byte_size(ShenandoahHeapRegionSize),
-+ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
-+ proper_unit_for_byte_size(ShenandoahMaxRegionSize));
- vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
- }
- region_size = ShenandoahHeapRegionSize;
diff --git a/sources b/sources
index 7037e9a..bd0a6a5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz) =
38901aafdda65f4fc4d152f31c1d8b694a0bb6c73ed5d3c6fa66634f4b2ffad3eccc23be1b2c16a5c1c07d63279d91403f45d66dca3d7f4a04e3142cd3960938
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b07.tar.xz) =
a394689d9402f2a268f60c15c6f13eb7ca2d5b68d929b631d48848590d0a2e0e94d4c202290d98dcb1a7d2d804288512f3a784e0d4a4dc24a2245dc2a571cec2
commit 37a3e11202c8e2a853000e8dcfeba477f5531826
Author: Jiří Andrlík <jandrlik(a)redhat.com>
Date: Mon Feb 3 11:05:37 2020 +0000
Update java-1.8.0-openjdk.spec
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 38a5139..70e8ff8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -955,6 +955,7 @@ Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
@@ -978,6 +979,7 @@ Requires: %{name}-headless%{?1}%{?_isa} =
%{epoch}:%{version}-%{release}
# Standard JPackage sources provides
Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
}
@@ -988,6 +990,7 @@ Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
commit c5a2af3ced82124d18aef2c754cafd36bf3152be
Author: Jiří Andrlík <jandrlik(a)redhat.com>
Date: Mon Feb 3 10:31:27 2020 +0000
Update java-1.8.0-openjdk.spec
minor fix for provides, corresponding to java specification
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d1f7f33..38a5139 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -879,13 +879,13 @@ Recommends: gtk2%{?_isa}
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides
-Provides: jre%{?1} = %{javaver}
+Provides: jre%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
-Provides: java%{?1} = %{epoch}:%{javaver}
+Provides: java%{?1} = %{epoch}:%{version}-%{release}
}
%define java_headless_rpo() %{expand:
@@ -914,14 +914,14 @@ Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
%endif
# Standard JPackage base provides
-Provides: jre-headless%{?1} = %{epoch}:%{javaver}
+Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-headless%{?1} = %{epoch}:%{javaver}
+Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}
#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
Provides: /usr/bin/jjs
@@ -938,14 +938,14 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage devel provides
-Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}
-Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}
-Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}
-Provides: java-sdk%{?1} = %{epoch}:%{javaver}
-Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}
-Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}
-Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}
-Provides: java-devel%{?1} = %{epoch}:%{javaver}
+Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}
}
@@ -987,9 +987,9 @@ Requires: java-atk-wrapper%{?_isa}
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-Provides: java-accessibility = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-accessibility = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
}
@@ -3713,4 +3713,4 @@ added and applied patch604: aarch64-ifdefbugfix.patch to fix
rhbz1276959
- Initial version for Fedora 19
* Tue Sep 04 2012 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.0-b53.1
-- Initial build from java-1.7.0-openjdk RPM
+- Initial build from java-1.7.0-openjdk RPM
\ No newline at end of file
commit 8e1050fbe71f4959f65258dc82bb8d6384580eb8
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jan 29 05:53:52 2020 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c173e05..d1f7f33 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -998,7 +998,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.1
# 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
@@ -2182,6 +2182,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.242.b06-0.0.ea.1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Tue Jan 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b06-0.0.ea
- Update to aarch64-shenandoah-jdk8u242-b06 (EA)
commit f6d97d2b3f61e82b9b0f72a64d869b10e5dee142
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri Jan 10 03:23:37 2020 +0000
Update to aarch64-shenandoah-jdk8u242-b06 (EA)
diff --git a/.gitignore b/.gitignore
index acd0980..9b8b2ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -162,3 +162,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 074bac7..c173e05 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b05
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b06
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2182,6 +2182,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jan 07 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b06-0.0.ea
+- Update to aarch64-shenandoah-jdk8u242-b06 (EA)
+
* Sun Jan 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u242-b05.
- Attempt to fix Shenandoah formatting failures on S390, introduced by JDK-8232102.
diff --git a/sources b/sources
index de0de81..7037e9a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz) =
fb581bfc76b1c3818dc4987612ddb3a2dbf738fa9dbcc3bce8e6993fafadfd61a4846cb4ee053395929ef66a1bacd59d9bad580fe1044afc56ddf166641a6d3a
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b06.tar.xz) =
38901aafdda65f4fc4d152f31c1d8b694a0bb6c73ed5d3c6fa66634f4b2ffad3eccc23be1b2c16a5c1c07d63279d91403f45d66dca3d7f4a04e3142cd3960938
commit e8963d243c06502b6e4d4c68428ce0ea0ce994af
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Tue Jan 7 04:17:50 2020 +0000
Update to aarch64-shenandoah-jdk8u242-b05.
Attempt to fix Shenandoah formatting failures on S390, introduced by JDK-8232102.
Revise b05 snapshot to include JDK-8236178.
Add additional Shenandoah formatting fixes revealed by successful -Wno-error=format
run
Fix patch numbering to avoid conflicts with other versions of this spec file.
diff --git a/.gitignore b/.gitignore
index b1e8ebd..acd0980 100644
--- a/.gitignore
+++ b/.gitignore
@@ -161,3 +161,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ff5fe5c..074bac7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b04
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1112,9 +1112,9 @@ Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_pr
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
-Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
-Patch301: pr3655-toggle_system_crypto_policy.patch
+Patch401: pr3655-toggle_system_crypto_policy.patch
# JDK-8219772: EXTRA_CFLAGS not being picked up for assembler files
Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
@@ -1151,7 +1151,7 @@ Patch107: s390-8214206_fix.patch
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
# S8154313: Generated javadoc scattered all over the place
-Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
+Patch578: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8143245, PR3548: Zero build requires disabled warnings
@@ -1196,6 +1196,8 @@ Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
# and should be upstreamed to the appropriate
# trees.
#############################################
+# JDK-8236829: JDK-8232102 backport breaks s390
+Patch301: jdk8236829-s390_shenandoah.patch
#############################################
#
@@ -1504,8 +1506,8 @@ sh %{SOURCE12}
%patch203
# System security policy fixes
-%patch300
-%patch301
+%patch400
+%patch401
%patch1
%patch3
@@ -1526,7 +1528,7 @@ sh %{SOURCE12}
%patch502
%patch504
%patch512
-%patch400
+%patch578
%patch523
%patch528
%patch529
@@ -1548,6 +1550,7 @@ sh %{SOURCE12}
%endif
# Shenandoah patches
+%patch301
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -2179,6 +2182,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jan 05 2020 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u242-b05.
+- Attempt to fix Shenandoah formatting failures on S390, introduced by JDK-8232102.
+- Revise b05 snapshot to include JDK-8236178.
+- Add additional Shenandoah formatting fixes revealed by successful -Wno-error=format
run
+- Fix patch numbering to avoid conflicts with other versions of this spec file.
+
* Wed Dec 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b04-0.0.ea
- Update to aarch64-shenandoah-jdk8u242-b04.
diff --git a/jdk8236829-s390_shenandoah.patch b/jdk8236829-s390_shenandoah.patch
new file mode 100644
index 0000000..ec1e619
--- /dev/null
+++ b/jdk8236829-s390_shenandoah.patch
@@ -0,0 +1,80 @@
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+@@ -479,31 +479,37 @@
+ "of regions (" SIZE_FORMAT ") of minimum region
size (" SIZE_FORMAT "%s).",
+ byte_size_in_proper_unit(max_heap_size),
proper_unit_for_byte_size(max_heap_size),
+ MIN_NUM_REGIONS,
+- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
++ proper_unit_for_byte_size(ShenandoahMinRegionSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
+ }
+ if (ShenandoahMinRegionSize < MIN_REGION_SIZE) {
+ err_msg message("" SIZE_FORMAT "%s should not be lower than minimum
region size (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
+- byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
++ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
++ proper_unit_for_byte_size(ShenandoahMinRegionSize),
++ byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
+ }
+ if (ShenandoahMinRegionSize < MinTLABSize) {
+ err_msg message("" SIZE_FORMAT "%s should not be lower than TLAB
size size (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
+- byte_size_in_proper_unit(MinTLABSize),
proper_unit_for_byte_size(MinTLABSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
++ proper_unit_for_byte_size(ShenandoahMinRegionSize),
++ byte_size_in_proper_unit<size_t>(MinTLABSize),
proper_unit_for_byte_size(MinTLABSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize
option", message);
+ }
+ if (ShenandoahMaxRegionSize < MIN_REGION_SIZE) {
+ err_msg message("" SIZE_FORMAT "%s should not be lower than min
region size (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize),
+- byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
++ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
++ proper_unit_for_byte_size(ShenandoahMaxRegionSize),
++ byte_size_in_proper_unit(MIN_REGION_SIZE),
proper_unit_for_byte_size(MIN_REGION_SIZE));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahMaxRegionSize
option", message);
+ }
+ if (ShenandoahMinRegionSize > ShenandoahMaxRegionSize) {
+ err_msg message("Minimum (" SIZE_FORMAT "%s) should be larger than
maximum (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize),
+- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
++ proper_unit_for_byte_size(ShenandoahMinRegionSize),
++ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
++ proper_unit_for_byte_size(ShenandoahMaxRegionSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahMinRegionSize or
-XX:ShenandoahMaxRegionSize", message);
+ }
+
+@@ -521,19 +527,24 @@
+ "of regions (" SIZE_FORMAT ") of requested
size (" SIZE_FORMAT "%s).",
+ byte_size_in_proper_unit(max_heap_size),
proper_unit_for_byte_size(max_heap_size),
+ MIN_NUM_REGIONS,
+- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
++ proper_unit_for_byte_size(ShenandoahHeapRegionSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
+ }
+ if (ShenandoahHeapRegionSize < ShenandoahMinRegionSize) {
+ err_msg message("Heap region size (" SIZE_FORMAT "%s) should be
larger than min region size (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize),
+- byte_size_in_proper_unit(ShenandoahMinRegionSize),
proper_unit_for_byte_size(ShenandoahMinRegionSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
++ proper_unit_for_byte_size(ShenandoahHeapRegionSize),
++ byte_size_in_proper_unit<size_t>(ShenandoahMinRegionSize),
++ proper_unit_for_byte_size(ShenandoahMinRegionSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
+ }
+ if (ShenandoahHeapRegionSize > ShenandoahMaxRegionSize) {
+ err_msg message("Heap region size (" SIZE_FORMAT "%s) should be
lower than max region size (" SIZE_FORMAT "%s).",
+- byte_size_in_proper_unit(ShenandoahHeapRegionSize),
proper_unit_for_byte_size(ShenandoahHeapRegionSize),
+- byte_size_in_proper_unit(ShenandoahMaxRegionSize),
proper_unit_for_byte_size(ShenandoahMaxRegionSize));
++ byte_size_in_proper_unit<size_t>(ShenandoahHeapRegionSize),
++ proper_unit_for_byte_size(ShenandoahHeapRegionSize),
++ byte_size_in_proper_unit<size_t>(ShenandoahMaxRegionSize),
++ proper_unit_for_byte_size(ShenandoahMaxRegionSize));
+ vm_exit_during_initialization("Invalid -XX:ShenandoahHeapRegionSize
option", message);
+ }
+ region_size = ShenandoahHeapRegionSize;
diff --git a/sources b/sources
index 8160f67..de0de81 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz) =
58f15d20a76260eb8c85520d1c8bd5a1a54dc3331eb28995e4b3379f45054dbe9d9eba2a0f79334c754ed466f9f36458a88d636c5db09ebd4cd9c76afd69ddc9
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b05.tar.xz) =
fb581bfc76b1c3818dc4987612ddb3a2dbf738fa9dbcc3bce8e6993fafadfd61a4846cb4ee053395929ef66a1bacd59d9bad580fe1044afc56ddf166641a6d3a
commit c9d9d1d1c3f97287bcf6f6adea3a0707bc6cb8a7
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Thu Dec 19 04:05:42 2019 +0000
Update to aarch64-shenandoah-jdk8u242-b04.
diff --git a/.gitignore b/.gitignore
index bed288b..b1e8ebd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -160,3 +160,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0586e78..ff5fe5c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2179,6 +2179,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Dec 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b04-0.0.ea
+- Update to aarch64-shenandoah-jdk8u242-b04.
+
* Sat Nov 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u242-b02.
diff --git a/sources b/sources
index 9caf1a5..8160f67 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz) =
61e17cf27ff1a91346d4d79b17dc0d76c0c414a6398b0d15398f159826c0a5bf7f2b51a4739df460ccbae70675794e4eb510879bed038b981900fbe4855fa3c3
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b04.tar.xz) =
58f15d20a76260eb8c85520d1c8bd5a1a54dc3331eb28995e4b3379f45054dbe9d9eba2a0f79334c754ed466f9f36458a88d636c5db09ebd4cd9c76afd69ddc9
commit ec2600149f7c73227098ed0880b8370e3f025ccc
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Wed Dec 4 10:40:56 2019 -0500
Update to aarch64-shenandoah-jdk8u242-b02.
diff --git a/.gitignore b/.gitignore
index 245d160..bed288b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -159,3 +159,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 29723eb..0586e78 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u242-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2179,6 +2179,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Nov 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u242-b02.
+
* Mon Nov 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u242-b01.
- Switch to EA mode.
diff --git a/sources b/sources
index 9450848..9caf1a5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz) =
0107b4cde535e2c139ad4cbe06a98f750ae7fdb71f3c9c6302abec1851b3bb0e8d04249ff44b39d86c3ad9901385ffc7c423ea071acf43120b08aa0e035003db
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b02.tar.xz) =
61e17cf27ff1a91346d4d79b17dc0d76c0c414a6398b0d15398f159826c0a5bf7f2b51a4739df460ccbae70675794e4eb510879bed038b981900fbe4855fa3c3
commit 80c3dbcf3ac1596f49ddd404b3d7b2be079a72a7
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Thu Nov 14 19:11:33 2019 +0000
Update to aarch64-shenandoah-jdk8u242-b01.
Switch to EA mode.
diff --git a/.gitignore b/.gitignore
index 307786d..245d160 100644
--- a/.gitignore
+++ b/.gitignore
@@ -158,3 +158,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b07.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 534abc9..29723eb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u232-b09
+%global shenandoah_revision aarch64-shenandoah-jdk8u242-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -239,7 +239,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2179,6 +2179,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Nov 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.242.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u242-b01.
+- Switch to EA mode.
+
* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b09-0
- Update to aarch64-shenandoah-jdk8u232-b09.
- Switch to GA mode for final release.
diff --git a/sources b/sources
index aeb61a0..9450848 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz) =
12126c417378c3f7e961e3e795c58d599985a5132db617ed43138135ae7d8e67a342c0c6a4e5718a84300e7251b0bbf04e0b54525bfd72951fb73c9215f14c77
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u242-b01.tar.xz) =
0107b4cde535e2c139ad4cbe06a98f750ae7fdb71f3c9c6302abec1851b3bb0e8d04249ff44b39d86c3ad9901385ffc7c423ea071acf43120b08aa0e035003db
commit f757741e9a21db13e08c48f9b18a803e51e264a6
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Wed Oct 16 00:31:30 2019 +0100
Update to aarch64-shenandoah-jdk8u232-b09.
Switch to GA mode for final release.
Remove PR1834/RH1022017 which is now handled by JDK-8228825 upstream.
diff --git a/.gitignore b/.gitignore
index b6c137d..307786d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -157,3 +157,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b06.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b07.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cf103d3..534abc9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u232-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u232-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -239,7 +239,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1082,10 +1082,6 @@ Source101: config.sub
Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
# Restrict access to java-atk-wrapper classes
Patch3: rh1648644-java_access_bridge_privileged_security.patch
-# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
-# Not currently suitable to go upstream as it disables curves
-# for all providers unconditionally
-Patch525:
pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
# Turn on AssumeMP by default on RHEL systems
Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
@@ -1543,7 +1539,6 @@ sh %{SOURCE12}
%patch110
# RPM-only fixes
-%patch525
%patch539
%patch1000
@@ -2184,6 +2179,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b09-0
+- Update to aarch64-shenandoah-jdk8u232-b09.
+- Switch to GA mode for final release.
+- Remove PR1834/RH1022017 which is now handled by JDK-8228825 upstream.
+
* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b08-0.0.ea
- Update to aarch64-shenandoah-jdk8u232-b08.
diff --git
a/pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
b/pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
deleted file mode 100644
index 8165340..0000000
---
a/pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
b/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
---- openjdk/jdk/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
-@@ -168,20 +168,10 @@
- "contains no supported elliptic curves");
- }
- } 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 b/sources
index 0e773ff..aeb61a0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz) =
1eab69d877d78c3fde82088be617b4bfbd9d43d5fe980c07e2f7100868b914b0ccfa0a4079f5e3f7b687eed1f24ec836e0f16fbf7ab0319407a22daf4527a844
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b09.tar.xz) =
12126c417378c3f7e961e3e795c58d599985a5132db617ed43138135ae7d8e67a342c0c6a4e5718a84300e7251b0bbf04e0b54525bfd72951fb73c9215f14c77
commit aa6a3a918f363970137cf195a397d7729aa7e173
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Tue Oct 15 08:00:35 2019 +0100
Update to aarch64-shenandoah-jdk8u232-b08.
diff --git a/.gitignore b/.gitignore
index 854947d..b6c137d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -154,3 +154,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b06.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b07.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7c991ee..cf103d3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09
+%global shenandoah_revision aarch64-shenandoah-jdk8u232-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2184,6 +2184,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b08-0.0.ea
+- Update to aarch64-shenandoah-jdk8u232-b08.
+
* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.1.ea
- Update to aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.
diff --git a/sources b/sources
index 6d619a3..0e773ff 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.tar.xz)
=
d3b03d44f250a7c53f5e7ce63bd546cb655d4fcf26a0dee73c682ed671d0d03e859aaf896e665a49c39c628d600ef9926ed8613b027e35e0c6889de65558b52e
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b08.tar.xz) =
1eab69d877d78c3fde82088be617b4bfbd9d43d5fe980c07e2f7100868b914b0ccfa0a4079f5e3f7b687eed1f24ec836e0f16fbf7ab0319407a22daf4527a844
commit a6e8078fc4bbac903f69b17b72cf1c9d5d9e0a85
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Mon Oct 14 05:14:52 2019 +0100
Update to aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.
diff --git a/.gitignore b/.gitignore
index db0a726..854947d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -153,3 +153,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b03.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5197e15..7c991ee 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u232-b05
+%global shenandoah_revision
aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -2184,7 +2184,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Thu Oct 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.1.ea
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.
+
+* Thu Oct 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.0.ea
- Update to aarch64-shenandoah-jdk8u232-b05.
- Drop upstreamed patch JDK-8141570/PR3548.
- Adjust context of JDK-8143245/PR3548 to apply against upstream JDK-8141570.
diff --git a/sources b/sources
index e812665..6d619a3 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05.tar.xz) =
c3ef5aa4401fd42f905fc49c93cefaa091cad29bd5f738d90d094cc54c078cb270cd4ee63b6f60f44ce4af74cf97b7d1ae099e2483e7e2a759836f0f831b7af8
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.tar.xz)
=
d3b03d44f250a7c53f5e7ce63bd546cb655d4fcf26a0dee73c682ed671d0d03e859aaf896e665a49c39c628d600ef9926ed8613b027e35e0c6889de65558b52e
commit 32b2278b496c89cc69a84a1f30b440767fadb660
Author: Andrew John Hughes <gnu.andrew(a)redhat.com>
Date: Fri Oct 11 17:41:25 2019 +0100
Update to aarch64-shenandoah-jdk8u232-b05.
Drop upstreamed patch JDK-8141570/PR3548.
Adjust context of JDK-8143245/PR3548 to apply against upstream JDK-8141570.
diff --git a/.gitignore b/.gitignore
index 5e6e62d..db0a726 100644
--- a/.gitignore
+++ b/.gitignore
@@ -149,3 +149,7 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b02.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b03.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b04.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e6dd85a..5197e15 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u232-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u232-b05
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1158,8 +1158,6 @@ Patch502:
pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binar
Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
-# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
-Patch573:
jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
# 8143245, PR3548: Zero build requires disabled warnings
Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
@@ -1539,7 +1537,6 @@ sh %{SOURCE12}
%patch531
%patch530
%patch571
-%patch573
%patch574
%patch575
%patch577
@@ -2187,6 +2184,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Oct 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u232-b05.
+- Drop upstreamed patch JDK-8141570/PR3548.
+- Adjust context of JDK-8143245/PR3548 to apply against upstream JDK-8141570.
+
* Fri Sep 27 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b01-0.0.ea
- Update to aarch64-shenandoah-jdk8u232-b01.
- Switch to EA mode.
diff --git
a/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
b/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
deleted file mode 100644
index c9ef36b..0000000
--- a/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-# HG changeset patch
-# User coleenp
-# Date 1525713256 -3600
-# Mon May 07 18:14:16 2018 +0100
-# Node ID bcbc64dfb629c5f188bbf59b8f986ad95963ed60
-# Parent 07a1135a327362f157955d470fad5df07cc35164
-8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
-Summary: change to include atomic.inline.hpp and allocation.inline.hpp only in .cpp files
and some build fixes from Kim to build on ubuntu without devkits
-Reviewed-by: kbarrett, sgehwolf, erikj
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
---- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
-+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
-@@ -1,5 +1,5 @@
- #
--# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
- # Copyright 2007, 2008 Red Hat, Inc.
- # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- #
-@@ -25,8 +25,15 @@
-
- # Setup common to Zero (non-Shark) and Shark versions of VM
-
--# override this from the main file because some version of llvm do not like -Wundef
--WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wunused-function -Wunused-value
-+# Some versions of llvm do not like -Wundef
-+ifeq ($(USE_CLANG), true)
-+ WARNING_FLAGS += -Wno-undef
-+endif
-+# Suppress some warning flags that are normally turned on for hotspot,
-+# because some of the zero code has not been updated accordingly.
-+WARNING_FLAGS += -Wno-return-type \
-+ -Wno-format-nonliteral -Wno-format-security \
-+ -Wno-maybe-uninitialized
-
- # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
- # the compiler so as to be able to produce optimized objects
-@@ -48,5 +55,3 @@
- ifeq ($(ARCH_DATA_MODEL), 64)
- CFLAGS += -D_LP64=1
- endif
--
--OPT_CFLAGS/compactingPermGenGen.o = -O1
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
openjdk/hotspot/src/share/vm/runtime/java.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/java.cpp
-@@ -45,6 +45,7 @@
- #include "runtime/arguments.hpp"
- #include "runtime/biasedLocking.hpp"
- #include "runtime/compilationPolicy.hpp"
-+#include "runtime/deoptimization.hpp"
- #include "runtime/fprofiler.hpp"
- #include "runtime/init.hpp"
- #include "runtime/interfaceSupport.hpp"
diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
index 792b04a..298bbd3 100644
--- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -7,7 +7,6 @@
8143245, PR3548: Zero build requires disabled warnings
Reviewed-by: dholmes, coleenp
-diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
@@ -18,8 +17,8 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hots
# Copyright 2007, 2008 Red Hat, Inc.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-@@ -29,11 +29,6 @@
- ifeq ($(USE_CLANG), true)
+@@ -29,12 +29,7 @@
+ ifeq ($(JVM_VARIANT_ZEROSHARK), true)
WARNING_FLAGS += -Wno-undef
endif
-# Suppress some warning flags that are normally turned on for hotspot,
@@ -27,6 +26,8 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hots
-WARNING_FLAGS += -Wno-return-type \
- -Wno-format-nonliteral -Wno-format-security \
- -Wno-maybe-uninitialized
+-
++
# If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
# the compiler so as to be able to produce optimized objects
diff --git a/sources b/sources
index a320860..e812665 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b01.tar.xz) =
9e2e9e46ac40748574c3b7a19fac9b7b5616fe63bd4832421c54c2739da2ec2fc4d0cd284c90917286ce76a8055b3f8b21621c7c8aff0b5220ad617087b30245
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b05.tar.xz) =
c3ef5aa4401fd42f905fc49c93cefaa091cad29bd5f738d90d094cc54c078cb270cd4ee63b6f60f44ce4af74cf97b7d1ae099e2483e7e2a759836f0f831b7af8
commit 517cf68f1a12ef9ced83e97950b2c3436ecb62ce
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Sep 30 04:34:39 2019 +0100
Update to aarch64-shenandoah-jdk8u232-b01.
Switch to EA mode.
Drop JDK-8210761/RH1632174 as now upstream.
Drop JDK-8223219 as now upstream.
JDK-8226870 removed clhsdb and hdsdb from the JRE bin directory, so we should do
likewise.
Add alternatives support for these two new SDK binaries.
diff --git a/.gitignore b/.gitignore
index 4db088b..5e6e62d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -148,3 +148,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b09.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b10.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b01.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cd2b92d..e6dd85a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -218,7 +218,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u222-b10
+%global shenandoah_revision aarch64-shenandoah-jdk8u232-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -234,12 +234,12 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 3
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -410,7 +410,9 @@ alternatives \\
--install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
+ --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
--slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
+ --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\
--slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
--slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
--slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
@@ -589,8 +591,6 @@ exit 0
%dir %{_jvmdir}/%{jredir -- %{?1}}
%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
-%{_jvmdir}/%{jredir -- %{?1}}/bin/clhsdb
-%{_jvmdir}/%{jredir -- %{?1}}/bin/hsdb
%{_jvmdir}/%{jredir -- %{?1}}/bin/java
%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
@@ -1172,12 +1172,6 @@ Patch102:
jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
Patch202: jdk8035341-allow_using_system_installed_libpng.patch
# 8042159: Allow using a system-installed lcms2
Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
-# 8210761: libjsig is being compiled without optimization
-Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
-# JDK-8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector
flags,
-# overriding --with-extra-cflags
-Patch626: jdk8223219-fstack-protector-root.patch
-Patch627: jdk8223219-fstack-protector-hotspot.patch
#############################################
#
@@ -1549,9 +1543,6 @@ sh %{SOURCE12}
%patch574
%patch575
%patch577
-%patch620
-%patch626
-%patch627
%patch110
# RPM-only fixes
@@ -2196,6 +2187,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Sep 27 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.232.b01-0.0.ea
+- Update to aarch64-shenandoah-jdk8u232-b01.
+- Switch to EA mode.
+- Drop JDK-8210761/RH1632174 as now upstream.
+- Drop JDK-8223219 as now upstream.
+- JDK-8226870 removed clhsdb and hdsdb from the JRE bin directory, so we should do
likewise.
+- Add alternatives support for these two new SDK binaries.
+
* Thu Aug 15 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-3
- Switch to in-tree SunEC code, dropping NSS runtime dependencies and patches to link
against it.
diff --git a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
deleted file mode 100644
index be2650b..0000000
--- a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1537541916 -7200
-# Fri Sep 21 16:58:36 2018 +0200
-# Node ID 4010c90156d1bfeaf988dbfeb01520f2e3a66ea8
-# Parent 54afe70c50b6a6685763d00883e5173c0ba3a19d
-8210761: libjsig is being compiled without optimization
-Reviewed-by: erikj, ihse
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
---- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
-+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -51,10 +51,15 @@
- JSIG_DEBUG_CFLAGS = -g
- endif
-
-+# Optimize jsig lib at level -O3 unless it's a slowdebug build
-+ifneq ($(DEBUG_LEVEL), slowdebug)
-+ JSIG_OPT_FLAGS = $(OPT_CFLAGS)
-+endif
-+
- $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
- @echo Making signal interposition lib...
- $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
-- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
-+ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS)
$(EXTRA_CFLAGS) -o $@ $< -ldl
- ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- ifneq ($(STRIP_POLICY),no_strip)
- $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
diff --git a/jdk8223219-fstack-protector-hotspot.patch
b/jdk8223219-fstack-protector-hotspot.patch
deleted file mode 100644
index ec69944..0000000
--- a/jdk8223219-fstack-protector-hotspot.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/gcc.make
openjdk/hotspot/make/bsd/makefiles/gcc.make
---- openjdk.orig/hotspot/make/bsd/makefiles/gcc.make
-+++ openjdk/hotspot/make/bsd/makefiles/gcc.make
-@@ -190,7 +190,7 @@
- CFLAGS += -fno-exceptions
- ifeq ($(USE_CLANG),)
- CFLAGS += -pthread
-- CFLAGS += -fcheck-new -fstack-protector
-+ CFLAGS += -fcheck-new
- # version 4 and above support fvisibility=hidden (matches jni_x86.h file)
- # except 4.1.2 gives pointless warnings that can't be disabled (afaik)
- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
-diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make
-@@ -150,7 +150,7 @@
- CFLAGS += -fno-exceptions
- CFLAGS += -D_REENTRANT
- ifeq ($(USE_CLANG),)
-- CFLAGS += -fcheck-new -fstack-protector
-+ CFLAGS += -fcheck-new
- # version 4 and above support fvisibility=hidden (matches jni_x86.h file)
- # except 4.1.2 gives pointless warnings that can't be disabled (afaik)
- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
-diff --git openjdk.orig/hotspot/make/solaris/makefiles/gcc.make
openjdk/hotspot/make/solaris/makefiles/gcc.make
---- openjdk.orig/hotspot/make/solaris/makefiles/gcc.make
-+++ openjdk/hotspot/make/solaris/makefiles/gcc.make
-@@ -75,7 +75,6 @@
- CFLAGS += -fno-exceptions
- CFLAGS += -D_REENTRANT
- CFLAGS += -fcheck-new
--CFLAGS += -fstack-protector
-
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
-
diff --git a/jdk8223219-fstack-protector-root.patch
b/jdk8223219-fstack-protector-root.patch
deleted file mode 100644
index a73761c..0000000
--- a/jdk8223219-fstack-protector-root.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4
---- openjdk.orig/common/autoconf/flags.m4
-+++ openjdk/common/autoconf/flags.m4
-@@ -388,16 +388,8 @@
- CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
- CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
- elif test "x$TOOLCHAIN_TYPE" = xgcc; then
-- case $OPENJDK_TARGET_CPU_ARCH in
-- x86 )
-- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
-- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
-- ;;
-- x86_64 )
-- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
-- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
-- ;;
-- esac
-+ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
-+ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
- if test "x$OPENJDK_TARGET_OS" != xmacosx; then
- LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro"
- LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro"
-@@ -464,10 +456,6 @@
- ppc )
- # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
- ;;
-- x86 )
-- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer
-fstack-protector"
-- CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector"
-- ;;
- * )
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
- CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
diff --git a/sources b/sources
index eaffa07..a320860 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b10.tar.xz) =
8e8379260a0f896c41b79e41e51609f3363f734b47cd412d20a4fe18079f73cdeefefdfa62b22f83743d289f8f622201f6650343ee6741163c57d1c5797dcc58
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u232-b01.tar.xz) =
9e2e9e46ac40748574c3b7a19fac9b7b5616fe63bd4832421c54c2739da2ec2fc4d0cd284c90917286ce76a8055b3f8b21621c7c8aff0b5220ad617087b30245
commit b66e592e094111997f2abd7b609f3dbcdaf446a8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Aug 15 22:01:36 2019 +0100
Switch to in-tree SunEC code, dropping NSS runtime dependencies and patches to link
against it.
diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index b52d016..201a220 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -129,10 +129,3 @@ rm -vf ${LCMS_SRC}/lcms2.h
rm -vf ${LCMS_SRC}/lcms2_internal.h
rm -vf ${LCMS_SRC}/lcms2_plugin.h
fi
-
-# Get rid of in-tree SunEC until RH1656676 is implemented
-echo "Removing SunEC native code"
-mv -v openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h .
-rm -vrf openjdk/jdk/src/share/native/sun/security/ec/impl
-mkdir openjdk/jdk/src/share/native/sun/security/ec/impl
-mv -v ecc_impl.h openjdk/jdk/src/share/native/sun/security/ec/impl
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 10542c8..cd2b92d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 3
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -897,9 +897,6 @@ Requires: javapackages-filesystem
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
-# there is a need to depend on the exact version of NSS
-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
enforce it,
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
# considered as regression
@@ -1115,20 +1112,6 @@ Patch529: rh1566890-CVE_2018_3639-speculative_store_bypass.patch
Patch531: rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
-# Support for building the SunEC provider with the system NSS installation
-# PR1983: Support using the system installation of NSS with the SunEC provider
-# PR2127: SunEC provider crashes when built using system NSS
-# PR2815: Race condition in SunEC provider with system NSS
-# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
-# PR2934: SunEC provider throwing KeyException with current NSS
-# PR3479, RH1486025: ECC and NSS JVM crash
-Patch513:
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
-Patch514:
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
-Patch515:
pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
-Patch516: pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
-Patch517:
pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
-Patch518:
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
-Patch519:
pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
@@ -1285,8 +1268,6 @@ BuildRequires: libffi-devel
BuildRequires: tzdata-java >= 2015d
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
-# Build requirements for SunEC system NSS support
-BuildRequires: nss-softokn-freebl-devel >= 3.16.1
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
@@ -1557,13 +1538,6 @@ sh %{SOURCE12}
%patch502
%patch504
%patch512
-%patch513
-%patch514
-%patch515
-%patch516
-%patch517
-%patch518
-%patch519
%patch400
%patch523
%patch528
@@ -1688,8 +1662,6 @@ top_dir_abs_path=$(pwd)/%{top_level_dir_name}
mkdir -p %{buildoutputdir -- $suffix}
pushd %{buildoutputdir -- $suffix}
-NSS_LIBS="%{NSS_LIBS} -lfreebl" \
-NSS_CFLAGS="%{NSS_CFLAGS}" \
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
@@ -1701,7 +1673,6 @@ bash ../../configure \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=$debugbuild \
--enable-unlimited-crypto \
- --enable-system-nss \
--with-zlib=system \
--with-libjpeg=system \
--with-giflib=system \
@@ -2225,6 +2196,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 15 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-3
+- Switch to in-tree SunEC code, dropping NSS runtime dependencies and patches to link
against it.
+
* Thu Aug 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-2
- Drop unnecessary build requirement on gtk2-devel, as OpenJDK searches for Gtk+ at
runtime.
- Add missing build requirements for libXext-devel and libXrender-devel, previously
masked by Gtk2+ dependency.
diff --git
a/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
b/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
deleted file mode 100644
index 31c285b..0000000
---
a/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
+++ /dev/null
@@ -1,699 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1453863246 0
-# Wed Jan 27 02:54:06 2016 +0000
-# Node ID 48c15869ecd568263249af4b9a4e98d4e57f9a8f
-# Parent afd392dfaed501ac674a7cc3e37353ce300969c7
-PR1983: Support using the system installation of NSS with the SunEC provider
-Summary: Apply code changes from PR1699 & PR1742 & forward-port Makefile changes
to the new build.
-Updated 2017/07/04 to accomodate 8175110
-
-diff -r 984a4af2ed4e make/lib/SecurityLibraries.gmk
---- openjdk/jdk/make/lib/SecurityLibraries.gmk
-+++ openjdk/jdk/make/lib/SecurityLibraries.gmk
-@@ -218,8 +218,17 @@
-
- ifeq ($(ENABLE_INTREE_EC), yes)
-
-- BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \
-+ BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec
-+
-+ ifeq ($(USE_EXTERNAL_NSS), true)
-+ BUILD_LIBSUNEC_IMPL_DIR :=
-+ BUILD_LIBSUNEC_FLAGS += $(NSS_CFLAGS) -DSYSTEM_NSS -DNSS_ENABLE_ECC
-+ else
-+ BUILD_LIBSUNEC_IMPL_DIR := \
-+ $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
-+ BUILD_LIBSUNEC_FLAGS += \
- -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
-+ endif
-
- #
- # On sol-sparc...all libraries are compiled with -xregs=no%appl
-@@ -235,8 +244,8 @@
- $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \
- LIBRARY := sunec, \
- OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-- SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \
-- $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \
-+ SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec/ECC_JNI.cpp \
-+ $(BUILD_LIBSUNEC_IMPL_DIR), \
- LANG := C++, \
- OPTIMIZATION := LOW, \
- CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \
-@@ -245,11 +254,12 @@
- CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \
- $(BUILD_LIBSUNEC_FLAGS), \
- MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsunec/mapfile-vers, \
-- LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
-+ LDFLAGS := $(subst -Xlinker --as-needed,, \
-+ $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK), \
- LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX := $(LIBCXX), \
-- LDFLAGS_SUFFIX_linux := -lc, \
-- LDFLAGS_SUFFIX_solaris := -lc, \
-+ LDFLAGS_SUFFIX_linux := -lc $(NSS_LIBS), \
-+ LDFLAGS_SUFFIX_solaris := -lc $(NSS_LIBS), \
- VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
- RC_FLAGS := $(RC_FLAGS) \
- -D "JDK_FNAME=sunec.dll" \
-diff -r 984a4af2ed4e 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
-@@ -24,7 +24,7 @@
- */
-
- #include <jni.h>
--#include "impl/ecc_impl.h"
-+#include "ecc_impl.h"
-
- #define ILLEGAL_STATE_EXCEPTION "java/lang/IllegalStateException"
- #define INVALID_ALGORITHM_PARAMETER_EXCEPTION \
-@@ -89,7 +89,7 @@
- */
- JNIEXPORT jobjectArray
- JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
-- (JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed)
-+ (JNIEnv *env, jclass UNUSED(clazz), jint UNUSED(keySize), jbyteArray encodedParams,
jbyteArray seed)
- {
- ECPrivateKey *privKey = NULL; // contains both public and private values
- ECParams *ecparams = NULL;
-@@ -190,7 +190,7 @@
- */
- JNIEXPORT jbyteArray
- JNICALL Java_sun_security_ec_ECDSASignature_signDigest
-- (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray
encodedParams, jbyteArray seed, jint timing)
-+ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray digest, jbyteArray privateKey,
jbyteArray encodedParams, jbyteArray seed, jint timing)
- {
- jbyte* pDigestBuffer = NULL;
- jint jDigestLength = env->GetArrayLength(digest);
-@@ -299,7 +299,7 @@
- */
- JNIEXPORT jboolean
- JNICALL Java_sun_security_ec_ECDSASignature_verifySignedDigest
-- (JNIEnv *env, jclass clazz, jbyteArray signedDigest, jbyteArray digest, jbyteArray
publicKey, jbyteArray encodedParams)
-+ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray signedDigest, jbyteArray digest,
jbyteArray publicKey, jbyteArray encodedParams)
- {
- jboolean isValid = false;
-
-@@ -384,7 +384,7 @@
- */
- JNIEXPORT jbyteArray
- JNICALL Java_sun_security_ec_ECDHKeyAgreement_deriveKey
-- (JNIEnv *env, jclass clazz, jbyteArray privateKey, jbyteArray publicKey, jbyteArray
encodedParams)
-+ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray privateKey, jbyteArray publicKey,
jbyteArray encodedParams)
- {
- jbyteArray jSecret = NULL;
- ECParams *ecparams = NULL;
-diff -r 984a4af2ed4e src/share/native/sun/security/ec/ecc_impl.h
---- /dev/null
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
-@@ -0,0 +1,298 @@
-+/*
-+ * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
-+ * Use is subject to license terms.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library 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
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this library; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin Street, 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.
-+ */
-+
-+/* *********************************************************************
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Netscape Communications Corporation.
-+ * Portions created by the Initial Developer are Copyright (C) 1994-2000
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
-+ * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
-+ *
-+ * Last Modified Date from the Original Code: May 2017
-+ *********************************************************************** */
-+
-+#ifndef _ECC_IMPL_H
-+#define _ECC_IMPL_H
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#include <sys/types.h>
-+
-+#ifdef SYSTEM_NSS
-+#include <secitem.h>
-+#include <secerr.h>
-+#include <keythi.h>
-+#ifdef LEGACY_NSS
-+#include <softoken.h>
-+#else
-+#include <blapi.h>
-+#endif
-+#else
-+#include "ecl-exp.h"
-+#endif
-+
-+/*
-+ * Multi-platform definitions
-+ */
-+#ifdef __linux__
-+#define B_FALSE FALSE
-+#define B_TRUE TRUE
-+typedef unsigned char uint8_t;
-+typedef unsigned long ulong_t;
-+typedef enum { B_FALSE, B_TRUE } boolean_t;
-+#endif /* __linux__ */
-+
-+#ifdef _ALLBSD_SOURCE
-+#include <stdint.h>
-+#define B_FALSE FALSE
-+#define B_TRUE TRUE
-+typedef unsigned long ulong_t;
-+typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-+#endif /* _ALLBSD_SOURCE */
-+
-+#ifdef AIX
-+#define B_FALSE FALSE
-+#define B_TRUE TRUE
-+typedef unsigned char uint8_t;
-+typedef unsigned long ulong_t;
-+#endif /* AIX */
-+
-+#ifdef _WIN32
-+typedef unsigned char uint8_t;
-+typedef unsigned long ulong_t;
-+typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-+#define strdup _strdup /* Replace POSIX name with ISO C++ name */
-+#endif /* _WIN32 */
-+
-+#ifndef _KERNEL
-+#include <stdlib.h>
-+#endif /* _KERNEL */
-+
-+#define EC_MAX_DIGEST_LEN 1024 /* max digest that can be signed */
-+#define EC_MAX_POINT_LEN 145 /* max len of DER encoded Q */
-+#define EC_MAX_VALUE_LEN 72 /* max len of ANSI X9.62 private value d */
-+#define EC_MAX_SIG_LEN 144 /* max signature len for supported curves */
-+#define EC_MIN_KEY_LEN 112 /* min key length in bits */
-+#define EC_MAX_KEY_LEN 571 /* max key length in bits */
-+#define EC_MAX_OID_LEN 10 /* max length of OID buffer */
-+
-+/*
-+ * Various structures and definitions from NSS are here.
-+ */
-+
-+#ifndef SYSTEM_NSS
-+#ifdef _KERNEL
-+#define PORT_ArenaAlloc(a, n, f) kmem_alloc((n), (f))
-+#define PORT_ArenaZAlloc(a, n, f) kmem_zalloc((n), (f))
-+#define PORT_ArenaGrow(a, b, c, d) NULL
-+#define PORT_ZAlloc(n, f) kmem_zalloc((n), (f))
-+#define PORT_Alloc(n, f) kmem_alloc((n), (f))
-+#else
-+#define PORT_ArenaAlloc(a, n, f) malloc((n))
-+#define PORT_ArenaZAlloc(a, n, f) calloc(1, (n))
-+#define PORT_ArenaGrow(a, b, c, d) NULL
-+#define PORT_ZAlloc(n, f) calloc(1, (n))
-+#define PORT_Alloc(n, f) malloc((n))
-+#endif
-+
-+#define PORT_NewArena(b) (char *)12345
-+#define PORT_ArenaMark(a) NULL
-+#define PORT_ArenaUnmark(a, b)
-+#define PORT_ArenaRelease(a, m)
-+#define PORT_FreeArena(a, b)
-+#define PORT_Strlen(s) strlen((s))
-+#define PORT_SetError(e)
-+
-+#define PRBool boolean_t
-+#define PR_TRUE B_TRUE
-+#define PR_FALSE B_FALSE
-+
-+#ifdef _KERNEL
-+#define PORT_Assert ASSERT
-+#define PORT_Memcpy(t, f, l) bcopy((f), (t), (l))
-+#else
-+#define PORT_Assert assert
-+#define PORT_Memcpy(t, f, l) memcpy((t), (f), (l))
-+#endif
-+
-+#endif
-+
-+#define CHECK_OK(func) if (func == NULL) goto cleanup
-+#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
-+
-+#ifndef SYSTEM_NSS
-+typedef enum {
-+ siBuffer = 0,
-+ siClearDataBuffer = 1,
-+ siCipherDataBuffer = 2,
-+ siDERCertBuffer = 3,
-+ siEncodedCertBuffer = 4,
-+ siDERNameBuffer = 5,
-+ siEncodedNameBuffer = 6,
-+ siAsciiNameString = 7,
-+ siAsciiString = 8,
-+ siDEROID = 9,
-+ siUnsignedInteger = 10,
-+ siUTCTime = 11,
-+ siGeneralizedTime = 12
-+} SECItemType;
-+
-+typedef struct SECItemStr SECItem;
-+
-+struct SECItemStr {
-+ SECItemType type;
-+ unsigned char *data;
-+ unsigned int len;
-+};
-+
-+typedef SECItem SECKEYECParams;
-+
-+typedef enum { ec_params_explicit,
-+ ec_params_named
-+} ECParamsType;
-+
-+typedef enum { ec_field_GFp = 1,
-+ ec_field_GF2m
-+} ECFieldType;
-+
-+struct ECFieldIDStr {
-+ int size; /* field size in bits */
-+ ECFieldType type;
-+ union {
-+ SECItem prime; /* prime p for (GFp) */
-+ SECItem poly; /* irreducible binary polynomial for (GF2m) */
-+ } u;
-+ int k1; /* first coefficient of pentanomial or
-+ * the only coefficient of trinomial
-+ */
-+ int k2; /* two remaining coefficients of pentanomial */
-+ int k3;
-+};
-+typedef struct ECFieldIDStr ECFieldID;
-+
-+struct ECCurveStr {
-+ SECItem a; /* contains octet stream encoding of
-+ * field element (X9.62 section 4.3.3)
-+ */
-+ SECItem b;
-+ SECItem seed;
-+};
-+typedef struct ECCurveStr ECCurve;
-+
-+typedef void PRArenaPool;
-+
-+struct ECParamsStr {
-+ PRArenaPool * arena;
-+ ECParamsType type;
-+ ECFieldID fieldID;
-+ ECCurve curve;
-+ SECItem base;
-+ SECItem order;
-+ int cofactor;
-+ SECItem DEREncoding;
-+ ECCurveName name;
-+ SECItem curveOID;
-+};
-+typedef struct ECParamsStr ECParams;
-+
-+struct ECPublicKeyStr {
-+ ECParams ecParams;
-+ SECItem publicValue; /* elliptic curve point encoded as
-+ * octet stream.
-+ */
-+};
-+typedef struct ECPublicKeyStr ECPublicKey;
-+
-+struct ECPrivateKeyStr {
-+ ECParams ecParams;
-+ SECItem publicValue; /* encoded ec point */
-+ SECItem privateValue; /* private big integer */
-+ SECItem version; /* As per SEC 1, Appendix C, Section C.4 */
-+};
-+typedef struct ECPrivateKeyStr ECPrivateKey;
-+
-+typedef enum _SECStatus {
-+ SECBufferTooSmall = -3,
-+ SECWouldBlock = -2,
-+ SECFailure = -1,
-+ SECSuccess = 0
-+} SECStatus;
-+#endif
-+
-+#ifdef _KERNEL
-+#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))
-+#else
-+/*
-+ This function is no longer required because the random bytes are now
-+ supplied by the caller. Force a failure.
-+*/
-+#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
-+#endif
-+#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
-+#define MP_TO_SEC_ERROR(err)
-+
-+#define SECITEM_TO_MPINT(it, mp) \
-+ CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
-+
-+extern int ecc_knzero_random_generator(uint8_t *, size_t);
-+extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);
-+
-+#ifdef SYSTEM_NSS
-+#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
-+#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
-+#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigestWithSeed(a,b,c,d,e)
-+#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
-+#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
-+#else
-+extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);
-+
-+extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);
-+extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,
-+ int);
-+extern void SECITEM_FreeItem(SECItem *, boolean_t);
-+
-+/* This function has been modified to accept an array of random bytes */
-+extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,
-+ const unsigned char* random, int randomlen, int);
-+/* This function has been modified to accept an array of random bytes */
-+extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
-+ const unsigned char* random, int randomlen, int, int timing);
-+extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
-+ const SECItem *, int);
-+extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
-+ SECItem *, int);
-+#endif
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* _ECC_IMPL_H */
-diff -r 984a4af2ed4e src/share/native/sun/security/ec/impl/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h
-+++ /dev/null
-@@ -1,271 +0,0 @@
--/*
-- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
-- * Use is subject to license terms.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2.1 of the License, or (at your option) any later version.
-- *
-- * This library 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
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public License
-- * along with this library; if not, write to the Free Software Foundation,
-- * Inc., 51 Franklin Street, 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.
-- */
--
--/* *********************************************************************
-- *
-- * The Original Code is the Netscape security libraries.
-- *
-- * The Initial Developer of the Original Code is
-- * Netscape Communications Corporation.
-- * Portions created by the Initial Developer are Copyright (C) 1994-2000
-- * the Initial Developer. All Rights Reserved.
-- *
-- * Contributor(s):
-- * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
-- * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
-- *
-- * Last Modified Date from the Original Code: May 2017
-- *********************************************************************** */
--
--#ifndef _ECC_IMPL_H
--#define _ECC_IMPL_H
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--#include <sys/types.h>
--#include "ecl-exp.h"
--
--/*
-- * Multi-platform definitions
-- */
--#ifdef __linux__
--#define B_FALSE FALSE
--#define B_TRUE TRUE
--typedef unsigned char uint8_t;
--typedef unsigned long ulong_t;
--typedef enum { B_FALSE, B_TRUE } boolean_t;
--#endif /* __linux__ */
--
--#ifdef _ALLBSD_SOURCE
--#include <stdint.h>
--#define B_FALSE FALSE
--#define B_TRUE TRUE
--typedef unsigned long ulong_t;
--typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
--#endif /* _ALLBSD_SOURCE */
--
--#ifdef AIX
--#define B_FALSE FALSE
--#define B_TRUE TRUE
--typedef unsigned char uint8_t;
--typedef unsigned long ulong_t;
--#endif /* AIX */
--
--#ifdef _WIN32
--typedef unsigned char uint8_t;
--typedef unsigned long ulong_t;
--typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
--#define strdup _strdup /* Replace POSIX name with ISO C++ name */
--#endif /* _WIN32 */
--
--#ifndef _KERNEL
--#include <stdlib.h>
--#endif /* _KERNEL */
--
--#define EC_MAX_DIGEST_LEN 1024 /* max digest that can be signed */
--#define EC_MAX_POINT_LEN 145 /* max len of DER encoded Q */
--#define EC_MAX_VALUE_LEN 72 /* max len of ANSI X9.62 private value d */
--#define EC_MAX_SIG_LEN 144 /* max signature len for supported curves */
--#define EC_MIN_KEY_LEN 112 /* min key length in bits */
--#define EC_MAX_KEY_LEN 571 /* max key length in bits */
--#define EC_MAX_OID_LEN 10 /* max length of OID buffer */
--
--/*
-- * Various structures and definitions from NSS are here.
-- */
--
--#ifdef _KERNEL
--#define PORT_ArenaAlloc(a, n, f) kmem_alloc((n), (f))
--#define PORT_ArenaZAlloc(a, n, f) kmem_zalloc((n), (f))
--#define PORT_ArenaGrow(a, b, c, d) NULL
--#define PORT_ZAlloc(n, f) kmem_zalloc((n), (f))
--#define PORT_Alloc(n, f) kmem_alloc((n), (f))
--#else
--#define PORT_ArenaAlloc(a, n, f) malloc((n))
--#define PORT_ArenaZAlloc(a, n, f) calloc(1, (n))
--#define PORT_ArenaGrow(a, b, c, d) NULL
--#define PORT_ZAlloc(n, f) calloc(1, (n))
--#define PORT_Alloc(n, f) malloc((n))
--#endif
--
--#define PORT_NewArena(b) (char *)12345
--#define PORT_ArenaMark(a) NULL
--#define PORT_ArenaUnmark(a, b)
--#define PORT_ArenaRelease(a, m)
--#define PORT_FreeArena(a, b)
--#define PORT_Strlen(s) strlen((s))
--#define PORT_SetError(e)
--
--#define PRBool boolean_t
--#define PR_TRUE B_TRUE
--#define PR_FALSE B_FALSE
--
--#ifdef _KERNEL
--#define PORT_Assert ASSERT
--#define PORT_Memcpy(t, f, l) bcopy((f), (t), (l))
--#else
--#define PORT_Assert assert
--#define PORT_Memcpy(t, f, l) memcpy((t), (f), (l))
--#endif
--
--#define CHECK_OK(func) if (func == NULL) goto cleanup
--#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
--
--typedef enum {
-- siBuffer = 0,
-- siClearDataBuffer = 1,
-- siCipherDataBuffer = 2,
-- siDERCertBuffer = 3,
-- siEncodedCertBuffer = 4,
-- siDERNameBuffer = 5,
-- siEncodedNameBuffer = 6,
-- siAsciiNameString = 7,
-- siAsciiString = 8,
-- siDEROID = 9,
-- siUnsignedInteger = 10,
-- siUTCTime = 11,
-- siGeneralizedTime = 12
--} SECItemType;
--
--typedef struct SECItemStr SECItem;
--
--struct SECItemStr {
-- SECItemType type;
-- unsigned char *data;
-- unsigned int len;
--};
--
--typedef SECItem SECKEYECParams;
--
--typedef enum { ec_params_explicit,
-- ec_params_named
--} ECParamsType;
--
--typedef enum { ec_field_GFp = 1,
-- ec_field_GF2m
--} ECFieldType;
--
--struct ECFieldIDStr {
-- int size; /* field size in bits */
-- ECFieldType type;
-- union {
-- SECItem prime; /* prime p for (GFp) */
-- SECItem poly; /* irreducible binary polynomial for (GF2m) */
-- } u;
-- int k1; /* first coefficient of pentanomial or
-- * the only coefficient of trinomial
-- */
-- int k2; /* two remaining coefficients of pentanomial */
-- int k3;
--};
--typedef struct ECFieldIDStr ECFieldID;
--
--struct ECCurveStr {
-- SECItem a; /* contains octet stream encoding of
-- * field element (X9.62 section 4.3.3)
-- */
-- SECItem b;
-- SECItem seed;
--};
--typedef struct ECCurveStr ECCurve;
--
--typedef void PRArenaPool;
--
--struct ECParamsStr {
-- PRArenaPool * arena;
-- ECParamsType type;
-- ECFieldID fieldID;
-- ECCurve curve;
-- SECItem base;
-- SECItem order;
-- int cofactor;
-- SECItem DEREncoding;
-- ECCurveName name;
-- SECItem curveOID;
--};
--typedef struct ECParamsStr ECParams;
--
--struct ECPublicKeyStr {
-- ECParams ecParams;
-- SECItem publicValue; /* elliptic curve point encoded as
-- * octet stream.
-- */
--};
--typedef struct ECPublicKeyStr ECPublicKey;
--
--struct ECPrivateKeyStr {
-- ECParams ecParams;
-- SECItem publicValue; /* encoded ec point */
-- SECItem privateValue; /* private big integer */
-- SECItem version; /* As per SEC 1, Appendix C, Section C.4 */
--};
--typedef struct ECPrivateKeyStr ECPrivateKey;
--
--typedef enum _SECStatus {
-- SECBufferTooSmall = -3,
-- SECWouldBlock = -2,
-- SECFailure = -1,
-- SECSuccess = 0
--} SECStatus;
--
--#ifdef _KERNEL
--#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))
--#else
--/*
-- This function is no longer required because the random bytes are now
-- supplied by the caller. Force a failure.
--*/
--#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
--#endif
--#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
--#define MP_TO_SEC_ERROR(err)
--
--#define SECITEM_TO_MPINT(it, mp) \
-- CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
--
--extern int ecc_knzero_random_generator(uint8_t *, size_t);
--extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);
--
--extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);
--extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);
--extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,
-- int);
--extern void SECITEM_FreeItem(SECItem *, boolean_t);
--/* This function has been modified to accept an array of random bytes */
--extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,
-- const unsigned char* random, int randomlen, int);
--/* This function has been modified to accept an array of random bytes */
--extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
-- const unsigned char* random, int randomlen, int, int timing);
--extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
-- const SECItem *, int);
--extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
-- SECItem *, int);
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif /* _ECC_IMPL_H */
-diff -r 984a4af2ed4e src/solaris/javavm/export/jni_md.h
---- openjdk/jdk/src/solaris/javavm/export/jni_md.h
-+++ openjdk/jdk/src/solaris/javavm/export/jni_md.h
-@@ -36,6 +36,11 @@
- #define JNIEXPORT
- #define JNIIMPORT
- #endif
-+#if (defined(__GNUC__)) || __has_attribute(unused)
-+ #define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
-+#else
-+ #define UNUSED(x) UNUSED_ ## x
-+#endif
-
- #define JNICALL
-
diff --git
a/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
b/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
deleted file mode 100644
index 100472b..0000000
---
a/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1453863007 0
-# Wed Jan 27 02:50:07 2016 +0000
-# Node ID f0635543beb309c4da1bb88c906a76ee4b75e16d
-# Parent 4a5a0d4e1ae0feec2f47d17be380d6fcd5eff126
-PR1983: Support using the system installation of NSS with the SunEC provider
-Summary: Add new configure option --enable-system-nss
-
-diff -r 92af9369869f common/autoconf/jdk-options.m4
---- openjdk/common/autoconf/jdk-options.m4 Thu Jan 21 22:17:02 2016 +0000
-+++ openjdk/common/autoconf/jdk-options.m4 Wed Jan 27 05:32:12 2016 +0000
-@@ -414,9 +414,10 @@
- #
- AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
- [
-- AC_MSG_CHECKING([if elliptic curve crypto implementation is present])
-+ AC_REQUIRE([LIB_SETUP_MISC_LIBS])
-+ AC_MSG_CHECKING([if the elliptic curve crypto implementation is present])
-
-- if test -d "${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
-+ if test "x${system_nss}" = "xyes" -o -d
"${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
- ENABLE_INTREE_EC=yes
- AC_MSG_RESULT([yes])
- else
-diff -r 92af9369869f common/autoconf/libraries.m4
---- openjdk/common/autoconf/libraries.m4 Thu Jan 21 22:17:02 2016 +0000
-+++ openjdk/common/autoconf/libraries.m4 Wed Jan 27 05:32:12 2016 +0000
-@@ -731,6 +731,47 @@
- LIBDL="$LIBS"
- AC_SUBST(LIBDL)
- LIBS="$save_LIBS"
-+
-+ ###############################################################################
-+ #
-+ # Check for the NSS libraries
-+ #
-+
-+ AC_MSG_CHECKING([whether to build the Sun EC provider against the system NSS
libraries])
-+
-+ # default is bundled
-+ DEFAULT_SYSTEM_NSS=no
-+
-+ AC_ARG_ENABLE([system-nss], [AS_HELP_STRING([--enable-system-nss],
-+ [build the SunEC provider using the system NSS libraries
@<:@disabled@:>@])],
-+ [
-+ case "${enableval}" in
-+ yes)
-+ system_nss=yes
-+ ;;
-+ *)
-+ system_nss=no
-+ ;;
-+ esac
-+ ],
-+ [
-+ system_nss=${DEFAULT_SYSTEM_NSS}
-+ ])
-+ AC_MSG_RESULT([$system_nss])
-+
-+ if test "x${system_nss}" = "xyes"; then
-+ PKG_CHECK_MODULES(NSS, nss-softokn >= 3.16.1, [NSS_SOFTOKN_FOUND=yes],
[NSS_SOFTOKN_FOUND=no])
-+ if test "x${NSS_SOFTOKN_FOUND}" = "xyes"; then
-+ NSS_LIBS="$NSS_LIBS -lfreebl";
-+ USE_EXTERNAL_NSS=true
-+ else
-+ AC_MSG_ERROR([--enable-system-nss specified, but NSS not found.])
-+ fi
-+ else
-+ USE_EXTERNAL_NSS=false
-+ fi
-+ AC_SUBST(USE_EXTERNAL_NSS)
-+
- ])
-
- AC_DEFUN_ONCE([LIB_SETUP_STATIC_LINK_LIBSTDCPP],
-diff -r 92af9369869f common/autoconf/spec.gmk.in
---- openjdk/common/autoconf/spec.gmk.in Thu Jan 21 22:17:02 2016 +0000
-+++ openjdk/common/autoconf/spec.gmk.in Wed Jan 27 05:32:12 2016 +0000
-@@ -647,6 +647,9 @@
- # Read-only single-machine data
- INSTALL_SYSCONFDIR=@sysconfdir@
-
-+USE_EXTERNAL_NSS:=@USE_EXTERNAL_NSS@
-+NSS_LIBS:=@NSS_LIBS@
-+NSS_CFLAGS:=@NSS_CFLAGS@
-
- ####################################################
- #
diff --git
a/pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
b/pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
deleted file mode 100644
index b08822a..0000000
---
a/pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1453866306 0
-# Wed Jan 27 03:45:06 2016 +0000
-# Node ID 0ff7720931e8dbf7de25720bdc93b18527ab89e8
-# Parent 48c15869ecd568263249af4b9a4e98d4e57f9a8f
-PR2127: SunEC provider crashes when built using system NSS
-Summary: Use NSS memory management functions
-
-diff -r 48c15869ecd5 -r 0ff7720931e8 src/share/native/sun/security/ec/ECC_JNI.cpp
---- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 02:54:06 2016
+0000
-+++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 03:45:06 2016
+0000
-@@ -32,6 +32,13 @@
- #define INVALID_PARAMETER_EXCEPTION \
- "java/security/InvalidParameterException"
- #define KEY_EXCEPTION "java/security/KeyException"
-+#define INTERNAL_ERROR "java/lang/InternalError"
-+
-+#ifdef SYSTEM_NSS
-+#define SYSTEM_UNUSED(x) UNUSED(x)
-+#else
-+#define SYSTEM_UNUSED(x) x
-+#endif
-
- extern "C" {
-
-@@ -49,8 +56,13 @@
- /*
- * Deep free of the ECParams struct
- */
--void FreeECParams(ECParams *ecparams, jboolean freeStruct)
-+void FreeECParams(ECParams *ecparams, jboolean SYSTEM_UNUSED(freeStruct))
- {
-+#ifdef SYSTEM_NSS
-+ // Needs to be freed using the matching method to the one
-+ // that allocated it. PR_TRUE means the memory is zeroed.
-+ PORT_FreeArena(ecparams->arena, PR_TRUE);
-+#else
- // Use B_FALSE to free the SECItem->data element, but not the SECItem itself
- // Use B_TRUE to free both
-
-@@ -64,6 +76,7 @@
- SECITEM_FreeItem(&ecparams->curveOID, B_FALSE);
- if (freeStruct)
- free(ecparams);
-+#endif
- }
-
- jbyteArray getEncodedBytes(JNIEnv *env, SECItem *hSECItem)
-@@ -108,6 +121,13 @@
- goto cleanup;
- }
-
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Init() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ goto cleanup;
-+ }
-+#endif
-+
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -163,16 +183,26 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Shutdown() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
- }
- if (ecparams) {
- FreeECParams(ecparams, true);
- }
- if (privKey) {
- FreeECParams(&privKey->ecParams, false);
-+#ifndef SYSTEM_NSS
-+ // The entire ECPrivateKey is allocated in the arena
-+ // when using system NSS, so only the in-tree version
-+ // needs to clear these manually.
- SECITEM_FreeItem(&privKey->version, B_FALSE);
- SECITEM_FreeItem(&privKey->privateValue, B_FALSE);
- SECITEM_FreeItem(&privKey->publicValue, B_FALSE);
- free(privKey);
-+#endif
- }
-
- if (pSeedBuffer) {
-@@ -223,6 +253,13 @@
- goto cleanup;
- }
-
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Init() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ goto cleanup;
-+ }
-+#endif
-+
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -270,6 +307,11 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Shutdown() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
- }
- if (privKey.privateValue.data) {
- env->ReleaseByteArrayElements(privateKey,
-@@ -336,6 +378,13 @@
- goto cleanup;
- }
-
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Init() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ goto cleanup;
-+ }
-+#endif
-+
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -356,9 +405,15 @@
-
- cleanup:
- {
-- if (params_item.data)
-+ if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Shutdown() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
-+ }
-
- if (pubKey.publicValue.data)
- env->ReleaseByteArrayElements(publicKey,
-@@ -419,6 +474,13 @@
- goto cleanup;
- }
-
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Init() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ goto cleanup;
-+ }
-+#endif
-+
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -460,9 +522,15 @@
- env->ReleaseByteArrayElements(publicKey,
- (jbyte *) publicValue_item.data, JNI_ABORT);
-
-- if (params_item.data)
-+ if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Shutdown() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
-+ }
-
- if (ecparams)
- FreeECParams(ecparams, true);
diff --git a/pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
b/pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
deleted file mode 100644
index db14f10..0000000
--- a/pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1453867347 0
-# Wed Jan 27 04:02:27 2016 +0000
-# Node ID 26e2e029ee256e9815fdc324831a03d8582255e1
-# Parent 0ff7720931e8dbf7de25720bdc93b18527ab89e8
-PR2815: Race condition in SunEC provider with system NSS
-Summary: Perform initialisation and shutdown only when library is loaded or SunEC is
finalized respectively
-
-diff -r 0ff7720931e8 -r 26e2e029ee25 make/mapfiles/libsunec/mapfile-vers
---- openjdk/jdk/make/mapfiles/libsunec/mapfile-vers Wed Jan 27 03:45:06 2016 +0000
-+++ openjdk/jdk/make/mapfiles/libsunec/mapfile-vers Wed Jan 27 04:02:27 2016 +0000
-@@ -31,6 +31,8 @@
- Java_sun_security_ec_ECDSASignature_signDigest;
- 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 -r 0ff7720931e8 -r 26e2e029ee25 src/share/classes/sun/security/ec/SunEC.java
---- openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java Wed Jan 27 03:45:06 2016
+0000
-+++ openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java Wed Jan 27 04:02:27 2016
+0000
-@@ -58,6 +58,7 @@
- AccessController.doPrivileged(new PrivilegedAction<Void>() {
- public Void run() {
- System.loadLibrary("sunec"); // check for native library
-+ initialize();
- return null;
- }
- });
-@@ -81,4 +82,22 @@
- }
- }
-
-+ /**
-+ * 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 -r 0ff7720931e8 -r 26e2e029ee25 src/share/native/sun/security/ec/ECC_JNI.cpp
---- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 03:45:06 2016
+0000
-+++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 04:02:27 2016
+0000
-@@ -121,13 +121,6 @@
- goto cleanup;
- }
-
--#ifdef SYSTEM_NSS
-- if (SECOID_Init() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- goto cleanup;
-- }
--#endif
--
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -183,11 +176,6 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
--#ifdef SYSTEM_NSS
-- if (SECOID_Shutdown() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- }
--#endif
- }
- if (ecparams) {
- FreeECParams(ecparams, true);
-@@ -253,13 +241,6 @@
- goto cleanup;
- }
-
--#ifdef SYSTEM_NSS
-- if (SECOID_Init() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- goto cleanup;
-- }
--#endif
--
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -307,11 +288,6 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
--#ifdef SYSTEM_NSS
-- if (SECOID_Shutdown() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- }
--#endif
- }
- if (privKey.privateValue.data) {
- env->ReleaseByteArrayElements(privateKey,
-@@ -378,13 +354,6 @@
- goto cleanup;
- }
-
--#ifdef SYSTEM_NSS
-- if (SECOID_Init() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- goto cleanup;
-- }
--#endif
--
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -408,11 +377,6 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
--#ifdef SYSTEM_NSS
-- if (SECOID_Shutdown() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- }
--#endif
- }
-
- if (pubKey.publicValue.data)
-@@ -474,13 +438,6 @@
- goto cleanup;
- }
-
--#ifdef SYSTEM_NSS
-- if (SECOID_Init() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- goto cleanup;
-- }
--#endif
--
- // Fill a new ECParams using the supplied OID
- if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
- /* bad curve OID */
-@@ -525,11 +482,6 @@
- if (params_item.data) {
- env->ReleaseByteArrayElements(encodedParams,
- (jbyte *) params_item.data, JNI_ABORT);
--#ifdef SYSTEM_NSS
-- if (SECOID_Shutdown() != SECSuccess) {
-- ThrowException(env, INTERNAL_ERROR);
-- }
--#endif
- }
-
- if (ecparams)
-@@ -539,4 +491,26 @@
- return jSecret;
- }
-
-+JNIEXPORT void
-+JNICALL Java_sun_security_ec_SunEC_initialize
-+ (JNIEnv *env, jclass UNUSED(clazz))
-+{
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Init() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
-+}
-+
-+JNIEXPORT void
-+JNICALL Java_sun_security_ec_SunEC_cleanup
-+ (JNIEnv *env, jclass UNUSED(clazz))
-+{
-+#ifdef SYSTEM_NSS
-+ if (SECOID_Shutdown() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
-+#endif
-+}
-+
- } /* extern "C" */
diff --git
a/pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
b/pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
deleted file mode 100644
index ffdefb0..0000000
---
a/pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1459313680 -3600
-# Wed Mar 30 05:54:40 2016 +0100
-# Node ID 9dc0eca5fa8926e6a952fa4f1931e78aa1f52443
-# Parent 8957aff589013e671f02d38023d5ff245ef27e87
-PR2899: Don't use WithSeed versions of NSS functions as they don't fully process
the seed
-Contributed-by: Alex Kashchenko <akashche(a)redhat.com>
-Updated 2017/07/04 to accomodate 8175110 by Andrew Hughes <gnu.andrew(a)redhat.com>
-
-diff -r e5fdbb82bd49 src/share/native/sun/security/ec/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
-@@ -267,8 +267,8 @@
-
- #ifdef SYSTEM_NSS
- #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
--#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
--#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigestWithSeed(a,b,c,d,e)
-+#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
-+#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigest(a,b,c)
- #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
- #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
- #else
diff --git
a/pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
b/pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
deleted file mode 100644
index 83385da..0000000
---
a/pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1461349033 -3600
-# Fri Apr 22 19:17:13 2016 +0100
-# Node ID dab76de2f91cf1791c03560a3f45aaa69f8351fd
-# Parent 3fa42705acab6d69b6141f47ebba4f85739a338c
-PR2934: SunEC provider throwing KeyException with current NSS
-Summary: Initialise the random number generator and feed the seed to it.
-Updated 2017/07/04 to accomodate 8175110
-
-diff -r 8aed1e903a4c 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
-@@ -134,8 +134,17 @@
- env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);
-
- // Generate the new keypair (using the supplied seed)
-+#ifdef SYSTEM_NSS
-+ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)
-+ != SECSuccess) {
-+ ThrowException(env, KEY_EXCEPTION);
-+ goto cleanup;
-+ }
-+ if (EC_NewKey(ecparams, &privKey) != SECSuccess) {
-+#else
- if (EC_NewKey(ecparams, &privKey, (unsigned char *) pSeedBuffer,
- jSeedLength, 0) != SECSuccess) {
-+#endif
- ThrowException(env, KEY_EXCEPTION);
- goto cleanup;
- }
-@@ -267,8 +276,18 @@
- env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);
-
- // Sign the digest (using the supplied seed)
-+#ifdef SYSTEM_NSS
-+ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)
-+ != SECSuccess) {
-+ ThrowException(env, KEY_EXCEPTION);
-+ goto cleanup;
-+ }
-+ if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item)
-+ != SECSuccess) {
-+#else
- if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item,
- (unsigned char *) pSeedBuffer, jSeedLength, 0, timing) != SECSuccess) {
-+#endif
- ThrowException(env, KEY_EXCEPTION);
- goto cleanup;
- }
-@@ -499,6 +518,9 @@
- if (SECOID_Init() != SECSuccess) {
- ThrowException(env, INTERNAL_ERROR);
- }
-+ if (RNG_RNGInit() != SECSuccess) {
-+ ThrowException(env, INTERNAL_ERROR);
-+ }
- #endif
- }
-
-@@ -507,6 +529,7 @@
- (JNIEnv *env, jclass UNUSED(clazz))
- {
- #ifdef SYSTEM_NSS
-+ RNG_RNGShutdown();
- if (SECOID_Shutdown() != SECSuccess) {
- ThrowException(env, INTERNAL_ERROR);
- }
-diff -r 8aed1e903a4c src/share/native/sun/security/ec/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
-@@ -254,8 +254,10 @@
- This function is no longer required because the random bytes are now
- supplied by the caller. Force a failure.
- */
-+#ifndef SYSTEM_NSS
- #define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
- #endif
-+#endif
- #define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
- #define MP_TO_SEC_ERROR(err)
-
-@@ -267,8 +269,6 @@
-
- #ifdef SYSTEM_NSS
- #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
--#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
--#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigest(a,b,c)
- #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
- #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
- #else
diff --git
a/pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
b/pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
deleted file mode 100644
index 14c693b..0000000
---
a/pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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
- }
-
commit d7a3fcfdc378e33ce21fda69dd6eb0633d476132
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Aug 13 14:34:17 2019 +0100
Drop unnecessary build requirement on gtk2-devel, as OpenJDK searches for Gtk+ at
runtime.
Add missing build requirements for libXext-devel and libXrender-devel, previously
masked by Gtk2+ dependency.
fontconfig build requirement should be fontconfig-devel, previously masked by Gtk2+
dependency
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3674bc3..10542c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -234,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1248,19 +1248,20 @@ BuildRequires: cups-devel
BuildRequires: desktop-file-utils
# elfutils only are OK for build without AOT
BuildRequires: elfutils-devel
-BuildRequires: fontconfig
+BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: giflib-devel
BuildRequires: gcc-c++
BuildRequires: gdb
-BuildRequires: gtk2-devel
BuildRequires: lcms2-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libxslt
BuildRequires: libX11-devel
+BuildRequires: libXext-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
+BuildRequires: libXrender-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
# Requirements for setting up the nss.cfg
@@ -2224,6 +2225,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-2
+- Drop unnecessary build requirement on gtk2-devel, as OpenJDK searches for Gtk+ at
runtime.
+- Add missing build requirements for libXext-devel and libXrender-devel, previously
masked by Gtk2+ dependency.
+- fontconfig build requirement should be fontconfig-devel, previously masked by Gtk2+
dependency
+
* Wed Jul 31 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-1
- Obsolete javadoc-debug and javadoc-debug-zip packages via javadoc and javadoc-zip
respectively.
commit 27d2d5d8410d857e16405e596eb4733f992a690c
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 31 18:26:35 2019 +0100
Don't produce javadoc/javadoc-zip sub packages for the debug variant build.
Don't perform a bootcycle build for the debug variant build.
Obsolete javadoc-debug and javadoc-debug-zip packages via javadoc and javadoc-zip
respectively.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e6ed748..3674bc3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -95,11 +95,12 @@
%endif
%if %{bootstrap_build}
-%global targets bootcycle-images docs
+%global release_targets bootcycle-images zip-docs
%else
-%global targets all
+%global release_targets images zip-docs
%endif
-
+# No docs nor bootcycle for debug builds
+%global debug_targets images
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
@@ -233,7 +234,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 0
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1396,6 +1397,7 @@ The java-%{origin}-src-slowdebug sub-package contains the complete
%{origin_nice
%package javadoc
Summary: %{origin_nice} %{majorver} API documentation
Requires: javapackages-filesystem
+Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
%{java_javadoc_rpo %{nil}}
@@ -1406,41 +1408,17 @@ The %{origin_nice} %{majorver} API documentation.
%if %{include_normal_build}
%package javadoc-zip
-Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
+Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
Requires: javapackages-filesystem
+Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
BuildArch: noarch
%{java_javadoc_rpo %{nil}}
%description javadoc-zip
-The %{origin_nice} %{majorver} API documentation compressed in single archive.
-%endif
-
-%if %{include_debug_build}
-%package javadoc-slowdebug
-Summary: %{origin_nice} %{majorver} API documentation %{for_debug}
-Requires: javapackages-filesystem
-BuildArch: noarch
-
-%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
-
-%description javadoc-slowdebug
-The %{origin_nice} %{majorver} API documentation %{for_debug}.
+The %{origin_nice} %{majorver} API documentation compressed in a single archive.
%endif
-%if %{include_debug_build}
-%package javadoc-zip-slowdebug
-Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}
-Requires: javapackages-filesystem
-BuildArch: noarch
-
-%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
-
-%description javadoc-zip-slowdebug
-The %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}.
-%endif
-
-
%if %{include_normal_build}
%package accessibility
Summary: %{origin_nice} %{majorver} accessibility connector
@@ -1737,13 +1715,17 @@ bash ../../configure \
cat spec.gmk
cat hotspot-spec.gmk
+# Debug builds don't need same targets as release for
+# build speed-up
+maketargets="%{release_targets}"
+if echo $debugbuild | grep -q "debug" ; then
+ maketargets="%{debug_targets}"
+fi
make \
JAVAC_FLAGS=-g \
LOG=trace \
SCTP_WERROR= \
- %{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs
cat && false )
-
-make zip-docs
+ $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" |
xargs cat && false )
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
@@ -1943,12 +1925,13 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
popd
-
-# Install Javadoc documentation
-install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
-- $suffix}
-built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
-cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+if ! echo $suffix | grep -q "debug" ; then
+ # Install Javadoc documentation
+ install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
+ cp -a %{buildoutputdir -- $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
+ built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
+ cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+fi
# Install icons and menu entries
for s in 16 24 32 48 ; do
@@ -2167,17 +2150,6 @@ require "copy_jdk_configs.lua"
%posttrans devel-slowdebug
%{posttrans_devel -- %{debug_suffix_unquoted}}
-%post javadoc-slowdebug
-%{post_javadoc -- %{debug_suffix_unquoted}}
-
-%postun javadoc-slowdebug
-%{postun_javadoc -- %{debug_suffix_unquoted}}
-
-%post javadoc-zip-slowdebug
-%{post_javadoc_zip -- %{debug_suffix_unquoted}}
-
-%postun javadoc-zip-slowdebug
-%{postun_javadoc_zip -- %{debug_suffix_unquoted}}
%endif
%if %{include_normal_build}
@@ -2241,12 +2213,6 @@ require "copy_jdk_configs.lua"
%files src-slowdebug
%{files_src -- %{debug_suffix_unquoted}}
-%files javadoc-slowdebug
-%{files_javadoc -- %{debug_suffix_unquoted}}
-
-%files javadoc-zip-slowdebug
-%{files_javadoc_zip -- %{debug_suffix_unquoted}}
-
%files accessibility-slowdebug
%{files_accessibility -- %{debug_suffix_unquoted}}
@@ -2258,6 +2224,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jul 31 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-1
+- Obsolete javadoc-debug and javadoc-debug-zip packages via javadoc and javadoc-zip
respectively.
+
+* Wed Jul 31 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.222.b10-1
+- Don't produce javadoc/javadoc-zip sub packages for the debug variant build.
+- Don't perform a bootcycle build for the debug variant build.
+
* Thu Jul 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-0
- Update to aarch64-shenandoah-jdk8u222-b10.
- Adjust PR3083/RH134640 to apply after JDK-8182999
commit 2ee1d54ad2cfe050807399424ad7871bfe88d3f6
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 31 16:34:14 2019 +0100
Update to aarch64-shenandoah-jdk8u222-b10.
Adjust PR3083/RH134640 to apply after JDK-8182999
Switch to GA mode for final release.
diff --git a/.gitignore b/.gitignore
index 0eb9e5a..4db088b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -145,3 +145,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b05.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b06.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b07.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b08.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b09.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b10.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ce896e3..e6ed748 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u222-b07
+%global shenandoah_revision aarch64-shenandoah-jdk8u222-b10
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -238,7 +238,7 @@
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 0
+%global is_ga 1
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -2258,6 +2258,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jul 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b10-0
+- Update to aarch64-shenandoah-jdk8u222-b10.
+- Adjust PR3083/RH134640 to apply after JDK-8182999
+- Switch to GA mode for final release.
+
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b07-0.0.ea
- Update to aarch64-shenandoah-jdk8u222-b07 and Shenandoah merge 2019-06-13.
- Drop remaining JDK-8210425/RH1632174 patch now AArch64 part is upstream.
diff --git
a/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
index d44ed1d..b52c087 100644
---
a/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
+++
b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
@@ -7,9 +7,21 @@
PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Summary: Return null rather than throwing an exception when there's no ECC provider.
-diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/Debug.java
---- openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 17:08:12 2016
+0100
-+++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 18:21:29 2016
+0100
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
openjdk/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
++++ openjdk/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
+@@ -121,7 +121,7 @@
+ private static void ensureCurveIsSupported(ECParameterSpec ecSpec)
+ throws InvalidAlgorithmParameterException {
+
+- AlgorithmParameters ecParams = ECUtil.getECParameters(null);
++ AlgorithmParameters ecParams = ECUtil.getECParameters(null, true);
+ byte[] encodedParams;
+ try {
+ ecParams.init(ecSpec);
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/util/Debug.java
openjdk/jdk/src/share/classes/sun/security/util/Debug.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/util/Debug.java
++++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java
@@ -73,6 +73,7 @@
System.err.println("certpath PKIX CertPathBuilder and");
System.err.println(" CertPathValidator debugging");
@@ -18,9 +30,9 @@ diff -r bc6eab2038c6 -r a4541d1d8609
src/share/classes/sun/security/util/Debug.j
System.err.println("gssloginconfig");
System.err.println(" GSS LoginConfigImpl debugging");
System.err.println("configfile JAAS ConfigFile loading");
-diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/ECUtil.java
---- openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 17:08:12 2016
+0100
-+++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 18:21:29 2016
+0100
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/util/ECUtil.java
openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/util/ECUtil.java
++++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java
@@ -41,6 +41,9 @@
public class ECUtil {
@@ -34,11 +46,11 @@ diff -r bc6eab2038c6 -r a4541d1d8609
src/share/classes/sun/security/util/ECUtil.
@@ -90,6 +93,10 @@
}
- private static AlgorithmParameters getECParameters(Provider p) {
+ public static AlgorithmParameters getECParameters(Provider p) {
+ return getECParameters(p, false);
+ }
+
-+ private static AlgorithmParameters getECParameters(Provider p, boolean
throwException) {
++ public static AlgorithmParameters getECParameters(Provider p, boolean
throwException) {
try {
if (p != null) {
return AlgorithmParameters.getInstance("EC", p);
diff --git a/sources b/sources
index 5671c4a..eaffa07 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b07.tar.xz) =
f58e5ac864cd66a39f4e479982ff236c8fa560c4108a1e13e11f3dcee1d1c3cbcb8383c8f144bea0c7059eb77f80f0628eb91e93b77a86f75bd84a28382be66c
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b10.tar.xz) =
8e8379260a0f896c41b79e41e51609f3363f734b47cd412d20a4fe18079f73cdeefefdfa62b22f83743d289f8f622201f6650343ee6741163c57d1c5797dcc58
commit b0a4cbd6ae39e8ce94e27af7e516a76c9cac357e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 31 15:54:20 2019 +0100
Update to aarch64-shenandoah-jdk8u222-b07 and Shenandoah merge 2019-06-13.
Drop remaining JDK-8210425/RH1632174 patch now AArch64 part is upstream.
diff --git a/.gitignore b/.gitignore
index d8def8d..0eb9e5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -141,3 +141,7 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b03.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b04.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b05.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b06.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b07.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e7e63bb..ce896e3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u222-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u222-b07
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1190,9 +1190,6 @@ Patch202: jdk8035341-allow_using_system_installed_libpng.patch
Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
-# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
-# Aarch64-port 8u local part
-Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
# JDK-8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector
flags,
# overriding --with-extra-cflags
Patch626: jdk8223219-fstack-protector-root.patch
@@ -1600,7 +1597,6 @@ sh %{SOURCE12}
%patch575
%patch577
%patch620
-%patch624
%patch626
%patch627
%patch110
@@ -2262,6 +2258,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b07-0.0.ea
+- Update to aarch64-shenandoah-jdk8u222-b07 and Shenandoah merge 2019-06-13.
+- Drop remaining JDK-8210425/RH1632174 patch now AArch64 part is upstream.
+
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b03-0.0.ea
- Update to aarch64-shenandoah-jdk8u222-b03.
- Drop 8210425 patches applied upstream. Still need to add AArch64 version in
aarch64/shenandoah-jdk8u.
diff --git
a/jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
b/jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
deleted file mode 100644
index cf1b40b..0000000
---
a/jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
openjdk/hotspot/make/linux/makefiles/aarch64.make
-index 3d17326..7cdb498 100644
---- openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
-+++ openjdk/hotspot/make/linux/makefiles/aarch64.make
-@@ -22,10 +22,13 @@
- #
- #
-
--# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
--# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+ifeq ($(OPT_CFLAGS_NO_FMA),)
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+endif
- # Must also specify if CPU is little endian
- CFLAGS += -DVM_LITTLE_ENDIAN
-
diff --git a/sources b/sources
index 9e15789..5671c4a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b03.tar.xz) =
d7ca2c2b92ca21384c1a4f2f1f9a0335a941de4c24c6a54ce8a323ae0b61eb1ef9cb9d399cd9299841a1e9a2484375acb26db29fbd8b9b982b45d21442b88026
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b07.tar.xz) =
f58e5ac864cd66a39f4e479982ff236c8fa560c4108a1e13e11f3dcee1d1c3cbcb8383c8f144bea0c7059eb77f80f0628eb91e93b77a86f75bd84a28382be66c
commit 815a9a0a0fbe770a166f61656c3f8d2a493e4b1f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 31 13:58:09 2019 +0100
Update to aarch64-shenandoah-jdk8u222-b03.
Drop 8210425 patches applied upstream. Still need to add AArch64 version in
aarch64/shenandoah-jdk8u.
Re-generate JDK-8141570 & JDK-8143245 patches due to 8210425 zeroshark.make
changes.
diff --git a/.gitignore b/.gitignore
index f382ea2..d8def8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -140,3 +140,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b02.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b03.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0379480..e7e63bb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u222-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u222-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1191,14 +1191,8 @@ Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
-# Upstream 8u part.
-Patch623:
jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
-# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Aarch64-port 8u local part
Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
-# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
-# Zero part of the fix for (arm/s390 arches)
-Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
# JDK-8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector
flags,
# overriding --with-extra-cflags
Patch626: jdk8223219-fstack-protector-root.patch
@@ -1606,9 +1600,7 @@ sh %{SOURCE12}
%patch575
%patch577
%patch620
-%patch623
%patch624
-%patch625
%patch626
%patch627
%patch110
@@ -2270,6 +2262,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b03-0.0.ea
+- Update to aarch64-shenandoah-jdk8u222-b03.
+- Drop 8210425 patches applied upstream. Still need to add AArch64 version in
aarch64/shenandoah-jdk8u.
+- Re-generate JDK-8141570 & JDK-8143245 patches due to 8210425 zeroshark.make
changes.
+
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b02-0.0.ea
- Update to aarch64-shenandoah-jdk8u222-b02.
- Drop 8064786/PR3599 & 8210416/RH1632174 as applied upstream (8064786 silently in
8176100).
diff --git
a/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
b/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
index f1e3215..c9ef36b 100644
--- a/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
+++ b/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
@@ -34,9 +34,9 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hots
+ -Wno-format-nonliteral -Wno-format-security \
+ -Wno-maybe-uninitialized
- # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
- OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-@@ -42,5 +49,3 @@
+ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
+ # the compiler so as to be able to produce optimized objects
+@@ -48,5 +55,3 @@
ifeq ($(ARCH_DATA_MODEL), 64)
CFLAGS += -D_LP64=1
endif
diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
index b0a88ea..792b04a 100644
--- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -7,6 +7,7 @@
8143245, PR3548: Zero build requires disabled warnings
Reviewed-by: dholmes, coleenp
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
@@ -27,8 +28,8 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hots
- -Wno-format-nonliteral -Wno-format-security \
- -Wno-maybe-uninitialized
- # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
- OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
+ # the compiler so as to be able to produce optimized objects
diff --git openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
@@ -60,7 +61,7 @@ diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
openjdk/h
switch (type) {
case T_VOID:
ftype = &ffi_type_void;
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -1,6 +1,6 @@
diff --git
a/jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
b/jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
deleted file mode 100644
index 0b05ba6..0000000
--- a/jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git openjdk.orig/hotspot/make/linux/makefiles/amd64.make
openjdk/hotspot/make/linux/makefiles/amd64.make
---- openjdk.orig/hotspot/make/linux/makefiles/amd64.make
-+++ openjdk/hotspot/make/linux/makefiles/amd64.make
-@@ -22,10 +22,13 @@
- #
- #
-
--# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
--# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+ifeq ($(OPT_CFLAGS_NO_FMA),)
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+endif
- # Must also specify if CPU is little endian
- CFLAGS += -DVM_LITTLE_ENDIAN
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make
-@@ -225,6 +225,16 @@
- OPT_CFLAGS/SIZE=-Os
- OPT_CFLAGS/SPEED=-O3
-
-+ifeq ($(USE_CLANG),)
-+ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
-+ # For other versions we need to explicitly set arch specific machine
-+ # flags or keep optimization off for them.
-+ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "1"
-+ OPT_CFLAGS_NO_FMA = -ffp-contract=off
-+ endif
-+endif
-+
-+
- # Hotspot uses very unstrict aliasing turn this optimization off
- # This option is added to CFLAGS rather than OPT_CFLAGS
- # so that OPT_CFLAGS overrides get this option too.
-diff --git openjdk.orig/hotspot/make/linux/makefiles/i486.make
openjdk/hotspot/make/linux/makefiles/i486.make
---- openjdk.orig/hotspot/make/linux/makefiles/i486.make
-+++ openjdk/hotspot/make/linux/makefiles/i486.make
-@@ -24,10 +24,13 @@
-
- # TLS helper, assembled from .s file
-
--# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
--# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+ifeq ($(OPT_CFLAGS_NO_FMA),)
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+endif
- # Must also specify if CPU is little endian
- CFLAGS += -DVM_LITTLE_ENDIAN
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
openjdk/hotspot/make/linux/makefiles/ppc64.make
---- openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
-+++ openjdk/hotspot/make/linux/makefiles/ppc64.make
-@@ -49,3 +49,17 @@
- # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
- CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple
-mno-string
- endif
-+
-+ifeq ($(OPT_CFLAGS_NO_FMA),)
-+ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big)
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
-+ else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+ endif
-+else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+endif
-+
diff --git
a/jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
b/jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
deleted file mode 100644
index 6c1ebad..0000000
---
a/jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- openjdk/hotspot/make/linux/makefiles/zeroshark.make
-+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
-@@ -30,10 +30,13 @@ ifeq ($(USE_CLANG), true)
- WARNING_FLAGS += -Wno-undef
- endif
-
--# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
--# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
--OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+ifeq ($(OPT_CFLAGS_NO_FMA),)
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
-+else
-+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
-+endif
-
- # Specify that the CPU is little endian, if necessary
- ifeq ($(ZERO_ENDIANNESS), little)
diff --git a/sources b/sources
index 8e4f7c0..9e15789 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b02.tar.xz) =
f30a5e1b7dd3fb3d7648d7871889f3f859946e4889649662aa7d051f02c101747e13d3b1311f14a68b5952f9745e577ef57cef44f7b73f9ccb0341c74d4068ac
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b03.tar.xz) =
d7ca2c2b92ca21384c1a4f2f1f9a0335a941de4c24c6a54ce8a323ae0b61eb1ef9cb9d399cd9299841a1e9a2484375acb26db29fbd8b9b982b45d21442b88026
commit a0104f5543df87fdfe09d1a2af9933b79e94e4c8
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 31 04:19:52 2019 +0100
Update to aarch64-shenandoah-jdk8u222-b02.
Drop 8064786/PR3599 & 8210416/RH1632174 as applied upstream (8064786 silently in
8176100).
diff --git a/.gitignore b/.gitignore
index 5c6e85f..f382ea2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -139,3 +139,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 10d1507..0379480 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u222-b01
+%global shenandoah_revision aarch64-shenandoah-jdk8u222-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -233,7 +233,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 2
+%global rpmrelease 0
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -1180,8 +1180,6 @@ Patch573:
jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_h
Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
Patch575:
jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
-# 8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
-Patch576:
jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
# s390: JDK-8203030, Type fixing for s390
@@ -1192,8 +1190,6 @@ Patch202: jdk8035341-allow_using_system_installed_libpng.patch
Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
-# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
-Patch622:
jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Upstream 8u part.
Patch623:
jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
@@ -1608,10 +1604,8 @@ sh %{SOURCE12}
%patch573
%patch574
%patch575
-%patch576
%patch577
%patch620
-%patch622
%patch623
%patch624
%patch625
@@ -2276,6 +2270,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b02-0.0.ea
+- Update to aarch64-shenandoah-jdk8u222-b02.
+- Drop 8064786/PR3599 & 8210416/RH1632174 as applied upstream (8064786 silently in
8176100).
+
* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.2.ea
- Make use of Recommends and Suggests dependent on Fedora or RHEL 8+ environment.
diff --git
a/jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
b/jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
deleted file mode 100644
index 790ee0d..0000000
---
a/jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-# HG changeset patch
-# User goetz
-# Date 1415873641 -3600
-# Thu Nov 13 11:14:01 2014 +0100
-# Node ID 1878c4c1d04e1f3c6f67a19d36c35863d6b5f906
-# Parent 533473c67de6ff767710594639033c8e83523fe5
-8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
-Reviewed-by: stefank, tschatzl
-
-diff --git openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
openjdk/hotspot/src/share/vm/prims/jni.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
-+++ openjdk/hotspot/src/share/vm/prims/jni.cpp
-@@ -708,6 +708,7 @@
-
- THROW_OOP_(JNIHandles::resolve(obj), JNI_OK);
- ShouldNotReachHere();
-+ return 0; // Mute compiler.
- JNI_END
-
- #ifndef USDT2
-@@ -734,6 +735,7 @@
- Handle protection_domain (THREAD, k->protection_domain());
- THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK);
- ShouldNotReachHere();
-+ return 0; // Mute compiler.
- JNI_END
-
-
diff --git
a/jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
b/jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
deleted file mode 100644
index 98bbad0..0000000
---
a/jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git openjdk.orig/jdk/make/lib/CoreLibraries.gmk
openjdk/jdk/make/lib/CoreLibraries.gmk
---- openjdk.orig/jdk/make/lib/CoreLibraries.gmk
-+++ openjdk/jdk/make/lib/CoreLibraries.gmk
-@@ -37,21 +37,32 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
- endif
-
- ifeq ($(OPENJDK_TARGET_OS), linux)
-- ifeq ($(OPENJDK_TARGET_CPU), ppc64)
-- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
-- else ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
-- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
-- else ifeq ($(OPENJDK_TARGET_CPU), aarch64)
-- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
-- endif
--endif
--
--ifneq ($(OPENJDK_TARGET_OS), macosx)
-+ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
-+ LIBFDLIBM_CFLAGS_LINUX := -ffp-contract=off
- # Unfortunately, '-ffp-contract' is only available since gcc 4.6. For ppc64le
- # that's no problem since ppc64le support only appeared in gcc 4.8.3. But on
- # ppc64 (big endian) we traditionally compiled with gcc 4.3 which only knows
- # '-mno-fused-madd'. However, that's still not enough to get the float
- # computations right - we additionally have to supply '-fno-strict-aliasing'.
-+ #
-+ #
-+ ifeq ($(TOOLCHAIN_TYPE), gcc)
-+ CC_VER_MAJOR := $(shell $(CC) -dumpversion | cut -d'.' -f1)
-+ CC_VER_MINOR := $(shell $(CC) -dumpversion | cut -d'.' -f2)
-+ endif
-+ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
-+ # For other versions we need to explicitly set arch specific machine
-+ # flags or keep optimization off.
-+ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "0"
-+ ifeq ($(OPENJDK_TARGET_CPU), ppc64)
-+ LIBFDLIBM_CFLAGS_LINUX := -mno-fused-madd -fno-strict-aliasing
-+ else
-+ BUILD_LIBFDLIBM_OPTIMIZATION := NONE
-+ endif
-+ endif
-+endif
-+
-+ifneq ($(OPENJDK_TARGET_OS), macosx)
- $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
- STATIC_LIBRARY := fdlibm, \
- OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \
-@@ -62,9 +73,7 @@ ifneq ($(OPENJDK_TARGET_OS), macosx)
- -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \
- CFLAGS_windows_debug := -DLOGGING, \
- CFLAGS_aix := -qfloat=nomaf, \
-- CFLAGS_linux_ppc64 := -mno-fused-madd -fno-strict-aliasing, \
-- CFLAGS_linux_ppc64le := -ffp-contract=off, \
-- CFLAGS_linux_aarch64 := -ffp-contract=off, \
-+ CFLAGS_linux := $(LIBFDLIBM_CFLAGS_LINUX), \
- ARFLAGS := $(ARFLAGS), \
- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \
- DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
diff --git a/sources b/sources
index 8c0edda..8e4f7c0 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz) =
1d120a52dc4a6ac77189fb8f8b27244aad2de7e1fa71c41e89280339fb5f0255761171159fb5b0ab0b4ba185d8462205574679219f9bd218843618f3dc575dd2
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b02.tar.xz) =
f30a5e1b7dd3fb3d7648d7871889f3f859946e4889649662aa7d051f02c101747e13d3b1311f14a68b5952f9745e577ef57cef44f7b73f9ccb0341c74d4068ac
commit 90ed3e9e6e61912db15981fdefb137ceec95278d
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 24 17:58:37 2019 +0100
Make use of Recommends and Suggests dependent on Fedora or RHEL 8+ environment.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7a14de8..10d1507 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -233,7 +233,7 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 1
+%global rpmrelease 2
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
@@ -871,7 +871,9 @@ Requires: libXcomposite%{?_isa}
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# for java-X-openjdk package's desktop binding
+%if 0%{?fedora} || 0%{?rhel} >= 8
Recommends: gtk2%{?_isa}
+%endif
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -909,7 +911,9 @@ Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives
Requires(postun): %{_sbindir}/alternatives
# for optional support of kernel stream control, card reader and printing bindings
+%if 0%{?fedora} || 0%{?rhel} >= 8
Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
+%endif
# Standard JPackage base provides
Provides: jre-headless%{?1} = %{epoch}:%{javaver}
@@ -2272,6 +2276,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.2.ea
+- Make use of Recommends and Suggests dependent on Fedora or RHEL 8+ environment.
+
* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.1.ea
- Update to aarch64-shenandoah-jdk8u222-b01.
- Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575.
commit 2a3db76e6cc6ccfc2c339456f53e4a2d05626307
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed Jul 24 05:07:05 2019 +0100
Update to aarch64-shenandoah-jdk8u222-b01.
Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575.
Drop 8171000 & 8197546 as applied upstream.
diff --git a/.gitignore b/.gitignore
index faa17a0..5c6e85f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -138,3 +138,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2003461..7a14de8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision
aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30
+%global shenandoah_revision aarch64-shenandoah-jdk8u222-b01
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -226,19 +226,19 @@
%global icedteaver 3.11.0
# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
-%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah*})
+%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{version_tag}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
-%global rpmrelease 6
+%global rpmrelease 1
# Define milestone (EA for pre-releases, GA ("fcs") for releases)
# Release will be (where N is usually a number starting at 1):
# - 0.N%%{?extraver}%%{?dist} for EA releases,
# - N%%{?extraver}{?dist} for GA releases
-%global is_ga 1
+%global is_ga 0
%if %{is_ga}
%global milestone fcs
%global milestone_version %{nil}
@@ -1125,9 +1125,8 @@ Patch517:
pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_
Patch518:
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
Patch519:
pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
-Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
-Patch540:
pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
+Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
@@ -1169,10 +1168,6 @@ Patch107: s390-8214206_fix.patch
Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
# S8154313: Generated javadoc scattered all over the place
Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
-# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
-Patch563:
jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
-# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
-Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
@@ -1605,8 +1600,6 @@ sh %{SOURCE12}
%patch529
%patch531
%patch530
-%patch563
-%patch564
%patch571
%patch573
%patch574
@@ -1625,7 +1618,7 @@ sh %{SOURCE12}
# RPM-only fixes
%patch525
%patch539
-%patch540
+%patch1000
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -1634,8 +1627,6 @@ sh %{SOURCE12}
# Shenandoah patches
-%patch1000
-
# Extract systemtap tapsets
%if %{with_systemtap}
tar --strip-components=1 -x -I xz -f %{SOURCE8}
@@ -2281,6 +2272,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.222.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b01.
+- Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575.
+- Drop 8171000 & 8197546 as applied upstream.
+
* Wed Jul 03 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-6
- Include 'ea' designator in Release when appropriate.
diff --git
a/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
b/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
deleted file mode 100644
index d831aa9..0000000
--- a/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-# HG changeset patch
-# User kaddepalli
-# Date 1517818481 -19800
-# Mon Feb 05 13:44:41 2018 +0530
-# Node ID b77308735540644d4710244e3c88865067f2905a
-# Parent 39bfc94b1f4265b645c2970a58389acc779dafe9
-8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
-Reviewed-by: serb, mhalder
-
-diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
---- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
-+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
-@@ -394,77 +394,48 @@
- XRectangle bbox; /* bounding box of grabbed area */
- list_ptr regions;/* list of regions to read from */
- {
-- image_region_type *reg;
-- int32_t dst_x, dst_y; /* where in pixmap to write (UL) */
-- int32_t diff;
--
-- XImage *reg_image,*ximage ;
-- int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ;
-- int32_t rem ;
-- int32_t bytes_per_line;
-- int32_t bitmap_unit;
--
-- bitmap_unit = sizeof (long);
-- if (format == ZPixmap)
-- bytes_per_line = width*depth/8;
-- else
-- bytes_per_line = width/8;
--
--
-- /* Find out how many more bytes are required for padding so that
-- ** bytes per scan line will be multiples of bitmap_unit bits */
-- if (format == ZPixmap) {
-- rem = (bytes_per_line*8)%bitmap_unit;
-- if (rem)
-- bytes_per_line += (rem/8 + 1);
-- }
-+ XImage *ximage ;
-
- ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
- (uint32_t)width,(uint32_t)height,8,0);
-
-- bytes_per_line = ximage->bytes_per_line;
--
-- if (format == ZPixmap)
-- ximage->data = malloc(height*bytes_per_line);
-- else
-- ximage->data = malloc(height*bytes_per_line*depth);
--
-+ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 :
depth), sizeof(char));
- ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
-
-- for (reg = (image_region_type *) first_in_list( regions); reg;
-+ for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
- reg = (image_region_type *) next_in_list( regions))
- {
-- int32_t rect;
-- struct my_XRegion *vis_reg;
-- vis_reg = (struct my_XRegion *)(reg->visible_region);
-- for (rect = 0;
-- rect < vis_reg->numRects;
-- rect++)
-+ struct my_XRegion *vis_reg = (struct my_XRegion
*)(reg->visible_region);
-+ for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
- {
-- /**
------------------------------------------------------------------------
-- Intersect bbox with visible part of region giving src rect &
output
-- location. Width is the min right side minus the max left side.
-- Similar for height. Offset src rect so x,y are relative to
-- origin of win, not the root-relative visible rect of win.
--
------------------------------------------------------------------------ **/
-- srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width +
bbox.x)
-- - MAX( vis_reg->rects[rect].x1, bbox.x);
-+ /**
------------------------------------------------------------------------
-+ Intersect bbox with visible part of region giving src rect
& output
-+ location. Width is the min right side minus the max left
side.
-+ Similar for height. Offset src rect so x,y are relative to
-+ origin of win, not the root-relative visible rect of win.
-+
------------------------------------------------------------------------ **/
-+ int32_t srcRect_width = MIN( vis_reg->rects[rect].x2,
bbox.width + bbox.x)
-+ - MAX( vis_reg->rects[rect].x1, bbox.x);
-+
-+ int32_t srcRect_height = MIN( vis_reg->rects[rect].y2,
bbox.height + bbox.y)
-+ - MAX( vis_reg->rects[rect].y1, bbox.y);
-
-- srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height +
bbox.y)
-- - MAX( vis_reg->rects[rect].y1, bbox.y);
-+ int32_t diff = bbox.x - vis_reg->rects[rect].x1;
-+ int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1
- reg->x_rootrel - reg->border);
-+ int32_t dst_x = MAX( 0, -diff) ;
-
-- diff = bbox.x - vis_reg->rects[rect].x1;
-- srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 -
reg->x_rootrel - reg->border);
-- dst_x = MAX( 0, -diff) ;
-- diff = bbox.y - vis_reg->rects[rect].y1;
-- srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 -
reg->y_rootrel - reg->border);
-- dst_y = MAX( 0, -diff) ;
-- reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
-- (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
-- TransferImage(disp,reg_image,srcRect_width,
-- srcRect_height,reg,ximage,dst_x,dst_y) ;
-- XDestroyImage(reg_image);
-- }
-+ diff = bbox.y - vis_reg->rects[rect].y1;
-+ int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1
- reg->y_rootrel - reg->border);
-+ int32_t dst_y = MAX( 0, -diff) ;
-+ XImage* reg_image =
XGetImage(disp,reg->win,srcRect_x,srcRect_y,
-+ (uint32_t) srcRect_width, (uint32_t)
srcRect_height,AllPlanes,format) ;
-+
-+ if (reg_image) {
-+ TransferImage(disp,reg_image,srcRect_width,
-+ srcRect_height,reg,ximage,dst_x,dst_y) ;
-+ XDestroyImage(reg_image);
-+ }
-+ }
- }
- return ximage ;
- }
diff --git a/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
b/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
deleted file mode 100644
index ba712ad..0000000
--- a/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-# HG changeset patch
-# User prr
-# Date 1518454604 28800
-# Mon Feb 12 08:56:44 2018 -0800
-# Node ID 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
-# Parent b77308735540644d4710244e3c88865067f2905a
-8197546: Fix for 8171000 breaks Solaris + Linux builds
-Reviewed-by: serb, jdv
-
-diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
---- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
-+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
-@@ -395,6 +395,8 @@
- list_ptr regions;/* list of regions to read from */
- {
- XImage *ximage ;
-+ image_region_type* reg;
-+ int32_t rect;
-
- ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
- (uint32_t)width,(uint32_t)height,8,0);
-@@ -402,11 +404,11 @@
- ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 :
depth), sizeof(char));
- ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
-
-- for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
-+ for (reg = (image_region_type *) first_in_list( regions); reg;
- reg = (image_region_type *) next_in_list( regions))
- {
- struct my_XRegion *vis_reg = (struct my_XRegion
*)(reg->visible_region);
-- for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
-+ for (rect = 0; rect < vis_reg->numRects; rect++)
- {
- /**
------------------------------------------------------------------------
- Intersect bbox with visible part of region giving src rect
& output
diff --git
a/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
index fc8f981..a42688d 100644
---
a/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
+++
b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
@@ -5,42 +5,45 @@
# Node ID 3334efeacd8327a14b7d2f392f4546e3c29c594b
# Parent 6b81fd2227d14226f2121f2d51b464536925686e
PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+PR3575: System cacerts database handling should not affect jssecacerts
-diff --git a/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
b/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
---- openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
-@@ -174,15 +174,20 @@
- storeFile = new File(storeFileName);
- fis = getFileInputStream(storeFile);
- } else {
-- String javaHome = props.get("javaHome");
-- storeFile = new File(javaHome + sep + "lib" + sep
-- + "security" + sep +
-- "jssecacerts");
-+ /* Check system cacerts DB first; /etc/pki/java/cacerts */
-+ storeFile = new File(sep + "etc" + sep + "pki" +
sep
-+ + "java" + sep +
"cacerts");
- if ((fis = getFileInputStream(storeFile)) == null) {
-+ String javaHome = props.get("javaHome");
- storeFile = new File(javaHome + sep + "lib" + sep
-- + "security" + sep +
-- "cacerts");
-- fis = getFileInputStream(storeFile);
-+ + "security" + sep +
-+ "jssecacerts");
-+ if ((fis = getFileInputStream(storeFile)) == null) {
-+ storeFile = new File(javaHome + sep + "lib" + sep
-+ + "security" + sep +
-+ "cacerts");
-+ fis = getFileInputStream(storeFile);
-+ }
- }
- }
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
+@@ -72,7 +72,7 @@
+ * The preference of the default trusted KeyStore is:
+ * javax.net.ssl.trustStore
+ * jssecacerts
+- * cacerts
++ * cacerts (system and local)
+ */
+ private static final class TrustStoreDescriptor {
+ private static final String fileSep = File.separator;
+@@ -83,6 +83,10 @@
+ defaultStorePath + fileSep + "cacerts";
+ private static final String jsseDefaultStore =
+ defaultStorePath + fileSep + "jssecacerts";
++ /* Check system cacerts DB: /etc/pki/java/cacerts */
++ private static final String systemStore =
++ fileSep + "etc" + fileSep + "pki" +
++ fileSep + "java" + fileSep + "cacerts";
-diff --git a/src/share/classes/sun/security/tools/KeyStoreUtil.java
b/src/share/classes/sun/security/tools/KeyStoreUtil.java
---- openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+ // the trust store name
+ private final String storeName;
+@@ -146,7 +150,8 @@
+ long temporaryTime = 0L;
+ if (!"NONE".equals(storePropName)) {
+ String[] fileNames =
+- new String[] {storePropName, defaultStore};
++ new String[] {storePropName,
++ systemStore, defaultStore};
+ for (String fileName : fileNames) {
+ File f = new File(fileName);
+ if (f.isFile() && f.canRead()) {
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
-@@ -87,9 +87,14 @@
+@@ -108,9 +108,14 @@
throws Exception
{
String sep = File.separator;
diff --git
a/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
b/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
deleted file mode 100644
index ce24c59..0000000
---
a/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1525111445 -3600
-# Mon Apr 30 19:04:05 2018 +0100
-# Node ID 388fc8da23044317c160678ffa8ff541c216a255
-# Parent 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
-PR3575: System cacerts database handling should not affect jssecacerts
-
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
-@@ -162,7 +162,7 @@
- * Try:
- * javax.net.ssl.trustStore (if this variable exists, stop)
- * jssecacerts
-- * cacerts
-+ * cacerts (system and local)
- *
- * If none exists, we use an empty keystore.
- */
-@@ -174,14 +174,14 @@
- storeFile = new File(storeFileName);
- fis = getFileInputStream(storeFile);
- } else {
-- /* Check system cacerts DB first; /etc/pki/java/cacerts */
-- storeFile = new File(sep + "etc" + sep + "pki" +
sep
-- + "java" + sep +
"cacerts");
-+ String javaHome = props.get("javaHome");
-+ storeFile = new File(javaHome + sep + "lib" + sep
-+ + "security" + sep +
-+ "jssecacerts");
- if ((fis = getFileInputStream(storeFile)) == null) {
-- String javaHome = props.get("javaHome");
-- storeFile = new File(javaHome + sep + "lib" + sep
-- + "security" + sep +
-- "jssecacerts");
-+ /* Check system cacerts DB first; /etc/pki/java/cacerts */
-+ storeFile = new File(sep + "etc" + sep +
"pki" + sep
-+ + "java" + sep +
"cacerts");
- if ((fis = getFileInputStream(storeFile)) == null) {
- storeFile = new File(javaHome + sep + "lib" + sep
- + "security" + sep +
diff --git a/sources b/sources
index 2064a52..8c0edda 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz)
=
8ef6029cfa053fce7e0f73aab72b287a4505b06d6e2f1153e5c903a48ba89147fc187987f58d6eb737ede9d5c76a8925f22c34a4f5c3d757674c06fccf77c21b
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz) =
1d120a52dc4a6ac77189fb8f8b27244aad2de7e1fa71c41e89280339fb5f0255761171159fb5b0ab0b4ba185d8462205574679219f9bd218843618f3dc575dd2
commit b961b8d01b98a827fb0d249951277f91b72711f8
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jul 23 11:24:34 2019 +0100
Handle milestone as variables so we can alter it easily and set the docs zip filename
appropriately.
Drop unused use_shenandoah_hotspot variable.
Include 'ea' designator in Release when appropriate.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7b6fd58..2003461 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -76,13 +76,6 @@
%global include_debug_build 0
%endif
-# Shenandoah HotSpot used everywhere, but built only on x86_64 and AArch64
-%ifarch x86_64 %{aarch64}
-%global use_shenandoah_hotspot 1
-%else
-%global use_shenandoah_hotspot 0
-%endif
-
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
%else
@@ -188,8 +181,6 @@
%global archinstall %{_arch}
%endif
-
-
%ifarch %{jit_arches}
%global with_systemtap 1
%else
@@ -242,6 +233,23 @@
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
+%global rpmrelease 6
+# Define milestone (EA for pre-releases, GA ("fcs") for releases)
+# Release will be (where N is usually a number starting at 1):
+# - 0.N%%{?extraver}%%{?dist} for EA releases,
+# - N%%{?extraver}{?dist} for GA releases
+%global is_ga 1
+%if %{is_ga}
+%global milestone fcs
+%global milestone_version %{nil}
+%global extraver %{nil}
+%global eaprefix %{nil}
+%else
+%global milestone ea
+%global milestone_version "-ea"
+%global extraver .%{milestone}
+%global eaprefix 0.
+%endif
# priority must be 7 digits in total. The expression is workarounding tip
%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
@@ -988,7 +996,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 5%{?dist}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?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
@@ -1528,6 +1536,10 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0
] ; then
echo "You have disabled both include_debug_build and include_normal_build. That is
a no go."
exit 13
fi
+
+echo "Update version: %{updatever}"
+echo "Build number: %{buildver}"
+echo "Milestone: %{milestone}"
%setup -q -c -n %{uniquesuffix ""} -T -a 0
#
https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}`
@@ -1727,7 +1739,7 @@ bash ../../configure \
--with-jvm-variants=zero \
%endif
--with-native-debug-symbols=internal \
- --with-milestone="fcs" \
+ --with-milestone=%{milestone} \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
@@ -1958,7 +1970,7 @@ popd
# Install Javadoc documentation
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
-- $suffix}
-built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip" | sed
s/slowdebug/debug/`
+built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" |
sed s/slowdebug/debug/`
cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
# Install icons and menu entries
@@ -2269,6 +2281,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jul 03 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-6
+- Include 'ea' designator in Release when appropriate.
+
+* Wed Jul 03 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-6
+- Handle milestone as variables so we can alter it easily and set the docs zip filename
appropriately.
+- Drop unused use_shenandoah_hotspot variable.
+
* Fri Jun 14 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-5
- Update to aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.
- Update version logic to handle -shenandoah* tag suffix.
commit c8c45a0ca95ccd84f0705c5b8ebc24150b083d87
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jun 24 15:23:59 2019 +0100
Update to aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.
Update version logic to handle -shenandoah* tag suffix.
Drop PR3634 as applied upstream.
Adjust 8214206 fix for S390 as BinaryMagnitudeSeq moved to shenandoahNumberSeq.cpp
Update 8214206 to use log2_long rather than casting to intptr_t, which may be smaller
than size_t.
diff --git a/.gitignore b/.gitignore
index d1072b7..faa17a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -137,3 +137,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e35984..7b6fd58 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u212-b04
+%global shenandoah_revision
aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -234,12 +234,14 @@
# Define IcedTea version used for SystemTap tapsets and desktop files
%global icedteaver 3.11.0
+# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 ->
aarch64-shenandoah-jdk8u212-b04
+%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah*})
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
-%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
+%global whole_update %(VERSION=%{version_tag}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
# eg jdk8u60-b27 -> b27
-%global buildver %(VERSION=%{revision}; echo ${VERSION##*-})
+%global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
# priority must be 7 digits in total. The expression is workarounding tip
%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
@@ -986,7 +988,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 4%{?dist}
+Release: 5%{?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
@@ -1228,8 +1230,6 @@ Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
# and should be upstreamed to the appropriate
# trees.
#############################################
-# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
-Patch582: pr3634-fix_shenandoah_for_size_t_on_s390.patch
#############################################
#
@@ -1621,7 +1621,6 @@ sh %{SOURCE12}
%endif
# Shenandoah patches
-%patch582
%patch1000
@@ -2270,6 +2269,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jun 14 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-5
+- Update to aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.
+- Update version logic to handle -shenandoah* tag suffix.
+- Drop PR3634 as applied upstream.
+- Adjust 8214206 fix for S390 as BinaryMagnitudeSeq moved to shenandoahNumberSeq.cpp
+- Update 8214206 to use log2_long rather than casting to intptr_t, which may be smaller
than size_t.
+
* Wed May 22 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-4
- Remove additions to EXTRA_CFLAGS and EXTRA_CPP_FLAGS which are now made by upstream.
- Remove -mstackrealign addition which is handled by PR3533 & PR3591 patches.
diff --git a/pr3634-fix_shenandoah_for_size_t_on_s390.patch
b/pr3634-fix_shenandoah_for_size_t_on_s390.patch
deleted file mode 100644
index 20a4625..0000000
--- a/pr3634-fix_shenandoah_for_size_t_on_s390.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-@@ -524,8 +524,8 @@
- region_size = max_heap_size / ShenandoahTargetNumRegions;
-
- // Now make sure that we don't go over or under our limits.
-- region_size = MAX2(ShenandoahMinRegionSize, region_size);
-- region_size = MIN2(ShenandoahMaxRegionSize, region_size);
-+ region_size = MAX2<size_t>(ShenandoahMinRegionSize, region_size);
-+ region_size = MIN2<size_t>(ShenandoahMaxRegionSize, region_size);
-
- } else {
- if (ShenandoahHeapRegionSize > initial_heap_size / MIN_NUM_REGIONS) {
diff --git a/s390-8214206_fix.patch b/s390-8214206_fix.patch
index 93f12de..42902cf 100644
--- a/s390-8214206_fix.patch
+++ b/s390-8214206_fix.patch
@@ -7,10 +7,22 @@ diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.
address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
- initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
log2_intptr(mapping_granularity_in_bytes));
+ initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
-+ log2_intptr((uintptr_t) mapping_granularity_in_bytes));
++ log2_long(mapping_granularity_in_bytes));
}
size_t bias() const { return _bias; }
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
+@@ -135,7 +135,7 @@
+ void BinaryMagnitudeSeq::add(size_t val) {
+ Atomic::add(val, &_sum);
+
+- int mag = log2_intptr(val) + 1;
++ int mag = log2_long(val) + 1;
+
+ // Defensively saturate for product bits:
+ if (mag < 0) {
diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
openjdk/hotspot/src/share/vm/runtime/os.cpp
--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
+++ openjdk/hotspot/src/share/vm/runtime/os.cpp
@@ -19,19 +31,7 @@ diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
openjdk/hotspot/src/
void os::set_memory_serialize_page(address page) {
- int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64);
-+ int count = log2_intptr((uintptr_t) sizeof(class JavaThread)) - log2_int(64);
++ int count = log2_long(sizeof(class JavaThread)) - log2_int(64);
_mem_serialize_page = (volatile int32_t *)page;
// We initialize the serialization page shift count here
// We assume a cache line size of 64 bytes
-diff --git openjdk.orig/hotspot/src/share/vm/utilities/numberSeq.cpp
openjdk/hotspot/src/share/vm/utilities/numberSeq.cpp
---- openjdk.orig/hotspot/src/share/vm/utilities/numberSeq.cpp
-+++ openjdk/hotspot/src/share/vm/utilities/numberSeq.cpp
-@@ -369,7 +369,7 @@
- void BinaryMagnitudeSeq::add(size_t val) {
- Atomic::add(val, &_sum);
-
-- int mag = log2_intptr(val) + 1;
-+ int mag = log2_intptr((uintptr_t) val) + 1;
-
- // Defensively saturate for product bits:
- if (mag < 0) {
diff --git a/sources b/sources
index bc68672..2064a52 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz) =
ebcb028fdbcd414bc13d8dc5e331b4a6be2026e19eed5c903eecc02929fde8829fca8aa430220319df7f772f5c4d9689739d5f41ce35c4e542641ab2bfcd6c51
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz)
=
8ef6029cfa053fce7e0f73aab72b287a4505b06d6e2f1153e5c903a48ba89147fc187987f58d6eb737ede9d5c76a8925f22c34a4f5c3d757674c06fccf77c21b
commit 21659ad3b803e8e9c68e34e63aa18f700b786cc1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Wed May 22 20:00:06 2019 +0100
Remove additions to EXTRA_CFLAGS and EXTRA_CPP_FLAGS which are now made by upstream.
Remove -mstackrealign addition which is handled by PR3533 & PR3591 patches.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 09e8da6..3e35984 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -986,7 +986,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 3%{?dist}
+Release: 4%{?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
@@ -1691,9 +1691,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
-# Explicitly set the C++ standard as the default has changed on GCC >= 6
-EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
-EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+EXTRA_CFLAGS="%ourcppflags -Wno-error"
+EXTRA_CPP_FLAGS="%ourcppflags"
# Fixes annocheck warnings in assembler files due to missing build notes
EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -Wa,--generate-missing-build-notes=yes"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wa,--generate-missing-build-notes=yes"
@@ -1742,13 +1741,8 @@ bash ../../configure \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
-%ifarch %{ix86}
- --with-extra-cxxflags="-mstackrealign $EXTRA_CPP_FLAGS" \
- --with-extra-cflags="-mstackrealign $EXTRA_CFLAGS" \
-%else
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
-%endif
--with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC"
@@ -2276,6 +2270,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed May 22 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-4
+- Remove additions to EXTRA_CFLAGS and EXTRA_CPP_FLAGS which are now made by upstream.
+- Remove -mstackrealign addition which is handled by PR3533 & PR3591 patches.
+
* Wed May 22 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-3
- Add JDK-8223219 to avoid -fstack-protector overriding -fstack-protector-strong
commit f44ae83b99edeb37be595741af19e2be62d5b78f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon May 13 16:02:54 2019 +0100
Add JDK-8223219 to avoid -fstack-protector overriding -fstack-protector-strong
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ff8c031..09e8da6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -986,7 +986,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 2%{?dist}
+Release: 3%{?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
@@ -1194,6 +1194,10 @@ Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fd
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Zero part of the fix for (arm/s390 arches)
Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
+# JDK-8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector
flags,
+# overriding --with-extra-cflags
+Patch626: jdk8223219-fstack-protector-root.patch
+Patch627: jdk8223219-fstack-protector-hotspot.patch
#############################################
#
@@ -1602,6 +1606,8 @@ sh %{SOURCE12}
%patch623
%patch624
%patch625
+%patch626
+%patch627
%patch110
# RPM-only fixes
@@ -2270,6 +2276,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed May 22 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-3
+- Add JDK-8223219 to avoid -fstack-protector overriding -fstack-protector-strong
+
* Wed May 15 2019 James Cassell <cyberpear(a)fedoraproject.org> - 1:1.8.0.212.b04-2
- mark net.properties as a config file
diff --git a/jdk8223219-fstack-protector-hotspot.patch
b/jdk8223219-fstack-protector-hotspot.patch
new file mode 100644
index 0000000..ec69944
--- /dev/null
+++ b/jdk8223219-fstack-protector-hotspot.patch
@@ -0,0 +1,35 @@
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/gcc.make
openjdk/hotspot/make/bsd/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/gcc.make
++++ openjdk/hotspot/make/bsd/makefiles/gcc.make
+@@ -190,7 +190,7 @@
+ CFLAGS += -fno-exceptions
+ ifeq ($(USE_CLANG),)
+ CFLAGS += -pthread
+- CFLAGS += -fcheck-new -fstack-protector
++ CFLAGS += -fcheck-new
+ # version 4 and above support fvisibility=hidden (matches jni_x86.h file)
+ # except 4.1.2 gives pointless warnings that can't be disabled (afaik)
+ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
+diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
++++ openjdk/hotspot/make/linux/makefiles/gcc.make
+@@ -150,7 +150,7 @@
+ CFLAGS += -fno-exceptions
+ CFLAGS += -D_REENTRANT
+ ifeq ($(USE_CLANG),)
+- CFLAGS += -fcheck-new -fstack-protector
++ CFLAGS += -fcheck-new
+ # version 4 and above support fvisibility=hidden (matches jni_x86.h file)
+ # except 4.1.2 gives pointless warnings that can't be disabled (afaik)
+ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
+diff --git openjdk.orig/hotspot/make/solaris/makefiles/gcc.make
openjdk/hotspot/make/solaris/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/gcc.make
++++ openjdk/hotspot/make/solaris/makefiles/gcc.make
+@@ -75,7 +75,6 @@
+ CFLAGS += -fno-exceptions
+ CFLAGS += -D_REENTRANT
+ CFLAGS += -fcheck-new
+-CFLAGS += -fstack-protector
+
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+
diff --git a/jdk8223219-fstack-protector-root.patch
b/jdk8223219-fstack-protector-root.patch
new file mode 100644
index 0000000..a73761c
--- /dev/null
+++ b/jdk8223219-fstack-protector-root.patch
@@ -0,0 +1,33 @@
+diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4
+--- openjdk.orig/common/autoconf/flags.m4
++++ openjdk/common/autoconf/flags.m4
+@@ -388,16 +388,8 @@
+ CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
+ elif test "x$TOOLCHAIN_TYPE" = xgcc; then
+- case $OPENJDK_TARGET_CPU_ARCH in
+- x86 )
+- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
+- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
+- ;;
+- x86_64 )
+- LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
+- LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
+- ;;
+- esac
++ LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
++ LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
+ if test "x$OPENJDK_TARGET_OS" != xmacosx; then
+ LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro"
+ LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro"
+@@ -464,10 +456,6 @@
+ ppc )
+ # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
+ ;;
+- x86 )
+- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer
-fstack-protector"
+- CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector"
+- ;;
+ * )
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
+ CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
commit 554136ca03b65ecec89d8ab2d036422acb46049d
Author: James Cassell <code(a)james.cassell.me>
Date: Tue May 14 15:31:54 2019 -0400
mark net.properties as a config file
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bc2178d..ff8c031 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -689,6 +689,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt
%{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index
%{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/net.properties
%{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja
%{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties
%{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar
@@ -985,7 +986,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 1%{?dist}
+Release: 2%{?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
@@ -2058,7 +2059,7 @@ touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/securi
# moving config files to /etc
mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
-for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg ; do
+for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg lib/net.properties ; do
mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
$RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
ln -sf %{etcjavadir -- $suffix}/$file
$RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
done
@@ -2269,6 +2270,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed May 15 2019 James Cassell <cyberpear(a)fedoraproject.org> - 1:1.8.0.212.b04-2
+- mark net.properties as a config file
+
* Mon May 13 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-1
- Update patch for RH1566890.
- Renamed
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639
to
commit c780195351db915c7a0edba829e58c1f1bda4363
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon May 13 04:59:45 2019 +0100
Update patch for RH1566890.
Renamed
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639
to
rh1566890-CVE_2018_3639-speculative_store_bypass.patch
Added dependent patch,
rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e54a6d4..bc2178d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -985,7 +985,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 0%{?dist}
+Release: 1%{?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
@@ -1095,7 +1095,8 @@ Patch523:
pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528:
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
# RH1566890: CVE-2018-3639
-Patch529:
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
+Patch529: rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+Patch531: rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
# Support for building the SunEC provider with the system NSS installation
@@ -1585,6 +1586,7 @@ sh %{SOURCE12}
%patch523
%patch528
%patch529
+%patch531
%patch530
%patch563
%patch564
@@ -2267,6 +2269,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon May 13 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.212.b04-1
+- Update patch for RH1566890.
+ - Renamed
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639
to
+ rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+ - Added dependent patch,
+ rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
+
* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-0
- Update to aarch64-shenandoah-jdk8u212-b04.
diff --git
a/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
b/rh1566890-CVE_2018_3639-speculative_store_bypass.patch
similarity index 100%
rename from
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
rename to rh1566890-CVE_2018_3639-speculative_store_bypass.patch
diff --git a/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
b/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
new file mode 100644
index 0000000..94ef9d4
--- /dev/null
+++ b/rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
@@ -0,0 +1,54 @@
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -5001,26 +5001,43 @@
+
+ /* Per task speculation control */
+ #ifndef PR_GET_SPECULATION_CTRL
+-#define PR_GET_SPECULATION_CTRL 52
++# define PR_GET_SPECULATION_CTRL 52
+ #endif
+ #ifndef PR_SET_SPECULATION_CTRL
+-#define PR_SET_SPECULATION_CTRL 53
++# define PR_SET_SPECULATION_CTRL 53
+ #endif
+ /* Speculation control variants */
+-# undef PR_SPEC_STORE_BYPASS
++#ifndef PR_SPEC_STORE_BYPASS
+ # define PR_SPEC_STORE_BYPASS 0
++#endif
+ /* Return and control values for PR_SET/GET_SPECULATION_CTRL */
+-# undef PR_SPEC_NOT_AFFECTED
+-# undef PR_SPEC_PRCTL
+-# undef PR_SPEC_ENABLE
+-# undef PR_SPEC_DISABLE
++
++#ifndef PR_SPEC_NOT_AFFECTED
+ # define PR_SPEC_NOT_AFFECTED 0
++#endif
++#ifndef PR_SPEC_PRCTL
+ # define PR_SPEC_PRCTL (1UL << 0)
++#endif
++#ifndef PR_SPEC_ENABLE
+ # define PR_SPEC_ENABLE (1UL << 1)
++#endif
++#ifndef PR_SPEC_DISABLE
+ # define PR_SPEC_DISABLE (1UL << 2)
++#endif
++#ifndef PR_SPEC_FORCE_DISABLE
++# define PR_SPEC_FORCE_DISABLE (1UL << 3)
++#endif
++#ifndef PR_SPEC_DISABLE_NOEXEC
++# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
++#endif
+
+ static void set_speculation() __attribute__((constructor));
+ static void set_speculation() {
++ if ( prctl(PR_SET_SPECULATION_CTRL,
++ PR_SPEC_STORE_BYPASS,
++ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
++ return;
++ }
+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
+ }
+
commit 1d1b2c06b6bb2d29e2c01922fcbd35c90d399670
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Apr 19 17:23:03 2019 +0100
Update to aarch64-shenandoah-jdk8u212-b04.
diff --git a/.gitignore b/.gitignore
index f0aeaa5..d1072b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -136,3 +136,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cf66a1d..e54a6d4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u212-b03
+%global shenandoah_revision aarch64-shenandoah-jdk8u212-b04
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2267,6 +2267,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b04-0
+- Update to aarch64-shenandoah-jdk8u212-b04.
+
* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b03-0
- Update to aarch64-shenandoah-jdk8u212-b03.
diff --git a/sources b/sources
index 620a294..bc68672 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz) =
587948365ab69fd1719ac1843fbac13245cc490e11d0f08e819a118390d79f06bb2bef5332b31d98172e5b1bb3a6f6c7d7edd4de7cde5d2120b4c04841553025
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz) =
ebcb028fdbcd414bc13d8dc5e331b4a6be2026e19eed5c903eecc02929fde8829fca8aa430220319df7f772f5c4d9689739d5f41ce35c4e542641ab2bfcd6c51
commit ce1fed4229e6169d6719bcbbc871aae5b7ea893e
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 18 06:06:18 2019 +0100
Update to aarch64-shenandoah-jdk8u212-b03.
diff --git a/.gitignore b/.gitignore
index 0047a5a..f0aeaa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -135,3 +135,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3a2cb2c..cf66a1d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u212-b02
+%global shenandoah_revision aarch64-shenandoah-jdk8u212-b03
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2267,6 +2267,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Apr 11 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b03-0
+- Update to aarch64-shenandoah-jdk8u212-b03.
+
* Tue Apr 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b02-0
- Update to aarch64-shenandoah-jdk8u212-b02.
- Remove patches included upstream
diff --git a/sources b/sources
index 1b7cda2..620a294 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz) =
0068461fe6d2a376c44009a6f111b7aac8a0bdd99976f454d3015d443de8f87e1928ddad8d6dcc7572bc53ad6e3d6b71bcee045858d8e2e51cb6d2ac8864cc47
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz) =
587948365ab69fd1719ac1843fbac13245cc490e11d0f08e819a118390d79f06bb2bef5332b31d98172e5b1bb3a6f6c7d7edd4de7cde5d2120b4c04841553025
commit c7048023e9e1b0766ba50e679ff33c078981b1e6
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Apr 16 05:55:21 2019 +0100
Update to aarch64-shenandoah-jdk8u212-b02.
Remove patches included upstream
- JDK-8197429/PR3546/RH153662{2,3}
- JDK-8184309/PR3596
- JDK-8210647/RH1632174
- JDK-8029661/PR3642/RH1477159
- JDK-8145096/PR3693
Re-generate patches
- JDK-8203030
Add casts to resolve s390 ambiguity in calls to log2_intptr
Move JDK-8219772 to correct section as not yet upstreamed
Add new clhsdb and hsdb binaries.
Resolves: rhbz#1680640
diff --git a/.gitignore b/.gitignore
index 08917ce..0047a5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -134,3 +134,4 @@
/tapsets-icedtea-3.11.0.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f7282d6..3a2cb2c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u202-b08
+%global shenandoah_revision aarch64-shenandoah-jdk8u212-b02
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -578,6 +578,8 @@ exit 0
%dir %{_jvmdir}/%{jredir -- %{?1}}
%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
+%{_jvmdir}/%{jredir -- %{?1}}/bin/clhsdb
+%{_jvmdir}/%{jredir -- %{?1}}/bin/hsdb
%{_jvmdir}/%{jredir -- %{?1}}/bin/java
%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
@@ -723,7 +725,9 @@ exit 0
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
@@ -1116,6 +1120,8 @@ Patch540:
pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jss
Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
# PR3655: Allow use of system crypto policy to be disabled by the user
Patch301: pr3655-toggle_system_crypto_policy.patch
+# JDK-8219772: EXTRA_CFLAGS not being picked up for assembler files
+Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
#############################################
#
@@ -1134,6 +1140,8 @@ Patch103:
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_
Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
+# S390 ambiguous log2_intptr calls
+Patch107: s390-8214206_fix.patch
#############################################
#
@@ -1149,16 +1157,12 @@ Patch106:
pr3519-fix_further_functions_with_a_missing_return_value.patch
Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
# S8154313: Generated javadoc scattered all over the place
Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
-# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
-Patch561:
jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
Patch563:
jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
-# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
-Patch572: jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
Patch573:
jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
# 8143245, PR3548: Zero build requires disabled warnings
@@ -1177,8 +1181,6 @@ Patch202: jdk8035341-allow_using_system_installed_libpng.patch
Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
-# 8210647: libsaproc is being compiled without optimization
-Patch621: jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
Patch622:
jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
@@ -1193,29 +1195,13 @@ Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fd
#############################################
#
-# Patches appearing in 8u212
+# Patches appearing in 8u222
#
# This section includes patches which are present
# in the listed OpenJDK 8u release and should be
# able to be removed once that release is out
# and used by this RPM.
#############################################
-# 8219772: EXTRA_CFLAGS not being picked up for assembler files
-Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
-
-#############################################
-#
-# Patches appearing in 8u211
-#
-# This section includes patches which are present
-# in the listed OpenJDK 8u release and should be
-# able to be removed once that release is out
-# and used by this RPM.
-#############################################
-# JDK-8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
-Patch585: jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
-# JDK-8145096, PR3693: Undefined behaviour in HotSpot
-Patch588: jdk8145096-pr3693-undefined_behaviour.patch
#############################################
#
@@ -1576,6 +1562,7 @@ sh %{SOURCE12}
# s390 build fixes
%patch102
%patch103
+%patch107
# AArch64 fixes
%patch106
@@ -1599,24 +1586,19 @@ sh %{SOURCE12}
%patch528
%patch529
%patch530
-%patch561
%patch563
%patch564
%patch571
-%patch572
%patch573
%patch574
%patch575
%patch576
%patch577
%patch620
-%patch621
%patch622
%patch623
%patch624
%patch625
-%patch585
-%patch588
%patch110
# RPM-only fixes
@@ -2285,6 +2267,21 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Apr 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.212.b02-0
+- Update to aarch64-shenandoah-jdk8u212-b02.
+- Remove patches included upstream
+ - JDK-8197429/PR3546/RH153662{2,3}
+ - JDK-8184309/PR3596
+ - JDK-8210647/RH1632174
+ - JDK-8029661/PR3642/RH1477159
+ - JDK-8145096/PR3693
+- Re-generate patches
+ - JDK-8203030
+- Add casts to resolve s390 ambiguity in calls to log2_intptr
+- Move JDK-8219772 to correct section as not yet upstreamed
+- Add new clhsdb and hsdb binaries.
+- Resolves: rhbz#1680640
+
* Sun Apr 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.202.b08-0
- Update to aarch64-shenandoah-jdk8u202-b08.
- Remove patches included upstream
diff --git a/jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
b/jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
deleted file mode 100644
index f7a816a..0000000
--- a/jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
+++ /dev/null
@@ -1,2269 +0,0 @@
-# HG changeset patch
-# User mbalao
-# Date 1541016287 10800
-# Wed Oct 31 17:04:47 2018 -0300
-# Node ID fa06cdb4c6f7b5ca148f26d345090d48014fecff
-# Parent 478a4add975beb90696a4ead5f8fcd9c17fc1a83
-8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
-Summary: TLS v1.2 algorithms for key and MAC derivation added to SunPKCS11 crypto
provider. 8210912 fix is included as part of this changeset.
-Reviewed-by: valeriep
-
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
----
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, 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
-@@ -95,9 +95,9 @@
- throw new InvalidAlgorithmParameterException("init() failed", e);
- }
- version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
-- if ((version < 0x0300) && (version > 0x0302)) {
-- throw new InvalidAlgorithmParameterException
-- ("Only SSL 3.0, TLS 1.0, and TLS 1.1 are supported");
-+ if ((version < 0x0300) && (version > 0x0303)) {
-+ throw new InvalidAlgorithmParameterException("Only SSL 3.0," +
-+ " TLS 1.0, TLS 1.1, and TLS 1.2 are supported");
- }
- // we assume the token supports both the CKM_SSL3_* and the CKM_TLS_*
- // mechanisms
-@@ -112,8 +112,11 @@
- throw new IllegalStateException
- ("TlsKeyMaterialGenerator must be initialized");
- }
-- mechanism = (version == 0x0300) ? CKM_SSL3_KEY_AND_MAC_DERIVE
-- : CKM_TLS_KEY_AND_MAC_DERIVE;
-+ if (version == 0x0300) {
-+ mechanism = CKM_SSL3_KEY_AND_MAC_DERIVE;
-+ } else if (version == 0x0301 || version == 0x0302) {
-+ mechanism = CKM_TLS_KEY_AND_MAC_DERIVE;
-+ }
- int macBits = spec.getMacKeyLength() << 3;
- int ivBits = spec.getIvLength() << 3;
-
-@@ -129,8 +132,18 @@
-
- CK_SSL3_RANDOM_DATA random = new CK_SSL3_RANDOM_DATA
- (spec.getClientRandom(), spec.getServerRandom());
-- CK_SSL3_KEY_MAT_PARAMS params = new CK_SSL3_KEY_MAT_PARAMS
-- (macBits, keyBits, ivBits, isExportable, random);
-+ Object params = null;
-+ CK_MECHANISM ckMechanism = null;
-+ if (version < 0x0303) {
-+ params = new CK_SSL3_KEY_MAT_PARAMS
-+ (macBits, keyBits, ivBits, isExportable, random);
-+ ckMechanism = new CK_MECHANISM(mechanism, (CK_SSL3_KEY_MAT_PARAMS)params);
-+ } else if (version == 0x0303) {
-+ params = new CK_TLS12_KEY_MAT_PARAMS
-+ (macBits, keyBits, ivBits, isExportable, random,
-+ Functions.getHashMechId(spec.getPRFHashAlg()));
-+ ckMechanism = new CK_MECHANISM(mechanism, (CK_TLS12_KEY_MAT_PARAMS)params);
-+ }
-
- String cipherAlgorithm = spec.getCipherAlgorithm();
- long keyType = P11SecretKeyFactory.getKeyType(cipherAlgorithm);
-@@ -162,9 +175,14 @@
- (O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
- // the returned keyID is a dummy, ignore
- long keyID = token.p11.C_DeriveKey(session.id(),
-- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
-+ ckMechanism, p11Key.keyID, attributes);
-
-- CK_SSL3_KEY_MAT_OUT out = params.pReturnedKeyMaterial;
-+ CK_SSL3_KEY_MAT_OUT out = null;
-+ if (params instanceof CK_SSL3_KEY_MAT_PARAMS) {
-+ out = ((CK_SSL3_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
-+ } else if (params instanceof CK_TLS12_KEY_MAT_PARAMS) {
-+ out = ((CK_TLS12_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
-+ }
- // Note that the MAC keys do not inherit all attributes from the
- // template, but they do inherit the sensitive/extractable/token
- // flags, which is all P11Key cares about.
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
----
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, 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
-@@ -89,9 +89,9 @@
- throw new InvalidAlgorithmParameterException("init() failed", e);
- }
- version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
-- if ((version < 0x0300) || (version > 0x0302)) {
-- throw new InvalidAlgorithmParameterException
-- ("Only SSL 3.0, TLS 1.0, and TLS 1.1 supported");
-+ if ((version < 0x0300) && (version > 0x0303)) {
-+ throw new InvalidAlgorithmParameterException("Only SSL 3.0," +
-+ " TLS 1.0, TLS 1.1, and TLS 1.2 are supported");
- }
- // We assume the token supports the required mechanism. If it does not,
- // generateKey() will fail and the failover should take care of us.
-@@ -106,10 +106,20 @@
- throw new IllegalStateException
- ("TlsMasterSecretGenerator must be initialized");
- }
-+ final boolean isTlsRsaPremasterSecret =
-+ p11Key.getAlgorithm().equals("TlsRsaPremasterSecret");
-+ if (version == 0x0300) {
-+ mechanism = isTlsRsaPremasterSecret ?
-+ CKM_SSL3_MASTER_KEY_DERIVE : CKM_SSL3_MASTER_KEY_DERIVE_DH;
-+ } else if (version == 0x0301 || version == 0x0302) {
-+ mechanism = isTlsRsaPremasterSecret ?
-+ CKM_TLS_MASTER_KEY_DERIVE : CKM_TLS_MASTER_KEY_DERIVE_DH;
-+ } else if (version == 0x0303) {
-+ mechanism = isTlsRsaPremasterSecret ?
-+ CKM_TLS12_MASTER_KEY_DERIVE : CKM_TLS12_MASTER_KEY_DERIVE_DH;
-+ }
- CK_VERSION ckVersion;
-- if (p11Key.getAlgorithm().equals("TlsRsaPremasterSecret")) {
-- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE
-- : CKM_TLS_MASTER_KEY_DERIVE;
-+ if (isTlsRsaPremasterSecret) {
- ckVersion = new CK_VERSION(0, 0);
- } else {
- // Note: we use DH for all non-RSA premaster secrets. That includes
-@@ -118,16 +128,23 @@
- // TLS PRF (or the SSL equivalent).
- // The only thing special about RSA master secret calculation is
- // that it extracts the version numbers from the premaster secret.
-- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE_DH
-- : CKM_TLS_MASTER_KEY_DERIVE_DH;
- ckVersion = null;
- }
- byte[] clientRandom = spec.getClientRandom();
- byte[] serverRandom = spec.getServerRandom();
- CK_SSL3_RANDOM_DATA random =
- new CK_SSL3_RANDOM_DATA(clientRandom, serverRandom);
-- CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
-- new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
-+ CK_MECHANISM ckMechanism = null;
-+ if (version < 0x0303) {
-+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
-+ new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
-+ ckMechanism = new CK_MECHANISM(mechanism, params);
-+ } else if (version == 0x0303) {
-+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS params =
-+ new CK_TLS12_MASTER_KEY_DERIVE_PARAMS(random, ckVersion,
-+ Functions.getHashMechId(spec.getPRFHashAlg()));
-+ ckMechanism = new CK_MECHANISM(mechanism, params);
-+ }
-
- Session session = null;
- try {
-@@ -135,9 +152,8 @@
- CK_ATTRIBUTE[] attributes = token.getAttributes(O_GENERATE,
- CKO_SECRET_KEY, CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]);
- long keyID = token.p11.C_DeriveKey(session.id(),
-- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
-+ ckMechanism, p11Key.keyID, attributes);
- int major, minor;
-- ckVersion = params.pVersion;
- if (ckVersion == null) {
- major = -1;
- minor = -1;
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, 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
-@@ -124,8 +124,46 @@
- if (spec == null) {
- throw new IllegalStateException("TlsPrfGenerator must be
initialized");
- }
-+ byte[] seed = spec.getSeed();
-+
-+ // TLS 1.2
-+ if (mechanism == CKM_TLS_MAC) {
-+ SecretKey k = null;
-+ int ulServerOrClient = 0;
-+ if (spec.getLabel().equals("server finished")) {
-+ ulServerOrClient = 1;
-+ }
-+ if (spec.getLabel().equals("client finished")) {
-+ ulServerOrClient = 2;
-+ }
-+
-+ if (ulServerOrClient != 0) {
-+ // Finished message
-+ CK_TLS_MAC_PARAMS params = new CK_TLS_MAC_PARAMS(
-+ Functions.getHashMechId(spec.getPRFHashAlg()),
-+ spec.getOutputLength(), ulServerOrClient);
-+ Session session = null;
-+ try {
-+ session = token.getOpSession();
-+ token.p11.C_SignInit(session.id(),
-+ new CK_MECHANISM(mechanism, params), p11Key.keyID);
-+ token.p11.C_SignUpdate(session.id(), 0, seed, 0, seed.length);
-+ byte[] out = token.p11.C_SignFinal
-+ (session.id(), spec.getOutputLength());
-+ k = new SecretKeySpec(out, "TlsPrf");
-+ } catch (PKCS11Exception e) {
-+ throw new ProviderException("Could not calculate PRF",
e);
-+ } finally {
-+ token.releaseSession(session);
-+ }
-+ } else {
-+ throw new ProviderException("Only Finished message authentication
code"+
-+ " generation supported for TLS 1.2.");
-+ }
-+ return k;
-+ }
-+
- byte[] label = P11Util.getBytesUTF8(spec.getLabel());
-- byte[] seed = spec.getSeed();
-
- if (mechanism == CKM_NSS_TLS_PRF_GENERAL) {
- Session session = null;
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
----
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
-+++
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, 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
-@@ -57,6 +57,8 @@
- // mechanism id
- private long mechanism;
-
-+ private int version;
-+
- private TlsRsaPremasterSecretParameterSpec spec;
-
- P11TlsRsaPremasterSecretGenerator(Token token, String algorithm, long mechanism)
-@@ -77,6 +79,11 @@
- throw new InvalidAlgorithmParameterException(MSG);
- }
- this.spec = (TlsRsaPremasterSecretParameterSpec)params;
-+ version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
-+ if ((version < 0x0300) && (version > 0x0303)) {
-+ throw new InvalidAlgorithmParameterException
-+ ("Only SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2 are
supported");
-+ }
- }
-
- protected void engineInit(int keysize, SecureRandom random) {
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, 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
-@@ -720,38 +720,28 @@
- s("1.2.840.113549.1.1.13",
"OID.1.2.840.113549.1.1.13"),
- m(CKM_SHA512_RSA_PKCS, CKM_RSA_PKCS, CKM_RSA_X_509));
-
-- /*
-- * TLS 1.2 uses a different hash algorithm than 1.0/1.1 for the
-- * PRF calculations. As of 2010, there is no PKCS11-level
-- * support for TLS 1.2 PRF calculations, and no known OS's have
-- * an internal variant we could use. Therefore for TLS 1.2, we
-- * are updating JSSE to request different provider algorithms
-- * (e.g. "SunTls12Prf"), and currently only SunJCE has these
-- * TLS 1.2 algorithms.
-- *
-- * If we reused the names such as "SunTlsPrf", the PKCS11
-- * providers would need be updated to fail correctly when
-- * presented with the wrong version number (via
-- * Provider.Service.supportsParameters()), and we would also
-- * need to add the appropriate supportsParamters() checks into
-- * KeyGenerators (not currently there).
-- *
-- * In the future, if PKCS11 support is added, we will restructure
-- * this.
-- */
- d(KG, "SunTlsRsaPremasterSecret",
- "sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator",
-+ s("SunTls12RsaPremasterSecret"),
- m(CKM_SSL3_PRE_MASTER_KEY_GEN, CKM_TLS_PRE_MASTER_KEY_GEN));
- d(KG, "SunTlsMasterSecret",
- "sun.security.pkcs11.P11TlsMasterSecretGenerator",
- m(CKM_SSL3_MASTER_KEY_DERIVE, CKM_TLS_MASTER_KEY_DERIVE,
- CKM_SSL3_MASTER_KEY_DERIVE_DH,
- CKM_TLS_MASTER_KEY_DERIVE_DH));
-+ d(KG, "SunTls12MasterSecret",
-+ "sun.security.pkcs11.P11TlsMasterSecretGenerator",
-+ m(CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_MASTER_KEY_DERIVE_DH));
- d(KG, "SunTlsKeyMaterial",
- "sun.security.pkcs11.P11TlsKeyMaterialGenerator",
- m(CKM_SSL3_KEY_AND_MAC_DERIVE, CKM_TLS_KEY_AND_MAC_DERIVE));
-+ d(KG, "SunTls12KeyMaterial",
-+ "sun.security.pkcs11.P11TlsKeyMaterialGenerator",
-+ m(CKM_TLS12_KEY_AND_MAC_DERIVE));
- d(KG, "SunTlsPrf",
"sun.security.pkcs11.P11TlsPrfGenerator",
- m(CKM_TLS_PRF, CKM_NSS_TLS_PRF_GENERAL));
-+ d(KG, "SunTls12Prf",
"sun.security.pkcs11.P11TlsPrfGenerator",
-+ m(CKM_TLS_MAC));
- }
-
- // background thread that periodically checks for token insertion
-@@ -1016,13 +1006,16 @@
- if (algorithm == "SunTlsRsaPremasterSecret") {
- return new P11TlsRsaPremasterSecretGenerator(
- token, algorithm, mechanism);
-- } else if (algorithm == "SunTlsMasterSecret") {
-+ } else if (algorithm == "SunTlsMasterSecret"
-+ || algorithm == "SunTls12MasterSecret") {
- return new P11TlsMasterSecretGenerator(
- token, algorithm, mechanism);
-- } else if (algorithm == "SunTlsKeyMaterial") {
-+ } else if (algorithm == "SunTlsKeyMaterial"
-+ || algorithm == "SunTls12KeyMaterial") {
- return new P11TlsKeyMaterialGenerator(
- token, algorithm, mechanism);
-- } else if (algorithm == "SunTlsPrf") {
-+ } else if (algorithm == "SunTlsPrf"
-+ || algorithm == "SunTls12Prf") {
- return new P11TlsPrfGenerator(token, algorithm, mechanism);
- } else {
- return new P11KeyGenerator(token, algorithm, mechanism);
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -112,14 +112,26 @@
- init(mechanism, params);
- }
-
-+ public CK_MECHANISM(long mechanism, CK_TLS12_MASTER_KEY_DERIVE_PARAMS params) {
-+ init(mechanism, params);
-+ }
-+
- public CK_MECHANISM(long mechanism, CK_SSL3_KEY_MAT_PARAMS params) {
- init(mechanism, params);
- }
-
-+ public CK_MECHANISM(long mechanism, CK_TLS12_KEY_MAT_PARAMS params) {
-+ init(mechanism, params);
-+ }
-+
- public CK_MECHANISM(long mechanism, CK_TLS_PRF_PARAMS params) {
- init(mechanism, params);
- }
-
-+ public CK_MECHANISM(long mechanism, CK_TLS_MAC_PARAMS params) {
-+ init(mechanism, params);
-+ }
-+
- public CK_MECHANISM(long mechanism, CK_ECDH1_DERIVE_PARAMS params) {
- init(mechanism, params);
- }
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
-new file mode 100644
---- /dev/null
-+++
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
-@@ -0,0 +1,151 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+package sun.security.pkcs11.wrapper;
-+
-+/**
-+ * CK_TLS12_KEY_MAT_PARAMS from PKCS#11 v2.40.
-+ */
-+public class CK_TLS12_KEY_MAT_PARAMS {
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_ULONG ulMacSizeInBits;
-+ * </PRE>
-+ */
-+ public long ulMacSizeInBits;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_ULONG ulKeySizeInBits;
-+ * </PRE>
-+ */
-+ public long ulKeySizeInBits;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_ULONG ulIVSizeInBits;
-+ * </PRE>
-+ */
-+ public long ulIVSizeInBits;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_BBOOL bIsExport;
-+ * </PRE>
-+ */
-+ public boolean bIsExport;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_SSL3_RANDOM_DATA RandomInfo;
-+ * </PRE>
-+ */
-+ public CK_SSL3_RANDOM_DATA RandomInfo;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
-+ * </PRE>
-+ */
-+ public CK_SSL3_KEY_MAT_OUT pReturnedKeyMaterial;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_MECHANISM_TYPE prfHashMechanism;
-+ * </PRE>
-+ */
-+ public long prfHashMechanism;
-+
-+ public CK_TLS12_KEY_MAT_PARAMS(
-+ int macSize, int keySize, int ivSize, boolean export,
-+ CK_SSL3_RANDOM_DATA random, long prfHashMechanism) {
-+ ulMacSizeInBits = macSize;
-+ ulKeySizeInBits = keySize;
-+ ulIVSizeInBits = ivSize;
-+ bIsExport = export;
-+ RandomInfo = random;
-+ pReturnedKeyMaterial = new CK_SSL3_KEY_MAT_OUT();
-+ if (ivSize != 0) {
-+ int n = ivSize >> 3;
-+ pReturnedKeyMaterial.pIVClient = new byte[n];
-+ pReturnedKeyMaterial.pIVServer = new byte[n];
-+ }
-+ this.prfHashMechanism = prfHashMechanism;
-+ }
-+
-+ /**
-+ * Returns the string representation of CK_TLS12_KEY_MAT_PARAMS.
-+ *
-+ * @return the string representation of CK_TLS12_KEY_MAT_PARAMS
-+ */
-+ public String toString() {
-+ StringBuilder buffer = new StringBuilder();
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("ulMacSizeInBits: ");
-+ buffer.append(ulMacSizeInBits);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("ulKeySizeInBits: ");
-+ buffer.append(ulKeySizeInBits);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("ulIVSizeInBits: ");
-+ buffer.append(ulIVSizeInBits);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("bIsExport: ");
-+ buffer.append(bIsExport);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("RandomInfo: ");
-+ buffer.append(RandomInfo);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("pReturnedKeyMaterial: ");
-+ buffer.append(pReturnedKeyMaterial);
-+ buffer.append(Constants.NEWLINE);
-+
-+ buffer.append(Constants.INDENT);
-+ buffer.append("prfHashMechanism: ");
-+ buffer.append(prfHashMechanism);
-+
-+ return buffer.toString();
-+ }
-+
-+}
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
-new file mode 100644
---- /dev/null
-+++
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
-@@ -0,0 +1,65 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+package sun.security.pkcs11.wrapper;
-+
-+/**
-+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS from PKCS#11 v2.40.
-+ */
-+public class CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_SSL3_RANDOM_DATA RandomInfo;
-+ * </PRE>
-+ */
-+ public CK_SSL3_RANDOM_DATA RandomInfo;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_VERSION_PTR pVersion;
-+ * </PRE>
-+ */
-+ public CK_VERSION pVersion;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_MECHANISM_TYPE prfHashMechanism;
-+ * </PRE>
-+ */
-+ public long prfHashMechanism;
-+
-+ public CK_TLS12_MASTER_KEY_DERIVE_PARAMS(
-+ CK_SSL3_RANDOM_DATA random, CK_VERSION version,
-+ long prfHashMechanism) {
-+ RandomInfo = random;
-+ pVersion = version;
-+ this.prfHashMechanism = prfHashMechanism;
-+ }
-+
-+}
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
-@@ -0,0 +1,64 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.
-+ */
-+
-+package sun.security.pkcs11.wrapper;
-+
-+/**
-+ * CK_TLS_MAC_PARAMS from PKCS#11 v2.40.
-+ */
-+public class CK_TLS_MAC_PARAMS {
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_MECHANISM_TYPE prfMechanism;
-+ * </PRE>
-+ */
-+ public long prfMechanism;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_ULONG ulMacLength;
-+ * </PRE>
-+ */
-+ public long ulMacLength;
-+
-+ /**
-+ * <B>PKCS#11:</B>
-+ * <PRE>
-+ * CK_ULONG ulServerOrClient;
-+ * </PRE>
-+ */
-+ public long ulServerOrClient;
-+
-+ public CK_TLS_MAC_PARAMS(long prfMechanism,
-+ long ulMacLength, long ulServerOrClient) {
-+ this.prfMechanism = prfMechanism;
-+ this.ulMacLength = ulMacLength;
-+ this.ulServerOrClient = ulServerOrClient;
-+ }
-+
-+}
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -73,6 +73,9 @@
- private static final Map<String,Integer> mechIds =
- new HashMap<String,Integer>();
-
-+ private static final Map<String, Long> hashMechIds =
-+ new HashMap<String, Long>();
-+
- // key types (CKK_*)
- private static final Map<Integer,String> keyNames =
- new HashMap<Integer,String>();
-@@ -94,7 +97,6 @@
- private static final Map<String,Integer> objectClassIds =
- new HashMap<String,Integer>();
-
--
- /**
- * For converting numbers to their hex presentation.
- */
-@@ -444,6 +446,10 @@
- return getId(objectClassIds, name);
- }
-
-+ public static long getHashMechId(String name) {
-+ return hashMechIds.get(name);
-+ }
-+
- /**
- * Check the given arrays for equalitiy. This method considers both arrays as
- * equal, if both are <code>null</code> or both have the same length
and
-@@ -589,6 +595,10 @@
- addMapping(objectClassNames, objectClassIds, id, name);
- }
-
-+ private static void addHashMech(long id, String name) {
-+ hashMechIds.put(name, id);
-+ }
-+
- static {
- addMech(CKM_RSA_PKCS_KEY_PAIR_GEN, "CKM_RSA_PKCS_KEY_PAIR_GEN");
- addMech(CKM_RSA_PKCS, "CKM_RSA_PKCS");
-@@ -719,6 +729,10 @@
- addMech(CKM_TLS_PRF, "CKM_TLS_PRF");
- addMech(CKM_SSL3_MD5_MAC, "CKM_SSL3_MD5_MAC");
- addMech(CKM_SSL3_SHA1_MAC, "CKM_SSL3_SHA1_MAC");
-+ addMech(CKM_TLS12_MASTER_KEY_DERIVE,
"CKM_TLS12_MASTER_KEY_DERIVE");
-+ addMech(CKM_TLS12_KEY_AND_MAC_DERIVE,
"CKM_TLS12_KEY_AND_MAC_DERIVE");
-+ addMech(CKM_TLS12_MASTER_KEY_DERIVE_DH,
"CKM_TLS12_MASTER_KEY_DERIVE_DH");
-+ addMech(CKM_TLS_MAC, "CKM_TLS_MAC");
- addMech(CKM_MD5_KEY_DERIVATION, "CKM_MD5_KEY_DERIVATION");
- addMech(CKM_MD2_KEY_DERIVATION, "CKM_MD2_KEY_DERIVATION");
- addMech(CKM_SHA1_KEY_DERIVATION, "CKM_SHA1_KEY_DERIVATION");
-@@ -794,6 +808,12 @@
- addMech(PCKM_SECURERANDOM, "SecureRandom");
- addMech(PCKM_KEYSTORE, "KeyStore");
-
-+ addHashMech(CKM_SHA_1, "SHA-1");
-+ addHashMech(CKM_SHA224, "SHA-224");
-+ addHashMech(CKM_SHA256, "SHA-256");
-+ addHashMech(CKM_SHA384, "SHA-384");
-+ addHashMech(CKM_SHA512, "SHA-512");
-+
- addKeyType(CKK_RSA, "CKK_RSA");
- addKeyType(CKK_DSA, "CKK_DSA");
- addKeyType(CKK_DH, "CKK_DH");
-diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -625,6 +625,14 @@
- public static final long CKM_PKCS5_PBKD2 = 0x000003B0L;
-
- public static final long CKM_PBA_SHA1_WITH_SHA1_HMAC = 0x000003C0L;
-+
-+ /* CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_KEY_AND_MAC_DERIVE,
-+ * CKM_TLS12_MASTER_KEY_DERIVE_DH and CKM_TLS_MAC are new for v2.40 */
-+ public static final long CKM_TLS12_MASTER_KEY_DERIVE = 0x000003E0L;
-+ public static final long CKM_TLS12_KEY_AND_MAC_DERIVE = 0x000003E1L;
-+ public static final long CKM_TLS12_MASTER_KEY_DERIVE_DH = 0x000003E2L;
-+ public static final long CKM_TLS_MAC = 0x000003E4L;
-+
- public static final long CKM_KEY_WRAP_LYNKS = 0x00000400L;
- public static final long CKM_KEY_WRAP_SET_OAEP = 0x00000401L;
-
-diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -457,67 +457,113 @@
- return ckAttribute ;
- }
-
--/*
-- * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
-- * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
-- *
-- * @param env - used to call JNI funktions to get the Java classes and objects
-- * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
-- * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
-- */
--CK_SSL3_MASTER_KEY_DERIVE_PARAMS
jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam)
--{
-- // XXX don't return structs
-- // XXX prefetch class and field ids
-- jclass jSsl3MasterKeyDeriveParamsClass;
-- CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
-+void masterKeyDeriveParamToCKMasterKeyDeriveParam(JNIEnv *env, jobject jParam,
-+ jclass masterKeyDeriveParamClass,
-+ CK_VERSION_PTR* cKMasterKeyDeriveParamVersion,
-+ CK_SSL3_RANDOM_DATA* cKMasterKeyDeriveParamRandomInfo) {
- jfieldID fieldID;
- jclass jSsl3RandomDataClass;
- jobject jRandomInfo, jRIClientRandom, jRIServerRandom, jVersion;
-- memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
-
- /* get RandomInfo */
-- jSsl3MasterKeyDeriveParamsClass = (*env)->FindClass(env,
CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
-- if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
-- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass,
"RandomInfo", "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass,
"RandomInfo",
-+ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
-+ if (fieldID == NULL) { return; }
- jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
-
- /* get pClientRandom and ulClientRandomLength out of RandomInfo */
- jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
-- if (jSsl3RandomDataClass == NULL) { return ckParam; }
-+ if (jSsl3RandomDataClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pClientRandom", "[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
-
- /* get pServerRandom and ulServerRandomLength out of RandomInfo */
- fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pServerRandom", "[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
-
- /* get pVersion */
-- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass,
"pVersion", "Lsun/security/pkcs11/wrapper/CK_VERSION;");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass,
"pVersion",
-+ "Lsun/security/pkcs11/wrapper/CK_VERSION;");
-+ if (fieldID == NULL) { return; }
- jVersion = (*env)->GetObjectField(env, jParam, fieldID);
-
- /* populate java values */
-- ckParam.pVersion = jVersionToCKVersionPtr(env, jVersion);
-- if ((*env)->ExceptionCheck(env)) { return ckParam; }
-- jByteArrayToCKByteArray(env, jRIClientRandom,
&(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
-+ *cKMasterKeyDeriveParamVersion = jVersionToCKVersionPtr(env, jVersion);
-+ if ((*env)->ExceptionCheck(env)) { return; }
-+ jByteArrayToCKByteArray(env, jRIClientRandom,
-+ &(cKMasterKeyDeriveParamRandomInfo->pClientRandom),
-+ &(cKMasterKeyDeriveParamRandomInfo->ulClientRandomLen));
- if ((*env)->ExceptionCheck(env)) {
-- free(ckParam.pVersion);
-- return ckParam;
-+ free(*cKMasterKeyDeriveParamVersion);
-+ return;
- }
-- jByteArrayToCKByteArray(env, jRIServerRandom,
&(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
-+ jByteArrayToCKByteArray(env, jRIServerRandom,
-+ &(cKMasterKeyDeriveParamRandomInfo->pServerRandom),
-+ &(cKMasterKeyDeriveParamRandomInfo->ulServerRandomLen));
- if ((*env)->ExceptionCheck(env)) {
-- free(ckParam.pVersion);
-- free(ckParam.RandomInfo.pClientRandom);
-- return ckParam;
-+ free(*cKMasterKeyDeriveParamVersion);
-+ free(cKMasterKeyDeriveParamRandomInfo->pClientRandom);
-+ return;
- }
--
-- return ckParam ;
- }
-
-+/*
-+ * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
-+ * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
-+ *
-+ * @param env - used to call JNI functions to get the Java classes and objects
-+ * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
-+ * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
-+ */
-+CK_SSL3_MASTER_KEY_DERIVE_PARAMS
-+jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env,
-+ jobject jParam)
-+{
-+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
-+ jclass jSsl3MasterKeyDeriveParamsClass;
-+ memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
-+ jSsl3MasterKeyDeriveParamsClass =
-+ (*env)->FindClass(env, CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
-+ if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
-+ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
-+ jSsl3MasterKeyDeriveParamsClass,
-+ &ckParam.pVersion, &ckParam.RandomInfo);
-+ return ckParam;
-+}
-+
-+/*
-+ * converts the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to a
-+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
-+ *
-+ * @param env - used to call JNI functions to get the Java classes and objects
-+ * @param jParam - the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to convert
-+ * @return - the new CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
-+ */
-+CK_TLS12_MASTER_KEY_DERIVE_PARAMS
-+jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(JNIEnv *env,
-+ jobject jParam)
-+{
-+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS ckParam;
-+ jclass jTls12MasterKeyDeriveParamsClass;
-+ jfieldID fieldID;
-+ memset(&ckParam, 0, sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
-+ jTls12MasterKeyDeriveParamsClass =
-+ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
-+ if (jTls12MasterKeyDeriveParamsClass == NULL) { return ckParam; }
-+ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
-+ jTls12MasterKeyDeriveParamsClass, &ckParam.pVersion,
-+ &ckParam.RandomInfo);
-+ fieldID = (*env)->GetFieldID(env,
-+ jTls12MasterKeyDeriveParamsClass, "prfHashMechanism",
"J");
-+ if (fieldID != NULL) {
-+ jlong prfHashMechanism =
-+ (*env)->GetLongField(env, jParam, fieldID);
-+ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
-+ }
-+ return ckParam;
-+}
-
- /*
- * converts the Java CK_TLS_PRF_PARAMS object to a CK_TLS_PRF_PARAMS structure
-@@ -576,126 +622,220 @@
- }
-
- /*
-- * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a CK_SSL3_KEY_MAT_PARAMS
structure
-- *
-- * @param env - used to call JNI funktions to get the Java classes and objects
-- * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
-- * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
-+ * converts the Java CK_TLS_MAC_PARAMS object to a CK_TLS_MAC_PARAMS structure
- */
--CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
-+CK_TLS_MAC_PARAMS jTlsMacParamsToCKTlsMacParam(JNIEnv *env, jobject jParam)
- {
-- // XXX don't return structs
-- // XXX prefetch class and field ids
-- jclass jSsl3KeyMatParamsClass, jSsl3RandomDataClass, jSsl3KeyMatOutClass;
-- CK_SSL3_KEY_MAT_PARAMS ckParam;
-+ jclass jTlsMacParamsClass;
-+ CK_TLS_MAC_PARAMS ckParam;
-+ jfieldID fieldID;
-+ jlong jPrfMechanism, jUlMacLength, jUlServerOrClient;
-+ memset(&ckParam, 0, sizeof(CK_TLS_MAC_PARAMS));
-+
-+ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
-+ if (jTlsMacParamsClass == NULL) { return ckParam; }
-+
-+ /* get prfMechanism */
-+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "prfMechanism",
"J");
-+ if (fieldID == NULL) { return ckParam; }
-+ jPrfMechanism = (*env)->GetLongField(env, jParam, fieldID);
-+
-+ /* get ulMacLength */
-+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "ulMacLength",
"J");
-+ if (fieldID == NULL) { return ckParam; }
-+ jUlMacLength = (*env)->GetLongField(env, jParam, fieldID);
-+
-+ /* get ulServerOrClient */
-+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass,
"ulServerOrClient", "J");
-+ if (fieldID == NULL) { return ckParam; }
-+ jUlServerOrClient = (*env)->GetLongField(env, jParam, fieldID);
-+
-+ /* populate java values */
-+ ckParam.prfMechanism = jLongToCKULong(jPrfMechanism);
-+ ckParam.ulMacLength = jLongToCKULong(jUlMacLength);
-+ ckParam.ulServerOrClient = jLongToCKULong(jUlServerOrClient);
-+
-+ return ckParam;
-+}
-+
-+void keyMatParamToCKKeyMatParam(JNIEnv *env, jobject jParam,
-+ jclass jKeyMatParamClass,
-+ CK_ULONG* cKKeyMatParamUlMacSizeInBits,
-+ CK_ULONG* cKKeyMatParamUlKeySizeInBits,
-+ CK_ULONG* cKKeyMatParamUlIVSizeInBits,
-+ CK_BBOOL* cKKeyMatParamBIsExport,
-+ CK_SSL3_RANDOM_DATA* cKKeyMatParamRandomInfo,
-+ CK_SSL3_KEY_MAT_OUT_PTR* cKKeyMatParamPReturnedKeyMaterial)
-+{
-+ jclass jSsl3RandomDataClass, jSsl3KeyMatOutClass;
- jfieldID fieldID;
- jlong jMacSizeInBits, jKeySizeInBits, jIVSizeInBits;
- jboolean jIsExport;
- jobject jRandomInfo, jRIClientRandom, jRIServerRandom;
- jobject jReturnedKeyMaterial, jRMIvClient, jRMIvServer;
- CK_ULONG ckTemp;
-- memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
-
- /* get ulMacSizeInBits */
-- jSsl3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
-- if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulMacSizeInBits", "J");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulMacSizeInBits",
"J");
-+ if (fieldID == NULL) { return; }
- jMacSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
-
- /* get ulKeySizeInBits */
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulKeySizeInBits", "J");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulKeySizeInBits",
"J");
-+ if (fieldID == NULL) { return; }
- jKeySizeInBits = (*env)->GetLongField(env, jParam, fieldID);
-
- /* get ulIVSizeInBits */
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulIVSizeInBits", "J");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulIVSizeInBits",
"J");
-+ if (fieldID == NULL) { return; }
- jIVSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
-
- /* get bIsExport */
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "bIsExport",
"Z");
-- if (fieldID == NULL) { return ckParam; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "bIsExport",
"Z");
-+ if (fieldID == NULL) { return; }
- jIsExport = (*env)->GetBooleanField(env, jParam, fieldID);
-
- /* get RandomInfo */
- jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
-- if (jSsl3RandomDataClass == NULL) { return ckParam; }
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "RandomInfo",
"Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
-- if (fieldID == NULL) { return ckParam; }
-+ if (jSsl3RandomDataClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "RandomInfo",
-+ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
-+ if (fieldID == NULL) { return; }
- jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
-
- /* get pClientRandom and ulClientRandomLength out of RandomInfo */
- fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pClientRandom", "[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
-
- /* get pServerRandom and ulServerRandomLength out of RandomInfo */
- fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pServerRandom", "[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
-
- /* get pReturnedKeyMaterial */
- jSsl3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
-- if (jSsl3KeyMatOutClass == NULL) { return ckParam; }
-- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"pReturnedKeyMaterial",
"Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
-- if (fieldID == NULL) { return ckParam; }
-+ if (jSsl3KeyMatOutClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass,
"pReturnedKeyMaterial",
-+ "Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
-+ if (fieldID == NULL) { return; }
- jReturnedKeyMaterial = (*env)->GetObjectField(env, jParam, fieldID);
-
- /* get pIVClient out of pReturnedKeyMaterial */
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVClient",
"[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRMIvClient = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
-
- /* get pIVServer out of pReturnedKeyMaterial */
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVServer",
"[B");
-- if (fieldID == NULL) { return ckParam; }
-+ if (fieldID == NULL) { return; }
- jRMIvServer = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
-
- /* populate java values */
-- ckParam.ulMacSizeInBits = jLongToCKULong(jMacSizeInBits);
-- ckParam.ulKeySizeInBits = jLongToCKULong(jKeySizeInBits);
-- ckParam.ulIVSizeInBits = jLongToCKULong(jIVSizeInBits);
-- ckParam.bIsExport = jBooleanToCKBBool(jIsExport);
-- jByteArrayToCKByteArray(env, jRIClientRandom,
&(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
-- if ((*env)->ExceptionCheck(env)) { return ckParam; }
-- jByteArrayToCKByteArray(env, jRIServerRandom,
&(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
-+ *cKKeyMatParamUlMacSizeInBits = jLongToCKULong(jMacSizeInBits);
-+ *cKKeyMatParamUlKeySizeInBits = jLongToCKULong(jKeySizeInBits);
-+ *cKKeyMatParamUlIVSizeInBits = jLongToCKULong(jIVSizeInBits);
-+ *cKKeyMatParamBIsExport = jBooleanToCKBBool(jIsExport);
-+ jByteArrayToCKByteArray(env, jRIClientRandom,
-+ &(cKKeyMatParamRandomInfo->pClientRandom),
-+ &(cKKeyMatParamRandomInfo->ulClientRandomLen));
-+ if ((*env)->ExceptionCheck(env)) { return; }
-+ jByteArrayToCKByteArray(env, jRIServerRandom,
-+ &(cKKeyMatParamRandomInfo->pServerRandom),
-+ &(cKKeyMatParamRandomInfo->ulServerRandomLen));
- if ((*env)->ExceptionCheck(env)) {
-- free(ckParam.RandomInfo.pClientRandom);
-- return ckParam;
-+ free(cKKeyMatParamRandomInfo->pClientRandom);
-+ return;
- }
- /* allocate memory for pRetrunedKeyMaterial */
-- ckParam.pReturnedKeyMaterial = (CK_SSL3_KEY_MAT_OUT_PTR)
malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
-- if (ckParam.pReturnedKeyMaterial == NULL) {
-- free(ckParam.RandomInfo.pClientRandom);
-- free(ckParam.RandomInfo.pServerRandom);
-+ *cKKeyMatParamPReturnedKeyMaterial =
-+ (CK_SSL3_KEY_MAT_OUT_PTR)malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
-+ if (*cKKeyMatParamPReturnedKeyMaterial == NULL) {
-+ free(cKKeyMatParamRandomInfo->pClientRandom);
-+ free(cKKeyMatParamRandomInfo->pServerRandom);
- throwOutOfMemoryError(env, 0);
-- return ckParam;
-+ return;
- }
-
- // the handles are output params only, no need to fetch them from Java
-- ckParam.pReturnedKeyMaterial->hClientMacSecret = 0;
-- ckParam.pReturnedKeyMaterial->hServerMacSecret = 0;
-- ckParam.pReturnedKeyMaterial->hClientKey = 0;
-- ckParam.pReturnedKeyMaterial->hServerKey = 0;
-+ (*cKKeyMatParamPReturnedKeyMaterial)->hClientMacSecret = 0;
-+ (*cKKeyMatParamPReturnedKeyMaterial)->hServerMacSecret = 0;
-+ (*cKKeyMatParamPReturnedKeyMaterial)->hClientKey = 0;
-+ (*cKKeyMatParamPReturnedKeyMaterial)->hServerKey = 0;
-
-- jByteArrayToCKByteArray(env, jRMIvClient,
&(ckParam.pReturnedKeyMaterial->pIVClient), &ckTemp);
-+ jByteArrayToCKByteArray(env, jRMIvClient,
-+ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient), &ckTemp);
- if ((*env)->ExceptionCheck(env)) {
-- free(ckParam.RandomInfo.pClientRandom);
-- free(ckParam.RandomInfo.pServerRandom);
-- free(ckParam.pReturnedKeyMaterial);
-- return ckParam;
-+ free(cKKeyMatParamRandomInfo->pClientRandom);
-+ free(cKKeyMatParamRandomInfo->pServerRandom);
-+ free((*cKKeyMatParamPReturnedKeyMaterial));
-+ return;
- }
-- jByteArrayToCKByteArray(env, jRMIvServer,
&(ckParam.pReturnedKeyMaterial->pIVServer), &ckTemp);
-+ jByteArrayToCKByteArray(env, jRMIvServer,
-+ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVServer), &ckTemp);
- if ((*env)->ExceptionCheck(env)) {
-- free(ckParam.RandomInfo.pClientRandom);
-- free(ckParam.RandomInfo.pServerRandom);
-- free(ckParam.pReturnedKeyMaterial->pIVClient);
-- free(ckParam.pReturnedKeyMaterial);
-- return ckParam;
-+ free(cKKeyMatParamRandomInfo->pClientRandom);
-+ free(cKKeyMatParamRandomInfo->pServerRandom);
-+ free((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient);
-+ free((*cKKeyMatParamPReturnedKeyMaterial));
-+ return;
- }
-
-- return ckParam ;
-+ return;
-+}
-+/*
-+ * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a
-+ * CK_SSL3_KEY_MAT_PARAMS structure
-+ *
-+ * @param env - used to call JNI funktions to get the Java classes and objects
-+ * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
-+ * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
-+ */
-+CK_SSL3_KEY_MAT_PARAMS
-+jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
-+{
-+ CK_SSL3_KEY_MAT_PARAMS ckParam;
-+ jclass jSsl3KeyMatParamsClass;
-+ memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
-+ jSsl3KeyMatParamsClass = (*env)->FindClass(env,
-+ CLASS_SSL3_KEY_MAT_PARAMS);
-+ if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
-+ keyMatParamToCKKeyMatParam(env, jParam, jSsl3KeyMatParamsClass,
-+ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
-+ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
-+ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
-+ return ckParam;
-+}
-+
-+/*
-+ * converts the Java CK_TLS12_KEY_MAT_PARAMS object to a
-+ * CK_TLS12_KEY_MAT_PARAMS structure
-+ *
-+ * @param env - used to call JNI functions to get the Java classes and objects
-+ * @param jParam - the Java CK_TLS12_KEY_MAT_PARAMS object to convert
-+ * @return - the new CK_TLS12_KEY_MAT_PARAMS structure
-+ */
-+CK_TLS12_KEY_MAT_PARAMS jTls12KeyMatParamToCKTls12KeyMatParam(JNIEnv *env,
-+ jobject jParam)
-+{
-+ CK_TLS12_KEY_MAT_PARAMS ckParam;
-+ jclass jTls12KeyMatParamsClass;
-+ jfieldID fieldID;
-+ memset(&ckParam, 0, sizeof(CK_TLS12_KEY_MAT_PARAMS));
-+ jTls12KeyMatParamsClass = (*env)->FindClass(env,
-+ CLASS_TLS12_KEY_MAT_PARAMS);
-+ if (jTls12KeyMatParamsClass == NULL) { return ckParam; }
-+ keyMatParamToCKKeyMatParam(env, jParam, jTls12KeyMatParamsClass,
-+ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
-+ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
-+ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
-+ fieldID = (*env)->GetFieldID(env, jTls12KeyMatParamsClass,
-+ "prfHashMechanism", "J");
-+ if (fieldID != NULL) {
-+ jlong prfHashMechanism = (*env)->GetLongField(env, jParam, fieldID);
-+ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
-+ }
-+ return ckParam;
- }
-
- /*
-@@ -980,8 +1120,11 @@
- void jMechanismParameterToCKMechanismParameterSlow(JNIEnv *env, jobject jParam,
CK_VOID_PTR *ckpParamPtr, CK_ULONG *ckpLength)
- {
- /* get all Java mechanism parameter classes */
-- jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
-- jclass jTlsPrfParamsClass, jAesCtrParamsClass, jRsaPkcsOaepParamsClass;
-+ jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass;
-+ jclass jTls12MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
-+ jclass jTls12KeyMatParamsClass;
-+ jclass jTlsPrfParamsClass, jTlsMacParamsClass, jAesCtrParamsClass;
-+ jclass jRsaPkcsOaepParamsClass;
- jclass jPbeParamsClass, jPkcs5Pbkd2ParamsClass, jRsaPkcsPssParamsClass;
- jclass jEcdh1DeriveParamsClass, jEcdh2DeriveParamsClass;
- jclass jX942Dh1DeriveParamsClass, jX942Dh2DeriveParamsClass;
-@@ -1061,6 +1204,62 @@
- return;
- }
-
-+ jTls12KeyMatParamsClass = (*env)->FindClass(env, CLASS_TLS12_KEY_MAT_PARAMS);
-+ if (jTls12KeyMatParamsClass == NULL) { return; }
-+ if ((*env)->IsInstanceOf(env, jParam, jTls12KeyMatParamsClass)) {
-+ /*
-+ * CK_TLS12_KEY_MAT_PARAMS
-+ */
-+ CK_TLS12_KEY_MAT_PARAMS_PTR ckpParam;
-+
-+ ckpParam = (CK_TLS12_KEY_MAT_PARAMS_PTR)
malloc(sizeof(CK_TLS12_KEY_MAT_PARAMS));
-+ if (ckpParam == NULL) {
-+ throwOutOfMemoryError(env, 0);
-+ return;
-+ }
-+
-+ /* convert jParameter to CKParameter */
-+ *ckpParam = jTls12KeyMatParamToCKTls12KeyMatParam(env, jParam);
-+ if ((*env)->ExceptionCheck(env)) {
-+ free(ckpParam);
-+ return;
-+ }
-+
-+ /* get length and pointer of parameter */
-+ *ckpLength = sizeof(CK_TLS12_KEY_MAT_PARAMS);
-+ *ckpParamPtr = ckpParam;
-+ return;
-+ }
-+
-+ jTls12MasterKeyDeriveParamsClass =
-+ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
-+ if (jTls12MasterKeyDeriveParamsClass == NULL) { return; }
-+ if ((*env)->IsInstanceOf(env, jParam, jTls12MasterKeyDeriveParamsClass)) {
-+ /*
-+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS
-+ */
-+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR ckpParam;
-+
-+ ckpParam = (CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR)malloc(
-+ sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
-+ if (ckpParam == NULL) {
-+ throwOutOfMemoryError(env, 0);
-+ return;
-+ }
-+
-+ /* convert jParameter to CKParameter */
-+ *ckpParam = jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(env,
jParam);
-+ if ((*env)->ExceptionCheck(env)) {
-+ free(ckpParam);
-+ return;
-+ }
-+
-+ /* get length and pointer of parameter */
-+ *ckpLength = sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS);
-+ *ckpParamPtr = ckpParam;
-+ return;
-+ }
-+
- jTlsPrfParamsClass = (*env)->FindClass(env, CLASS_TLS_PRF_PARAMS);
- if (jTlsPrfParamsClass == NULL) { return; }
- if ((*env)->IsInstanceOf(env, jParam, jTlsPrfParamsClass)) {
-@@ -1088,6 +1287,30 @@
- return;
- }
-
-+ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
-+ if (jTlsMacParamsClass == NULL) { return; }
-+ if ((*env)->IsInstanceOf(env, jParam, jTlsMacParamsClass)) {
-+ CK_TLS_MAC_PARAMS_PTR ckpParam;
-+
-+ ckpParam = (CK_TLS_MAC_PARAMS_PTR) malloc(sizeof(CK_TLS_MAC_PARAMS));
-+ if (ckpParam == NULL) {
-+ throwOutOfMemoryError(env, 0);
-+ return;
-+ }
-+
-+ /* convert jParameter to CKParameter */
-+ *ckpParam = jTlsMacParamsToCKTlsMacParam(env, jParam);
-+ if ((*env)->ExceptionCheck(env)) {
-+ free(ckpParam);
-+ return;
-+ }
-+
-+ /* get length and pointer of parameter */
-+ *ckpLength = sizeof(CK_TLS_MAC_PARAMS);
-+ *ckpParamPtr = ckpParam;
-+ return;
-+ }
-+
- jAesCtrParamsClass = (*env)->FindClass(env, CLASS_AES_CTR_PARAMS);
- if (jAesCtrParamsClass == NULL) { return; }
- if ((*env)->IsInstanceOf(env, jParam, jAesCtrParamsClass)) {
-diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -355,25 +355,38 @@
-
- #ifdef P11_ENABLE_C_DERIVEKEY
-
--void freeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
-+static void freeMasterKeyDeriveParams(CK_SSL3_RANDOM_DATA *RandomInfo, CK_VERSION_PTR
pVersion) {
-+ if (RandomInfo->pClientRandom != NULL) {
-+ free(RandomInfo->pClientRandom);
-+ }
-+ if (RandomInfo->pServerRandom != NULL) {
-+ free(RandomInfo->pServerRandom);
-+ }
-+ if (pVersion != NULL) {
-+ free(pVersion);
-+ }
-+}
-+
-+void ssl3FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
- CK_SSL3_MASTER_KEY_DERIVE_PARAMS *params = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)
ckMechanism->pParameter;
- if (params == NULL) {
- return;
- }
-+ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
-+}
-
-- if (params->RandomInfo.pClientRandom != NULL) {
-- free(params->RandomInfo.pClientRandom);
-+void tls12FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
-+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *params =
-+ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
-+ if (params == NULL) {
-+ return;
- }
-- if (params->RandomInfo.pServerRandom != NULL) {
-- free(params->RandomInfo.pServerRandom);
-- }
-- if (params->pVersion != NULL) {
-- free(params->pVersion);
-- }
-+ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
- }
-
- void freeEcdh1DeriveParams(CK_MECHANISM_PTR ckMechanism) {
-- CK_ECDH1_DERIVE_PARAMS *params = (CK_ECDH1_DERIVE_PARAMS *)
ckMechanism->pParameter;
-+ CK_ECDH1_DERIVE_PARAMS *params =
-+ (CK_ECDH1_DERIVE_PARAMS *)ckMechanism->pParameter;
- if (params == NULL) {
- return;
- }
-@@ -498,6 +511,7 @@
- switch (ckMechanism.mechanism) {
- case CKM_SSL3_KEY_AND_MAC_DERIVE:
- case CKM_TLS_KEY_AND_MAC_DERIVE:
-+ case CKM_TLS12_KEY_AND_MAC_DERIVE:
- case CKM_TLS_PRF:
- // these mechanism do not return a key handle via phKey
- // set to NULL in case pedantic implementations check for it
-@@ -519,17 +533,28 @@
- case CKM_SSL3_MASTER_KEY_DERIVE:
- case CKM_TLS_MASTER_KEY_DERIVE:
- /* we must copy back the client version */
-- copyBackClientVersion(env, &ckMechanism, jMechanism);
-- freeMasterKeyDeriveParams(&ckMechanism);
-+ ssl3CopyBackClientVersion(env, &ckMechanism, jMechanism);
-+ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
-+ break;
-+ case CKM_TLS12_MASTER_KEY_DERIVE:
-+ tls12CopyBackClientVersion(env, &ckMechanism, jMechanism);
-+ tls12FreeMasterKeyDeriveParams(&ckMechanism);
- break;
- case CKM_SSL3_MASTER_KEY_DERIVE_DH:
- case CKM_TLS_MASTER_KEY_DERIVE_DH:
-- freeMasterKeyDeriveParams(&ckMechanism);
-+ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
-+ break;
-+ case CKM_TLS12_MASTER_KEY_DERIVE_DH:
-+ tls12FreeMasterKeyDeriveParams(&ckMechanism);
- break;
- case CKM_SSL3_KEY_AND_MAC_DERIVE:
- case CKM_TLS_KEY_AND_MAC_DERIVE:
- /* we must copy back the unwrapped key info to the jMechanism object */
-- copyBackSSLKeyMatParams(env, &ckMechanism, jMechanism);
-+ ssl3CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
-+ break;
-+ case CKM_TLS12_KEY_AND_MAC_DERIVE:
-+ /* we must copy back the unwrapped key info to the jMechanism object */
-+ tls12CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
- break;
- case CKM_TLS_PRF:
- copyBackTLSPrfParams(env, &ckMechanism, jMechanism);
-@@ -550,53 +575,42 @@
- return jKeyHandle ;
- }
-
--/*
-- * Copy back the client version information from the native
-- * structure to the Java object. This is only used for the
-- * CKM_SSL3_MASTER_KEY_DERIVE mechanism when used for deriving a key.
-- *
-- */
--void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism)
-+static void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism,
-+ CK_VERSION *ckVersion, const char *class_master_key_derive_params)
- {
-- jclass jMechanismClass, jSSL3MasterKeyDeriveParamsClass, jVersionClass;
-- CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
-- CK_VERSION *ckVersion;
-- jfieldID fieldID;
-- CK_MECHANISM_TYPE ckMechanismType;
-- jlong jMechanismType;
-- jobject jSSL3MasterKeyDeriveParams;
-- jobject jVersion;
-+ jclass jMasterKeyDeriveParamsClass, jMechanismClass, jVersionClass;
-+ jobject jMasterKeyDeriveParams;
-+ jfieldID fieldID;
-+ CK_MECHANISM_TYPE ckMechanismType;
-+ jlong jMechanismType;
-+ jobject jVersion;
-
-- /* get mechanism */
-- jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
-- if (jMechanismClass == NULL) { return; }
-- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
-- if (fieldID == NULL) { return; }
-- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
-- ckMechanismType = jLongToCKULong(jMechanismType);
-- if (ckMechanismType != ckMechanism->mechanism) {
-- /* we do not have maching types, this should not occur */
-- return;
-- }
-+ /* get mechanism */
-+ jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
-+ if (jMechanismClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
-+ if (fieldID == NULL) { return; }
-+ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
-+ ckMechanismType = jLongToCKULong(jMechanismType);
-+ if (ckMechanismType != ckMechanism->mechanism) {
-+ /* we do not have maching types, this should not occur */
-+ return;
-+ }
-
-- /* get the native CK_SSL3_MASTER_KEY_DERIVE_PARAMS */
-- ckSSL3MasterKeyDeriveParams = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)
ckMechanism->pParameter;
-- if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
-- /* get the native CK_VERSION */
-- ckVersion = ckSSL3MasterKeyDeriveParams->pVersion;
- if (ckVersion != NULL_PTR) {
- /* get the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS (pParameter) */
- fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
"Ljava/lang/Object;");
- if (fieldID == NULL) { return; }
-
-- jSSL3MasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
-+ jMasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
-
- /* get the Java CK_VERSION */
-- jSSL3MasterKeyDeriveParamsClass = (*env)->FindClass(env,
CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
-- if (jSSL3MasterKeyDeriveParamsClass == NULL) { return; }
-- fieldID = (*env)->GetFieldID(env, jSSL3MasterKeyDeriveParamsClass,
"pVersion", "L"CLASS_VERSION";");
-+ jMasterKeyDeriveParamsClass = (*env)->FindClass(env,
class_master_key_derive_params);
-+ if (jMasterKeyDeriveParamsClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jMasterKeyDeriveParamsClass,
-+ "pVersion", "L"CLASS_VERSION";");
- if (fieldID == NULL) { return; }
-- jVersion = (*env)->GetObjectField(env, jSSL3MasterKeyDeriveParams, fieldID);
-+ jVersion = (*env)->GetObjectField(env, jMasterKeyDeriveParams, fieldID);
-
- /* now copy back the version from the native structure to the Java structure */
-
-@@ -612,92 +626,126 @@
- if (fieldID == NULL) { return; }
- (*env)->SetByteField(env, jVersion, fieldID,
ckByteToJByte(ckVersion->minor));
- }
-- }
- }
-
-+/*
-+ * Copy back the client version information from the native
-+ * structure to the Java object. This is only used for
-+ * CKM_SSL3_MASTER_KEY_DERIVE and CKM_TLS_MASTER_KEY_DERIVE
-+ * mechanisms when used for deriving a key.
-+ *
-+ */
-+void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
-+ jobject jMechanism)
-+{
-+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
-+ ckSSL3MasterKeyDeriveParams =
-+ (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
-+ if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
-+ copyBackClientVersion(env, ckMechanism, jMechanism,
-+ ckSSL3MasterKeyDeriveParams->pVersion,
-+ CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
-+ }
-+}
-
- /*
-- * Copy back the derived keys and initialization vectors from the native
-- * structure to the Java object. This is only used for the
-- * CKM_SSL3_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
-+ * Copy back the client version information from the native
-+ * structure to the Java object. This is only used for
-+ * CKM_TLS12_MASTER_KEY_DERIVE mechanism when used for deriving a key.
- *
- */
--void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism)
-+void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
-+ jobject jMechanism)
- {
-- jclass jMechanismClass, jSSL3KeyMatParamsClass, jSSL3KeyMatOutClass;
-- CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
-- CK_SSL3_KEY_MAT_OUT *ckSSL3KeyMatOut;
-- jfieldID fieldID;
-- CK_MECHANISM_TYPE ckMechanismType;
-- jlong jMechanismType;
-- CK_BYTE_PTR iv;
-- jobject jSSL3KeyMatParam;
-- jobject jSSL3KeyMatOut;
-- jobject jIV;
-- jint jLength;
-- jbyte* jBytes;
-- int i;
-+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *ckTLS12MasterKeyDeriveParams;
-+ ckTLS12MasterKeyDeriveParams =
-+ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
-+ if (ckTLS12MasterKeyDeriveParams != NULL_PTR) {
-+ copyBackClientVersion(env, ckMechanism, jMechanism,
-+ ckTLS12MasterKeyDeriveParams->pVersion,
-+ CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
-+ }
-+}
-
-- /* get mechanism */
-- jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
-- if (jMechanismClass == NULL) { return; }
-- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
-- if (fieldID == NULL) { return; }
-- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
-- ckMechanismType = jLongToCKULong(jMechanismType);
-- if (ckMechanismType != ckMechanism->mechanism) {
-- /* we do not have maching types, this should not occur */
-- return;
-- }
-+static void copyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
-+ jobject jMechanism, CK_SSL3_RANDOM_DATA *RandomInfo,
-+ CK_SSL3_KEY_MAT_OUT_PTR ckSSL3KeyMatOut, const char *class_key_mat_params)
-+{
-+ jclass jMechanismClass, jKeyMatParamsClass, jSSL3KeyMatOutClass;
-+ jfieldID fieldID;
-+ CK_MECHANISM_TYPE ckMechanismType;
-+ jlong jMechanismType;
-+ CK_BYTE_PTR iv;
-+ jobject jKeyMatParam;
-+ jobject jSSL3KeyMatOut;
-+ jobject jIV;
-+ jint jLength;
-+ jbyte* jBytes;
-+ int i;
-
-- /* get the native CK_SSL3_KEY_MAT_PARAMS */
-- ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *) ckMechanism->pParameter;
-- if (ckSSL3KeyMatParam != NULL_PTR) {
-- // free malloc'd data
-- if (ckSSL3KeyMatParam->RandomInfo.pClientRandom != NULL) {
-- free(ckSSL3KeyMatParam->RandomInfo.pClientRandom);
-- }
-- if (ckSSL3KeyMatParam->RandomInfo.pServerRandom != NULL) {
-- free(ckSSL3KeyMatParam->RandomInfo.pServerRandom);
-+ /* get mechanism */
-+ jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
-+ if (jMechanismClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
-+ if (fieldID == NULL) { return; }
-+ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
-+ ckMechanismType = jLongToCKULong(jMechanismType);
-+ if (ckMechanismType != ckMechanism->mechanism) {
-+ /* we do not have maching types, this should not occur */
-+ return;
- }
-
-- /* get the native CK_SSL3_KEY_MAT_OUT */
-- ckSSL3KeyMatOut = ckSSL3KeyMatParam->pReturnedKeyMaterial;
-+ // free malloc'd data
-+ if (RandomInfo->pClientRandom != NULL) {
-+ free(RandomInfo->pClientRandom);
-+ }
-+ if (RandomInfo->pServerRandom != NULL) {
-+ free(RandomInfo->pServerRandom);
-+ }
-+
- if (ckSSL3KeyMatOut != NULL_PTR) {
-- /* get the Java CK_SSL3_KEY_MAT_PARAMS (pParameter) */
-- fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
"Ljava/lang/Object;");
-+ /* get the Java params object (pParameter) */
-+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
-+ "Ljava/lang/Object;");
- if (fieldID == NULL) { return; }
-- jSSL3KeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
-+ jKeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
-
- /* get the Java CK_SSL3_KEY_MAT_OUT */
-- jSSL3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
-- if (jSSL3KeyMatParamsClass == NULL) { return; }
-- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatParamsClass,
"pReturnedKeyMaterial", "L"CLASS_SSL3_KEY_MAT_OUT";");
-+ jKeyMatParamsClass = (*env)->FindClass(env, class_key_mat_params);
-+ if (jKeyMatParamsClass == NULL) { return; }
-+ fieldID = (*env)->GetFieldID(env, jKeyMatParamsClass,
-+ "pReturnedKeyMaterial",
"L"CLASS_SSL3_KEY_MAT_OUT";");
- if (fieldID == NULL) { return; }
-- jSSL3KeyMatOut = (*env)->GetObjectField(env, jSSL3KeyMatParam, fieldID);
-+ jSSL3KeyMatOut = (*env)->GetObjectField(env, jKeyMatParam, fieldID);
-
- /* now copy back all the key handles and the initialization vectors */
- /* copy back client MAC secret handle */
- jSSL3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
- if (jSSL3KeyMatOutClass == NULL) { return; }
-- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
"hClientMacSecret", "J");
-+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
-+ "hClientMacSecret", "J");
- if (fieldID == NULL) { return; }
-- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
-+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
-+ ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
-
- /* copy back server MAC secret handle */
-- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
"hServerMacSecret", "J");
-+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
-+ "hServerMacSecret", "J");
- if (fieldID == NULL) { return; }
-- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
-+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
-+ ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
-
- /* copy back client secret key handle */
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hClientKey",
"J");
- if (fieldID == NULL) { return; }
-- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
-+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
-+ ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
-
- /* copy back server secret key handle */
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hServerKey",
"J");
- if (fieldID == NULL) { return; }
-- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
-+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
-+ ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
-
- /* copy back the client IV */
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "pIVClient",
"[B");
-@@ -740,7 +788,45 @@
- free(ckSSL3KeyMatOut->pIVServer);
- free(ckSSL3KeyMatOut);
- }
-- }
-+}
-+
-+/*
-+ * Copy back the derived keys and initialization vectors from the native
-+ * structure to the Java object. This is only used for
-+ * CKM_SSL3_KEY_AND_MAC_DERIVE and CKM_TLS_KEY_AND_MAC_DERIVE mechanisms
-+ * when used for deriving a key.
-+ *
-+ */
-+void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
-+ jobject jMechanism)
-+{
-+ CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
-+ ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *)ckMechanism->pParameter;
-+ if (ckSSL3KeyMatParam != NULL_PTR) {
-+ copyBackKeyMatParams(env, ckMechanism, jMechanism,
-+ &(ckSSL3KeyMatParam->RandomInfo),
-+ ckSSL3KeyMatParam->pReturnedKeyMaterial,
-+ CLASS_SSL3_KEY_MAT_PARAMS);
-+ }
-+}
-+
-+/*
-+ * Copy back the derived keys and initialization vectors from the native
-+ * structure to the Java object. This is only used for
-+ * CKM_TLS12_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
-+ *
-+ */
-+void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
-+ jobject jMechanism)
-+{
-+ CK_TLS12_KEY_MAT_PARAMS *ckTLS12KeyMatParam;
-+ ckTLS12KeyMatParam = (CK_TLS12_KEY_MAT_PARAMS *) ckMechanism->pParameter;
-+ if (ckTLS12KeyMatParam != NULL_PTR) {
-+ copyBackKeyMatParams(env, ckMechanism, jMechanism,
-+ &(ckTLS12KeyMatParam->RandomInfo),
-+ ckTLS12KeyMatParam->pReturnedKeyMaterial,
-+ CLASS_TLS12_KEY_MAT_PARAMS);
-+ }
- }
-
- #endif
-diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
-@@ -807,6 +807,12 @@
- #define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003D4
- #define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003D5
-
-+/* new for v2.40 */
-+#define CKM_TLS12_MASTER_KEY_DERIVE 0x000003E0
-+#define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003E1
-+#define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003E2
-+#define CKM_TLS_MAC 0x000003E4
-+
- #define CKM_KEY_WRAP_LYNKS 0x00000400
- #define CKM_KEY_WRAP_SET_OAEP 0x00000401
-
-@@ -1682,4 +1688,34 @@
-
- typedef CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR;
-
-+/* new for v2.40 */
-+
-+typedef struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
-+ CK_SSL3_RANDOM_DATA RandomInfo;
-+ CK_VERSION_PTR pVersion;
-+ CK_MECHANISM_TYPE prfHashMechanism;
-+} CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
-+
-+typedef CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR;
-+
-+typedef struct CK_TLS12_KEY_MAT_PARAMS {
-+ CK_ULONG ulMacSizeInBits;
-+ CK_ULONG ulKeySizeInBits;
-+ CK_ULONG ulIVSizeInBits;
-+ CK_BBOOL bIsExport;
-+ CK_SSL3_RANDOM_DATA RandomInfo;
-+ CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
-+ CK_MECHANISM_TYPE prfHashMechanism;
-+} CK_TLS12_KEY_MAT_PARAMS;
-+
-+typedef CK_TLS12_KEY_MAT_PARAMS CK_PTR CK_TLS12_KEY_MAT_PARAMS_PTR;
-+
-+typedef struct CK_TLS_MAC_PARAMS {
-+ CK_MECHANISM_TYPE prfMechanism;
-+ CK_ULONG ulMacLength;
-+ CK_ULONG ulServerOrClient;
-+} CK_TLS_MAC_PARAMS;
-+
-+typedef CK_TLS_MAC_PARAMS CK_PTR CK_TLS_MAC_PARAMS_PTR;
-+
- #endif
-diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- */
-
- /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
-@@ -268,10 +268,13 @@
- #define CLASS_SSL3_RANDOM_DATA
"sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA"
- // CLASS_SSL3_RANDOM_DATA is used by CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS
- #define CLASS_SSL3_KEY_MAT_OUT
"sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT"
--// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS
-+// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS and
CK_TLS12_KEY_MAT_PARAMS
- #define CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS
"sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS"
-+#define CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS
"sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS"
- #define CLASS_SSL3_KEY_MAT_PARAMS
"sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_PARAMS"
-+#define CLASS_TLS12_KEY_MAT_PARAMS
"sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS"
- #define CLASS_TLS_PRF_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS"
-+#define CLASS_TLS_MAC_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS"
- #define CLASS_AES_CTR_PARAMS "sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS"
-
- /* function to convert a PKCS#11 return value other than CK_OK into a Java Exception
-@@ -361,9 +364,11 @@
- CK_KEY_WRAP_SET_OAEP_PARAMS jKeyWrapSetOaepParamToCKKeyWrapSetOaepParam(JNIEnv *env,
jobject jParam);
- void copyBackSetUnwrappedKey(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
- CK_SSL3_MASTER_KEY_DERIVE_PARAMS
jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam);
--void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
-+void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
-+void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
- CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject
jParam);
--void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
-+void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
-+void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
- CK_KEY_DERIVATION_STRING_DATA jKeyDerivationStringDataToCKKeyDerivationStringData(JNIEnv
*env, jobject jParam);
- CK_RSA_PKCS_PSS_PARAMS jRsaPkcsPssParamToCKRsaPkcsPssParam(JNIEnv *env, jobject
jParam);
- CK_ECDH1_DERIVE_PARAMS jEcdh1DeriveParamToCKEcdh1DeriveParam(JNIEnv *env, jobject
jParam);
-diff --git openjdk.orig/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
openjdk/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
-@@ -0,0 +1,449 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. 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
-+ * @bug 8029661
-+ * @summary Test TLS 1.2
-+ * @library ..
-+ * @run main/othervm/timeout=120 TestTLS12
-+ */
-+
-+import java.io.File;
-+import java.io.FileInputStream;
-+import java.io.InputStream;
-+import java.nio.ByteBuffer;
-+
-+import java.security.interfaces.RSAPrivateKey;
-+import java.security.interfaces.RSAPublicKey;
-+import java.security.KeyStore;
-+import java.security.NoSuchAlgorithmException;
-+import java.security.Provider;
-+import java.security.SecureRandom;
-+import java.security.Security;
-+
-+import java.util.Arrays;
-+
-+import javax.crypto.Cipher;
-+import javax.crypto.KeyGenerator;
-+import javax.crypto.SecretKey;
-+import javax.crypto.spec.SecretKeySpec;
-+
-+import javax.net.ssl.KeyManagerFactory;
-+import javax.net.ssl.SSLContext;
-+import javax.net.ssl.SSLEngine;
-+import javax.net.ssl.SSLEngineResult;
-+import javax.net.ssl.SSLEngineResult.HandshakeStatus;
-+import javax.net.ssl.SSLParameters;
-+import javax.net.ssl.SSLSession;
-+import javax.net.ssl.TrustManagerFactory;
-+
-+import sun.security.internal.spec.TlsMasterSecretParameterSpec;
-+import sun.security.internal.spec.TlsPrfParameterSpec;
-+import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec;
-+
-+public final class TestTLS12 extends SecmodTest {
-+
-+ private static final boolean enableDebug = true;
-+
-+ private static Provider sunPKCS11NSSProvider;
-+ private static Provider sunJCEProvider;
-+ private static com.sun.net.ssl.internal.ssl.Provider jsseProvider;
-+ private static KeyStore ks;
-+ private static KeyStore ts;
-+ private static char[] passphrase = "JAHshj131@(a)".toCharArray();
-+ private static RSAPrivateKey privateKey;
-+ private static RSAPublicKey publicKey;
-+
-+ public static void main(String[] args) throws Exception {
-+ try {
-+ initialize();
-+ } catch (Exception e) {
-+ System.out.println("Test skipped: failure during" +
-+ " initialization");
-+ return;
-+ }
-+
-+ if (shouldRun()) {
-+ // Test against JCE
-+ testTlsAuthenticationCodeGeneration();
-+
-+ // Self-integrity test (complete TLS 1.2 communication)
-+ new testTLS12SunPKCS11Communication().run();
-+
-+ System.out.println("Test PASS - OK");
-+ } else {
-+ System.out.println("Test skipped: TLS 1.2 mechanisms" +
-+ " not supported by current SunPKCS11 back-end");
-+ }
-+ }
-+
-+ private static boolean shouldRun() {
-+ if (sunPKCS11NSSProvider == null) {
-+ return false;
-+ }
-+ try {
-+ KeyGenerator.getInstance("SunTls12MasterSecret",
-+ sunPKCS11NSSProvider);
-+ KeyGenerator.getInstance(
-+ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
-+ KeyGenerator.getInstance("SunTls12Prf", sunPKCS11NSSProvider);
-+ } catch (NoSuchAlgorithmException e) {
-+ return false;
-+ }
-+ return true;
-+ }
-+
-+ private static void testTlsAuthenticationCodeGeneration()
-+ throws Exception {
-+ // Generate RSA Pre-Master Secret in SunPKCS11 provider
-+ SecretKey rsaPreMasterSecret = null;
-+ @SuppressWarnings("deprecation")
-+ TlsRsaPremasterSecretParameterSpec rsaPreMasterSecretSpec =
-+ new TlsRsaPremasterSecretParameterSpec(0x0303, 0x0303);
-+ {
-+ KeyGenerator rsaPreMasterSecretKG = KeyGenerator.getInstance(
-+ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
-+ rsaPreMasterSecretKG.init(rsaPreMasterSecretSpec, null);
-+ rsaPreMasterSecret = rsaPreMasterSecretKG.generateKey();
-+ }
-+
-+ // Get RSA Pre-Master Secret in plain (from SunPKCS11 provider)
-+ byte[] rsaPlainPreMasterSecret = null;
-+ {
-+ Cipher rsaPreMasterSecretWrapperCipher =
-+ Cipher.getInstance("RSA/ECB/PKCS1Padding",
-+ sunPKCS11NSSProvider);
-+ rsaPreMasterSecretWrapperCipher.init(Cipher.WRAP_MODE, publicKey,
-+ new SecureRandom());
-+ byte[] rsaEncryptedPreMasterSecret =
-+ rsaPreMasterSecretWrapperCipher.wrap(rsaPreMasterSecret);
-+ Cipher rsaPreMasterSecretUnwrapperCipher =
-+ Cipher.getInstance("RSA/ECB/PKCS1Padding",
sunJCEProvider);
-+ rsaPreMasterSecretUnwrapperCipher.init(Cipher.UNWRAP_MODE,
-+ privateKey, rsaPreMasterSecretSpec);
-+ rsaPlainPreMasterSecret = rsaPreMasterSecretUnwrapperCipher.unwrap(
-+ rsaEncryptedPreMasterSecret, "TlsRsaPremasterSecret",
-+ Cipher.SECRET_KEY).getEncoded();
-+
-+ if (enableDebug) {
-+ System.out.println("rsaPlainPreMasterSecret:");
-+ for (byte b : rsaPlainPreMasterSecret) {
-+ System.out.printf("%02X, ", b);
-+ }
-+ System.out.println("");
-+ }
-+ }
-+
-+ // Generate Master Secret
-+ SecretKey sunPKCS11MasterSecret = null;
-+ SecretKey jceMasterSecret = null;
-+ {
-+ KeyGenerator sunPKCS11MasterSecretGenerator =
-+ KeyGenerator.getInstance("SunTls12MasterSecret",
-+ sunPKCS11NSSProvider);
-+ KeyGenerator jceMasterSecretGenerator = KeyGenerator.getInstance(
-+ "SunTls12MasterSecret", sunJCEProvider);
-+ @SuppressWarnings("deprecation")
-+ TlsMasterSecretParameterSpec sunPKCS11MasterSecretSpec =
-+ new TlsMasterSecretParameterSpec(rsaPreMasterSecret, 3, 3,
-+ new byte[32], new byte[32], "SHA-256", 32, 64);
-+ @SuppressWarnings("deprecation")
-+ TlsMasterSecretParameterSpec jceMasterSecretSpec =
-+ new TlsMasterSecretParameterSpec(
-+ new SecretKeySpec(rsaPlainPreMasterSecret,
-+ "Generic"), 3, 3, new byte[32],
-+ new byte[32], "SHA-256", 32, 64);
-+ sunPKCS11MasterSecretGenerator.init(sunPKCS11MasterSecretSpec,
-+ null);
-+ jceMasterSecretGenerator.init(jceMasterSecretSpec, null);
-+ sunPKCS11MasterSecret =
-+ sunPKCS11MasterSecretGenerator.generateKey();
-+ jceMasterSecret = jceMasterSecretGenerator.generateKey();
-+ if (enableDebug) {
-+ System.out.println("Master Secret (SunJCE):");
-+ if (jceMasterSecret != null) {
-+ for (byte b : jceMasterSecret.getEncoded()) {
-+ System.out.printf("%02X, ", b);
-+ }
-+ System.out.println("");
-+ }
-+ }
-+ }
-+
-+ // Generate authentication codes
-+ byte[] sunPKCS11AuthenticationCode = null;
-+ byte[] jceAuthenticationCode = null;
-+ {
-+ // Generate SunPKCS11 authentication code
-+ {
-+ @SuppressWarnings("deprecation")
-+ TlsPrfParameterSpec sunPKCS11AuthenticationCodeSpec =
-+ new TlsPrfParameterSpec(sunPKCS11MasterSecret,
-+ "client finished", "a".getBytes(),
12,
-+ "SHA-256", 32, 64);
-+ KeyGenerator sunPKCS11AuthCodeGenerator =
-+ KeyGenerator.getInstance("SunTls12Prf",
-+ sunPKCS11NSSProvider);
-+ sunPKCS11AuthCodeGenerator.init(
-+ sunPKCS11AuthenticationCodeSpec);
-+ sunPKCS11AuthenticationCode =
-+ sunPKCS11AuthCodeGenerator.generateKey().getEncoded();
-+ }
-+
-+ // Generate SunJCE authentication code
-+ {
-+ @SuppressWarnings("deprecation")
-+ TlsPrfParameterSpec jceAuthenticationCodeSpec =
-+ new TlsPrfParameterSpec(jceMasterSecret,
-+ "client finished", "a".getBytes(),
12,
-+ "SHA-256", 32, 64);
-+ KeyGenerator jceAuthCodeGenerator =
-+ KeyGenerator.getInstance("SunTls12Prf",
-+ sunJCEProvider);
-+ jceAuthCodeGenerator.init(jceAuthenticationCodeSpec);
-+ jceAuthenticationCode =
-+ jceAuthCodeGenerator.generateKey().getEncoded();
-+ }
-+
-+ if (enableDebug) {
-+ System.out.println("SunPKCS11 Authentication Code: ");
-+ for (byte b : sunPKCS11AuthenticationCode) {
-+ System.out.printf("%02X, ", b);
-+ }
-+ System.out.println("");
-+ System.out.println("SunJCE Authentication Code: ");
-+ for (byte b : jceAuthenticationCode) {
-+ System.out.printf("%02X, ", b);
-+ }
-+ System.out.println("");
-+ }
-+ }
-+
-+ if (sunPKCS11AuthenticationCode == null ||
-+ jceAuthenticationCode == null ||
-+ sunPKCS11AuthenticationCode.length == 0 ||
-+ jceAuthenticationCode.length == 0 ||
-+ !Arrays.equals(sunPKCS11AuthenticationCode,
-+ jceAuthenticationCode)) {
-+ throw new Exception("Authentication codes from JCE" +
-+ " and SunPKCS11 differ.");
-+ }
-+ }
-+
-+ private static class testTLS12SunPKCS11Communication {
-+ public static void run() throws Exception {
-+ SSLEngine[][] enginesToTest = getSSLEnginesToTest();
-+
-+ for (SSLEngine[] engineToTest : enginesToTest) {
-+
-+ SSLEngine clientSSLEngine = engineToTest[0];
-+ SSLEngine serverSSLEngine = engineToTest[1];
-+
-+ // SSLEngine code based on RedhandshakeFinished.java
-+
-+ boolean dataDone = false;
-+
-+ ByteBuffer clientOut = null;
-+ ByteBuffer clientIn = null;
-+ ByteBuffer serverOut = null;
-+ ByteBuffer serverIn = null;
-+ ByteBuffer cTOs;
-+ ByteBuffer sTOc;
-+
-+ SSLSession session = clientSSLEngine.getSession();
-+ int appBufferMax = session.getApplicationBufferSize();
-+ int netBufferMax = session.getPacketBufferSize();
-+
-+ clientIn = ByteBuffer.allocate(appBufferMax + 50);
-+ serverIn = ByteBuffer.allocate(appBufferMax + 50);
-+
-+ cTOs = ByteBuffer.allocateDirect(netBufferMax);
-+ sTOc = ByteBuffer.allocateDirect(netBufferMax);
-+
-+ clientOut = ByteBuffer.wrap(
-+ "Hi Server, I'm Client".getBytes());
-+ serverOut = ByteBuffer.wrap(
-+ "Hello Client, I'm Server".getBytes());
-+
-+ SSLEngineResult clientResult;
-+ SSLEngineResult serverResult;
-+
-+ while (!dataDone) {
-+ clientResult = clientSSLEngine.wrap(clientOut, cTOs);
-+ runDelegatedTasks(clientResult, clientSSLEngine);
-+ serverResult = serverSSLEngine.wrap(serverOut, sTOc);
-+ runDelegatedTasks(serverResult, serverSSLEngine);
-+ cTOs.flip();
-+ sTOc.flip();
-+
-+ if (enableDebug) {
-+ System.out.println("Client -> Network");
-+ printTlsNetworkPacket("", cTOs);
-+ System.out.println("");
-+ System.out.println("Server -> Network");
-+ printTlsNetworkPacket("", sTOc);
-+ System.out.println("");
-+ }
-+
-+ clientResult = clientSSLEngine.unwrap(sTOc, clientIn);
-+ runDelegatedTasks(clientResult, clientSSLEngine);
-+ serverResult = serverSSLEngine.unwrap(cTOs, serverIn);
-+ runDelegatedTasks(serverResult, serverSSLEngine);
-+
-+ cTOs.compact();
-+ sTOc.compact();
-+
-+ if (!dataDone &&
-+ (clientOut.limit() == serverIn.position()) &&
-+ (serverOut.limit() == clientIn.position())) {
-+ checkTransfer(serverOut, clientIn);
-+ checkTransfer(clientOut, serverIn);
-+ dataDone = true;
-+ }
-+ }
-+ }
-+ }
-+
-+ static void printTlsNetworkPacket(String prefix, ByteBuffer bb) {
-+ ByteBuffer slice = bb.slice();
-+ byte[] buffer = new byte[slice.remaining()];
-+ slice.get(buffer);
-+ for (int i = 0; i < buffer.length; i++) {
-+ System.out.printf("%02X, ", (byte)(buffer[i] &
(byte)0xFF));
-+ if (i % 8 == 0 && i % 16 != 0) {
-+ System.out.print(" ");
-+ }
-+ if (i % 16 == 0) {
-+ System.out.println("");
-+ }
-+ }
-+ System.out.flush();
-+ }
-+
-+ private static void checkTransfer(ByteBuffer a, ByteBuffer b)
-+ throws Exception {
-+ a.flip();
-+ b.flip();
-+ if (!a.equals(b)) {
-+ throw new Exception("Data didn't transfer cleanly");
-+ }
-+ a.position(a.limit());
-+ b.position(b.limit());
-+ a.limit(a.capacity());
-+ b.limit(b.capacity());
-+ }
-+
-+ private static void runDelegatedTasks(SSLEngineResult result,
-+ SSLEngine engine) throws Exception {
-+
-+ if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) {
-+ Runnable runnable;
-+ while ((runnable = engine.getDelegatedTask()) != null) {
-+ runnable.run();
-+ }
-+ HandshakeStatus hsStatus = engine.getHandshakeStatus();
-+ if (hsStatus == HandshakeStatus.NEED_TASK) {
-+ throw new Exception(
-+ "handshake shouldn't need additional tasks");
-+ }
-+ }
-+ }
-+
-+ private static SSLEngine[][] getSSLEnginesToTest() throws Exception {
-+ SSLEngine[][] enginesToTest = new SSLEngine[2][2];
-+ String[][] preferredSuites = new String[][]{ new String[] {
-+ "TLS_RSA_WITH_AES_128_CBC_SHA256"
-+ }, new String[] {
-+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"
-+ }};
-+ for (int i = 0; i < enginesToTest.length; i++) {
-+ enginesToTest[i][0] = createSSLEngine(true);
-+ enginesToTest[i][1] = createSSLEngine(false);
-+ enginesToTest[i][0].setEnabledCipherSuites(preferredSuites[i]);
-+ enginesToTest[i][1].setEnabledCipherSuites(preferredSuites[i]);
-+ }
-+ return enginesToTest;
-+ }
-+
-+ static private SSLEngine createSSLEngine(boolean client)
-+ throws Exception {
-+ SSLEngine ssle;
-+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("PKIX",
-+ jsseProvider);
-+ kmf.init(ks, passphrase);
-+
-+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX",
-+ jsseProvider);
-+ tmf.init(ts);
-+
-+ SSLContext sslCtx = SSLContext.getInstance("TLSv1.2",
-+ jsseProvider);
-+ sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
-+ ssle = sslCtx.createSSLEngine("localhost", 443);
-+ ssle.setUseClientMode(client);
-+ SSLParameters sslParameters = ssle.getSSLParameters();
-+ ssle.setSSLParameters(sslParameters);
-+
-+ return ssle;
-+ }
-+ }
-+
-+ private static void initialize() throws Exception {
-+ if (initSecmod() == false) {
-+ return;
-+ }
-+ String configName = BASE + SEP + "fips.cfg";
-+ sunPKCS11NSSProvider = getSunPKCS11(configName);
-+ System.out.println("SunPKCS11 provider: " + sunPKCS11NSSProvider);
-+ Security.addProvider(sunPKCS11NSSProvider);
-+
-+ sunJCEProvider = new com.sun.crypto.provider.SunJCE();
-+ Security.addProvider(sunJCEProvider);
-+
-+ Security.removeProvider("SunJSSE");
-+ jsseProvider =new com.sun.net.ssl.internal.ssl.Provider(
-+ sunPKCS11NSSProvider);
-+ Security.addProvider(jsseProvider);
-+ System.out.println(jsseProvider.getInfo());
-+
-+ ks = KeyStore.getInstance("PKCS11", sunPKCS11NSSProvider);
-+ ks.load(null, "test12".toCharArray());
-+ ts = ks;
-+
-+ KeyStore ksPlain = readTestKeyStore();
-+ privateKey = (RSAPrivateKey)ksPlain.getKey("rh_rsa_sha256",
-+ passphrase);
-+ publicKey = (RSAPublicKey)ksPlain.getCertificate(
-+ "rh_rsa_sha256").getPublicKey();
-+ }
-+
-+ private static KeyStore readTestKeyStore() throws Exception {
-+ File file = new File(System.getProperty("test.src", "."),
"keystore");
-+ InputStream in = new FileInputStream(file);
-+ KeyStore ks = KeyStore.getInstance("JKS");
-+ ks.load(in, "passphrase".toCharArray());
-+ in.close();
-+ return ks;
-+ }
-+}
-\ No newline at end of file
diff --git a/jdk8145096-pr3693-undefined_behaviour.patch
b/jdk8145096-pr3693-undefined_behaviour.patch
deleted file mode 100644
index 51aed3c..0000000
--- a/jdk8145096-pr3693-undefined_behaviour.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1549014450 -3600
-# Fri Feb 01 10:47:30 2019 +0100
-# Node ID f43f77de876acfbf29c02803418d4d06d83e7dc3
-# Parent 28f68e5c6fb323c521a489cfc92e8a129379378f
-8145096: Undefined behaviour in HotSpot
-Summary: Fix some integer overflows
-Reviewed-by: jrose, kvn, kbarrett, adinn, iklam
-
-diff --git openjdk.orig/hotspot/src/os/posix/vm/os_posix.cpp
openjdk/hotspot/src/os/posix/vm/os_posix.cpp
---- openjdk.orig/hotspot/src/os/posix/vm/os_posix.cpp
-+++ openjdk/hotspot/src/os/posix/vm/os_posix.cpp
-@@ -604,7 +604,11 @@
- strncpy(buffer, "none", size);
-
- const struct {
-- int i;
-+ // NB: i is an unsigned int here because SA_RESETHAND is on some
-+ // systems 0x80000000, which is implicitly unsigned. Assignining
-+ // it to an int field would be an overflow in unsigned-to-signed
-+ // conversion.
-+ unsigned int i;
- const char* s;
- } flaginfo [] = {
- { SA_NOCLDSTOP, "SA_NOCLDSTOP" },
-diff --git openjdk.orig/hotspot/src/share/vm/opto/addnode.cpp
openjdk/hotspot/src/share/vm/opto/addnode.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/addnode.cpp
-+++ openjdk/hotspot/src/share/vm/opto/addnode.cpp
-@@ -344,8 +344,8 @@
- const Type *AddINode::add_ring( const Type *t0, const Type *t1 ) const {
- const TypeInt *r0 = t0->is_int(); // Handy access
- const TypeInt *r1 = t1->is_int();
-- int lo = r0->_lo + r1->_lo;
-- int hi = r0->_hi + r1->_hi;
-+ int lo = java_add(r0->_lo, r1->_lo);
-+ int hi = java_add(r0->_hi, r1->_hi);
- if( !(r0->is_con() && r1->is_con()) ) {
- // Not both constants, compute approximate result
- if( (r0->_lo & r1->_lo) < 0 && lo >= 0 ) {
-@@ -462,8 +462,8 @@
- const Type *AddLNode::add_ring( const Type *t0, const Type *t1 ) const {
- const TypeLong *r0 = t0->is_long(); // Handy access
- const TypeLong *r1 = t1->is_long();
-- jlong lo = r0->_lo + r1->_lo;
-- jlong hi = r0->_hi + r1->_hi;
-+ jlong lo = java_add(r0->_lo, r1->_lo);
-+ jlong hi = java_add(r0->_hi, r1->_hi);
- if( !(r0->is_con() && r1->is_con()) ) {
- // Not both constants, compute approximate result
- if( (r0->_lo & r1->_lo) < 0 && lo >= 0 ) {
-diff --git openjdk.orig/hotspot/src/share/vm/opto/loopTransform.cpp
openjdk/hotspot/src/share/vm/opto/loopTransform.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/loopTransform.cpp
-+++ openjdk/hotspot/src/share/vm/opto/loopTransform.cpp
-@@ -1310,8 +1310,8 @@
- limit = new (C) Opaque2Node( C, limit );
- register_new_node( limit, opaq_ctrl );
- }
-- if (stride_con > 0 && ((limit_type->_lo - stride_con) <
limit_type->_lo) ||
-- stride_con < 0 && ((limit_type->_hi - stride_con) >
limit_type->_hi)) {
-+ if (stride_con > 0 && (java_subtract(limit_type->_lo, stride_con)
< limit_type->_lo) ||
-+ stride_con < 0 && (java_subtract(limit_type->_hi, stride_con)
> limit_type->_hi)) {
- // No underflow.
- new_limit = new (C) SubINode(limit, stride);
- } else {
-diff --git openjdk.orig/hotspot/src/share/vm/opto/mulnode.cpp
openjdk/hotspot/src/share/vm/opto/mulnode.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/mulnode.cpp
-+++ openjdk/hotspot/src/share/vm/opto/mulnode.cpp
-@@ -244,13 +244,13 @@
- double d = (double)hi1;
-
- // Compute all endpoints & check for overflow
-- int32 A = lo0*lo1;
-+ int32 A = java_multiply(lo0, lo1);
- if( (double)A != a*c ) return TypeInt::INT; // Overflow?
-- int32 B = lo0*hi1;
-+ int32 B = java_multiply(lo0, hi1);
- if( (double)B != a*d ) return TypeInt::INT; // Overflow?
-- int32 C = hi0*lo1;
-+ int32 C = java_multiply(hi0, lo1);
- if( (double)C != b*c ) return TypeInt::INT; // Overflow?
-- int32 D = hi0*hi1;
-+ int32 D = java_multiply(hi0, hi1);
- if( (double)D != b*d ) return TypeInt::INT; // Overflow?
-
- if( A < B ) { lo0 = A; hi0 = B; } // Sort range endpoints
-@@ -340,13 +340,13 @@
- double d = (double)hi1;
-
- // Compute all endpoints & check for overflow
-- jlong A = lo0*lo1;
-+ jlong A = java_multiply(lo0, lo1);
- if( (double)A != a*c ) return TypeLong::LONG; // Overflow?
-- jlong B = lo0*hi1;
-+ jlong B = java_multiply(lo0, hi1);
- if( (double)B != a*d ) return TypeLong::LONG; // Overflow?
-- jlong C = hi0*lo1;
-+ jlong C = java_multiply(hi0, lo1);
- if( (double)C != b*c ) return TypeLong::LONG; // Overflow?
-- jlong D = hi0*hi1;
-+ jlong D = java_multiply(hi0, hi1);
- if( (double)D != b*d ) return TypeLong::LONG; // Overflow?
-
- if( A < B ) { lo0 = A; hi0 = B; } // Sort range endpoints
-@@ -573,7 +573,8 @@
- // Masking off high bits which are always zero is useless.
- const TypeLong* t1 = phase->type( in(1) )->isa_long();
- if (t1 != NULL && t1->_lo >= 0) {
-- jlong t1_support = ((jlong)1 << (1 + log2_long(t1->_hi))) - 1;
-+ int bit_count = log2_long(t1->_hi) + 1;
-+ jlong t1_support = jlong(max_julong >> (BitsPerJavaLong - bit_count));
- if ((t1_support & con) == t1_support)
- return usr;
- }
-@@ -801,7 +802,7 @@
-
- // Check for ((x & ((CONST64(1)<<(64-c0))-1)) << c0) which ANDs off
high bits
- // before shifting them away.
-- const jlong bits_mask = ((jlong)CONST64(1) << (jlong)(BitsPerJavaLong - con)) -
CONST64(1);
-+ const jlong bits_mask = jlong(max_julong >> con);
- if( add1_op == Op_AndL &&
- phase->type(add1->in(2)) == TypeLong::make( bits_mask ) )
- return new (phase->C) LShiftLNode( add1->in(1), in(2) );
-@@ -1253,7 +1254,7 @@
- if ( con == 0 ) return NULL; // let Identity() handle a 0 shift count
- // note: mask computation below does not work for 0 shift
count
- // We'll be wanting the right-shift amount as a mask of that many bits
-- const jlong mask = (((jlong)CONST64(1) << (jlong)(BitsPerJavaLong - con)) -1);
-+ const jlong mask = jlong(max_julong >> con);
-
- // Check for ((x << z) + Y) >>> z. Replace with x + con>>>z
- // The idiom for rounding to a power of 2 is "(Q+(2^z-1)) >>> z".
-diff --git openjdk.orig/hotspot/src/share/vm/opto/subnode.cpp
openjdk/hotspot/src/share/vm/opto/subnode.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/subnode.cpp
-+++ openjdk/hotspot/src/share/vm/opto/subnode.cpp
-@@ -252,8 +252,8 @@
- const Type *SubINode::sub( const Type *t1, const Type *t2 ) const {
- const TypeInt *r0 = t1->is_int(); // Handy access
- const TypeInt *r1 = t2->is_int();
-- int32 lo = r0->_lo - r1->_hi;
-- int32 hi = r0->_hi - r1->_lo;
-+ int32 lo = java_subtract(r0->_lo, r1->_hi);
-+ int32 hi = java_subtract(r0->_hi, r1->_lo);
-
- // We next check for 32-bit overflow.
- // If that happens, we just assume all integers are possible.
-@@ -361,8 +361,8 @@
- const Type *SubLNode::sub( const Type *t1, const Type *t2 ) const {
- const TypeLong *r0 = t1->is_long(); // Handy access
- const TypeLong *r1 = t2->is_long();
-- jlong lo = r0->_lo - r1->_hi;
-- jlong hi = r0->_hi - r1->_lo;
-+ jlong lo = java_subtract(r0->_lo, r1->_hi);
-+ jlong hi = java_subtract(r0->_hi, r1->_lo);
-
- // We next check for 32-bit overflow.
- // If that happens, we just assume all integers are possible.
-diff --git openjdk.orig/hotspot/src/share/vm/opto/type.cpp
openjdk/hotspot/src/share/vm/opto/type.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/type.cpp
-+++ openjdk/hotspot/src/share/vm/opto/type.cpp
-@@ -1329,8 +1329,8 @@
-
- // The new type narrows the old type, so look for a "death march".
- // See comments on PhaseTransform::saturate.
-- juint nrange = _hi - _lo;
-- juint orange = ohi - olo;
-+ juint nrange = (juint)_hi - _lo;
-+ juint orange = (juint)ohi - olo;
- if (nrange < max_juint - 1 && nrange > (orange >> 1) +
(SMALLINT*2)) {
- // Use the new type only if the range shrinks a lot.
- // We do not want the optimizer computing 2^31 point by point.
-@@ -1363,7 +1363,7 @@
- //------------------------------hash-------------------------------------------
- // Type-specific hashing function.
- int TypeInt::hash(void) const {
-- return _lo+_hi+_widen+(int)Type::Int;
-+ return java_add(java_add(_lo, _hi), java_add(_widen, (int)Type::Int));
- }
-
- //------------------------------is_finite--------------------------------------
-@@ -1544,7 +1544,7 @@
- // If neither endpoint is extremal yet, push out the endpoint
- // which is closer to its respective limit.
- if (_lo >= 0 || // easy common case
-- (julong)(_lo - min) >= (julong)(max - _hi)) {
-+ ((julong)_lo - min) >= ((julong)max - _hi)) {
- // Try to widen to an unsigned range type of 32/63 bits:
- if (max >= max_juint && _hi < max_juint)
- return make(_lo, max_juint, WidenMax);
-@@ -2314,7 +2314,7 @@
- //------------------------------hash-------------------------------------------
- // Type-specific hashing function.
- int TypePtr::hash(void) const {
-- return _ptr + _offset;
-+ return java_add(_ptr, _offset);
- }
-
- //------------------------------dump2------------------------------------------
-@@ -2904,12 +2904,8 @@
- // Type-specific hashing function.
- int TypeOopPtr::hash(void) const {
- return
-- (const_oop() ? const_oop()->hash() : 0) +
-- _klass_is_exact +
-- _instance_id +
-- hash_speculative() +
-- _inline_depth +
-- TypePtr::hash();
-+ java_add(java_add(java_add(const_oop() ? const_oop()->hash() : 0,
_klass_is_exact),
-+ java_add(_instance_id , hash_speculative())),
java_add(_inline_depth , TypePtr::hash()));
- }
-
- //------------------------------dump2------------------------------------------
-@@ -3635,7 +3631,7 @@
- //------------------------------hash-------------------------------------------
- // Type-specific hashing function.
- int TypeInstPtr::hash(void) const {
-- int hash = klass()->hash() + TypeOopPtr::hash();
-+ int hash = java_add(klass()->hash(), TypeOopPtr::hash());
- return hash;
- }
-
-@@ -4530,7 +4526,7 @@
- //------------------------------hash-------------------------------------------
- // Type-specific hashing function.
- int TypeKlassPtr::hash(void) const {
-- return klass()->hash() + TypePtr::hash();
-+ return java_add(klass()->hash(), TypePtr::hash());
- }
-
- //------------------------------singleton--------------------------------------
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
-@@ -131,7 +131,8 @@
- }
-
- double AdvancedThresholdPolicy::weight(Method* method) {
-- return (method->rate() + 1) * ((method->invocation_count() + 1) *
(method->backedge_count() + 1));
-+ return (double)(method->rate() + 1) *
-+ (method->invocation_count() + 1) * (method->backedge_count() + 1);
- }
-
- // Apply heuristics and return true if x should be compiled before y
-diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
---- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
-+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
-@@ -1403,6 +1403,32 @@
-
- #define ARRAY_SIZE(array) (sizeof(array)/sizeof((array)[0]))
-
-+//----------------------------------------------------------------------------------------------------
-+// Sum and product which can never overflow: they wrap, just like the
-+// Java operations. Note that we don't intend these to be used for
-+// general-purpose arithmetic: their purpose is to emulate Java
-+// operations.
-+
-+// The goal of this code to avoid undefined or implementation-defined
-+// behaviour. The use of an lvalue to reference cast is explicitly
-+// permitted by Lvalues and rvalues [basic.lval]. [Section 3.10 Para
-+// 15 in C++03]
-+#define JAVA_INTEGER_OP(OP, NAME, TYPE, UNSIGNED_TYPE) \
-+inline TYPE NAME (TYPE in1, TYPE in2) { \
-+ UNSIGNED_TYPE ures = static_cast<UNSIGNED_TYPE>(in1); \
-+ ures OP ## = static_cast<UNSIGNED_TYPE>(in2); \
-+ return reinterpret_cast<TYPE&>(ures); \
-+}
-+
-+JAVA_INTEGER_OP(+, java_add, jint, juint)
-+JAVA_INTEGER_OP(-, java_subtract, jint, juint)
-+JAVA_INTEGER_OP(*, java_multiply, jint, juint)
-+JAVA_INTEGER_OP(+, java_add, jlong, julong)
-+JAVA_INTEGER_OP(-, java_subtract, jlong, julong)
-+JAVA_INTEGER_OP(*, java_multiply, jlong, julong)
-+
-+#undef JAVA_INTEGER_OP
-+
- // Dereference vptr
- // All C++ compilers that we know of have the vtbl pointer in the first
- // word. If there are exceptions, this function needs to be made compiler
diff --git a/jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
b/jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
deleted file mode 100644
index 00b6125..0000000
--- a/jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-# HG changeset patch
-# User ysuenaga
-# Date 1527498573 -3600
-# Mon May 28 10:09:33 2018 +0100
-# Node ID ef176cb429c49d1c330d9575938f66b04e3fb730
-# Parent 6915dc9ae18cce5625d3a3fc74b37da70a5b4215
-8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
-Reviewed-by: kbarrett, vlivanov
-
-diff --git openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp
openjdk/hotspot/src/share/vm/code/dependencies.cpp
---- openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp
-+++ openjdk/hotspot/src/share/vm/code/dependencies.cpp
-@@ -525,7 +525,7 @@
- xtty->object("x", arg.metadata_value());
- }
- } else {
-- char xn[10]; sprintf(xn, "x%d", j);
-+ char xn[12]; sprintf(xn, "x%d", j);
- if (arg.is_oop()) {
- xtty->object(xn, arg.oop_value());
- } else {
diff --git
a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
deleted file mode 100644
index 6d7f743..0000000
--- a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1530894306 -3600
-# Fri Jul 06 17:25:06 2018 +0100
-# Node ID 1485461a0fd1ff977a6acb8f2ed1069aaaf3b07e
-# Parent d7bcbcfde5057ad066ad2fb55a87d19a5827ddee
-8197429: Increased stack guard causes segfaults on x86-32
-Reviewed-by: dholmes
-
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -724,6 +724,10 @@
- }
- }
-
-+void os::Linux::expand_stack_to(address bottom) {
-+ _expand_stack_to(bottom);
-+}
-+
- bool os::Linux::manually_expand_stack(JavaThread * t, address addr) {
- assert(t!=NULL, "just checking");
- assert(t->osthread()->expanding_stack(), "expand should be set");
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
openjdk/hotspot/src/os/linux/vm/os_linux.hpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
-@@ -249,6 +249,8 @@
- static int safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const
struct timespec *_abstime);
-
- private:
-+ static void expand_stack_to(address bottom);
-+
- typedef int (*sched_getcpu_func_t)(void);
- typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int
bufferlen);
- typedef int (*numa_max_node_func_t)(void);
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
---- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
-@@ -892,6 +892,27 @@
- void os::workaround_expand_exec_shield_cs_limit() {
- #if defined(IA32)
- size_t page_size = os::vm_page_size();
-+
-+ /*
-+ * JDK-8197429
-+ *
-+ * Expand the stack mapping to the end of the initial stack before
-+ * attempting to install the codebuf. This is needed because newer
-+ * Linux kernels impose a distance of a megabyte between stack
-+ * memory and other memory regions. If we try to install the
-+ * codebuf before expanding the stack the installation will appear
-+ * to succeed but we'll get a segfault later if we expand the stack
-+ * in Java code.
-+ *
-+ */
-+ if (os::is_primordial_thread()) {
-+ address limit = Linux::initial_thread_stack_bottom();
-+ if (! DisablePrimordialThreadGuardPages) {
-+ limit += (StackYellowPages + StackRedPages) * page_size;
-+ }
-+ os::Linux::expand_stack_to(limit);
-+ }
-+
- /*
- * Take the highest VA the OS will give us and exec
- *
-@@ -910,6 +931,16 @@
- char* hint = (char*) (Linux::initial_thread_stack_bottom() -
- ((StackYellowPages + StackRedPages + 1) * page_size));
- char* codebuf = os::attempt_reserve_memory_at(page_size, hint);
-+
-+ if (codebuf == NULL) {
-+ // JDK-8197429: There may be a stack gap of one megabyte between
-+ // the limit of the stack and the nearest memory region: this is a
-+ // Linux kernel workaround for CVE-2017-1000364. If we failed to
-+ // map our codebuf, try again at an address one megabyte lower.
-+ hint -= 1 * M;
-+ codebuf = os::attempt_reserve_memory_at(page_size, hint);
-+ }
-+
- if ( (codebuf == NULL) || (!os::commit_memory(codebuf, page_size, true)) ) {
- return; // No matter, we tried, best effort.
- }
-diff --git openjdk.orig/hotspot/test/runtime/StackGap/T.java
openjdk/hotspot/test/runtime/StackGap/T.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/runtime/StackGap/T.java
-@@ -0,0 +1,33 @@
-+/*
-+ * Copyright (c) 2018, 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.
-+ */
-+
-+public class T {
-+
-+ public static void test(int n) {
-+ if (n == 0) return;
-+ System.out.println (n);
-+ test (n - 1);
-+
-+ }
-+
-+}
-diff --git openjdk.orig/hotspot/test/runtime/StackGap/exestack-gap.c
openjdk/hotspot/test/runtime/StackGap/exestack-gap.c
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/runtime/StackGap/exestack-gap.c
-@@ -0,0 +1,82 @@
-+/*
-+ * Copyright (c) 2018, 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.
-+ */
-+
-+#include <jni.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+JNIEnv* create_vm(JavaVM **jvm, char *extra_option)
-+{
-+ JNIEnv* env;
-+ JavaVMInitArgs args;
-+ JavaVMOption options[4];
-+ args.version = JNI_VERSION_1_8;
-+ args.nOptions = 3 + (extra_option != NULL);
-+ options[0].optionString = "-Xss2048k";
-+ char classpath[4096];
-+ snprintf(classpath, sizeof classpath,
-+ "-Djava.class.path=%s", getenv("CLASSPATH"));
-+ options[1].optionString = classpath;
-+ options[2].optionString = "-XX:+UnlockExperimentalVMOptions";
-+ if (extra_option) {
-+ options[3].optionString = extra_option;
-+ }
-+ args.options = &options[0];
-+ args.ignoreUnrecognized = 0;
-+ int rv;
-+ rv = JNI_CreateJavaVM(jvm, (void**)&env, &args);
-+ if (rv < 0) return NULL;
-+ return env;
-+}
-+
-+void run(char *extra_arg) {
-+ JavaVM *jvm;
-+ jclass T_class;
-+ jmethodID test_method;
-+ JNIEnv *env = create_vm(&jvm, extra_arg);
-+ if (env == NULL)
-+ exit(1);
-+ T_class = (*env)->FindClass(env, "T");
-+ if ((*env)->ExceptionCheck(env) == JNI_TRUE) {
-+ (*env)->ExceptionDescribe(env);
-+ exit(1);
-+ }
-+ test_method = (*env)->GetStaticMethodID(env, T_class, "test",
"(I)V");
-+ if ((*env)->ExceptionCheck(env) == JNI_TRUE) {
-+ (*env)->ExceptionDescribe(env);
-+ exit(1);
-+ }
-+ (*env)->CallStaticVoidMethod(env, T_class, test_method, 1000);
-+}
-+
-+
-+int main(int argc, char **argv)
-+{
-+ if (argc > 1) {
-+ run(argv[1]);
-+ } else {
-+ run(NULL);
-+ }
-+
-+ return 0;
-+}
-diff --git openjdk.orig/hotspot/test/runtime/StackGap/testme.sh
openjdk/hotspot/test/runtime/StackGap/testme.sh
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/runtime/StackGap/testme.sh
-@@ -0,0 +1,73 @@
-+# Copyright (c) 2014, 2018, 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.
-+#!/bin/sh
-+
-+#
-+# @test testme.sh
-+# @bug 8197429
-+# @summary Linux kernel stack guard should not cause segfaults on x86-32
-+# @compile T.java
-+# @run shell testme.sh
-+#
-+
-+if [ "${TESTSRC}" = "" ]
-+then
-+ TESTSRC=${PWD}
-+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
-+fi
-+echo "TESTSRC=${TESTSRC}"
-+## Adding common setup Variables for running shell tests.
-+. ${TESTSRC}/../../test_env.sh
-+
-+if [ "${VM_OS}" != "linux" ]
-+then
-+ echo "Test only valid for Linux"
-+ exit 0
-+fi
-+
-+gcc_cmd=`which gcc`
-+if [ "x$gcc_cmd" = "x" ]; then
-+ echo "WARNING: gcc not found. Cannot execute test." 2>&1
-+ exit 0;
-+fi
-+
-+CFLAGS="-m${VM_BITS}"
-+
-+LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH
-+export LD_LIBRARY_PATH
-+
-+cp ${TESTSRC}${FS}exestack-gap.c .
-+
-+# Copy the result of our @compile action:
-+cp ${TESTCLASSES}${FS}T.class .
-+
-+echo "Compilation flag: ${COMP_FLAG}"
-+# Note pthread may not be found thus invoke creation will fail to be created.
-+# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
-+# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below
compilation.
-+
-+$gcc_cmd -DLINUX ${CFLAGS} -o stack-gap \
-+ -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
-+ -L${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \
-+ -ljvm -lpthread exestack-gap.c
-+
-+./stack-gap || exit $?
-+./stack-gap -XX:+DisablePrimordialThreadGuardPages || exit $?
diff --git a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
index 6e0d762..843158e 100644
--- a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
+++ b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
@@ -1,5 +1,5 @@
-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
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+---
openjdk.orig/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) {
@@ -10,8 +10,8 @@ diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
}
assert(n_blks > 0, "Error");
_cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-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
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+---
openjdk.orig/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) {
@@ -40,10 +40,10 @@ diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSw
// 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 --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
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-@@ -3903,7 +3903,7 @@
+@@ -3902,7 +3902,7 @@
// of things to do) or totally (at the very end).
size_t target_size;
if (partially) {
@@ -52,7 +52,7 @@ diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm
} else {
target_size = 0;
}
-@@ -4707,7 +4707,7 @@
+@@ -4706,7 +4706,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 --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm
*hum_bytes -= bytes;
}
return bytes;
-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
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-@@ -1726,7 +1726,7 @@
+@@ -1729,7 +1729,7 @@
verify_region_sets_optional();
@@ -73,8 +73,8 @@ diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/v
ergo_verbose1(ErgoHeapSizing,
"attempt heap expansion",
ergo_format_reason("allocation request failed")
-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
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
+--- openjdk.orig/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();
@@ -85,8 +85,8 @@ diff --git
a/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp b/src
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
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+--- openjdk.orig/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),
@@ -97,8 +97,8 @@ diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
b/src/shar
_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 --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
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
@@ -120,7 +120,7 @@
};
@@ -109,8 +109,8 @@ diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
b/src/shar
_max_list_length(0),
_cached(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)),
_overflowed(PaddedArray<G1StringDedupEntryList,
mtGC>::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
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+--- openjdk.orig/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)) {
@@ -121,8 +121,8 @@ diff --git a/src/share/vm/gc_implementation/g1/heapRegion.cpp
b/src/share/vm/gc_
}
int region_size_log = log2_long((jlong) region_size);
-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
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- openjdk.orig/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();
@@ -133,8 +133,8 @@ diff --git
a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/src/sh
num_overflow_elems);
// Transfer the most recent num_take_elems from the overflow
// stack to our work queue.
-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
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+---
openjdk.orig/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()
@@ -147,8 +147,8 @@ diff --git
a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.c
_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 --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/collectorPolicy.cpp
---- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+diff --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
@@ -385,7 +385,7 @@
uintx calculated_size = NewSize + OldSize;
@@ -207,10 +207,10 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
_initial_gen1_size = OldSize;
// If the user has explicitly set an OldSize that is inconsistent
-diff --git a/src/share/vm/memory/metaspace.cpp b/src/share/vm/memory/metaspace.cpp
---- openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+diff --git openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
+++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp
-@@ -1455,7 +1455,7 @@
+@@ -1482,7 +1482,7 @@
void MetaspaceGC::post_initialize() {
// Reset the high-water mark once the VM initialization is done.
@@ -219,8 +219,8 @@ diff --git a/src/share/vm/memory/metaspace.cpp
b/src/share/vm/memory/metaspace.c
}
bool MetaspaceGC::can_expand(size_t word_size, bool is_class) {
-@@ -1515,7 +1515,7 @@
- (size_t)MIN2(min_tmp, double(max_uintx));
+@@ -1542,7 +1542,7 @@
+ (size_t)MIN2(min_tmp, double(MaxMetaspaceSize));
// Don't shrink less than the initial generation size
minimum_desired_capacity = MAX2(minimum_desired_capacity,
- MetaspaceSize);
@@ -228,16 +228,16 @@ diff --git a/src/share/vm/memory/metaspace.cpp
b/src/share/vm/memory/metaspace.c
if (PrintGCDetails && Verbose) {
gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: ");
-@@ -1573,7 +1573,7 @@
+@@ -1600,7 +1600,7 @@
const double max_tmp = used_after_gc / minimum_used_percentage;
- size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx));
+ size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(MaxMetaspaceSize));
maximum_desired_capacity = MAX2(maximum_desired_capacity,
- MetaspaceSize);
+ (size_t)MetaspaceSize);
if (PrintGCDetails && Verbose) {
gclog_or_tty->print_cr(" "
" maximum_free_percentage: %6.2f"
-@@ -3285,7 +3285,7 @@
+@@ -3361,7 +3361,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,
@@ -246,10 +246,10 @@ diff --git a/src/share/vm/memory/metaspace.cpp
b/src/share/vm/memory/metaspace.c
_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 --git a/src/share/vm/memory/threadLocalAllocBuffer.cpp
b/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+diff --git openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
-@@ -238,13 +238,13 @@
+@@ -250,13 +250,13 @@
size_t init_sz = 0;
if (TLABSize > 0) {
@@ -266,8 +266,8 @@ diff --git a/src/share/vm/memory/threadLocalAllocBuffer.cpp
b/src/share/vm/memor
init_sz = align_object_size(init_sz);
}
init_sz = MIN2(MAX2(init_sz, min_size()), max_size());
-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
+diff --git openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+--- openjdk.orig/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);
@@ -287,10 +287,10 @@ diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objA
const size_t end_index = beg_index + stride;
T* const base = (T*)a->base();
T* const beg = base + beg_index;
-diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1283,7 +1283,7 @@
+@@ -1289,7 +1289,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
@@ -299,7 +299,7 @@ diff --git a/src/share/vm/runtime/arguments.cpp
b/src/share/vm/runtime/arguments
} else {
FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
}
-@@ -1308,8 +1308,8 @@
+@@ -1314,8 +1314,8 @@
// Unless explicitly requested otherwise, make young gen
// at least min_new, and at most preferred_max_new_size.
if (FLAG_IS_DEFAULT(NewSize)) {
@@ -310,7 +310,7 @@ diff --git a/src/share/vm/runtime/arguments.cpp
b/src/share/vm/runtime/arguments
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1319,7 +1319,7 @@
+@@ -1325,7 +1325,7 @@
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
diff --git a/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
b/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
deleted file mode 100644
index 096fe19..0000000
--- a/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
---- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
-+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -59,6 +59,11 @@
- SA_DEBUG_CFLAGS = -g
- endif
-
-+# Optimize saproc lib at level -O3 unless it's a slowdebug build
-+ifneq ($(DEBUG_LEVEL), slowdebug)
-+ SA_OPT_FLAGS = $(OPT_CFLAGS)
-+endif
-+
- # if $(AGENT_DIR) does not exist, we don't build SA
- # also, we don't build SA on Itanium or zero.
-
-@@ -95,6 +100,7 @@
- $(SASRCFILES) \
- $(SA_LFLAGS) \
- $(SA_DEBUG_CFLAGS) \
-+ $(SA_OPT_FLAGS) \
- $(EXTRA_CFLAGS) \
- -o $@ \
- -lthread_db -ldl
diff --git a/s390-8214206_fix.patch b/s390-8214206_fix.patch
new file mode 100644
index 0000000..93f12de
--- /dev/null
+++ b/s390-8214206_fix.patch
@@ -0,0 +1,37 @@
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
+@@ -78,7 +78,8 @@
+ size_t num_target_elems = pointer_delta(end, bottom, mapping_granularity_in_bytes);
+ idx_t bias = (uintptr_t)bottom / mapping_granularity_in_bytes;
+ address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
+- initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
log2_intptr(mapping_granularity_in_bytes));
++ initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
++ log2_intptr((uintptr_t) mapping_granularity_in_bytes));
+ }
+
+ size_t bias() const { return _bias; }
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
openjdk/hotspot/src/share/vm/runtime/os.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp
+@@ -1284,7 +1284,7 @@
+ }
+
+ void os::set_memory_serialize_page(address page) {
+- int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64);
++ int count = log2_intptr((uintptr_t) sizeof(class JavaThread)) - log2_int(64);
+ _mem_serialize_page = (volatile int32_t *)page;
+ // We initialize the serialization page shift count here
+ // We assume a cache line size of 64 bytes
+diff --git openjdk.orig/hotspot/src/share/vm/utilities/numberSeq.cpp
openjdk/hotspot/src/share/vm/utilities/numberSeq.cpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/numberSeq.cpp
++++ openjdk/hotspot/src/share/vm/utilities/numberSeq.cpp
+@@ -369,7 +369,7 @@
+ void BinaryMagnitudeSeq::add(size_t val) {
+ Atomic::add(val, &_sum);
+
+- int mag = log2_intptr(val) + 1;
++ int mag = log2_intptr((uintptr_t) val) + 1;
+
+ // Defensively saturate for product bits:
+ if (mag < 0) {
diff --git a/sources b/sources
index 38ea8ea..1b7cda2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz) =
5c2fde5b6595a8daeb2216c0eed0a9a5b311d651745fa5d299d8d6da674c27133ce23726e3f8ec32314c929d5a814d8167d9a33877fbf5237a2595b3f488585e
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b02.tar.xz) =
0068461fe6d2a376c44009a6f111b7aac8a0bdd99976f454d3015d443de8f87e1928ddad8d6dcc7572bc53ad6e3d6b71bcee045858d8e2e51cb6d2ac8864cc47
commit 2f0cb2fea76d8f9d4b4389821f29dc54b18c20d4
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 11 18:02:57 2019 +0100
Update to aarch64-shenandoah-jdk8u202-b08.
Remove patches included upstream
- JDK-8211387/PR3559
- JDK-8207057/PR3613
- JDK-8165852/PR3468
- JDK-8073139/PR1758/RH1191652
- JDK-8044235
- JDK-8172850/RH1640127
- JDK-8209639/RH1640127
- JDK-8131048/PR3574/RH1498936
- JDK-8164920/PR3574/RH1498936
Re-generate patches
- JDK-8210647/RH1632174
diff --git a/.gitignore b/.gitignore
index 2f50ea7..08917ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -133,3 +133,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
/tapsets-icedtea-3.11.0.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fe064b5..f7282d6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u201-b13
+%global shenandoah_revision aarch64-shenandoah-jdk8u202-b08
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -1155,8 +1155,6 @@ Patch561:
jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_
Patch563:
jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
-# PR3559: Use ldrexd for atomic reads on ARMv7.
-Patch567: pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
@@ -1205,35 +1203,6 @@ Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fd
# 8219772: EXTRA_CFLAGS not being picked up for assembler files
Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
-#############################################
-#
-# Patches appearing in 8u202
-#
-# This section includes patches which are present
-# in the listed OpenJDK 8u release and should be
-# able to be removed once that release is out
-# and used by this RPM.
-#############################################
-# 8207057, PR3613: Enable debug information for assembly code files
-Patch206: jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
-Patch207: jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
-# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
-Patch210:
jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
-# S8073139, RH1191652; fix name of ppc64le architecture
-Patch601:
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
-Patch602:
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
-Patch603:
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
-# 8044235: src.zip should include all sources
-Patch7: jdk8044235-src_zip_should_include_all_sources.patch
-# JDK-8172850, RH1640127: Anti-dependency on membar causes crash in register allocator
due to invalid instruction scheduling
-Patch583: jdk8172850-rh1640127-01-register_allocator_crash.patch
-# JDK-8209639, RH1640127: assert failure in coalesce.cpp: attempted to spill a
non-spillable item
-Patch584: jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
-# JDK-8131048, PR3574, RH1498936: ppc implement CRC32 intrinsic
-Patch586: jdk8131048-pr3574-rh1498936-ppc_crc32.patch
-# JDK-8164920, PR3574, RH1498936: ppc: enhancement of CRC32 intrinsic
-Patch587: jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
-
#############################################
#
# Patches appearing in 8u211
@@ -1596,18 +1565,13 @@ sh %{SOURCE12}
%patch202
%patch203
-# Debugging fixes
-%patch206
-%patch207
-%patch210
-
+# System security policy fixes
%patch300
%patch301
%patch1
%patch3
%patch5
-%patch7
# s390 build fixes
%patch102
@@ -1619,11 +1583,6 @@ sh %{SOURCE12}
# x86 fixes
%patch105
-# ppc64le fixes
-%patch603
-%patch601
-%patch602
-
# Upstreamable fixes
%patch502
%patch504
@@ -1643,7 +1602,6 @@ sh %{SOURCE12}
%patch561
%patch563
%patch564
-%patch567
%patch571
%patch572
%patch573
@@ -1657,11 +1615,7 @@ sh %{SOURCE12}
%patch623
%patch624
%patch625
-%patch583
-%patch584
%patch585
-%patch586
-%patch587
%patch588
%patch110
@@ -2331,6 +2285,21 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Apr 07 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.202.b08-0
+- Update to aarch64-shenandoah-jdk8u202-b08.
+- Remove patches included upstream
+ - JDK-8211387/PR3559
+ - JDK-8207057/PR3613
+ - JDK-8165852/PR3468
+ - JDK-8073139/PR1758/RH1191652
+ - JDK-8044235
+ - JDK-8172850/RH1640127
+ - JDK-8209639/RH1640127
+ - JDK-8131048/PR3574/RH1498936
+ - JDK-8164920/PR3574/RH1498936
+- Re-generate patches
+ - JDK-8210647/RH1632174
+
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b13-0
- Update to aarch64-shenandoah-jdk8u201-b13.
- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
diff --git a/jdk8044235-src_zip_should_include_all_sources.patch
b/jdk8044235-src_zip_should_include_all_sources.patch
deleted file mode 100644
index 1beda6d..0000000
--- a/jdk8044235-src_zip_should_include_all_sources.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-# HG changeset patch
-# User omajid
-# Date 1401638044 14400
-# Sun Jun 01 11:54:04 2014 -0400
-# Node ID fd78f7e83f3f1ce7d363b681b97583138218afcb
-# Parent 8d0af21b5b9789f97b05edacc221a63f851d13b8
-8044235: src.zip should include all sources
-Reviewed-by: andrew, dholmes
-
-diff --git a/make/CreateJars.gmk b/make/CreateJars.gmk
---- openjdk/jdk/make/CreateJars.gmk
-+++ openjdk/jdk/make/CreateJars.gmk
-@@ -584,40 +584,53 @@
-
-
##########################################################################################
-
--SRC_ZIP_INCLUDES = \
-- com/sun/corba \
-- com/sun/image/codec/jpeg \
-- com/sun/imageio \
-- com/sun/java_cup \
-- com/sun/javadoc \
-- com/sun/java/swing \
-- com/sun/jmx \
-- com/sun/naming \
-- com/sun/org/apache \
-- com/sun/security/auth \
-- com/sun/security/jgss \
-- com/sun/source \
-- java \
-- javax/accessibility \
-- javax/annotation \
-- javax/imageio \
-- javax/lang \
-- javax/management \
-- javax/naming \
-- javax/print \
-- javax/rmi \
-- javax/script \
-- javax/security \
-- javax/sound \
-- javax/sql \
-- javax/swing \
-- javax/tools \
-- javax/xml \
-- org/ietf \
-- org/omg \
-- org/w3c/dom \
-- org/xml/sax \
-- #
-+ifdef OPENJDK
-+ SRC_ZIP_INCLUDES = \
-+ com \
-+ java \
-+ javax \
-+ jdk \
-+ org \
-+ sun \
-+ #
-+ SRC_ZIP_EXCLUDES =
-+else
-+ SRC_ZIP_INCLUDES = \
-+ com/sun/corba \
-+ com/sun/image/codec/jpeg \
-+ com/sun/imageio \
-+ com/sun/java_cup \
-+ com/sun/javadoc \
-+ com/sun/java/swing \
-+ com/sun/jmx \
-+ com/sun/naming \
-+ com/sun/org/apache \
-+ com/sun/security/auth \
-+ com/sun/security/jgss \
-+ com/sun/source \
-+ java \
-+ javax/accessibility \
-+ javax/annotation \
-+ javax/imageio \
-+ javax/lang \
-+ javax/management \
-+ javax/naming \
-+ javax/print \
-+ javax/rmi \
-+ javax/script \
-+ javax/security \
-+ javax/sound \
-+ javax/sql \
-+ javax/swing \
-+ javax/tools \
-+ javax/xml \
-+ org/ietf \
-+ org/omg \
-+ org/w3c/dom \
-+ org/xml/sax \
-+ #
-+ SRC_ZIP_EXCLUDES = javax/swing/beaninfo
-+endif
-
- SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
- SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc
-@@ -648,7 +661,7 @@
- $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
- SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
- INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
-- EXCLUDES := javax/swing/beaninfo, \
-+ EXCLUDES := $(SRC_ZIP_EXCLUDES), \
- SUFFIXES := .java .c .h, \
- ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
- EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git
a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
deleted file mode 100644
index f79be53..0000000
--- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1537884792 -7200
-# Tue Sep 25 16:13:12 2018 +0200
-# Node ID fd140d7550992267e3f0f08a20b461b2ce9fa740
-# Parent 21056af0d1eabbd04d7a223c01a28320c7010bfe
-8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
-Reviewed-by: erikj, goetz, dholmes
-
-diff --git openjdk.orig/jdk/make/lib/SoundLibraries.gmk
openjdk/jdk/make/lib/SoundLibraries.gmk
---- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
-+++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
-@@ -140,6 +140,10 @@
- LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
- endif
-
-+ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
-+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
-+ endif
-+
- ifeq ($(OPENJDK_TARGET_CPU), aarch64)
- LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
- endif
-diff -r 1fe56343ecc8 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
---- openjdk.orig/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12
2016 +0000
-+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016
+0000
-@@ -44,6 +44,8 @@
- #define X_ARM 7
- #define X_PPC 8
- #define X_AARCH64 9
-+#define X_PPC64 10
-+#define X_PPC64LE 11
-
- // **********************************
- // Make sure you set X_PLATFORM and X_ARCH defines correctly.
-diff --git openjdk.orig/jdk/src/solaris/bin/ppc64le/jvm.cfg
openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
-@@ -0,0 +1,34 @@
-+# Copyright (c) 2011, 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. Oracle designates this
-+# particular file as subject to the "Classpath" exception as provided
-+# by Oracle in the LICENSE file that accompanied this code.
-+#
-+# 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.
-+#
-+# List of JVMs that can be used as an option to java, javac, etc.
-+# Order is important -- first in this list is the default JVM.
-+# NOTE that this both this file and its format are UNSUPPORTED and
-+# WILL GO AWAY in a future release.
-+#
-+# You may also select a JVM in an arbitrary location with the
-+# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
-+# and may not be available in a future release.
-+#
-+-server KNOWN
-+-client IGNORE
-diff --git openjdk.orig/test/sun/security/pkcs11/PKCS11Test.java
openjdk/test/sun/security/pkcs11/PKCS11Test.java
---- openjdk.orig/jdk/test/sun/security/pkcs11/PKCS11Test.java
-+++ openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
-@@ -505,6 +505,8 @@
- osMap.put("Linux-amd64-64", new String[]{
- "/usr/lib/x86_64-linux-gnu/",
"/usr/lib/x86_64-linux-gnu/nss/",
- "/usr/lib64/"});
-+ osMap.put("Linux-ppc64-64", new String[]{"/usr/lib64/"});
-+ osMap.put("Linux-ppc64le-64", new String[]{"/usr/lib64/"});
- osMap.put("Windows-x86-32", new String[]{
- PKCS11_BASE + "/nss/lib/windows-i586/".replace('/',
SEP)});
- osMap.put("Windows-amd64-64", new String[]{
-diff --git openjdk.orig/jdk/test/tools/launcher/Settings.java
openjdk/jdk/test/tools/launcher/Settings.java
---- openjdk.orig/jdk/test/tools/launcher/Settings.java
-+++ openjdk/jdk/test/tools/launcher/Settings.java
-@@ -74,7 +74,7 @@
-
- static void runTestOptionDefault() throws IOException {
- String stackSize = "256"; // in kb
-- if (getArch().equals("ppc64")) {
-+ if (getArch().equals("ppc64") ||
getArch().equals("ppc64le")) {
- stackSize = "800";
- }
- TestResult tr = null;
diff --git
a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
deleted file mode 100644
index 67fc620..0000000
--- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-# HG changeset patch
-# User asmundak
-# Date 1537883922 -7200
-# Tue Sep 25 15:58:42 2018 +0200
-# Node ID 2fabe07c0bd8bf21400313f3bb9b8e80fcb31724
-# Parent 91867683f73de3882ef88981a79995beeeb1e980
-8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
-Reviewed-by: erikj, goetz, dholmes
-Contributed-by: Andrew Hughes <gnu.andrew(a)redhat.com>, Alexander Smundak
<asmundak(a)google.com>
-
-diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
---- openjdk.orig///common/autoconf/flags.m4
-+++ openjdk///common/autoconf/flags.m4
-@@ -549,6 +549,9 @@
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
-+ fi
-
- # Setup target OS define. Use OS target name but in upper case.
- OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR
'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-diff --git openjdk.orig///common/autoconf/jdk-options.m4
openjdk///common/autoconf/jdk-options.m4
---- openjdk.orig///common/autoconf/jdk-options.m4
-+++ openjdk///common/autoconf/jdk-options.m4
-@@ -158,7 +158,7 @@
- if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
- INCLUDE_SA=false
- fi
-- if test "x$VAR_CPU" = xppc64 ; then
-+ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
- INCLUDE_SA=false
- fi
- AC_SUBST(INCLUDE_SA)
-diff --git openjdk.orig///common/autoconf/platform.m4
openjdk///common/autoconf/platform.m4
---- openjdk.orig///common/autoconf/platform.m4
-+++ openjdk///common/autoconf/platform.m4
-@@ -67,7 +67,7 @@
- VAR_CPU_ENDIAN=big
- ;;
- powerpc64le)
-- VAR_CPU=ppc64
-+ VAR_CPU=ppc64le
- VAR_CPU_ARCH=ppc
- VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=little
diff --git
a/jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
b/jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
deleted file mode 100644
index a5afea0..0000000
---
a/jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1537885415 -7200
-# Tue Sep 25 16:23:35 2018 +0200
-# Node ID 5044428520866481f438bfd1375da75adbc89243
-# Parent a3df1579a8647b06559f41d345da7bea162b26e9
-8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
-Reviewed-by: erikj, goetz, dholmes
-
-diff --git a/make/defs.make b/make/defs.make
---- openjdk/hotspot/make/defs.make
-+++ openjdk/hotspot/make/defs.make
-@@ -285,7 +285,7 @@ ifneq ($(OSNAME),windows)
-
- # Use uname output for SRCARCH, but deal with platform differences. If ARCH
- # is not explicitly listed below, it is treated as x86.
-- SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 zero
aarch64,$(ARCH)))
-+ SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 ppc64le zero
aarch64,$(ARCH)))
- ARCH/ = x86
- ARCH/sparc = sparc
- ARCH/sparc64= sparc
-@@ -293,6 +293,7 @@ ifneq ($(OSNAME),windows)
- ARCH/amd64 = x86
- ARCH/x86_64 = x86
- ARCH/ppc64 = ppc
-+ ARCH/ppc64le= ppc
- ARCH/ppc = ppc
- ARCH/zero = zero
- ARCH/aarch64 = aarch64
-@@ -316,7 +317,12 @@
- endif
- endif
-
-- # LIBARCH is 1:1 mapping from BUILDARCH
-+ # LIBARCH is 1:1 mapping from BUILDARCH, except for ARCH=ppc64le
-+ ifeq ($(ARCH),ppc64le)
-+ LIBARCH ?= ppc64le
-+ else
-+ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
-+ endif
- LIBARCH ?= $(LIBARCH/$(BUILDARCH))
- LIBARCH/i486 = i386
- LIBARCH/amd64 = amd64
-diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -1956,7 +1956,7 @@
- {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9
64"},
- {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC
32"},
- #if defined(VM_LITTLE_ENDIAN)
-- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC
64"},
-+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64
LE"},
- #else
- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC
64"},
- #endif
-diff --git a/src/share/tools/hsdis/Makefile b/src/share/tools/hsdis/Makefile
---- openjdk/hotspot/src/share/tools/hsdis/Makefile
-+++ openjdk/hotspot/src/share/tools/hsdis/Makefile
-@@ -97,6 +97,7 @@
- CFLAGS/sparcv9 += -m64
- CFLAGS/amd64 += -m64
- CFLAGS/ppc64 += -m64
-+CFLAGS/ppc64le += -m64 -DABI_ELFv2
- else
- ARCH=$(ARCH1:amd64=i386)
- CFLAGS/i386 += -m32
-diff --git a/src/share/tools/hsdis/hsdis-demo.c b/src/share/tools/hsdis/hsdis-demo.c
---- openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
-+++ openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
-@@ -88,7 +88,7 @@
- printf("...And now for something completely different:\n");
- void *start = (void*) &main;
- void *end = (void*) &end_of_file;
--#if defined(__ia64) || defined(__powerpc__)
-+#if defined(__ia64) || (defined(__powerpc__) && !defined(ABI_ELFv2))
- /* On IA64 and PPC function pointers are pointers to function descriptors */
- start = *((void**)start);
- end = *((void**)end);
-diff --git a/src/share/tools/hsdis/hsdis.c b/src/share/tools/hsdis/hsdis.c
---- openjdk/hotspot/src/share/tools/hsdis/hsdis.c
-+++ openjdk/hotspot/src/share/tools/hsdis/hsdis.c
-@@ -461,7 +461,7 @@ static const char* native_arch_name() {
- #ifdef LIBARCH_sparcv9
- res = "sparc:v9b";
- #endif
--#ifdef LIBARCH_ppc64
-+#if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le)
- res = "powerpc:common64";
- #endif
- #else
-diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp
---- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
-@@ -187,11 +187,16 @@ const char* Abstract_VM_Version::jre_release_version() {
- #ifndef CPU
- #ifdef ZERO
- #define CPU ZERO_LIBARCH
-+#elif defined(PPC64)
-+#if defined(VM_LITTLE_ENDIAN)
-+#define CPU "ppc64le"
-+#else
-+#define CPU "ppc64"
-+#endif
- #else
- #define CPU IA32_ONLY("x86") \
- IA64_ONLY("ia64") \
- AMD64_ONLY("amd64") \
-- PPC64_ONLY("ppc64") \
- AARCH64_ONLY("aarch64") \
- SPARC_ONLY("sparc")
- #endif // ZERO
-diff --git a/test/test_env.sh b/test/test_env.sh
---- openjdk/hotspot/test/test_env.sh
-+++ openjdk/hotspot/test/test_env.sh
-@@ -185,6 +185,15 @@
- if [ $? = 0 ]
- then
- VM_CPU="ppc"
-+ if [ $VM_BITS = "64" ]
-+ then
-+ VM_CPU="ppc64"
-+ grep "ppc64le" vm_version.out > ${NULL}
-+ if [ $? = 0 ]
-+ then
-+ VM_CPU="ppc64le"
-+ fi
-+ fi
- fi
- grep "ia64" vm_version.out > ${NULL}
- if [ $? = 0 ]
diff --git a/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
b/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
deleted file mode 100644
index d7b94e6..0000000
--- a/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
+++ /dev/null
@@ -1,1417 +0,0 @@
-# HG changeset patch
-# User gromero
-# Date 1537823918 14400
-# Mon Sep 24 17:18:38 2018 -0400
-# Node ID 567e95df42f866b890dc3f0670e086d266915112
-# Parent 678bb67e02aedd54e32819a9011962326164274e
-8131048, PR3574, RH1498936: ppc implement CRC32 intrinsic
-Reviewed-by: goetz
-
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
-@@ -33,5 +33,7 @@
- address generate_abstract_entry(void);
- address generate_accessor_entry(void);
- address generate_Reference_get_entry(void);
-+ address generate_CRC32_update_entry();
-+ address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
-
- #endif // CPU_PPC_VM_INTERPRETERGENERATOR_PPC_HPP
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
-@@ -49,6 +49,7 @@
- #else
- #define BLOCK_COMMENT(str) block_comment(str)
- #endif
-+#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
-
- #ifdef ASSERT
- // On RISC, there's no benefit to verifying instruction boundaries.
-@@ -3022,6 +3023,418 @@
- bind(Ldone_false);
- }
-
-+// Helpers for Intrinsic Emitters
-+//
-+// Revert the byte order of a 32bit value in a register
-+// src: 0x44556677
-+// dst: 0x77665544
-+// Three steps to obtain the result:
-+// 1) Rotate src (as doubleword) left 5 bytes. That puts the leftmost byte of the src
word
-+// into the rightmost byte position. Afterwards, everything left of the rightmost
byte is cleared.
-+// This value initializes dst.
-+// 2) Rotate src (as word) left 3 bytes. That puts the rightmost byte of the src word
into the leftmost
-+// byte position. Furthermore, byte 5 is rotated into byte 6 position where it is
supposed to go.
-+// This value is mask inserted into dst with a [0..23] mask of 1s.
-+// 3) Rotate src (as word) left 1 byte. That puts byte 6 into byte 5 position.
-+// This value is mask inserted into dst with a [8..15] mask of 1s.
-+void MacroAssembler::load_reverse_32(Register dst, Register src) {
-+ assert_different_registers(dst, src);
-+
-+ rldicl(dst, src, (4+1)*8, 56); // Rotate byte 4 into position 7 (rightmost),
clear all to the left.
-+ rlwimi(dst, src, 3*8, 0, 23); // Insert byte 5 into position 6, 7 into 4, leave
pos 7 alone.
-+ rlwimi(dst, src, 1*8, 8, 15); // Insert byte 6 into position 5, leave the rest
alone.
-+}
-+
-+// Calculate the column addresses of the crc32 lookup table into distinct registers.
-+// This loop-invariant calculation is moved out of the loop body, reducing the loop
-+// body size from 20 to 16 instructions.
-+// Returns the offset that was used to calculate the address of column tc3.
-+// Due to register shortage, setting tc3 may overwrite table. With the return offset
-+// at hand, the original table address can be easily reconstructed.
-+int MacroAssembler::crc32_table_columns(Register table, Register tc0, Register tc1,
Register tc2, Register tc3) {
-+
-+#ifdef VM_LITTLE_ENDIAN
-+ // This is what we implement (the DOLIT4 part):
-+ // ========================================================================= */
-+ // #define DOLIT4 c ^= *buf4++; \
-+ // c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^
\
-+ // crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
-+ // #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
-+ // ========================================================================= */
-+ const int ix0 = 3*(4*CRC32_COLUMN_SIZE);
-+ const int ix1 = 2*(4*CRC32_COLUMN_SIZE);
-+ const int ix2 = 1*(4*CRC32_COLUMN_SIZE);
-+ const int ix3 = 0*(4*CRC32_COLUMN_SIZE);
-+#else
-+ // This is what we implement (the DOBIG4 part):
-+ // =========================================================================
-+ // #define DOBIG4 c ^= *++buf4; \
-+ // c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^
\
-+ // crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
-+ // #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-+ // =========================================================================
-+ const int ix0 = 4*(4*CRC32_COLUMN_SIZE);
-+ const int ix1 = 5*(4*CRC32_COLUMN_SIZE);
-+ const int ix2 = 6*(4*CRC32_COLUMN_SIZE);
-+ const int ix3 = 7*(4*CRC32_COLUMN_SIZE);
-+#endif
-+ assert_different_registers(table, tc0, tc1, tc2);
-+ assert(table == tc3, "must be!");
-+
-+ if (ix0 != 0) addi(tc0, table, ix0);
-+ if (ix1 != 0) addi(tc1, table, ix1);
-+ if (ix2 != 0) addi(tc2, table, ix2);
-+ if (ix3 != 0) addi(tc3, table, ix3);
-+
-+ return ix3;
-+}
-+
-+/**
-+ * uint32_t crc;
-+ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
-+ */
-+void MacroAssembler::fold_byte_crc32(Register crc, Register val, Register table,
Register tmp) {
-+ assert_different_registers(crc, table, tmp);
-+ assert_different_registers(val, table);
-+
-+ if (crc == val) { // Must rotate first to use the unmodified value.
-+ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left
by 2, into byte 6..7 of tmp, clear the rest.
-+ // As we use a word (4-byte) instruction, we have
to adapt the mask bit positions.
-+ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
-+ } else {
-+ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
-+ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left
by 2, into byte 6..7 of tmp, clear the rest.
-+ }
-+ lwzx(tmp, table, tmp);
-+ xorr(crc, crc, tmp);
-+}
-+
-+/**
-+ * uint32_t crc;
-+ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
-+ */
-+void MacroAssembler::fold_8bit_crc32(Register crc, Register table, Register tmp) {
-+ fold_byte_crc32(crc, crc, table, tmp);
-+}
-+
-+/**
-+ * Emits code to update CRC-32 with a byte value according to constants in table.
-+ *
-+ * @param [in,out]crc Register containing the crc.
-+ * @param [in]val Register containing the byte to fold into the CRC.
-+ * @param [in]table Register containing the table of crc constants.
-+ *
-+ * uint32_t crc;
-+ * val = crc_table[(val ^ crc) & 0xFF];
-+ * crc = val ^ (crc >> 8);
-+ */
-+void MacroAssembler::update_byte_crc32(Register crc, Register val, Register table) {
-+ BLOCK_COMMENT("update_byte_crc32:");
-+ xorr(val, val, crc);
-+ fold_byte_crc32(crc, val, table, val);
-+}
-+
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param table register pointing to CRC table
-+ */
-+void MacroAssembler::update_byteLoop_crc32(Register crc, Register buf, Register len,
Register table,
-+ Register data, bool loopAlignment, bool
invertCRC) {
-+ assert_different_registers(crc, buf, len, table, data);
-+
-+ Label L_mainLoop, L_done;
-+ const int mainLoop_stepping = 1;
-+ const int mainLoop_alignment = loopAlignment ? 32 : 4; // (InputForNewCode > 4 ?
InputForNewCode : 32) : 4;
-+
-+ // Process all bytes in a single-byte loop.
-+ cmpdi(CCR0, len, 0); // Anything to do?
-+ mtctr(len);
-+ beq(CCR0, L_done);
-+
-+ if (invertCRC) {
-+ nand(crc, crc, crc); // ~c
-+ }
-+
-+ align(mainLoop_alignment);
-+ BIND(L_mainLoop);
-+ lbz(data, 0, buf); // Byte from buffer, zero-extended.
-+ addi(buf, buf, mainLoop_stepping); // Advance buffer position.
-+ update_byte_crc32(crc, data, table);
-+ bdnz(L_mainLoop); // Iterate.
-+
-+ if (invertCRC) {
-+ nand(crc, crc, crc); // ~c
-+ }
-+
-+ bind(L_done);
-+}
-+
-+/**
-+ * Emits code to update CRC-32 with a 4-byte value according to constants in table
-+ * Implementation according to jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.c
-+ */
-+// A not on the lookup table address(es):
-+// The lookup table consists of two sets of four columns each.
-+// The columns {0..3} are used for little-endian machines.
-+// The columns {4..7} are used for big-endian machines.
-+// To save the effort of adding the column offset to the table address each time
-+// a table element is looked up, it is possible to pass the pre-calculated
-+// column addresses.
-+// Uses R9..R12 as work register. Must be saved/restored by caller, if necessary.
-+void MacroAssembler::update_1word_crc32(Register crc, Register buf, Register table, int
bufDisp, int bufInc,
-+ Register t0, Register t1, Register t2,
Register t3,
-+ Register tc0, Register tc1, Register tc2,
Register tc3) {
-+ assert_different_registers(crc, t3);
-+
-+ // XOR crc with next four bytes of buffer.
-+ lwz(t3, bufDisp, buf);
-+ if (bufInc != 0) {
-+ addi(buf, buf, bufInc);
-+ }
-+ xorr(t3, t3, crc);
-+
-+ // Chop crc into 4 single-byte pieces, shifted left 2 bits, to form the table
indices.
-+ rlwinm(t0, t3, 2, 24-2, 31-2); // ((t1 >> 0) & 0xff) << 2
-+ rlwinm(t1, t3, 32+(2- 8), 24-2, 31-2); // ((t1 >> 8) & 0xff) << 2
-+ rlwinm(t2, t3, 32+(2-16), 24-2, 31-2); // ((t1 >> 16) & 0xff) << 2
-+ rlwinm(t3, t3, 32+(2-24), 24-2, 31-2); // ((t1 >> 24) & 0xff) << 2
-+
-+ // Use the pre-calculated column addresses.
-+ // Load pre-calculated table values.
-+ lwzx(t0, tc0, t0);
-+ lwzx(t1, tc1, t1);
-+ lwzx(t2, tc2, t2);
-+ lwzx(t3, tc3, t3);
-+
-+ // Calculate new crc from table values.
-+ xorr(t0, t0, t1);
-+ xorr(t2, t2, t3);
-+ xorr(crc, t0, t2); // Now crc contains the final checksum value.
-+}
-+
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param table register pointing to CRC table
-+ *
-+ * Uses R9..R12 as work register. Must be saved/restored by caller!
-+ */
-+void MacroAssembler::kernel_crc32_2word(Register crc, Register buf, Register len,
Register table,
-+ Register t0, Register t1, Register t2,
Register t3,
-+ Register tc0, Register tc1, Register tc2,
Register tc3) {
-+ assert_different_registers(crc, buf, len, table);
-+
-+ Label L_mainLoop, L_tail;
-+ Register tmp = t0;
-+ Register data = t0;
-+ Register tmp2 = t1;
-+ const int mainLoop_stepping = 8;
-+ const int tailLoop_stepping = 1;
-+ const int log_stepping = exact_log2(mainLoop_stepping);
-+ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
-+ const int complexThreshold = 2*mainLoop_stepping;
-+
-+ // Don't test for len <= 0 here. This pathological case should not occur
anyway.
-+ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
-+ // The situation itself is detected and handled correctly by the conditional branches
-+ // following aghi(len, -stepping) and aghi(len, +stepping).
-+ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
-+
-+ BLOCK_COMMENT("kernel_crc32_2word {");
-+
-+ nand(crc, crc, crc); // ~c
-+
-+ // Check for short (<mainLoop_stepping) buffer.
-+ cmpdi(CCR0, len, complexThreshold);
-+ blt(CCR0, L_tail);
-+
-+ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
-+ // We leave the code in for reference. Maybe we need alignment when we exploit vector
instructions.
-+ {
-+ // Align buf addr to mainLoop_stepping boundary.
-+ neg(tmp2, buf); // Calculate # preLoop iterations for
alignment.
-+ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into tmp2,
anding with mask with 1s from 62..63.
-+
-+ if (complexThreshold > mainLoop_stepping) {
-+ sub(len, len, tmp2); // Remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
-+ } else {
-+ sub(tmp, len, tmp2); // Remaining bytes for main loop.
-+ cmpdi(CCR0, tmp, mainLoop_stepping);
-+ blt(CCR0, L_tail); // For less than one mainloop_stepping
left, do only tail processing
-+ mr(len, tmp); // remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
-+ }
-+ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
-+ }
-+
-+ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
-+ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
-+ mtctr(tmp2);
-+
-+#ifdef VM_LITTLE_ENDIAN
-+ Register crc_rv = crc;
-+#else
-+ Register crc_rv = tmp; // Load_reverse needs separate
registers to work on.
-+ // Occupies tmp, but frees up crc.
-+ load_reverse_32(crc_rv, crc); // Revert byte order because we are
dealing with big-endian data.
-+ tmp = crc;
-+#endif
-+
-+ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
-+
-+ align(mainLoop_alignment); // Octoword-aligned loop address. Shows
2% improvement.
-+ BIND(L_mainLoop);
-+ update_1word_crc32(crc_rv, buf, table, 0, 0, crc_rv, t1, t2, t3, tc0, tc1, tc2,
tc3);
-+ update_1word_crc32(crc_rv, buf, table, 4, mainLoop_stepping, crc_rv, t1, t2, t3,
tc0, tc1, tc2, tc3);
-+ bdnz(L_mainLoop);
-+
-+#ifndef VM_LITTLE_ENDIAN
-+ load_reverse_32(crc, crc_rv); // Revert byte order because we are
dealing with big-endian data.
-+ tmp = crc_rv; // Tmp uses it's original register
again.
-+#endif
-+
-+ // Restore original table address for tailLoop.
-+ if (reconstructTableOffset != 0) {
-+ addi(table, table, -reconstructTableOffset);
-+ }
-+
-+ // Process last few (<complexThreshold) bytes of buffer.
-+ BIND(L_tail);
-+ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
-+
-+ nand(crc, crc, crc); // ~c
-+ BLOCK_COMMENT("} kernel_crc32_2word");
-+}
-+
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param table register pointing to CRC table
-+ *
-+ * uses R9..R12 as work register. Must be saved/restored by caller!
-+ */
-+void MacroAssembler::kernel_crc32_1word(Register crc, Register buf, Register len,
Register table,
-+ Register t0, Register t1, Register t2,
Register t3,
-+ Register tc0, Register tc1, Register tc2,
Register tc3) {
-+ assert_different_registers(crc, buf, len, table);
-+
-+ Label L_mainLoop, L_tail;
-+ Register tmp = t0;
-+ Register data = t0;
-+ Register tmp2 = t1;
-+ const int mainLoop_stepping = 4;
-+ const int tailLoop_stepping = 1;
-+ const int log_stepping = exact_log2(mainLoop_stepping);
-+ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
-+ const int complexThreshold = 2*mainLoop_stepping;
-+
-+ // Don't test for len <= 0 here. This pathological case should not occur
anyway.
-+ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
-+ // The situation itself is detected and handled correctly by the conditional branches
-+ // following aghi(len, -stepping) and aghi(len, +stepping).
-+ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
-+
-+ BLOCK_COMMENT("kernel_crc32_1word {");
-+
-+ nand(crc, crc, crc); // ~c
-+
-+ // Check for short (<mainLoop_stepping) buffer.
-+ cmpdi(CCR0, len, complexThreshold);
-+ blt(CCR0, L_tail);
-+
-+ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
-+ // We leave the code in for reference. Maybe we need alignment when we exploit vector
instructions.
-+ {
-+ // Align buf addr to mainLoop_stepping boundary.
-+ neg(tmp2, buf); // Calculate # preLoop iterations for
alignment.
-+ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into
tmp2, anding with mask with 1s from 62..63.
-+
-+ if (complexThreshold > mainLoop_stepping) {
-+ sub(len, len, tmp2); // Remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
-+ } else {
-+ sub(tmp, len, tmp2); // Remaining bytes for main loop.
-+ cmpdi(CCR0, tmp, mainLoop_stepping);
-+ blt(CCR0, L_tail); // For less than one mainloop_stepping
left, do only tail processing
-+ mr(len, tmp); // remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
-+ }
-+ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
-+ }
-+
-+ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
-+ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
-+ mtctr(tmp2);
-+
-+#ifdef VM_LITTLE_ENDIAN
-+ Register crc_rv = crc;
-+#else
-+ Register crc_rv = tmp; // Load_reverse needs separate
registers to work on.
-+ // Occupies tmp, but frees up crc.
-+ load_reverse_32(crc_rv, crc); // evert byte order because we are
dealing with big-endian data.
-+ tmp = crc;
-+#endif
-+
-+ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
-+
-+ align(mainLoop_alignment); // Octoword-aligned loop address. Shows
2% improvement.
-+ BIND(L_mainLoop);
-+ update_1word_crc32(crc_rv, buf, table, 0, mainLoop_stepping, crc_rv, t1, t2, t3,
tc0, tc1, tc2, tc3);
-+ bdnz(L_mainLoop);
-+
-+#ifndef VM_LITTLE_ENDIAN
-+ load_reverse_32(crc, crc_rv); // Revert byte order because we are
dealing with big-endian data.
-+ tmp = crc_rv; // Tmp uses it's original register
again.
-+#endif
-+
-+ // Restore original table address for tailLoop.
-+ if (reconstructTableOffset != 0) {
-+ addi(table, table, -reconstructTableOffset);
-+ }
-+
-+ // Process last few (<complexThreshold) bytes of buffer.
-+ BIND(L_tail);
-+ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
-+
-+ nand(crc, crc, crc); // ~c
-+ BLOCK_COMMENT("} kernel_crc32_1word");
-+}
-+
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param table register pointing to CRC table
-+ *
-+ * Uses R7_ARG5, R8_ARG6 as work registers.
-+ */
-+void MacroAssembler::kernel_crc32_1byte(Register crc, Register buf, Register len,
Register table,
-+ Register t0, Register t1, Register t2,
Register t3) {
-+ assert_different_registers(crc, buf, len, table);
-+
-+ Register data = t0; // Holds the current byte to be folded into
crc.
-+
-+ BLOCK_COMMENT("kernel_crc32_1byte {");
-+
-+ // Process all bytes in a single-byte loop.
-+ update_byteLoop_crc32(crc, buf, len, table, data, true, true);
-+
-+ BLOCK_COMMENT("} kernel_crc32_1byte");
-+}
-+
-+void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len,
Register table, Register tmp) {
-+ assert_different_registers(crc, buf, /* len, not used!! */ table, tmp);
-+
-+ BLOCK_COMMENT("kernel_crc32_singleByte:");
-+ nand(crc, crc, crc); // ~c
-+
-+ lbz(tmp, 0, buf); // Byte from buffer, zero-extended.
-+ update_byte_crc32(crc, tmp, table);
-+
-+ nand(crc, crc, crc); // ~c
-+}
-+
-
- void MacroAssembler::asm_assert(bool check_equal, const char *msg, int id) {
- #ifdef ASSERT
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
-@@ -637,6 +637,27 @@
- void char_arrays_equalsImm(Register str1_reg, Register str2_reg, int cntval, Register
result_reg,
- Register tmp1_reg, Register tmp2_reg);
-
-+ // CRC32 Intrinsics.
-+ void load_reverse_32(Register dst, Register src);
-+ int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2,
Register tc3);
-+ void fold_byte_crc32(Register crc, Register val, Register table, Register tmp);
-+ void fold_8bit_crc32(Register crc, Register table, Register tmp);
-+ void update_byte_crc32(Register crc, Register val, Register table);
-+ void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table,
-+ Register data, bool loopAlignment, bool invertCRC);
-+ void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int
bufInc,
-+ Register t0, Register t1, Register t2, Register t3,
-+ Register tc0, Register tc1, Register tc2, Register tc3);
-+ void kernel_crc32_2word(Register crc, Register buf, Register len, Register table,
-+ Register t0, Register t1, Register t2, Register t3,
-+ Register tc0, Register tc1, Register tc2, Register tc3);
-+ void kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
-+ Register t0, Register t1, Register t2, Register t3,
-+ Register tc0, Register tc1, Register tc2, Register tc3);
-+ void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
-+ Register t0, Register t1, Register t2, Register t3);
-+ void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table,
Register tmp);
-+
- //
- // Debugging
- //
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-@@ -2473,6 +2473,54 @@
- __ blr();
- }
-
-+ /**
-+ * Arguments:
-+ *
-+ * Inputs:
-+ * R3_ARG1 - int crc
-+ * R4_ARG2 - byte* buf
-+ * R5_ARG3 - int length (of buffer)
-+ *
-+ * scratch:
-+ * R6_ARG4 - crc table address
-+ * R7_ARG5 - tmp1
-+ * R8_ARG6 - tmp2
-+ *
-+ * Ouput:
-+ * R3_RET - int crc result
-+ */
-+ // Compute CRC32 function.
-+ address generate_CRC32_updateBytes(const char* name) {
-+ __ align(CodeEntryAlignment);
-+ StubCodeMark mark(this, "StubRoutines", name);
-+ address start = __ function_entry(); // Remember stub start address (is rtn
value).
-+
-+ // arguments to kernel_crc32:
-+ Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
-+ Register data = R4_ARG2; // source byte array
-+ Register dataLen = R5_ARG3; // #bytes to process
-+ Register table = R6_ARG4; // crc table address
-+
-+ Register t0 = R9; // work reg for kernel* emitters
-+ Register t1 = R10; // work reg for kernel* emitters
-+ Register t2 = R11; // work reg for kernel* emitters
-+ Register t3 = R12; // work reg for kernel* emitters
-+
-+ BLOCK_COMMENT("Stub body {");
-+ assert_different_registers(crc, data, dataLen, table);
-+
-+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-+
-+ __ kernel_crc32_1byte(crc, data, dataLen, table, t0, t1, t2, t3);
-+
-+ BLOCK_COMMENT("return");
-+ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
-+ __ blr();
-+
-+ BLOCK_COMMENT("} Stub body");
-+ return start;
-+ }
-+
- // Initialization
- void generate_initial() {
- // Generates all stubs and initializes the entry points
-@@ -2491,6 +2539,12 @@
- StubRoutines::_throw_StackOverflowError_entry =
- generate_throw_exception("StackOverflowError throw_exception",
- CAST_FROM_FN_PTR(address,
SharedRuntime::throw_StackOverflowError), false);
-+
-+ // CRC32 Intrinsics.
-+ if (UseCRC32Intrinsics) {
-+ StubRoutines::_crc_table_adr = (address)StubRoutines::ppc64::_crc_table;
-+ StubRoutines::_updateBytesCRC32 =
generate_CRC32_updateBytes("CRC32_updateBytes");
-+ }
- }
-
- void generate_all() {
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
-@@ -1,6 +1,6 @@
- /*
-- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
-- * Copyright 2012, 2014 SAP AG. All rights reserved.
-+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2012, 2018 SAP SE. 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
-@@ -23,7 +23,457 @@
- *
- */
-
-+#include "asm/macroAssembler.inline.hpp"
-+#include "runtime/stubRoutines.hpp"
-+
- // Implementation of the platform-specific part of StubRoutines - for
- // a description of how to extend it, see the stubRoutines.hpp file.
-
-
-+#define __ masm->
-+
-+// CRC32 Intrinsics.
-+void StubRoutines::ppc64::generate_load_crc_table_addr(MacroAssembler* masm, Register
table) {
-+ __ load_const(table, StubRoutines::_crc_table_adr);
-+}
-+
-+// CRC32 Intrinsics.
-+/**
-+ * crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.h
-+ */
-+juint StubRoutines::ppc64::_crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE] = {
-+ {
-+ 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
-+ 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
-+ 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
-+ 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
-+ 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
-+ 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
-+ 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
-+ 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
-+ 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
-+ 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
-+ 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
-+ 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
-+ 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
-+ 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
-+ 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
-+ 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
-+ 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
-+ 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
-+ 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
-+ 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
-+ 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
-+ 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
-+ 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
-+ 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
-+ 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
-+ 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
-+ 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
-+ 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
-+ 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
-+ 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
-+ 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
-+ 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
-+ 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
-+ 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
-+ 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
-+ 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
-+ 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
-+ 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
-+ 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
-+ 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
-+ 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
-+ 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
-+ 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
-+ 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
-+ 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
-+ 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
-+ 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
-+ 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
-+ 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
-+ 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
-+ 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
-+ 0x2d02ef8dUL
-+#ifdef CRC32_BYFOUR
-+ },
-+ {
-+ 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
-+ 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
-+ 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
-+ 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
-+ 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
-+ 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
-+ 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
-+ 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
-+ 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
-+ 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
-+ 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
-+ 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
-+ 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
-+ 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
-+ 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
-+ 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
-+ 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
-+ 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
-+ 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
-+ 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
-+ 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
-+ 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
-+ 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
-+ 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
-+ 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
-+ 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
-+ 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
-+ 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
-+ 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
-+ 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
-+ 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
-+ 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
-+ 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
-+ 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
-+ 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
-+ 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
-+ 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
-+ 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
-+ 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
-+ 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
-+ 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
-+ 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
-+ 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
-+ 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
-+ 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
-+ 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
-+ 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
-+ 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
-+ 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
-+ 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
-+ 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
-+ 0x9324fd72UL
-+ },
-+ {
-+ 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
-+ 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
-+ 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
-+ 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
-+ 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
-+ 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
-+ 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
-+ 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
-+ 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
-+ 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
-+ 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
-+ 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
-+ 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
-+ 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
-+ 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
-+ 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
-+ 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
-+ 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
-+ 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
-+ 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
-+ 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
-+ 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
-+ 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
-+ 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
-+ 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
-+ 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
-+ 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
-+ 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
-+ 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
-+ 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
-+ 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
-+ 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
-+ 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
-+ 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
-+ 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
-+ 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
-+ 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
-+ 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
-+ 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
-+ 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
-+ 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
-+ 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
-+ 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
-+ 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
-+ 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
-+ 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
-+ 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
-+ 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
-+ 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
-+ 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
-+ 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
-+ 0xbe9834edUL
-+ },
-+ {
-+ 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
-+ 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
-+ 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
-+ 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
-+ 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
-+ 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
-+ 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
-+ 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
-+ 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
-+ 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
-+ 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
-+ 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
-+ 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
-+ 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
-+ 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
-+ 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
-+ 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
-+ 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
-+ 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
-+ 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
-+ 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
-+ 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
-+ 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
-+ 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
-+ 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
-+ 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
-+ 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
-+ 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
-+ 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
-+ 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
-+ 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
-+ 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
-+ 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
-+ 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
-+ 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
-+ 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
-+ 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
-+ 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
-+ 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
-+ 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
-+ 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
-+ 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
-+ 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
-+ 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
-+ 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
-+ 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
-+ 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
-+ 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
-+ 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
-+ 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
-+ 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
-+ 0xde0506f1UL
-+ },
-+ {
-+ 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
-+ 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
-+ 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
-+ 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
-+ 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
-+ 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
-+ 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
-+ 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
-+ 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
-+ 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
-+ 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
-+ 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
-+ 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
-+ 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
-+ 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
-+ 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
-+ 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
-+ 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
-+ 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
-+ 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
-+ 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
-+ 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
-+ 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
-+ 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
-+ 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
-+ 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
-+ 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
-+ 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
-+ 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
-+ 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
-+ 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
-+ 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
-+ 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
-+ 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
-+ 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
-+ 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
-+ 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
-+ 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
-+ 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
-+ 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
-+ 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
-+ 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
-+ 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
-+ 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
-+ 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
-+ 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
-+ 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
-+ 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
-+ 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
-+ 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
-+ 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
-+ 0x8def022dUL
-+ },
-+ {
-+ 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
-+ 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
-+ 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
-+ 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
-+ 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
-+ 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
-+ 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
-+ 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
-+ 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
-+ 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
-+ 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
-+ 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
-+ 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
-+ 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
-+ 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
-+ 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
-+ 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
-+ 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
-+ 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
-+ 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
-+ 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
-+ 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
-+ 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
-+ 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
-+ 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
-+ 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
-+ 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
-+ 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
-+ 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
-+ 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
-+ 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
-+ 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
-+ 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
-+ 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
-+ 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
-+ 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
-+ 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
-+ 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
-+ 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
-+ 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
-+ 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
-+ 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
-+ 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
-+ 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
-+ 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
-+ 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
-+ 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
-+ 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
-+ 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
-+ 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
-+ 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
-+ 0x72fd2493UL
-+ },
-+ {
-+ 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
-+ 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
-+ 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
-+ 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
-+ 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
-+ 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
-+ 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
-+ 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
-+ 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
-+ 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
-+ 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
-+ 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
-+ 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
-+ 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
-+ 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
-+ 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
-+ 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
-+ 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
-+ 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
-+ 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
-+ 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
-+ 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
-+ 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
-+ 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
-+ 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
-+ 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
-+ 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
-+ 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
-+ 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
-+ 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
-+ 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
-+ 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
-+ 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
-+ 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
-+ 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
-+ 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
-+ 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
-+ 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
-+ 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
-+ 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
-+ 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
-+ 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
-+ 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
-+ 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
-+ 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
-+ 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
-+ 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
-+ 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
-+ 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
-+ 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
-+ 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
-+ 0xed3498beUL
-+ },
-+ {
-+ 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
-+ 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
-+ 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
-+ 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
-+ 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
-+ 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
-+ 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
-+ 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
-+ 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
-+ 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
-+ 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
-+ 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
-+ 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
-+ 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
-+ 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
-+ 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
-+ 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
-+ 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
-+ 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
-+ 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
-+ 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
-+ 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
-+ 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
-+ 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
-+ 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
-+ 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
-+ 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
-+ 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
-+ 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
-+ 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
-+ 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
-+ 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
-+ 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
-+ 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
-+ 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
-+ 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
-+ 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
-+ 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
-+ 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
-+ 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
-+ 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
-+ 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
-+ 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
-+ 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
-+ 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
-+ 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
-+ 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
-+ 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
-+ 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
-+ 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
-+ 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
-+ 0xf10605deUL
-+#endif
-+ }
-+};
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
-@@ -1,6 +1,6 @@
- /*
-- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
-- * Copyright 2012, 2013 SAP AG. All rights reserved.
-+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2012, 2018 SAP SE. 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
-@@ -30,11 +30,35 @@
- // definition. See stubRoutines.hpp for a description on how to
- // extend it.
-
--static bool returns_to_call_stub(address return_pc) { return return_pc ==
_call_stub_return_address; }
-+static bool returns_to_call_stub(address return_pc) { return return_pc ==
_call_stub_return_address; }
-
- enum platform_dependent_constants {
- code_size1 = 20000, // simply increase if too small (assembler will crash if
too small)
- code_size2 = 20000 // simply increase if too small (assembler will crash if
too small)
- };
-
-+// CRC32 Intrinsics.
-+#define CRC32_COLUMN_SIZE 256
-+#define CRC32_BYFOUR
-+#ifdef CRC32_BYFOUR
-+ #define CRC32_TABLES 8
-+#else
-+ #define CRC32_TABLES 1
-+#endif
-+
-+class ppc64 {
-+ friend class StubGenerator;
-+
-+ private:
-+
-+ // CRC32 Intrinsics.
-+ static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
-+
-+ public:
-+
-+ // CRC32 Intrinsics.
-+ static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
-+
-+};
-+
- #endif // CPU_PPC_VM_STUBROUTINES_PPC_64_HPP
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
-@@ -57,7 +57,7 @@
- #define BLOCK_COMMENT(str) __ block_comment(str)
- #endif
-
--#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
-+#define BIND(label) __ bind(label); BLOCK_COMMENT(#label ":")
-
- //-----------------------------------------------------------------------------
-
-@@ -783,7 +783,7 @@
- }
- generate_counter_incr(&invocation_counter_overflow, NULL, NULL);
-
-- __ BIND(continue_after_compile);
-+ BIND(continue_after_compile);
- // Reset the _do_not_unlock_if_synchronized flag.
- if (synchronized) {
- __ li(R0, 0);
-@@ -843,7 +843,7 @@
- __ ld(signature_handler_fd, method_(signature_handler));
- __ twi_0(signature_handler_fd); // Order wrt. load of klass mirror and entry point
(isync is below).
-
-- __ BIND(call_signature_handler);
-+ BIND(call_signature_handler);
-
- // Before we call the signature handler we push a new frame to
- // protect the interpreter frame volatile registers when we return
-@@ -913,7 +913,7 @@
- __ std(R0/*mirror*/, _ijava_state_neg(oop_tmp), R11_scratch1);
- // R4_ARG2 = &state->_oop_temp;
- __ addi(R4_ARG2, R11_scratch1, _ijava_state_neg(oop_tmp));
-- __ BIND(method_is_not_static);
-+ BIND(method_is_not_static);
- }
-
- // At this point, arguments have been copied off the stack into
-@@ -1126,14 +1126,14 @@
- // interpreter will do the correct thing. If it isn't interpreted
- // (call stub/compiled code) we will change our return and continue.
-
-- __ BIND(exception_return_sync_check);
-+ BIND(exception_return_sync_check);
-
- if (synchronized) {
- // Don't check for exceptions since we're still in the i2n frame. Do that
- // manually afterwards.
- unlock_method(false);
- }
-- __ BIND(exception_return_sync_check_already_unlocked);
-+ BIND(exception_return_sync_check_already_unlocked);
-
- const Register return_pc = R31;
-
-@@ -1327,6 +1327,12 @@
- case Interpreter::java_lang_math_exp : entry_point = ((InterpreterGenerator*)
this)->generate_math_entry(kind); break;
- case Interpreter::java_lang_ref_reference_get
- : entry_point =
((InterpreterGenerator*)this)->generate_Reference_get_entry(); break;
-+ case Interpreter::java_util_zip_CRC32_update
-+ : entry_point =
((InterpreterGenerator*)this)->generate_CRC32_update_entry(); break;
-+ case Interpreter::java_util_zip_CRC32_updateBytes
-+ : // fall thru
-+ case Interpreter::java_util_zip_CRC32_updateByteBuffer
-+ : entry_point =
((InterpreterGenerator*)this)->generate_CRC32_updateBytes_entry(kind); break;
- default : ShouldNotReachHere();
break;
- }
-
-@@ -1337,6 +1343,179 @@
- return ((InterpreterGenerator*) this)->generate_normal_entry(synchronized);
- }
-
-+// CRC32 Intrinsics.
-+//
-+// Contract on scratch and work registers.
-+// =======================================
-+//
-+// On ppc, the register set {R2..R12} is available in the interpreter as scratch/work
registers.
-+// You should, however, keep in mind that {R3_ARG1..R10_ARG8} is the C-ABI argument
register set.
-+// You can't rely on these registers across calls.
-+//
-+// The generators for CRC32_update and for CRC32_updateBytes use the
-+// scratch/work register set internally, passing the work registers
-+// as arguments to the MacroAssembler emitters as required.
-+//
-+// R3_ARG1..R6_ARG4 are preset to hold the incoming java arguments.
-+// Their contents is not constant but may change according to the requirements
-+// of the emitted code.
-+//
-+// All other registers from the scratch/work register set are used
"internally"
-+// and contain garbage (i.e. unpredictable values) once blr() is reached.
-+// Basically, only R3_RET contains a defined value which is the function result.
-+//
-+/**
-+ * Method entry for static native methods:
-+ * int java.util.zip.CRC32.update(int crc, int b)
-+ */
-+address InterpreterGenerator::generate_CRC32_update_entry() {
-+ address start = __ pc(); // Remember stub start address (is rtn value).
-+
-+ if (UseCRC32Intrinsics) {
-+ Label slow_path;
-+
-+ // Safepoint check
-+ const Register sync_state = R11_scratch1;
-+ int sync_state_offs = __ load_const_optimized(sync_state,
SafepointSynchronize::address_of_state(), /*temp*/R0, true);
-+ __ lwz(sync_state, sync_state_offs, sync_state);
-+ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
-+ __ bne(CCR0, slow_path);
-+
-+ // We don't generate local frame and don't align stack because
-+ // we not even call stub code (we generate the code inline)
-+ // and there is no safepoint on this path.
-+
-+ // Load java parameters.
-+ // R15_esp is callers operand stack pointer, i.e. it points to the parameters.
-+ const Register argP = R15_esp;
-+ const Register crc = R3_ARG1; // crc value
-+ const Register data = R4_ARG2; // address of java byte value (kernel_crc32 needs
address)
-+ const Register dataLen = R5_ARG3; // source data len (1 byte). Not used because
calling the single-byte emitter.
-+ const Register table = R6_ARG4; // address of crc32 table
-+ const Register tmp = dataLen; // Reuse unused len register to show we don't
actually need a separate tmp here.
-+
-+ BLOCK_COMMENT("CRC32_update {");
-+
-+ // Arguments are reversed on java expression stack
-+#ifdef VM_LITTLE_ENDIAN
-+ __ addi(data, argP, 0+1*wordSize); // (stack) address of byte value. Emitter expects
address, not value.
-+ // Being passed as an int, the single byte is at
offset +0.
-+#else
-+ __ addi(data, argP, 3+1*wordSize); // (stack) address of byte value. Emitter expects
address, not value.
-+ // Being passed from java as an int, the single
byte is at offset +3.
-+#endif
-+ __ lwz(crc, 2*wordSize, argP); // Current crc state, zero extend to 64 bit to
have a clean register.
-+
-+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-+ __ kernel_crc32_singleByte(crc, data, dataLen, table, tmp);
-+
-+ // Restore caller sp for c2i case and return.
-+ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
-+ __ blr();
-+
-+ // Generate a vanilla native entry as the slow path.
-+ BLOCK_COMMENT("} CRC32_update");
-+ BIND(slow_path);
-+ }
-+
-+ (void) generate_native_entry(false);
-+
-+ return start;
-+}
-+
-+// CRC32 Intrinsics.
-+/**
-+ * Method entry for static native methods:
-+ * int java.util.zip.CRC32.updateBytes( int crc, byte[] b, int off, int len)
-+ * int java.util.zip.CRC32.updateByteBuffer(int crc, long* buf, int off, int len)
-+ */
-+address
InterpreterGenerator::generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind
kind) {
-+ address start = __ pc(); // Remember stub start address (is rtn value).
-+
-+ if (UseCRC32Intrinsics) {
-+ Label slow_path;
-+
-+ // Safepoint check
-+ const Register sync_state = R11_scratch1;
-+ int sync_state_offs = __ load_const_optimized(sync_state,
SafepointSynchronize::address_of_state(), /*temp*/R0, true);
-+ __ lwz(sync_state, sync_state_offs, sync_state);
-+ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
-+ __ bne(CCR0, slow_path);
-+
-+ // We don't generate local frame and don't align stack because
-+ // we not even call stub code (we generate the code inline)
-+ // and there is no safepoint on this path.
-+
-+ // Load parameters.
-+ // Z_esp is callers operand stack pointer, i.e. it points to the parameters.
-+ const Register argP = R15_esp;
-+ const Register crc = R3_ARG1; // crc value
-+ const Register data = R4_ARG2; // address of java byte array
-+ const Register dataLen = R5_ARG3; // source data len
-+ const Register table = R6_ARG4; // address of crc32 table
-+
-+ const Register t0 = R9; // scratch registers for crc calculation
-+ const Register t1 = R10;
-+ const Register t2 = R11;
-+ const Register t3 = R12;
-+
-+ const Register tc0 = R2; // registers to hold pre-calculated column
addresses
-+ const Register tc1 = R7;
-+ const Register tc2 = R8;
-+ const Register tc3 = table; // table address is reconstructed at the end of
kernel_crc32_* emitters
-+
-+ const Register tmp = t0; // Only used very locally to calculate byte
buffer address.
-+
-+ // Arguments are reversed on java expression stack.
-+ // Calculate address of start element.
-+ if (kind == Interpreter::java_util_zip_CRC32_updateByteBuffer) { // Used for
"updateByteBuffer direct".
-+ BLOCK_COMMENT("CRC32_updateByteBuffer {");
-+ // crc @ (SP + 5W) (32bit)
-+ // buf @ (SP + 3W) (64bit ptr to long array)
-+ // off @ (SP + 2W) (32bit)
-+ // dataLen @ (SP + 1W) (32bit)
-+ // data = buf + off
-+ __ ld( data, 3*wordSize, argP); // start of byte buffer
-+ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
-+ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
-+ __ lwz( crc, 5*wordSize, argP); // current crc state
-+ __ add( data, data, tmp); // Add byte buffer offset.
-+ } else { // Used for
"updateBytes update".
-+ BLOCK_COMMENT("CRC32_updateBytes {");
-+ // crc @ (SP + 4W) (32bit)
-+ // buf @ (SP + 3W) (64bit ptr to byte array)
-+ // off @ (SP + 2W) (32bit)
-+ // dataLen @ (SP + 1W) (32bit)
-+ // data = buf + off + base_offset
-+ __ ld( data, 3*wordSize, argP); // start of byte buffer
-+ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
-+ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
-+ __ add( data, data, tmp); // add byte buffer offset
-+ __ lwz( crc, 4*wordSize, argP); // current crc state
-+ __ addi(data, data, arrayOopDesc::base_offset_in_bytes(T_BYTE));
-+ }
-+
-+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-+
-+ // Performance measurements show the 1word and 2word variants to be almost
equivalent,
-+ // with very light advantages for the 1word variant. We chose the 1word variant for
-+ // code compactness.
-+ __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2,
tc3);
-+
-+ // Restore caller sp for c2i case and return.
-+ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
-+ __ blr();
-+
-+ // Generate a vanilla native entry as the slow path.
-+ BLOCK_COMMENT("} CRC32_updateBytes(Buffer)");
-+ BIND(slow_path);
-+ }
-+
-+ (void) generate_native_entry(false);
-+
-+ return start;
-+}
-+
- // These should never be compiled since the interpreter will prefer
- // the compiled version to the intrinsic version.
- bool AbstractInterpreter::can_be_compiled(methodHandle m) {
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-@@ -150,10 +150,12 @@
-
- assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be
positive");
-
-- if (UseCRC32Intrinsics) {
-- if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
-- warning("CRC32 intrinsics are not available on this CPU");
-- FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
-+ // Implementation does not use any of the vector instructions
-+ // available with Power8. Their exploitation is still pending.
-+ if (!UseCRC32Intrinsics) {
-+ if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
-+ FLAG_SET_DEFAULT(UseCRC32Intrinsics, true);
-+ }
- }
-
- // The AES intrinsic stubs require AES instruction support.
-diff --git openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp
openjdk/hotspot/src/share/vm/opto/library_call.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp
-+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp
-@@ -6225,10 +6225,16 @@
- // Call the stub.
- address stubAddr = StubRoutines::updateBytesCRC32();
- const char *stubName = "updateBytesCRC32";
--
-- Node* call = make_runtime_call(RC_LEAF|RC_NO_FP,
OptoRuntime::updateBytesCRC32_Type(),
-- stubAddr, stubName, TypePtr::BOTTOM,
-- crc, src_start, length);
-+ Node* call;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ crc XTOP, src_start, length XTOP);
-+ } else {
-+ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ crc, src_start, length);
-+ }
- Node* result = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
- set_result(result);
- return true;
-@@ -6257,10 +6263,16 @@
- // Call the stub.
- address stubAddr = StubRoutines::updateBytesCRC32();
- const char *stubName = "updateBytesCRC32";
--
-- Node* call = make_runtime_call(RC_LEAF|RC_NO_FP,
OptoRuntime::updateBytesCRC32_Type(),
-- stubAddr, stubName, TypePtr::BOTTOM,
-- crc, src_start, length);
-+ Node* call;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ crc XTOP, src_start, length XTOP);
-+ } else {
-+ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ crc, src_start, length);
-+ }
- Node* result = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
- set_result(result);
- return true;
-diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
openjdk/hotspot/src/share/vm/opto/runtime.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
-+++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
-@@ -848,13 +848,24 @@
- */
- const TypeFunc* OptoRuntime::updateBytesCRC32_Type() {
- // create input type (domain)
-- int num_args = 3;
-+ int num_args = 3;
- int argcnt = num_args;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ argcnt += 2;
-+ }
- const Type** fields = TypeTuple::fields(argcnt);
- int argp = TypeFunc::Parms;
-- fields[argp++] = TypeInt::INT; // crc
-- fields[argp++] = TypePtr::NOTNULL; // src
-- fields[argp++] = TypeInt::INT; // len
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ fields[argp++] = TypeLong::LONG; // crc
-+ fields[argp++] = Type::HALF;
-+ fields[argp++] = TypePtr::NOTNULL; // src
-+ fields[argp++] = TypeLong::LONG; // len
-+ fields[argp++] = Type::HALF;
-+ } else {
-+ fields[argp++] = TypeInt::INT; // crc
-+ fields[argp++] = TypePtr::NOTNULL; // src
-+ fields[argp++] = TypeInt::INT; // len
-+ }
- assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
- const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
-
diff --git a/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
b/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
deleted file mode 100644
index 27a2ed4..0000000
--- a/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
+++ /dev/null
@@ -1,1152 +0,0 @@
-# HG changeset patch
-# User mdoerr
-# Date 1474539444 -7200
-# Thu Sep 22 12:17:24 2016 +0200
-# Node ID de4f1f9fbcc5b7b30e1a796b7cf88a16943e785f
-# Parent 567e95df42f866b890dc3f0670e086d266915112
-8164920, PR3574, RH1498936: ppc: enhancement of CRC32 intrinsic
-Reviewed-by: goetz, mdoerr
-Contributed-by: Hiroshi H Horii <horii(a)jp.ibm.com>
-
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
-@@ -468,6 +468,10 @@
- LVSL_OPCODE = (31u << OPCODE_SHIFT | 6u << 1),
- LVSR_OPCODE = (31u << OPCODE_SHIFT | 38u << 1),
-
-+ // Vector-Scalar (VSX) instruction support.
-+ MTVSRD_OPCODE = (31u << OPCODE_SHIFT | 179u << 1),
-+ MFVSRD_OPCODE = (31u << OPCODE_SHIFT | 51u << 1),
-+
- // Vector Permute and Formatting
- VPKPX_OPCODE = (4u << OPCODE_SHIFT | 782u ),
- VPKSHSS_OPCODE = (4u << OPCODE_SHIFT | 398u ),
-@@ -1938,6 +1942,10 @@
- inline void mtvscr( VectorRegister b);
- inline void mfvscr( VectorRegister d);
-
-+ // Vector-Scalar (VSX) instructions.
-+ inline void mtvrd( VectorRegister d, Register a);
-+ inline void mfvrd( Register a, VectorRegister d);
-+
- // AES (introduced with Power 8)
- inline void vcipher( VectorRegister d, VectorRegister a, VectorRegister b);
- inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
-@@ -623,6 +623,10 @@
- inline void Assembler::lvsl( VectorRegister d, Register s1, Register s2) { emit_int32(
LVSL_OPCODE | vrt(d) | ra0mem(s1) | rb(s2)); }
- inline void Assembler::lvsr( VectorRegister d, Register s1, Register s2) { emit_int32(
LVSR_OPCODE | vrt(d) | ra0mem(s1) | rb(s2)); }
-
-+// Vector-Scalar (VSX) instructions.
-+inline void Assembler::mtvrd( VectorRegister d, Register a) {
emit_int32( MTVSRD_OPCODE | vrt(d) | ra(a) | 1u); } // 1u: d is treated as Vector
(VMX/Altivec).
-+inline void Assembler::mfvrd( Register a, VectorRegister d) {
emit_int32( MFVSRD_OPCODE | vrt(d) | ra(a) | 1u); } // 1u: d is treated as Vector
(VMX/Altivec).
-+
- inline void Assembler::vpkpx( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKPX_OPCODE | vrt(d) | vra(a) | vrb(b)); }
- inline void Assembler::vpkshss( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKSHSS_OPCODE | vrt(d) | vra(a) | vrb(b)); }
- inline void Assembler::vpkswss( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKSWSS_OPCODE | vrt(d) | vra(a) | vrb(b)); }
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
-@@ -3423,6 +3423,565 @@
- BLOCK_COMMENT("} kernel_crc32_1byte");
- }
-
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param table register pointing to CRC table
-+ * @param constants register pointing to CRC table for 128-bit aligned memory
-+ * @param barretConstants register pointing to table for barrett reduction
-+ * @param t0 volatile register
-+ * @param t1 volatile register
-+ * @param t2 volatile register
-+ * @param t3 volatile register
-+ */
-+void MacroAssembler::kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register
len, Register table,
-+ Register constants, Register barretConstants,
-+ Register t0, Register t1, Register t2, Register t3, Register
t4) {
-+ assert_different_registers(crc, buf, len, table);
-+
-+ Label L_alignedHead, L_tail, L_alignTail, L_start, L_end;
-+
-+ Register prealign = t0;
-+ Register postalign = t0;
-+
-+ BLOCK_COMMENT("kernel_crc32_1word_vpmsumb {");
-+
-+ // 1. use kernel_crc32_1word for shorter than 384bit
-+ clrldi(len, len, 32);
-+ cmpdi(CCR0, len, 384);
-+ bge(CCR0, L_start);
-+
-+ Register tc0 = t4;
-+ Register tc1 = constants;
-+ Register tc2 = barretConstants;
-+ kernel_crc32_1word(crc, buf, len, table,t0, t1, t2, t3, tc0, tc1, tc2, table);
-+ b(L_end);
-+
-+ BIND(L_start);
-+
-+ // 2. ~c
-+ nand(crc, crc, crc);
-+
-+ // 3. calculate from 0 to first 128bit-aligned address
-+ clrldi_(prealign, buf, 57);
-+ beq(CCR0, L_alignedHead);
-+
-+ subfic(prealign, prealign, 128);
-+
-+ subf(len, prealign, len);
-+ update_byteLoop_crc32(crc, buf, prealign, table, t2, false, false);
-+
-+ // 4. calculate from first 128bit-aligned address to last 128bit-aligned address
-+ BIND(L_alignedHead);
-+
-+ clrldi(postalign, len, 57);
-+ subf(len, postalign, len);
-+
-+ // len must be more than 256bit
-+ kernel_crc32_1word_aligned(crc, buf, len, constants, barretConstants, t1, t2, t3);
-+
-+ // 5. calculate remaining
-+ cmpdi(CCR0, postalign, 0);
-+ beq(CCR0, L_tail);
-+
-+ update_byteLoop_crc32(crc, buf, postalign, table, t2, false, false);
-+
-+ BIND(L_tail);
-+
-+ // 6. ~c
-+ nand(crc, crc, crc);
-+
-+ BIND(L_end);
-+
-+ BLOCK_COMMENT("} kernel_crc32_1word_vpmsumb");
-+}
-+
-+/**
-+ * @param crc register containing existing CRC (32-bit)
-+ * @param buf register pointing to input byte buffer (byte*)
-+ * @param len register containing number of bytes
-+ * @param constants register pointing to CRC table for 128-bit aligned memory
-+ * @param barretConstants register pointing to table for barrett reduction
-+ * @param t0 volatile register
-+ * @param t1 volatile register
-+ * @param t2 volatile register
-+ */
-+void MacroAssembler::kernel_crc32_1word_aligned(Register crc, Register buf, Register
len,
-+ Register constants, Register barretConstants, Register t0, Register t1, Register t2)
{
-+ Label L_mainLoop, L_tail, L_alignTail, L_barrett_reduction, L_end,
L_first_warm_up_done, L_first_cool_down, L_second_cool_down, L_XOR, L_test;
-+ Label L_lv0, L_lv1, L_lv2, L_lv3, L_lv4, L_lv5, L_lv6, L_lv7, L_lv8, L_lv9, L_lv10,
L_lv11, L_lv12, L_lv13, L_lv14, L_lv15;
-+ Label L_1, L_2, L_3, L_4;
-+
-+ Register rLoaded = t0;
-+ Register rTmp1 = t1;
-+ Register rTmp2 = t2;
-+ Register off16 = R22;
-+ Register off32 = R23;
-+ Register off48 = R24;
-+ Register off64 = R25;
-+ Register off80 = R26;
-+ Register off96 = R27;
-+ Register off112 = R28;
-+ Register rIdx = R29;
-+ Register rMax = R30;
-+ Register constantsPos = R31;
-+
-+ VectorRegister mask_32bit = VR24;
-+ VectorRegister mask_64bit = VR25;
-+ VectorRegister zeroes = VR26;
-+ VectorRegister const1 = VR27;
-+ VectorRegister const2 = VR28;
-+
-+ // Save non-volatile vector registers (frameless).
-+ Register offset = t1; int offsetInt = 0;
-+ offsetInt -= 16; li(offset, -16); stvx(VR20, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR21, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR22, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR23, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR24, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR25, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR26, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR27, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); stvx(VR28, offset, R1_SP);
-+ offsetInt -= 8; std(R22, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R23, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R24, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R25, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R26, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R27, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R28, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R29, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R30, offsetInt, R1_SP);
-+ offsetInt -= 8; std(R31, offsetInt, R1_SP);
-+
-+ // Set constants
-+ li(off16, 16);
-+ li(off32, 32);
-+ li(off48, 48);
-+ li(off64, 64);
-+ li(off80, 80);
-+ li(off96, 96);
-+ li(off112, 112);
-+
-+ clrldi(crc, crc, 32);
-+
-+ vxor(zeroes, zeroes, zeroes);
-+ vspltisw(VR0, -1);
-+
-+ vsldoi(mask_32bit, zeroes, VR0, 4);
-+ vsldoi(mask_64bit, zeroes, VR0, -8);
-+
-+ // Get the initial value into v8
-+ vxor(VR8, VR8, VR8);
-+ mtvrd(VR8, crc);
-+ vsldoi(VR8, zeroes, VR8, -8); // shift into bottom 32 bits
-+
-+ li (rLoaded, 0);
-+
-+ rldicr(rIdx, len, 0, 56);
-+
-+ {
-+ BIND(L_1);
-+ // Checksum in blocks of MAX_SIZE (32768)
-+ lis(rMax, 0);
-+ ori(rMax, rMax, 32768);
-+ mr(rTmp2, rMax);
-+ cmpd(CCR0, rIdx, rMax);
-+ bgt(CCR0, L_2);
-+ mr(rMax, rIdx);
-+
-+ BIND(L_2);
-+ subf(rIdx, rMax, rIdx);
-+
-+ // our main loop does 128 bytes at a time
-+ srdi(rMax, rMax, 7);
-+
-+ /*
-+ * Work out the offset into the constants table to start at. Each
-+ * constant is 16 bytes, and it is used against 128 bytes of input
-+ * data - 128 / 16 = 8
-+ */
-+ sldi(rTmp1, rMax, 4);
-+ srdi(rTmp2, rTmp2, 3);
-+ subf(rTmp1, rTmp1, rTmp2);
-+
-+ // We reduce our final 128 bytes in a separate step
-+ addi(rMax, rMax, -1);
-+ mtctr(rMax);
-+
-+ // Find the start of our constants
-+ add(constantsPos, constants, rTmp1);
-+
-+ // zero VR0-v7 which will contain our checksums
-+ vxor(VR0, VR0, VR0);
-+ vxor(VR1, VR1, VR1);
-+ vxor(VR2, VR2, VR2);
-+ vxor(VR3, VR3, VR3);
-+ vxor(VR4, VR4, VR4);
-+ vxor(VR5, VR5, VR5);
-+ vxor(VR6, VR6, VR6);
-+ vxor(VR7, VR7, VR7);
-+
-+ lvx(const1, constantsPos);
-+
-+ /*
-+ * If we are looping back to consume more data we use the values
-+ * already in VR16-v23.
-+ */
-+ cmpdi(CCR0, rLoaded, 1);
-+ beq(CCR0, L_3);
-+ {
-+
-+ // First warm up pass
-+ lvx(VR16, buf);
-+ lvx(VR17, off16, buf);
-+ lvx(VR18, off32, buf);
-+ lvx(VR19, off48, buf);
-+ lvx(VR20, off64, buf);
-+ lvx(VR21, off80, buf);
-+ lvx(VR22, off96, buf);
-+ lvx(VR23, off112, buf);
-+ addi(buf, buf, 8*16);
-+
-+ // xor in initial value
-+ vxor(VR16, VR16, VR8);
-+ }
-+
-+ BIND(L_3);
-+ bdz(L_first_warm_up_done);
-+
-+ addi(constantsPos, constantsPos, 16);
-+ lvx(const2, constantsPos);
-+
-+ // Second warm up pass
-+ vpmsumd(VR8, VR16, const1);
-+ lvx(VR16, buf);
-+
-+ vpmsumd(VR9, VR17, const1);
-+ lvx(VR17, off16, buf);
-+
-+ vpmsumd(VR10, VR18, const1);
-+ lvx(VR18, off32, buf);
-+
-+ vpmsumd(VR11, VR19, const1);
-+ lvx(VR19, off48, buf);
-+
-+ vpmsumd(VR12, VR20, const1);
-+ lvx(VR20, off64, buf);
-+
-+ vpmsumd(VR13, VR21, const1);
-+ lvx(VR21, off80, buf);
-+
-+ vpmsumd(VR14, VR22, const1);
-+ lvx(VR22, off96, buf);
-+
-+ vpmsumd(VR15, VR23, const1);
-+ lvx(VR23, off112, buf);
-+
-+ addi(buf, buf, 8 * 16);
-+
-+ bdz(L_first_cool_down);
-+
-+ /*
-+ * main loop. We modulo schedule it such that it takes three iterations
-+ * to complete - first iteration load, second iteration vpmsum, third
-+ * iteration xor.
-+ */
-+ {
-+ BIND(L_4);
-+ lvx(const1, constantsPos); addi(constantsPos, constantsPos, 16);
-+
-+ vxor(VR0, VR0, VR8);
-+ vpmsumd(VR8, VR16, const2);
-+ lvx(VR16, buf);
-+
-+ vxor(VR1, VR1, VR9);
-+ vpmsumd(VR9, VR17, const2);
-+ lvx(VR17, off16, buf);
-+
-+ vxor(VR2, VR2, VR10);
-+ vpmsumd(VR10, VR18, const2);
-+ lvx(VR18, off32, buf);
-+
-+ vxor(VR3, VR3, VR11);
-+ vpmsumd(VR11, VR19, const2);
-+ lvx(VR19, off48, buf);
-+ lvx(const2, constantsPos);
-+
-+ vxor(VR4, VR4, VR12);
-+ vpmsumd(VR12, VR20, const1);
-+ lvx(VR20, off64, buf);
-+
-+ vxor(VR5, VR5, VR13);
-+ vpmsumd(VR13, VR21, const1);
-+ lvx(VR21, off80, buf);
-+
-+ vxor(VR6, VR6, VR14);
-+ vpmsumd(VR14, VR22, const1);
-+ lvx(VR22, off96, buf);
-+
-+ vxor(VR7, VR7, VR15);
-+ vpmsumd(VR15, VR23, const1);
-+ lvx(VR23, off112, buf);
-+
-+ addi(buf, buf, 8 * 16);
-+
-+ bdnz(L_4);
-+ }
-+
-+ BIND(L_first_cool_down);
-+
-+ // First cool down pass
-+ lvx(const1, constantsPos);
-+ addi(constantsPos, constantsPos, 16);
-+
-+ vxor(VR0, VR0, VR8);
-+ vpmsumd(VR8, VR16, const1);
-+
-+ vxor(VR1, VR1, VR9);
-+ vpmsumd(VR9, VR17, const1);
-+
-+ vxor(VR2, VR2, VR10);
-+ vpmsumd(VR10, VR18, const1);
-+
-+ vxor(VR3, VR3, VR11);
-+ vpmsumd(VR11, VR19, const1);
-+
-+ vxor(VR4, VR4, VR12);
-+ vpmsumd(VR12, VR20, const1);
-+
-+ vxor(VR5, VR5, VR13);
-+ vpmsumd(VR13, VR21, const1);
-+
-+ vxor(VR6, VR6, VR14);
-+ vpmsumd(VR14, VR22, const1);
-+
-+ vxor(VR7, VR7, VR15);
-+ vpmsumd(VR15, VR23, const1);
-+
-+ BIND(L_second_cool_down);
-+ // Second cool down pass
-+ vxor(VR0, VR0, VR8);
-+ vxor(VR1, VR1, VR9);
-+ vxor(VR2, VR2, VR10);
-+ vxor(VR3, VR3, VR11);
-+ vxor(VR4, VR4, VR12);
-+ vxor(VR5, VR5, VR13);
-+ vxor(VR6, VR6, VR14);
-+ vxor(VR7, VR7, VR15);
-+
-+ /*
-+ * vpmsumd produces a 96 bit result in the least significant bits
-+ * of the register. Since we are bit reflected we have to shift it
-+ * left 32 bits so it occupies the least significant bits in the
-+ * bit reflected domain.
-+ */
-+ vsldoi(VR0, VR0, zeroes, 4);
-+ vsldoi(VR1, VR1, zeroes, 4);
-+ vsldoi(VR2, VR2, zeroes, 4);
-+ vsldoi(VR3, VR3, zeroes, 4);
-+ vsldoi(VR4, VR4, zeroes, 4);
-+ vsldoi(VR5, VR5, zeroes, 4);
-+ vsldoi(VR6, VR6, zeroes, 4);
-+ vsldoi(VR7, VR7, zeroes, 4);
-+
-+ // xor with last 1024 bits
-+ lvx(VR8, buf);
-+ lvx(VR9, off16, buf);
-+ lvx(VR10, off32, buf);
-+ lvx(VR11, off48, buf);
-+ lvx(VR12, off64, buf);
-+ lvx(VR13, off80, buf);
-+ lvx(VR14, off96, buf);
-+ lvx(VR15, off112, buf);
-+ addi(buf, buf, 8 * 16);
-+
-+ vxor(VR16, VR0, VR8);
-+ vxor(VR17, VR1, VR9);
-+ vxor(VR18, VR2, VR10);
-+ vxor(VR19, VR3, VR11);
-+ vxor(VR20, VR4, VR12);
-+ vxor(VR21, VR5, VR13);
-+ vxor(VR22, VR6, VR14);
-+ vxor(VR23, VR7, VR15);
-+
-+ li(rLoaded, 1);
-+ cmpdi(CCR0, rIdx, 0);
-+ addi(rIdx, rIdx, 128);
-+ bne(CCR0, L_1);
-+ }
-+
-+ // Work out how many bytes we have left
-+ andi_(len, len, 127);
-+
-+ // Calculate where in the constant table we need to start
-+ subfic(rTmp1, len, 128);
-+ add(constantsPos, constantsPos, rTmp1);
-+
-+ // How many 16 byte chunks are in the tail
-+ srdi(rIdx, len, 4);
-+ mtctr(rIdx);
-+
-+ /*
-+ * Reduce the previously calculated 1024 bits to 64 bits, shifting
-+ * 32 bits to include the trailing 32 bits of zeros
-+ */
-+ lvx(VR0, constantsPos);
-+ lvx(VR1, off16, constantsPos);
-+ lvx(VR2, off32, constantsPos);
-+ lvx(VR3, off48, constantsPos);
-+ lvx(VR4, off64, constantsPos);
-+ lvx(VR5, off80, constantsPos);
-+ lvx(VR6, off96, constantsPos);
-+ lvx(VR7, off112, constantsPos);
-+ addi(constantsPos, constantsPos, 8 * 16);
-+
-+ vpmsumw(VR0, VR16, VR0);
-+ vpmsumw(VR1, VR17, VR1);
-+ vpmsumw(VR2, VR18, VR2);
-+ vpmsumw(VR3, VR19, VR3);
-+ vpmsumw(VR4, VR20, VR4);
-+ vpmsumw(VR5, VR21, VR5);
-+ vpmsumw(VR6, VR22, VR6);
-+ vpmsumw(VR7, VR23, VR7);
-+
-+ // Now reduce the tail (0 - 112 bytes)
-+ cmpdi(CCR0, rIdx, 0);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off16, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off32, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off48,constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off64, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off80, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+ beq(CCR0, L_XOR);
-+
-+ lvx(VR16, buf); addi(buf, buf, 16);
-+ lvx(VR17, off96, constantsPos);
-+ vpmsumw(VR16, VR16, VR17);
-+ vxor(VR0, VR0, VR16);
-+
-+ // Now xor all the parallel chunks together
-+ BIND(L_XOR);
-+ vxor(VR0, VR0, VR1);
-+ vxor(VR2, VR2, VR3);
-+ vxor(VR4, VR4, VR5);
-+ vxor(VR6, VR6, VR7);
-+
-+ vxor(VR0, VR0, VR2);
-+ vxor(VR4, VR4, VR6);
-+
-+ vxor(VR0, VR0, VR4);
-+
-+ b(L_barrett_reduction);
-+
-+ BIND(L_first_warm_up_done);
-+ lvx(const1, constantsPos);
-+ addi(constantsPos, constantsPos, 16);
-+ vpmsumd(VR8, VR16, const1);
-+ vpmsumd(VR9, VR17, const1);
-+ vpmsumd(VR10, VR18, const1);
-+ vpmsumd(VR11, VR19, const1);
-+ vpmsumd(VR12, VR20, const1);
-+ vpmsumd(VR13, VR21, const1);
-+ vpmsumd(VR14, VR22, const1);
-+ vpmsumd(VR15, VR23, const1);
-+ b(L_second_cool_down);
-+
-+ BIND(L_barrett_reduction);
-+
-+ lvx(const1, barretConstants);
-+ addi(barretConstants, barretConstants, 16);
-+ lvx(const2, barretConstants);
-+
-+ vsldoi(VR1, VR0, VR0, -8);
-+ vxor(VR0, VR0, VR1); // xor two 64 bit results together
-+
-+ // shift left one bit
-+ vspltisb(VR1, 1);
-+ vsl(VR0, VR0, VR1);
-+
-+ vand(VR0, VR0, mask_64bit);
-+
-+ /*
-+ * The reflected version of Barrett reduction. Instead of bit
-+ * reflecting our data (which is expensive to do), we bit reflect our
-+ * constants and our algorithm, which means the intermediate data in
-+ * our vector registers goes from 0-63 instead of 63-0. We can reflect
-+ * the algorithm because we don't carry in mod 2 arithmetic.
-+ */
-+ vand(VR1, VR0, mask_32bit); // bottom 32 bits of a
-+ vpmsumd(VR1, VR1, const1); // ma
-+ vand(VR1, VR1, mask_32bit); // bottom 32bits of ma
-+ vpmsumd(VR1, VR1, const2); // qn */
-+ vxor(VR0, VR0, VR1); // a - qn, subtraction is xor in GF(2)
-+
-+ /*
-+ * Since we are bit reflected, the result (ie the low 32 bits) is in
-+ * the high 32 bits. We just need to shift it left 4 bytes
-+ * V0 [ 0 1 X 3 ]
-+ * V0 [ 0 X 2 3 ]
-+ */
-+ vsldoi(VR0, VR0, zeroes, 4); // shift result into top 64 bits of
-+
-+ // Get it into r3
-+ mfvrd(crc, VR0);
-+
-+ BIND(L_end);
-+
-+ offsetInt = 0;
-+ // Restore non-volatile Vector registers (frameless).
-+ offsetInt -= 16; li(offset, -16); lvx(VR20, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR21, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR22, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR23, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR24, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR25, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR26, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR27, offset, R1_SP);
-+ offsetInt -= 16; addi(offset, offset, -16); lvx(VR28, offset, R1_SP);
-+ offsetInt -= 8; ld(R22, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R23, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R24, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R25, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R26, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R27, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R28, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R29, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R30, offsetInt, R1_SP);
-+ offsetInt -= 8; ld(R31, offsetInt, R1_SP);
-+}
-+
- void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len,
Register table, Register tmp) {
- assert_different_registers(crc, buf, /* len, not used!! */ table, tmp);
-
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
-@@ -656,6 +656,13 @@
- Register tc0, Register tc1, Register tc2, Register tc3);
- void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
- Register t0, Register t1, Register t2, Register t3);
-+ void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register
table,
-+ Register constants, Register barretConstants,
-+ Register t0, Register t1, Register t2, Register t3, Register
t4);
-+ void kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
-+ Register constants, Register barretConstants,
-+ Register t0, Register t1, Register t2);
-+
- void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table,
Register tmp);
-
- //
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-@@ -2482,9 +2482,7 @@
- * R5_ARG3 - int length (of buffer)
- *
- * scratch:
-- * R6_ARG4 - crc table address
-- * R7_ARG5 - tmp1
-- * R8_ARG6 - tmp2
-+ * R2, R6-R12
- *
- * Ouput:
- * R3_RET - int crc result
-@@ -2496,28 +2494,62 @@
- address start = __ function_entry(); // Remember stub start address (is rtn
value).
-
- // arguments to kernel_crc32:
-- Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
-- Register data = R4_ARG2; // source byte array
-- Register dataLen = R5_ARG3; // #bytes to process
-- Register table = R6_ARG4; // crc table address
--
-- Register t0 = R9; // work reg for kernel* emitters
-- Register t1 = R10; // work reg for kernel* emitters
-- Register t2 = R11; // work reg for kernel* emitters
-- Register t3 = R12; // work reg for kernel* emitters
--
-- BLOCK_COMMENT("Stub body {");
-- assert_different_registers(crc, data, dataLen, table);
--
-- StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
--
-- __ kernel_crc32_1byte(crc, data, dataLen, table, t0, t1, t2, t3);
--
-- BLOCK_COMMENT("return");
-- __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
-- __ blr();
--
-- BLOCK_COMMENT("} Stub body");
-+ const Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
-+ const Register data = R4_ARG2; // source byte array
-+ const Register dataLen = R5_ARG3; // #bytes to process
-+
-+ const Register table = R6; // crc table address
-+
-+#ifdef VM_LITTLE_ENDIAN
-+ if (VM_Version::has_vpmsumb()) {
-+ const Register constants = R2; // constants address
-+ const Register bconstants = R8; // barret table address
-+
-+ const Register t0 = R9;
-+ const Register t1 = R10;
-+ const Register t2 = R11;
-+ const Register t3 = R12;
-+ const Register t4 = R7;
-+
-+ BLOCK_COMMENT("Stub body {");
-+ assert_different_registers(crc, data, dataLen, table);
-+
-+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-+ StubRoutines::ppc64::generate_load_crc_constants_addr(_masm, constants);
-+ StubRoutines::ppc64::generate_load_crc_barret_constants_addr(_masm, bconstants);
-+
-+ __ kernel_crc32_1word_vpmsumd(crc, data, dataLen, table, constants, bconstants,
t0, t1, t2, t3, t4);
-+
-+ BLOCK_COMMENT("return");
-+ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
-+ __ blr();
-+
-+ BLOCK_COMMENT("} Stub body");
-+ } else
-+#endif
-+ {
-+ const Register t0 = R2;
-+ const Register t1 = R7;
-+ const Register t2 = R8;
-+ const Register t3 = R9;
-+ const Register tc0 = R10;
-+ const Register tc1 = R11;
-+ const Register tc2 = R12;
-+
-+ BLOCK_COMMENT("Stub body {");
-+ assert_different_registers(crc, data, dataLen, table);
-+
-+ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-+
-+ __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2,
table);
-+
-+ BLOCK_COMMENT("return");
-+ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
-+ __ blr();
-+
-+ BLOCK_COMMENT("} Stub body");
-+ }
-+
- return start;
- }
-
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
-@@ -37,6 +37,311 @@
- __ load_const(table, StubRoutines::_crc_table_adr);
- }
-
-+void StubRoutines::ppc64::generate_load_crc_constants_addr(MacroAssembler* masm,
Register table) {
-+ __ load_const_optimized(table, (address)StubRoutines::ppc64::_constants, R0);
-+}
-+
-+void StubRoutines::ppc64::generate_load_crc_barret_constants_addr(MacroAssembler* masm,
Register table) {
-+ __ load_const_optimized(table, (address)StubRoutines::ppc64::_barret_constants, R0);
-+}
-+
-+juint* StubRoutines::ppc64::generate_crc_constants() {
-+ juint constants[CRC32_CONSTANTS_SIZE] = {
-+ // Reduce 262144 kbits to 1024 bits
-+ 0x99ea94a8UL, 0x00000000UL, 0x651797d2UL, 0x00000001UL, // x^261120 mod
p(x)` << 1, x^261184 mod p(x)` << 1
-+ 0x945a8420UL, 0x00000000UL, 0x21e0d56cUL, 0x00000000UL, // x^260096 mod
p(x)` << 1, x^260160 mod p(x)` << 1
-+ 0x30762706UL, 0x00000000UL, 0x0f95ecaaUL, 0x00000000UL, // x^259072 mod
p(x)` << 1, x^259136 mod p(x)` << 1
-+ 0xa52fc582UL, 0x00000001UL, 0xebd224acUL, 0x00000001UL, // x^258048 mod
p(x)` << 1, x^258112 mod p(x)` << 1
-+ 0xa4a7167aUL, 0x00000001UL, 0x0ccb97caUL, 0x00000000UL, // x^257024 mod
p(x)` << 1, x^257088 mod p(x)` << 1
-+ 0x0c18249aUL, 0x00000000UL, 0x006ec8a8UL, 0x00000001UL, // x^256000 mod
p(x)` << 1, x^256064 mod p(x)` << 1
-+ 0xa924ae7cUL, 0x00000000UL, 0x4f58f196UL, 0x00000001UL, // x^254976 mod
p(x)` << 1, x^255040 mod p(x)` << 1
-+ 0xe12ccc12UL, 0x00000001UL, 0xa7192ca6UL, 0x00000001UL, // x^253952 mod
p(x)` << 1, x^254016 mod p(x)` << 1
-+ 0xa0b9d4acUL, 0x00000000UL, 0x9a64bab2UL, 0x00000001UL, // x^252928 mod
p(x)` << 1, x^252992 mod p(x)` << 1
-+ 0x95e8ddfeUL, 0x00000000UL, 0x14f4ed2eUL, 0x00000000UL, // x^251904 mod
p(x)` << 1, x^251968 mod p(x)` << 1
-+ 0x233fddc4UL, 0x00000000UL, 0x1092b6a2UL, 0x00000001UL, // x^250880 mod
p(x)` << 1, x^250944 mod p(x)` << 1
-+ 0xb4529b62UL, 0x00000001UL, 0xc8a1629cUL, 0x00000000UL, // x^249856 mod
p(x)` << 1, x^249920 mod p(x)` << 1
-+ 0xa7fa0e64UL, 0x00000001UL, 0x7bf32e8eUL, 0x00000001UL, // x^248832 mod
p(x)` << 1, x^248896 mod p(x)` << 1
-+ 0xb5334592UL, 0x00000001UL, 0xf8cc6582UL, 0x00000001UL, // x^247808 mod
p(x)` << 1, x^247872 mod p(x)` << 1
-+ 0x1f8ee1b4UL, 0x00000001UL, 0x8631ddf0UL, 0x00000000UL, // x^246784 mod
p(x)` << 1, x^246848 mod p(x)` << 1
-+ 0x6252e632UL, 0x00000000UL, 0x7e5a76d0UL, 0x00000000UL, // x^245760 mod
p(x)` << 1, x^245824 mod p(x)` << 1
-+ 0xab973e84UL, 0x00000000UL, 0x2b09b31cUL, 0x00000000UL, // x^244736 mod
p(x)` << 1, x^244800 mod p(x)` << 1
-+ 0x7734f5ecUL, 0x00000000UL, 0xb2df1f84UL, 0x00000001UL, // x^243712 mod
p(x)` << 1, x^243776 mod p(x)` << 1
-+ 0x7c547798UL, 0x00000000UL, 0xd6f56afcUL, 0x00000001UL, // x^242688 mod
p(x)` << 1, x^242752 mod p(x)` << 1
-+ 0x7ec40210UL, 0x00000000UL, 0xb9b5e70cUL, 0x00000001UL, // x^241664 mod
p(x)` << 1, x^241728 mod p(x)` << 1
-+ 0xab1695a8UL, 0x00000001UL, 0x34b626d2UL, 0x00000000UL, // x^240640 mod
p(x)` << 1, x^240704 mod p(x)` << 1
-+ 0x90494bbaUL, 0x00000000UL, 0x4c53479aUL, 0x00000001UL, // x^239616 mod
p(x)` << 1, x^239680 mod p(x)` << 1
-+ 0x123fb816UL, 0x00000001UL, 0xa6d179a4UL, 0x00000001UL, // x^238592 mod
p(x)` << 1, x^238656 mod p(x)` << 1
-+ 0xe188c74cUL, 0x00000001UL, 0x5abd16b4UL, 0x00000001UL, // x^237568 mod
p(x)` << 1, x^237632 mod p(x)` << 1
-+ 0xc2d3451cUL, 0x00000001UL, 0x018f9852UL, 0x00000000UL, // x^236544 mod
p(x)` << 1, x^236608 mod p(x)` << 1
-+ 0xf55cf1caUL, 0x00000000UL, 0x1fb3084aUL, 0x00000000UL, // x^235520 mod
p(x)` << 1, x^235584 mod p(x)` << 1
-+ 0xa0531540UL, 0x00000001UL, 0xc53dfb04UL, 0x00000000UL, // x^234496 mod
p(x)` << 1, x^234560 mod p(x)` << 1
-+ 0x32cd7ebcUL, 0x00000001UL, 0xe10c9ad6UL, 0x00000000UL, // x^233472 mod
p(x)` << 1, x^233536 mod p(x)` << 1
-+ 0x73ab7f36UL, 0x00000000UL, 0x25aa994aUL, 0x00000000UL, // x^232448 mod
p(x)` << 1, x^232512 mod p(x)` << 1
-+ 0x41aed1c2UL, 0x00000000UL, 0xfa3a74c4UL, 0x00000000UL, // x^231424 mod
p(x)` << 1, x^231488 mod p(x)` << 1
-+ 0x36c53800UL, 0x00000001UL, 0x33eb3f40UL, 0x00000000UL, // x^230400 mod
p(x)` << 1, x^230464 mod p(x)` << 1
-+ 0x26835a30UL, 0x00000001UL, 0x7193f296UL, 0x00000001UL, // x^229376 mod
p(x)` << 1, x^229440 mod p(x)` << 1
-+ 0x6241b502UL, 0x00000000UL, 0x43f6c86aUL, 0x00000000UL, // x^228352 mod
p(x)` << 1, x^228416 mod p(x)` << 1
-+ 0xd5196ad4UL, 0x00000000UL, 0x6b513ec6UL, 0x00000001UL, // x^227328 mod
p(x)` << 1, x^227392 mod p(x)` << 1
-+ 0x9cfa769aUL, 0x00000000UL, 0xc8f25b4eUL, 0x00000000UL, // x^226304 mod
p(x)` << 1, x^226368 mod p(x)` << 1
-+ 0x920e5df4UL, 0x00000000UL, 0xa45048ecUL, 0x00000001UL, // x^225280 mod
p(x)` << 1, x^225344 mod p(x)` << 1
-+ 0x69dc310eUL, 0x00000001UL, 0x0c441004UL, 0x00000000UL, // x^224256 mod
p(x)` << 1, x^224320 mod p(x)` << 1
-+ 0x09fc331cUL, 0x00000000UL, 0x0e17cad6UL, 0x00000000UL, // x^223232 mod
p(x)` << 1, x^223296 mod p(x)` << 1
-+ 0x0d94a81eUL, 0x00000001UL, 0x253ae964UL, 0x00000001UL, // x^222208 mod
p(x)` << 1, x^222272 mod p(x)` << 1
-+ 0x27a20ab2UL, 0x00000000UL, 0xd7c88ebcUL, 0x00000001UL, // x^221184 mod
p(x)` << 1, x^221248 mod p(x)` << 1
-+ 0x14f87504UL, 0x00000001UL, 0xe7ca913aUL, 0x00000001UL, // x^220160 mod
p(x)` << 1, x^220224 mod p(x)` << 1
-+ 0x4b076d96UL, 0x00000000UL, 0x33ed078aUL, 0x00000000UL, // x^219136 mod
p(x)` << 1, x^219200 mod p(x)` << 1
-+ 0xda4d1e74UL, 0x00000000UL, 0xe1839c78UL, 0x00000000UL, // x^218112 mod
p(x)` << 1, x^218176 mod p(x)` << 1
-+ 0x1b81f672UL, 0x00000000UL, 0x322b267eUL, 0x00000001UL, // x^217088 mod
p(x)` << 1, x^217152 mod p(x)` << 1
-+ 0x9367c988UL, 0x00000000UL, 0x638231b6UL, 0x00000000UL, // x^216064 mod
p(x)` << 1, x^216128 mod p(x)` << 1
-+ 0x717214caUL, 0x00000001UL, 0xee7f16f4UL, 0x00000001UL, // x^215040 mod
p(x)` << 1, x^215104 mod p(x)` << 1
-+ 0x9f47d820UL, 0x00000000UL, 0x17d9924aUL, 0x00000001UL, // x^214016 mod
p(x)` << 1, x^214080 mod p(x)` << 1
-+ 0x0d9a47d2UL, 0x00000001UL, 0xe1a9e0c4UL, 0x00000000UL, // x^212992 mod
p(x)` << 1, x^213056 mod p(x)` << 1
-+ 0xa696c58cUL, 0x00000000UL, 0x403731dcUL, 0x00000001UL, // x^211968 mod
p(x)` << 1, x^212032 mod p(x)` << 1
-+ 0x2aa28ec6UL, 0x00000000UL, 0xa5ea9682UL, 0x00000001UL, // x^210944 mod
p(x)` << 1, x^211008 mod p(x)` << 1
-+ 0xfe18fd9aUL, 0x00000001UL, 0x01c5c578UL, 0x00000001UL, // x^209920 mod
p(x)` << 1, x^209984 mod p(x)` << 1
-+ 0x9d4fc1aeUL, 0x00000001UL, 0xdddf6494UL, 0x00000000UL, // x^208896 mod
p(x)` << 1, x^208960 mod p(x)` << 1
-+ 0xba0e3deaUL, 0x00000001UL, 0xf1c3db28UL, 0x00000000UL, // x^207872 mod
p(x)` << 1, x^207936 mod p(x)` << 1
-+ 0x74b59a5eUL, 0x00000000UL, 0x3112fb9cUL, 0x00000001UL, // x^206848 mod
p(x)` << 1, x^206912 mod p(x)` << 1
-+ 0xf2b5ea98UL, 0x00000000UL, 0xb680b906UL, 0x00000000UL, // x^205824 mod
p(x)` << 1, x^205888 mod p(x)` << 1
-+ 0x87132676UL, 0x00000001UL, 0x1a282932UL, 0x00000000UL, // x^204800 mod
p(x)` << 1, x^204864 mod p(x)` << 1
-+ 0x0a8c6ad4UL, 0x00000001UL, 0x89406e7eUL, 0x00000000UL, // x^203776 mod
p(x)` << 1, x^203840 mod p(x)` << 1
-+ 0xe21dfe70UL, 0x00000001UL, 0xdef6be8cUL, 0x00000001UL, // x^202752 mod
p(x)` << 1, x^202816 mod p(x)` << 1
-+ 0xda0050e4UL, 0x00000001UL, 0x75258728UL, 0x00000000UL, // x^201728 mod
p(x)` << 1, x^201792 mod p(x)` << 1
-+ 0x772172aeUL, 0x00000000UL, 0x9536090aUL, 0x00000001UL, // x^200704 mod
p(x)` << 1, x^200768 mod p(x)` << 1
-+ 0xe47724aaUL, 0x00000000UL, 0xf2455bfcUL, 0x00000000UL, // x^199680 mod
p(x)` << 1, x^199744 mod p(x)` << 1
-+ 0x3cd63ac4UL, 0x00000000UL, 0x8c40baf4UL, 0x00000001UL, // x^198656 mod
p(x)` << 1, x^198720 mod p(x)` << 1
-+ 0xbf47d352UL, 0x00000001UL, 0x4cd390d4UL, 0x00000000UL, // x^197632 mod
p(x)` << 1, x^197696 mod p(x)` << 1
-+ 0x8dc1d708UL, 0x00000001UL, 0xe4ece95aUL, 0x00000001UL, // x^196608 mod
p(x)` << 1, x^196672 mod p(x)` << 1
-+ 0x2d4620a4UL, 0x00000000UL, 0x1a3ee918UL, 0x00000000UL, // x^195584 mod
p(x)` << 1, x^195648 mod p(x)` << 1
-+ 0x58fd1740UL, 0x00000000UL, 0x7c652fb8UL, 0x00000000UL, // x^194560 mod
p(x)` << 1, x^194624 mod p(x)` << 1
-+ 0xdadd9bfcUL, 0x00000000UL, 0x1c67842cUL, 0x00000001UL, // x^193536 mod
p(x)` << 1, x^193600 mod p(x)` << 1
-+ 0xea2140beUL, 0x00000001UL, 0x254f759cUL, 0x00000000UL, // x^192512 mod
p(x)` << 1, x^192576 mod p(x)` << 1
-+ 0x9de128baUL, 0x00000000UL, 0x7ece94caUL, 0x00000000UL, // x^191488 mod
p(x)` << 1, x^191552 mod p(x)` << 1
-+ 0x3ac3aa8eUL, 0x00000001UL, 0x38f258c2UL, 0x00000000UL, // x^190464 mod
p(x)` << 1, x^190528 mod p(x)` << 1
-+ 0x99980562UL, 0x00000000UL, 0xcdf17b00UL, 0x00000001UL, // x^189440 mod
p(x)` << 1, x^189504 mod p(x)` << 1
-+ 0xc1579c86UL, 0x00000001UL, 0x1f882c16UL, 0x00000001UL, // x^188416 mod
p(x)` << 1, x^188480 mod p(x)` << 1
-+ 0x68dbbf94UL, 0x00000000UL, 0x00093fc8UL, 0x00000001UL, // x^187392 mod
p(x)` << 1, x^187456 mod p(x)` << 1
-+ 0x4509fb04UL, 0x00000000UL, 0xcd684f16UL, 0x00000001UL, // x^186368 mod
p(x)` << 1, x^186432 mod p(x)` << 1
-+ 0x202f6398UL, 0x00000001UL, 0x4bc6a70aUL, 0x00000000UL, // x^185344 mod
p(x)` << 1, x^185408 mod p(x)` << 1
-+ 0x3aea243eUL, 0x00000001UL, 0x4fc7e8e4UL, 0x00000000UL, // x^184320 mod
p(x)` << 1, x^184384 mod p(x)` << 1
-+ 0xb4052ae6UL, 0x00000001UL, 0x30103f1cUL, 0x00000001UL, // x^183296 mod
p(x)` << 1, x^183360 mod p(x)` << 1
-+ 0xcd2a0ae8UL, 0x00000001UL, 0x11b0024cUL, 0x00000001UL, // x^182272 mod
p(x)` << 1, x^182336 mod p(x)` << 1
-+ 0xfe4aa8b4UL, 0x00000001UL, 0x0b3079daUL, 0x00000001UL, // x^181248 mod
p(x)` << 1, x^181312 mod p(x)` << 1
-+ 0xd1559a42UL, 0x00000001UL, 0x0192bcc2UL, 0x00000001UL, // x^180224 mod
p(x)` << 1, x^180288 mod p(x)` << 1
-+ 0xf3e05eccUL, 0x00000001UL, 0x74838d50UL, 0x00000000UL, // x^179200 mod
p(x)` << 1, x^179264 mod p(x)` << 1
-+ 0x04ddd2ccUL, 0x00000001UL, 0x1b20f520UL, 0x00000000UL, // x^178176 mod
p(x)` << 1, x^178240 mod p(x)` << 1
-+ 0x5393153cUL, 0x00000001UL, 0x50c3590aUL, 0x00000000UL, // x^177152 mod
p(x)` << 1, x^177216 mod p(x)` << 1
-+ 0x57e942c6UL, 0x00000000UL, 0xb41cac8eUL, 0x00000000UL, // x^176128 mod
p(x)` << 1, x^176192 mod p(x)` << 1
-+ 0x2c633850UL, 0x00000001UL, 0x0c72cc78UL, 0x00000000UL, // x^175104 mod
p(x)` << 1, x^175168 mod p(x)` << 1
-+ 0xebcaae4cUL, 0x00000000UL, 0x30cdb032UL, 0x00000000UL, // x^174080 mod
p(x)` << 1, x^174144 mod p(x)` << 1
-+ 0x3ee532a6UL, 0x00000001UL, 0x3e09fc32UL, 0x00000001UL, // x^173056 mod
p(x)` << 1, x^173120 mod p(x)` << 1
-+ 0xbf0cbc7eUL, 0x00000001UL, 0x1ed624d2UL, 0x00000000UL, // x^172032 mod
p(x)` << 1, x^172096 mod p(x)` << 1
-+ 0xd50b7a5aUL, 0x00000000UL, 0x781aee1aUL, 0x00000000UL, // x^171008 mod
p(x)` << 1, x^171072 mod p(x)` << 1
-+ 0x02fca6e8UL, 0x00000000UL, 0xc4d8348cUL, 0x00000001UL, // x^169984 mod
p(x)` << 1, x^170048 mod p(x)` << 1
-+ 0x7af40044UL, 0x00000000UL, 0x57a40336UL, 0x00000000UL, // x^168960 mod
p(x)` << 1, x^169024 mod p(x)` << 1
-+ 0x16178744UL, 0x00000000UL, 0x85544940UL, 0x00000000UL, // x^167936 mod
p(x)` << 1, x^168000 mod p(x)` << 1
-+ 0x4c177458UL, 0x00000001UL, 0x9cd21e80UL, 0x00000001UL, // x^166912 mod
p(x)` << 1, x^166976 mod p(x)` << 1
-+ 0x1b6ddf04UL, 0x00000001UL, 0x3eb95bc0UL, 0x00000001UL, // x^165888 mod
p(x)` << 1, x^165952 mod p(x)` << 1
-+ 0xf3e29cccUL, 0x00000001UL, 0xdfc9fdfcUL, 0x00000001UL, // x^164864 mod
p(x)` << 1, x^164928 mod p(x)` << 1
-+ 0x35ae7562UL, 0x00000001UL, 0xcd028bc2UL, 0x00000000UL, // x^163840 mod
p(x)` << 1, x^163904 mod p(x)` << 1
-+ 0x90ef812cUL, 0x00000001UL, 0x90db8c44UL, 0x00000000UL, // x^162816 mod
p(x)` << 1, x^162880 mod p(x)` << 1
-+ 0x67a2c786UL, 0x00000000UL, 0x0010a4ceUL, 0x00000001UL, // x^161792 mod
p(x)` << 1, x^161856 mod p(x)` << 1
-+ 0x48b9496cUL, 0x00000000UL, 0xc8f4c72cUL, 0x00000001UL, // x^160768 mod
p(x)` << 1, x^160832 mod p(x)` << 1
-+ 0x5a422de6UL, 0x00000001UL, 0x1c26170cUL, 0x00000000UL, // x^159744 mod
p(x)` << 1, x^159808 mod p(x)` << 1
-+ 0xef0e3640UL, 0x00000001UL, 0xe3fccf68UL, 0x00000000UL, // x^158720 mod
p(x)` << 1, x^158784 mod p(x)` << 1
-+ 0x006d2d26UL, 0x00000001UL, 0xd513ed24UL, 0x00000000UL, // x^157696 mod
p(x)` << 1, x^157760 mod p(x)` << 1
-+ 0x170d56d6UL, 0x00000001UL, 0x141beadaUL, 0x00000000UL, // x^156672 mod
p(x)` << 1, x^156736 mod p(x)` << 1
-+ 0xa5fb613cUL, 0x00000000UL, 0x1071aea0UL, 0x00000001UL, // x^155648 mod
p(x)` << 1, x^155712 mod p(x)` << 1
-+ 0x40bbf7fcUL, 0x00000000UL, 0x2e19080aUL, 0x00000001UL, // x^154624 mod
p(x)` << 1, x^154688 mod p(x)` << 1
-+ 0x6ac3a5b2UL, 0x00000001UL, 0x00ecf826UL, 0x00000001UL, // x^153600 mod
p(x)` << 1, x^153664 mod p(x)` << 1
-+ 0xabf16230UL, 0x00000000UL, 0x69b09412UL, 0x00000000UL, // x^152576 mod
p(x)` << 1, x^152640 mod p(x)` << 1
-+ 0xebe23facUL, 0x00000001UL, 0x22297bacUL, 0x00000001UL, // x^151552 mod
p(x)` << 1, x^151616 mod p(x)` << 1
-+ 0x8b6a0894UL, 0x00000000UL, 0xe9e4b068UL, 0x00000000UL, // x^150528 mod
p(x)` << 1, x^150592 mod p(x)` << 1
-+ 0x288ea478UL, 0x00000001UL, 0x4b38651aUL, 0x00000000UL, // x^149504 mod
p(x)` << 1, x^149568 mod p(x)` << 1
-+ 0x6619c442UL, 0x00000001UL, 0x468360e2UL, 0x00000001UL, // x^148480 mod
p(x)` << 1, x^148544 mod p(x)` << 1
-+ 0x86230038UL, 0x00000000UL, 0x121c2408UL, 0x00000000UL, // x^147456 mod
p(x)` << 1, x^147520 mod p(x)` << 1
-+ 0x7746a756UL, 0x00000001UL, 0xda7e7d08UL, 0x00000000UL, // x^146432 mod
p(x)` << 1, x^146496 mod p(x)` << 1
-+ 0x91b8f8f8UL, 0x00000001UL, 0x058d7652UL, 0x00000001UL, // x^145408 mod
p(x)` << 1, x^145472 mod p(x)` << 1
-+ 0x8e167708UL, 0x00000000UL, 0x4a098a90UL, 0x00000001UL, // x^144384 mod
p(x)` << 1, x^144448 mod p(x)` << 1
-+ 0x48b22d54UL, 0x00000001UL, 0x20dbe72eUL, 0x00000000UL, // x^143360 mod
p(x)` << 1, x^143424 mod p(x)` << 1
-+ 0x44ba2c3cUL, 0x00000000UL, 0x1e7323e8UL, 0x00000001UL, // x^142336 mod
p(x)` << 1, x^142400 mod p(x)` << 1
-+ 0xb54d2b52UL, 0x00000000UL, 0xd5d4bf94UL, 0x00000000UL, // x^141312 mod
p(x)` << 1, x^141376 mod p(x)` << 1
-+ 0x05a4fd8aUL, 0x00000000UL, 0x99d8746cUL, 0x00000001UL, // x^140288 mod
p(x)` << 1, x^140352 mod p(x)` << 1
-+ 0x39f9fc46UL, 0x00000001UL, 0xce9ca8a0UL, 0x00000000UL, // x^139264 mod
p(x)` << 1, x^139328 mod p(x)` << 1
-+ 0x5a1fa824UL, 0x00000001UL, 0x136edeceUL, 0x00000000UL, // x^138240 mod
p(x)` << 1, x^138304 mod p(x)` << 1
-+ 0x0a61ae4cUL, 0x00000000UL, 0x9b92a068UL, 0x00000001UL, // x^137216 mod
p(x)` << 1, x^137280 mod p(x)` << 1
-+ 0x45e9113eUL, 0x00000001UL, 0x71d62206UL, 0x00000000UL, // x^136192 mod
p(x)` << 1, x^136256 mod p(x)` << 1
-+ 0x6a348448UL, 0x00000000UL, 0xdfc50158UL, 0x00000000UL, // x^135168 mod
p(x)` << 1, x^135232 mod p(x)` << 1
-+ 0x4d80a08cUL, 0x00000000UL, 0x517626bcUL, 0x00000001UL, // x^134144 mod
p(x)` << 1, x^134208 mod p(x)` << 1
-+ 0x4b6837a0UL, 0x00000001UL, 0x48d1e4faUL, 0x00000001UL, // x^133120 mod
p(x)` << 1, x^133184 mod p(x)` << 1
-+ 0x6896a7fcUL, 0x00000001UL, 0x94d8266eUL, 0x00000000UL, // x^132096 mod
p(x)` << 1, x^132160 mod p(x)` << 1
-+ 0x4f187140UL, 0x00000001UL, 0x606c5e34UL, 0x00000000UL, // x^131072 mod
p(x)` << 1, x^131136 mod p(x)` << 1
-+ 0x9581b9daUL, 0x00000001UL, 0x9766beaaUL, 0x00000001UL, // x^130048 mod
p(x)` << 1, x^130112 mod p(x)` << 1
-+ 0x091bc984UL, 0x00000001UL, 0xd80c506cUL, 0x00000001UL, // x^129024 mod
p(x)` << 1, x^129088 mod p(x)` << 1
-+ 0x1067223cUL, 0x00000000UL, 0x1e73837cUL, 0x00000000UL, // x^128000 mod
p(x)` << 1, x^128064 mod p(x)` << 1
-+ 0xab16ea02UL, 0x00000001UL, 0x64d587deUL, 0x00000000UL, // x^126976 mod
p(x)` << 1, x^127040 mod p(x)` << 1
-+ 0x3c4598a8UL, 0x00000001UL, 0xf4a507b0UL, 0x00000000UL, // x^125952 mod
p(x)` << 1, x^126016 mod p(x)` << 1
-+ 0xb3735430UL, 0x00000000UL, 0x40e342fcUL, 0x00000000UL, // x^124928 mod
p(x)` << 1, x^124992 mod p(x)` << 1
-+ 0xbb3fc0c0UL, 0x00000001UL, 0xd5ad9c3aUL, 0x00000001UL, // x^123904 mod
p(x)` << 1, x^123968 mod p(x)` << 1
-+ 0x570ae19cUL, 0x00000001UL, 0x94a691a4UL, 0x00000000UL, // x^122880 mod
p(x)` << 1, x^122944 mod p(x)` << 1
-+ 0xea910712UL, 0x00000001UL, 0x271ecdfaUL, 0x00000001UL, // x^121856 mod
p(x)` << 1, x^121920 mod p(x)` << 1
-+ 0x67127128UL, 0x00000001UL, 0x9e54475aUL, 0x00000000UL, // x^120832 mod
p(x)` << 1, x^120896 mod p(x)` << 1
-+ 0x19e790a2UL, 0x00000000UL, 0xc9c099eeUL, 0x00000000UL, // x^119808 mod
p(x)` << 1, x^119872 mod p(x)` << 1
-+ 0x3788f710UL, 0x00000000UL, 0x9a2f736cUL, 0x00000000UL, // x^118784 mod
p(x)` << 1, x^118848 mod p(x)` << 1
-+ 0x682a160eUL, 0x00000001UL, 0xbb9f4996UL, 0x00000000UL, // x^117760 mod
p(x)` << 1, x^117824 mod p(x)` << 1
-+ 0x7f0ebd2eUL, 0x00000000UL, 0xdb688050UL, 0x00000001UL, // x^116736 mod
p(x)` << 1, x^116800 mod p(x)` << 1
-+ 0x2b032080UL, 0x00000000UL, 0xe9b10af4UL, 0x00000000UL, // x^115712 mod
p(x)` << 1, x^115776 mod p(x)` << 1
-+ 0xcfd1664aUL, 0x00000000UL, 0x2d4545e4UL, 0x00000001UL, // x^114688 mod
p(x)` << 1, x^114752 mod p(x)` << 1
-+ 0xaa1181c2UL, 0x00000000UL, 0x0361139cUL, 0x00000000UL, // x^113664 mod
p(x)` << 1, x^113728 mod p(x)` << 1
-+ 0xddd08002UL, 0x00000000UL, 0xa5a1a3a8UL, 0x00000001UL, // x^112640 mod
p(x)` << 1, x^112704 mod p(x)` << 1
-+ 0xe8dd0446UL, 0x00000000UL, 0x6844e0b0UL, 0x00000000UL, // x^111616 mod
p(x)` << 1, x^111680 mod p(x)` << 1
-+ 0xbbd94a00UL, 0x00000001UL, 0xc3762f28UL, 0x00000000UL, // x^110592 mod
p(x)` << 1, x^110656 mod p(x)` << 1
-+ 0xab6cd180UL, 0x00000000UL, 0xd26287a2UL, 0x00000001UL, // x^109568 mod
p(x)` << 1, x^109632 mod p(x)` << 1
-+ 0x31803ce2UL, 0x00000000UL, 0xf6f0bba8UL, 0x00000001UL, // x^108544 mod
p(x)` << 1, x^108608 mod p(x)` << 1
-+ 0x24f40b0cUL, 0x00000000UL, 0x2ffabd62UL, 0x00000000UL, // x^107520 mod
p(x)` << 1, x^107584 mod p(x)` << 1
-+ 0xba1d9834UL, 0x00000001UL, 0xfb4516b8UL, 0x00000000UL, // x^106496 mod
p(x)` << 1, x^106560 mod p(x)` << 1
-+ 0x04de61aaUL, 0x00000001UL, 0x8cfa961cUL, 0x00000001UL, // x^105472 mod
p(x)` << 1, x^105536 mod p(x)` << 1
-+ 0x13e40d46UL, 0x00000001UL, 0x9e588d52UL, 0x00000001UL, // x^104448 mod
p(x)` << 1, x^104512 mod p(x)` << 1
-+ 0x415598a0UL, 0x00000001UL, 0x180f0bbcUL, 0x00000001UL, // x^103424 mod
p(x)` << 1, x^103488 mod p(x)` << 1
-+ 0xbf6c8c90UL, 0x00000000UL, 0xe1d9177aUL, 0x00000000UL, // x^102400 mod
p(x)` << 1, x^102464 mod p(x)` << 1
-+ 0x788b0504UL, 0x00000001UL, 0x05abc27cUL, 0x00000001UL, // x^101376 mod
p(x)` << 1, x^101440 mod p(x)` << 1
-+ 0x38385d02UL, 0x00000000UL, 0x972e4a58UL, 0x00000000UL, // x^100352 mod
p(x)` << 1, x^100416 mod p(x)` << 1
-+ 0xb6c83844UL, 0x00000001UL, 0x83499a5eUL, 0x00000001UL, // x^99328 mod p(x)`
<< 1, x^99392 mod p(x)` << 1
-+ 0x51061a8aUL, 0x00000000UL, 0xc96a8ccaUL, 0x00000001UL, // x^98304 mod p(x)`
<< 1, x^98368 mod p(x)` << 1
-+ 0x7351388aUL, 0x00000001UL, 0xa1a5b60cUL, 0x00000001UL, // x^97280 mod p(x)`
<< 1, x^97344 mod p(x)` << 1
-+ 0x32928f92UL, 0x00000001UL, 0xe4b6ac9cUL, 0x00000000UL, // x^96256 mod p(x)`
<< 1, x^96320 mod p(x)` << 1
-+ 0xe6b4f48aUL, 0x00000000UL, 0x807e7f5aUL, 0x00000001UL, // x^95232 mod p(x)`
<< 1, x^95296 mod p(x)` << 1
-+ 0x39d15e90UL, 0x00000000UL, 0x7a7e3bc8UL, 0x00000001UL, // x^94208 mod p(x)`
<< 1, x^94272 mod p(x)` << 1
-+ 0x312d6074UL, 0x00000000UL, 0xd73975daUL, 0x00000000UL, // x^93184 mod p(x)`
<< 1, x^93248 mod p(x)` << 1
-+ 0x7bbb2cc4UL, 0x00000001UL, 0x7375d038UL, 0x00000001UL, // x^92160 mod p(x)`
<< 1, x^92224 mod p(x)` << 1
-+ 0x6ded3e18UL, 0x00000001UL, 0x193680bcUL, 0x00000000UL, // x^91136 mod p(x)`
<< 1, x^91200 mod p(x)` << 1
-+ 0xf1638b16UL, 0x00000000UL, 0x999b06f6UL, 0x00000000UL, // x^90112 mod p(x)`
<< 1, x^90176 mod p(x)` << 1
-+ 0xd38b9eccUL, 0x00000001UL, 0xf685d2b8UL, 0x00000001UL, // x^89088 mod p(x)`
<< 1, x^89152 mod p(x)` << 1
-+ 0x8b8d09dcUL, 0x00000001UL, 0xf4ecbed2UL, 0x00000001UL, // x^88064 mod p(x)`
<< 1, x^88128 mod p(x)` << 1
-+ 0xe7bc27d2UL, 0x00000000UL, 0xba16f1a0UL, 0x00000000UL, // x^87040 mod p(x)`
<< 1, x^87104 mod p(x)` << 1
-+ 0x275e1e96UL, 0x00000000UL, 0x15aceac4UL, 0x00000001UL, // x^86016 mod p(x)`
<< 1, x^86080 mod p(x)` << 1
-+ 0xe2e3031eUL, 0x00000000UL, 0xaeff6292UL, 0x00000001UL, // x^84992 mod p(x)`
<< 1, x^85056 mod p(x)` << 1
-+ 0x041c84d8UL, 0x00000001UL, 0x9640124cUL, 0x00000000UL, // x^83968 mod p(x)`
<< 1, x^84032 mod p(x)` << 1
-+ 0x706ce672UL, 0x00000000UL, 0x14f41f02UL, 0x00000001UL, // x^82944 mod p(x)`
<< 1, x^83008 mod p(x)` << 1
-+ 0x5d5070daUL, 0x00000001UL, 0x9c5f3586UL, 0x00000000UL, // x^81920 mod p(x)`
<< 1, x^81984 mod p(x)` << 1
-+ 0x38f9493aUL, 0x00000000UL, 0x878275faUL, 0x00000001UL, // x^80896 mod p(x)`
<< 1, x^80960 mod p(x)` << 1
-+ 0xa3348a76UL, 0x00000000UL, 0xddc42ce8UL, 0x00000000UL, // x^79872 mod p(x)`
<< 1, x^79936 mod p(x)` << 1
-+ 0xad0aab92UL, 0x00000001UL, 0x81d2c73aUL, 0x00000001UL, // x^78848 mod p(x)`
<< 1, x^78912 mod p(x)` << 1
-+ 0x9e85f712UL, 0x00000001UL, 0x41c9320aUL, 0x00000001UL, // x^77824 mod p(x)`
<< 1, x^77888 mod p(x)` << 1
-+ 0x5a871e76UL, 0x00000000UL, 0x5235719aUL, 0x00000001UL, // x^76800 mod p(x)`
<< 1, x^76864 mod p(x)` << 1
-+ 0x7249c662UL, 0x00000001UL, 0xbe27d804UL, 0x00000000UL, // x^75776 mod p(x)`
<< 1, x^75840 mod p(x)` << 1
-+ 0x3a084712UL, 0x00000000UL, 0x6242d45aUL, 0x00000000UL, // x^74752 mod p(x)`
<< 1, x^74816 mod p(x)` << 1
-+ 0xed438478UL, 0x00000000UL, 0x9a53638eUL, 0x00000000UL, // x^73728 mod p(x)`
<< 1, x^73792 mod p(x)` << 1
-+ 0xabac34ccUL, 0x00000000UL, 0x001ecfb6UL, 0x00000001UL, // x^72704 mod p(x)`
<< 1, x^72768 mod p(x)` << 1
-+ 0x5f35ef3eUL, 0x00000000UL, 0x6d7c2d64UL, 0x00000001UL, // x^71680 mod p(x)`
<< 1, x^71744 mod p(x)` << 1
-+ 0x47d6608cUL, 0x00000000UL, 0xd0ce46c0UL, 0x00000001UL, // x^70656 mod p(x)`
<< 1, x^70720 mod p(x)` << 1
-+ 0x2d01470eUL, 0x00000000UL, 0x24c907b4UL, 0x00000001UL, // x^69632 mod p(x)`
<< 1, x^69696 mod p(x)` << 1
-+ 0x58bbc7b0UL, 0x00000001UL, 0x18a555caUL, 0x00000000UL, // x^68608 mod p(x)`
<< 1, x^68672 mod p(x)` << 1
-+ 0xc0a23e8eUL, 0x00000000UL, 0x6b0980bcUL, 0x00000000UL, // x^67584 mod p(x)`
<< 1, x^67648 mod p(x)` << 1
-+ 0xebd85c88UL, 0x00000001UL, 0x8bbba964UL, 0x00000000UL, // x^66560 mod p(x)`
<< 1, x^66624 mod p(x)` << 1
-+ 0x9ee20bb2UL, 0x00000001UL, 0x070a5a1eUL, 0x00000001UL, // x^65536 mod p(x)`
<< 1, x^65600 mod p(x)` << 1
-+ 0xacabf2d6UL, 0x00000001UL, 0x2204322aUL, 0x00000000UL, // x^64512 mod p(x)`
<< 1, x^64576 mod p(x)` << 1
-+ 0xb7963d56UL, 0x00000001UL, 0xa27524d0UL, 0x00000000UL, // x^63488 mod p(x)`
<< 1, x^63552 mod p(x)` << 1
-+ 0x7bffa1feUL, 0x00000001UL, 0x20b1e4baUL, 0x00000000UL, // x^62464 mod p(x)`
<< 1, x^62528 mod p(x)` << 1
-+ 0x1f15333eUL, 0x00000000UL, 0x32cc27fcUL, 0x00000000UL, // x^61440 mod p(x)`
<< 1, x^61504 mod p(x)` << 1
-+ 0x8593129eUL, 0x00000001UL, 0x44dd22b8UL, 0x00000000UL, // x^60416 mod p(x)`
<< 1, x^60480 mod p(x)` << 1
-+ 0x9cb32602UL, 0x00000001UL, 0xdffc9e0aUL, 0x00000000UL, // x^59392 mod p(x)`
<< 1, x^59456 mod p(x)` << 1
-+ 0x42b05cc8UL, 0x00000001UL, 0xb7a0ed14UL, 0x00000001UL, // x^58368 mod p(x)`
<< 1, x^58432 mod p(x)` << 1
-+ 0xbe49e7a4UL, 0x00000001UL, 0xc7842488UL, 0x00000000UL, // x^57344 mod p(x)`
<< 1, x^57408 mod p(x)` << 1
-+ 0x08f69d6cUL, 0x00000001UL, 0xc02a4feeUL, 0x00000001UL, // x^56320 mod p(x)`
<< 1, x^56384 mod p(x)` << 1
-+ 0x6c0971f0UL, 0x00000000UL, 0x3c273778UL, 0x00000000UL, // x^55296 mod p(x)`
<< 1, x^55360 mod p(x)` << 1
-+ 0x5b16467aUL, 0x00000000UL, 0xd63f8894UL, 0x00000001UL, // x^54272 mod p(x)`
<< 1, x^54336 mod p(x)` << 1
-+ 0x551a628eUL, 0x00000001UL, 0x6be557d6UL, 0x00000000UL, // x^53248 mod p(x)`
<< 1, x^53312 mod p(x)` << 1
-+ 0x9e42ea92UL, 0x00000001UL, 0x6a7806eaUL, 0x00000000UL, // x^52224 mod p(x)`
<< 1, x^52288 mod p(x)` << 1
-+ 0x2fa83ff2UL, 0x00000001UL, 0x6155aa0cUL, 0x00000001UL, // x^51200 mod p(x)`
<< 1, x^51264 mod p(x)` << 1
-+ 0x1ca9cde0UL, 0x00000001UL, 0x908650acUL, 0x00000000UL, // x^50176 mod p(x)`
<< 1, x^50240 mod p(x)` << 1
-+ 0xc8e5cd74UL, 0x00000000UL, 0xaa5a8084UL, 0x00000000UL, // x^49152 mod p(x)`
<< 1, x^49216 mod p(x)` << 1
-+ 0x96c27f0cUL, 0x00000000UL, 0x91bb500aUL, 0x00000001UL, // x^48128 mod p(x)`
<< 1, x^48192 mod p(x)` << 1
-+ 0x2baed926UL, 0x00000000UL, 0x64e9bed0UL, 0x00000000UL, // x^47104 mod p(x)`
<< 1, x^47168 mod p(x)` << 1
-+ 0x7c8de8d2UL, 0x00000001UL, 0x9444f302UL, 0x00000000UL, // x^46080 mod p(x)`
<< 1, x^46144 mod p(x)` << 1
-+ 0xd43d6068UL, 0x00000000UL, 0x9db07d3cUL, 0x00000001UL, // x^45056 mod p(x)`
<< 1, x^45120 mod p(x)` << 1
-+ 0xcb2c4b26UL, 0x00000000UL, 0x359e3e6eUL, 0x00000001UL, // x^44032 mod p(x)`
<< 1, x^44096 mod p(x)` << 1
-+ 0x45b8da26UL, 0x00000001UL, 0xe4f10dd2UL, 0x00000001UL, // x^43008 mod p(x)`
<< 1, x^43072 mod p(x)` << 1
-+ 0x8fff4b08UL, 0x00000001UL, 0x24f5735eUL, 0x00000001UL, // x^41984 mod p(x)`
<< 1, x^42048 mod p(x)` << 1
-+ 0x50b58ed0UL, 0x00000001UL, 0x24760a4cUL, 0x00000001UL, // x^40960 mod p(x)`
<< 1, x^41024 mod p(x)` << 1
-+ 0x549f39bcUL, 0x00000001UL, 0x0f1fc186UL, 0x00000000UL, // x^39936 mod p(x)`
<< 1, x^40000 mod p(x)` << 1
-+ 0xef4d2f42UL, 0x00000000UL, 0x150e4cc4UL, 0x00000000UL, // x^38912 mod p(x)`
<< 1, x^38976 mod p(x)` << 1
-+ 0xb1468572UL, 0x00000001UL, 0x2a6204e8UL, 0x00000000UL, // x^37888 mod p(x)`
<< 1, x^37952 mod p(x)` << 1
-+ 0x3d7403b2UL, 0x00000001UL, 0xbeb1d432UL, 0x00000000UL, // x^36864 mod p(x)`
<< 1, x^36928 mod p(x)` << 1
-+ 0xa4681842UL, 0x00000001UL, 0x35f3f1f0UL, 0x00000001UL, // x^35840 mod p(x)`
<< 1, x^35904 mod p(x)` << 1
-+ 0x67714492UL, 0x00000001UL, 0x74fe2232UL, 0x00000000UL, // x^34816 mod p(x)`
<< 1, x^34880 mod p(x)` << 1
-+ 0xe599099aUL, 0x00000001UL, 0x1ac6e2baUL, 0x00000000UL, // x^33792 mod p(x)`
<< 1, x^33856 mod p(x)` << 1
-+ 0xfe128194UL, 0x00000000UL, 0x13fca91eUL, 0x00000000UL, // x^32768 mod p(x)`
<< 1, x^32832 mod p(x)` << 1
-+ 0x77e8b990UL, 0x00000000UL, 0x83f4931eUL, 0x00000001UL, // x^31744 mod p(x)`
<< 1, x^31808 mod p(x)` << 1
-+ 0xa267f63aUL, 0x00000001UL, 0xb6d9b4e4UL, 0x00000000UL, // x^30720 mod p(x)`
<< 1, x^30784 mod p(x)` << 1
-+ 0x945c245aUL, 0x00000001UL, 0xb5188656UL, 0x00000000UL, // x^29696 mod p(x)`
<< 1, x^29760 mod p(x)` << 1
-+ 0x49002e76UL, 0x00000001UL, 0x27a81a84UL, 0x00000000UL, // x^28672 mod p(x)`
<< 1, x^28736 mod p(x)` << 1
-+ 0xbb8310a4UL, 0x00000001UL, 0x25699258UL, 0x00000001UL, // x^27648 mod p(x)`
<< 1, x^27712 mod p(x)` << 1
-+ 0x9ec60bccUL, 0x00000001UL, 0xb23de796UL, 0x00000001UL, // x^26624 mod p(x)`
<< 1, x^26688 mod p(x)` << 1
-+ 0x2d8590aeUL, 0x00000001UL, 0xfe4365dcUL, 0x00000000UL, // x^25600 mod p(x)`
<< 1, x^25664 mod p(x)` << 1
-+ 0x65b00684UL, 0x00000000UL, 0xc68f497aUL, 0x00000000UL, // x^24576 mod p(x)`
<< 1, x^24640 mod p(x)` << 1
-+ 0x5e5aeadcUL, 0x00000001UL, 0xfbf521eeUL, 0x00000000UL, // x^23552 mod p(x)`
<< 1, x^23616 mod p(x)` << 1
-+ 0xb77ff2b0UL, 0x00000000UL, 0x5eac3378UL, 0x00000001UL, // x^22528 mod p(x)`
<< 1, x^22592 mod p(x)` << 1
-+ 0x88da2ff6UL, 0x00000001UL, 0x34914b90UL, 0x00000001UL, // x^21504 mod p(x)`
<< 1, x^21568 mod p(x)` << 1
-+ 0x63da929aUL, 0x00000000UL, 0x16335cfeUL, 0x00000000UL, // x^20480 mod p(x)`
<< 1, x^20544 mod p(x)` << 1
-+ 0x389caa80UL, 0x00000001UL, 0x0372d10cUL, 0x00000001UL, // x^19456 mod p(x)`
<< 1, x^19520 mod p(x)` << 1
-+ 0x3db599d2UL, 0x00000001UL, 0x5097b908UL, 0x00000001UL, // x^18432 mod p(x)`
<< 1, x^18496 mod p(x)` << 1
-+ 0x22505a86UL, 0x00000001UL, 0x227a7572UL, 0x00000001UL, // x^17408 mod p(x)`
<< 1, x^17472 mod p(x)` << 1
-+ 0x6bd72746UL, 0x00000001UL, 0x9a8f75c0UL, 0x00000000UL, // x^16384 mod p(x)`
<< 1, x^16448 mod p(x)` << 1
-+ 0xc3faf1d4UL, 0x00000001UL, 0x682c77a2UL, 0x00000000UL, // x^15360 mod p(x)`
<< 1, x^15424 mod p(x)` << 1
-+ 0x111c826cUL, 0x00000001UL, 0x231f091cUL, 0x00000000UL, // x^14336 mod p(x)`
<< 1, x^14400 mod p(x)` << 1
-+ 0x153e9fb2UL, 0x00000000UL, 0x7d4439f2UL, 0x00000000UL, // x^13312 mod p(x)`
<< 1, x^13376 mod p(x)` << 1
-+ 0x2b1f7b60UL, 0x00000000UL, 0x7e221efcUL, 0x00000001UL, // x^12288 mod p(x)`
<< 1, x^12352 mod p(x)` << 1
-+ 0xb1dba570UL, 0x00000000UL, 0x67457c38UL, 0x00000001UL, // x^11264 mod p(x)`
<< 1, x^11328 mod p(x)` << 1
-+ 0xf6397b76UL, 0x00000001UL, 0xbdf081c4UL, 0x00000000UL, // x^10240 mod p(x)`
<< 1, x^10304 mod p(x)` << 1
-+ 0x56335214UL, 0x00000001UL, 0x6286d6b0UL, 0x00000001UL, // x^9216 mod p(x)`
<< 1, x^9280 mod p(x)` << 1
-+ 0xd70e3986UL, 0x00000001UL, 0xc84f001cUL, 0x00000000UL, // x^8192 mod p(x)`
<< 1, x^8256 mod p(x)` << 1
-+ 0x3701a774UL, 0x00000000UL, 0x64efe7c0UL, 0x00000000UL, // x^7168 mod p(x)`
<< 1, x^7232 mod p(x)` << 1
-+ 0xac81ef72UL, 0x00000000UL, 0x0ac2d904UL, 0x00000000UL, // x^6144 mod p(x)`
<< 1, x^6208 mod p(x)` << 1
-+ 0x33212464UL, 0x00000001UL, 0xfd226d14UL, 0x00000000UL, // x^5120 mod p(x)`
<< 1, x^5184 mod p(x)` << 1
-+ 0xe4e45610UL, 0x00000000UL, 0x1cfd42e0UL, 0x00000001UL, // x^4096 mod p(x)`
<< 1, x^4160 mod p(x)` << 1
-+ 0x0c1bd370UL, 0x00000000UL, 0x6e5a5678UL, 0x00000001UL, // x^3072 mod p(x)`
<< 1, x^3136 mod p(x)` << 1
-+ 0xa7b9e7a6UL, 0x00000001UL, 0xd888fe22UL, 0x00000001UL, // x^2048 mod p(x)`
<< 1, x^2112 mod p(x)` << 1
-+ 0x7d657a10UL, 0x00000000UL, 0xaf77fcd4UL, 0x00000001UL, // x^1024 mod p(x)`
<< 1, x^1088 mod p(x)` << 1
-+
-+ // Reduce final 1024-2048 bits to 64 bits, shifting 32 bits to include the
trailing 32 bits of zeros
-+ 0xec447f11UL, 0x99168a18UL, 0x13e8221eUL, 0xed837b26UL, // x^2048 mod p(x)`,
x^2016 mod p(x)`, x^1984 mod p(x)`, x^1952 mod p(x)`
-+ 0x8fd2cd3cUL, 0xe23e954eUL, 0x47b9ce5aUL, 0xc8acdd81UL, // x^1920 mod p(x)`,
x^1888 mod p(x)`, x^1856 mod p(x)`, x^1824 mod p(x)`
-+ 0x6b1d2b53UL, 0x92f8befeUL, 0xd4277e25UL, 0xd9ad6d87UL, // x^1792 mod p(x)`,
x^1760 mod p(x)`, x^1728 mod p(x)`, x^1696 mod p(x)`
-+ 0x291ea462UL, 0xf38a3556UL, 0x33fbca3bUL, 0xc10ec5e0UL, // x^1664 mod p(x)`,
x^1632 mod p(x)`, x^1600 mod p(x)`, x^1568 mod p(x)`
-+ 0x62b6ca4bUL, 0x974ac562UL, 0x82e02e2fUL, 0xc0b55b0eUL, // x^1536 mod p(x)`,
x^1504 mod p(x)`, x^1472 mod p(x)`, x^1440 mod p(x)`
-+ 0x784d2a56UL, 0x855712b3UL, 0xe172334dUL, 0x71aa1df0UL, // x^1408 mod p(x)`,
x^1376 mod p(x)`, x^1344 mod p(x)`, x^1312 mod p(x)`
-+ 0x0eaee722UL, 0xa5abe9f8UL, 0x3969324dUL, 0xfee3053eUL, // x^1280 mod p(x)`,
x^1248 mod p(x)`, x^1216 mod p(x)`, x^1184 mod p(x)`
-+ 0xdb54814cUL, 0x1fa0943dUL, 0x3eb2bd08UL, 0xf44779b9UL, // x^1152 mod p(x)`,
x^1120 mod p(x)`, x^1088 mod p(x)`, x^1056 mod p(x)`
-+ 0xd7bbfe6aUL, 0xa53ff440UL, 0x00cc3374UL, 0xf5449b3fUL, // x^1024 mod p(x)`,
x^992 mod p(x)`, x^960 mod p(x)`, x^928 mod p(x)`
-+ 0x6325605cUL, 0xebe7e356UL, 0xd777606eUL, 0x6f8346e1UL, // x^896 mod p(x)`,
x^864 mod p(x)`, x^832 mod p(x)`, x^800 mod p(x)`
-+ 0xe5b592b8UL, 0xc65a272cUL, 0xc0b95347UL, 0xe3ab4f2aUL, // x^768 mod p(x)`,
x^736 mod p(x)`, x^704 mod p(x)`, x^672 mod p(x)`
-+ 0x4721589fUL, 0x5705a9caUL, 0x329ecc11UL, 0xaa2215eaUL, // x^640 mod p(x)`,
x^608 mod p(x)`, x^576 mod p(x)`, x^544 mod p(x)`
-+ 0x88d14467UL, 0xe3720acbUL, 0xd95efd26UL, 0x1ed8f66eUL, // x^512 mod p(x)`,
x^480 mod p(x)`, x^448 mod p(x)`, x^416 mod p(x)`
-+ 0x15141c31UL, 0xba1aca03UL, 0xa700e96aUL, 0x78ed02d5UL, // x^384 mod p(x)`,
x^352 mod p(x)`, x^320 mod p(x)`, x^288 mod p(x)`
-+ 0xed627daeUL, 0xad2a31b3UL, 0x32b39da3UL, 0xba8ccbe8UL, // x^256 mod p(x)`,
x^224 mod p(x)`, x^192 mod p(x)`, x^160 mod p(x)`
-+ 0xa06a2517UL, 0x6655004fUL, 0xb1e6b092UL, 0xedb88320UL // x^128 mod p(x)`,
x^96 mod p(x)`, x^64 mod p(x)`, x^32 mod p(x)`
-+ };
-+
-+ juint* ptr = (juint*) malloc(sizeof(juint) * CRC32_CONSTANTS_SIZE);
-+ guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
-+ guarantee(ptr != NULL, "allocation error of a crc table");
-+ memcpy((void*)ptr, constants, sizeof(juint) * CRC32_CONSTANTS_SIZE);
-+ return ptr;
-+}
-+
-+juint* StubRoutines::ppc64::generate_crc_barret_constants() {
-+ juint barret_constants[CRC32_BARRET_CONSTANTS] = {
-+ 0xf7011641UL, 0x00000001UL, 0x00000000UL, 0x00000000UL,
-+ 0xdb710641UL, 0x00000001UL, 0x00000000UL, 0x00000000UL
-+ };
-+ juint* ptr = (juint*) malloc(sizeof(juint) * CRC32_CONSTANTS_SIZE);
-+ guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
-+ guarantee(ptr != NULL, "allocation error of a crc table");
-+ memcpy((void*) ptr, barret_constants, sizeof(juint) * CRC32_BARRET_CONSTANTS);
-+ return ptr;
-+}
-+
- // CRC32 Intrinsics.
- /**
- * crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.h
-@@ -477,3 +782,7 @@
- #endif
- }
- };
-+
-+juint* StubRoutines::ppc64::_constants = StubRoutines::ppc64::generate_crc_constants();
-+
-+juint* StubRoutines::ppc64::_barret_constants =
StubRoutines::ppc64::generate_crc_barret_constants();
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
-@@ -45,6 +45,8 @@
- #else
- #define CRC32_TABLES 1
- #endif
-+#define CRC32_CONSTANTS_SIZE 1084
-+#define CRC32_BARRET_CONSTANTS 10
-
- class ppc64 {
- friend class StubGenerator;
-@@ -53,11 +55,17 @@
-
- // CRC32 Intrinsics.
- static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
-+ static juint* _constants;
-+ static juint* _barret_constants;
-
- public:
-
- // CRC32 Intrinsics.
- static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
-+ static void generate_load_crc_constants_addr(MacroAssembler* masm, Register table);
-+ static void generate_load_crc_barret_constants_addr(MacroAssembler* masm, Register
table);
-+ static juint* generate_crc_constants();
-+ static juint* generate_crc_barret_constants();
-
- };
-
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-@@ -102,7 +102,7 @@
- // Create and print feature-string.
- char buf[(num_features+1) * 16]; // Max 16 chars per feature.
- jio_snprintf(buf, sizeof(buf),
-- "ppc64%s%s%s%s%s%s%s%s%s",
-+ "ppc64%s%s%s%s%s%s%s%s%s%s",
- (has_fsqrt() ? " fsqrt" : ""),
- (has_isel() ? " isel" : ""),
- (has_lxarxeh() ? " lxarxeh" : ""),
-@@ -112,7 +112,8 @@
- (has_popcntw() ? " popcntw" : ""),
- (has_fcfids() ? " fcfids" : ""),
- (has_vand() ? " vand" : ""),
-- (has_vcipher() ? " aes" : "")
-+ (has_vcipher() ? " aes" : ""),
-+ (has_vpmsumb() ? " vpmsumb" : "")
- // Make sure number of %s matches num_features!
- );
- _features_str = strdup(buf);
-@@ -490,6 +491,7 @@
- a->fcfids(F3, F4); // code[8] -> fcfids
- a->vand(VR0, VR0, VR0); // code[9] -> vand
- a->vcipher(VR0, VR1, VR2); // code[10] -> vcipher
-+ a->vpmsumb(VR0, VR1, VR2); // code[11] -> vpmsumb
- a->blr();
-
- // Emit function to set one cache line to zero. Emit function descriptor and get
pointer to it.
-@@ -534,6 +536,7 @@
- if (code[feature_cntr++]) features |= fcfids_m;
- if (code[feature_cntr++]) features |= vand_m;
- if (code[feature_cntr++]) features |= vcipher_m;
-+ if (code[feature_cntr++]) features |= vpmsumb_m;
-
- // Print the detection code.
- if (PrintAssembly) {
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
---- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
-@@ -43,6 +43,7 @@
- vand,
- dcba,
- vcipher,
-+ vpmsumb,
- num_features // last entry to count features
- };
- enum Feature_Flag_Set {
-@@ -58,6 +59,7 @@
- vand_m = (1 << vand ),
- dcba_m = (1 << dcba ),
- vcipher_m = (1 << vcipher),
-+ vpmsumb_m = (1 << vpmsumb),
- all_features_m = -1
- };
- static int _features;
-@@ -86,6 +88,7 @@
- static bool has_vand() { return (_features & vand_m) != 0; }
- static bool has_dcba() { return (_features & dcba_m) != 0; }
- static bool has_vcipher() { return (_features & vcipher_m) != 0; }
-+ static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; }
-
- static const char* cpu_features() { return _features_str; }
-
diff --git
a/jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
b/jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
deleted file mode 100644
index 6be87a7..0000000
---
a/jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-
-# HG changeset patch
-# User bpb
-# Date 1515783982 28800
-# Node ID b8843bca95b5e0eed5bbb4dc195c89c727c7aede
-# Parent 61d7ce442d95f5f30c84037a50cf6361bf7c37e1
-8165852: (fs) Mount point not found for a file which is present in overlayfs
-Summary: Check /proc/mounts when the device ID boundary is reached
-Reviewed-by: alanb
-
-diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileStore.java
---- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Tue Jul 24 05:10:45
2018 -0400
-+++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Fri Jan 12 11:06:22
2018 -0800
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2008, 2018, 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
-@@ -66,6 +66,8 @@
- }
-
- // step 2: find mount point
-+ List<UnixMountEntry> procMountsEntries =
-+ fs.getMountEntries("/proc/mounts");
- UnixPath parent = path.getParent();
- while (parent != null) {
- UnixFileAttributes attrs = null;
-@@ -74,16 +76,23 @@
- } catch (UnixException x) {
- x.rethrowAsIOException(parent);
- }
-- if (attrs.dev() != dev())
-- break;
-+ if (attrs.dev() != dev()) {
-+ // step 3: lookup mounted file systems (use /proc/mounts to
-+ // ensure we find the file system even when not in /etc/mtab)
-+ byte[] dir = path.asByteArray();
-+ for (UnixMountEntry entry : procMountsEntries) {
-+ if (Arrays.equals(dir, entry.dir()))
-+ return entry;
-+ }
-+ }
- path = parent;
- parent = parent.getParent();
- }
-
-- // step 3: lookup mounted file systems (use /proc/mounts to ensure we
-- // find the file system even when not in /etc/mtab)
-+ // step 3: lookup mounted file systems (use /proc/mounts to
-+ // ensure we find the file system even when not in /etc/mtab)
- byte[] dir = path.asByteArray();
-- for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts")) {
-+ for (UnixMountEntry entry : procMountsEntries) {
- if (Arrays.equals(dir, entry.dir()))
- return entry;
- }
-diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
---- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Tue Jul 24 05:10:45
2018 -0400
-+++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Fri Jan 12 11:06:22
2018 -0800
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2008, 2018, 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
-@@ -75,7 +75,7 @@
- /**
- * Returns object to iterate over the mount entries in the given fstab file.
- */
-- Iterable<UnixMountEntry> getMountEntries(String fstab) {
-+ List<UnixMountEntry> getMountEntries(String fstab) {
- ArrayList<UnixMountEntry> entries = new ArrayList<>();
- try {
- long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r"));
-@@ -101,7 +101,7 @@
- * Returns object to iterate over the mount entries in /etc/mtab
- */
- @Override
-- Iterable<UnixMountEntry> getMountEntries() {
-+ List<UnixMountEntry> getMountEntries() {
- return getMountEntries("/etc/mtab");
- }
-
-
diff --git a/jdk8172850-rh1640127-01-register_allocator_crash.patch
b/jdk8172850-rh1640127-01-register_allocator_crash.patch
deleted file mode 100644
index 294e313..0000000
--- a/jdk8172850-rh1640127-01-register_allocator_crash.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-
-# HG changeset patch
-# User thartmann
-# Date 1539594027 -7200
-# Node ID e044997c2edaeae97866394a7f8e2ddebbd41392
-# Parent 99212080341058548d449a22d1381e79353ec5b5
-8172850: Anti-dependency on membar causes crash in register allocator due to invalid
instruction scheduling
-Summary: Regression test and additional asserts. The problem is fixed by 8087341.
-Reviewed-by: kvn
-
-diff -r 992120803410 -r e044997c2eda src/share/vm/opto/cfgnode.cpp
---- openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 22 05:26:38 2018 -0400
-+++ openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 15 11:00:27 2018 +0200
-@@ -2016,6 +2016,7 @@
- uint ideal_reg = _type->ideal_reg();
- assert( ideal_reg != Node::NotAMachineReg, "invalid type at Phi" );
- if( ideal_reg == 0 ) return RegMask::Empty;
-+ assert(ideal_reg != Op_RegFlags, "flags register is not spillable");
- return *(Compile::current()->matcher()->idealreg2spillmask[ideal_reg]);
- }
-
-diff -r 992120803410 -r e044997c2eda src/share/vm/opto/coalesce.cpp
---- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 22 05:26:38 2018 -0400
-+++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
-@@ -292,7 +292,14 @@
- // Copy any flags as well
- _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map);
- } else {
-- const RegMask *rm =
C->matcher()->idealreg2spillmask[m->ideal_reg()];
-+ int ireg = m->ideal_reg();
-+ if (ireg == 0 || ireg == Op_RegFlags) {
-+ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
-+ m->_idx, m->Name(), ireg));
-+ C->record_method_not_compilable("attempted to spill a
non-spillable item");
-+ return;
-+ }
-+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
- copy = new (C) MachSpillCopyNode(m, *rm, *rm);
- // Find a good place to insert. Kinda tricky, use a subroutine
- insert_copy_with_overlap(pred,copy,phi_name,src_name);
-@@ -326,7 +333,14 @@
- b->insert_node(copy, l++);
- l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map);
- } else {
-- const RegMask *rm =
C->matcher()->idealreg2spillmask[m->ideal_reg()];
-+ int ireg = m->ideal_reg();
-+ if (ireg == 0 || ireg == Op_RegFlags) {
-+ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
-+ m->_idx, m->Name(), ireg));
-+ C->record_method_not_compilable("attempted to spill a
non-spillable item");
-+ return;
-+ }
-+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
- copy = new (C) MachSpillCopyNode(m, *rm, *rm);
- // Insert the copy in the basic block, just before us
- b->insert_node(copy, l++);
-@@ -373,7 +387,14 @@
- if( k < b->_num_succs )
- continue; // Live out; do not pre-split
- // Split the lrg at this use
-- const RegMask *rm =
C->matcher()->idealreg2spillmask[inp->ideal_reg()];
-+ int ireg = inp->ideal_reg();
-+ if (ireg == 0 || ireg == Op_RegFlags) {
-+ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
-+ inp->_idx, inp->Name(), ireg));
-+ C->record_method_not_compilable("attempted to spill a
non-spillable item");
-+ return;
-+ }
-+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
- Node *copy = new (C) MachSpillCopyNode( inp, *rm, *rm );
- // Insert the copy in the use-def chain
- n->set_req(inpidx, copy );
-diff -r 992120803410 -r e044997c2eda src/share/vm/opto/machnode.cpp
---- openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 22 05:26:38 2018 -0400
-+++ openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 15 11:00:27 2018 +0200
-@@ -619,6 +619,7 @@
- }
-
- // Values outside the domain represent debug info
-+ assert(in(idx)->ideal_reg() != Op_RegFlags, "flags register is not
spillable");
- return
*Compile::current()->matcher()->idealreg2spillmask[in(idx)->ideal_reg()];
- }
-
-diff -r 992120803410 -r e044997c2eda src/share/vm/opto/matcher.cpp
---- openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 22 05:26:38 2018 -0400
-+++ openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 15 11:00:27 2018 +0200
-@@ -95,6 +95,7 @@
- idealreg2spillmask [Op_VecD] = NULL;
- idealreg2spillmask [Op_VecX] = NULL;
- idealreg2spillmask [Op_VecY] = NULL;
-+ idealreg2spillmask [Op_RegFlags] = NULL;
-
- idealreg2debugmask [Op_RegI] = NULL;
- idealreg2debugmask [Op_RegN] = NULL;
-@@ -106,6 +107,7 @@
- idealreg2debugmask [Op_VecD] = NULL;
- idealreg2debugmask [Op_VecX] = NULL;
- idealreg2debugmask [Op_VecY] = NULL;
-+ idealreg2debugmask [Op_RegFlags] = NULL;
-
- idealreg2mhdebugmask[Op_RegI] = NULL;
- idealreg2mhdebugmask[Op_RegN] = NULL;
-@@ -117,6 +119,7 @@
- idealreg2mhdebugmask[Op_VecD] = NULL;
- idealreg2mhdebugmask[Op_VecX] = NULL;
- idealreg2mhdebugmask[Op_VecY] = NULL;
-+ idealreg2mhdebugmask[Op_RegFlags] = NULL;
-
- debug_only(_mem_node = NULL;) // Ideal memory node consumed by mach node
- }
-diff -r 992120803410 -r e044997c2eda
test/compiler/gcbarriers/TestMembarDependencies.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/hotspot/test/compiler/gcbarriers/TestMembarDependencies.java Mon Oct 15
11:00:27 2018 +0200
-@@ -0,0 +1,98 @@
-+/*
-+ * 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 TestMembarDependencies
-+ * @bug 8172850
-+ * @summary Tests correct scheduling of memory loads around MembarVolatile emitted by GC
barriers.
-+ * @library /testlibrary
-+ * @run driver compiler.membars.TestMembarDependencies
-+ */
-+
-+package compiler.membars;
-+
-+import com.oracle.java.testlibrary.*;
-+
-+public class TestMembarDependencies {
-+ private static TestMembarDependencies f1;
-+ private static TestMembarDependencies f2;
-+
-+ public static void main(String args[]) throws Throwable {
-+ if (args.length == 0) {
-+ // For debugging, add "-XX:+TraceOptoPipelining"
-+ OutputAnalyzer oa =
ProcessTools.executeTestJvm("-XX:+IgnoreUnrecognizedVMOptions",
-+ "-XX:-TieredCompilation",
"-XX:-BackgroundCompilation", "-XX:+PrintOpto",
-+
"-XX:CompileCommand=compileonly,compiler.membars.TestMembarDependencies::test*",
-+
"-XX:CompileCommand=dontinline,compiler.membars.TestMembarDependencies::test_m1",
-+ TestMembarDependencies.class.getName(), "run");
-+ // C2 should not crash or bail out from compilation
-+ oa.shouldHaveExitValue(0);
-+ oa.shouldNotMatch("Bailout: Recompile without subsuming loads");
-+ System.out.println(oa.getOutput());
-+ } else {
-+ f2 = new TestMembarDependencies();
-+ // Trigger compilation of test1 and test2
-+ for (int i = 0; i < 10_000; ++i) {
-+ f2.test1(f2);
-+ f2.test2(f2);
-+ }
-+ }
-+ }
-+
-+ public void test_m1() { }
-+ public void test_m2() { }
-+
-+ public void test1(TestMembarDependencies obj) {
-+ // Try/catch/finally is used to create a CFG block without a test + jmpCon
-+ // allowing GCM to schedule the testN_mem_reg0 instruction into that block.
-+ try {
-+ // Method call defines memory state that is then
-+ // used by subsequent instructions/blocks (see below).
-+ test_m1();
-+ } catch (Exception e) {
-+
-+ } finally {
-+ // Oop write to field emits a GC post-barrier with a MembarVolatile
-+ // which has a wide memory effect (kills all memory). This creates an
-+ // anti-dependency on all surrounding memory loads.
-+ f1 = obj;
-+ }
-+ // The empty method m2 is inlined but the null check of f2 remains. It is
encoded
-+ // as CmpN(LoadN(MEM), NULL) where MEM is the memory after the call to
test_m1().
-+ // This is matched to testN_mem_reg0 on x86 which is scheduled before the
barrier
-+ // in the try/catch block due to the anti-dependency on the MembarVolatile.
-+ // C2 crashes in the register allocator when trying to spill the flag register
-+ // to keep the result of the testN instruction live from the try/catch block
-+ // until it is here.
-+ f2.test_m2();
-+ }
-+
-+ public void test2(TestMembarDependencies obj) {
-+ // Same as test1 but without try/catch/finally.
-+ // This causes C2 to bail out in block local scheduling because testN_mem_reg0
is
-+ // scheduled into a block that already contains another test + jmpCon
instruction.
-+ test_m1();
-+ f1 = obj;
-+ f2.test_m2();
-+ }
-+}
-
diff --git a/jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
b/jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
deleted file mode 100644
index c61d972..0000000
--- a/jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.933127667 +0200
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.831127850 +0200
-@@ -184,6 +184,10 @@
- LFLAGS += $(ARCHFLAG)
- ASFLAGS += $(ARCHFLAG)
-
-+ifeq ($(DEBUG_BINARIES), true)
-+ ASFLAGS += $(ASFLAGS_DEBUG_SYMBOLS)
-+endif
-+
- # Use C++ Interpreter
- ifdef CC_INTERP
- CFLAGS += -DCC_INTERP
diff --git a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
deleted file mode 100644
index e4a007c..0000000
--- a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
---- openjdk.orig///common/autoconf/flags.m4
-+++ openjdk///common/autoconf/flags.m4
-@@ -282,9 +282,11 @@
- if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test
"x$DEBUG_LEVEL" = "xfastdebug"; then
- CFLAGS_DEBUG_SYMBOLS="-g1"
- CXXFLAGS_DEBUG_SYMBOLS="-g1"
-+ ASFLAGS_DEBUG_SYMBOLS="-g1"
- else
- CFLAGS_DEBUG_SYMBOLS="-g"
- CXXFLAGS_DEBUG_SYMBOLS="-g"
-+ ASFLAGS_DEBUG_SYMBOLS="-g"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- CFLAGS_DEBUG_SYMBOLS="-g -xs"
-@@ -295,6 +297,7 @@
- fi
- AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
- AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
-+ AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
-
- # Optimization levels
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
-diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/spec.gmk.in
---- openjdk.orig///common/autoconf/spec.gmk.in
-+++ openjdk///common/autoconf/spec.gmk.in
-@@ -414,6 +414,7 @@
- # Options for generating debug symbols
- ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
- CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
-+ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
- CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
- ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
- STRIP_POLICY:=@STRIP_POLICY@
-diff --git openjdk.orig///make/common/NativeCompilation.gmk
openjdk///make/common/NativeCompilation.gmk
---- openjdk.orig///make/common/NativeCompilation.gmk
-+++ openjdk///make/common/NativeCompilation.gmk
-@@ -351,12 +351,14 @@
- # Always add debug symbols
- $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
- $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
-+ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
- else
- # Programs don't get the debug symbols added in the old build. It's not
clear if
- # this is intentional.
- ifeq ($$($1_PROGRAM),)
- $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
- $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
-+ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
- endif
- endif
- endif
diff --git a/jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
b/jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
deleted file mode 100644
index 63c9cba..0000000
--- a/jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-
-# HG changeset patch
-# User roland
-# Date 1540370574 -7200
-# Node ID d853bac073f8a4851e313ba8fa9768b38396a204
-# Parent e044997c2edaeae97866394a7f8e2ddebbd41392
-8209639: assert failure in coalesce.cpp: attempted to spill a non-spillable item
-Reviewed-by: neliasso, kvn
-
-diff -r e044997c2eda -r d853bac073f8 src/share/vm/opto/coalesce.cpp
---- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
-+++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Wed Oct 24 10:42:54 2018 +0200
-@@ -25,6 +25,7 @@
- #include "precompiled.hpp"
- #include "memory/allocation.inline.hpp"
- #include "opto/block.hpp"
-+#include "opto/c2compiler.hpp"
- #include "opto/cfgnode.hpp"
- #include "opto/chaitin.hpp"
- #include "opto/coalesce.hpp"
-@@ -294,9 +295,13 @@
- } else {
- int ireg = m->ideal_reg();
- if (ireg == 0 || ireg == Op_RegFlags) {
-- assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
-- m->_idx, m->Name(), ireg));
-- C->record_method_not_compilable("attempted to spill a
non-spillable item");
-+ if (C->subsume_loads()) {
-+ C->record_failure(C2Compiler::retry_no_subsuming_loads());
-+ } else {
-+ assert(false, err_msg("attempted to spill a non-spillable item:
%d: %s, ireg = %d",
-+ m->_idx, m->Name(), ireg));
-+ C->record_method_not_compilable("attempted to spill a
non-spillable item");
-+ }
- return;
- }
- const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
-diff -r e044997c2eda -r d853bac073f8 test/compiler/c2/SubsumingLoadsCauseFlagSpill.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/hotspot/test/compiler/c2/SubsumingLoadsCauseFlagSpill.java Wed Oct 24
10:42:54 2018 +0200
-@@ -0,0 +1,72 @@
-+/*
-+ * Copyright (c) 2018, 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 8209639
-+ * @summary assert failure in coalesce.cpp: attempted to spill a non-spillable item
-+ *
-+ * @run main/othervm -XX:-BackgroundCompilation
-XX:CompileCommand=dontinline,SubsumingLoadsCauseFlagSpill::not_inlined -Xmx1024m
SubsumingLoadsCauseFlagSpill
-+ *
-+ */
-+
-+public class SubsumingLoadsCauseFlagSpill {
-+ private static Object field;
-+ private static boolean do_throw;
-+ private static volatile boolean barrier;
-+
-+ public static void main(String[] args) {
-+ for (int i = 0; i < 20_000; i++) {
-+ do_throw = true;
-+ field = null;
-+ test(0);
-+ do_throw = false;
-+ field = new Object();
-+ test(0);
-+ }
-+ }
-+
-+ private static float test(float f) {
-+ Object v = null;
-+ try {
-+ not_inlined();
-+ v = field;
-+ } catch (MyException me) {
-+ v = field;
-+ barrier = true;
-+ }
-+ if (v == null) {
-+ return f * f;
-+ }
-+ return f;
-+ }
-+
-+ private static void not_inlined() throws MyException{
-+ if (do_throw) {
-+ throw new MyException();
-+ }
-+ }
-+
-+ private static class MyException extends Throwable {
-+ }
-+}
-
diff --git a/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
b/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
index 0ab09e4..096fe19 100644
--- a/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
+++ b/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
@@ -20,4 +20,4 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot
+ $(SA_OPT_FLAGS) \
$(EXTRA_CFLAGS) \
-o $@ \
- -lthread_db
+ -lthread_db -ldl
diff --git a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
deleted file mode 100644
index 1c322fa..0000000
--- a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1338206478 14400
-# Mon May 28 08:01:18 2012 -0400
-# Node ID 6275d7b419091092752d5a1854194c98897892ba
-# Parent be1379a186ba527b32c93a83e04c9600735fe44b
-PR3559: Use ldrexd for atomic reads on ARMv7.
-
-2012-05-28 Andrew Haley <aph(a)redhat.com>
-
- * os_linux_zero.hpp (atomic_copy64): Use ldrexd for atomic reads
- on ARMv7.
-
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-@@ -54,6 +54,12 @@
- "std %0, %1\n"
- : "=&f"(tmp), "=Q"(*(volatile double*)dst)
- : "Q"(*(volatile double*)src));
-+#elif defined(__ARM_ARCH_7A__)
-+ jlong tmp;
-+ asm volatile ("ldrexd %0, [%1]\n"
-+ : "=r"(tmp)
-+ : "r"(src), "m"(src));
-+ *(jlong *) dst = tmp;
- #else
- *(jlong *) dst = *(jlong *) src;
- #endif
diff --git a/sources b/sources
index 1199a21..38ea8ea 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz) =
d7191695ed8f034ceae973bfa065f8fa7f92d17977903d7a8e75dcd04b159ce1157e3033aabbef446604f63da428dc5d4990016639f85b3e62724522526ea390
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz) =
5c2fde5b6595a8daeb2216c0eed0a9a5b311d651745fa5d299d8d6da674c27133ce23726e3f8ec32314c929d5a814d8167d9a33877fbf5237a2595b3f488585e
commit 6acda86f24da1fb5fda35aa6055c3750b8694823
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Apr 11 03:27:52 2019 +0100
Update to aarch64-shenandoah-jdk8u201-b13.
Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
diff --git a/.gitignore b/.gitignore
index 3807c60..2f50ea7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -132,3 +132,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
/tapsets-icedtea-3.11.0.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5a98f9c..fe064b5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u201-b09
+%global shenandoah_revision aarch64-shenandoah-jdk8u201-b13
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -981,7 +981,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 8%{?dist}
+Release: 0%{?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
@@ -1134,10 +1134,6 @@ Patch103:
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_
Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
-# AArch64: JDK-8160748: [AArch64] Inconsistent types for ideal_reg
-Patch107: jdk8160748-aarch64_ideal_reg.patch
-# AArch64: JDK-8189170: [AArch64] Add option to disable stack overflow checking in
primordial thread for use with JNI_CreateJavaJVM
-Patch108: jdk8189170-aarch64_primordial_thread.patch
#############################################
#
@@ -1619,8 +1615,6 @@ sh %{SOURCE12}
# AArch64 fixes
%patch106
-%patch107
-%patch108
# x86 fixes
%patch105
@@ -2337,6 +2331,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Apr 04 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b13-0
+- Update to aarch64-shenandoah-jdk8u201-b13.
+- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
+
* Fri Mar 29 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-8
- Sync SystemTap & desktop files with upstream IcedTea release using new script
diff --git a/jdk8160748-aarch64_ideal_reg.patch b/jdk8160748-aarch64_ideal_reg.patch
deleted file mode 100644
index b3e6ea6..0000000
--- a/jdk8160748-aarch64_ideal_reg.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-# HG changeset patch
-# User kbarrett
-# Date 1547614745 0
-# Wed Jan 16 04:59:05 2019 +0000
-# Node ID bca8195a3bc70df281a73d9a40032c673971676c
-# Parent 09abae195e9a7e134a1cfd9b375a6f4d95091de7
-8160748: [AArch64] Inconsistent types for ideal_reg
-Summary: Made ideal_reg consistently uint.
-Reviewed-by: kvn, iveresov
-
-diff --git openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad
openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
---- openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad
-+++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
-@@ -1,6 +1,6 @@
- //
-+// Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
- // Copyright (c) 2013, Red Hat Inc.
--// Copyright (c) 2003, 2012, Oracle and/or its affiliates.
- // All rights reserved.
- // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- //
-@@ -3449,7 +3449,7 @@
- }
-
- // Vector ideal reg.
--const int Matcher::vector_ideal_reg(int len) {
-+const uint Matcher::vector_ideal_reg(int len) {
- switch(len) {
- case 8: return Op_VecD;
- case 16: return Op_VecX;
-@@ -3458,7 +3458,7 @@
- return 0;
- }
-
--const int Matcher::vector_shift_count_ideal_reg(int size) {
-+const uint Matcher::vector_shift_count_ideal_reg(int size) {
- return Op_VecX;
- }
-
diff --git a/jdk8189170-aarch64_primordial_thread.patch
b/jdk8189170-aarch64_primordial_thread.patch
deleted file mode 100644
index 876cfdf..0000000
--- a/jdk8189170-aarch64_primordial_thread.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# HG changeset patch
-# User dbuck
-# Date 1547622839 0
-# Wed Jan 16 07:13:59 2019 +0000
-# Node ID 34c6b4b813caf9b3a6fd1859596a87a24a49c423
-# Parent bca8195a3bc70df281a73d9a40032c673971676c
-8189170: [AArch64] Add option to disable stack overflow checking in primordial thread for
use with JNI_CreateJavaJVM
-Reviewed-by: dcubed
-
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 2018, 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
-@@ -550,8 +550,8 @@
- // pthread_attr_getstack()
-
- static void current_stack_region(address * bottom, size_t * size) {
-- if (os::Linux::is_initial_thread()) {
-- // initial thread needs special handling because pthread_getattr_np()
-+ if (os::is_primordial_thread()) {
-+ // primordial thread needs special handling because pthread_getattr_np()
- // may return bogus value.
- *bottom = os::Linux::initial_thread_stack_bottom();
- *size = os::Linux::initial_thread_stack_size();
diff --git a/sources b/sources
index f2b1c0c..1199a21 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz) =
dc132d100488aa4f8a98baeb7aeba13820e62c96062a6ef7f9b69269a1a928bf1dec05b8f0e6aa40177a1f3d60ae15bbb94e7be46293b9c555893d03747fbf82
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz) =
d7191695ed8f034ceae973bfa065f8fa7f92d17977903d7a8e75dcd04b159ce1157e3033aabbef446604f63da428dc5d4990016639f85b3e62724522526ea390
commit 37a4ca2b33cde831126d7c731031ba34ced673e1
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Mar 29 05:32:30 2019 +0000
Sync SystemTap & desktop files with upstream IcedTea release using new script
diff --git a/.gitignore b/.gitignore
index 0644610..3807c60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -131,3 +131,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
+/tapsets-icedtea-3.11.0.tar.xz
diff --git a/icedtea_sync.sh b/icedtea_sync.sh
new file mode 100755
index 0000000..a9d5881
--- /dev/null
+++ b/icedtea_sync.sh
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Red Hat, Inc.
+# Written by Andrew John Hughes <gnu.andrew(a)redhat.com>.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <
http://www.gnu.org/licenses/>.
+
+ICEDTEA_VERSION=3.11.0
+ICEDTEA_URL=https://icedtea.classpath.org/download/source
+ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
+
+set -e
+
+if test "x${WGET}" = "x"; then
+ WGET=$(which wget);
+ if test "x${WGET}" = "x"; then
+ echo "wget not found";
+ exit 1;
+ fi
+fi
+
+if test "x${CHECKSUM}" = "x"; then
+ CHECKSUM=$(which sha256sum)
+ if test "x${CHECKSUM}" = "x"; then
+ echo "sha256sum not found";
+ exit 2;
+ fi
+fi
+
+if test "x${PGP}" = "x"; then
+ PGP=$(which gpg)
+ if test "x${PGP}" = "x"; then
+ echo "gpg not found";
+ exit 3;
+ fi
+fi
+
+if test "x${TAR}" = "x"; then
+ TAR=$(which tar)
+ if test "x${TAR}" = "x"; then
+ echo "tar not found";
+ exit 4;
+ fi
+fi
+
+echo "Dependencies:";
+echo -e "\tWGET: ${WGET}";
+echo -e "\tCHECKSUM: ${CHECKSUM}";
+echo -e "\tPGP: ${PGP}\n";
+echo -e "\tTAR: ${TAR}\n";
+
+echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}...";
+if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then
+ echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed.";
+ exit 5;
+fi
+
+echo "Downloading IcedTea release tarball...";
+${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz
+echo "Downloading IcedTea tarball signature...";
+${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig
+echo "Downloading IcedTea tarball checksums...";
+${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256
+
+echo "Verifying checksums...";
+${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256
+
+echo "Checking signature...";
+${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig
+
+echo "Extracting files...";
+${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \
+ icedtea-${ICEDTEA_VERSION}/tapset \
+ icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in \
+ icedtea-${ICEDTEA_VERSION}/policytool.desktop.in
+
+echo "Replacing desktop files...";
+mv -v icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in .
+mv -v icedtea-${ICEDTEA_VERSION}/policytool.desktop.in .
+
+echo "Adding temporary fix to policytool.desktop (PR3718)";
+sed -i 's#Development#Settings#' policytool.desktop.in
+echo "Adding temporary fix to policytool.desktop (PR3719)";
+sed -i 's#_BINDIR_#_JREBINDIR_#' policytool.desktop.in
+
+echo "Creating new tapset tarball...";
+mv -v icedtea-${ICEDTEA_VERSION} openjdk
+${TAR} cJf tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz openjdk
+
+rm -rvf openjdk
+rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz
+rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig
+rm -vf icedtea-${ICEDTEA_VERSION}.sha256
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1a4d599..5a98f9c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -231,6 +231,8 @@
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
%global revision %{shenandoah_revision}
+# Define IcedTea version used for SystemTap tapsets and desktop files
+%global icedteaver 3.11.0
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
@@ -979,7 +981,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 7%{?dist}
+Release: 8%{?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
@@ -1019,10 +1021,10 @@ Source0:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
# Custom README for -src subpackage
Source2: README.md
-
-# run update_systemtap.sh to regenerate or update systemtap sources
-# update_package.sh contains hard-coded repos, revisions, tags, and projects to
regenerate the source archives
-Source8: systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
+# Use 'icedtea_sync.sh' to update the following
+# They are based on code contained in the IcedTea project (3.x).
+# Systemtap tapsets. Zipped up to keep it small.
+Source8: tapsets-icedtea-%{icedteaver}.tar.xz
# Desktop files. Adapted from IcedTea
Source9: jconsole.desktop.in
@@ -1694,7 +1696,7 @@ cp -r tapset tapset%{debug_suffix}
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
- OUTPUT_FILE=`echo $file | sed -e
"s:\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
+ OUTPUT_FILE=`echo $file | sed -e
"s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"`
sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
@@ -1711,16 +1713,19 @@ done
%endif
# Prepare desktop files
+# The _X_ syntax indicates variables that are replaced by make upstream
+# The @X@ syntax indicates variables that are replaced by configure upstream
for suffix in %{build_loop} ; do
for file in %{SOURCE9} %{SOURCE10} ; do
FILE=`basename $file | sed -e s:\.in$::g`
EXT="${FILE##*.}"
NAME="${FILE%.*}"
OUTPUT_FILE=$NAME$suffix.$EXT
- sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
- sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
- sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
- sed -i -e "s:@JAVA_MAJOR_VERSION@:%{javaver}:g" $OUTPUT_FILE
+ sed -e "s:_BINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE
+ sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
+ sed -i -e "s:@target_cpu@:%{version}-%{release}.%{_arch}$suffix:g"
$OUTPUT_FILE
+ sed -i -e "s:@OPENJDK_VER@:%{javaver}:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE
sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
done
done
@@ -2332,6 +2337,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Mar 29 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-8
+- Sync SystemTap & desktop files with upstream IcedTea release using new script
+
* Wed Mar 20 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 1:1.8.0.201.b09-7
- Drop chkconfig dep, 1.7 shipped in f24
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index a8917c1..b88bd7c 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -1,8 +1,8 @@
[Desktop Entry]
-Name=OpenJDK @JAVA_MAJOR_VERSION@ Monitoring & Management Console @ARCH@
-Comment=Monitor and manage OpenJDK @JAVA_MAJOR_VERSION@ applications for @ARCH@
-Exec=@JAVA_HOME@/jconsole
-Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
+Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Monitoring & Management Console
+Comment=Monitor and manage OpenJDK applications
+Exec=_BINDIR_/jconsole
+Icon=java-@JAVA_VER@-@JAVA_VENDOR@
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
diff --git a/policytool.desktop.in b/policytool.desktop.in
index e38c0ec..112a24f 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,8 +1,8 @@
[Desktop Entry]
-Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool @ARCH@
-Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files @ARCH@
-Exec=@JRE_HOME@/policytool
-Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
+Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Policy Tool
+Comment=Manage OpenJDK policy files
+Exec=_JREBINDIR_/policytool
+Icon=java-@JAVA_VER@-@JAVA_VENDOR@
Terminal=false
Type=Application
StartupWMClass=sun-security-tools-PolicyTool
diff --git a/sources b/sources
index f3790e8..f2b1c0c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
+SHA512 (tapsets-icedtea-3.11.0.tar.xz) =
f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz) =
dc132d100488aa4f8a98baeb7aeba13820e62c96062a6ef7f9b69269a1a928bf1dec05b8f0e6aa40177a1f3d60ae15bbb94e7be46293b9c555893d03747fbf82
diff --git a/update_systemtap.sh b/update_systemtap.sh
deleted file mode 100644
index 1a3e3c8..0000000
--- a/update_systemtap.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -x
-# this file contains defaults for currently generated source tarball of systemtap
-
-set -e
-
-# TAPSET
-export PROJECT_NAME="hg"
-export REPO_NAME="icedtea8"
-export VERSION="9d464368e06d"
-export COMPRESSION=xz
-export
OPENJDK_URL=http://icedtea.classpath.org
-export FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
-export TO_COMPRESS="*/tapset"
-# warning, filename and filenameroot creation is duplicated here from
generate_source_tarball.sh
-CLONED_FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
-TAPSET_VERSION=3.2
-TAPSET=systemtap_"$TAPSET_VERSION"_tapsets_$CLONED_FILENAME
-if [ ! -f ${TAPSET} ] ; then
- if [ ! -f ${CLONED_FILENAME} ] ; then
- echo "Generating ${CLONED_FILENAME}"
- sh ./generate_singlerepo_source_tarball.sh
- else
- echo "exists exists exists exists exists exists exists "
- echo "reusing reusing reusing reusing reusing reusing "
- echo ${CLONED_FILENAME}
- fi
- mv -v $CLONED_FILENAME $TAPSET
-else
- echo "exists exists exists exists exists exists exists "
- echo "reusing reusing reusing reusing reusing reusing "
- echo ${TAPSET}
-fi
commit 748cdfdfc6360e2d85fca88a1d1a16328f4c65dc
Author: Peter Robinson <pbrobinson(a)gmail.com>
Date: Wed Mar 20 23:44:14 2019 +0000
Drop chkconfig dep, 1.7 shipped in f24, actual dep is done by the alternatives binary,
and is now a separate sub package.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 09097bb..1a4d599 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -889,12 +889,8 @@ OrderWithRequires: copy-jdk-configs
Requires: cups-libs
# Post requires alternatives to install tool alternatives
Requires(post): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall tool alternatives
Requires(postun): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(postun): chkconfig >= 1.7
# for optional support of kernel stream control, card reader and printing bindings
Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
@@ -919,12 +915,8 @@ Requires: %{name}%{?1}%{?_isa} =
%{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives
Requires(post): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall tool alternatives
Requires(postun): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(postun): chkconfig >= 1.7
# Standard JPackage devel provides
Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}
@@ -953,12 +945,8 @@ Provides: java-%{javaver}-%{origin}-demo%{?1} =
%{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative
Requires(post): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall javadoc alternative
Requires(postun): %{_sbindir}/alternatives
-# in version 1.7 and higher for --family switch
-Requires(postun): chkconfig >= 1.7
# Standard JPackage javadoc provides
Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
@@ -991,7 +979,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 6%{?dist}
+Release: 7%{?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
@@ -2344,6 +2332,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Mar 20 2019 Peter Robinson <pbrobinson(a)fedoraproject.org> 1:1.8.0.201.b09-7
+- Drop chkconfig dep, 1.7 shipped in f24
+
* Mon Mar 11 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-6
- Add -Wa,--generate-missing-build-notes=yes C flags and patch
jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch. So
commit a24b0170a9fb1a5e96b35bacce1a98e0006a6a87
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Feb 22 16:45:28 2019 +0100
Add -Wa,--generate-missing-build-notes=yes C flags.
Add patch so that assembling from assembler source files
also get extra C flags set properly (JDK-8219772).
Resolves: rhbz#1624123
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b98b98b..09097bb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -991,7 +991,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 5%{?dist}
+Release: 6%{?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
@@ -1207,6 +1207,18 @@ Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fd
# Zero part of the fix for (arm/s390 arches)
Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
+#############################################
+#
+# Patches appearing in 8u212
+#
+# This section includes patches which are present
+# in the listed OpenJDK 8u release and should be
+# able to be removed once that release is out
+# and used by this RPM.
+#############################################
+# 8219772: EXTRA_CFLAGS not being picked up for assembler files
+Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
+
#############################################
#
# Patches appearing in 8u202
@@ -1667,6 +1679,7 @@ sh %{SOURCE12}
%patch586
%patch587
%patch588
+%patch110
# RPM-only fixes
%patch525
@@ -1749,6 +1762,9 @@ export CFLAGS="$CFLAGS -mieee"
# Explicitly set the C++ standard as the default has changed on GCC >= 6
EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+# Fixes annocheck warnings in assembler files due to missing build notes
+EXTRA_CPP_FLAGS="$EXTRA_CPP_FLAGS -Wa,--generate-missing-build-notes=yes"
+EXTRA_CFLAGS="$EXTRA_CFLAGS -Wa,--generate-missing-build-notes=yes"
%ifarch %{power64} ppc
# fix rpmlint warnings
@@ -2328,6 +2344,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 11 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-6
+- Add -Wa,--generate-missing-build-notes=yes C flags and patch
+ jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch. So
+ as to fix annocheck warnings for assembler source files.
+
* Tue Feb 19 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-5
- Add a test verifying system crypto policies can be disabled
diff --git a/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
b/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
new file mode 100644
index 0000000..33ccea4
--- /dev/null
+++ b/jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
@@ -0,0 +1,11 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk.orig/hotspot/make/linux/makefiles/vm.make
+--- openjdk.orig/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -121,6 +121,7 @@
+ CFLAGS += $(CFLAGS/NOEX)
+
+ # Extra flags from gnumake's invocation or environment
++ASFLAGS += $(EXTRA_CFLAGS)
+ CFLAGS += $(EXTRA_CFLAGS)
+ LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
commit a28cd425c1395a861d3184ac54dba3411c4f1bdd
Merge: be06dc1 d15d026
Author: Severin Gehwolf <jerboaa(a)fedoraproject.org>
Date: Thu Feb 28 16:09:36 2019 +0000
Merge #61 `Add test verifying crypto policy can be disabled`
commit be06dc1c00b92e63b505c017ab2f754d3b16d8a1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Feb 27 12:40:02 2019 +0100
Fixed jre-slowdebug provides
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5eb8fbc..cbaf745 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -859,7 +859,7 @@ Recommends: gtk2%{?_isa}
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides
-Provides: jre = %{javaver}%{?1}
+Provides: jre%{?1} = %{javaver}
Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
commit d15d026ae593b58dbb11ae288f498ab643cf2b02
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Feb 19 11:13:59 2019 +0100
Add a test verifying system crypto policies can be disabled
diff --git a/TestSecurityProperties.java b/TestSecurityProperties.java
new file mode 100644
index 0000000..06a0b07
--- /dev/null
+++ b/TestSecurityProperties.java
@@ -0,0 +1,43 @@
+import java.io.File;
+import java.io.FileInputStream;
+import java.security.Security;
+import java.util.Properties;
+
+public class TestSecurityProperties {
+ // JDK 11
+ private static final String JDK_PROPS_FILE_JDK_11 =
System.getProperty("java.home") + "/conf/security/java.security";
+ // JDK 8
+ private static final String JDK_PROPS_FILE_JDK_8 =
System.getProperty("java.home") + "/lib/security/java.security";
+
+ public static void main(String[] args) {
+ Properties jdkProps = new Properties();
+ loadProperties(jdkProps);
+ for (Object key: jdkProps.keySet()) {
+ String sKey = (String)key;
+ String securityVal = Security.getProperty(sKey);
+ String jdkSecVal = jdkProps.getProperty(sKey);
+ if (!securityVal.equals(jdkSecVal)) {
+ String msg = "Expected value '" + jdkSecVal + "'
for key '" +
+ sKey + "'" + " but got value '"
+ securityVal + "'";
+ throw new RuntimeException("Test failed! " + msg);
+ } else {
+ System.out.println("DEBUG: " + sKey + " = " +
jdkSecVal + " as expected.");
+ }
+ }
+ System.out.println("TestSecurityProperties PASSED!");
+ }
+
+ private static void loadProperties(Properties props) {
+ String javaVersion = System.getProperty("java.version");
+ System.out.println("Debug: Java version is " + javaVersion);
+ String propsFile = JDK_PROPS_FILE_JDK_11;
+ if (javaVersion.startsWith("1.8.0")) {
+ propsFile = JDK_PROPS_FILE_JDK_8;
+ }
+ try (FileInputStream fin = new FileInputStream(new File(propsFile))) {
+ props.load(fin);
+ } catch (Exception e) {
+ throw new RuntimeException("Test failed!", e);
+ }
+ }
+}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5eb8fbc..e255bab 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -991,7 +991,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 4%{?dist}
+Release: 5%{?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
@@ -1052,6 +1052,9 @@ Source13: TestCryptoLevel.java
# Ensure ECDSA is working
Source14: TestECDSA.java
+# Verify system crypto (policy) can be disabled via a property
+Source15: TestSecurityProperties.java
+
Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
@@ -1857,6 +1860,10 @@ $JAVA_HOME/bin/java TestCryptoLevel
$JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
+# Verify system crypto (policy) can be disabled
+$JAVA_HOME/bin/javac -d . %{SOURCE15}
+$JAVA_HOME/bin/java -Djava.security.disableSystemPropertiesFile=true $(echo $(basename
%{SOURCE15})|sed "s|\.java||")
+
# Check debug symbols are present and can identify code
find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
do
@@ -2321,6 +2328,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 19 2019 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.201.b09-5
+- Add a test verifying system crypto policies can be disabled
+
* Tue Feb 19 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-4
- Add PR3655 to allow the system crypto policy to be turned off.
commit df67399225775c0ce705c4cb4e7a88abef208342
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 19 05:03:27 2019 +0000
Add PR3655 to allow the system crypto policy to be turned off.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f2d2c09..5eb8fbc 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -991,7 +991,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 3%{?dist}
+Release: 4%{?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
@@ -1121,6 +1121,8 @@ Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_jav
Patch540:
pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+# PR3655: Allow use of system crypto policy to be disabled by the user
+Patch301: pr3655-toggle_system_crypto_policy.patch
#############################################
#
@@ -1599,6 +1601,7 @@ sh %{SOURCE12}
%patch210
%patch300
+%patch301
%patch1
%patch3
@@ -2318,6 +2321,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 19 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-4
+- Add PR3655 to allow the system crypto policy to be turned off.
+
* Mon Feb 11 2019 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.201.b09-3
- config files to etc
diff --git a/pr3655-toggle_system_crypto_policy.patch
b/pr3655-toggle_system_crypto_policy.patch
new file mode 100644
index 0000000..abfac45
--- /dev/null
+++ b/pr3655-toggle_system_crypto_policy.patch
@@ -0,0 +1,78 @@
+# HG changeset patch
+# User andrew
+# Date 1545198926 0
+# Wed Dec 19 05:55:26 2018 +0000
+# Node ID f2cbd688824c128db7fa848c8732fb0ab3507776
+# Parent 81f07f6d1f8b7b51b136d3974c61bc8bb513770c
+PR3655: Allow use of system crypto policy to be disabled by the user
+Summary: Read user overrides first so security.useSystemPropertiesFile can be disabled
and add -Djava.security.disableSystemPropertiesFile
+
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java
openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -122,31 +122,6 @@
+ }
+
+ if ("true".equalsIgnoreCase(props.getProperty
+- ("security.useSystemPropertiesFile"))) {
+-
+- // now load the system file, if it exists, so its values
+- // will win if they conflict with the earlier values
+- try (BufferedInputStream bis =
+- new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
+- props.load(bis);
+- loadedProps = true;
+-
+- if (sdebug != null) {
+- sdebug.println("reading system security properties file "
+
+- SYSTEM_PROPERTIES);
+- sdebug.println(props.toString());
+- }
+- } catch (IOException e) {
+- if (sdebug != null) {
+- sdebug.println
+- ("unable to load security properties from " +
+- SYSTEM_PROPERTIES);
+- e.printStackTrace();
+- }
+- }
+- }
+-
+- if ("true".equalsIgnoreCase(props.getProperty
+ ("security.overridePropertiesFile"))) {
+
+ String extraPropFile = System.getProperty
+@@ -212,6 +187,33 @@
+ }
+ }
+
++ String disableSystemProps =
System.getProperty("java.security.disableSystemPropertiesFile");
++ if (disableSystemProps == null &&
++ "true".equalsIgnoreCase(props.getProperty
++ ("security.useSystemPropertiesFile"))) {
++
++ // now load the system file, if it exists, so its values
++ // will win if they conflict with the earlier values
++ try (BufferedInputStream bis =
++ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
++ props.load(bis);
++ loadedProps = true;
++
++ if (sdebug != null) {
++ sdebug.println("reading system security properties file "
+
++ SYSTEM_PROPERTIES);
++ sdebug.println(props.toString());
++ }
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println
++ ("unable to load security properties from " +
++ SYSTEM_PROPERTIES);
++ e.printStackTrace();
++ }
++ }
++ }
++
+ if (!loadedProps) {
+ initializeStatic();
+ if (sdebug != null) {
commit b227556deadc0101b1bf18d1415e843929009247
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 12 14:47:30 2019 +0100
Fixed date
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d6e7c44..f2d2c09 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -2318,7 +2318,7 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Feb 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.201.b09-3
+* Mon Feb 11 2019 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.201.b09-3
- config files to etc
* Wed Feb 06 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-2
commit 1f48fa93499f12eb1e3262c9c8de77525fdf7026
Author: Jiri <jvanek(a)redhat.com>
Date: Sat Dec 22 09:49:25 2018 +0100
config files moved to etc and symlinked back to JDK.
Backward comaptibility is to consider. Downgrade will be dead anyway.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2b9b5d5..d6e7c44 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -255,6 +255,8 @@
# main id and dir of this jdk
%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
+%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin}
+%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
# Standard JPackage directories and symbolic links.
%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
%define jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
@@ -587,15 +589,24 @@ exit 0
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
-%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
+%config(noreplace) %{etcjavadir --
%{?1}}/lib/security/policy/unlimited/US_export_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
+%config(noreplace) %{etcjavadir --
%{?1}}/lib/security/policy/limited/US_export_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs
+%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
@@ -607,13 +618,22 @@ exit 0
%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
-%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
%ifarch %{jit_arches}
%ifnarch %{power64}
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
%endif
%endif
+%dir %{etcjavasubdir}
+%dir %{etcjavadir -- %{?1}}
+%dir %{etcjavadir -- %{?1}}/lib
+%dir %{etcjavadir -- %{?1}}/lib/security
+%{etcjavadir -- %{?1}}/lib/security/cacerts
+%dir %{etcjavadir -- %{?1}}/lib/security/policy
+%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited
+%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
@@ -971,7 +991,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 2%{?dist}
+Release: 3%{?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
@@ -2084,6 +2104,14 @@ bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}
%{javaver}
#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/security/java.security
+# moving config files to /etc
+mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
+mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
+for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar
lib/security/policy/unlimited/local_policy.jar
lib/security/policy/limited/US_export_policy.jar
lib/security/policy/limited/local_policy.jar lib/security/java.policy
lib/security/java.security lib/security/blacklisted.certs lib/logging.properties
lib/calendars.properties lib/security/nss.cfg ; do
+ mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
$RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
+ ln -sf %{etcjavadir -- $suffix}/$file
$RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
+done
+
# stabilize permissions
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod
755 {} \; ;
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
@@ -2290,6 +2318,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.201.b09-3
+- config files to etc
+
* Wed Feb 06 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-2
- Add backport of JDK-8145096 (PR3693) to fix undefined behaviour issues on newer GCCs
commit c144d4353154b809c1f6b6202f25353471b84340
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Wed Feb 6 06:21:21 2019 +0000
Add backport of JDK-8145096 (PR3693) to fix undefined behaviour issues on newer GCCs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e2f12be..2b9b5d5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -971,7 +971,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 1%{?dist}
+Release: 2%{?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
@@ -1222,6 +1222,8 @@ Patch587: jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
#############################################
# JDK-8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
Patch585: jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
+# JDK-8145096, PR3693: Undefined behaviour in HotSpot
+Patch588: jdk8145096-pr3693-undefined_behaviour.patch
#############################################
#
@@ -1638,6 +1640,7 @@ sh %{SOURCE12}
%patch585
%patch586
%patch587
+%patch588
# RPM-only fixes
%patch525
@@ -2287,7 +2290,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Tue Feb 05 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-0
+* Wed Feb 06 2019 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-2
+- Add backport of JDK-8145096 (PR3693) to fix undefined behaviour issues on newer GCCs
+
+* Tue Feb 05 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-1
- Update to aarch64-shenandoah-jdk8u201-b09.
* Tue Feb 05 2019 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.192.b12-1
diff --git a/jdk8145096-pr3693-undefined_behaviour.patch
b/jdk8145096-pr3693-undefined_behaviour.patch
new file mode 100644
index 0000000..51aed3c
--- /dev/null
+++ b/jdk8145096-pr3693-undefined_behaviour.patch
@@ -0,0 +1,280 @@
+# HG changeset patch
+# User aph
+# Date 1549014450 -3600
+# Fri Feb 01 10:47:30 2019 +0100
+# Node ID f43f77de876acfbf29c02803418d4d06d83e7dc3
+# Parent 28f68e5c6fb323c521a489cfc92e8a129379378f
+8145096: Undefined behaviour in HotSpot
+Summary: Fix some integer overflows
+Reviewed-by: jrose, kvn, kbarrett, adinn, iklam
+
+diff --git openjdk.orig/hotspot/src/os/posix/vm/os_posix.cpp
openjdk/hotspot/src/os/posix/vm/os_posix.cpp
+--- openjdk.orig/hotspot/src/os/posix/vm/os_posix.cpp
++++ openjdk/hotspot/src/os/posix/vm/os_posix.cpp
+@@ -604,7 +604,11 @@
+ strncpy(buffer, "none", size);
+
+ const struct {
+- int i;
++ // NB: i is an unsigned int here because SA_RESETHAND is on some
++ // systems 0x80000000, which is implicitly unsigned. Assignining
++ // it to an int field would be an overflow in unsigned-to-signed
++ // conversion.
++ unsigned int i;
+ const char* s;
+ } flaginfo [] = {
+ { SA_NOCLDSTOP, "SA_NOCLDSTOP" },
+diff --git openjdk.orig/hotspot/src/share/vm/opto/addnode.cpp
openjdk/hotspot/src/share/vm/opto/addnode.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/addnode.cpp
++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp
+@@ -344,8 +344,8 @@
+ const Type *AddINode::add_ring( const Type *t0, const Type *t1 ) const {
+ const TypeInt *r0 = t0->is_int(); // Handy access
+ const TypeInt *r1 = t1->is_int();
+- int lo = r0->_lo + r1->_lo;
+- int hi = r0->_hi + r1->_hi;
++ int lo = java_add(r0->_lo, r1->_lo);
++ int hi = java_add(r0->_hi, r1->_hi);
+ if( !(r0->is_con() && r1->is_con()) ) {
+ // Not both constants, compute approximate result
+ if( (r0->_lo & r1->_lo) < 0 && lo >= 0 ) {
+@@ -462,8 +462,8 @@
+ const Type *AddLNode::add_ring( const Type *t0, const Type *t1 ) const {
+ const TypeLong *r0 = t0->is_long(); // Handy access
+ const TypeLong *r1 = t1->is_long();
+- jlong lo = r0->_lo + r1->_lo;
+- jlong hi = r0->_hi + r1->_hi;
++ jlong lo = java_add(r0->_lo, r1->_lo);
++ jlong hi = java_add(r0->_hi, r1->_hi);
+ if( !(r0->is_con() && r1->is_con()) ) {
+ // Not both constants, compute approximate result
+ if( (r0->_lo & r1->_lo) < 0 && lo >= 0 ) {
+diff --git openjdk.orig/hotspot/src/share/vm/opto/loopTransform.cpp
openjdk/hotspot/src/share/vm/opto/loopTransform.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/loopTransform.cpp
++++ openjdk/hotspot/src/share/vm/opto/loopTransform.cpp
+@@ -1310,8 +1310,8 @@
+ limit = new (C) Opaque2Node( C, limit );
+ register_new_node( limit, opaq_ctrl );
+ }
+- if (stride_con > 0 && ((limit_type->_lo - stride_con) <
limit_type->_lo) ||
+- stride_con < 0 && ((limit_type->_hi - stride_con) >
limit_type->_hi)) {
++ if (stride_con > 0 && (java_subtract(limit_type->_lo, stride_con)
< limit_type->_lo) ||
++ stride_con < 0 && (java_subtract(limit_type->_hi, stride_con)
> limit_type->_hi)) {
+ // No underflow.
+ new_limit = new (C) SubINode(limit, stride);
+ } else {
+diff --git openjdk.orig/hotspot/src/share/vm/opto/mulnode.cpp
openjdk/hotspot/src/share/vm/opto/mulnode.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/mulnode.cpp
++++ openjdk/hotspot/src/share/vm/opto/mulnode.cpp
+@@ -244,13 +244,13 @@
+ double d = (double)hi1;
+
+ // Compute all endpoints & check for overflow
+- int32 A = lo0*lo1;
++ int32 A = java_multiply(lo0, lo1);
+ if( (double)A != a*c ) return TypeInt::INT; // Overflow?
+- int32 B = lo0*hi1;
++ int32 B = java_multiply(lo0, hi1);
+ if( (double)B != a*d ) return TypeInt::INT; // Overflow?
+- int32 C = hi0*lo1;
++ int32 C = java_multiply(hi0, lo1);
+ if( (double)C != b*c ) return TypeInt::INT; // Overflow?
+- int32 D = hi0*hi1;
++ int32 D = java_multiply(hi0, hi1);
+ if( (double)D != b*d ) return TypeInt::INT; // Overflow?
+
+ if( A < B ) { lo0 = A; hi0 = B; } // Sort range endpoints
+@@ -340,13 +340,13 @@
+ double d = (double)hi1;
+
+ // Compute all endpoints & check for overflow
+- jlong A = lo0*lo1;
++ jlong A = java_multiply(lo0, lo1);
+ if( (double)A != a*c ) return TypeLong::LONG; // Overflow?
+- jlong B = lo0*hi1;
++ jlong B = java_multiply(lo0, hi1);
+ if( (double)B != a*d ) return TypeLong::LONG; // Overflow?
+- jlong C = hi0*lo1;
++ jlong C = java_multiply(hi0, lo1);
+ if( (double)C != b*c ) return TypeLong::LONG; // Overflow?
+- jlong D = hi0*hi1;
++ jlong D = java_multiply(hi0, hi1);
+ if( (double)D != b*d ) return TypeLong::LONG; // Overflow?
+
+ if( A < B ) { lo0 = A; hi0 = B; } // Sort range endpoints
+@@ -573,7 +573,8 @@
+ // Masking off high bits which are always zero is useless.
+ const TypeLong* t1 = phase->type( in(1) )->isa_long();
+ if (t1 != NULL && t1->_lo >= 0) {
+- jlong t1_support = ((jlong)1 << (1 + log2_long(t1->_hi))) - 1;
++ int bit_count = log2_long(t1->_hi) + 1;
++ jlong t1_support = jlong(max_julong >> (BitsPerJavaLong - bit_count));
+ if ((t1_support & con) == t1_support)
+ return usr;
+ }
+@@ -801,7 +802,7 @@
+
+ // Check for ((x & ((CONST64(1)<<(64-c0))-1)) << c0) which ANDs off
high bits
+ // before shifting them away.
+- const jlong bits_mask = ((jlong)CONST64(1) << (jlong)(BitsPerJavaLong - con)) -
CONST64(1);
++ const jlong bits_mask = jlong(max_julong >> con);
+ if( add1_op == Op_AndL &&
+ phase->type(add1->in(2)) == TypeLong::make( bits_mask ) )
+ return new (phase->C) LShiftLNode( add1->in(1), in(2) );
+@@ -1253,7 +1254,7 @@
+ if ( con == 0 ) return NULL; // let Identity() handle a 0 shift count
+ // note: mask computation below does not work for 0 shift
count
+ // We'll be wanting the right-shift amount as a mask of that many bits
+- const jlong mask = (((jlong)CONST64(1) << (jlong)(BitsPerJavaLong - con)) -1);
++ const jlong mask = jlong(max_julong >> con);
+
+ // Check for ((x << z) + Y) >>> z. Replace with x + con>>>z
+ // The idiom for rounding to a power of 2 is "(Q+(2^z-1)) >>> z".
+diff --git openjdk.orig/hotspot/src/share/vm/opto/subnode.cpp
openjdk/hotspot/src/share/vm/opto/subnode.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/subnode.cpp
++++ openjdk/hotspot/src/share/vm/opto/subnode.cpp
+@@ -252,8 +252,8 @@
+ const Type *SubINode::sub( const Type *t1, const Type *t2 ) const {
+ const TypeInt *r0 = t1->is_int(); // Handy access
+ const TypeInt *r1 = t2->is_int();
+- int32 lo = r0->_lo - r1->_hi;
+- int32 hi = r0->_hi - r1->_lo;
++ int32 lo = java_subtract(r0->_lo, r1->_hi);
++ int32 hi = java_subtract(r0->_hi, r1->_lo);
+
+ // We next check for 32-bit overflow.
+ // If that happens, we just assume all integers are possible.
+@@ -361,8 +361,8 @@
+ const Type *SubLNode::sub( const Type *t1, const Type *t2 ) const {
+ const TypeLong *r0 = t1->is_long(); // Handy access
+ const TypeLong *r1 = t2->is_long();
+- jlong lo = r0->_lo - r1->_hi;
+- jlong hi = r0->_hi - r1->_lo;
++ jlong lo = java_subtract(r0->_lo, r1->_hi);
++ jlong hi = java_subtract(r0->_hi, r1->_lo);
+
+ // We next check for 32-bit overflow.
+ // If that happens, we just assume all integers are possible.
+diff --git openjdk.orig/hotspot/src/share/vm/opto/type.cpp
openjdk/hotspot/src/share/vm/opto/type.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/type.cpp
++++ openjdk/hotspot/src/share/vm/opto/type.cpp
+@@ -1329,8 +1329,8 @@
+
+ // The new type narrows the old type, so look for a "death march".
+ // See comments on PhaseTransform::saturate.
+- juint nrange = _hi - _lo;
+- juint orange = ohi - olo;
++ juint nrange = (juint)_hi - _lo;
++ juint orange = (juint)ohi - olo;
+ if (nrange < max_juint - 1 && nrange > (orange >> 1) +
(SMALLINT*2)) {
+ // Use the new type only if the range shrinks a lot.
+ // We do not want the optimizer computing 2^31 point by point.
+@@ -1363,7 +1363,7 @@
+ //------------------------------hash-------------------------------------------
+ // Type-specific hashing function.
+ int TypeInt::hash(void) const {
+- return _lo+_hi+_widen+(int)Type::Int;
++ return java_add(java_add(_lo, _hi), java_add(_widen, (int)Type::Int));
+ }
+
+ //------------------------------is_finite--------------------------------------
+@@ -1544,7 +1544,7 @@
+ // If neither endpoint is extremal yet, push out the endpoint
+ // which is closer to its respective limit.
+ if (_lo >= 0 || // easy common case
+- (julong)(_lo - min) >= (julong)(max - _hi)) {
++ ((julong)_lo - min) >= ((julong)max - _hi)) {
+ // Try to widen to an unsigned range type of 32/63 bits:
+ if (max >= max_juint && _hi < max_juint)
+ return make(_lo, max_juint, WidenMax);
+@@ -2314,7 +2314,7 @@
+ //------------------------------hash-------------------------------------------
+ // Type-specific hashing function.
+ int TypePtr::hash(void) const {
+- return _ptr + _offset;
++ return java_add(_ptr, _offset);
+ }
+
+ //------------------------------dump2------------------------------------------
+@@ -2904,12 +2904,8 @@
+ // Type-specific hashing function.
+ int TypeOopPtr::hash(void) const {
+ return
+- (const_oop() ? const_oop()->hash() : 0) +
+- _klass_is_exact +
+- _instance_id +
+- hash_speculative() +
+- _inline_depth +
+- TypePtr::hash();
++ java_add(java_add(java_add(const_oop() ? const_oop()->hash() : 0,
_klass_is_exact),
++ java_add(_instance_id , hash_speculative())),
java_add(_inline_depth , TypePtr::hash()));
+ }
+
+ //------------------------------dump2------------------------------------------
+@@ -3635,7 +3631,7 @@
+ //------------------------------hash-------------------------------------------
+ // Type-specific hashing function.
+ int TypeInstPtr::hash(void) const {
+- int hash = klass()->hash() + TypeOopPtr::hash();
++ int hash = java_add(klass()->hash(), TypeOopPtr::hash());
+ return hash;
+ }
+
+@@ -4530,7 +4526,7 @@
+ //------------------------------hash-------------------------------------------
+ // Type-specific hashing function.
+ int TypeKlassPtr::hash(void) const {
+- return klass()->hash() + TypePtr::hash();
++ return java_add(klass()->hash(), TypePtr::hash());
+ }
+
+ //------------------------------singleton--------------------------------------
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
++++ openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp
+@@ -131,7 +131,8 @@
+ }
+
+ double AdvancedThresholdPolicy::weight(Method* method) {
+- return (method->rate() + 1) * ((method->invocation_count() + 1) *
(method->backedge_count() + 1));
++ return (double)(method->rate() + 1) *
++ (method->invocation_count() + 1) * (method->backedge_count() + 1);
+ }
+
+ // Apply heuristics and return true if x should be compiled before y
+diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+@@ -1403,6 +1403,32 @@
+
+ #define ARRAY_SIZE(array) (sizeof(array)/sizeof((array)[0]))
+
++//----------------------------------------------------------------------------------------------------
++// Sum and product which can never overflow: they wrap, just like the
++// Java operations. Note that we don't intend these to be used for
++// general-purpose arithmetic: their purpose is to emulate Java
++// operations.
++
++// The goal of this code to avoid undefined or implementation-defined
++// behaviour. The use of an lvalue to reference cast is explicitly
++// permitted by Lvalues and rvalues [basic.lval]. [Section 3.10 Para
++// 15 in C++03]
++#define JAVA_INTEGER_OP(OP, NAME, TYPE, UNSIGNED_TYPE) \
++inline TYPE NAME (TYPE in1, TYPE in2) { \
++ UNSIGNED_TYPE ures = static_cast<UNSIGNED_TYPE>(in1); \
++ ures OP ## = static_cast<UNSIGNED_TYPE>(in2); \
++ return reinterpret_cast<TYPE&>(ures); \
++}
++
++JAVA_INTEGER_OP(+, java_add, jint, juint)
++JAVA_INTEGER_OP(-, java_subtract, jint, juint)
++JAVA_INTEGER_OP(*, java_multiply, jint, juint)
++JAVA_INTEGER_OP(+, java_add, jlong, julong)
++JAVA_INTEGER_OP(-, java_subtract, jlong, julong)
++JAVA_INTEGER_OP(*, java_multiply, jlong, julong)
++
++#undef JAVA_INTEGER_OP
++
+ // Dereference vptr
+ // All C++ compilers that we know of have the vtbl pointer in the first
+ // word. If there are exceptions, this function needs to be made compiler
commit 6c221689cd722f66b76516868dedb75ddd216b4f
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Feb 4 00:15:04 2019 -0500
Update to aarch64-shenandoah-jdk8u201-b09.
diff --git a/.gitignore b/.gitignore
index 629c2fd..0644610 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 526511b..e2f12be 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u192-b12
+%global shenandoah_revision aarch64-shenandoah-jdk8u201-b09
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2287,6 +2287,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 05 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.201.b09-0
+- Update to aarch64-shenandoah-jdk8u201-b09.
+
* Tue Feb 05 2019 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.192.b12-1
- Added FX link of libglassgtk3.so
diff --git a/sources b/sources
index de3a0a2..f3790e8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz) =
5fde4f3b2f8b903d650290f0745e8f4a8036d0dcec3642d66b0a5851eeaa6be40e2fd613916ecf27b7135b8038cab1d29968973678fd33d894fca7dd5ebb03f2
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz) =
dc132d100488aa4f8a98baeb7aeba13820e62c96062a6ef7f9b69269a1a928bf1dec05b8f0e6aa40177a1f3d60ae15bbb94e7be46293b9c555893d03747fbf82
commit f7dc79c90d0bbea2557c33b2b46886175e487054
Author: Nicolas De Amicis <deamicis(a)bluewin.ch>
Date: Tue Feb 5 15:04:24 2019 +0000
Update java-1.8.0-openjdk.spec
Added FX link of libglassgtk3.so
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bca8ae5..526511b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -211,7 +211,7 @@
# links src files
# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
%global jfx_jre_libs jfxswt.jar javafx.properties
-%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so libglassgtk2.so
+%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so
%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
%global jfx_sdk_bins javafxpackager javapackager
%global jfx_jre_exts jfxrt.jar
@@ -971,7 +971,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 0%{?dist}
+Release: 1%{?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
@@ -2287,6 +2287,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 05 2019 Nicolas De Amicis <deamicis(a)bluewin.ch> - 1:1.8.0.192.b12-1
+- Added FX link of libglassgtk3.so
+
* Wed Jan 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.192.b12-0
- Update to aarch64-shenandoah-jdk8u192-b12.
- Remove patches included upstream
commit e0121aeccf9c28af287eec45e42e8cd14da5be1c
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Wed Jan 30 14:07:13 2019 +0000
Update to aarch64-shenandoah-jdk8u192-b12.
Remove patches included upstream
- JDK-8031668/PR2842
- JDK-8148351/PR2842
- JDK-6260348/PR3066
- JDK-8061305/PR3335/RH1423421
- JDK-8188030/PR3459/RH1484079
- JDK-8205104/PR3539/RH1548475
- JDK-8185723/PR3553
- JDK-8186461/PR3557
- JDK-8201509/PR3579
- JDK-8075942/PR3602
- JDK-8203182/PR3603
- JDK-8206406/PR3610/RH1597825
- JDK-8206425
- JDK-8036003
- JDK-8201495/PR2415
- JDK-8150954/PR2866/RH1176206
Re-generate patches (mostly due to upstream build changes)
- JDK-8073139/PR1758/RH1191652
- JDK-8143245/PR3548 (due to JDK-8202600)
- JDK-8197429/PR3546/RH1536622 (due to JDK-8189170)
- JDK-8199936/PR3533
- JDK-8199936/PR3591
- JDK-8207057/PR3613
- JDK-8210761/RH1632174 (due to JDK-8207402)
- PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509)
- PR3593 (due to JDK-8081202)
- RH1566890/CVE-2018-3639 (due to JDK-8189170)
- RH1649664 (due to JDK-8196516)
diff --git a/.gitignore b/.gitignore
index 95356b2..629c2fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -129,3 +129,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 61708b0..bca8ae5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -226,7 +226,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u191-b14
+%global shenandoah_revision aarch64-shenandoah-jdk8u192-b12
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -971,7 +971,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 1%{?dist}
+Release: 0%{?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
@@ -1119,6 +1119,10 @@ Patch103:
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_
Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
+# AArch64: JDK-8160748: [AArch64] Inconsistent types for ideal_reg
+Patch107: jdk8160748-aarch64_ideal_reg.patch
+# AArch64: JDK-8189170: [AArch64] Add option to disable stack overflow checking in
primordial thread for use with JNI_CreateJavaJVM
+Patch108: jdk8189170-aarch64_primordial_thread.patch
#############################################
#
@@ -1178,47 +1182,6 @@ Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fd
# Zero part of the fix for (arm/s390 arches)
Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
-#############################################
-#
-# Patches appearing in 8u192
-#
-# This section includes patches which are present
-# in the listed OpenJDK 8u release and should be
-# able to be removed once that release is out
-# and used by this RPM.
-#############################################
-# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Patch506:
jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
-# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Patch507:
jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
-# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
-Patch526:
jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
-# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
-Patch538:
jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
-# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
-Patch560:
jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
-# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-Patch562: jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
-# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
-Patch565: jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
-# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
-Patch566:
jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
-# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
-Patch569:
jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
-# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
-Patch578:
jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
-# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
-Patch579:
jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
-# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
-Patch580:
jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
-# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
-# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
-Patch204:
jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
-# 8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
-Patch205: jdk8036003-add_with_native_debug_symbols_configure_flag.patch
-# s390: JDK-8201495, PR2415: JVM -Xmx requirement is too high on s390
-Patch100: jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
-
#############################################
#
# Patches appearing in 8u202
@@ -1228,8 +1191,6 @@ Patch100:
jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.pa
# able to be removed once that release is out
# and used by this RPM.
#############################################
-# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
-Patch508: jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
# 8207057, PR3613: Enable debug information for assembly code files
Patch206: jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
Patch207: jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
@@ -1611,8 +1572,6 @@ sh %{SOURCE12}
%patch203
# Debugging fixes
-%patch204
-%patch205
%patch206
%patch207
%patch210
@@ -1625,12 +1584,13 @@ sh %{SOURCE12}
%patch7
# s390 build fixes
-%patch100
%patch102
%patch103
# AArch64 fixes
%patch106
+%patch107
+%patch108
# x86 fixes
%patch105
@@ -1643,9 +1603,6 @@ sh %{SOURCE12}
# Upstreamable fixes
%patch502
%patch504
-%patch506
-%patch507
-%patch508
%patch512
%patch513
%patch514
@@ -1656,20 +1613,13 @@ sh %{SOURCE12}
%patch519
%patch400
%patch523
-%patch526
%patch528
%patch529
%patch530
-%patch538
-%patch560
%patch561
-%patch562
%patch563
%patch564
-%patch565
-%patch566
%patch567
-%patch569
%patch571
%patch572
%patch573
@@ -1677,9 +1627,6 @@ sh %{SOURCE12}
%patch575
%patch576
%patch577
-%patch578
-%patch579
-%patch580
%patch620
%patch621
%patch622
@@ -2340,7 +2287,41 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Jan 14 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-1
+* Wed Jan 30 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.192.b12-0
+- Update to aarch64-shenandoah-jdk8u192-b12.
+- Remove patches included upstream
+ - JDK-8031668/PR2842
+ - JDK-8148351/PR2842
+ - JDK-6260348/PR3066
+ - JDK-8061305/PR3335/RH1423421
+ - JDK-8188030/PR3459/RH1484079
+ - JDK-8205104/PR3539/RH1548475
+ - JDK-8185723/PR3553
+ - JDK-8186461/PR3557
+ - JDK-8201509/PR3579
+ - JDK-8075942/PR3602
+ - JDK-8203182/PR3603
+ - JDK-8206406/PR3610/RH1597825
+ - JDK-8206425
+ - JDK-8036003
+ - JDK-8201495/PR2415
+ - JDK-8150954/PR2866/RH1176206
+- Re-generate patches (mostly due to upstream build changes)
+ - JDK-8073139/PR1758/RH1191652
+ - JDK-8143245/PR3548 (due to JDK-8202600)
+ - JDK-8197429/PR3546/RH1536622 (due to JDK-8189170)
+ - JDK-8199936/PR3533
+ - JDK-8199936/PR3591
+ - JDK-8207057/PR3613
+ - JDK-8210761/RH1632174 (due to JDK-8207402)
+ - PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509)
+ - PR3593 (due to JDK-8081202)
+ - RH1566890/CVE-2018-3639 (due to JDK-8189170)
+ - RH1649664 (due to JDK-8196516)
+- Add 8160748 for AArch64 which is missing from upstream 8u version.
+- Add port of 8189170 to AArch64 which is missing from upstream 8u version.
+
+* Mon Jan 28 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-1
- Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64.
* Thu Jan 24 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
diff --git
a/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
b/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
deleted file mode 100644
index 06be502..0000000
---
a/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-# HG changeset patch
-# User ssadetsky
-# Date 1467220169 -3600
-# Wed Jun 29 18:09:29 2016 +0100
-# Node ID 9fffaa63c49d93bff70b96af9a86b7635bce44be
-# Parent d0462c26152fc8bd5f79db7f1670777e807ef2b3
-6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
-Reviewed-by: alexsch, azvegint
-
-diff -r d0462c26152f -r 9fffaa63c49d
src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
---- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Tue Jun 28
19:44:50 2016 +0100
-+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Wed Jun 29
18:09:29 2016 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2015, 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
-@@ -93,7 +93,9 @@
- */
- static enum Settings {
- GTK_FONT_NAME,
-- GTK_ICON_SIZES
-+ GTK_ICON_SIZES,
-+ GTK_CURSOR_BLINK,
-+ GTK_CURSOR_BLINK_TIME
- }
-
- /* Custom regions are needed for representing regions that don't exist
-diff -r d0462c26152f -r 9fffaa63c49d
src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
---- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Tue Jun
28 19:44:50 2016 +0100
-+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jun
29 18:09:29 2016 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2002, 2015, 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
-@@ -371,7 +371,17 @@
- int vProgWidth = 22 - (progXThickness * 2);
- int vProgHeight = 80 - (progYThickness * 2);
-
-- Integer caretBlinkRate = Integer.valueOf(500);
-+ Integer caretBlinkRate;
-+ if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting(
-+ GTKEngine.Settings.GTK_CURSOR_BLINK))) {
-+ caretBlinkRate = Integer.valueOf(0);
-+ } else {
-+ caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting(
-+ GTKEngine.Settings.GTK_CURSOR_BLINK_TIME);
-+ if (caretBlinkRate == null) {
-+ caretBlinkRate = Integer.valueOf(500);
-+ }
-+ }
- Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0);
-
- Double defaultCaretAspectRatio = new Double(0.025);
-diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.c
---- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jun 28 19:44:50 2016
+0100
-+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Wed Jun 29 18:09:29 2016
+0100
-@@ -1316,9 +1316,6 @@
- {
- result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] =
- (*fp_gtk_entry_new)();
--
-- GtkSettings* settings = fp_gtk_widget_get_settings(result);
-- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
- }
- result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE];
- break;
-@@ -1363,10 +1360,6 @@
- {
- gtk2_widgets[_GTK_ENTRY_TYPE] =
- (*fp_gtk_entry_new)();
--
-- GtkSettings* settings =
-- fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]);
-- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
- }
- result = gtk2_widgets[_GTK_ENTRY_TYPE];
- break;
-@@ -1558,9 +1551,6 @@
- {
- result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] =
- (*fp_gtk_spin_button_new)(NULL, 0, 0);
--
-- GtkSettings* settings = fp_gtk_widget_get_settings(result);
-- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
- }
- result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE];
- break;
-@@ -2510,14 +2500,20 @@
-
- return result;
- }
--/*
-+
- jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key)
- {
-- gint intval = NULL;
--
-+ gint intval = NULL;
- (*fp_g_object_get)(settings, key, &intval, NULL);
- return create_Integer(env, intval);
--}*/
-+}
-+
-+jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, const gchar* key)
-+{
-+ gint intval = NULL;
-+ (*fp_g_object_get)(settings, key, &intval, NULL);
-+ return create_Boolean(env, intval);
-+}
-
- jobject gtk2_get_setting(JNIEnv *env, Setting property)
- {
-@@ -2529,6 +2525,10 @@
- return get_string_property(env, settings, "gtk-font-name");
- case GTK_ICON_SIZES:
- return get_string_property(env, settings, "gtk-icon-sizes");
-+ case GTK_CURSOR_BLINK:
-+ return get_boolean_property(env, settings, "gtk-cursor-blink");
-+ case GTK_CURSOR_BLINK_TIME:
-+ return get_integer_property(env, settings,
"gtk-cursor-blink-time");
- }
-
- return NULL;
-diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.h
---- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Tue Jun 28 19:44:50 2016
+0100
-+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Wed Jun 29 18:09:29 2016
+0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2015, 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
-@@ -140,7 +140,9 @@
- typedef enum _Setting
- {
- GTK_FONT_NAME,
-- GTK_ICON_SIZES
-+ GTK_ICON_SIZES,
-+ GTK_CURSOR_BLINK,
-+ GTK_CURSOR_BLINK_TIME
- } Setting;
-
- /* GTK types, here to eliminate need for GTK headers at compile time */
diff --git
a/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
b/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
deleted file mode 100644
index faaa309..0000000
---
a/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User mduigou
-# Date 1389723922 28800
-# Tue Jan 14 10:25:22 2014 -0800
-# Node ID 842cc183c9f6d29270ff002238248978c08f0a66
-# Parent f0635543beb309c4da1bb88c906a76ee4b75e16d
-8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Reviewed-by: erikj, ihse
-
-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_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
- ])
-
diff --git a/jdk8036003-add_with_native_debug_symbols_configure_flag.patch
b/jdk8036003-add_with_native_debug_symbols_configure_flag.patch
deleted file mode 100644
index b7b8a05..0000000
--- a/jdk8036003-add_with_native_debug_symbols_configure_flag.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-
-# HG changeset patch
-# User sgehwolf
-# Date 1531824954 -7200
-# Node ID 19e8754f5415cdda79904b9f21a4b8981505cb78
-# Parent 1380ce862bbd0b65c619bfcea454d612b240e332
-8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
-Reviewed-by: erikj
-
-diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/jdk-options.m4
---- openjdk/common/autoconf/jdk-options.m4 Mon Jul 16 15:37:08 2018 +0100
-+++ openjdk/common/autoconf/jdk-options.m4 Tue Jul 17 12:55:54 2018 +0200
-@@ -1,5 +1,5 @@
- #
--# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2011, 2018, 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
-@@ -606,11 +606,88 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
-
- if test "x${enable_zip_debug_info}" = "xno"; then
- ZIP_DEBUGINFO_FILES=false
-+ elif test "x${enable_zip_debug_info}" = "xyes"; then
-+ ZIP_DEBUGINFO_FILES=true
-+ fi
-+
-+ #
-+ # NATIVE_DEBUG_SYMBOLS
-+ # This must be done after the toolchain is setup, since we're looking at objcopy.
-+ # In addition, this must be done after ENABLE_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES
-+ # checking in order to preserve backwards compatibility post JDK-8207234.
-+ #
-+ AC_MSG_CHECKING([what type of native debug symbols to use (this will override previous
settings)])
-+ AC_ARG_WITH([native-debug-symbols],
-+ [AS_HELP_STRING([--with-native-debug-symbols],
-+ [set the native debug symbol configuration (none, internal, external, zipped)
@<:@varying@:>@])],
-+ [
-+ if test "x$OPENJDK_TARGET_OS" = xaix; then
-+ if test "x$with_native_debug_symbols" = xexternal || test
"x$with_native_debug_symbols" = xzipped; then
-+ AC_MSG_ERROR([AIX only supports the parameters 'none' and
'internal' for --with-native-debug-symbols])
-+ fi
-+ fi
-+ ],
-+ [
-+ # Default to unset for backwards compatibility
-+ with_native_debug_symbols=""
-+ ])
-+ NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols
-+ if test "x$NATIVE_DEBUG_SYMBOLS" = x; then
-+ AC_MSG_RESULT([not specified])
- else
-+ AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS])
-+ fi
-+ # Default is empty
-+ DEBUG_BINARIES=
-+ # Default is min_strip. Possible values are min_strip, all_strip, no_strip
-+ STRIP_POLICY=min_strip
-+
-+ if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then
-+
-+ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
-+ if test "x$OBJCOPY" = x; then
-+ # enabling of enable-debug-symbols and can't find objcopy
-+ # this is an error
-+ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
-+ fi
-+ fi
-+
-+ ENABLE_DEBUG_SYMBOLS=true
-+ STRIP_POLICY=min_strip
- ZIP_DEBUGINFO_FILES=true
-+ elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
-+ ENABLE_DEBUG_SYMBOLS=false
-+ STRIP_POLICY=min_strip
-+ ZIP_DEBUGINFO_FILES=false
-+ elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
-+ ENABLE_DEBUG_SYMBOLS=true
-+ STRIP_POLICY=no_strip
-+ ZIP_DEBUGINFO_FILES=false
-+ POST_STRIP_CMD=
-+ DEBUG_BINARIES=true
-+ elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
-+
-+ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
-+ if test "x$OBJCOPY" = x; then
-+ # enabling of enable-debug-symbols and can't find objcopy
-+ # this is an error
-+ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
-+ fi
-+ fi
-+
-+ ENABLE_DEBUG_SYMBOLS=true
-+ STRIP_POLICY=min_strip
-+ ZIP_DEBUGINFO_FILES=false
-+ elif test "x$NATIVE_DEBUG_SYMBOLS" != x; then
-+ AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
-+ else
-+ AC_MSG_NOTICE([--with-native-debug-symbols not specified. Using values from
--disable-debug-symbols and --disable-zip-debug-info])
- fi
-
- AC_SUBST(ENABLE_DEBUG_SYMBOLS)
-+ AC_SUBST(STRIP_POLICY)
-+ AC_SUBST(POST_STRIP_CMD)
-+ AC_SUBST(DEBUG_BINARIES)
- AC_SUBST(ZIP_DEBUGINFO_FILES)
- AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
- AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
-diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/spec.gmk.in
---- openjdk/common/autoconf/spec.gmk.in Mon Jul 16 15:37:08 2018 +0100
-+++ openjdk/common/autoconf/spec.gmk.in Tue Jul 17 12:55:54 2018 +0200
-@@ -416,6 +416,8 @@
- CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
- CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
- ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
-+STRIP_POLICY:=@STRIP_POLICY@
-+DEBUG_BINARIES:=@DEBUG_BINARIES@
-
- #
- # Compress (or not) jars
-diff -r 1380ce862bbd -r 19e8754f5415 make/common/NativeCompilation.gmk
---- openjdk/make/common/NativeCompilation.gmk Mon Jul 16 15:37:08 2018 +0100
-+++ openjdk/make/common/NativeCompilation.gmk Tue Jul 17 12:55:54 2018 +0200
-@@ -260,6 +260,10 @@
- $1_CC:=$(CC)
- endif
-
-+ ifeq ($$($1_STRIP_POLICY),)
-+ $1_STRIP_POLICY:=$$(STRIP_POLICY)
-+ endif
-+
- # Make sure the dirs exist.
- $$(eval $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR)))
- $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to
SetupNativeCompilation $1 contains missing directory $$d)))
-@@ -455,28 +459,34 @@
- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
- ifeq ($(OPENJDK_TARGET_OS), solaris)
-- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
-- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-- # empty section headers until a fixed $(OBJCOPY) is available.
-- # An empty section header has sh_addr == 0 and sh_size == 0.
-- # This problem has only been seen on Solaris X64, but we call this tool
-- # on all Solaris builds just in case.
-- #
-- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ # gobjcopy crashes on "empty" section headers with the
SHF_ALLOC flag set.
-+ # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-+ # empty section headers until a fixed $(OBJCOPY) is available.
-+ # An empty section header has sh_addr == 0 and sh_size == 0.
-+ # This problem has only been seen on Solaris X64, but we call this tool
-+ # on all Solaris builds just in case.
-+ #
-+ # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-+ # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-+ $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
- $(RM) $$@
- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
- $(OBJCOPY) --only-keep-debug $$< $$@
- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
-+ endif
- else # not solaris
-- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
- $(RM) $$@
- $(OBJCOPY) --only-keep-debug $$< $$@
- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
-+ endif
- endif # Touch to not retrigger rule on rebuild
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
- $(TOUCH) $$@
-+ endif
- endif # !windows
- endif # !macosx
-
-@@ -500,7 +510,9 @@
- $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
- $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
-- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
-+ endif
- endif
- endif
- endif
-@@ -539,28 +551,34 @@
- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
- ifeq ($(OPENJDK_TARGET_OS), solaris)
-- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
-- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-- # empty section headers until a fixed $(OBJCOPY) is available.
-- # An empty section header has sh_addr == 0 and sh_size == 0.
-- # This problem has only been seen on Solaris X64, but we call this tool
-- # on all Solaris builds just in case.
-- #
-- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ # gobjcopy crashes on "empty" section headers with the
SHF_ALLOC flag set.
-+ # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-+ # empty section headers until a fixed $(OBJCOPY) is available.
-+ # An empty section header has sh_addr == 0 and sh_size == 0.
-+ # This problem has only been seen on Solaris X64, but we call this tool
-+ # on all Solaris builds just in case.
-+ #
-+ # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-+ # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-+ $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
- $(RM) $$@
- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
- $(OBJCOPY) --only-keep-debug $$< $$@
- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
-+ endif
- else # not solaris
-- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
- $(RM) $$@
- $(OBJCOPY) --only-keep-debug $$< $$@
- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
-+ endif
- endif
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
- $(TOUCH) $$@
-+ endif
- endif # !windows
- endif # !macosx
-
-@@ -584,7 +602,9 @@
- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \
- $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb
- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
-- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
-+ ifneq ($$($1_STRIP_POLICY), no_strip)
-+ $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
-+ endif
- endif
- endif
- endif
-
diff --git
a/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
b/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
deleted file mode 100644
index 384c52a..0000000
---
a/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User ksrini
-# Date 1414764176 25200
-# Fri Oct 31 07:02:56 2014 -0700
-# Node ID 9fd9a50e7994a9659c5ef21296d0baee4c2eecff
-# Parent fd59a2d4313440077fce3fbf39174755a15d285a
-8061305: Javadoc crashes when method name ends with "Property"
-Reviewed-by: jjg
-
-diff --git
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
----
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
-+++
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
-@@ -656,6 +656,9 @@
- // properties aren't named setA* or getA*
- private final Pattern pattern =
Pattern.compile("[sg]et\\p{Upper}.*");
- private boolean isPropertyMethod(MethodDoc method) {
-+ if (!configuration.javafx) {
-+ return false;
-+ }
- if (!method.name().endsWith("Property")) {
- return false;
- }
-@@ -667,7 +670,9 @@
- if (pattern.matcher(method.name()).matches()) {
- return false;
- }
--
-+ if (method.typeParameters().length > 0) {
-+ return false;
-+ }
- return 0 == method.parameters().length
- &&
!"void".equals(method.returnType().simpleTypeName());
- }
diff --git
a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
index 6511281..67fc620 100644
--- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
+++ b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
@@ -8,6 +8,19 @@
Reviewed-by: erikj, goetz, dholmes
Contributed-by: Andrew Hughes <gnu.andrew(a)redhat.com>, Alexander Smundak
<asmundak(a)google.com>
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -549,6 +549,9 @@
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
+ fi
++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
++ fi
+
+ # Setup target OS define. Use OS target name but in upper case.
+ OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR
'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
diff --git openjdk.orig///common/autoconf/jdk-options.m4
openjdk///common/autoconf/jdk-options.m4
--- openjdk.orig///common/autoconf/jdk-options.m4
+++ openjdk///common/autoconf/jdk-options.m4
@@ -32,16 +45,3 @@ diff --git openjdk.orig///common/autoconf/platform.m4
openjdk///common/autoconf/
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
-diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
---- openjdk.orig///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -1123,6 +1123,9 @@
- else
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
-+ fi
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
- fi
diff --git
a/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
b/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
deleted file mode 100644
index bd2a40e..0000000
---
a/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-# HG changeset patch
-# User prr
-# Date 1429299166 25200
-# Fri Apr 17 12:32:46 2015 -0700
-# Node ID 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6
-# Parent 533117ae5b7587c8d9c0612581682ab984475430
-8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
-Reviewed-by: flar, lbourges
-
-diff --git openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
---- openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
-+++ openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
-@@ -146,7 +146,7 @@
- if (dashOn) {
- if (starting) {
- firstSegmentsBuffer = Helpers.widenArray(firstSegmentsBuffer,
-- firstSegidx, type - 2);
-+ firstSegidx, type - 2 + 1);
- firstSegmentsBuffer[firstSegidx++] = type;
- System.arraycopy(pts, off, firstSegmentsBuffer, firstSegidx, type - 2);
- firstSegidx += type - 2;
-diff --git a/test/javopenjdk.orig/jdk/awt/BasicStroke/DashStrokeTest.java
openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java
-@@ -0,0 +1,69 @@
-+/*
-+ * Copyright (c) 2015, 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
-+ * @bug 8075942
-+ * @summary test there is no exception rendering a dashed stroke
-+ * @run DashStrokeTest
-+ * @run -Dsun.java2d.renderer=sun.java2d.pisces.PiscesRenderingEngine
-+ */
-+
-+import java.awt.BasicStroke;
-+import java.awt.Color;
-+import java.awt.Graphics2D;
-+import java.awt.Stroke;
-+import java.awt.geom.GeneralPath;
-+import java.awt.image.BufferedImage;
-+
-+
-+public class DashStrokeTest {
-+
-+ public static void main(String[] args) {
-+
-+ GeneralPath shape = new GeneralPath();
-+ int[] pointTypes = {0, 0, 1, 1, 0, 1, 1, 0};
-+ double[] xpoints = {428, 420, 400, 400, 400, 400, 420, 733};
-+ double[] ypoints = {180, 180, 180, 160, 30, 10, 10, 10};
-+ shape.moveTo(xpoints[0], ypoints[0]);
-+ for (int i = 1; i < pointTypes.length; i++) {
-+ if (pointTypes[i] == 1 && i < pointTypes.length - 1) {
-+ shape.quadTo(xpoints[i], ypoints[i],
-+ xpoints[i + 1], ypoints[i + 1]);
-+ } else {
-+ shape.lineTo(xpoints[i], ypoints[i]);
-+ }
-+ }
-+
-+ BufferedImage image = new
-+ BufferedImage(1000, 1000, BufferedImage.TYPE_INT_ARGB);
-+ Graphics2D g2 = image.createGraphics();
-+
-+ Color color = new Color(124, 0, 124, 255);
-+ g2.setColor(color);
-+ Stroke stroke = new BasicStroke(1.0f,
-+ BasicStroke.CAP_BUTT,
-+ BasicStroke.JOIN_BEVEL,
-+ 10.0f, new float[] {9, 6}, 0.0f);
-+ g2.setStroke(stroke);
-+ g2.draw(shape);
-+ }
-+}
diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
index eccb110..b0a88ea 100644
--- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -60,12 +60,12 @@ diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
openjdk/h
switch (type) {
case T_VOID:
ftype = &ffi_type_void;
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+ * Copyright 2016 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -126,14 +126,6 @@ diff --git
openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openj
}
void os::Linux::set_fpu_control_word(int fpu) {
-@@ -408,6 +418,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return -1; // silence compile warnings
- }
-
-
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
diff --git
a/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
b/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
deleted file mode 100644
index 1812e19..0000000
---
a/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User ihse
-# Date 1454642639 0
-# Fri Feb 05 03:23:59 2016 +0000
-# Node ID 61798573efe5a9efa67e268a52cf61263abb4396
-# Parent 842cc183c9f6d29270ff002238248978c08f0a66
-8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Reviewed-by: erikj
-
-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"
-- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r'
may all be links
-- # to 'xlc' but it is crucial that we invoke the compiler with the right name!
-- if test "x$OPENJDK_BUILD_OS" != xaix; then
-- AC_MSG_CHECKING([resolved symbolic links for $1])
-- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER)
-- AC_MSG_RESULT([$TEST_COMPILER])
-- fi
-- AC_MSG_CHECKING([if $1 is disguised ccache])
-
-- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"`
-- if test "x$COMPILER_BASENAME" = "xccache"; then
-- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler])
-- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache.
-- # We want to control ccache invocation ourselves, so ignore this cc and try
-- # searching again.
-+ AC_MSG_CHECKING([resolved symbolic links for $1])
-+ SYMLINK_ORIGINAL="$TEST_COMPILER"
-+ BASIC_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
-+ if test "x$TEST_COMPILER" = "x$SYMLINK_ORIGINAL"; then
-+ AC_MSG_RESULT([no symlink])
-+ else
-+ AC_MSG_RESULT([$SYMLINK_ORIGINAL])
-
-- # Remove the path to the fake ccache cc from the PATH
-- RETRY_COMPILER_SAVED_PATH="$PATH"
-- COMPILER_DIRNAME=`$DIRNAME [$]$1`
-- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e
"s,::,:,g" -e "s,^:,,g"`"
--
-- # Try again looking for our compiler
-- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3)
-- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1)
-- PATH="$RETRY_COMPILER_SAVED_PATH"
--
-- AC_MSG_CHECKING([for resolved symbolic links for $1])
-- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1)
-- AC_MSG_RESULT([$PROPER_COMPILER_$1])
-- $1="$PROPER_COMPILER_$1"
-- else
-- AC_MSG_RESULT([no, keeping $1])
-+ # We can't handle ccache by gcc wrappers, since we need to know if we're
-+ # using ccache. Instead ccache usage must be controlled by a configure option.
-+ COMPILER_BASENAME=`$BASENAME "$SYMLINK_ORIGINAL"`
-+ if test "x$COMPILER_BASENAME" = "xccache"; then
-+ AC_MSG_NOTICE([Please use --enable-ccache instead of providing a wrapped
compiler.])
-+ AC_MSG_ERROR([$TEST_COMPILER is a symbolic link to ccache. This is not
supported.])
-+ fi
- fi
-
- TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
diff --git a/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
b/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
deleted file mode 100644
index 8b62ae6..0000000
--- a/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-
-# HG changeset patch
-# User neugens
-# Date 1532089120 -7200
-# Node ID 7b30bb9b05bd2e8045bc693ea5be353ce6326396
-# Parent 3d8011a1e02179e5658110981e30274c605ceac8
-8150954: Taking screenshots on x11 composite desktop produce wrong result
-Summary: The AWT Robot X11 code that takes screenshots uses the default root window,
which may not contain the final composited desktop.
-Reviewed-by: alexsch, ssadetsky, prr, dbuck
-
-diff -r 3d8011a1e021 -r 7b30bb9b05bd make/mapfiles/libawt_xawt/mapfile-vers
---- openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Thu Jul 19 03:31:37 2018 +0100
-+++ openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Fri Jul 20 14:18:40 2018 +0200
-@@ -158,6 +158,7 @@
- Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
- Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
- Java_sun_awt_X11_XRobotPeer_setup;
-+ Java_sun_awt_X11_XRobotPeer_loadNativeLibraries;
- Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl;
- Java_java_awt_Component_initIDs;
- Java_java_awt_Container_initIDs;
-diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/classes/sun/awt/X11/XRobotPeer.java
---- openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Thu Jul 19 03:31:37 2018
+0100
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Fri Jul 20 14:18:40 2018
+0200
-@@ -34,6 +34,10 @@
-
- class XRobotPeer implements RobotPeer {
-
-+ static {
-+ loadNativeLibraries();
-+ }
-+
- private X11GraphicsConfig xgc = null;
- /*
- * native implementation uses some static shared data (pipes, processes)
-@@ -98,4 +102,5 @@
- private static native synchronized void keyReleaseImpl(int keycode);
-
- private static native synchronized void getRGBPixelsImpl(X11GraphicsConfig xgc, int
x, int y, int width, int height, int pixelArray[]);
-+ private static native void loadNativeLibraries();
- }
-diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/native/sun/awt/awt_Robot.c
---- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Thu Jul 19 03:31:37 2018 +0100
-+++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Fri Jul 20 14:18:40 2018 +0200
-@@ -27,6 +27,9 @@
- #error This file should not be included in headless library
- #endif
-
-+#include "jvm_md.h"
-+#include <dlfcn.h>
-+
- #include "awt_p.h"
- #include "awt_GraphicsEnv.h"
- #define XK_MISCELLANY
-@@ -49,11 +52,46 @@
- #include <sys/socket.h>
- #endif
-
-+static Bool (*compositeQueryExtension) (Display*, int*, int*);
-+static Status (*compositeQueryVersion) (Display*, int*, int*);
-+static Window (*compositeGetOverlayWindow) (Display *, Window);
-+
- extern struct X11GraphicsConfigIDs x11GraphicsConfigIDs;
-
- static jint * masks;
- static jint num_buttons;
-
-+static void *xCompositeHandle;
-+
-+static const char* XCOMPOSITE = JNI_LIB_NAME("Xcomposite");
-+static const char* XCOMPOSITE_VERSIONED = VERSIONED_JNI_LIB_NAME("Xcomposite",
"1");
-+
-+static Bool checkXCompositeFunctions(void) {
-+ return (compositeQueryExtension != NULL &&
-+ compositeQueryVersion != NULL &&
-+ compositeGetOverlayWindow != NULL);
-+}
-+
-+static void initXCompositeFunctions(void) {
-+
-+ if (xCompositeHandle == NULL) {
-+ xCompositeHandle = dlopen(XCOMPOSITE, RTLD_LAZY | RTLD_GLOBAL);
-+ if (xCompositeHandle == NULL) {
-+ xCompositeHandle = dlopen(XCOMPOSITE_VERSIONED, RTLD_LAZY | RTLD_GLOBAL);
-+ }
-+ }
-+ //*(void **)(&asyncGetCallTraceFunction)
-+ if (xCompositeHandle != NULL) {
-+ *(void **)(&compositeQueryExtension) = dlsym(xCompositeHandle,
"XCompositeQueryExtension");
-+ *(void **)(&compositeQueryVersion) = dlsym(xCompositeHandle,
"XCompositeQueryVersion");
-+ *(void **)(&compositeGetOverlayWindow) = dlsym(xCompositeHandle,
"XCompositeGetOverlayWindow");
-+ }
-+
-+ if (xCompositeHandle && !checkXCompositeFunctions()) {
-+ dlclose(xCompositeHandle);
-+ }
-+}
-+
- static int32_t isXTestAvailable() {
- int32_t major_opcode, first_event, first_error;
- int32_t event_basep, error_basep, majorp, minorp;
-@@ -88,6 +126,35 @@
- return isXTestAvailable;
- }
-
-+static Bool hasXCompositeOverlayExtension(Display *display) {
-+
-+ int xoverlay = False;
-+ int eventBase, errorBase;
-+ if (checkXCompositeFunctions() &&
-+ compositeQueryExtension(display, &eventBase, &errorBase))
-+ {
-+ int major = 0;
-+ int minor = 0;
-+
-+ compositeQueryVersion(display, &major, &minor);
-+ if (major > 0 || minor >= 3) {
-+ xoverlay = True;
-+ }
-+ }
-+
-+ return xoverlay;
-+}
-+
-+static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
-+
-+ char NET_WM_CM_Sn[25];
-+ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
-+
-+ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
-+ Window owner = XGetSelectionOwner(display, managerSelection);
-+
-+ return owner != 0;
-+}
-
- static XImage *getWindowImage(Display * display, Window window,
- int32_t x, int32_t y,
-@@ -232,6 +299,12 @@
- DASSERT(adata != NULL);
-
- rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
-+ if (hasXCompositeOverlayExtension(awt_display) &&
-+ isXCompositeDisplay(awt_display, adata->awt_visInfo.screen))
-+ {
-+ rootWindow = compositeGetOverlayWindow(awt_display, rootWindow);
-+ }
-+
- image = getWindowImage(awt_display, rootWindow, x, y, width, height);
-
- /* Array to use to crunch around the pixel values */
-@@ -412,3 +485,8 @@
-
- AWT_UNLOCK();
- }
-+
-+JNIEXPORT void JNICALL
-+Java_sun_awt_X11_XRobotPeer_loadNativeLibraries (JNIEnv *env, jclass cls) {
-+ initXCompositeFunctions();
-+}
-
diff --git a/jdk8160748-aarch64_ideal_reg.patch b/jdk8160748-aarch64_ideal_reg.patch
new file mode 100644
index 0000000..b3e6ea6
--- /dev/null
+++ b/jdk8160748-aarch64_ideal_reg.patch
@@ -0,0 +1,39 @@
+# HG changeset patch
+# User kbarrett
+# Date 1547614745 0
+# Wed Jan 16 04:59:05 2019 +0000
+# Node ID bca8195a3bc70df281a73d9a40032c673971676c
+# Parent 09abae195e9a7e134a1cfd9b375a6f4d95091de7
+8160748: [AArch64] Inconsistent types for ideal_reg
+Summary: Made ideal_reg consistently uint.
+Reviewed-by: kvn, iveresov
+
+diff --git openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad
openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
+--- openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad
++++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad
+@@ -1,6 +1,6 @@
+ //
++// Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ // Copyright (c) 2013, Red Hat Inc.
+-// Copyright (c) 2003, 2012, Oracle and/or its affiliates.
+ // All rights reserved.
+ // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ //
+@@ -3449,7 +3449,7 @@
+ }
+
+ // Vector ideal reg.
+-const int Matcher::vector_ideal_reg(int len) {
++const uint Matcher::vector_ideal_reg(int len) {
+ switch(len) {
+ case 8: return Op_VecD;
+ case 16: return Op_VecX;
+@@ -3458,7 +3458,7 @@
+ return 0;
+ }
+
+-const int Matcher::vector_shift_count_ideal_reg(int size) {
++const uint Matcher::vector_shift_count_ideal_reg(int size) {
+ return Op_VecX;
+ }
+
diff --git a/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
b/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
deleted file mode 100644
index f8ee50a..0000000
--- a/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1501690960 -3600
-# Wed Aug 02 17:22:40 2017 +0100
-# Node ID 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
-# Parent 4e2adbc3d2b512f6b2bf318d2db60f4d1903f8c7
-8185723, PR3553: Zero: segfaults on Power PC 32-bit
-Reviewed-by: roland
-
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-@@ -38,10 +38,10 @@
- static void atomic_copy64(volatile void *src, volatile void *dst) {
- #if defined(PPC32)
- double tmp;
-- asm volatile ("lfd %0, 0(%1)\n"
-- "stfd %0, 0(%2)\n"
-- : "=f"(tmp)
-- : "b"(src), "b"(dst));
-+ asm volatile ("lfd %0, %2\n"
-+ "stfd %0, %1\n"
-+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
-+ : "Q"(*(volatile double*)src));
- #elif defined(S390) && !defined(_LP64)
- double tmp;
- asm volatile ("ld %0, 0(%1)\n"
diff --git
a/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
b/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
deleted file mode 100644
index cc8020c..0000000
---
a/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-# HG changeset patch
-# User glaubitz
-# Date 1524889690 -3600
-# Sat Apr 28 05:28:10 2018 +0100
-# Node ID be1379a186ba527b32c93a83e04c9600735fe44b
-# Parent 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
-8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
-Reviewed-by: aph
-
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-@@ -36,12 +36,18 @@
-
- // Atomically copy 64 bits of data
- static void atomic_copy64(volatile void *src, volatile void *dst) {
--#if defined(PPC32)
-+#if defined(PPC32) && !defined(__SPE__)
- double tmp;
- asm volatile ("lfd %0, %2\n"
- "stfd %0, %1\n"
- : "=&f"(tmp), "=Q"(*(volatile double*)dst)
- : "Q"(*(volatile double*)src));
-+#elif defined(PPC32) && defined(__SPE__)
-+ long tmp;
-+ asm volatile ("evldd %0, %2\n"
-+ "evstdd %0, %1\n"
-+ : "=&r"(tmp), "=Q"(*(volatile long*)dst)
-+ : "Q"(*(volatile long*)src));
- #elif defined(S390) && !defined(_LP64)
- double tmp;
- asm volatile ("ld %0, 0(%1)\n"
diff --git
a/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
b/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
deleted file mode 100644
index 8564c81..0000000
---
a/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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/jdk8189170-aarch64_primordial_thread.patch
b/jdk8189170-aarch64_primordial_thread.patch
new file mode 100644
index 0000000..876cfdf
--- /dev/null
+++ b/jdk8189170-aarch64_primordial_thread.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# User dbuck
+# Date 1547622839 0
+# Wed Jan 16 07:13:59 2019 +0000
+# Node ID 34c6b4b813caf9b3a6fd1859596a87a24a49c423
+# Parent bca8195a3bc70df281a73d9a40032c673971676c
+8189170: [AArch64] Add option to disable stack overflow checking in primordial thread for
use with JNI_CreateJavaJVM
+Reviewed-by: dcubed
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2018, 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
+@@ -550,8 +550,8 @@
+ // pthread_attr_getstack()
+
+ static void current_stack_region(address * bottom, size_t * size) {
+- if (os::Linux::is_initial_thread()) {
+- // initial thread needs special handling because pthread_getattr_np()
++ if (os::is_primordial_thread()) {
++ // primordial thread needs special handling because pthread_getattr_np()
+ // may return bogus value.
+ *bottom = os::Linux::initial_thread_stack_bottom();
+ *size = os::Linux::initial_thread_stack_size();
diff --git
a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
index fc60cd3..6d7f743 100644
--- a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
+++ b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
@@ -1,14 +1,16 @@
-diff -r eecfc14e66ee src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Jan 22 16:25:24 2018 +0000
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Feb 21 13:52:31 2018 +0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 2018, 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
-@@ -674,6 +674,10 @@
+# HG changeset patch
+# User aph
+# Date 1530894306 -3600
+# Fri Jul 06 17:25:06 2018 +0100
+# Node ID 1485461a0fd1ff977a6acb8f2ed1069aaaf3b07e
+# Parent d7bcbcfde5057ad066ad2fb55a87d19a5827ddee
+8197429: Increased stack guard causes segfaults on x86-32
+Reviewed-by: dholmes
+
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -724,6 +724,10 @@
}
}
@@ -19,17 +21,10 @@ diff -r eecfc14e66ee src/os/linux/vm/os_linux.cpp
bool os::Linux::manually_expand_stack(JavaThread * t, address addr) {
assert(t!=NULL, "just checking");
assert(t->osthread()->expanding_stack(), "expand should be set");
-diff -r eecfc14e66ee src/os/linux/vm/os_linux.hpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.hpp Mon Jan 22 16:25:24 2018 +0000
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed Feb 21 13:52:31 2018 +0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 2018, 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
-@@ -245,6 +245,8 @@
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
openjdk/hotspot/src/os/linux/vm/os_linux.hpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
+@@ -249,6 +249,8 @@
static int safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const
struct timespec *_abstime);
private:
@@ -38,17 +33,10 @@ diff -r eecfc14e66ee src/os/linux/vm/os_linux.hpp
typedef int (*sched_getcpu_func_t)(void);
typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int
bufferlen);
typedef int (*numa_max_node_func_t)(void);
-diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp
---- openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Mon Jan 22 16:25:24 2018
+0000
-+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Wed Feb 21 13:52:31 2018
+0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 2018, 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
-@@ -892,6 +892,25 @@
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+@@ -892,6 +892,27 @@
void os::workaround_expand_exec_shield_cs_limit() {
#if defined(IA32)
size_t page_size = os::vm_page_size();
@@ -65,16 +53,18 @@ diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+ * in Java code.
+ *
+ */
-+ if (os::Linux::is_initial_thread()) {
++ if (os::is_primordial_thread()) {
+ address limit = Linux::initial_thread_stack_bottom();
-+ limit += (StackYellowPages + StackRedPages) * page_size;
++ if (! DisablePrimordialThreadGuardPages) {
++ limit += (StackYellowPages + StackRedPages) * page_size;
++ }
+ os::Linux::expand_stack_to(limit);
+ }
+
/*
* Take the highest VA the OS will give us and exec
*
-@@ -910,6 +929,16 @@
+@@ -910,6 +931,16 @@
char* hint = (char*) (Linux::initial_thread_stack_bottom() -
((StackYellowPages + StackRedPages + 1) * page_size));
char* codebuf = os::attempt_reserve_memory_at(page_size, hint);
@@ -91,3 +81,206 @@ diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp
if ( (codebuf == NULL) || (!os::commit_memory(codebuf, page_size, true)) ) {
return; // No matter, we tried, best effort.
}
+diff --git openjdk.orig/hotspot/test/runtime/StackGap/T.java
openjdk/hotspot/test/runtime/StackGap/T.java
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/test/runtime/StackGap/T.java
+@@ -0,0 +1,33 @@
++/*
++ * Copyright (c) 2018, 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.
++ */
++
++public class T {
++
++ public static void test(int n) {
++ if (n == 0) return;
++ System.out.println (n);
++ test (n - 1);
++
++ }
++
++}
+diff --git openjdk.orig/hotspot/test/runtime/StackGap/exestack-gap.c
openjdk/hotspot/test/runtime/StackGap/exestack-gap.c
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/test/runtime/StackGap/exestack-gap.c
+@@ -0,0 +1,82 @@
++/*
++ * Copyright (c) 2018, 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.
++ */
++
++#include <jni.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++JNIEnv* create_vm(JavaVM **jvm, char *extra_option)
++{
++ JNIEnv* env;
++ JavaVMInitArgs args;
++ JavaVMOption options[4];
++ args.version = JNI_VERSION_1_8;
++ args.nOptions = 3 + (extra_option != NULL);
++ options[0].optionString = "-Xss2048k";
++ char classpath[4096];
++ snprintf(classpath, sizeof classpath,
++ "-Djava.class.path=%s", getenv("CLASSPATH"));
++ options[1].optionString = classpath;
++ options[2].optionString = "-XX:+UnlockExperimentalVMOptions";
++ if (extra_option) {
++ options[3].optionString = extra_option;
++ }
++ args.options = &options[0];
++ args.ignoreUnrecognized = 0;
++ int rv;
++ rv = JNI_CreateJavaVM(jvm, (void**)&env, &args);
++ if (rv < 0) return NULL;
++ return env;
++}
++
++void run(char *extra_arg) {
++ JavaVM *jvm;
++ jclass T_class;
++ jmethodID test_method;
++ JNIEnv *env = create_vm(&jvm, extra_arg);
++ if (env == NULL)
++ exit(1);
++ T_class = (*env)->FindClass(env, "T");
++ if ((*env)->ExceptionCheck(env) == JNI_TRUE) {
++ (*env)->ExceptionDescribe(env);
++ exit(1);
++ }
++ test_method = (*env)->GetStaticMethodID(env, T_class, "test",
"(I)V");
++ if ((*env)->ExceptionCheck(env) == JNI_TRUE) {
++ (*env)->ExceptionDescribe(env);
++ exit(1);
++ }
++ (*env)->CallStaticVoidMethod(env, T_class, test_method, 1000);
++}
++
++
++int main(int argc, char **argv)
++{
++ if (argc > 1) {
++ run(argv[1]);
++ } else {
++ run(NULL);
++ }
++
++ return 0;
++}
+diff --git openjdk.orig/hotspot/test/runtime/StackGap/testme.sh
openjdk/hotspot/test/runtime/StackGap/testme.sh
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/test/runtime/StackGap/testme.sh
+@@ -0,0 +1,73 @@
++# Copyright (c) 2014, 2018, 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.
++#!/bin/sh
++
++#
++# @test testme.sh
++# @bug 8197429
++# @summary Linux kernel stack guard should not cause segfaults on x86-32
++# @compile T.java
++# @run shell testme.sh
++#
++
++if [ "${TESTSRC}" = "" ]
++then
++ TESTSRC=${PWD}
++ echo "TESTSRC not set. Using "${TESTSRC}" as default"
++fi
++echo "TESTSRC=${TESTSRC}"
++## Adding common setup Variables for running shell tests.
++. ${TESTSRC}/../../test_env.sh
++
++if [ "${VM_OS}" != "linux" ]
++then
++ echo "Test only valid for Linux"
++ exit 0
++fi
++
++gcc_cmd=`which gcc`
++if [ "x$gcc_cmd" = "x" ]; then
++ echo "WARNING: gcc not found. Cannot execute test." 2>&1
++ exit 0;
++fi
++
++CFLAGS="-m${VM_BITS}"
++
++LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH
++export LD_LIBRARY_PATH
++
++cp ${TESTSRC}${FS}exestack-gap.c .
++
++# Copy the result of our @compile action:
++cp ${TESTCLASSES}${FS}T.class .
++
++echo "Compilation flag: ${COMP_FLAG}"
++# Note pthread may not be found thus invoke creation will fail to be created.
++# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
++# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below
compilation.
++
++$gcc_cmd -DLINUX ${CFLAGS} -o stack-gap \
++ -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
++ -L${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \
++ -ljvm -lpthread exestack-gap.c
++
++./stack-gap || exit $?
++./stack-gap -XX:+DisablePrimordialThreadGuardPages || exit $?
diff --git
a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
index 900e0c3..533ea2d 100644
--- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
+++ b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
@@ -7,10 +7,35 @@
PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -389,6 +389,21 @@
+ AC_SUBST($2CXXSTD_CXXFLAG)
+ fi
+
++ #
++ # NOTE: check for -mstackrealign needs to be below potential addition of -m32
++ #
++ if test "x$OPENJDK_TARGET_CPU" = xx86 && test
"x$OPENJDK_TARGET_OS" = xmacosx -o \
++ "x$OPENJDK_TARGET_OS" =
xlinux; then
++ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
++ # While waiting for a better solution, the current workaround is to use
-mstackrealign
++ # This is also required on Linux systems which use libraries compiled with SSE
instructions
++ REALIGN_CFLAG="-mstackrealign"
++ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
++ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
++ )
++ AC_SUBST([REALIGN_CFLAG])
++ fi
++
+ if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
+ AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use
--with-extra-cflags])
+ fi
diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in
openjdk///common/autoconf/hotspot-spec.gmk.in
--- openjdk.orig///common/autoconf/hotspot-spec.gmk.in
+++ openjdk///common/autoconf/hotspot-spec.gmk.in
-@@ -110,7 +110,8 @@
+@@ -112,7 +112,8 @@
RC:=@HOTSPOT_RC@
EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
@@ -23,7 +48,7 @@ diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in
openjdk///common/a
diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/spec.gmk.in
--- openjdk.orig///common/autoconf/spec.gmk.in
+++ openjdk///common/autoconf/spec.gmk.in
-@@ -333,6 +333,7 @@
+@@ -334,6 +334,7 @@
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
@@ -31,35 +56,3 @@ diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/
CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
CXX:=@FIXPATH@ @CCACHE@ @CXX@
-diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
---- openjdk.orig///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -796,20 +796,16 @@
- #
- # NOTE: check for -mstackrealign needs to be below potential addition of -m32
- #
-- if test "x$OPENJDK_TARGET_CPU_BITS" = x32 && test
"x$OPENJDK_TARGET_OS" = xmacosx; then
-+ if test "x$OPENJDK_TARGET_CPU" = xx86 && test
"x$OPENJDK_TARGET_OS" = xmacosx -o \
-+ "x$OPENJDK_TARGET_OS" =
xlinux; then
- # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
-- # While waiting for a better solution, the current workaround is to use
-mstackrealign.
-- CFLAGS="$CFLAGS -mstackrealign"
-- AC_MSG_CHECKING([if 32-bit compiler supports -mstackrealign])
-- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])],
-- [
-- AC_MSG_RESULT([yes])
-- ],
-- [
-- AC_MSG_RESULT([no])
-- AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try
to put another compiler in the path.])
-- ]
-+ # While waiting for a better solution, the current workaround is to use
-mstackrealign
-+ # This is also required on Linux systems which use libraries compiled with SSE
instructions
-+ REALIGN_CFLAG="-mstackrealign"
-+ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
-+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
- )
-+ AC_SUBST([REALIGN_CFLAG])
- fi
-
- C_FLAG_DEPS="-MMD -MF"
diff --git
a/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
index e287590..7ac077b 100644
---
a/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
+++
b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
@@ -6,11 +6,11 @@
# Parent 00ccc73498628a51a45301322e64ce2ad06e49be
PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
-diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
---- openjdk.orig///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -794,6 +794,8 @@
- TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -401,6 +401,8 @@
+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
)
+ CFLAGS_JDK="${CFLAGS_JDK} ${REALIGN_CFLAG}"
diff --git a/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
b/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
deleted file mode 100644
index d42d05b..0000000
--- a/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-
-# HG changeset patch
-# User sgehwolf
-# Date 1525428026 -3600
-# Node ID 7129b977c4af021b1c9bbd7bbd334677213940d4
-# Parent 888144400d978e40a004dd8b908025a31135c092
-8201495: [Zero] Reduce limits of max heap size for boot JDK on s390
-Reviewed-by: andrew
-
-diff -r 888144400d97 -r 7129b977c4af common/autoconf/boot-jdk.m4
---- openjdk.orig/common/autoconf/boot-jdk.m4 Thu Apr 19 03:58:58 2018 -0700
-+++ openjdk/common/autoconf/boot-jdk.m4 Fri May 04 11:00:26 2018 +0100
-@@ -334,7 +334,7 @@
- # Maximum amount of heap memory.
- # Maximum stack size.
- if test "x$BOOT_JDK_BITS" = x32; then
-- JVM_MAX_HEAP=1100M
-+ JVM_MAX_HEAP=768M
- STACK_SIZE=768
- else
- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git
a/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
b/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
deleted file mode 100644
index 132c225..0000000
--- a/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-# HG changeset patch
-# User mbalao
-# Date 1525317412 -3600
-# Thu May 03 04:16:52 2018 +0100
-# Node ID de79964656fc652f2085dac4fe99bcc128b5a3b1
-# Parent ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
-8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
-Summary: The inline assembler for the S390 (S390 and not _LP64) has src and dst reversed
thereby corrupting data
-Reviewed-by: shade
-
-diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
-@@ -1,6 +1,6 @@
- /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
-- * Copyright 2007, 2008, 2010 Red Hat, Inc.
-+ * Copyright 2007, 2008, 2010, 2018, 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
-@@ -50,10 +50,10 @@
- : "Q"(*(volatile long*)src));
- #elif defined(S390) && !defined(_LP64)
- double tmp;
-- asm volatile ("ld %0, 0(%1)\n"
-- "std %0, 0(%2)\n"
-- : "=r"(tmp)
-- : "a"(src), "a"(dst));
-+ asm volatile ("ld %0, %2\n"
-+ "std %0, %1\n"
-+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
-+ : "Q"(*(volatile double*)src));
- #elif defined(__ARM_ARCH_7A__)
- jlong tmp;
- asm volatile ("ldrexd %0, [%1]\n"
diff --git
a/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
b/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
deleted file mode 100644
index 031a60c..0000000
---
a/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-# HG changeset patch
-# User igerasim
-# Date 1528992969 25200
-# Thu Jun 14 09:16:09 2018 -0700
-# Node ID d9b0b4bd2526818afa73b60da77403245554caa8
-# Parent 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6
-8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
-Summary: Ensure session is properly released in P11Signature class
-Reviewed-by: valeriep
-Contributed-by: Martin Balao <mbalao(a)redhat.com>
-
-diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
-@@ -309,47 +309,51 @@
- session = token.killSession(session);
- return;
- }
-- // "cancel" operation by finishing it
-- // XXX make sure all this always works correctly
-- if (mode == M_SIGN) {
-- try {
-- if (type == T_UPDATE) {
-- token.p11.C_SignFinal(session.id(), 0);
-- } else {
-- byte[] digest;
-- if (type == T_DIGEST) {
-- digest = md.digest();
-- } else { // T_RAW
-- digest = buffer;
-+ try {
-+ // "cancel" operation by finishing it
-+ // XXX make sure all this always works correctly
-+ if (mode == M_SIGN) {
-+ try {
-+ if (type == T_UPDATE) {
-+ token.p11.C_SignFinal(session.id(), 0);
-+ } else {
-+ byte[] digest;
-+ if (type == T_DIGEST) {
-+ digest = md.digest();
-+ } else { // T_RAW
-+ digest = buffer;
-+ }
-+ token.p11.C_Sign(session.id(), digest);
- }
-- token.p11.C_Sign(session.id(), digest);
-+ } catch (PKCS11Exception e) {
-+ throw new ProviderException("cancel failed", e);
- }
-- } catch (PKCS11Exception e) {
-- throw new ProviderException("cancel failed", e);
-+ } else { // M_VERIFY
-+ try {
-+ byte[] signature;
-+ if (keyAlgorithm.equals("DSA")) {
-+ signature = new byte[40];
-+ } else {
-+ signature = new byte[(p11Key.length() + 7) >> 3];
-+ }
-+ if (type == T_UPDATE) {
-+ token.p11.C_VerifyFinal(session.id(), signature);
-+ } else {
-+ byte[] digest;
-+ if (type == T_DIGEST) {
-+ digest = md.digest();
-+ } else { // T_RAW
-+ digest = buffer;
-+ }
-+ token.p11.C_Verify(session.id(), digest, signature);
-+ }
-+ } catch (PKCS11Exception e) {
-+ // will fail since the signature is incorrect
-+ // XXX check error code
-+ }
- }
-- } else { // M_VERIFY
-- try {
-- byte[] signature;
-- if (keyAlgorithm.equals("DSA")) {
-- signature = new byte[40];
-- } else {
-- signature = new byte[(p11Key.length() + 7) >> 3];
-- }
-- if (type == T_UPDATE) {
-- token.p11.C_VerifyFinal(session.id(), signature);
-- } else {
-- byte[] digest;
-- if (type == T_DIGEST) {
-- digest = md.digest();
-- } else { // T_RAW
-- digest = buffer;
-- }
-- token.p11.C_Verify(session.id(), digest, signature);
-- }
-- } catch (PKCS11Exception e) {
-- // will fail since the signature is incorrect
-- // XXX check error code
-- }
-+ } finally {
-+ session = token.releaseSession(session);
- }
- }
-
-@@ -368,6 +372,8 @@
- }
- initialized = true;
- } catch (PKCS11Exception e) {
-+ // release session when initialization failed
-+ session = token.releaseSession(session);
- throw new ProviderException("Initialization failed", e);
- }
- if (bytesProcessed != 0) {
-@@ -529,6 +535,8 @@
- }
- bytesProcessed += len;
- } catch (PKCS11Exception e) {
-+ initialized = false;
-+ session = token.releaseSession(session);
- throw new ProviderException(e);
- }
- break;
-@@ -576,6 +584,8 @@
- bytesProcessed += len;
- byteBuffer.position(ofs + len);
- } catch (PKCS11Exception e) {
-+ initialized = false;
-+ session = token.releaseSession(session);
- throw new ProviderException("Update failed", e);
- }
- break;
diff --git a/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
b/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
deleted file mode 100644
index 9b40a7f..0000000
--- a/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1526065930 -3600
-# Fri May 11 20:12:10 2018 +0100
-# Node ID b8fc1e640c4c7f38ca94131279cb67c4d3de6961
-# Parent afb31413c73cbc06420fdb447aa90a7a38258904
-PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-
-diff --git openjdk.orig/hotspot/make/aix/makefiles/jsig.make
openjdk/hotspot/make/aix/makefiles/jsig.make
---- openjdk.orig/hotspot/make/aix/makefiles/jsig.make
-+++ openjdk/hotspot/make/aix/makefiles/jsig.make
-@@ -45,7 +45,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- LFLAGS_JSIG += $(BIN_UTILS)
-
-diff --git openjdk.orig/hotspot/make/aix/makefiles/saproc.make
openjdk/hotspot/make/aix/makefiles/saproc.make
---- openjdk.orig/hotspot/make/aix/makefiles/saproc.make
-+++ openjdk/hotspot/make/aix/makefiles/saproc.make
-@@ -66,7 +66,7 @@
- endif
-
-
--SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
- $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-diff --git openjdk.orig/hotspot/make/aix/makefiles/vm.make
openjdk/hotspot/make/aix/makefiles/vm.make
---- openjdk.orig/hotspot/make/aix/makefiles/vm.make
-+++ openjdk/hotspot/make/aix/makefiles/vm.make
-@@ -117,7 +117,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
openjdk/hotspot/make/bsd/makefiles/jsig.make
---- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
-+++ openjdk/hotspot/make/bsd/makefiles/jsig.make
-@@ -52,7 +52,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- # DEBUG_BINARIES overrides everything, use full -g debug information
- ifeq ($(DEBUG_BINARIES), true)
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
openjdk/hotspot/make/bsd/makefiles/saproc.make
---- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
-+++ openjdk/hotspot/make/bsd/makefiles/saproc.make
-@@ -114,7 +114,7 @@
- # bring in minimum version argument or we'll fail on OSX 10.10
- SA_LFLAGS = $(LFLAGS)
- endif
--SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS += $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
- -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]"
"[:lower:]")
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/vm.make
openjdk/hotspot/make/bsd/makefiles/vm.make
---- openjdk.orig/hotspot/make/bsd/makefiles/vm.make
-+++ openjdk/hotspot/make/bsd/makefiles/vm.make
-@@ -119,7 +119,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
-diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
---- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
-+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -44,7 +44,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
$(LDFLAGS_NO_EXEC_STACK)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(LDFLAGS_NO_EXEC_STACK)
$(EXTRA_LDFLAGS)
-
- # DEBUG_BINARIES overrides everything, use full -g debug information
- ifeq ($(DEBUG_BINARIES), true)
-diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
---- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
-+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -73,7 +73,7 @@
- else
- ALT_SAINCDIR=
- endif
--SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- SAARCH ?= $(BUILDARCH)
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
---- openjdk.orig/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -122,7 +122,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
diff --git
a/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
b/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
deleted file mode 100644
index 0f38126..0000000
---
a/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1531146945 -3600
-# Mon Jul 09 15:35:45 2018 +0100
-# Node ID 95b72537801cc9946c27ad27f07e3f0790a21b08
-# Parent f6341f4635dacb56678264d29a88cd052b74036b
-8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
-Reviewed-by: dholmes
-
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
-@@ -34,12 +34,12 @@
-
- // Implementation of StubCodeDesc
-
--StubCodeDesc* StubCodeDesc::_list = NULL;
--int StubCodeDesc::_count = 0;
-+StubCodeDesc* volatile StubCodeDesc::_list = NULL;
-+int StubCodeDesc::_count = 0;
-
-
- StubCodeDesc* StubCodeDesc::desc_for(address pc) {
-- StubCodeDesc* p = _list;
-+ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
- while (p != NULL && !p->contains(pc)) p = p->_next;
- // p == NULL || p->contains(pc)
- return p;
-@@ -47,7 +47,7 @@
-
-
- StubCodeDesc* StubCodeDesc::desc_for_index(int index) {
-- StubCodeDesc* p = _list;
-+ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
- while (p != NULL && p->index() != index) p = p->_next;
- return p;
- }
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
-@@ -38,7 +38,7 @@
-
- class StubCodeDesc: public CHeapObj<mtCode> {
- protected:
-- static StubCodeDesc* _list; // the list of all descriptors
-+ static StubCodeDesc* volatile _list; // the list of all descriptors
- static int _count; // length of list
-
- StubCodeDesc* _next; // the next element in the linked list
-@@ -69,13 +69,13 @@
-
- StubCodeDesc(const char* group, const char* name, address begin) {
- assert(name != NULL, "no name specified");
-- _next = _list;
-+ _next = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
- _group = group;
- _name = name;
- _index = ++_count; // (never zero)
- _begin = begin;
- _end = NULL;
-- _list = this;
-+ OrderAccess::release_store_ptr(&_list, this);
- };
-
- const char* group() const { return _group; }
diff --git
a/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
b/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
deleted file mode 100644
index adbf1f0..0000000
---
a/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1530808022 -7200
-# Thu Jul 05 18:27:02 2018 +0200
-# Node ID 5ba59d58d976db456c4455640111e8107b8d80e8
-# Parent ad057f2e3211cd18bc56550d8a2c400d92ec35b1
-8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
-Summary: Only add .gnu_debuglink sections when there is some stripping done.
-Reviewed-by: erikj, dholmes
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
---- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
-+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -57,14 +57,15 @@
- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
- ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
-+ ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
-- ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(STRIP) $@
- else
- ifeq ($(STRIP_POLICY),min_strip)
-+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
- $(QUIETLY) $(STRIP) -g $@
-+ endif
- # implied else here is no stripping at all
-- endif
- endif
- ifeq ($(ZIP_DEBUGINFO_FILES),1)
- $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO)
-diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
---- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
-+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -100,14 +100,15 @@
- -lthread_db
- ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
-+ ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
-- ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(STRIP) $@
- else
- ifeq ($(STRIP_POLICY),min_strip)
-+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
- $(QUIETLY) $(STRIP) -g $@
-+ endif
- # implied else here is no stripping at all
-- endif
- endif
- ifeq ($(ZIP_DEBUGINFO_FILES),1)
- $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
-diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
---- openjdk.orig/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -358,14 +358,15 @@
-
- ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
-+ ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
-- ifeq ($(STRIP_POLICY),all_strip)
- $(QUIETLY) $(STRIP) $@
- else
- ifeq ($(STRIP_POLICY),min_strip)
-+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
- $(QUIETLY) $(STRIP) -g $@
-+ endif
- # implied else here is no stripping at all
-- endif
- endif
- ifeq ($(ZIP_DEBUGINFO_FILES),1)
- $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO)
diff --git a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
index 7f57c0a..e4a007c 100644
--- a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
+++ b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
@@ -1,34 +1,29 @@
---- openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.783695320 +0200
-+++ openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.608695635 +0200
-@@ -814,6 +814,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
-
- C_FLAG_DEPS="-MMD -MF"
- CXX_FLAG_DEPS="-MMD -MF"
-+ # By default don't set any specific assembler debug
-+ # info flags for toolchains unless we know they work.
-+ # See JDK-8207057.
-+ ASFLAGS_DEBUG_SYMBOLS=""
-
- case $COMPILER_TYPE in
- CC )
-@@ -842,6 +846,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
- CFLAGS_DEBUG_SYMBOLS="-g1"
- CXXFLAGS_DEBUG_SYMBOLS="-g1"
- fi
-+ ASFLAGS_DEBUG_SYMBOLS="-g"
- ;;
- ossc )
- #
-@@ -969,6 +974,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
- AC_SUBST(CXX_O_FLAG_NONE)
- AC_SUBST(C_FLAG_DEPS)
- AC_SUBST(CXX_FLAG_DEPS)
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -282,9 +282,11 @@
+ if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test
"x$DEBUG_LEVEL" = "xfastdebug"; then
+ CFLAGS_DEBUG_SYMBOLS="-g1"
+ CXXFLAGS_DEBUG_SYMBOLS="-g1"
++ ASFLAGS_DEBUG_SYMBOLS="-g1"
+ else
+ CFLAGS_DEBUG_SYMBOLS="-g"
+ CXXFLAGS_DEBUG_SYMBOLS="-g"
++ ASFLAGS_DEBUG_SYMBOLS="-g"
+ fi
+ elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ CFLAGS_DEBUG_SYMBOLS="-g -xs"
+@@ -295,6 +297,7 @@
+ fi
+ AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
+ AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
+ AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
- ])
- AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
---- openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.324690758 +0200
-+++ openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.169691036 +0200
+ # Optimization levels
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/spec.gmk.in
+--- openjdk.orig///common/autoconf/spec.gmk.in
++++ openjdk///common/autoconf/spec.gmk.in
@@ -414,6 +414,7 @@
# Options for generating debug symbols
ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
@@ -37,3 +32,21 @@
CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
STRIP_POLICY:=@STRIP_POLICY@
+diff --git openjdk.orig///make/common/NativeCompilation.gmk
openjdk///make/common/NativeCompilation.gmk
+--- openjdk.orig///make/common/NativeCompilation.gmk
++++ openjdk///make/common/NativeCompilation.gmk
+@@ -351,12 +351,14 @@
+ # Always add debug symbols
+ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
+ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
++ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
+ else
+ # Programs don't get the debug symbols added in the old build. It's not
clear if
+ # this is intentional.
+ ifeq ($$($1_PROGRAM),)
+ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
+ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
++ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
+ endif
+ endif
+ endif
diff --git a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
index 5f30e59..be2650b 100644
--- a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
+++ b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
@@ -1,7 +1,16 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1537541916 -7200
+# Fri Sep 21 16:58:36 2018 +0200
+# Node ID 4010c90156d1bfeaf988dbfeb01520f2e3a66ea8
+# Parent 54afe70c50b6a6685763d00883e5173c0ba3a19d
+8210761: libjsig is being compiled without optimization
+Reviewed-by: erikj, ihse
+
diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -51,10 +51,15 @@ ifeq ($(DEBUG_BINARIES), true)
+@@ -51,10 +51,15 @@
JSIG_DEBUG_CFLAGS = -g
endif
@@ -11,10 +20,10 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/m
+endif
+
$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
- @echo Making signal interposition lib...
- $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+ @echo Making signal interposition lib...
+ $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
+ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS)
$(EXTRA_CFLAGS) -o $@ $< -ldl
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
- ifeq ($(STRIP_POLICY),all_strip)
+ ifneq ($(STRIP_POLICY),no_strip)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
diff --git a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
index 48211dc..1c322fa 100644
--- a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
+++ b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
@@ -15,9 +15,9 @@ diff --git
openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openj
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -54,6 +54,12 @@
- "std %0, 0(%2)\n"
- : "=r"(tmp)
- : "a"(src), "a"(dst));
+ "std %0, %1\n"
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
+ : "Q"(*(volatile double*)src));
+#elif defined(__ARM_ARCH_7A__)
+ jlong tmp;
+ asm volatile ("ldrexd %0, [%1]\n"
diff --git
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
index b9ae9ab..2700f3c 100644
---
a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
+++
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
@@ -1,6 +1,6 @@
-diff -r cf43a852f486 src/share/vm/asm/codeBuffer.cpp
---- openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 03:43:29 2016 +0000
-+++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 05:30:26 2016 +0000
+diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp
openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
+--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp
++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
@@ -977,7 +977,7 @@
for (int n = (int) CodeBuffer::SECT_FIRST; n < (int) CodeBuffer::SECT_LIMIT; n++)
{
CodeSection* sect = code_section(n);
@@ -10,10 +10,10 @@ diff -r cf43a852f486 src/share/vm/asm/codeBuffer.cpp
n, sect->limit() - sect->start(), sect->limit() -
sect->end());
}
xtty->print_cr("</blob>");
-diff -r cf43a852f486 src/share/vm/code/codeCache.cpp
---- openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 03:43:29 2016 +0000
-+++ openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 05:30:26 2016 +0000
-@@ -191,7 +191,7 @@
+diff --git openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp
openjdk/hotspot/src/share/vm/code/codeCache.cpp
+--- openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp
++++ openjdk/hotspot/src/share/vm/code/codeCache.cpp
+@@ -192,7 +192,7 @@
}
if (PrintCodeCacheExtension) {
ResourceMark rm;
@@ -22,21 +22,21 @@ diff -r cf43a852f486 src/share/vm/code/codeCache.cpp
(intptr_t)_heap->low_boundary(), (intptr_t)_heap->high(),
(address)_heap->high() - (address)_heap->low_boundary());
}
-diff -r cf43a852f486 src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13
03:43:29 2016 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13
05:30:26 2016 +0000
-@@ -556,7 +556,7 @@
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+@@ -598,7 +598,7 @@
" [Table]\n"
- " [Memory Usage: "G1_STRDEDUP_BYTES_FORMAT_NS"]\n"
- " [Size: "SIZE_FORMAT", Min: "SIZE_FORMAT", Max:
"SIZE_FORMAT"]\n"
-- " [Entries: "UINTX_FORMAT", Load:
"G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " UINTX_FORMAT ", Added:
"UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n"
-+ " [Entries: "UINTX_FORMAT", Load:
"G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " SIZE_FORMAT ", Added:
"UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n"
- " [Resize Count: "UINTX_FORMAT", Shrink Threshold:
"UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS"), Grow Threshold:
"UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS")]\n"
- " [Rehash Count: "UINTX_FORMAT", Rehash Threshold:
"UINTX_FORMAT", Hash Seed: 0x%x]\n"
- " [Age Threshold: "UINTX_FORMAT"]",
-diff -r cf43a852f486 src/share/vm/memory/blockOffsetTable.cpp
---- openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 03:43:29 2016
+0000
-+++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 05:30:26 2016
+0000
+ " [Memory Usage: " G1_STRDEDUP_BYTES_FORMAT_NS "]\n"
+ " [Size: " SIZE_FORMAT ", Min: " SIZE_FORMAT ", Max:
" SIZE_FORMAT "]\n"
+- " [Entries: " UINTX_FORMAT ", Load: "
G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " UINTX_FORMAT ", Added: "
UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
++ " [Entries: " UINTX_FORMAT ", Load: "
G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " SIZE_FORMAT ", Added: "
UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
+ " [Resize Count: " UINTX_FORMAT ", Shrink Threshold: "
UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS "), Grow Threshold: "
UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS ")]\n"
+ " [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: "
UINTX_FORMAT ", Hash Seed: 0x%x]\n"
+ " [Age Threshold: " UINTX_FORMAT "]",
+diff --git openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp
openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp
++++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp
@@ -57,7 +57,7 @@
gclog_or_tty->print_cr("BlockOffsetSharedArray::BlockOffsetSharedArray:
");
gclog_or_tty->print_cr(" "
@@ -46,10 +46,23 @@ diff -r cf43a852f486 src/share/vm/memory/blockOffsetTable.cpp
" rs end(): " INTPTR_FORMAT,
p2i(rs.base()), rs.size(), p2i(rs.base() + rs.size()));
gclog_or_tty->print_cr(" "
-diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 03:43:29 2016 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 05:30:26 2016 +0000
-@@ -1285,14 +1285,14 @@
+diff --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+@@ -1055,7 +1055,8 @@
+ size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size);
+ assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu",
msp.initial_gen0_size(), expected));
+ assert(FLAG_IS_ERGO(NewSize) && NewSize == expected,
+- err_msg("NewSize should have been set ergonomically to %zu, but was
%zu", expected, NewSize));
++ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT
", but was " UINTX_FORMAT,
++ expected, NewSize));
+ }
+
+ private:
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1291,14 +1291,14 @@
}
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
@@ -67,7 +80,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
" max_heap: " SIZE_FORMAT,
min_heap_size(), InitialHeapSize, max_heap);
}
-@@ -1308,7 +1308,7 @@
+@@ -1314,7 +1314,7 @@
FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
@@ -76,7 +89,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
}
}
// Unless explicitly requested otherwise, size old gen
-@@ -1318,7 +1318,7 @@
+@@ -1324,7 +1324,7 @@
FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap -
NewSize));
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
@@ -85,7 +98,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
}
}
}
-@@ -1834,7 +1834,7 @@
+@@ -2043,7 +2043,7 @@
if (PrintGCDetails && Verbose) {
// Cannot use gclog_or_tty yet.
@@ -94,7 +107,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
}
FLAG_SET_ERGO(uintx, InitialHeapSize, (uintx)reasonable_initial);
}
-@@ -1844,7 +1844,7 @@
+@@ -2053,7 +2053,7 @@
set_min_heap_size(MIN2((uintx)reasonable_minimum, InitialHeapSize));
if (PrintGCDetails && Verbose) {
// Cannot use gclog_or_tty yet.
@@ -103,10 +116,10 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
}
}
}
-diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 03:43:29 2016
+0000
-+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 05:30:26 2016
+0000
-@@ -1382,12 +1382,21 @@
+diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+@@ -1389,12 +1389,21 @@
#define INTPTR_FORMAT_W(width) "%" #width PRIxPTR
@@ -128,16 +141,3 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
#define INTX_FORMAT "%" PRIdPTR
#define UINTX_FORMAT "%" PRIuPTR
-diff -r 388e9d0905e6 src/share/vm/memory/collectorPolicy.cpp
---- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Mon Apr 11 11:33:18 2016
+0000
-+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Apr 12 04:12:50 2016
+0100
-@@ -1056,7 +1056,8 @@
- size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size);
- assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu",
msp.initial_gen0_size(), expected));
- assert(FLAG_IS_ERGO(NewSize) && NewSize == expected,
-- err_msg("NewSize should have been set ergonomically to %zu, but was
%zu", expected, NewSize));
-+ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT
", but was " UINTX_FORMAT,
-+ expected, NewSize));
- }
-
- private:
diff --git
a/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
b/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
index e29bdb9..d8f3a5a 100644
---
a/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
+++
b/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
@@ -1,7 +1,7 @@
-# ssbd2.patch
---- ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp~ 2018-05-02 13:02:51.924489199 -0400
-+++ ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2018-05-02 13:04:57.274216581 -0400
-@@ -102,6 +102,8 @@
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -103,6 +103,8 @@
# include <inttypes.h>
# include <sys/ioctl.h>
@@ -10,7 +10,7 @@
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
#ifndef _GNU_SOURCE
-@@ -4892,6 +4894,31 @@
+@@ -4997,6 +4999,31 @@
}
}
@@ -39,6 +39,6 @@
+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
+}
+
- // this is called _before_ the most of global arguments have been parsed
+ // this is called _before_ most of the global arguments have been parsed
void os::init(void) {
char dummy; /* used to get a guess on initial stack address */
diff --git a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
index 53fa41c..e319492 100644
--- a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
+++ b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
@@ -1,7 +1,7 @@
-diff -r 1fe56343ecc8 make/lib/Awt2dLibraries.gmk
---- openjdk/jdk/make/lib/Awt2dLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
-+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk Thu Jan 14 00:47:01 2016 +0000
-@@ -904,6 +904,12 @@
+diff --git openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
openjdk/jdk/make/lib/Awt2dLibraries.gmk
+--- openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk
+@@ -891,6 +891,12 @@
BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
endif
@@ -11,6 +11,6 @@ diff -r 1fe56343ecc8 make/lib/Awt2dLibraries.gmk
+ BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
+endif
+
- $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- LIBRARY := fontmanager, \
- OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+ # LDFLAGS clarification:
+ # Filter relevant linker flags disallowing unresolved symbols as we cannot
+ # build-time decide to which library to link against (libawt_headless or
diff --git a/sources b/sources
index 34cf8d8..de3a0a2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz) =
d2f3e618bf8fa8d8991f2db32b665d52170642fd375926f84b0cc40a7896278847f6374fcb6d095f681b72a170ac7189ec3501907c5ca0d3d454a09397eedcfa
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz) =
5fde4f3b2f8b903d650290f0745e8f4a8036d0dcec3642d66b0a5851eeaa6be40e2fd613916ecf27b7135b8038cab1d29968973678fd33d894fca7dd5ebb03f2
commit 77e1240af4868c1c91ff32b021be17a29da1031d
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Tue Jan 29 11:36:44 2019 +0000
Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0c399da..61708b0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -971,7 +971,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 0%{?dist}
+Release: 1%{?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
@@ -1245,6 +1245,10 @@ Patch7: jdk8044235-src_zip_should_include_all_sources.patch
Patch583: jdk8172850-rh1640127-01-register_allocator_crash.patch
# JDK-8209639, RH1640127: assert failure in coalesce.cpp: attempted to spill a
non-spillable item
Patch584: jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
+# JDK-8131048, PR3574, RH1498936: ppc implement CRC32 intrinsic
+Patch586: jdk8131048-pr3574-rh1498936-ppc_crc32.patch
+# JDK-8164920, PR3574, RH1498936: ppc: enhancement of CRC32 intrinsic
+Patch587: jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
#############################################
#
@@ -1685,6 +1689,8 @@ sh %{SOURCE12}
%patch583
%patch584
%patch585
+%patch586
+%patch587
# RPM-only fixes
%patch525
@@ -2334,6 +2340,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jan 14 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-1
+- Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64.
+
* Thu Jan 24 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
- Introduce sa_arches for architectures with sa-jdi.jar and include aarch64
diff --git a/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
b/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
new file mode 100644
index 0000000..d7b94e6
--- /dev/null
+++ b/jdk8131048-pr3574-rh1498936-ppc_crc32.patch
@@ -0,0 +1,1417 @@
+# HG changeset patch
+# User gromero
+# Date 1537823918 14400
+# Mon Sep 24 17:18:38 2018 -0400
+# Node ID 567e95df42f866b890dc3f0670e086d266915112
+# Parent 678bb67e02aedd54e32819a9011962326164274e
+8131048, PR3574, RH1498936: ppc implement CRC32 intrinsic
+Reviewed-by: goetz
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/interpreterGenerator_ppc.hpp
+@@ -33,5 +33,7 @@
+ address generate_abstract_entry(void);
+ address generate_accessor_entry(void);
+ address generate_Reference_get_entry(void);
++ address generate_CRC32_update_entry();
++ address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
+
+ #endif // CPU_PPC_VM_INTERPRETERGENERATOR_PPC_HPP
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
+@@ -49,6 +49,7 @@
+ #else
+ #define BLOCK_COMMENT(str) block_comment(str)
+ #endif
++#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
+
+ #ifdef ASSERT
+ // On RISC, there's no benefit to verifying instruction boundaries.
+@@ -3022,6 +3023,418 @@
+ bind(Ldone_false);
+ }
+
++// Helpers for Intrinsic Emitters
++//
++// Revert the byte order of a 32bit value in a register
++// src: 0x44556677
++// dst: 0x77665544
++// Three steps to obtain the result:
++// 1) Rotate src (as doubleword) left 5 bytes. That puts the leftmost byte of the src
word
++// into the rightmost byte position. Afterwards, everything left of the rightmost
byte is cleared.
++// This value initializes dst.
++// 2) Rotate src (as word) left 3 bytes. That puts the rightmost byte of the src word
into the leftmost
++// byte position. Furthermore, byte 5 is rotated into byte 6 position where it is
supposed to go.
++// This value is mask inserted into dst with a [0..23] mask of 1s.
++// 3) Rotate src (as word) left 1 byte. That puts byte 6 into byte 5 position.
++// This value is mask inserted into dst with a [8..15] mask of 1s.
++void MacroAssembler::load_reverse_32(Register dst, Register src) {
++ assert_different_registers(dst, src);
++
++ rldicl(dst, src, (4+1)*8, 56); // Rotate byte 4 into position 7 (rightmost),
clear all to the left.
++ rlwimi(dst, src, 3*8, 0, 23); // Insert byte 5 into position 6, 7 into 4, leave
pos 7 alone.
++ rlwimi(dst, src, 1*8, 8, 15); // Insert byte 6 into position 5, leave the rest
alone.
++}
++
++// Calculate the column addresses of the crc32 lookup table into distinct registers.
++// This loop-invariant calculation is moved out of the loop body, reducing the loop
++// body size from 20 to 16 instructions.
++// Returns the offset that was used to calculate the address of column tc3.
++// Due to register shortage, setting tc3 may overwrite table. With the return offset
++// at hand, the original table address can be easily reconstructed.
++int MacroAssembler::crc32_table_columns(Register table, Register tc0, Register tc1,
Register tc2, Register tc3) {
++
++#ifdef VM_LITTLE_ENDIAN
++ // This is what we implement (the DOLIT4 part):
++ // ========================================================================= */
++ // #define DOLIT4 c ^= *buf4++; \
++ // c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^
\
++ // crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
++ // #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
++ // ========================================================================= */
++ const int ix0 = 3*(4*CRC32_COLUMN_SIZE);
++ const int ix1 = 2*(4*CRC32_COLUMN_SIZE);
++ const int ix2 = 1*(4*CRC32_COLUMN_SIZE);
++ const int ix3 = 0*(4*CRC32_COLUMN_SIZE);
++#else
++ // This is what we implement (the DOBIG4 part):
++ // =========================================================================
++ // #define DOBIG4 c ^= *++buf4; \
++ // c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^
\
++ // crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
++ // #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
++ // =========================================================================
++ const int ix0 = 4*(4*CRC32_COLUMN_SIZE);
++ const int ix1 = 5*(4*CRC32_COLUMN_SIZE);
++ const int ix2 = 6*(4*CRC32_COLUMN_SIZE);
++ const int ix3 = 7*(4*CRC32_COLUMN_SIZE);
++#endif
++ assert_different_registers(table, tc0, tc1, tc2);
++ assert(table == tc3, "must be!");
++
++ if (ix0 != 0) addi(tc0, table, ix0);
++ if (ix1 != 0) addi(tc1, table, ix1);
++ if (ix2 != 0) addi(tc2, table, ix2);
++ if (ix3 != 0) addi(tc3, table, ix3);
++
++ return ix3;
++}
++
++/**
++ * uint32_t crc;
++ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
++ */
++void MacroAssembler::fold_byte_crc32(Register crc, Register val, Register table,
Register tmp) {
++ assert_different_registers(crc, table, tmp);
++ assert_different_registers(val, table);
++
++ if (crc == val) { // Must rotate first to use the unmodified value.
++ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left
by 2, into byte 6..7 of tmp, clear the rest.
++ // As we use a word (4-byte) instruction, we have
to adapt the mask bit positions.
++ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
++ } else {
++ srwi(crc, crc, 8); // Unsigned shift, clear leftmost 8 bits.
++ rlwinm(tmp, val, 2, 24-2, 31-2); // Insert (rightmost) byte 7 of val, shifted left
by 2, into byte 6..7 of tmp, clear the rest.
++ }
++ lwzx(tmp, table, tmp);
++ xorr(crc, crc, tmp);
++}
++
++/**
++ * uint32_t crc;
++ * timesXtoThe32[crc & 0xFF] ^ (crc >> 8);
++ */
++void MacroAssembler::fold_8bit_crc32(Register crc, Register table, Register tmp) {
++ fold_byte_crc32(crc, crc, table, tmp);
++}
++
++/**
++ * Emits code to update CRC-32 with a byte value according to constants in table.
++ *
++ * @param [in,out]crc Register containing the crc.
++ * @param [in]val Register containing the byte to fold into the CRC.
++ * @param [in]table Register containing the table of crc constants.
++ *
++ * uint32_t crc;
++ * val = crc_table[(val ^ crc) & 0xFF];
++ * crc = val ^ (crc >> 8);
++ */
++void MacroAssembler::update_byte_crc32(Register crc, Register val, Register table) {
++ BLOCK_COMMENT("update_byte_crc32:");
++ xorr(val, val, crc);
++ fold_byte_crc32(crc, val, table, val);
++}
++
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param table register pointing to CRC table
++ */
++void MacroAssembler::update_byteLoop_crc32(Register crc, Register buf, Register len,
Register table,
++ Register data, bool loopAlignment, bool
invertCRC) {
++ assert_different_registers(crc, buf, len, table, data);
++
++ Label L_mainLoop, L_done;
++ const int mainLoop_stepping = 1;
++ const int mainLoop_alignment = loopAlignment ? 32 : 4; // (InputForNewCode > 4 ?
InputForNewCode : 32) : 4;
++
++ // Process all bytes in a single-byte loop.
++ cmpdi(CCR0, len, 0); // Anything to do?
++ mtctr(len);
++ beq(CCR0, L_done);
++
++ if (invertCRC) {
++ nand(crc, crc, crc); // ~c
++ }
++
++ align(mainLoop_alignment);
++ BIND(L_mainLoop);
++ lbz(data, 0, buf); // Byte from buffer, zero-extended.
++ addi(buf, buf, mainLoop_stepping); // Advance buffer position.
++ update_byte_crc32(crc, data, table);
++ bdnz(L_mainLoop); // Iterate.
++
++ if (invertCRC) {
++ nand(crc, crc, crc); // ~c
++ }
++
++ bind(L_done);
++}
++
++/**
++ * Emits code to update CRC-32 with a 4-byte value according to constants in table
++ * Implementation according to jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.c
++ */
++// A not on the lookup table address(es):
++// The lookup table consists of two sets of four columns each.
++// The columns {0..3} are used for little-endian machines.
++// The columns {4..7} are used for big-endian machines.
++// To save the effort of adding the column offset to the table address each time
++// a table element is looked up, it is possible to pass the pre-calculated
++// column addresses.
++// Uses R9..R12 as work register. Must be saved/restored by caller, if necessary.
++void MacroAssembler::update_1word_crc32(Register crc, Register buf, Register table, int
bufDisp, int bufInc,
++ Register t0, Register t1, Register t2,
Register t3,
++ Register tc0, Register tc1, Register tc2,
Register tc3) {
++ assert_different_registers(crc, t3);
++
++ // XOR crc with next four bytes of buffer.
++ lwz(t3, bufDisp, buf);
++ if (bufInc != 0) {
++ addi(buf, buf, bufInc);
++ }
++ xorr(t3, t3, crc);
++
++ // Chop crc into 4 single-byte pieces, shifted left 2 bits, to form the table
indices.
++ rlwinm(t0, t3, 2, 24-2, 31-2); // ((t1 >> 0) & 0xff) << 2
++ rlwinm(t1, t3, 32+(2- 8), 24-2, 31-2); // ((t1 >> 8) & 0xff) << 2
++ rlwinm(t2, t3, 32+(2-16), 24-2, 31-2); // ((t1 >> 16) & 0xff) << 2
++ rlwinm(t3, t3, 32+(2-24), 24-2, 31-2); // ((t1 >> 24) & 0xff) << 2
++
++ // Use the pre-calculated column addresses.
++ // Load pre-calculated table values.
++ lwzx(t0, tc0, t0);
++ lwzx(t1, tc1, t1);
++ lwzx(t2, tc2, t2);
++ lwzx(t3, tc3, t3);
++
++ // Calculate new crc from table values.
++ xorr(t0, t0, t1);
++ xorr(t2, t2, t3);
++ xorr(crc, t0, t2); // Now crc contains the final checksum value.
++}
++
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param table register pointing to CRC table
++ *
++ * Uses R9..R12 as work register. Must be saved/restored by caller!
++ */
++void MacroAssembler::kernel_crc32_2word(Register crc, Register buf, Register len,
Register table,
++ Register t0, Register t1, Register t2,
Register t3,
++ Register tc0, Register tc1, Register tc2,
Register tc3) {
++ assert_different_registers(crc, buf, len, table);
++
++ Label L_mainLoop, L_tail;
++ Register tmp = t0;
++ Register data = t0;
++ Register tmp2 = t1;
++ const int mainLoop_stepping = 8;
++ const int tailLoop_stepping = 1;
++ const int log_stepping = exact_log2(mainLoop_stepping);
++ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
++ const int complexThreshold = 2*mainLoop_stepping;
++
++ // Don't test for len <= 0 here. This pathological case should not occur
anyway.
++ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
++ // The situation itself is detected and handled correctly by the conditional branches
++ // following aghi(len, -stepping) and aghi(len, +stepping).
++ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
++
++ BLOCK_COMMENT("kernel_crc32_2word {");
++
++ nand(crc, crc, crc); // ~c
++
++ // Check for short (<mainLoop_stepping) buffer.
++ cmpdi(CCR0, len, complexThreshold);
++ blt(CCR0, L_tail);
++
++ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
++ // We leave the code in for reference. Maybe we need alignment when we exploit vector
instructions.
++ {
++ // Align buf addr to mainLoop_stepping boundary.
++ neg(tmp2, buf); // Calculate # preLoop iterations for
alignment.
++ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into tmp2,
anding with mask with 1s from 62..63.
++
++ if (complexThreshold > mainLoop_stepping) {
++ sub(len, len, tmp2); // Remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
++ } else {
++ sub(tmp, len, tmp2); // Remaining bytes for main loop.
++ cmpdi(CCR0, tmp, mainLoop_stepping);
++ blt(CCR0, L_tail); // For less than one mainloop_stepping
left, do only tail processing
++ mr(len, tmp); // remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
++ }
++ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
++ }
++
++ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
++ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
++ mtctr(tmp2);
++
++#ifdef VM_LITTLE_ENDIAN
++ Register crc_rv = crc;
++#else
++ Register crc_rv = tmp; // Load_reverse needs separate
registers to work on.
++ // Occupies tmp, but frees up crc.
++ load_reverse_32(crc_rv, crc); // Revert byte order because we are
dealing with big-endian data.
++ tmp = crc;
++#endif
++
++ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
++
++ align(mainLoop_alignment); // Octoword-aligned loop address. Shows
2% improvement.
++ BIND(L_mainLoop);
++ update_1word_crc32(crc_rv, buf, table, 0, 0, crc_rv, t1, t2, t3, tc0, tc1, tc2,
tc3);
++ update_1word_crc32(crc_rv, buf, table, 4, mainLoop_stepping, crc_rv, t1, t2, t3,
tc0, tc1, tc2, tc3);
++ bdnz(L_mainLoop);
++
++#ifndef VM_LITTLE_ENDIAN
++ load_reverse_32(crc, crc_rv); // Revert byte order because we are
dealing with big-endian data.
++ tmp = crc_rv; // Tmp uses it's original register
again.
++#endif
++
++ // Restore original table address for tailLoop.
++ if (reconstructTableOffset != 0) {
++ addi(table, table, -reconstructTableOffset);
++ }
++
++ // Process last few (<complexThreshold) bytes of buffer.
++ BIND(L_tail);
++ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
++
++ nand(crc, crc, crc); // ~c
++ BLOCK_COMMENT("} kernel_crc32_2word");
++}
++
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param table register pointing to CRC table
++ *
++ * uses R9..R12 as work register. Must be saved/restored by caller!
++ */
++void MacroAssembler::kernel_crc32_1word(Register crc, Register buf, Register len,
Register table,
++ Register t0, Register t1, Register t2,
Register t3,
++ Register tc0, Register tc1, Register tc2,
Register tc3) {
++ assert_different_registers(crc, buf, len, table);
++
++ Label L_mainLoop, L_tail;
++ Register tmp = t0;
++ Register data = t0;
++ Register tmp2 = t1;
++ const int mainLoop_stepping = 4;
++ const int tailLoop_stepping = 1;
++ const int log_stepping = exact_log2(mainLoop_stepping);
++ const int mainLoop_alignment = 32; // InputForNewCode > 4 ? InputForNewCode : 32;
++ const int complexThreshold = 2*mainLoop_stepping;
++
++ // Don't test for len <= 0 here. This pathological case should not occur
anyway.
++ // Optimizing for it by adding a test and a branch seems to be a waste of CPU cycles.
++ // The situation itself is detected and handled correctly by the conditional branches
++ // following aghi(len, -stepping) and aghi(len, +stepping).
++ assert(tailLoop_stepping == 1, "check tailLoop_stepping!");
++
++ BLOCK_COMMENT("kernel_crc32_1word {");
++
++ nand(crc, crc, crc); // ~c
++
++ // Check for short (<mainLoop_stepping) buffer.
++ cmpdi(CCR0, len, complexThreshold);
++ blt(CCR0, L_tail);
++
++ // Pre-mainLoop alignment did show a slight (1%) positive effect on performance.
++ // We leave the code in for reference. Maybe we need alignment when we exploit vector
instructions.
++ {
++ // Align buf addr to mainLoop_stepping boundary.
++ neg(tmp2, buf); // Calculate # preLoop iterations for
alignment.
++ rldicl(tmp2, tmp2, 0, 64-log_stepping); // Rotate tmp2 0 bits, insert into
tmp2, anding with mask with 1s from 62..63.
++
++ if (complexThreshold > mainLoop_stepping) {
++ sub(len, len, tmp2); // Remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
++ } else {
++ sub(tmp, len, tmp2); // Remaining bytes for main loop.
++ cmpdi(CCR0, tmp, mainLoop_stepping);
++ blt(CCR0, L_tail); // For less than one mainloop_stepping
left, do only tail processing
++ mr(len, tmp); // remaining bytes for main loop
(>=mainLoop_stepping is guaranteed).
++ }
++ update_byteLoop_crc32(crc, buf, tmp2, table, data, false, false);
++ }
++
++ srdi(tmp2, len, log_stepping); // #iterations for mainLoop
++ andi(len, len, mainLoop_stepping-1); // remaining bytes for tailLoop
++ mtctr(tmp2);
++
++#ifdef VM_LITTLE_ENDIAN
++ Register crc_rv = crc;
++#else
++ Register crc_rv = tmp; // Load_reverse needs separate
registers to work on.
++ // Occupies tmp, but frees up crc.
++ load_reverse_32(crc_rv, crc); // evert byte order because we are
dealing with big-endian data.
++ tmp = crc;
++#endif
++
++ int reconstructTableOffset = crc32_table_columns(table, tc0, tc1, tc2, tc3);
++
++ align(mainLoop_alignment); // Octoword-aligned loop address. Shows
2% improvement.
++ BIND(L_mainLoop);
++ update_1word_crc32(crc_rv, buf, table, 0, mainLoop_stepping, crc_rv, t1, t2, t3,
tc0, tc1, tc2, tc3);
++ bdnz(L_mainLoop);
++
++#ifndef VM_LITTLE_ENDIAN
++ load_reverse_32(crc, crc_rv); // Revert byte order because we are
dealing with big-endian data.
++ tmp = crc_rv; // Tmp uses it's original register
again.
++#endif
++
++ // Restore original table address for tailLoop.
++ if (reconstructTableOffset != 0) {
++ addi(table, table, -reconstructTableOffset);
++ }
++
++ // Process last few (<complexThreshold) bytes of buffer.
++ BIND(L_tail);
++ update_byteLoop_crc32(crc, buf, len, table, data, false, false);
++
++ nand(crc, crc, crc); // ~c
++ BLOCK_COMMENT("} kernel_crc32_1word");
++}
++
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param table register pointing to CRC table
++ *
++ * Uses R7_ARG5, R8_ARG6 as work registers.
++ */
++void MacroAssembler::kernel_crc32_1byte(Register crc, Register buf, Register len,
Register table,
++ Register t0, Register t1, Register t2,
Register t3) {
++ assert_different_registers(crc, buf, len, table);
++
++ Register data = t0; // Holds the current byte to be folded into
crc.
++
++ BLOCK_COMMENT("kernel_crc32_1byte {");
++
++ // Process all bytes in a single-byte loop.
++ update_byteLoop_crc32(crc, buf, len, table, data, true, true);
++
++ BLOCK_COMMENT("} kernel_crc32_1byte");
++}
++
++void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len,
Register table, Register tmp) {
++ assert_different_registers(crc, buf, /* len, not used!! */ table, tmp);
++
++ BLOCK_COMMENT("kernel_crc32_singleByte:");
++ nand(crc, crc, crc); // ~c
++
++ lbz(tmp, 0, buf); // Byte from buffer, zero-extended.
++ update_byte_crc32(crc, tmp, table);
++
++ nand(crc, crc, crc); // ~c
++}
++
+
+ void MacroAssembler::asm_assert(bool check_equal, const char *msg, int id) {
+ #ifdef ASSERT
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
+@@ -637,6 +637,27 @@
+ void char_arrays_equalsImm(Register str1_reg, Register str2_reg, int cntval, Register
result_reg,
+ Register tmp1_reg, Register tmp2_reg);
+
++ // CRC32 Intrinsics.
++ void load_reverse_32(Register dst, Register src);
++ int crc32_table_columns(Register table, Register tc0, Register tc1, Register tc2,
Register tc3);
++ void fold_byte_crc32(Register crc, Register val, Register table, Register tmp);
++ void fold_8bit_crc32(Register crc, Register table, Register tmp);
++ void update_byte_crc32(Register crc, Register val, Register table);
++ void update_byteLoop_crc32(Register crc, Register buf, Register len, Register table,
++ Register data, bool loopAlignment, bool invertCRC);
++ void update_1word_crc32(Register crc, Register buf, Register table, int bufDisp, int
bufInc,
++ Register t0, Register t1, Register t2, Register t3,
++ Register tc0, Register tc1, Register tc2, Register tc3);
++ void kernel_crc32_2word(Register crc, Register buf, Register len, Register table,
++ Register t0, Register t1, Register t2, Register t3,
++ Register tc0, Register tc1, Register tc2, Register tc3);
++ void kernel_crc32_1word(Register crc, Register buf, Register len, Register table,
++ Register t0, Register t1, Register t2, Register t3,
++ Register tc0, Register tc1, Register tc2, Register tc3);
++ void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
++ Register t0, Register t1, Register t2, Register t3);
++ void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table,
Register tmp);
++
+ //
+ // Debugging
+ //
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+@@ -2473,6 +2473,54 @@
+ __ blr();
+ }
+
++ /**
++ * Arguments:
++ *
++ * Inputs:
++ * R3_ARG1 - int crc
++ * R4_ARG2 - byte* buf
++ * R5_ARG3 - int length (of buffer)
++ *
++ * scratch:
++ * R6_ARG4 - crc table address
++ * R7_ARG5 - tmp1
++ * R8_ARG6 - tmp2
++ *
++ * Ouput:
++ * R3_RET - int crc result
++ */
++ // Compute CRC32 function.
++ address generate_CRC32_updateBytes(const char* name) {
++ __ align(CodeEntryAlignment);
++ StubCodeMark mark(this, "StubRoutines", name);
++ address start = __ function_entry(); // Remember stub start address (is rtn
value).
++
++ // arguments to kernel_crc32:
++ Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
++ Register data = R4_ARG2; // source byte array
++ Register dataLen = R5_ARG3; // #bytes to process
++ Register table = R6_ARG4; // crc table address
++
++ Register t0 = R9; // work reg for kernel* emitters
++ Register t1 = R10; // work reg for kernel* emitters
++ Register t2 = R11; // work reg for kernel* emitters
++ Register t3 = R12; // work reg for kernel* emitters
++
++ BLOCK_COMMENT("Stub body {");
++ assert_different_registers(crc, data, dataLen, table);
++
++ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
++
++ __ kernel_crc32_1byte(crc, data, dataLen, table, t0, t1, t2, t3);
++
++ BLOCK_COMMENT("return");
++ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
++ __ blr();
++
++ BLOCK_COMMENT("} Stub body");
++ return start;
++ }
++
+ // Initialization
+ void generate_initial() {
+ // Generates all stubs and initializes the entry points
+@@ -2491,6 +2539,12 @@
+ StubRoutines::_throw_StackOverflowError_entry =
+ generate_throw_exception("StackOverflowError throw_exception",
+ CAST_FROM_FN_PTR(address,
SharedRuntime::throw_StackOverflowError), false);
++
++ // CRC32 Intrinsics.
++ if (UseCRC32Intrinsics) {
++ StubRoutines::_crc_table_adr = (address)StubRoutines::ppc64::_crc_table;
++ StubRoutines::_updateBytesCRC32 =
generate_CRC32_updateBytes("CRC32_updateBytes");
++ }
+ }
+
+ void generate_all() {
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2012, 2014 SAP AG. All rights reserved.
++ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2012, 2018 SAP SE. 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
+@@ -23,7 +23,457 @@
+ *
+ */
+
++#include "asm/macroAssembler.inline.hpp"
++#include "runtime/stubRoutines.hpp"
++
+ // Implementation of the platform-specific part of StubRoutines - for
+ // a description of how to extend it, see the stubRoutines.hpp file.
+
+
++#define __ masm->
++
++// CRC32 Intrinsics.
++void StubRoutines::ppc64::generate_load_crc_table_addr(MacroAssembler* masm, Register
table) {
++ __ load_const(table, StubRoutines::_crc_table_adr);
++}
++
++// CRC32 Intrinsics.
++/**
++ * crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.h
++ */
++juint StubRoutines::ppc64::_crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE] = {
++ {
++ 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
++ 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
++ 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
++ 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
++ 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
++ 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
++ 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
++ 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
++ 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
++ 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
++ 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
++ 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
++ 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
++ 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
++ 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
++ 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
++ 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
++ 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
++ 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
++ 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
++ 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
++ 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
++ 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
++ 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
++ 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
++ 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
++ 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
++ 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
++ 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
++ 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
++ 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
++ 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
++ 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
++ 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
++ 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
++ 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
++ 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
++ 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
++ 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
++ 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
++ 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
++ 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
++ 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
++ 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
++ 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
++ 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
++ 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
++ 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
++ 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
++ 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
++ 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
++ 0x2d02ef8dUL
++#ifdef CRC32_BYFOUR
++ },
++ {
++ 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
++ 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
++ 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
++ 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
++ 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
++ 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
++ 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
++ 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
++ 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
++ 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
++ 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
++ 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
++ 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
++ 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
++ 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
++ 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
++ 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
++ 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
++ 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
++ 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
++ 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
++ 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
++ 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
++ 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
++ 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
++ 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
++ 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
++ 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
++ 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
++ 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
++ 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
++ 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
++ 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
++ 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
++ 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
++ 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
++ 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
++ 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
++ 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
++ 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
++ 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
++ 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
++ 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
++ 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
++ 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
++ 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
++ 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
++ 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
++ 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
++ 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
++ 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
++ 0x9324fd72UL
++ },
++ {
++ 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
++ 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
++ 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
++ 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
++ 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
++ 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
++ 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
++ 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
++ 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
++ 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
++ 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
++ 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
++ 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
++ 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
++ 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
++ 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
++ 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
++ 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
++ 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
++ 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
++ 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
++ 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
++ 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
++ 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
++ 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
++ 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
++ 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
++ 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
++ 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
++ 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
++ 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
++ 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
++ 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
++ 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
++ 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
++ 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
++ 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
++ 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
++ 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
++ 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
++ 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
++ 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
++ 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
++ 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
++ 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
++ 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
++ 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
++ 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
++ 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
++ 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
++ 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
++ 0xbe9834edUL
++ },
++ {
++ 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
++ 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
++ 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
++ 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
++ 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
++ 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
++ 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
++ 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
++ 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
++ 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
++ 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
++ 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
++ 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
++ 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
++ 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
++ 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
++ 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
++ 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
++ 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
++ 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
++ 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
++ 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
++ 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
++ 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
++ 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
++ 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
++ 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
++ 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
++ 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
++ 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
++ 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
++ 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
++ 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
++ 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
++ 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
++ 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
++ 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
++ 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
++ 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
++ 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
++ 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
++ 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
++ 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
++ 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
++ 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
++ 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
++ 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
++ 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
++ 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
++ 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
++ 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
++ 0xde0506f1UL
++ },
++ {
++ 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
++ 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
++ 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
++ 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
++ 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
++ 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
++ 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
++ 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
++ 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
++ 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
++ 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
++ 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
++ 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
++ 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
++ 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
++ 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
++ 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
++ 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
++ 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
++ 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
++ 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
++ 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
++ 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
++ 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
++ 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
++ 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
++ 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
++ 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
++ 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
++ 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
++ 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
++ 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
++ 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
++ 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
++ 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
++ 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
++ 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
++ 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
++ 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
++ 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
++ 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
++ 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
++ 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
++ 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
++ 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
++ 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
++ 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
++ 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
++ 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
++ 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
++ 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
++ 0x8def022dUL
++ },
++ {
++ 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
++ 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
++ 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
++ 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
++ 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
++ 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
++ 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
++ 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
++ 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
++ 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
++ 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
++ 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
++ 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
++ 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
++ 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
++ 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
++ 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
++ 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
++ 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
++ 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
++ 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
++ 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
++ 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
++ 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
++ 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
++ 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
++ 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
++ 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
++ 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
++ 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
++ 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
++ 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
++ 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
++ 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
++ 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
++ 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
++ 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
++ 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
++ 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
++ 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
++ 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
++ 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
++ 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
++ 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
++ 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
++ 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
++ 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
++ 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
++ 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
++ 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
++ 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
++ 0x72fd2493UL
++ },
++ {
++ 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
++ 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
++ 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
++ 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
++ 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
++ 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
++ 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
++ 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
++ 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
++ 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
++ 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
++ 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
++ 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
++ 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
++ 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
++ 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
++ 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
++ 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
++ 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
++ 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
++ 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
++ 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
++ 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
++ 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
++ 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
++ 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
++ 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
++ 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
++ 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
++ 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
++ 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
++ 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
++ 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
++ 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
++ 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
++ 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
++ 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
++ 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
++ 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
++ 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
++ 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
++ 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
++ 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
++ 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
++ 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
++ 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
++ 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
++ 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
++ 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
++ 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
++ 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
++ 0xed3498beUL
++ },
++ {
++ 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
++ 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
++ 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
++ 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
++ 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
++ 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
++ 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
++ 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
++ 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
++ 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
++ 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
++ 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
++ 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
++ 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
++ 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
++ 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
++ 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
++ 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
++ 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
++ 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
++ 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
++ 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
++ 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
++ 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
++ 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
++ 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
++ 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
++ 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
++ 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
++ 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
++ 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
++ 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
++ 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
++ 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
++ 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
++ 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
++ 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
++ 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
++ 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
++ 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
++ 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
++ 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
++ 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
++ 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
++ 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
++ 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
++ 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
++ 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
++ 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
++ 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
++ 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
++ 0xf10605deUL
++#endif
++ }
++};
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2012, 2013 SAP AG. All rights reserved.
++ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2012, 2018 SAP SE. 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
+@@ -30,11 +30,35 @@
+ // definition. See stubRoutines.hpp for a description on how to
+ // extend it.
+
+-static bool returns_to_call_stub(address return_pc) { return return_pc ==
_call_stub_return_address; }
++static bool returns_to_call_stub(address return_pc) { return return_pc ==
_call_stub_return_address; }
+
+ enum platform_dependent_constants {
+ code_size1 = 20000, // simply increase if too small (assembler will crash if
too small)
+ code_size2 = 20000 // simply increase if too small (assembler will crash if
too small)
+ };
+
++// CRC32 Intrinsics.
++#define CRC32_COLUMN_SIZE 256
++#define CRC32_BYFOUR
++#ifdef CRC32_BYFOUR
++ #define CRC32_TABLES 8
++#else
++ #define CRC32_TABLES 1
++#endif
++
++class ppc64 {
++ friend class StubGenerator;
++
++ private:
++
++ // CRC32 Intrinsics.
++ static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
++
++ public:
++
++ // CRC32 Intrinsics.
++ static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
++
++};
++
+ #endif // CPU_PPC_VM_STUBROUTINES_PPC_64_HPP
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+@@ -57,7 +57,7 @@
+ #define BLOCK_COMMENT(str) __ block_comment(str)
+ #endif
+
+-#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
++#define BIND(label) __ bind(label); BLOCK_COMMENT(#label ":")
+
+ //-----------------------------------------------------------------------------
+
+@@ -783,7 +783,7 @@
+ }
+ generate_counter_incr(&invocation_counter_overflow, NULL, NULL);
+
+- __ BIND(continue_after_compile);
++ BIND(continue_after_compile);
+ // Reset the _do_not_unlock_if_synchronized flag.
+ if (synchronized) {
+ __ li(R0, 0);
+@@ -843,7 +843,7 @@
+ __ ld(signature_handler_fd, method_(signature_handler));
+ __ twi_0(signature_handler_fd); // Order wrt. load of klass mirror and entry point
(isync is below).
+
+- __ BIND(call_signature_handler);
++ BIND(call_signature_handler);
+
+ // Before we call the signature handler we push a new frame to
+ // protect the interpreter frame volatile registers when we return
+@@ -913,7 +913,7 @@
+ __ std(R0/*mirror*/, _ijava_state_neg(oop_tmp), R11_scratch1);
+ // R4_ARG2 = &state->_oop_temp;
+ __ addi(R4_ARG2, R11_scratch1, _ijava_state_neg(oop_tmp));
+- __ BIND(method_is_not_static);
++ BIND(method_is_not_static);
+ }
+
+ // At this point, arguments have been copied off the stack into
+@@ -1126,14 +1126,14 @@
+ // interpreter will do the correct thing. If it isn't interpreted
+ // (call stub/compiled code) we will change our return and continue.
+
+- __ BIND(exception_return_sync_check);
++ BIND(exception_return_sync_check);
+
+ if (synchronized) {
+ // Don't check for exceptions since we're still in the i2n frame. Do that
+ // manually afterwards.
+ unlock_method(false);
+ }
+- __ BIND(exception_return_sync_check_already_unlocked);
++ BIND(exception_return_sync_check_already_unlocked);
+
+ const Register return_pc = R31;
+
+@@ -1327,6 +1327,12 @@
+ case Interpreter::java_lang_math_exp : entry_point = ((InterpreterGenerator*)
this)->generate_math_entry(kind); break;
+ case Interpreter::java_lang_ref_reference_get
+ : entry_point =
((InterpreterGenerator*)this)->generate_Reference_get_entry(); break;
++ case Interpreter::java_util_zip_CRC32_update
++ : entry_point =
((InterpreterGenerator*)this)->generate_CRC32_update_entry(); break;
++ case Interpreter::java_util_zip_CRC32_updateBytes
++ : // fall thru
++ case Interpreter::java_util_zip_CRC32_updateByteBuffer
++ : entry_point =
((InterpreterGenerator*)this)->generate_CRC32_updateBytes_entry(kind); break;
+ default : ShouldNotReachHere();
break;
+ }
+
+@@ -1337,6 +1343,179 @@
+ return ((InterpreterGenerator*) this)->generate_normal_entry(synchronized);
+ }
+
++// CRC32 Intrinsics.
++//
++// Contract on scratch and work registers.
++// =======================================
++//
++// On ppc, the register set {R2..R12} is available in the interpreter as scratch/work
registers.
++// You should, however, keep in mind that {R3_ARG1..R10_ARG8} is the C-ABI argument
register set.
++// You can't rely on these registers across calls.
++//
++// The generators for CRC32_update and for CRC32_updateBytes use the
++// scratch/work register set internally, passing the work registers
++// as arguments to the MacroAssembler emitters as required.
++//
++// R3_ARG1..R6_ARG4 are preset to hold the incoming java arguments.
++// Their contents is not constant but may change according to the requirements
++// of the emitted code.
++//
++// All other registers from the scratch/work register set are used
"internally"
++// and contain garbage (i.e. unpredictable values) once blr() is reached.
++// Basically, only R3_RET contains a defined value which is the function result.
++//
++/**
++ * Method entry for static native methods:
++ * int java.util.zip.CRC32.update(int crc, int b)
++ */
++address InterpreterGenerator::generate_CRC32_update_entry() {
++ address start = __ pc(); // Remember stub start address (is rtn value).
++
++ if (UseCRC32Intrinsics) {
++ Label slow_path;
++
++ // Safepoint check
++ const Register sync_state = R11_scratch1;
++ int sync_state_offs = __ load_const_optimized(sync_state,
SafepointSynchronize::address_of_state(), /*temp*/R0, true);
++ __ lwz(sync_state, sync_state_offs, sync_state);
++ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
++ __ bne(CCR0, slow_path);
++
++ // We don't generate local frame and don't align stack because
++ // we not even call stub code (we generate the code inline)
++ // and there is no safepoint on this path.
++
++ // Load java parameters.
++ // R15_esp is callers operand stack pointer, i.e. it points to the parameters.
++ const Register argP = R15_esp;
++ const Register crc = R3_ARG1; // crc value
++ const Register data = R4_ARG2; // address of java byte value (kernel_crc32 needs
address)
++ const Register dataLen = R5_ARG3; // source data len (1 byte). Not used because
calling the single-byte emitter.
++ const Register table = R6_ARG4; // address of crc32 table
++ const Register tmp = dataLen; // Reuse unused len register to show we don't
actually need a separate tmp here.
++
++ BLOCK_COMMENT("CRC32_update {");
++
++ // Arguments are reversed on java expression stack
++#ifdef VM_LITTLE_ENDIAN
++ __ addi(data, argP, 0+1*wordSize); // (stack) address of byte value. Emitter expects
address, not value.
++ // Being passed as an int, the single byte is at
offset +0.
++#else
++ __ addi(data, argP, 3+1*wordSize); // (stack) address of byte value. Emitter expects
address, not value.
++ // Being passed from java as an int, the single
byte is at offset +3.
++#endif
++ __ lwz(crc, 2*wordSize, argP); // Current crc state, zero extend to 64 bit to
have a clean register.
++
++ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
++ __ kernel_crc32_singleByte(crc, data, dataLen, table, tmp);
++
++ // Restore caller sp for c2i case and return.
++ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
++ __ blr();
++
++ // Generate a vanilla native entry as the slow path.
++ BLOCK_COMMENT("} CRC32_update");
++ BIND(slow_path);
++ }
++
++ (void) generate_native_entry(false);
++
++ return start;
++}
++
++// CRC32 Intrinsics.
++/**
++ * Method entry for static native methods:
++ * int java.util.zip.CRC32.updateBytes( int crc, byte[] b, int off, int len)
++ * int java.util.zip.CRC32.updateByteBuffer(int crc, long* buf, int off, int len)
++ */
++address
InterpreterGenerator::generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind
kind) {
++ address start = __ pc(); // Remember stub start address (is rtn value).
++
++ if (UseCRC32Intrinsics) {
++ Label slow_path;
++
++ // Safepoint check
++ const Register sync_state = R11_scratch1;
++ int sync_state_offs = __ load_const_optimized(sync_state,
SafepointSynchronize::address_of_state(), /*temp*/R0, true);
++ __ lwz(sync_state, sync_state_offs, sync_state);
++ __ cmpwi(CCR0, sync_state, SafepointSynchronize::_not_synchronized);
++ __ bne(CCR0, slow_path);
++
++ // We don't generate local frame and don't align stack because
++ // we not even call stub code (we generate the code inline)
++ // and there is no safepoint on this path.
++
++ // Load parameters.
++ // Z_esp is callers operand stack pointer, i.e. it points to the parameters.
++ const Register argP = R15_esp;
++ const Register crc = R3_ARG1; // crc value
++ const Register data = R4_ARG2; // address of java byte array
++ const Register dataLen = R5_ARG3; // source data len
++ const Register table = R6_ARG4; // address of crc32 table
++
++ const Register t0 = R9; // scratch registers for crc calculation
++ const Register t1 = R10;
++ const Register t2 = R11;
++ const Register t3 = R12;
++
++ const Register tc0 = R2; // registers to hold pre-calculated column
addresses
++ const Register tc1 = R7;
++ const Register tc2 = R8;
++ const Register tc3 = table; // table address is reconstructed at the end of
kernel_crc32_* emitters
++
++ const Register tmp = t0; // Only used very locally to calculate byte
buffer address.
++
++ // Arguments are reversed on java expression stack.
++ // Calculate address of start element.
++ if (kind == Interpreter::java_util_zip_CRC32_updateByteBuffer) { // Used for
"updateByteBuffer direct".
++ BLOCK_COMMENT("CRC32_updateByteBuffer {");
++ // crc @ (SP + 5W) (32bit)
++ // buf @ (SP + 3W) (64bit ptr to long array)
++ // off @ (SP + 2W) (32bit)
++ // dataLen @ (SP + 1W) (32bit)
++ // data = buf + off
++ __ ld( data, 3*wordSize, argP); // start of byte buffer
++ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
++ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
++ __ lwz( crc, 5*wordSize, argP); // current crc state
++ __ add( data, data, tmp); // Add byte buffer offset.
++ } else { // Used for
"updateBytes update".
++ BLOCK_COMMENT("CRC32_updateBytes {");
++ // crc @ (SP + 4W) (32bit)
++ // buf @ (SP + 3W) (64bit ptr to byte array)
++ // off @ (SP + 2W) (32bit)
++ // dataLen @ (SP + 1W) (32bit)
++ // data = buf + off + base_offset
++ __ ld( data, 3*wordSize, argP); // start of byte buffer
++ __ lwa( tmp, 2*wordSize, argP); // byte buffer offset
++ __ lwa( dataLen, 1*wordSize, argP); // #bytes to process
++ __ add( data, data, tmp); // add byte buffer offset
++ __ lwz( crc, 4*wordSize, argP); // current crc state
++ __ addi(data, data, arrayOopDesc::base_offset_in_bytes(T_BYTE));
++ }
++
++ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
++
++ // Performance measurements show the 1word and 2word variants to be almost
equivalent,
++ // with very light advantages for the 1word variant. We chose the 1word variant for
++ // code compactness.
++ __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2,
tc3);
++
++ // Restore caller sp for c2i case and return.
++ __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
++ __ blr();
++
++ // Generate a vanilla native entry as the slow path.
++ BLOCK_COMMENT("} CRC32_updateBytes(Buffer)");
++ BIND(slow_path);
++ }
++
++ (void) generate_native_entry(false);
++
++ return start;
++}
++
+ // These should never be compiled since the interpreter will prefer
+ // the compiled version to the intrinsic version.
+ bool AbstractInterpreter::can_be_compiled(methodHandle m) {
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+@@ -150,10 +150,12 @@
+
+ assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be
positive");
+
+- if (UseCRC32Intrinsics) {
+- if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
+- warning("CRC32 intrinsics are not available on this CPU");
+- FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
++ // Implementation does not use any of the vector instructions
++ // available with Power8. Their exploitation is still pending.
++ if (!UseCRC32Intrinsics) {
++ if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
++ FLAG_SET_DEFAULT(UseCRC32Intrinsics, true);
++ }
+ }
+
+ // The AES intrinsic stubs require AES instruction support.
+diff --git openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp
openjdk/hotspot/src/share/vm/opto/library_call.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp
++++ openjdk/hotspot/src/share/vm/opto/library_call.cpp
+@@ -6225,10 +6225,16 @@
+ // Call the stub.
+ address stubAddr = StubRoutines::updateBytesCRC32();
+ const char *stubName = "updateBytesCRC32";
+-
+- Node* call = make_runtime_call(RC_LEAF|RC_NO_FP,
OptoRuntime::updateBytesCRC32_Type(),
+- stubAddr, stubName, TypePtr::BOTTOM,
+- crc, src_start, length);
++ Node* call;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ crc XTOP, src_start, length XTOP);
++ } else {
++ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ crc, src_start, length);
++ }
+ Node* result = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
+ set_result(result);
+ return true;
+@@ -6257,10 +6263,16 @@
+ // Call the stub.
+ address stubAddr = StubRoutines::updateBytesCRC32();
+ const char *stubName = "updateBytesCRC32";
+-
+- Node* call = make_runtime_call(RC_LEAF|RC_NO_FP,
OptoRuntime::updateBytesCRC32_Type(),
+- stubAddr, stubName, TypePtr::BOTTOM,
+- crc, src_start, length);
++ Node* call;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ crc XTOP, src_start, length XTOP);
++ } else {
++ call = make_runtime_call(RC_LEAF|RC_NO_FP, OptoRuntime::updateBytesCRC32_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ crc, src_start, length);
++ }
+ Node* result = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
+ set_result(result);
+ return true;
+diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
openjdk/hotspot/src/share/vm/opto/runtime.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
+@@ -848,13 +848,24 @@
+ */
+ const TypeFunc* OptoRuntime::updateBytesCRC32_Type() {
+ // create input type (domain)
+- int num_args = 3;
++ int num_args = 3;
+ int argcnt = num_args;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ argcnt += 2;
++ }
+ const Type** fields = TypeTuple::fields(argcnt);
+ int argp = TypeFunc::Parms;
+- fields[argp++] = TypeInt::INT; // crc
+- fields[argp++] = TypePtr::NOTNULL; // src
+- fields[argp++] = TypeInt::INT; // len
++ if (CCallingConventionRequiresIntsAsLongs) {
++ fields[argp++] = TypeLong::LONG; // crc
++ fields[argp++] = Type::HALF;
++ fields[argp++] = TypePtr::NOTNULL; // src
++ fields[argp++] = TypeLong::LONG; // len
++ fields[argp++] = Type::HALF;
++ } else {
++ fields[argp++] = TypeInt::INT; // crc
++ fields[argp++] = TypePtr::NOTNULL; // src
++ fields[argp++] = TypeInt::INT; // len
++ }
+ assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
+ const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
+
diff --git a/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
b/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
new file mode 100644
index 0000000..27a2ed4
--- /dev/null
+++ b/jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
@@ -0,0 +1,1152 @@
+# HG changeset patch
+# User mdoerr
+# Date 1474539444 -7200
+# Thu Sep 22 12:17:24 2016 +0200
+# Node ID de4f1f9fbcc5b7b30e1a796b7cf88a16943e785f
+# Parent 567e95df42f866b890dc3f0670e086d266915112
+8164920, PR3574, RH1498936: ppc: enhancement of CRC32 intrinsic
+Reviewed-by: goetz, mdoerr
+Contributed-by: Hiroshi H Horii <horii(a)jp.ibm.com>
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+@@ -468,6 +468,10 @@
+ LVSL_OPCODE = (31u << OPCODE_SHIFT | 6u << 1),
+ LVSR_OPCODE = (31u << OPCODE_SHIFT | 38u << 1),
+
++ // Vector-Scalar (VSX) instruction support.
++ MTVSRD_OPCODE = (31u << OPCODE_SHIFT | 179u << 1),
++ MFVSRD_OPCODE = (31u << OPCODE_SHIFT | 51u << 1),
++
+ // Vector Permute and Formatting
+ VPKPX_OPCODE = (4u << OPCODE_SHIFT | 782u ),
+ VPKSHSS_OPCODE = (4u << OPCODE_SHIFT | 398u ),
+@@ -1938,6 +1942,10 @@
+ inline void mtvscr( VectorRegister b);
+ inline void mfvscr( VectorRegister d);
+
++ // Vector-Scalar (VSX) instructions.
++ inline void mtvrd( VectorRegister d, Register a);
++ inline void mfvrd( Register a, VectorRegister d);
++
+ // AES (introduced with Power 8)
+ inline void vcipher( VectorRegister d, VectorRegister a, VectorRegister b);
+ inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+@@ -623,6 +623,10 @@
+ inline void Assembler::lvsl( VectorRegister d, Register s1, Register s2) { emit_int32(
LVSL_OPCODE | vrt(d) | ra0mem(s1) | rb(s2)); }
+ inline void Assembler::lvsr( VectorRegister d, Register s1, Register s2) { emit_int32(
LVSR_OPCODE | vrt(d) | ra0mem(s1) | rb(s2)); }
+
++// Vector-Scalar (VSX) instructions.
++inline void Assembler::mtvrd( VectorRegister d, Register a) {
emit_int32( MTVSRD_OPCODE | vrt(d) | ra(a) | 1u); } // 1u: d is treated as Vector
(VMX/Altivec).
++inline void Assembler::mfvrd( Register a, VectorRegister d) {
emit_int32( MFVSRD_OPCODE | vrt(d) | ra(a) | 1u); } // 1u: d is treated as Vector
(VMX/Altivec).
++
+ inline void Assembler::vpkpx( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKPX_OPCODE | vrt(d) | vra(a) | vrb(b)); }
+ inline void Assembler::vpkshss( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKSHSS_OPCODE | vrt(d) | vra(a) | vrb(b)); }
+ inline void Assembler::vpkswss( VectorRegister d, VectorRegister a, VectorRegister b) {
emit_int32( VPKSWSS_OPCODE | vrt(d) | vra(a) | vrb(b)); }
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp
+@@ -3423,6 +3423,565 @@
+ BLOCK_COMMENT("} kernel_crc32_1byte");
+ }
+
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param table register pointing to CRC table
++ * @param constants register pointing to CRC table for 128-bit aligned memory
++ * @param barretConstants register pointing to table for barrett reduction
++ * @param t0 volatile register
++ * @param t1 volatile register
++ * @param t2 volatile register
++ * @param t3 volatile register
++ */
++void MacroAssembler::kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register
len, Register table,
++ Register constants, Register barretConstants,
++ Register t0, Register t1, Register t2, Register t3, Register
t4) {
++ assert_different_registers(crc, buf, len, table);
++
++ Label L_alignedHead, L_tail, L_alignTail, L_start, L_end;
++
++ Register prealign = t0;
++ Register postalign = t0;
++
++ BLOCK_COMMENT("kernel_crc32_1word_vpmsumb {");
++
++ // 1. use kernel_crc32_1word for shorter than 384bit
++ clrldi(len, len, 32);
++ cmpdi(CCR0, len, 384);
++ bge(CCR0, L_start);
++
++ Register tc0 = t4;
++ Register tc1 = constants;
++ Register tc2 = barretConstants;
++ kernel_crc32_1word(crc, buf, len, table,t0, t1, t2, t3, tc0, tc1, tc2, table);
++ b(L_end);
++
++ BIND(L_start);
++
++ // 2. ~c
++ nand(crc, crc, crc);
++
++ // 3. calculate from 0 to first 128bit-aligned address
++ clrldi_(prealign, buf, 57);
++ beq(CCR0, L_alignedHead);
++
++ subfic(prealign, prealign, 128);
++
++ subf(len, prealign, len);
++ update_byteLoop_crc32(crc, buf, prealign, table, t2, false, false);
++
++ // 4. calculate from first 128bit-aligned address to last 128bit-aligned address
++ BIND(L_alignedHead);
++
++ clrldi(postalign, len, 57);
++ subf(len, postalign, len);
++
++ // len must be more than 256bit
++ kernel_crc32_1word_aligned(crc, buf, len, constants, barretConstants, t1, t2, t3);
++
++ // 5. calculate remaining
++ cmpdi(CCR0, postalign, 0);
++ beq(CCR0, L_tail);
++
++ update_byteLoop_crc32(crc, buf, postalign, table, t2, false, false);
++
++ BIND(L_tail);
++
++ // 6. ~c
++ nand(crc, crc, crc);
++
++ BIND(L_end);
++
++ BLOCK_COMMENT("} kernel_crc32_1word_vpmsumb");
++}
++
++/**
++ * @param crc register containing existing CRC (32-bit)
++ * @param buf register pointing to input byte buffer (byte*)
++ * @param len register containing number of bytes
++ * @param constants register pointing to CRC table for 128-bit aligned memory
++ * @param barretConstants register pointing to table for barrett reduction
++ * @param t0 volatile register
++ * @param t1 volatile register
++ * @param t2 volatile register
++ */
++void MacroAssembler::kernel_crc32_1word_aligned(Register crc, Register buf, Register
len,
++ Register constants, Register barretConstants, Register t0, Register t1, Register t2)
{
++ Label L_mainLoop, L_tail, L_alignTail, L_barrett_reduction, L_end,
L_first_warm_up_done, L_first_cool_down, L_second_cool_down, L_XOR, L_test;
++ Label L_lv0, L_lv1, L_lv2, L_lv3, L_lv4, L_lv5, L_lv6, L_lv7, L_lv8, L_lv9, L_lv10,
L_lv11, L_lv12, L_lv13, L_lv14, L_lv15;
++ Label L_1, L_2, L_3, L_4;
++
++ Register rLoaded = t0;
++ Register rTmp1 = t1;
++ Register rTmp2 = t2;
++ Register off16 = R22;
++ Register off32 = R23;
++ Register off48 = R24;
++ Register off64 = R25;
++ Register off80 = R26;
++ Register off96 = R27;
++ Register off112 = R28;
++ Register rIdx = R29;
++ Register rMax = R30;
++ Register constantsPos = R31;
++
++ VectorRegister mask_32bit = VR24;
++ VectorRegister mask_64bit = VR25;
++ VectorRegister zeroes = VR26;
++ VectorRegister const1 = VR27;
++ VectorRegister const2 = VR28;
++
++ // Save non-volatile vector registers (frameless).
++ Register offset = t1; int offsetInt = 0;
++ offsetInt -= 16; li(offset, -16); stvx(VR20, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR21, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR22, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR23, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR24, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR25, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR26, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR27, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); stvx(VR28, offset, R1_SP);
++ offsetInt -= 8; std(R22, offsetInt, R1_SP);
++ offsetInt -= 8; std(R23, offsetInt, R1_SP);
++ offsetInt -= 8; std(R24, offsetInt, R1_SP);
++ offsetInt -= 8; std(R25, offsetInt, R1_SP);
++ offsetInt -= 8; std(R26, offsetInt, R1_SP);
++ offsetInt -= 8; std(R27, offsetInt, R1_SP);
++ offsetInt -= 8; std(R28, offsetInt, R1_SP);
++ offsetInt -= 8; std(R29, offsetInt, R1_SP);
++ offsetInt -= 8; std(R30, offsetInt, R1_SP);
++ offsetInt -= 8; std(R31, offsetInt, R1_SP);
++
++ // Set constants
++ li(off16, 16);
++ li(off32, 32);
++ li(off48, 48);
++ li(off64, 64);
++ li(off80, 80);
++ li(off96, 96);
++ li(off112, 112);
++
++ clrldi(crc, crc, 32);
++
++ vxor(zeroes, zeroes, zeroes);
++ vspltisw(VR0, -1);
++
++ vsldoi(mask_32bit, zeroes, VR0, 4);
++ vsldoi(mask_64bit, zeroes, VR0, -8);
++
++ // Get the initial value into v8
++ vxor(VR8, VR8, VR8);
++ mtvrd(VR8, crc);
++ vsldoi(VR8, zeroes, VR8, -8); // shift into bottom 32 bits
++
++ li (rLoaded, 0);
++
++ rldicr(rIdx, len, 0, 56);
++
++ {
++ BIND(L_1);
++ // Checksum in blocks of MAX_SIZE (32768)
++ lis(rMax, 0);
++ ori(rMax, rMax, 32768);
++ mr(rTmp2, rMax);
++ cmpd(CCR0, rIdx, rMax);
++ bgt(CCR0, L_2);
++ mr(rMax, rIdx);
++
++ BIND(L_2);
++ subf(rIdx, rMax, rIdx);
++
++ // our main loop does 128 bytes at a time
++ srdi(rMax, rMax, 7);
++
++ /*
++ * Work out the offset into the constants table to start at. Each
++ * constant is 16 bytes, and it is used against 128 bytes of input
++ * data - 128 / 16 = 8
++ */
++ sldi(rTmp1, rMax, 4);
++ srdi(rTmp2, rTmp2, 3);
++ subf(rTmp1, rTmp1, rTmp2);
++
++ // We reduce our final 128 bytes in a separate step
++ addi(rMax, rMax, -1);
++ mtctr(rMax);
++
++ // Find the start of our constants
++ add(constantsPos, constants, rTmp1);
++
++ // zero VR0-v7 which will contain our checksums
++ vxor(VR0, VR0, VR0);
++ vxor(VR1, VR1, VR1);
++ vxor(VR2, VR2, VR2);
++ vxor(VR3, VR3, VR3);
++ vxor(VR4, VR4, VR4);
++ vxor(VR5, VR5, VR5);
++ vxor(VR6, VR6, VR6);
++ vxor(VR7, VR7, VR7);
++
++ lvx(const1, constantsPos);
++
++ /*
++ * If we are looping back to consume more data we use the values
++ * already in VR16-v23.
++ */
++ cmpdi(CCR0, rLoaded, 1);
++ beq(CCR0, L_3);
++ {
++
++ // First warm up pass
++ lvx(VR16, buf);
++ lvx(VR17, off16, buf);
++ lvx(VR18, off32, buf);
++ lvx(VR19, off48, buf);
++ lvx(VR20, off64, buf);
++ lvx(VR21, off80, buf);
++ lvx(VR22, off96, buf);
++ lvx(VR23, off112, buf);
++ addi(buf, buf, 8*16);
++
++ // xor in initial value
++ vxor(VR16, VR16, VR8);
++ }
++
++ BIND(L_3);
++ bdz(L_first_warm_up_done);
++
++ addi(constantsPos, constantsPos, 16);
++ lvx(const2, constantsPos);
++
++ // Second warm up pass
++ vpmsumd(VR8, VR16, const1);
++ lvx(VR16, buf);
++
++ vpmsumd(VR9, VR17, const1);
++ lvx(VR17, off16, buf);
++
++ vpmsumd(VR10, VR18, const1);
++ lvx(VR18, off32, buf);
++
++ vpmsumd(VR11, VR19, const1);
++ lvx(VR19, off48, buf);
++
++ vpmsumd(VR12, VR20, const1);
++ lvx(VR20, off64, buf);
++
++ vpmsumd(VR13, VR21, const1);
++ lvx(VR21, off80, buf);
++
++ vpmsumd(VR14, VR22, const1);
++ lvx(VR22, off96, buf);
++
++ vpmsumd(VR15, VR23, const1);
++ lvx(VR23, off112, buf);
++
++ addi(buf, buf, 8 * 16);
++
++ bdz(L_first_cool_down);
++
++ /*
++ * main loop. We modulo schedule it such that it takes three iterations
++ * to complete - first iteration load, second iteration vpmsum, third
++ * iteration xor.
++ */
++ {
++ BIND(L_4);
++ lvx(const1, constantsPos); addi(constantsPos, constantsPos, 16);
++
++ vxor(VR0, VR0, VR8);
++ vpmsumd(VR8, VR16, const2);
++ lvx(VR16, buf);
++
++ vxor(VR1, VR1, VR9);
++ vpmsumd(VR9, VR17, const2);
++ lvx(VR17, off16, buf);
++
++ vxor(VR2, VR2, VR10);
++ vpmsumd(VR10, VR18, const2);
++ lvx(VR18, off32, buf);
++
++ vxor(VR3, VR3, VR11);
++ vpmsumd(VR11, VR19, const2);
++ lvx(VR19, off48, buf);
++ lvx(const2, constantsPos);
++
++ vxor(VR4, VR4, VR12);
++ vpmsumd(VR12, VR20, const1);
++ lvx(VR20, off64, buf);
++
++ vxor(VR5, VR5, VR13);
++ vpmsumd(VR13, VR21, const1);
++ lvx(VR21, off80, buf);
++
++ vxor(VR6, VR6, VR14);
++ vpmsumd(VR14, VR22, const1);
++ lvx(VR22, off96, buf);
++
++ vxor(VR7, VR7, VR15);
++ vpmsumd(VR15, VR23, const1);
++ lvx(VR23, off112, buf);
++
++ addi(buf, buf, 8 * 16);
++
++ bdnz(L_4);
++ }
++
++ BIND(L_first_cool_down);
++
++ // First cool down pass
++ lvx(const1, constantsPos);
++ addi(constantsPos, constantsPos, 16);
++
++ vxor(VR0, VR0, VR8);
++ vpmsumd(VR8, VR16, const1);
++
++ vxor(VR1, VR1, VR9);
++ vpmsumd(VR9, VR17, const1);
++
++ vxor(VR2, VR2, VR10);
++ vpmsumd(VR10, VR18, const1);
++
++ vxor(VR3, VR3, VR11);
++ vpmsumd(VR11, VR19, const1);
++
++ vxor(VR4, VR4, VR12);
++ vpmsumd(VR12, VR20, const1);
++
++ vxor(VR5, VR5, VR13);
++ vpmsumd(VR13, VR21, const1);
++
++ vxor(VR6, VR6, VR14);
++ vpmsumd(VR14, VR22, const1);
++
++ vxor(VR7, VR7, VR15);
++ vpmsumd(VR15, VR23, const1);
++
++ BIND(L_second_cool_down);
++ // Second cool down pass
++ vxor(VR0, VR0, VR8);
++ vxor(VR1, VR1, VR9);
++ vxor(VR2, VR2, VR10);
++ vxor(VR3, VR3, VR11);
++ vxor(VR4, VR4, VR12);
++ vxor(VR5, VR5, VR13);
++ vxor(VR6, VR6, VR14);
++ vxor(VR7, VR7, VR15);
++
++ /*
++ * vpmsumd produces a 96 bit result in the least significant bits
++ * of the register. Since we are bit reflected we have to shift it
++ * left 32 bits so it occupies the least significant bits in the
++ * bit reflected domain.
++ */
++ vsldoi(VR0, VR0, zeroes, 4);
++ vsldoi(VR1, VR1, zeroes, 4);
++ vsldoi(VR2, VR2, zeroes, 4);
++ vsldoi(VR3, VR3, zeroes, 4);
++ vsldoi(VR4, VR4, zeroes, 4);
++ vsldoi(VR5, VR5, zeroes, 4);
++ vsldoi(VR6, VR6, zeroes, 4);
++ vsldoi(VR7, VR7, zeroes, 4);
++
++ // xor with last 1024 bits
++ lvx(VR8, buf);
++ lvx(VR9, off16, buf);
++ lvx(VR10, off32, buf);
++ lvx(VR11, off48, buf);
++ lvx(VR12, off64, buf);
++ lvx(VR13, off80, buf);
++ lvx(VR14, off96, buf);
++ lvx(VR15, off112, buf);
++ addi(buf, buf, 8 * 16);
++
++ vxor(VR16, VR0, VR8);
++ vxor(VR17, VR1, VR9);
++ vxor(VR18, VR2, VR10);
++ vxor(VR19, VR3, VR11);
++ vxor(VR20, VR4, VR12);
++ vxor(VR21, VR5, VR13);
++ vxor(VR22, VR6, VR14);
++ vxor(VR23, VR7, VR15);
++
++ li(rLoaded, 1);
++ cmpdi(CCR0, rIdx, 0);
++ addi(rIdx, rIdx, 128);
++ bne(CCR0, L_1);
++ }
++
++ // Work out how many bytes we have left
++ andi_(len, len, 127);
++
++ // Calculate where in the constant table we need to start
++ subfic(rTmp1, len, 128);
++ add(constantsPos, constantsPos, rTmp1);
++
++ // How many 16 byte chunks are in the tail
++ srdi(rIdx, len, 4);
++ mtctr(rIdx);
++
++ /*
++ * Reduce the previously calculated 1024 bits to 64 bits, shifting
++ * 32 bits to include the trailing 32 bits of zeros
++ */
++ lvx(VR0, constantsPos);
++ lvx(VR1, off16, constantsPos);
++ lvx(VR2, off32, constantsPos);
++ lvx(VR3, off48, constantsPos);
++ lvx(VR4, off64, constantsPos);
++ lvx(VR5, off80, constantsPos);
++ lvx(VR6, off96, constantsPos);
++ lvx(VR7, off112, constantsPos);
++ addi(constantsPos, constantsPos, 8 * 16);
++
++ vpmsumw(VR0, VR16, VR0);
++ vpmsumw(VR1, VR17, VR1);
++ vpmsumw(VR2, VR18, VR2);
++ vpmsumw(VR3, VR19, VR3);
++ vpmsumw(VR4, VR20, VR4);
++ vpmsumw(VR5, VR21, VR5);
++ vpmsumw(VR6, VR22, VR6);
++ vpmsumw(VR7, VR23, VR7);
++
++ // Now reduce the tail (0 - 112 bytes)
++ cmpdi(CCR0, rIdx, 0);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off16, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off32, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off48,constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off64, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off80, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++ beq(CCR0, L_XOR);
++
++ lvx(VR16, buf); addi(buf, buf, 16);
++ lvx(VR17, off96, constantsPos);
++ vpmsumw(VR16, VR16, VR17);
++ vxor(VR0, VR0, VR16);
++
++ // Now xor all the parallel chunks together
++ BIND(L_XOR);
++ vxor(VR0, VR0, VR1);
++ vxor(VR2, VR2, VR3);
++ vxor(VR4, VR4, VR5);
++ vxor(VR6, VR6, VR7);
++
++ vxor(VR0, VR0, VR2);
++ vxor(VR4, VR4, VR6);
++
++ vxor(VR0, VR0, VR4);
++
++ b(L_barrett_reduction);
++
++ BIND(L_first_warm_up_done);
++ lvx(const1, constantsPos);
++ addi(constantsPos, constantsPos, 16);
++ vpmsumd(VR8, VR16, const1);
++ vpmsumd(VR9, VR17, const1);
++ vpmsumd(VR10, VR18, const1);
++ vpmsumd(VR11, VR19, const1);
++ vpmsumd(VR12, VR20, const1);
++ vpmsumd(VR13, VR21, const1);
++ vpmsumd(VR14, VR22, const1);
++ vpmsumd(VR15, VR23, const1);
++ b(L_second_cool_down);
++
++ BIND(L_barrett_reduction);
++
++ lvx(const1, barretConstants);
++ addi(barretConstants, barretConstants, 16);
++ lvx(const2, barretConstants);
++
++ vsldoi(VR1, VR0, VR0, -8);
++ vxor(VR0, VR0, VR1); // xor two 64 bit results together
++
++ // shift left one bit
++ vspltisb(VR1, 1);
++ vsl(VR0, VR0, VR1);
++
++ vand(VR0, VR0, mask_64bit);
++
++ /*
++ * The reflected version of Barrett reduction. Instead of bit
++ * reflecting our data (which is expensive to do), we bit reflect our
++ * constants and our algorithm, which means the intermediate data in
++ * our vector registers goes from 0-63 instead of 63-0. We can reflect
++ * the algorithm because we don't carry in mod 2 arithmetic.
++ */
++ vand(VR1, VR0, mask_32bit); // bottom 32 bits of a
++ vpmsumd(VR1, VR1, const1); // ma
++ vand(VR1, VR1, mask_32bit); // bottom 32bits of ma
++ vpmsumd(VR1, VR1, const2); // qn */
++ vxor(VR0, VR0, VR1); // a - qn, subtraction is xor in GF(2)
++
++ /*
++ * Since we are bit reflected, the result (ie the low 32 bits) is in
++ * the high 32 bits. We just need to shift it left 4 bytes
++ * V0 [ 0 1 X 3 ]
++ * V0 [ 0 X 2 3 ]
++ */
++ vsldoi(VR0, VR0, zeroes, 4); // shift result into top 64 bits of
++
++ // Get it into r3
++ mfvrd(crc, VR0);
++
++ BIND(L_end);
++
++ offsetInt = 0;
++ // Restore non-volatile Vector registers (frameless).
++ offsetInt -= 16; li(offset, -16); lvx(VR20, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR21, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR22, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR23, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR24, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR25, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR26, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR27, offset, R1_SP);
++ offsetInt -= 16; addi(offset, offset, -16); lvx(VR28, offset, R1_SP);
++ offsetInt -= 8; ld(R22, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R23, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R24, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R25, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R26, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R27, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R28, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R29, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R30, offsetInt, R1_SP);
++ offsetInt -= 8; ld(R31, offsetInt, R1_SP);
++}
++
+ void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len,
Register table, Register tmp) {
+ assert_different_registers(crc, buf, /* len, not used!! */ table, tmp);
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp
+@@ -656,6 +656,13 @@
+ Register tc0, Register tc1, Register tc2, Register tc3);
+ void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
+ Register t0, Register t1, Register t2, Register t3);
++ void kernel_crc32_1word_vpmsumd(Register crc, Register buf, Register len, Register
table,
++ Register constants, Register barretConstants,
++ Register t0, Register t1, Register t2, Register t3, Register
t4);
++ void kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
++ Register constants, Register barretConstants,
++ Register t0, Register t1, Register t2);
++
+ void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table,
Register tmp);
+
+ //
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+@@ -2482,9 +2482,7 @@
+ * R5_ARG3 - int length (of buffer)
+ *
+ * scratch:
+- * R6_ARG4 - crc table address
+- * R7_ARG5 - tmp1
+- * R8_ARG6 - tmp2
++ * R2, R6-R12
+ *
+ * Ouput:
+ * R3_RET - int crc result
+@@ -2496,28 +2494,62 @@
+ address start = __ function_entry(); // Remember stub start address (is rtn
value).
+
+ // arguments to kernel_crc32:
+- Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
+- Register data = R4_ARG2; // source byte array
+- Register dataLen = R5_ARG3; // #bytes to process
+- Register table = R6_ARG4; // crc table address
+-
+- Register t0 = R9; // work reg for kernel* emitters
+- Register t1 = R10; // work reg for kernel* emitters
+- Register t2 = R11; // work reg for kernel* emitters
+- Register t3 = R12; // work reg for kernel* emitters
+-
+- BLOCK_COMMENT("Stub body {");
+- assert_different_registers(crc, data, dataLen, table);
+-
+- StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+-
+- __ kernel_crc32_1byte(crc, data, dataLen, table, t0, t1, t2, t3);
+-
+- BLOCK_COMMENT("return");
+- __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
+- __ blr();
+-
+- BLOCK_COMMENT("} Stub body");
++ const Register crc = R3_ARG1; // Current checksum, preset by caller or result
from previous call.
++ const Register data = R4_ARG2; // source byte array
++ const Register dataLen = R5_ARG3; // #bytes to process
++
++ const Register table = R6; // crc table address
++
++#ifdef VM_LITTLE_ENDIAN
++ if (VM_Version::has_vpmsumb()) {
++ const Register constants = R2; // constants address
++ const Register bconstants = R8; // barret table address
++
++ const Register t0 = R9;
++ const Register t1 = R10;
++ const Register t2 = R11;
++ const Register t3 = R12;
++ const Register t4 = R7;
++
++ BLOCK_COMMENT("Stub body {");
++ assert_different_registers(crc, data, dataLen, table);
++
++ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
++ StubRoutines::ppc64::generate_load_crc_constants_addr(_masm, constants);
++ StubRoutines::ppc64::generate_load_crc_barret_constants_addr(_masm, bconstants);
++
++ __ kernel_crc32_1word_vpmsumd(crc, data, dataLen, table, constants, bconstants,
t0, t1, t2, t3, t4);
++
++ BLOCK_COMMENT("return");
++ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
++ __ blr();
++
++ BLOCK_COMMENT("} Stub body");
++ } else
++#endif
++ {
++ const Register t0 = R2;
++ const Register t1 = R7;
++ const Register t2 = R8;
++ const Register t3 = R9;
++ const Register tc0 = R10;
++ const Register tc1 = R11;
++ const Register tc2 = R12;
++
++ BLOCK_COMMENT("Stub body {");
++ assert_different_registers(crc, data, dataLen, table);
++
++ StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
++
++ __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2,
table);
++
++ BLOCK_COMMENT("return");
++ __ mr_if_needed(R3_RET, crc); // Updated crc is function result. No copying
required (R3_ARG1 == R3_RET).
++ __ blr();
++
++ BLOCK_COMMENT("} Stub body");
++ }
++
+ return start;
+ }
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.cpp
+@@ -37,6 +37,311 @@
+ __ load_const(table, StubRoutines::_crc_table_adr);
+ }
+
++void StubRoutines::ppc64::generate_load_crc_constants_addr(MacroAssembler* masm,
Register table) {
++ __ load_const_optimized(table, (address)StubRoutines::ppc64::_constants, R0);
++}
++
++void StubRoutines::ppc64::generate_load_crc_barret_constants_addr(MacroAssembler* masm,
Register table) {
++ __ load_const_optimized(table, (address)StubRoutines::ppc64::_barret_constants, R0);
++}
++
++juint* StubRoutines::ppc64::generate_crc_constants() {
++ juint constants[CRC32_CONSTANTS_SIZE] = {
++ // Reduce 262144 kbits to 1024 bits
++ 0x99ea94a8UL, 0x00000000UL, 0x651797d2UL, 0x00000001UL, // x^261120 mod
p(x)` << 1, x^261184 mod p(x)` << 1
++ 0x945a8420UL, 0x00000000UL, 0x21e0d56cUL, 0x00000000UL, // x^260096 mod
p(x)` << 1, x^260160 mod p(x)` << 1
++ 0x30762706UL, 0x00000000UL, 0x0f95ecaaUL, 0x00000000UL, // x^259072 mod
p(x)` << 1, x^259136 mod p(x)` << 1
++ 0xa52fc582UL, 0x00000001UL, 0xebd224acUL, 0x00000001UL, // x^258048 mod
p(x)` << 1, x^258112 mod p(x)` << 1
++ 0xa4a7167aUL, 0x00000001UL, 0x0ccb97caUL, 0x00000000UL, // x^257024 mod
p(x)` << 1, x^257088 mod p(x)` << 1
++ 0x0c18249aUL, 0x00000000UL, 0x006ec8a8UL, 0x00000001UL, // x^256000 mod
p(x)` << 1, x^256064 mod p(x)` << 1
++ 0xa924ae7cUL, 0x00000000UL, 0x4f58f196UL, 0x00000001UL, // x^254976 mod
p(x)` << 1, x^255040 mod p(x)` << 1
++ 0xe12ccc12UL, 0x00000001UL, 0xa7192ca6UL, 0x00000001UL, // x^253952 mod
p(x)` << 1, x^254016 mod p(x)` << 1
++ 0xa0b9d4acUL, 0x00000000UL, 0x9a64bab2UL, 0x00000001UL, // x^252928 mod
p(x)` << 1, x^252992 mod p(x)` << 1
++ 0x95e8ddfeUL, 0x00000000UL, 0x14f4ed2eUL, 0x00000000UL, // x^251904 mod
p(x)` << 1, x^251968 mod p(x)` << 1
++ 0x233fddc4UL, 0x00000000UL, 0x1092b6a2UL, 0x00000001UL, // x^250880 mod
p(x)` << 1, x^250944 mod p(x)` << 1
++ 0xb4529b62UL, 0x00000001UL, 0xc8a1629cUL, 0x00000000UL, // x^249856 mod
p(x)` << 1, x^249920 mod p(x)` << 1
++ 0xa7fa0e64UL, 0x00000001UL, 0x7bf32e8eUL, 0x00000001UL, // x^248832 mod
p(x)` << 1, x^248896 mod p(x)` << 1
++ 0xb5334592UL, 0x00000001UL, 0xf8cc6582UL, 0x00000001UL, // x^247808 mod
p(x)` << 1, x^247872 mod p(x)` << 1
++ 0x1f8ee1b4UL, 0x00000001UL, 0x8631ddf0UL, 0x00000000UL, // x^246784 mod
p(x)` << 1, x^246848 mod p(x)` << 1
++ 0x6252e632UL, 0x00000000UL, 0x7e5a76d0UL, 0x00000000UL, // x^245760 mod
p(x)` << 1, x^245824 mod p(x)` << 1
++ 0xab973e84UL, 0x00000000UL, 0x2b09b31cUL, 0x00000000UL, // x^244736 mod
p(x)` << 1, x^244800 mod p(x)` << 1
++ 0x7734f5ecUL, 0x00000000UL, 0xb2df1f84UL, 0x00000001UL, // x^243712 mod
p(x)` << 1, x^243776 mod p(x)` << 1
++ 0x7c547798UL, 0x00000000UL, 0xd6f56afcUL, 0x00000001UL, // x^242688 mod
p(x)` << 1, x^242752 mod p(x)` << 1
++ 0x7ec40210UL, 0x00000000UL, 0xb9b5e70cUL, 0x00000001UL, // x^241664 mod
p(x)` << 1, x^241728 mod p(x)` << 1
++ 0xab1695a8UL, 0x00000001UL, 0x34b626d2UL, 0x00000000UL, // x^240640 mod
p(x)` << 1, x^240704 mod p(x)` << 1
++ 0x90494bbaUL, 0x00000000UL, 0x4c53479aUL, 0x00000001UL, // x^239616 mod
p(x)` << 1, x^239680 mod p(x)` << 1
++ 0x123fb816UL, 0x00000001UL, 0xa6d179a4UL, 0x00000001UL, // x^238592 mod
p(x)` << 1, x^238656 mod p(x)` << 1
++ 0xe188c74cUL, 0x00000001UL, 0x5abd16b4UL, 0x00000001UL, // x^237568 mod
p(x)` << 1, x^237632 mod p(x)` << 1
++ 0xc2d3451cUL, 0x00000001UL, 0x018f9852UL, 0x00000000UL, // x^236544 mod
p(x)` << 1, x^236608 mod p(x)` << 1
++ 0xf55cf1caUL, 0x00000000UL, 0x1fb3084aUL, 0x00000000UL, // x^235520 mod
p(x)` << 1, x^235584 mod p(x)` << 1
++ 0xa0531540UL, 0x00000001UL, 0xc53dfb04UL, 0x00000000UL, // x^234496 mod
p(x)` << 1, x^234560 mod p(x)` << 1
++ 0x32cd7ebcUL, 0x00000001UL, 0xe10c9ad6UL, 0x00000000UL, // x^233472 mod
p(x)` << 1, x^233536 mod p(x)` << 1
++ 0x73ab7f36UL, 0x00000000UL, 0x25aa994aUL, 0x00000000UL, // x^232448 mod
p(x)` << 1, x^232512 mod p(x)` << 1
++ 0x41aed1c2UL, 0x00000000UL, 0xfa3a74c4UL, 0x00000000UL, // x^231424 mod
p(x)` << 1, x^231488 mod p(x)` << 1
++ 0x36c53800UL, 0x00000001UL, 0x33eb3f40UL, 0x00000000UL, // x^230400 mod
p(x)` << 1, x^230464 mod p(x)` << 1
++ 0x26835a30UL, 0x00000001UL, 0x7193f296UL, 0x00000001UL, // x^229376 mod
p(x)` << 1, x^229440 mod p(x)` << 1
++ 0x6241b502UL, 0x00000000UL, 0x43f6c86aUL, 0x00000000UL, // x^228352 mod
p(x)` << 1, x^228416 mod p(x)` << 1
++ 0xd5196ad4UL, 0x00000000UL, 0x6b513ec6UL, 0x00000001UL, // x^227328 mod
p(x)` << 1, x^227392 mod p(x)` << 1
++ 0x9cfa769aUL, 0x00000000UL, 0xc8f25b4eUL, 0x00000000UL, // x^226304 mod
p(x)` << 1, x^226368 mod p(x)` << 1
++ 0x920e5df4UL, 0x00000000UL, 0xa45048ecUL, 0x00000001UL, // x^225280 mod
p(x)` << 1, x^225344 mod p(x)` << 1
++ 0x69dc310eUL, 0x00000001UL, 0x0c441004UL, 0x00000000UL, // x^224256 mod
p(x)` << 1, x^224320 mod p(x)` << 1
++ 0x09fc331cUL, 0x00000000UL, 0x0e17cad6UL, 0x00000000UL, // x^223232 mod
p(x)` << 1, x^223296 mod p(x)` << 1
++ 0x0d94a81eUL, 0x00000001UL, 0x253ae964UL, 0x00000001UL, // x^222208 mod
p(x)` << 1, x^222272 mod p(x)` << 1
++ 0x27a20ab2UL, 0x00000000UL, 0xd7c88ebcUL, 0x00000001UL, // x^221184 mod
p(x)` << 1, x^221248 mod p(x)` << 1
++ 0x14f87504UL, 0x00000001UL, 0xe7ca913aUL, 0x00000001UL, // x^220160 mod
p(x)` << 1, x^220224 mod p(x)` << 1
++ 0x4b076d96UL, 0x00000000UL, 0x33ed078aUL, 0x00000000UL, // x^219136 mod
p(x)` << 1, x^219200 mod p(x)` << 1
++ 0xda4d1e74UL, 0x00000000UL, 0xe1839c78UL, 0x00000000UL, // x^218112 mod
p(x)` << 1, x^218176 mod p(x)` << 1
++ 0x1b81f672UL, 0x00000000UL, 0x322b267eUL, 0x00000001UL, // x^217088 mod
p(x)` << 1, x^217152 mod p(x)` << 1
++ 0x9367c988UL, 0x00000000UL, 0x638231b6UL, 0x00000000UL, // x^216064 mod
p(x)` << 1, x^216128 mod p(x)` << 1
++ 0x717214caUL, 0x00000001UL, 0xee7f16f4UL, 0x00000001UL, // x^215040 mod
p(x)` << 1, x^215104 mod p(x)` << 1
++ 0x9f47d820UL, 0x00000000UL, 0x17d9924aUL, 0x00000001UL, // x^214016 mod
p(x)` << 1, x^214080 mod p(x)` << 1
++ 0x0d9a47d2UL, 0x00000001UL, 0xe1a9e0c4UL, 0x00000000UL, // x^212992 mod
p(x)` << 1, x^213056 mod p(x)` << 1
++ 0xa696c58cUL, 0x00000000UL, 0x403731dcUL, 0x00000001UL, // x^211968 mod
p(x)` << 1, x^212032 mod p(x)` << 1
++ 0x2aa28ec6UL, 0x00000000UL, 0xa5ea9682UL, 0x00000001UL, // x^210944 mod
p(x)` << 1, x^211008 mod p(x)` << 1
++ 0xfe18fd9aUL, 0x00000001UL, 0x01c5c578UL, 0x00000001UL, // x^209920 mod
p(x)` << 1, x^209984 mod p(x)` << 1
++ 0x9d4fc1aeUL, 0x00000001UL, 0xdddf6494UL, 0x00000000UL, // x^208896 mod
p(x)` << 1, x^208960 mod p(x)` << 1
++ 0xba0e3deaUL, 0x00000001UL, 0xf1c3db28UL, 0x00000000UL, // x^207872 mod
p(x)` << 1, x^207936 mod p(x)` << 1
++ 0x74b59a5eUL, 0x00000000UL, 0x3112fb9cUL, 0x00000001UL, // x^206848 mod
p(x)` << 1, x^206912 mod p(x)` << 1
++ 0xf2b5ea98UL, 0x00000000UL, 0xb680b906UL, 0x00000000UL, // x^205824 mod
p(x)` << 1, x^205888 mod p(x)` << 1
++ 0x87132676UL, 0x00000001UL, 0x1a282932UL, 0x00000000UL, // x^204800 mod
p(x)` << 1, x^204864 mod p(x)` << 1
++ 0x0a8c6ad4UL, 0x00000001UL, 0x89406e7eUL, 0x00000000UL, // x^203776 mod
p(x)` << 1, x^203840 mod p(x)` << 1
++ 0xe21dfe70UL, 0x00000001UL, 0xdef6be8cUL, 0x00000001UL, // x^202752 mod
p(x)` << 1, x^202816 mod p(x)` << 1
++ 0xda0050e4UL, 0x00000001UL, 0x75258728UL, 0x00000000UL, // x^201728 mod
p(x)` << 1, x^201792 mod p(x)` << 1
++ 0x772172aeUL, 0x00000000UL, 0x9536090aUL, 0x00000001UL, // x^200704 mod
p(x)` << 1, x^200768 mod p(x)` << 1
++ 0xe47724aaUL, 0x00000000UL, 0xf2455bfcUL, 0x00000000UL, // x^199680 mod
p(x)` << 1, x^199744 mod p(x)` << 1
++ 0x3cd63ac4UL, 0x00000000UL, 0x8c40baf4UL, 0x00000001UL, // x^198656 mod
p(x)` << 1, x^198720 mod p(x)` << 1
++ 0xbf47d352UL, 0x00000001UL, 0x4cd390d4UL, 0x00000000UL, // x^197632 mod
p(x)` << 1, x^197696 mod p(x)` << 1
++ 0x8dc1d708UL, 0x00000001UL, 0xe4ece95aUL, 0x00000001UL, // x^196608 mod
p(x)` << 1, x^196672 mod p(x)` << 1
++ 0x2d4620a4UL, 0x00000000UL, 0x1a3ee918UL, 0x00000000UL, // x^195584 mod
p(x)` << 1, x^195648 mod p(x)` << 1
++ 0x58fd1740UL, 0x00000000UL, 0x7c652fb8UL, 0x00000000UL, // x^194560 mod
p(x)` << 1, x^194624 mod p(x)` << 1
++ 0xdadd9bfcUL, 0x00000000UL, 0x1c67842cUL, 0x00000001UL, // x^193536 mod
p(x)` << 1, x^193600 mod p(x)` << 1
++ 0xea2140beUL, 0x00000001UL, 0x254f759cUL, 0x00000000UL, // x^192512 mod
p(x)` << 1, x^192576 mod p(x)` << 1
++ 0x9de128baUL, 0x00000000UL, 0x7ece94caUL, 0x00000000UL, // x^191488 mod
p(x)` << 1, x^191552 mod p(x)` << 1
++ 0x3ac3aa8eUL, 0x00000001UL, 0x38f258c2UL, 0x00000000UL, // x^190464 mod
p(x)` << 1, x^190528 mod p(x)` << 1
++ 0x99980562UL, 0x00000000UL, 0xcdf17b00UL, 0x00000001UL, // x^189440 mod
p(x)` << 1, x^189504 mod p(x)` << 1
++ 0xc1579c86UL, 0x00000001UL, 0x1f882c16UL, 0x00000001UL, // x^188416 mod
p(x)` << 1, x^188480 mod p(x)` << 1
++ 0x68dbbf94UL, 0x00000000UL, 0x00093fc8UL, 0x00000001UL, // x^187392 mod
p(x)` << 1, x^187456 mod p(x)` << 1
++ 0x4509fb04UL, 0x00000000UL, 0xcd684f16UL, 0x00000001UL, // x^186368 mod
p(x)` << 1, x^186432 mod p(x)` << 1
++ 0x202f6398UL, 0x00000001UL, 0x4bc6a70aUL, 0x00000000UL, // x^185344 mod
p(x)` << 1, x^185408 mod p(x)` << 1
++ 0x3aea243eUL, 0x00000001UL, 0x4fc7e8e4UL, 0x00000000UL, // x^184320 mod
p(x)` << 1, x^184384 mod p(x)` << 1
++ 0xb4052ae6UL, 0x00000001UL, 0x30103f1cUL, 0x00000001UL, // x^183296 mod
p(x)` << 1, x^183360 mod p(x)` << 1
++ 0xcd2a0ae8UL, 0x00000001UL, 0x11b0024cUL, 0x00000001UL, // x^182272 mod
p(x)` << 1, x^182336 mod p(x)` << 1
++ 0xfe4aa8b4UL, 0x00000001UL, 0x0b3079daUL, 0x00000001UL, // x^181248 mod
p(x)` << 1, x^181312 mod p(x)` << 1
++ 0xd1559a42UL, 0x00000001UL, 0x0192bcc2UL, 0x00000001UL, // x^180224 mod
p(x)` << 1, x^180288 mod p(x)` << 1
++ 0xf3e05eccUL, 0x00000001UL, 0x74838d50UL, 0x00000000UL, // x^179200 mod
p(x)` << 1, x^179264 mod p(x)` << 1
++ 0x04ddd2ccUL, 0x00000001UL, 0x1b20f520UL, 0x00000000UL, // x^178176 mod
p(x)` << 1, x^178240 mod p(x)` << 1
++ 0x5393153cUL, 0x00000001UL, 0x50c3590aUL, 0x00000000UL, // x^177152 mod
p(x)` << 1, x^177216 mod p(x)` << 1
++ 0x57e942c6UL, 0x00000000UL, 0xb41cac8eUL, 0x00000000UL, // x^176128 mod
p(x)` << 1, x^176192 mod p(x)` << 1
++ 0x2c633850UL, 0x00000001UL, 0x0c72cc78UL, 0x00000000UL, // x^175104 mod
p(x)` << 1, x^175168 mod p(x)` << 1
++ 0xebcaae4cUL, 0x00000000UL, 0x30cdb032UL, 0x00000000UL, // x^174080 mod
p(x)` << 1, x^174144 mod p(x)` << 1
++ 0x3ee532a6UL, 0x00000001UL, 0x3e09fc32UL, 0x00000001UL, // x^173056 mod
p(x)` << 1, x^173120 mod p(x)` << 1
++ 0xbf0cbc7eUL, 0x00000001UL, 0x1ed624d2UL, 0x00000000UL, // x^172032 mod
p(x)` << 1, x^172096 mod p(x)` << 1
++ 0xd50b7a5aUL, 0x00000000UL, 0x781aee1aUL, 0x00000000UL, // x^171008 mod
p(x)` << 1, x^171072 mod p(x)` << 1
++ 0x02fca6e8UL, 0x00000000UL, 0xc4d8348cUL, 0x00000001UL, // x^169984 mod
p(x)` << 1, x^170048 mod p(x)` << 1
++ 0x7af40044UL, 0x00000000UL, 0x57a40336UL, 0x00000000UL, // x^168960 mod
p(x)` << 1, x^169024 mod p(x)` << 1
++ 0x16178744UL, 0x00000000UL, 0x85544940UL, 0x00000000UL, // x^167936 mod
p(x)` << 1, x^168000 mod p(x)` << 1
++ 0x4c177458UL, 0x00000001UL, 0x9cd21e80UL, 0x00000001UL, // x^166912 mod
p(x)` << 1, x^166976 mod p(x)` << 1
++ 0x1b6ddf04UL, 0x00000001UL, 0x3eb95bc0UL, 0x00000001UL, // x^165888 mod
p(x)` << 1, x^165952 mod p(x)` << 1
++ 0xf3e29cccUL, 0x00000001UL, 0xdfc9fdfcUL, 0x00000001UL, // x^164864 mod
p(x)` << 1, x^164928 mod p(x)` << 1
++ 0x35ae7562UL, 0x00000001UL, 0xcd028bc2UL, 0x00000000UL, // x^163840 mod
p(x)` << 1, x^163904 mod p(x)` << 1
++ 0x90ef812cUL, 0x00000001UL, 0x90db8c44UL, 0x00000000UL, // x^162816 mod
p(x)` << 1, x^162880 mod p(x)` << 1
++ 0x67a2c786UL, 0x00000000UL, 0x0010a4ceUL, 0x00000001UL, // x^161792 mod
p(x)` << 1, x^161856 mod p(x)` << 1
++ 0x48b9496cUL, 0x00000000UL, 0xc8f4c72cUL, 0x00000001UL, // x^160768 mod
p(x)` << 1, x^160832 mod p(x)` << 1
++ 0x5a422de6UL, 0x00000001UL, 0x1c26170cUL, 0x00000000UL, // x^159744 mod
p(x)` << 1, x^159808 mod p(x)` << 1
++ 0xef0e3640UL, 0x00000001UL, 0xe3fccf68UL, 0x00000000UL, // x^158720 mod
p(x)` << 1, x^158784 mod p(x)` << 1
++ 0x006d2d26UL, 0x00000001UL, 0xd513ed24UL, 0x00000000UL, // x^157696 mod
p(x)` << 1, x^157760 mod p(x)` << 1
++ 0x170d56d6UL, 0x00000001UL, 0x141beadaUL, 0x00000000UL, // x^156672 mod
p(x)` << 1, x^156736 mod p(x)` << 1
++ 0xa5fb613cUL, 0x00000000UL, 0x1071aea0UL, 0x00000001UL, // x^155648 mod
p(x)` << 1, x^155712 mod p(x)` << 1
++ 0x40bbf7fcUL, 0x00000000UL, 0x2e19080aUL, 0x00000001UL, // x^154624 mod
p(x)` << 1, x^154688 mod p(x)` << 1
++ 0x6ac3a5b2UL, 0x00000001UL, 0x00ecf826UL, 0x00000001UL, // x^153600 mod
p(x)` << 1, x^153664 mod p(x)` << 1
++ 0xabf16230UL, 0x00000000UL, 0x69b09412UL, 0x00000000UL, // x^152576 mod
p(x)` << 1, x^152640 mod p(x)` << 1
++ 0xebe23facUL, 0x00000001UL, 0x22297bacUL, 0x00000001UL, // x^151552 mod
p(x)` << 1, x^151616 mod p(x)` << 1
++ 0x8b6a0894UL, 0x00000000UL, 0xe9e4b068UL, 0x00000000UL, // x^150528 mod
p(x)` << 1, x^150592 mod p(x)` << 1
++ 0x288ea478UL, 0x00000001UL, 0x4b38651aUL, 0x00000000UL, // x^149504 mod
p(x)` << 1, x^149568 mod p(x)` << 1
++ 0x6619c442UL, 0x00000001UL, 0x468360e2UL, 0x00000001UL, // x^148480 mod
p(x)` << 1, x^148544 mod p(x)` << 1
++ 0x86230038UL, 0x00000000UL, 0x121c2408UL, 0x00000000UL, // x^147456 mod
p(x)` << 1, x^147520 mod p(x)` << 1
++ 0x7746a756UL, 0x00000001UL, 0xda7e7d08UL, 0x00000000UL, // x^146432 mod
p(x)` << 1, x^146496 mod p(x)` << 1
++ 0x91b8f8f8UL, 0x00000001UL, 0x058d7652UL, 0x00000001UL, // x^145408 mod
p(x)` << 1, x^145472 mod p(x)` << 1
++ 0x8e167708UL, 0x00000000UL, 0x4a098a90UL, 0x00000001UL, // x^144384 mod
p(x)` << 1, x^144448 mod p(x)` << 1
++ 0x48b22d54UL, 0x00000001UL, 0x20dbe72eUL, 0x00000000UL, // x^143360 mod
p(x)` << 1, x^143424 mod p(x)` << 1
++ 0x44ba2c3cUL, 0x00000000UL, 0x1e7323e8UL, 0x00000001UL, // x^142336 mod
p(x)` << 1, x^142400 mod p(x)` << 1
++ 0xb54d2b52UL, 0x00000000UL, 0xd5d4bf94UL, 0x00000000UL, // x^141312 mod
p(x)` << 1, x^141376 mod p(x)` << 1
++ 0x05a4fd8aUL, 0x00000000UL, 0x99d8746cUL, 0x00000001UL, // x^140288 mod
p(x)` << 1, x^140352 mod p(x)` << 1
++ 0x39f9fc46UL, 0x00000001UL, 0xce9ca8a0UL, 0x00000000UL, // x^139264 mod
p(x)` << 1, x^139328 mod p(x)` << 1
++ 0x5a1fa824UL, 0x00000001UL, 0x136edeceUL, 0x00000000UL, // x^138240 mod
p(x)` << 1, x^138304 mod p(x)` << 1
++ 0x0a61ae4cUL, 0x00000000UL, 0x9b92a068UL, 0x00000001UL, // x^137216 mod
p(x)` << 1, x^137280 mod p(x)` << 1
++ 0x45e9113eUL, 0x00000001UL, 0x71d62206UL, 0x00000000UL, // x^136192 mod
p(x)` << 1, x^136256 mod p(x)` << 1
++ 0x6a348448UL, 0x00000000UL, 0xdfc50158UL, 0x00000000UL, // x^135168 mod
p(x)` << 1, x^135232 mod p(x)` << 1
++ 0x4d80a08cUL, 0x00000000UL, 0x517626bcUL, 0x00000001UL, // x^134144 mod
p(x)` << 1, x^134208 mod p(x)` << 1
++ 0x4b6837a0UL, 0x00000001UL, 0x48d1e4faUL, 0x00000001UL, // x^133120 mod
p(x)` << 1, x^133184 mod p(x)` << 1
++ 0x6896a7fcUL, 0x00000001UL, 0x94d8266eUL, 0x00000000UL, // x^132096 mod
p(x)` << 1, x^132160 mod p(x)` << 1
++ 0x4f187140UL, 0x00000001UL, 0x606c5e34UL, 0x00000000UL, // x^131072 mod
p(x)` << 1, x^131136 mod p(x)` << 1
++ 0x9581b9daUL, 0x00000001UL, 0x9766beaaUL, 0x00000001UL, // x^130048 mod
p(x)` << 1, x^130112 mod p(x)` << 1
++ 0x091bc984UL, 0x00000001UL, 0xd80c506cUL, 0x00000001UL, // x^129024 mod
p(x)` << 1, x^129088 mod p(x)` << 1
++ 0x1067223cUL, 0x00000000UL, 0x1e73837cUL, 0x00000000UL, // x^128000 mod
p(x)` << 1, x^128064 mod p(x)` << 1
++ 0xab16ea02UL, 0x00000001UL, 0x64d587deUL, 0x00000000UL, // x^126976 mod
p(x)` << 1, x^127040 mod p(x)` << 1
++ 0x3c4598a8UL, 0x00000001UL, 0xf4a507b0UL, 0x00000000UL, // x^125952 mod
p(x)` << 1, x^126016 mod p(x)` << 1
++ 0xb3735430UL, 0x00000000UL, 0x40e342fcUL, 0x00000000UL, // x^124928 mod
p(x)` << 1, x^124992 mod p(x)` << 1
++ 0xbb3fc0c0UL, 0x00000001UL, 0xd5ad9c3aUL, 0x00000001UL, // x^123904 mod
p(x)` << 1, x^123968 mod p(x)` << 1
++ 0x570ae19cUL, 0x00000001UL, 0x94a691a4UL, 0x00000000UL, // x^122880 mod
p(x)` << 1, x^122944 mod p(x)` << 1
++ 0xea910712UL, 0x00000001UL, 0x271ecdfaUL, 0x00000001UL, // x^121856 mod
p(x)` << 1, x^121920 mod p(x)` << 1
++ 0x67127128UL, 0x00000001UL, 0x9e54475aUL, 0x00000000UL, // x^120832 mod
p(x)` << 1, x^120896 mod p(x)` << 1
++ 0x19e790a2UL, 0x00000000UL, 0xc9c099eeUL, 0x00000000UL, // x^119808 mod
p(x)` << 1, x^119872 mod p(x)` << 1
++ 0x3788f710UL, 0x00000000UL, 0x9a2f736cUL, 0x00000000UL, // x^118784 mod
p(x)` << 1, x^118848 mod p(x)` << 1
++ 0x682a160eUL, 0x00000001UL, 0xbb9f4996UL, 0x00000000UL, // x^117760 mod
p(x)` << 1, x^117824 mod p(x)` << 1
++ 0x7f0ebd2eUL, 0x00000000UL, 0xdb688050UL, 0x00000001UL, // x^116736 mod
p(x)` << 1, x^116800 mod p(x)` << 1
++ 0x2b032080UL, 0x00000000UL, 0xe9b10af4UL, 0x00000000UL, // x^115712 mod
p(x)` << 1, x^115776 mod p(x)` << 1
++ 0xcfd1664aUL, 0x00000000UL, 0x2d4545e4UL, 0x00000001UL, // x^114688 mod
p(x)` << 1, x^114752 mod p(x)` << 1
++ 0xaa1181c2UL, 0x00000000UL, 0x0361139cUL, 0x00000000UL, // x^113664 mod
p(x)` << 1, x^113728 mod p(x)` << 1
++ 0xddd08002UL, 0x00000000UL, 0xa5a1a3a8UL, 0x00000001UL, // x^112640 mod
p(x)` << 1, x^112704 mod p(x)` << 1
++ 0xe8dd0446UL, 0x00000000UL, 0x6844e0b0UL, 0x00000000UL, // x^111616 mod
p(x)` << 1, x^111680 mod p(x)` << 1
++ 0xbbd94a00UL, 0x00000001UL, 0xc3762f28UL, 0x00000000UL, // x^110592 mod
p(x)` << 1, x^110656 mod p(x)` << 1
++ 0xab6cd180UL, 0x00000000UL, 0xd26287a2UL, 0x00000001UL, // x^109568 mod
p(x)` << 1, x^109632 mod p(x)` << 1
++ 0x31803ce2UL, 0x00000000UL, 0xf6f0bba8UL, 0x00000001UL, // x^108544 mod
p(x)` << 1, x^108608 mod p(x)` << 1
++ 0x24f40b0cUL, 0x00000000UL, 0x2ffabd62UL, 0x00000000UL, // x^107520 mod
p(x)` << 1, x^107584 mod p(x)` << 1
++ 0xba1d9834UL, 0x00000001UL, 0xfb4516b8UL, 0x00000000UL, // x^106496 mod
p(x)` << 1, x^106560 mod p(x)` << 1
++ 0x04de61aaUL, 0x00000001UL, 0x8cfa961cUL, 0x00000001UL, // x^105472 mod
p(x)` << 1, x^105536 mod p(x)` << 1
++ 0x13e40d46UL, 0x00000001UL, 0x9e588d52UL, 0x00000001UL, // x^104448 mod
p(x)` << 1, x^104512 mod p(x)` << 1
++ 0x415598a0UL, 0x00000001UL, 0x180f0bbcUL, 0x00000001UL, // x^103424 mod
p(x)` << 1, x^103488 mod p(x)` << 1
++ 0xbf6c8c90UL, 0x00000000UL, 0xe1d9177aUL, 0x00000000UL, // x^102400 mod
p(x)` << 1, x^102464 mod p(x)` << 1
++ 0x788b0504UL, 0x00000001UL, 0x05abc27cUL, 0x00000001UL, // x^101376 mod
p(x)` << 1, x^101440 mod p(x)` << 1
++ 0x38385d02UL, 0x00000000UL, 0x972e4a58UL, 0x00000000UL, // x^100352 mod
p(x)` << 1, x^100416 mod p(x)` << 1
++ 0xb6c83844UL, 0x00000001UL, 0x83499a5eUL, 0x00000001UL, // x^99328 mod p(x)`
<< 1, x^99392 mod p(x)` << 1
++ 0x51061a8aUL, 0x00000000UL, 0xc96a8ccaUL, 0x00000001UL, // x^98304 mod p(x)`
<< 1, x^98368 mod p(x)` << 1
++ 0x7351388aUL, 0x00000001UL, 0xa1a5b60cUL, 0x00000001UL, // x^97280 mod p(x)`
<< 1, x^97344 mod p(x)` << 1
++ 0x32928f92UL, 0x00000001UL, 0xe4b6ac9cUL, 0x00000000UL, // x^96256 mod p(x)`
<< 1, x^96320 mod p(x)` << 1
++ 0xe6b4f48aUL, 0x00000000UL, 0x807e7f5aUL, 0x00000001UL, // x^95232 mod p(x)`
<< 1, x^95296 mod p(x)` << 1
++ 0x39d15e90UL, 0x00000000UL, 0x7a7e3bc8UL, 0x00000001UL, // x^94208 mod p(x)`
<< 1, x^94272 mod p(x)` << 1
++ 0x312d6074UL, 0x00000000UL, 0xd73975daUL, 0x00000000UL, // x^93184 mod p(x)`
<< 1, x^93248 mod p(x)` << 1
++ 0x7bbb2cc4UL, 0x00000001UL, 0x7375d038UL, 0x00000001UL, // x^92160 mod p(x)`
<< 1, x^92224 mod p(x)` << 1
++ 0x6ded3e18UL, 0x00000001UL, 0x193680bcUL, 0x00000000UL, // x^91136 mod p(x)`
<< 1, x^91200 mod p(x)` << 1
++ 0xf1638b16UL, 0x00000000UL, 0x999b06f6UL, 0x00000000UL, // x^90112 mod p(x)`
<< 1, x^90176 mod p(x)` << 1
++ 0xd38b9eccUL, 0x00000001UL, 0xf685d2b8UL, 0x00000001UL, // x^89088 mod p(x)`
<< 1, x^89152 mod p(x)` << 1
++ 0x8b8d09dcUL, 0x00000001UL, 0xf4ecbed2UL, 0x00000001UL, // x^88064 mod p(x)`
<< 1, x^88128 mod p(x)` << 1
++ 0xe7bc27d2UL, 0x00000000UL, 0xba16f1a0UL, 0x00000000UL, // x^87040 mod p(x)`
<< 1, x^87104 mod p(x)` << 1
++ 0x275e1e96UL, 0x00000000UL, 0x15aceac4UL, 0x00000001UL, // x^86016 mod p(x)`
<< 1, x^86080 mod p(x)` << 1
++ 0xe2e3031eUL, 0x00000000UL, 0xaeff6292UL, 0x00000001UL, // x^84992 mod p(x)`
<< 1, x^85056 mod p(x)` << 1
++ 0x041c84d8UL, 0x00000001UL, 0x9640124cUL, 0x00000000UL, // x^83968 mod p(x)`
<< 1, x^84032 mod p(x)` << 1
++ 0x706ce672UL, 0x00000000UL, 0x14f41f02UL, 0x00000001UL, // x^82944 mod p(x)`
<< 1, x^83008 mod p(x)` << 1
++ 0x5d5070daUL, 0x00000001UL, 0x9c5f3586UL, 0x00000000UL, // x^81920 mod p(x)`
<< 1, x^81984 mod p(x)` << 1
++ 0x38f9493aUL, 0x00000000UL, 0x878275faUL, 0x00000001UL, // x^80896 mod p(x)`
<< 1, x^80960 mod p(x)` << 1
++ 0xa3348a76UL, 0x00000000UL, 0xddc42ce8UL, 0x00000000UL, // x^79872 mod p(x)`
<< 1, x^79936 mod p(x)` << 1
++ 0xad0aab92UL, 0x00000001UL, 0x81d2c73aUL, 0x00000001UL, // x^78848 mod p(x)`
<< 1, x^78912 mod p(x)` << 1
++ 0x9e85f712UL, 0x00000001UL, 0x41c9320aUL, 0x00000001UL, // x^77824 mod p(x)`
<< 1, x^77888 mod p(x)` << 1
++ 0x5a871e76UL, 0x00000000UL, 0x5235719aUL, 0x00000001UL, // x^76800 mod p(x)`
<< 1, x^76864 mod p(x)` << 1
++ 0x7249c662UL, 0x00000001UL, 0xbe27d804UL, 0x00000000UL, // x^75776 mod p(x)`
<< 1, x^75840 mod p(x)` << 1
++ 0x3a084712UL, 0x00000000UL, 0x6242d45aUL, 0x00000000UL, // x^74752 mod p(x)`
<< 1, x^74816 mod p(x)` << 1
++ 0xed438478UL, 0x00000000UL, 0x9a53638eUL, 0x00000000UL, // x^73728 mod p(x)`
<< 1, x^73792 mod p(x)` << 1
++ 0xabac34ccUL, 0x00000000UL, 0x001ecfb6UL, 0x00000001UL, // x^72704 mod p(x)`
<< 1, x^72768 mod p(x)` << 1
++ 0x5f35ef3eUL, 0x00000000UL, 0x6d7c2d64UL, 0x00000001UL, // x^71680 mod p(x)`
<< 1, x^71744 mod p(x)` << 1
++ 0x47d6608cUL, 0x00000000UL, 0xd0ce46c0UL, 0x00000001UL, // x^70656 mod p(x)`
<< 1, x^70720 mod p(x)` << 1
++ 0x2d01470eUL, 0x00000000UL, 0x24c907b4UL, 0x00000001UL, // x^69632 mod p(x)`
<< 1, x^69696 mod p(x)` << 1
++ 0x58bbc7b0UL, 0x00000001UL, 0x18a555caUL, 0x00000000UL, // x^68608 mod p(x)`
<< 1, x^68672 mod p(x)` << 1
++ 0xc0a23e8eUL, 0x00000000UL, 0x6b0980bcUL, 0x00000000UL, // x^67584 mod p(x)`
<< 1, x^67648 mod p(x)` << 1
++ 0xebd85c88UL, 0x00000001UL, 0x8bbba964UL, 0x00000000UL, // x^66560 mod p(x)`
<< 1, x^66624 mod p(x)` << 1
++ 0x9ee20bb2UL, 0x00000001UL, 0x070a5a1eUL, 0x00000001UL, // x^65536 mod p(x)`
<< 1, x^65600 mod p(x)` << 1
++ 0xacabf2d6UL, 0x00000001UL, 0x2204322aUL, 0x00000000UL, // x^64512 mod p(x)`
<< 1, x^64576 mod p(x)` << 1
++ 0xb7963d56UL, 0x00000001UL, 0xa27524d0UL, 0x00000000UL, // x^63488 mod p(x)`
<< 1, x^63552 mod p(x)` << 1
++ 0x7bffa1feUL, 0x00000001UL, 0x20b1e4baUL, 0x00000000UL, // x^62464 mod p(x)`
<< 1, x^62528 mod p(x)` << 1
++ 0x1f15333eUL, 0x00000000UL, 0x32cc27fcUL, 0x00000000UL, // x^61440 mod p(x)`
<< 1, x^61504 mod p(x)` << 1
++ 0x8593129eUL, 0x00000001UL, 0x44dd22b8UL, 0x00000000UL, // x^60416 mod p(x)`
<< 1, x^60480 mod p(x)` << 1
++ 0x9cb32602UL, 0x00000001UL, 0xdffc9e0aUL, 0x00000000UL, // x^59392 mod p(x)`
<< 1, x^59456 mod p(x)` << 1
++ 0x42b05cc8UL, 0x00000001UL, 0xb7a0ed14UL, 0x00000001UL, // x^58368 mod p(x)`
<< 1, x^58432 mod p(x)` << 1
++ 0xbe49e7a4UL, 0x00000001UL, 0xc7842488UL, 0x00000000UL, // x^57344 mod p(x)`
<< 1, x^57408 mod p(x)` << 1
++ 0x08f69d6cUL, 0x00000001UL, 0xc02a4feeUL, 0x00000001UL, // x^56320 mod p(x)`
<< 1, x^56384 mod p(x)` << 1
++ 0x6c0971f0UL, 0x00000000UL, 0x3c273778UL, 0x00000000UL, // x^55296 mod p(x)`
<< 1, x^55360 mod p(x)` << 1
++ 0x5b16467aUL, 0x00000000UL, 0xd63f8894UL, 0x00000001UL, // x^54272 mod p(x)`
<< 1, x^54336 mod p(x)` << 1
++ 0x551a628eUL, 0x00000001UL, 0x6be557d6UL, 0x00000000UL, // x^53248 mod p(x)`
<< 1, x^53312 mod p(x)` << 1
++ 0x9e42ea92UL, 0x00000001UL, 0x6a7806eaUL, 0x00000000UL, // x^52224 mod p(x)`
<< 1, x^52288 mod p(x)` << 1
++ 0x2fa83ff2UL, 0x00000001UL, 0x6155aa0cUL, 0x00000001UL, // x^51200 mod p(x)`
<< 1, x^51264 mod p(x)` << 1
++ 0x1ca9cde0UL, 0x00000001UL, 0x908650acUL, 0x00000000UL, // x^50176 mod p(x)`
<< 1, x^50240 mod p(x)` << 1
++ 0xc8e5cd74UL, 0x00000000UL, 0xaa5a8084UL, 0x00000000UL, // x^49152 mod p(x)`
<< 1, x^49216 mod p(x)` << 1
++ 0x96c27f0cUL, 0x00000000UL, 0x91bb500aUL, 0x00000001UL, // x^48128 mod p(x)`
<< 1, x^48192 mod p(x)` << 1
++ 0x2baed926UL, 0x00000000UL, 0x64e9bed0UL, 0x00000000UL, // x^47104 mod p(x)`
<< 1, x^47168 mod p(x)` << 1
++ 0x7c8de8d2UL, 0x00000001UL, 0x9444f302UL, 0x00000000UL, // x^46080 mod p(x)`
<< 1, x^46144 mod p(x)` << 1
++ 0xd43d6068UL, 0x00000000UL, 0x9db07d3cUL, 0x00000001UL, // x^45056 mod p(x)`
<< 1, x^45120 mod p(x)` << 1
++ 0xcb2c4b26UL, 0x00000000UL, 0x359e3e6eUL, 0x00000001UL, // x^44032 mod p(x)`
<< 1, x^44096 mod p(x)` << 1
++ 0x45b8da26UL, 0x00000001UL, 0xe4f10dd2UL, 0x00000001UL, // x^43008 mod p(x)`
<< 1, x^43072 mod p(x)` << 1
++ 0x8fff4b08UL, 0x00000001UL, 0x24f5735eUL, 0x00000001UL, // x^41984 mod p(x)`
<< 1, x^42048 mod p(x)` << 1
++ 0x50b58ed0UL, 0x00000001UL, 0x24760a4cUL, 0x00000001UL, // x^40960 mod p(x)`
<< 1, x^41024 mod p(x)` << 1
++ 0x549f39bcUL, 0x00000001UL, 0x0f1fc186UL, 0x00000000UL, // x^39936 mod p(x)`
<< 1, x^40000 mod p(x)` << 1
++ 0xef4d2f42UL, 0x00000000UL, 0x150e4cc4UL, 0x00000000UL, // x^38912 mod p(x)`
<< 1, x^38976 mod p(x)` << 1
++ 0xb1468572UL, 0x00000001UL, 0x2a6204e8UL, 0x00000000UL, // x^37888 mod p(x)`
<< 1, x^37952 mod p(x)` << 1
++ 0x3d7403b2UL, 0x00000001UL, 0xbeb1d432UL, 0x00000000UL, // x^36864 mod p(x)`
<< 1, x^36928 mod p(x)` << 1
++ 0xa4681842UL, 0x00000001UL, 0x35f3f1f0UL, 0x00000001UL, // x^35840 mod p(x)`
<< 1, x^35904 mod p(x)` << 1
++ 0x67714492UL, 0x00000001UL, 0x74fe2232UL, 0x00000000UL, // x^34816 mod p(x)`
<< 1, x^34880 mod p(x)` << 1
++ 0xe599099aUL, 0x00000001UL, 0x1ac6e2baUL, 0x00000000UL, // x^33792 mod p(x)`
<< 1, x^33856 mod p(x)` << 1
++ 0xfe128194UL, 0x00000000UL, 0x13fca91eUL, 0x00000000UL, // x^32768 mod p(x)`
<< 1, x^32832 mod p(x)` << 1
++ 0x77e8b990UL, 0x00000000UL, 0x83f4931eUL, 0x00000001UL, // x^31744 mod p(x)`
<< 1, x^31808 mod p(x)` << 1
++ 0xa267f63aUL, 0x00000001UL, 0xb6d9b4e4UL, 0x00000000UL, // x^30720 mod p(x)`
<< 1, x^30784 mod p(x)` << 1
++ 0x945c245aUL, 0x00000001UL, 0xb5188656UL, 0x00000000UL, // x^29696 mod p(x)`
<< 1, x^29760 mod p(x)` << 1
++ 0x49002e76UL, 0x00000001UL, 0x27a81a84UL, 0x00000000UL, // x^28672 mod p(x)`
<< 1, x^28736 mod p(x)` << 1
++ 0xbb8310a4UL, 0x00000001UL, 0x25699258UL, 0x00000001UL, // x^27648 mod p(x)`
<< 1, x^27712 mod p(x)` << 1
++ 0x9ec60bccUL, 0x00000001UL, 0xb23de796UL, 0x00000001UL, // x^26624 mod p(x)`
<< 1, x^26688 mod p(x)` << 1
++ 0x2d8590aeUL, 0x00000001UL, 0xfe4365dcUL, 0x00000000UL, // x^25600 mod p(x)`
<< 1, x^25664 mod p(x)` << 1
++ 0x65b00684UL, 0x00000000UL, 0xc68f497aUL, 0x00000000UL, // x^24576 mod p(x)`
<< 1, x^24640 mod p(x)` << 1
++ 0x5e5aeadcUL, 0x00000001UL, 0xfbf521eeUL, 0x00000000UL, // x^23552 mod p(x)`
<< 1, x^23616 mod p(x)` << 1
++ 0xb77ff2b0UL, 0x00000000UL, 0x5eac3378UL, 0x00000001UL, // x^22528 mod p(x)`
<< 1, x^22592 mod p(x)` << 1
++ 0x88da2ff6UL, 0x00000001UL, 0x34914b90UL, 0x00000001UL, // x^21504 mod p(x)`
<< 1, x^21568 mod p(x)` << 1
++ 0x63da929aUL, 0x00000000UL, 0x16335cfeUL, 0x00000000UL, // x^20480 mod p(x)`
<< 1, x^20544 mod p(x)` << 1
++ 0x389caa80UL, 0x00000001UL, 0x0372d10cUL, 0x00000001UL, // x^19456 mod p(x)`
<< 1, x^19520 mod p(x)` << 1
++ 0x3db599d2UL, 0x00000001UL, 0x5097b908UL, 0x00000001UL, // x^18432 mod p(x)`
<< 1, x^18496 mod p(x)` << 1
++ 0x22505a86UL, 0x00000001UL, 0x227a7572UL, 0x00000001UL, // x^17408 mod p(x)`
<< 1, x^17472 mod p(x)` << 1
++ 0x6bd72746UL, 0x00000001UL, 0x9a8f75c0UL, 0x00000000UL, // x^16384 mod p(x)`
<< 1, x^16448 mod p(x)` << 1
++ 0xc3faf1d4UL, 0x00000001UL, 0x682c77a2UL, 0x00000000UL, // x^15360 mod p(x)`
<< 1, x^15424 mod p(x)` << 1
++ 0x111c826cUL, 0x00000001UL, 0x231f091cUL, 0x00000000UL, // x^14336 mod p(x)`
<< 1, x^14400 mod p(x)` << 1
++ 0x153e9fb2UL, 0x00000000UL, 0x7d4439f2UL, 0x00000000UL, // x^13312 mod p(x)`
<< 1, x^13376 mod p(x)` << 1
++ 0x2b1f7b60UL, 0x00000000UL, 0x7e221efcUL, 0x00000001UL, // x^12288 mod p(x)`
<< 1, x^12352 mod p(x)` << 1
++ 0xb1dba570UL, 0x00000000UL, 0x67457c38UL, 0x00000001UL, // x^11264 mod p(x)`
<< 1, x^11328 mod p(x)` << 1
++ 0xf6397b76UL, 0x00000001UL, 0xbdf081c4UL, 0x00000000UL, // x^10240 mod p(x)`
<< 1, x^10304 mod p(x)` << 1
++ 0x56335214UL, 0x00000001UL, 0x6286d6b0UL, 0x00000001UL, // x^9216 mod p(x)`
<< 1, x^9280 mod p(x)` << 1
++ 0xd70e3986UL, 0x00000001UL, 0xc84f001cUL, 0x00000000UL, // x^8192 mod p(x)`
<< 1, x^8256 mod p(x)` << 1
++ 0x3701a774UL, 0x00000000UL, 0x64efe7c0UL, 0x00000000UL, // x^7168 mod p(x)`
<< 1, x^7232 mod p(x)` << 1
++ 0xac81ef72UL, 0x00000000UL, 0x0ac2d904UL, 0x00000000UL, // x^6144 mod p(x)`
<< 1, x^6208 mod p(x)` << 1
++ 0x33212464UL, 0x00000001UL, 0xfd226d14UL, 0x00000000UL, // x^5120 mod p(x)`
<< 1, x^5184 mod p(x)` << 1
++ 0xe4e45610UL, 0x00000000UL, 0x1cfd42e0UL, 0x00000001UL, // x^4096 mod p(x)`
<< 1, x^4160 mod p(x)` << 1
++ 0x0c1bd370UL, 0x00000000UL, 0x6e5a5678UL, 0x00000001UL, // x^3072 mod p(x)`
<< 1, x^3136 mod p(x)` << 1
++ 0xa7b9e7a6UL, 0x00000001UL, 0xd888fe22UL, 0x00000001UL, // x^2048 mod p(x)`
<< 1, x^2112 mod p(x)` << 1
++ 0x7d657a10UL, 0x00000000UL, 0xaf77fcd4UL, 0x00000001UL, // x^1024 mod p(x)`
<< 1, x^1088 mod p(x)` << 1
++
++ // Reduce final 1024-2048 bits to 64 bits, shifting 32 bits to include the
trailing 32 bits of zeros
++ 0xec447f11UL, 0x99168a18UL, 0x13e8221eUL, 0xed837b26UL, // x^2048 mod p(x)`,
x^2016 mod p(x)`, x^1984 mod p(x)`, x^1952 mod p(x)`
++ 0x8fd2cd3cUL, 0xe23e954eUL, 0x47b9ce5aUL, 0xc8acdd81UL, // x^1920 mod p(x)`,
x^1888 mod p(x)`, x^1856 mod p(x)`, x^1824 mod p(x)`
++ 0x6b1d2b53UL, 0x92f8befeUL, 0xd4277e25UL, 0xd9ad6d87UL, // x^1792 mod p(x)`,
x^1760 mod p(x)`, x^1728 mod p(x)`, x^1696 mod p(x)`
++ 0x291ea462UL, 0xf38a3556UL, 0x33fbca3bUL, 0xc10ec5e0UL, // x^1664 mod p(x)`,
x^1632 mod p(x)`, x^1600 mod p(x)`, x^1568 mod p(x)`
++ 0x62b6ca4bUL, 0x974ac562UL, 0x82e02e2fUL, 0xc0b55b0eUL, // x^1536 mod p(x)`,
x^1504 mod p(x)`, x^1472 mod p(x)`, x^1440 mod p(x)`
++ 0x784d2a56UL, 0x855712b3UL, 0xe172334dUL, 0x71aa1df0UL, // x^1408 mod p(x)`,
x^1376 mod p(x)`, x^1344 mod p(x)`, x^1312 mod p(x)`
++ 0x0eaee722UL, 0xa5abe9f8UL, 0x3969324dUL, 0xfee3053eUL, // x^1280 mod p(x)`,
x^1248 mod p(x)`, x^1216 mod p(x)`, x^1184 mod p(x)`
++ 0xdb54814cUL, 0x1fa0943dUL, 0x3eb2bd08UL, 0xf44779b9UL, // x^1152 mod p(x)`,
x^1120 mod p(x)`, x^1088 mod p(x)`, x^1056 mod p(x)`
++ 0xd7bbfe6aUL, 0xa53ff440UL, 0x00cc3374UL, 0xf5449b3fUL, // x^1024 mod p(x)`,
x^992 mod p(x)`, x^960 mod p(x)`, x^928 mod p(x)`
++ 0x6325605cUL, 0xebe7e356UL, 0xd777606eUL, 0x6f8346e1UL, // x^896 mod p(x)`,
x^864 mod p(x)`, x^832 mod p(x)`, x^800 mod p(x)`
++ 0xe5b592b8UL, 0xc65a272cUL, 0xc0b95347UL, 0xe3ab4f2aUL, // x^768 mod p(x)`,
x^736 mod p(x)`, x^704 mod p(x)`, x^672 mod p(x)`
++ 0x4721589fUL, 0x5705a9caUL, 0x329ecc11UL, 0xaa2215eaUL, // x^640 mod p(x)`,
x^608 mod p(x)`, x^576 mod p(x)`, x^544 mod p(x)`
++ 0x88d14467UL, 0xe3720acbUL, 0xd95efd26UL, 0x1ed8f66eUL, // x^512 mod p(x)`,
x^480 mod p(x)`, x^448 mod p(x)`, x^416 mod p(x)`
++ 0x15141c31UL, 0xba1aca03UL, 0xa700e96aUL, 0x78ed02d5UL, // x^384 mod p(x)`,
x^352 mod p(x)`, x^320 mod p(x)`, x^288 mod p(x)`
++ 0xed627daeUL, 0xad2a31b3UL, 0x32b39da3UL, 0xba8ccbe8UL, // x^256 mod p(x)`,
x^224 mod p(x)`, x^192 mod p(x)`, x^160 mod p(x)`
++ 0xa06a2517UL, 0x6655004fUL, 0xb1e6b092UL, 0xedb88320UL // x^128 mod p(x)`,
x^96 mod p(x)`, x^64 mod p(x)`, x^32 mod p(x)`
++ };
++
++ juint* ptr = (juint*) malloc(sizeof(juint) * CRC32_CONSTANTS_SIZE);
++ guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
++ guarantee(ptr != NULL, "allocation error of a crc table");
++ memcpy((void*)ptr, constants, sizeof(juint) * CRC32_CONSTANTS_SIZE);
++ return ptr;
++}
++
++juint* StubRoutines::ppc64::generate_crc_barret_constants() {
++ juint barret_constants[CRC32_BARRET_CONSTANTS] = {
++ 0xf7011641UL, 0x00000001UL, 0x00000000UL, 0x00000000UL,
++ 0xdb710641UL, 0x00000001UL, 0x00000000UL, 0x00000000UL
++ };
++ juint* ptr = (juint*) malloc(sizeof(juint) * CRC32_CONSTANTS_SIZE);
++ guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
++ guarantee(ptr != NULL, "allocation error of a crc table");
++ memcpy((void*) ptr, barret_constants, sizeof(juint) * CRC32_BARRET_CONSTANTS);
++ return ptr;
++}
++
+ // CRC32 Intrinsics.
+ /**
+ * crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.h
+@@ -477,3 +782,7 @@
+ #endif
+ }
+ };
++
++juint* StubRoutines::ppc64::_constants = StubRoutines::ppc64::generate_crc_constants();
++
++juint* StubRoutines::ppc64::_barret_constants =
StubRoutines::ppc64::generate_crc_barret_constants();
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubRoutines_ppc_64.hpp
+@@ -45,6 +45,8 @@
+ #else
+ #define CRC32_TABLES 1
+ #endif
++#define CRC32_CONSTANTS_SIZE 1084
++#define CRC32_BARRET_CONSTANTS 10
+
+ class ppc64 {
+ friend class StubGenerator;
+@@ -53,11 +55,17 @@
+
+ // CRC32 Intrinsics.
+ static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
++ static juint* _constants;
++ static juint* _barret_constants;
+
+ public:
+
+ // CRC32 Intrinsics.
+ static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
++ static void generate_load_crc_constants_addr(MacroAssembler* masm, Register table);
++ static void generate_load_crc_barret_constants_addr(MacroAssembler* masm, Register
table);
++ static juint* generate_crc_constants();
++ static juint* generate_crc_barret_constants();
+
+ };
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+@@ -102,7 +102,7 @@
+ // Create and print feature-string.
+ char buf[(num_features+1) * 16]; // Max 16 chars per feature.
+ jio_snprintf(buf, sizeof(buf),
+- "ppc64%s%s%s%s%s%s%s%s%s",
++ "ppc64%s%s%s%s%s%s%s%s%s%s",
+ (has_fsqrt() ? " fsqrt" : ""),
+ (has_isel() ? " isel" : ""),
+ (has_lxarxeh() ? " lxarxeh" : ""),
+@@ -112,7 +112,8 @@
+ (has_popcntw() ? " popcntw" : ""),
+ (has_fcfids() ? " fcfids" : ""),
+ (has_vand() ? " vand" : ""),
+- (has_vcipher() ? " aes" : "")
++ (has_vcipher() ? " aes" : ""),
++ (has_vpmsumb() ? " vpmsumb" : "")
+ // Make sure number of %s matches num_features!
+ );
+ _features_str = strdup(buf);
+@@ -490,6 +491,7 @@
+ a->fcfids(F3, F4); // code[8] -> fcfids
+ a->vand(VR0, VR0, VR0); // code[9] -> vand
+ a->vcipher(VR0, VR1, VR2); // code[10] -> vcipher
++ a->vpmsumb(VR0, VR1, VR2); // code[11] -> vpmsumb
+ a->blr();
+
+ // Emit function to set one cache line to zero. Emit function descriptor and get
pointer to it.
+@@ -534,6 +536,7 @@
+ if (code[feature_cntr++]) features |= fcfids_m;
+ if (code[feature_cntr++]) features |= vand_m;
+ if (code[feature_cntr++]) features |= vcipher_m;
++ if (code[feature_cntr++]) features |= vpmsumb_m;
+
+ // Print the detection code.
+ if (PrintAssembly) {
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.hpp
+@@ -43,6 +43,7 @@
+ vand,
+ dcba,
+ vcipher,
++ vpmsumb,
+ num_features // last entry to count features
+ };
+ enum Feature_Flag_Set {
+@@ -58,6 +59,7 @@
+ vand_m = (1 << vand ),
+ dcba_m = (1 << dcba ),
+ vcipher_m = (1 << vcipher),
++ vpmsumb_m = (1 << vpmsumb),
+ all_features_m = -1
+ };
+ static int _features;
+@@ -86,6 +88,7 @@
+ static bool has_vand() { return (_features & vand_m) != 0; }
+ static bool has_dcba() { return (_features & dcba_m) != 0; }
+ static bool has_vcipher() { return (_features & vcipher_m) != 0; }
++ static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; }
+
+ static const char* cpu_features() { return _features_str; }
+
commit b3223f3a61b2918e2abaf9d9a9c902ba998c3140
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jan 28 20:17:49 2019 +0100
Remove obsolete Group tag
References:
https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d4df5e9..0c399da 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -984,7 +984,6 @@ Release: 0%{?dist}
Epoch: 1
Summary: %{origin_nice} Runtime Environment %{majorver}
-Group: Development/Languages
# HotSpot code is licensed under GPLv2
# JDK library code is licensed under GPLv2 with the Classpath exception
@@ -1356,7 +1355,6 @@ The %{origin_nice} runtime environment %{majorver}.
%if %{include_debug_build}
%package slowdebug
Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
-Group: Development/Languages
%{java_rpo -- %{debug_suffix_unquoted}}
%description slowdebug
@@ -1367,7 +1365,6 @@ The %{origin_nice} runtime environment %{majorver}.
%if %{include_normal_build}
%package headless
Summary: %{origin_nice} Headless Runtime Environment %{majorver}
-Group: Development/Languages
%{java_headless_rpo %{nil}}
@@ -1378,7 +1375,6 @@ The %{origin_nice} runtime environment %{majorver} without audio and
video suppo
%if %{include_debug_build}
%package headless-slowdebug
Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
-Group: Development/Languages
%{java_headless_rpo -- %{debug_suffix_unquoted}}
@@ -1390,7 +1386,6 @@ The %{origin_nice} runtime environment %{majorver} without audio and
video suppo
%if %{include_normal_build}
%package devel
Summary: %{origin_nice} Development Environment %{majorver}
-Group: Development/Tools
%{java_devel_rpo %{nil}}
@@ -1401,7 +1396,6 @@ The %{origin_nice} development tools %{majorver}.
%if %{include_debug_build}
%package devel-slowdebug
Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
-Group: Development/Tools
%{java_devel_rpo -- %{debug_suffix_unquoted}}
@@ -1413,7 +1407,6 @@ The %{origin_nice} development tools %{majorver}.
%if %{include_normal_build}
%package demo
Summary: %{origin_nice} Demos %{majorver}
-Group: Development/Languages
%{java_demo_rpo %{nil}}
@@ -1424,7 +1417,6 @@ The %{origin_nice} demos %{majorver}.
%if %{include_debug_build}
%package demo-slowdebug
Summary: %{origin_nice} Demos %{majorver} %{debug_on}
-Group: Development/Languages
%{java_demo_rpo -- %{debug_suffix_unquoted}}
@@ -1436,7 +1428,6 @@ The %{origin_nice} demos %{majorver}.
%if %{include_normal_build}
%package src
Summary: %{origin_nice} Source Bundle %{majorver}
-Group: Development/Languages
%{java_src_rpo %{nil}}
@@ -1448,7 +1439,6 @@ class library source code for use by IDE indexers and debuggers.
%if %{include_debug_build}
%package src-slowdebug
Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
-Group: Development/Languages
%{java_src_rpo -- %{debug_suffix_unquoted}}
@@ -1460,7 +1450,6 @@ The java-%{origin}-src-slowdebug sub-package contains the complete
%{origin_nice
%if %{include_normal_build}
%package javadoc
Summary: %{origin_nice} %{majorver} API documentation
-Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
@@ -1473,7 +1462,6 @@ The %{origin_nice} %{majorver} API documentation.
%if %{include_normal_build}
%package javadoc-zip
Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
-Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
@@ -1486,7 +1474,6 @@ The %{origin_nice} %{majorver} API documentation compressed in
single archive.
%if %{include_debug_build}
%package javadoc-slowdebug
Summary: %{origin_nice} %{majorver} API documentation %{for_debug}
-Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
@@ -1499,7 +1486,6 @@ The %{origin_nice} %{majorver} API documentation %{for_debug}.
%if %{include_debug_build}
%package javadoc-zip-slowdebug
Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}
-Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
commit 4feeea86289bb7ce6bc182199286a93917625c56
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Mon Jan 28 00:08:24 2019 -0500
Introduce sa_arches for architectures with sa-jdi.jar and include aarch64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0f4e214..d4df5e9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -59,6 +59,7 @@
%global ppc64be ppc64 ppc64p7
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug}
@@ -749,7 +750,7 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
-%ifarch x86_64 %{ix86}
+%ifarch %{sa_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
@@ -2347,6 +2348,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jan 24 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
+- Introduce sa_arches for architectures with sa-jdi.jar and include aarch64
+
* Thu Jan 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
- Update to aarch64-shenandoah-jdk8u191-b14.
- Adjust JDK-8073139/PR1758/RH1191652 to apply following 8155627 backport.
commit 9ece52d7d3d8f9233aecd50e685c885b4dac3250
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jan 17 01:04:08 2019 -0500
Update to aarch64-shenandoah-jdk8u191-b14.
Adjust JDK-8073139/PR1758/RH1191652 to apply following 8155627 backport.
diff --git a/.gitignore b/.gitignore
index 4a93ad0..95356b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -128,3 +128,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7c9af01..0f4e214 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -225,7 +225,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u191-b13
+%global shenandoah_revision aarch64-shenandoah-jdk8u191-b14
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -2347,6 +2347,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jan 10 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b14-0
+- Update to aarch64-shenandoah-jdk8u191-b14.
+- Adjust JDK-8073139/PR1758/RH1191652 to apply following 8155627 backport.
+
* Wed Jan 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b13-0
- Update to aarch64-shenandoah-jdk8u191-b13.
- Update tarball generation script in preparation for PR3667/RH1656676 SunEC changes.
diff --git
a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
index 746529a..6511281 100644
--- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
+++ b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
@@ -1,28 +1,16 @@
# HG changeset patch
-# User sgehwolf
+# User asmundak
# Date 1537883922 -7200
# Tue Sep 25 15:58:42 2018 +0200
# Node ID 2fabe07c0bd8bf21400313f3bb9b8e80fcb31724
# Parent 91867683f73de3882ef88981a79995beeeb1e980
8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
Reviewed-by: erikj, goetz, dholmes
+Contributed-by: Andrew Hughes <gnu.andrew(a)redhat.com>, Alexander Smundak
<asmundak(a)google.com>
-diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
---- openjdk/common/autoconf/toolchain.m4
-+++ openjdk/common/autoconf/toolchain.m4
-@@ -1125,6 +1125,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
- else
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
-+ fi
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
- fi
-diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
---- openjdk/common/autoconf/jdk-options.m4
-+++ openjdk/common/autoconf/jdk-options.m4
+diff --git openjdk.orig///common/autoconf/jdk-options.m4
openjdk///common/autoconf/jdk-options.m4
+--- openjdk.orig///common/autoconf/jdk-options.m4
++++ openjdk///common/autoconf/jdk-options.m4
@@ -158,7 +158,7 @@
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
@@ -31,10 +19,10 @@ diff --git a/common/autoconf/jdk-options.m4
b/common/autoconf/jdk-options.m4
+ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
INCLUDE_SA=false
fi
- if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
---- openjdk/common/autoconf/platform.m4
-+++ openjdk/common/autoconf/platform.m4
+ AC_SUBST(INCLUDE_SA)
+diff --git openjdk.orig///common/autoconf/platform.m4
openjdk///common/autoconf/platform.m4
+--- openjdk.orig///common/autoconf/platform.m4
++++ openjdk///common/autoconf/platform.m4
@@ -67,7 +67,7 @@
VAR_CPU_ENDIAN=big
;;
@@ -44,3 +32,16 @@ diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
+diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
+--- openjdk.orig///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -1123,6 +1123,9 @@
+ else
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
++ fi
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
+ fi
diff --git a/sources b/sources
index 0a6bbc4..34cf8d8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz) =
56fc01edf3c8a7f7ad5af719983837d70efa10877b066ab4021cb8e753cf9edfd8c86433e9b04e859f09478d98533fca06360a0ee0d58c17e3405b737c77689a
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz) =
d2f3e618bf8fa8d8991f2db32b665d52170642fd375926f84b0cc40a7896278847f6374fcb6d095f681b72a170ac7189ec3501907c5ca0d3d454a09397eedcfa
commit c0ce8bcaaba134f2ae0df69d9742eace90f97d17
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Thu Jan 10 00:50:56 2019 -0500
Update to aarch64-shenandoah-jdk8u191-b13.
Update tarball generation script in preparation for PR3667/RH1656676 SunEC changes.
Use remove-intree-libraries.sh to remove the remaining SunEC code for now.
diff --git a/.gitignore b/.gitignore
index b7a8809..4a93ad0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,3 +127,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b16.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 77a40f0..ecbc982 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -3,8 +3,8 @@
#
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
-# if your local repo follows upstream forests conventions, you may be enough by setting
OPENJDK_URL
-# if you wont to use local copy of patch PR2126 set path to it to PR2126 variable
+# If your local repo follows upstream forests conventions, it may be enough to set
OPENJDK_URL
+# If you want to use a local copy of patch PR3667, set the path to it in the PR3667
variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=jdk8u OR aarch64-port
@@ -19,9 +19,9 @@
# level folder, name is created, based on parameter
#
-if [ ! "x$PR2126" = "x" ] ; then
- if [ ! -f "$PR2126" ] ; then
- echo "You have specified PR2126 as $PR2126 but it does not exists.
exiting"
+if [ ! "x$PR3667" = "x" ] ; then
+ if [ ! -f "$PR3667" ] ; then
+ echo "You have specified PR3667 as $PR3667 but it does not exists.
exiting"
exit 1
fi
fi
@@ -41,7 +41,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
- echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if
unavailable)"
+ echo "PR3667 - the path to the PR3667 patch to apply (optional; downloaded if
unavailable)"
echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -113,22 +113,26 @@ done
if [ -d jdk ]; then
echo "Removing EC source code we don't build"
-
-mv -v jdk/src/share/native/sun/security/ec/impl/ecc_impl.h .
-rm -vrf jdk/src/share/native/sun/security/ec/impl
-mkdir jdk/src/share/native/sun/security/ec/impl
-mv -v ecc_impl.h jdk/src/share/native/sun/security/ec/impl
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c
+rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c
echo "Syncing EC list with NSS"
-if [ "x$PR2126" = "x" ] ; then
-# get pr2126.patch (from
http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most correct
tag
-# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
- wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr2126.patch
- patch -Np1 < pr2126.patch
- rm pr2126.patch
+
+if [ "x$PR3667" = "x" ] ; then
+# get pr3667.patch (from
http://icedtea.classpath.org/hg/icedtea8) from most correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3667)
+ wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3667.patch
+ patch -Np1 < pr3667.patch
+ rm pr3667.patch
else
- echo "Applying ${PR2126}"
- patch -Np1 < $PR2126
+ echo "Applying ${PR3667}"
+ patch -Np1 < $PR3667
fi;
fi
find . -name '*.orig' -exec rm -vf '{}' ';'
diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index 201a220..b52d016 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -129,3 +129,10 @@ rm -vf ${LCMS_SRC}/lcms2.h
rm -vf ${LCMS_SRC}/lcms2_internal.h
rm -vf ${LCMS_SRC}/lcms2_plugin.h
fi
+
+# Get rid of in-tree SunEC until RH1656676 is implemented
+echo "Removing SunEC native code"
+mv -v openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h .
+rm -vrf openjdk/jdk/src/share/native/sun/security/ec/impl
+mkdir openjdk/jdk/src/share/native/sun/security/ec/impl
+mv -v ecc_impl.h openjdk/jdk/src/share/native/sun/security/ec/impl
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2529db4..7c9af01 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -225,7 +225,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u191-b12
+%global shenandoah_revision aarch64-shenandoah-jdk8u191-b13
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
@@ -970,7 +970,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 13%{?dist}
+Release: 0%{?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
@@ -2347,6 +2347,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 09 2019 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b13-0
+- Update to aarch64-shenandoah-jdk8u191-b13.
+- Update tarball generation script in preparation for PR3667/RH1656676 SunEC changes.
+- Use remove-intree-libraries.sh to remove the remaining SunEC code for now.
+
* Wed Dec 19 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-13
- Fix jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
paths to pass git apply
diff --git a/sources b/sources
index 7cd45d3..0a6bbc4 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz) =
1cefbddc40a87fcbcbd875dc83d3897137c6ded3bd18190c3c8e96f89bb5c7edb29750095bb47dd96be062d093f488327f4993f9690975fde2dbaededd7d4e55
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz) =
56fc01edf3c8a7f7ad5af719983837d70efa10877b066ab4021cb8e753cf9edfd8c86433e9b04e859f09478d98533fca06360a0ee0d58c17e3405b737c77689a
commit f5121c69ba3743f1ab14d6a21f6d235cbab38fe5
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Wed Dec 19 04:11:48 2018 +0000
Fix jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
paths to pass git apply
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ad555ea..2529db4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -970,7 +970,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 12%{?dist}
+Release: 13%{?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
@@ -2347,6 +2347,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Dec 19 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-13
+- Fix jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
paths to pass git apply
+
* Mon Dec 10 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-12
- adde fx link of libglassgtk2.so (rhbz1657485)
diff --git
a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
index 7495c36..f79be53 100644
--- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
+++ b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
@@ -7,7 +7,7 @@
8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
Reviewed-by: erikj, goetz, dholmes
-diff --git a/make/lib/SoundLibraries.gmk b/make/lib/SoundLibraries.gmk
+diff --git openjdk.orig/jdk/make/lib/SoundLibraries.gmk
openjdk/jdk/make/lib/SoundLibraries.gmk
--- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
+++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
@@ -140,6 +140,10 @@
@@ -21,8 +21,8 @@ diff --git a/make/lib/SoundLibraries.gmk b/make/lib/SoundLibraries.gmk
ifeq ($(OPENJDK_TARGET_CPU), aarch64)
LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
endif
-diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
---- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12 2016
+0000
+diff -r 1fe56343ecc8 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+--- openjdk.orig/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12
2016 +0000
+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016
+0000
@@ -44,6 +44,8 @@
#define X_ARM 7
@@ -33,7 +33,7 @@ diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
// **********************************
// Make sure you set X_PLATFORM and X_ARCH defines correctly.
-diff --git a/src/solaris/bin/ppc64le/jvm.cfg b/src/solaris/bin/ppc64le/jvm.cfg
+diff --git openjdk.orig/jdk/src/solaris/bin/ppc64le/jvm.cfg
openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
new file mode 100644
--- /dev/null
+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
@@ -72,8 +72,8 @@ new file mode 100644
+#
+-server KNOWN
+-client IGNORE
-diff --git a/test/sun/security/pkcs11/PKCS11Test.java
b/test/sun/security/pkcs11/PKCS11Test.java
---- openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
+diff --git openjdk.orig/test/sun/security/pkcs11/PKCS11Test.java
openjdk/test/sun/security/pkcs11/PKCS11Test.java
+--- openjdk.orig/jdk/test/sun/security/pkcs11/PKCS11Test.java
+++ openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
@@ -505,6 +505,8 @@
osMap.put("Linux-amd64-64", new String[]{
@@ -84,8 +84,8 @@ diff --git a/test/sun/security/pkcs11/PKCS11Test.java
b/test/sun/security/pkcs11
osMap.put("Windows-x86-32", new String[]{
PKCS11_BASE + "/nss/lib/windows-i586/".replace('/',
SEP)});
osMap.put("Windows-amd64-64", new String[]{
-diff --git a/test/tools/launcher/Settings.java b/test/tools/launcher/Settings.java
---- openjdk/jdk/test/tools/launcher/Settings.java
+diff --git openjdk.orig/jdk/test/tools/launcher/Settings.java
openjdk/jdk/test/tools/launcher/Settings.java
+--- openjdk.orig/jdk/test/tools/launcher/Settings.java
+++ openjdk/jdk/test/tools/launcher/Settings.java
@@ -74,7 +74,7 @@
commit 0bd5dd84cd7b5b770066aec43c1df73911b5b760
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Dec 10 13:28:43 2018 +0100
adde fx link of libglassgtk2.so (rhbz1657485)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 20221ca..ad555ea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -210,7 +210,7 @@
# links src files
# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
%global jfx_jre_libs jfxswt.jar javafx.properties
-%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so
+%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so libglassgtk2.so
%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
%global jfx_sdk_bins javafxpackager javapackager
%global jfx_jre_exts jfxrt.jar
@@ -970,7 +970,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 11%{?dist}
+Release: 12%{?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
@@ -2347,6 +2347,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Dec 10 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-12
+- adde fx link of libglassgtk2.so (rhbz1657485)
+
* Thu Nov 22 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-11
- Add backport of JDK-8029661 which adds TLSv1.2 support to the PKCS11 provider.
commit e615266abcc7a52c29433023c138f60ec7bcaab8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 30 18:14:12 2018 +0100
added description to jdk8029661-pr3642-rh1477159.patch -
jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bbd72af..20221ca 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1256,7 +1256,7 @@ Patch584:
jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
# and used by this RPM.
#############################################
# JDK-8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
-Patch585: jdk8029661-pr3642-rh1477159.patch
+Patch585: jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
#############################################
#
diff --git a/jdk8029661-pr3642-rh1477159.patch
b/jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
similarity index 100%
rename from jdk8029661-pr3642-rh1477159.patch
rename to jdk8029661-pr3642-rh1477159-add_tlsv1_2_support_to_pkcs11_provider.patch
commit a7cd6c94c98aae408915677c2bf475578e5cb64f
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Nov 28 11:09:36 2018 +0100
Refactor _find_debuginfo_opts -g
- Used '%global over '%define'
- Added a comment explaining what this does.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 667dba7..bbd72af 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -21,7 +21,11 @@
# Enable release builds by default on relevant arches.
%bcond_without release
-%define _find_debuginfo_opts -g
+# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
+# This fixes detailed NMT and other tools which need minimal debug info.
+# See:
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
+%global _find_debuginfo_opts -g
+
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with
normal macros
# also necessary when passing it as parameter to other macros. If not macro, then it is
considered a switch
# see the difference between global and define:
commit 4dd0d67c96f73697c3a3b3e5b33b20a0c8b944be
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Nov 22 03:44:23 2018 +0000
Add backport of JDK-8029661 which adds TLSv1.2 support to the PKCS11 provider.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ac18a34..667dba7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -966,7 +966,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 10%{?dist}
+Release: 11%{?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
@@ -1237,9 +1237,23 @@ Patch602:
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64l
Patch603:
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
# 8044235: src.zip should include all sources
Patch7: jdk8044235-src_zip_should_include_all_sources.patch
+# JDK-8172850, RH1640127: Anti-dependency on membar causes crash in register allocator
due to invalid instruction scheduling
Patch583: jdk8172850-rh1640127-01-register_allocator_crash.patch
+# JDK-8209639, RH1640127: assert failure in coalesce.cpp: attempted to spill a
non-spillable item
Patch584: jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
+#############################################
+#
+# Patches appearing in 8u211
+#
+# This section includes patches which are present
+# in the listed OpenJDK 8u release and should be
+# able to be removed once that release is out
+# and used by this RPM.
+#############################################
+# JDK-8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
+Patch585: jdk8029661-pr3642-rh1477159.patch
+
#############################################
#
# Patches ineligible for 8u
@@ -1679,6 +1693,7 @@ sh %{SOURCE12}
%patch625
%patch583
%patch584
+%patch585
# RPM-only fixes
%patch525
@@ -2328,6 +2343,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Nov 22 2018 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-11
+- Add backport of JDK-8029661 which adds TLSv1.2 support to the PKCS11 provider.
+
* Tue Nov 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-10
- Revise Shenandoah PR3634 patch following upstream discussion.
diff --git a/jdk8029661-pr3642-rh1477159.patch b/jdk8029661-pr3642-rh1477159.patch
new file mode 100644
index 0000000..f7a816a
--- /dev/null
+++ b/jdk8029661-pr3642-rh1477159.patch
@@ -0,0 +1,2269 @@
+# HG changeset patch
+# User mbalao
+# Date 1541016287 10800
+# Wed Oct 31 17:04:47 2018 -0300
+# Node ID fa06cdb4c6f7b5ca148f26d345090d48014fecff
+# Parent 478a4add975beb90696a4ead5f8fcd9c17fc1a83
+8029661, PR3642, RH1477159: Support TLS v1.2 algorithm in SunPKCS11 provider
+Summary: TLS v1.2 algorithms for key and MAC derivation added to SunPKCS11 crypto
provider. 8210912 fix is included as part of this changeset.
+Reviewed-by: valeriep
+
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
+---
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2018, 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
+@@ -95,9 +95,9 @@
+ throw new InvalidAlgorithmParameterException("init() failed", e);
+ }
+ version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
+- if ((version < 0x0300) && (version > 0x0302)) {
+- throw new InvalidAlgorithmParameterException
+- ("Only SSL 3.0, TLS 1.0, and TLS 1.1 are supported");
++ if ((version < 0x0300) && (version > 0x0303)) {
++ throw new InvalidAlgorithmParameterException("Only SSL 3.0," +
++ " TLS 1.0, TLS 1.1, and TLS 1.2 are supported");
+ }
+ // we assume the token supports both the CKM_SSL3_* and the CKM_TLS_*
+ // mechanisms
+@@ -112,8 +112,11 @@
+ throw new IllegalStateException
+ ("TlsKeyMaterialGenerator must be initialized");
+ }
+- mechanism = (version == 0x0300) ? CKM_SSL3_KEY_AND_MAC_DERIVE
+- : CKM_TLS_KEY_AND_MAC_DERIVE;
++ if (version == 0x0300) {
++ mechanism = CKM_SSL3_KEY_AND_MAC_DERIVE;
++ } else if (version == 0x0301 || version == 0x0302) {
++ mechanism = CKM_TLS_KEY_AND_MAC_DERIVE;
++ }
+ int macBits = spec.getMacKeyLength() << 3;
+ int ivBits = spec.getIvLength() << 3;
+
+@@ -129,8 +132,18 @@
+
+ CK_SSL3_RANDOM_DATA random = new CK_SSL3_RANDOM_DATA
+ (spec.getClientRandom(), spec.getServerRandom());
+- CK_SSL3_KEY_MAT_PARAMS params = new CK_SSL3_KEY_MAT_PARAMS
+- (macBits, keyBits, ivBits, isExportable, random);
++ Object params = null;
++ CK_MECHANISM ckMechanism = null;
++ if (version < 0x0303) {
++ params = new CK_SSL3_KEY_MAT_PARAMS
++ (macBits, keyBits, ivBits, isExportable, random);
++ ckMechanism = new CK_MECHANISM(mechanism, (CK_SSL3_KEY_MAT_PARAMS)params);
++ } else if (version == 0x0303) {
++ params = new CK_TLS12_KEY_MAT_PARAMS
++ (macBits, keyBits, ivBits, isExportable, random,
++ Functions.getHashMechId(spec.getPRFHashAlg()));
++ ckMechanism = new CK_MECHANISM(mechanism, (CK_TLS12_KEY_MAT_PARAMS)params);
++ }
+
+ String cipherAlgorithm = spec.getCipherAlgorithm();
+ long keyType = P11SecretKeyFactory.getKeyType(cipherAlgorithm);
+@@ -162,9 +175,14 @@
+ (O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
+ // the returned keyID is a dummy, ignore
+ long keyID = token.p11.C_DeriveKey(session.id(),
+- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
++ ckMechanism, p11Key.keyID, attributes);
+
+- CK_SSL3_KEY_MAT_OUT out = params.pReturnedKeyMaterial;
++ CK_SSL3_KEY_MAT_OUT out = null;
++ if (params instanceof CK_SSL3_KEY_MAT_PARAMS) {
++ out = ((CK_SSL3_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
++ } else if (params instanceof CK_TLS12_KEY_MAT_PARAMS) {
++ out = ((CK_TLS12_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
++ }
+ // Note that the MAC keys do not inherit all attributes from the
+ // template, but they do inherit the sensitive/extractable/token
+ // flags, which is all P11Key cares about.
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
+---
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2018, 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
+@@ -89,9 +89,9 @@
+ throw new InvalidAlgorithmParameterException("init() failed", e);
+ }
+ version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
+- if ((version < 0x0300) || (version > 0x0302)) {
+- throw new InvalidAlgorithmParameterException
+- ("Only SSL 3.0, TLS 1.0, and TLS 1.1 supported");
++ if ((version < 0x0300) && (version > 0x0303)) {
++ throw new InvalidAlgorithmParameterException("Only SSL 3.0," +
++ " TLS 1.0, TLS 1.1, and TLS 1.2 are supported");
+ }
+ // We assume the token supports the required mechanism. If it does not,
+ // generateKey() will fail and the failover should take care of us.
+@@ -106,10 +106,20 @@
+ throw new IllegalStateException
+ ("TlsMasterSecretGenerator must be initialized");
+ }
++ final boolean isTlsRsaPremasterSecret =
++ p11Key.getAlgorithm().equals("TlsRsaPremasterSecret");
++ if (version == 0x0300) {
++ mechanism = isTlsRsaPremasterSecret ?
++ CKM_SSL3_MASTER_KEY_DERIVE : CKM_SSL3_MASTER_KEY_DERIVE_DH;
++ } else if (version == 0x0301 || version == 0x0302) {
++ mechanism = isTlsRsaPremasterSecret ?
++ CKM_TLS_MASTER_KEY_DERIVE : CKM_TLS_MASTER_KEY_DERIVE_DH;
++ } else if (version == 0x0303) {
++ mechanism = isTlsRsaPremasterSecret ?
++ CKM_TLS12_MASTER_KEY_DERIVE : CKM_TLS12_MASTER_KEY_DERIVE_DH;
++ }
+ CK_VERSION ckVersion;
+- if (p11Key.getAlgorithm().equals("TlsRsaPremasterSecret")) {
+- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE
+- : CKM_TLS_MASTER_KEY_DERIVE;
++ if (isTlsRsaPremasterSecret) {
+ ckVersion = new CK_VERSION(0, 0);
+ } else {
+ // Note: we use DH for all non-RSA premaster secrets. That includes
+@@ -118,16 +128,23 @@
+ // TLS PRF (or the SSL equivalent).
+ // The only thing special about RSA master secret calculation is
+ // that it extracts the version numbers from the premaster secret.
+- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE_DH
+- : CKM_TLS_MASTER_KEY_DERIVE_DH;
+ ckVersion = null;
+ }
+ byte[] clientRandom = spec.getClientRandom();
+ byte[] serverRandom = spec.getServerRandom();
+ CK_SSL3_RANDOM_DATA random =
+ new CK_SSL3_RANDOM_DATA(clientRandom, serverRandom);
+- CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
+- new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
++ CK_MECHANISM ckMechanism = null;
++ if (version < 0x0303) {
++ CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
++ new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
++ ckMechanism = new CK_MECHANISM(mechanism, params);
++ } else if (version == 0x0303) {
++ CK_TLS12_MASTER_KEY_DERIVE_PARAMS params =
++ new CK_TLS12_MASTER_KEY_DERIVE_PARAMS(random, ckVersion,
++ Functions.getHashMechId(spec.getPRFHashAlg()));
++ ckMechanism = new CK_MECHANISM(mechanism, params);
++ }
+
+ Session session = null;
+ try {
+@@ -135,9 +152,8 @@
+ CK_ATTRIBUTE[] attributes = token.getAttributes(O_GENERATE,
+ CKO_SECRET_KEY, CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]);
+ long keyID = token.p11.C_DeriveKey(session.id(),
+- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
++ ckMechanism, p11Key.keyID, attributes);
+ int major, minor;
+- ckVersion = params.pVersion;
+ if (ckVersion == null) {
+ major = -1;
+ minor = -1;
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2018, 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
+@@ -124,8 +124,46 @@
+ if (spec == null) {
+ throw new IllegalStateException("TlsPrfGenerator must be
initialized");
+ }
++ byte[] seed = spec.getSeed();
++
++ // TLS 1.2
++ if (mechanism == CKM_TLS_MAC) {
++ SecretKey k = null;
++ int ulServerOrClient = 0;
++ if (spec.getLabel().equals("server finished")) {
++ ulServerOrClient = 1;
++ }
++ if (spec.getLabel().equals("client finished")) {
++ ulServerOrClient = 2;
++ }
++
++ if (ulServerOrClient != 0) {
++ // Finished message
++ CK_TLS_MAC_PARAMS params = new CK_TLS_MAC_PARAMS(
++ Functions.getHashMechId(spec.getPRFHashAlg()),
++ spec.getOutputLength(), ulServerOrClient);
++ Session session = null;
++ try {
++ session = token.getOpSession();
++ token.p11.C_SignInit(session.id(),
++ new CK_MECHANISM(mechanism, params), p11Key.keyID);
++ token.p11.C_SignUpdate(session.id(), 0, seed, 0, seed.length);
++ byte[] out = token.p11.C_SignFinal
++ (session.id(), spec.getOutputLength());
++ k = new SecretKeySpec(out, "TlsPrf");
++ } catch (PKCS11Exception e) {
++ throw new ProviderException("Could not calculate PRF",
e);
++ } finally {
++ token.releaseSession(session);
++ }
++ } else {
++ throw new ProviderException("Only Finished message authentication
code"+
++ " generation supported for TLS 1.2.");
++ }
++ return k;
++ }
++
+ byte[] label = P11Util.getBytesUTF8(spec.getLabel());
+- byte[] seed = spec.getSeed();
+
+ if (mechanism == CKM_NSS_TLS_PRF_GENERAL) {
+ Session session = null;
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
+---
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
++++
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2018, 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
+@@ -57,6 +57,8 @@
+ // mechanism id
+ private long mechanism;
+
++ private int version;
++
+ private TlsRsaPremasterSecretParameterSpec spec;
+
+ P11TlsRsaPremasterSecretGenerator(Token token, String algorithm, long mechanism)
+@@ -77,6 +79,11 @@
+ throw new InvalidAlgorithmParameterException(MSG);
+ }
+ this.spec = (TlsRsaPremasterSecretParameterSpec)params;
++ version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
++ if ((version < 0x0300) && (version > 0x0303)) {
++ throw new InvalidAlgorithmParameterException
++ ("Only SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2 are
supported");
++ }
+ }
+
+ protected void engineInit(int keysize, SecureRandom random) {
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, 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
+@@ -720,38 +720,28 @@
+ s("1.2.840.113549.1.1.13",
"OID.1.2.840.113549.1.1.13"),
+ m(CKM_SHA512_RSA_PKCS, CKM_RSA_PKCS, CKM_RSA_X_509));
+
+- /*
+- * TLS 1.2 uses a different hash algorithm than 1.0/1.1 for the
+- * PRF calculations. As of 2010, there is no PKCS11-level
+- * support for TLS 1.2 PRF calculations, and no known OS's have
+- * an internal variant we could use. Therefore for TLS 1.2, we
+- * are updating JSSE to request different provider algorithms
+- * (e.g. "SunTls12Prf"), and currently only SunJCE has these
+- * TLS 1.2 algorithms.
+- *
+- * If we reused the names such as "SunTlsPrf", the PKCS11
+- * providers would need be updated to fail correctly when
+- * presented with the wrong version number (via
+- * Provider.Service.supportsParameters()), and we would also
+- * need to add the appropriate supportsParamters() checks into
+- * KeyGenerators (not currently there).
+- *
+- * In the future, if PKCS11 support is added, we will restructure
+- * this.
+- */
+ d(KG, "SunTlsRsaPremasterSecret",
+ "sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator",
++ s("SunTls12RsaPremasterSecret"),
+ m(CKM_SSL3_PRE_MASTER_KEY_GEN, CKM_TLS_PRE_MASTER_KEY_GEN));
+ d(KG, "SunTlsMasterSecret",
+ "sun.security.pkcs11.P11TlsMasterSecretGenerator",
+ m(CKM_SSL3_MASTER_KEY_DERIVE, CKM_TLS_MASTER_KEY_DERIVE,
+ CKM_SSL3_MASTER_KEY_DERIVE_DH,
+ CKM_TLS_MASTER_KEY_DERIVE_DH));
++ d(KG, "SunTls12MasterSecret",
++ "sun.security.pkcs11.P11TlsMasterSecretGenerator",
++ m(CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_MASTER_KEY_DERIVE_DH));
+ d(KG, "SunTlsKeyMaterial",
+ "sun.security.pkcs11.P11TlsKeyMaterialGenerator",
+ m(CKM_SSL3_KEY_AND_MAC_DERIVE, CKM_TLS_KEY_AND_MAC_DERIVE));
++ d(KG, "SunTls12KeyMaterial",
++ "sun.security.pkcs11.P11TlsKeyMaterialGenerator",
++ m(CKM_TLS12_KEY_AND_MAC_DERIVE));
+ d(KG, "SunTlsPrf",
"sun.security.pkcs11.P11TlsPrfGenerator",
+ m(CKM_TLS_PRF, CKM_NSS_TLS_PRF_GENERAL));
++ d(KG, "SunTls12Prf",
"sun.security.pkcs11.P11TlsPrfGenerator",
++ m(CKM_TLS_MAC));
+ }
+
+ // background thread that periodically checks for token insertion
+@@ -1016,13 +1006,16 @@
+ if (algorithm == "SunTlsRsaPremasterSecret") {
+ return new P11TlsRsaPremasterSecretGenerator(
+ token, algorithm, mechanism);
+- } else if (algorithm == "SunTlsMasterSecret") {
++ } else if (algorithm == "SunTlsMasterSecret"
++ || algorithm == "SunTls12MasterSecret") {
+ return new P11TlsMasterSecretGenerator(
+ token, algorithm, mechanism);
+- } else if (algorithm == "SunTlsKeyMaterial") {
++ } else if (algorithm == "SunTlsKeyMaterial"
++ || algorithm == "SunTls12KeyMaterial") {
+ return new P11TlsKeyMaterialGenerator(
+ token, algorithm, mechanism);
+- } else if (algorithm == "SunTlsPrf") {
++ } else if (algorithm == "SunTlsPrf"
++ || algorithm == "SunTls12Prf") {
+ return new P11TlsPrfGenerator(token, algorithm, mechanism);
+ } else {
+ return new P11KeyGenerator(token, algorithm, mechanism);
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -112,14 +112,26 @@
+ init(mechanism, params);
+ }
+
++ public CK_MECHANISM(long mechanism, CK_TLS12_MASTER_KEY_DERIVE_PARAMS params) {
++ init(mechanism, params);
++ }
++
+ public CK_MECHANISM(long mechanism, CK_SSL3_KEY_MAT_PARAMS params) {
+ init(mechanism, params);
+ }
+
++ public CK_MECHANISM(long mechanism, CK_TLS12_KEY_MAT_PARAMS params) {
++ init(mechanism, params);
++ }
++
+ public CK_MECHANISM(long mechanism, CK_TLS_PRF_PARAMS params) {
+ init(mechanism, params);
+ }
+
++ public CK_MECHANISM(long mechanism, CK_TLS_MAC_PARAMS params) {
++ init(mechanism, params);
++ }
++
+ public CK_MECHANISM(long mechanism, CK_ECDH1_DERIVE_PARAMS params) {
+ init(mechanism, params);
+ }
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
+new file mode 100644
+--- /dev/null
++++
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java
+@@ -0,0 +1,151 @@
++/*
++ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.security.pkcs11.wrapper;
++
++/**
++ * CK_TLS12_KEY_MAT_PARAMS from PKCS#11 v2.40.
++ */
++public class CK_TLS12_KEY_MAT_PARAMS {
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_ULONG ulMacSizeInBits;
++ * </PRE>
++ */
++ public long ulMacSizeInBits;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_ULONG ulKeySizeInBits;
++ * </PRE>
++ */
++ public long ulKeySizeInBits;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_ULONG ulIVSizeInBits;
++ * </PRE>
++ */
++ public long ulIVSizeInBits;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_BBOOL bIsExport;
++ * </PRE>
++ */
++ public boolean bIsExport;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_SSL3_RANDOM_DATA RandomInfo;
++ * </PRE>
++ */
++ public CK_SSL3_RANDOM_DATA RandomInfo;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
++ * </PRE>
++ */
++ public CK_SSL3_KEY_MAT_OUT pReturnedKeyMaterial;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_MECHANISM_TYPE prfHashMechanism;
++ * </PRE>
++ */
++ public long prfHashMechanism;
++
++ public CK_TLS12_KEY_MAT_PARAMS(
++ int macSize, int keySize, int ivSize, boolean export,
++ CK_SSL3_RANDOM_DATA random, long prfHashMechanism) {
++ ulMacSizeInBits = macSize;
++ ulKeySizeInBits = keySize;
++ ulIVSizeInBits = ivSize;
++ bIsExport = export;
++ RandomInfo = random;
++ pReturnedKeyMaterial = new CK_SSL3_KEY_MAT_OUT();
++ if (ivSize != 0) {
++ int n = ivSize >> 3;
++ pReturnedKeyMaterial.pIVClient = new byte[n];
++ pReturnedKeyMaterial.pIVServer = new byte[n];
++ }
++ this.prfHashMechanism = prfHashMechanism;
++ }
++
++ /**
++ * Returns the string representation of CK_TLS12_KEY_MAT_PARAMS.
++ *
++ * @return the string representation of CK_TLS12_KEY_MAT_PARAMS
++ */
++ public String toString() {
++ StringBuilder buffer = new StringBuilder();
++
++ buffer.append(Constants.INDENT);
++ buffer.append("ulMacSizeInBits: ");
++ buffer.append(ulMacSizeInBits);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("ulKeySizeInBits: ");
++ buffer.append(ulKeySizeInBits);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("ulIVSizeInBits: ");
++ buffer.append(ulIVSizeInBits);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("bIsExport: ");
++ buffer.append(bIsExport);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("RandomInfo: ");
++ buffer.append(RandomInfo);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("pReturnedKeyMaterial: ");
++ buffer.append(pReturnedKeyMaterial);
++ buffer.append(Constants.NEWLINE);
++
++ buffer.append(Constants.INDENT);
++ buffer.append("prfHashMechanism: ");
++ buffer.append(prfHashMechanism);
++
++ return buffer.toString();
++ }
++
++}
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
+new file mode 100644
+--- /dev/null
++++
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java
+@@ -0,0 +1,65 @@
++/*
++ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.security.pkcs11.wrapper;
++
++/**
++ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS from PKCS#11 v2.40.
++ */
++public class CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_SSL3_RANDOM_DATA RandomInfo;
++ * </PRE>
++ */
++ public CK_SSL3_RANDOM_DATA RandomInfo;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_VERSION_PTR pVersion;
++ * </PRE>
++ */
++ public CK_VERSION pVersion;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_MECHANISM_TYPE prfHashMechanism;
++ * </PRE>
++ */
++ public long prfHashMechanism;
++
++ public CK_TLS12_MASTER_KEY_DERIVE_PARAMS(
++ CK_SSL3_RANDOM_DATA random, CK_VERSION version,
++ long prfHashMechanism) {
++ RandomInfo = random;
++ pVersion = version;
++ this.prfHashMechanism = prfHashMechanism;
++ }
++
++}
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java
+@@ -0,0 +1,64 @@
++/*
++ * Copyright (c) 2018, Red Hat, Inc. 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.
++ */
++
++package sun.security.pkcs11.wrapper;
++
++/**
++ * CK_TLS_MAC_PARAMS from PKCS#11 v2.40.
++ */
++public class CK_TLS_MAC_PARAMS {
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_MECHANISM_TYPE prfMechanism;
++ * </PRE>
++ */
++ public long prfMechanism;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_ULONG ulMacLength;
++ * </PRE>
++ */
++ public long ulMacLength;
++
++ /**
++ * <B>PKCS#11:</B>
++ * <PRE>
++ * CK_ULONG ulServerOrClient;
++ * </PRE>
++ */
++ public long ulServerOrClient;
++
++ public CK_TLS_MAC_PARAMS(long prfMechanism,
++ long ulMacLength, long ulServerOrClient) {
++ this.prfMechanism = prfMechanism;
++ this.ulMacLength = ulMacLength;
++ this.ulServerOrClient = ulServerOrClient;
++ }
++
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -73,6 +73,9 @@
+ private static final Map<String,Integer> mechIds =
+ new HashMap<String,Integer>();
+
++ private static final Map<String, Long> hashMechIds =
++ new HashMap<String, Long>();
++
+ // key types (CKK_*)
+ private static final Map<Integer,String> keyNames =
+ new HashMap<Integer,String>();
+@@ -94,7 +97,6 @@
+ private static final Map<String,Integer> objectClassIds =
+ new HashMap<String,Integer>();
+
+-
+ /**
+ * For converting numbers to their hex presentation.
+ */
+@@ -444,6 +446,10 @@
+ return getId(objectClassIds, name);
+ }
+
++ public static long getHashMechId(String name) {
++ return hashMechIds.get(name);
++ }
++
+ /**
+ * Check the given arrays for equalitiy. This method considers both arrays as
+ * equal, if both are <code>null</code> or both have the same length
and
+@@ -589,6 +595,10 @@
+ addMapping(objectClassNames, objectClassIds, id, name);
+ }
+
++ private static void addHashMech(long id, String name) {
++ hashMechIds.put(name, id);
++ }
++
+ static {
+ addMech(CKM_RSA_PKCS_KEY_PAIR_GEN, "CKM_RSA_PKCS_KEY_PAIR_GEN");
+ addMech(CKM_RSA_PKCS, "CKM_RSA_PKCS");
+@@ -719,6 +729,10 @@
+ addMech(CKM_TLS_PRF, "CKM_TLS_PRF");
+ addMech(CKM_SSL3_MD5_MAC, "CKM_SSL3_MD5_MAC");
+ addMech(CKM_SSL3_SHA1_MAC, "CKM_SSL3_SHA1_MAC");
++ addMech(CKM_TLS12_MASTER_KEY_DERIVE,
"CKM_TLS12_MASTER_KEY_DERIVE");
++ addMech(CKM_TLS12_KEY_AND_MAC_DERIVE,
"CKM_TLS12_KEY_AND_MAC_DERIVE");
++ addMech(CKM_TLS12_MASTER_KEY_DERIVE_DH,
"CKM_TLS12_MASTER_KEY_DERIVE_DH");
++ addMech(CKM_TLS_MAC, "CKM_TLS_MAC");
+ addMech(CKM_MD5_KEY_DERIVATION, "CKM_MD5_KEY_DERIVATION");
+ addMech(CKM_MD2_KEY_DERIVATION, "CKM_MD2_KEY_DERIVATION");
+ addMech(CKM_SHA1_KEY_DERIVATION, "CKM_SHA1_KEY_DERIVATION");
+@@ -794,6 +808,12 @@
+ addMech(PCKM_SECURERANDOM, "SecureRandom");
+ addMech(PCKM_KEYSTORE, "KeyStore");
+
++ addHashMech(CKM_SHA_1, "SHA-1");
++ addHashMech(CKM_SHA224, "SHA-224");
++ addHashMech(CKM_SHA256, "SHA-256");
++ addHashMech(CKM_SHA384, "SHA-384");
++ addHashMech(CKM_SHA512, "SHA-512");
++
+ addKeyType(CKK_RSA, "CKK_RSA");
+ addKeyType(CKK_DSA, "CKK_DSA");
+ addKeyType(CKK_DH, "CKK_DH");
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -625,6 +625,14 @@
+ public static final long CKM_PKCS5_PBKD2 = 0x000003B0L;
+
+ public static final long CKM_PBA_SHA1_WITH_SHA1_HMAC = 0x000003C0L;
++
++ /* CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_KEY_AND_MAC_DERIVE,
++ * CKM_TLS12_MASTER_KEY_DERIVE_DH and CKM_TLS_MAC are new for v2.40 */
++ public static final long CKM_TLS12_MASTER_KEY_DERIVE = 0x000003E0L;
++ public static final long CKM_TLS12_KEY_AND_MAC_DERIVE = 0x000003E1L;
++ public static final long CKM_TLS12_MASTER_KEY_DERIVE_DH = 0x000003E2L;
++ public static final long CKM_TLS_MAC = 0x000003E4L;
++
+ public static final long CKM_KEY_WRAP_LYNKS = 0x00000400L;
+ public static final long CKM_KEY_WRAP_SET_OAEP = 0x00000401L;
+
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -457,67 +457,113 @@
+ return ckAttribute ;
+ }
+
+-/*
+- * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
+- * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
+- *
+- * @param env - used to call JNI funktions to get the Java classes and objects
+- * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
+- * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
+- */
+-CK_SSL3_MASTER_KEY_DERIVE_PARAMS
jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam)
+-{
+- // XXX don't return structs
+- // XXX prefetch class and field ids
+- jclass jSsl3MasterKeyDeriveParamsClass;
+- CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
++void masterKeyDeriveParamToCKMasterKeyDeriveParam(JNIEnv *env, jobject jParam,
++ jclass masterKeyDeriveParamClass,
++ CK_VERSION_PTR* cKMasterKeyDeriveParamVersion,
++ CK_SSL3_RANDOM_DATA* cKMasterKeyDeriveParamRandomInfo) {
+ jfieldID fieldID;
+ jclass jSsl3RandomDataClass;
+ jobject jRandomInfo, jRIClientRandom, jRIServerRandom, jVersion;
+- memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
+
+ /* get RandomInfo */
+- jSsl3MasterKeyDeriveParamsClass = (*env)->FindClass(env,
CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
+- if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
+- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass,
"RandomInfo", "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass,
"RandomInfo",
++ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
++ if (fieldID == NULL) { return; }
+ jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
+
+ /* get pClientRandom and ulClientRandomLength out of RandomInfo */
+ jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
+- if (jSsl3RandomDataClass == NULL) { return ckParam; }
++ if (jSsl3RandomDataClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pClientRandom", "[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
+
+ /* get pServerRandom and ulServerRandomLength out of RandomInfo */
+ fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pServerRandom", "[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
+
+ /* get pVersion */
+- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass,
"pVersion", "Lsun/security/pkcs11/wrapper/CK_VERSION;");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass,
"pVersion",
++ "Lsun/security/pkcs11/wrapper/CK_VERSION;");
++ if (fieldID == NULL) { return; }
+ jVersion = (*env)->GetObjectField(env, jParam, fieldID);
+
+ /* populate java values */
+- ckParam.pVersion = jVersionToCKVersionPtr(env, jVersion);
+- if ((*env)->ExceptionCheck(env)) { return ckParam; }
+- jByteArrayToCKByteArray(env, jRIClientRandom,
&(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
++ *cKMasterKeyDeriveParamVersion = jVersionToCKVersionPtr(env, jVersion);
++ if ((*env)->ExceptionCheck(env)) { return; }
++ jByteArrayToCKByteArray(env, jRIClientRandom,
++ &(cKMasterKeyDeriveParamRandomInfo->pClientRandom),
++ &(cKMasterKeyDeriveParamRandomInfo->ulClientRandomLen));
+ if ((*env)->ExceptionCheck(env)) {
+- free(ckParam.pVersion);
+- return ckParam;
++ free(*cKMasterKeyDeriveParamVersion);
++ return;
+ }
+- jByteArrayToCKByteArray(env, jRIServerRandom,
&(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
++ jByteArrayToCKByteArray(env, jRIServerRandom,
++ &(cKMasterKeyDeriveParamRandomInfo->pServerRandom),
++ &(cKMasterKeyDeriveParamRandomInfo->ulServerRandomLen));
+ if ((*env)->ExceptionCheck(env)) {
+- free(ckParam.pVersion);
+- free(ckParam.RandomInfo.pClientRandom);
+- return ckParam;
++ free(*cKMasterKeyDeriveParamVersion);
++ free(cKMasterKeyDeriveParamRandomInfo->pClientRandom);
++ return;
+ }
+-
+- return ckParam ;
+ }
+
++/*
++ * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
++ * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
++ *
++ * @param env - used to call JNI functions to get the Java classes and objects
++ * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
++ * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
++ */
++CK_SSL3_MASTER_KEY_DERIVE_PARAMS
++jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env,
++ jobject jParam)
++{
++ CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
++ jclass jSsl3MasterKeyDeriveParamsClass;
++ memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
++ jSsl3MasterKeyDeriveParamsClass =
++ (*env)->FindClass(env, CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
++ if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
++ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
++ jSsl3MasterKeyDeriveParamsClass,
++ &ckParam.pVersion, &ckParam.RandomInfo);
++ return ckParam;
++}
++
++/*
++ * converts the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to a
++ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
++ *
++ * @param env - used to call JNI functions to get the Java classes and objects
++ * @param jParam - the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to convert
++ * @return - the new CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
++ */
++CK_TLS12_MASTER_KEY_DERIVE_PARAMS
++jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(JNIEnv *env,
++ jobject jParam)
++{
++ CK_TLS12_MASTER_KEY_DERIVE_PARAMS ckParam;
++ jclass jTls12MasterKeyDeriveParamsClass;
++ jfieldID fieldID;
++ memset(&ckParam, 0, sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
++ jTls12MasterKeyDeriveParamsClass =
++ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
++ if (jTls12MasterKeyDeriveParamsClass == NULL) { return ckParam; }
++ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
++ jTls12MasterKeyDeriveParamsClass, &ckParam.pVersion,
++ &ckParam.RandomInfo);
++ fieldID = (*env)->GetFieldID(env,
++ jTls12MasterKeyDeriveParamsClass, "prfHashMechanism",
"J");
++ if (fieldID != NULL) {
++ jlong prfHashMechanism =
++ (*env)->GetLongField(env, jParam, fieldID);
++ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
++ }
++ return ckParam;
++}
+
+ /*
+ * converts the Java CK_TLS_PRF_PARAMS object to a CK_TLS_PRF_PARAMS structure
+@@ -576,126 +622,220 @@
+ }
+
+ /*
+- * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a CK_SSL3_KEY_MAT_PARAMS
structure
+- *
+- * @param env - used to call JNI funktions to get the Java classes and objects
+- * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
+- * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
++ * converts the Java CK_TLS_MAC_PARAMS object to a CK_TLS_MAC_PARAMS structure
+ */
+-CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
++CK_TLS_MAC_PARAMS jTlsMacParamsToCKTlsMacParam(JNIEnv *env, jobject jParam)
+ {
+- // XXX don't return structs
+- // XXX prefetch class and field ids
+- jclass jSsl3KeyMatParamsClass, jSsl3RandomDataClass, jSsl3KeyMatOutClass;
+- CK_SSL3_KEY_MAT_PARAMS ckParam;
++ jclass jTlsMacParamsClass;
++ CK_TLS_MAC_PARAMS ckParam;
++ jfieldID fieldID;
++ jlong jPrfMechanism, jUlMacLength, jUlServerOrClient;
++ memset(&ckParam, 0, sizeof(CK_TLS_MAC_PARAMS));
++
++ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
++ if (jTlsMacParamsClass == NULL) { return ckParam; }
++
++ /* get prfMechanism */
++ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "prfMechanism",
"J");
++ if (fieldID == NULL) { return ckParam; }
++ jPrfMechanism = (*env)->GetLongField(env, jParam, fieldID);
++
++ /* get ulMacLength */
++ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "ulMacLength",
"J");
++ if (fieldID == NULL) { return ckParam; }
++ jUlMacLength = (*env)->GetLongField(env, jParam, fieldID);
++
++ /* get ulServerOrClient */
++ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass,
"ulServerOrClient", "J");
++ if (fieldID == NULL) { return ckParam; }
++ jUlServerOrClient = (*env)->GetLongField(env, jParam, fieldID);
++
++ /* populate java values */
++ ckParam.prfMechanism = jLongToCKULong(jPrfMechanism);
++ ckParam.ulMacLength = jLongToCKULong(jUlMacLength);
++ ckParam.ulServerOrClient = jLongToCKULong(jUlServerOrClient);
++
++ return ckParam;
++}
++
++void keyMatParamToCKKeyMatParam(JNIEnv *env, jobject jParam,
++ jclass jKeyMatParamClass,
++ CK_ULONG* cKKeyMatParamUlMacSizeInBits,
++ CK_ULONG* cKKeyMatParamUlKeySizeInBits,
++ CK_ULONG* cKKeyMatParamUlIVSizeInBits,
++ CK_BBOOL* cKKeyMatParamBIsExport,
++ CK_SSL3_RANDOM_DATA* cKKeyMatParamRandomInfo,
++ CK_SSL3_KEY_MAT_OUT_PTR* cKKeyMatParamPReturnedKeyMaterial)
++{
++ jclass jSsl3RandomDataClass, jSsl3KeyMatOutClass;
+ jfieldID fieldID;
+ jlong jMacSizeInBits, jKeySizeInBits, jIVSizeInBits;
+ jboolean jIsExport;
+ jobject jRandomInfo, jRIClientRandom, jRIServerRandom;
+ jobject jReturnedKeyMaterial, jRMIvClient, jRMIvServer;
+ CK_ULONG ckTemp;
+- memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
+
+ /* get ulMacSizeInBits */
+- jSsl3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
+- if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulMacSizeInBits", "J");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulMacSizeInBits",
"J");
++ if (fieldID == NULL) { return; }
+ jMacSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* get ulKeySizeInBits */
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulKeySizeInBits", "J");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulKeySizeInBits",
"J");
++ if (fieldID == NULL) { return; }
+ jKeySizeInBits = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* get ulIVSizeInBits */
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"ulIVSizeInBits", "J");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulIVSizeInBits",
"J");
++ if (fieldID == NULL) { return; }
+ jIVSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* get bIsExport */
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "bIsExport",
"Z");
+- if (fieldID == NULL) { return ckParam; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "bIsExport",
"Z");
++ if (fieldID == NULL) { return; }
+ jIsExport = (*env)->GetBooleanField(env, jParam, fieldID);
+
+ /* get RandomInfo */
+ jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
+- if (jSsl3RandomDataClass == NULL) { return ckParam; }
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "RandomInfo",
"Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
+- if (fieldID == NULL) { return ckParam; }
++ if (jSsl3RandomDataClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "RandomInfo",
++ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
++ if (fieldID == NULL) { return; }
+ jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
+
+ /* get pClientRandom and ulClientRandomLength out of RandomInfo */
+ fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pClientRandom", "[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
+
+ /* get pServerRandom and ulServerRandomLength out of RandomInfo */
+ fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass,
"pServerRandom", "[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
+
+ /* get pReturnedKeyMaterial */
+ jSsl3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
+- if (jSsl3KeyMatOutClass == NULL) { return ckParam; }
+- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass,
"pReturnedKeyMaterial",
"Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
+- if (fieldID == NULL) { return ckParam; }
++ if (jSsl3KeyMatOutClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass,
"pReturnedKeyMaterial",
++ "Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
++ if (fieldID == NULL) { return; }
+ jReturnedKeyMaterial = (*env)->GetObjectField(env, jParam, fieldID);
+
+ /* get pIVClient out of pReturnedKeyMaterial */
+ fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVClient",
"[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRMIvClient = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
+
+ /* get pIVServer out of pReturnedKeyMaterial */
+ fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVServer",
"[B");
+- if (fieldID == NULL) { return ckParam; }
++ if (fieldID == NULL) { return; }
+ jRMIvServer = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
+
+ /* populate java values */
+- ckParam.ulMacSizeInBits = jLongToCKULong(jMacSizeInBits);
+- ckParam.ulKeySizeInBits = jLongToCKULong(jKeySizeInBits);
+- ckParam.ulIVSizeInBits = jLongToCKULong(jIVSizeInBits);
+- ckParam.bIsExport = jBooleanToCKBBool(jIsExport);
+- jByteArrayToCKByteArray(env, jRIClientRandom,
&(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
+- if ((*env)->ExceptionCheck(env)) { return ckParam; }
+- jByteArrayToCKByteArray(env, jRIServerRandom,
&(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
++ *cKKeyMatParamUlMacSizeInBits = jLongToCKULong(jMacSizeInBits);
++ *cKKeyMatParamUlKeySizeInBits = jLongToCKULong(jKeySizeInBits);
++ *cKKeyMatParamUlIVSizeInBits = jLongToCKULong(jIVSizeInBits);
++ *cKKeyMatParamBIsExport = jBooleanToCKBBool(jIsExport);
++ jByteArrayToCKByteArray(env, jRIClientRandom,
++ &(cKKeyMatParamRandomInfo->pClientRandom),
++ &(cKKeyMatParamRandomInfo->ulClientRandomLen));
++ if ((*env)->ExceptionCheck(env)) { return; }
++ jByteArrayToCKByteArray(env, jRIServerRandom,
++ &(cKKeyMatParamRandomInfo->pServerRandom),
++ &(cKKeyMatParamRandomInfo->ulServerRandomLen));
+ if ((*env)->ExceptionCheck(env)) {
+- free(ckParam.RandomInfo.pClientRandom);
+- return ckParam;
++ free(cKKeyMatParamRandomInfo->pClientRandom);
++ return;
+ }
+ /* allocate memory for pRetrunedKeyMaterial */
+- ckParam.pReturnedKeyMaterial = (CK_SSL3_KEY_MAT_OUT_PTR)
malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
+- if (ckParam.pReturnedKeyMaterial == NULL) {
+- free(ckParam.RandomInfo.pClientRandom);
+- free(ckParam.RandomInfo.pServerRandom);
++ *cKKeyMatParamPReturnedKeyMaterial =
++ (CK_SSL3_KEY_MAT_OUT_PTR)malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
++ if (*cKKeyMatParamPReturnedKeyMaterial == NULL) {
++ free(cKKeyMatParamRandomInfo->pClientRandom);
++ free(cKKeyMatParamRandomInfo->pServerRandom);
+ throwOutOfMemoryError(env, 0);
+- return ckParam;
++ return;
+ }
+
+ // the handles are output params only, no need to fetch them from Java
+- ckParam.pReturnedKeyMaterial->hClientMacSecret = 0;
+- ckParam.pReturnedKeyMaterial->hServerMacSecret = 0;
+- ckParam.pReturnedKeyMaterial->hClientKey = 0;
+- ckParam.pReturnedKeyMaterial->hServerKey = 0;
++ (*cKKeyMatParamPReturnedKeyMaterial)->hClientMacSecret = 0;
++ (*cKKeyMatParamPReturnedKeyMaterial)->hServerMacSecret = 0;
++ (*cKKeyMatParamPReturnedKeyMaterial)->hClientKey = 0;
++ (*cKKeyMatParamPReturnedKeyMaterial)->hServerKey = 0;
+
+- jByteArrayToCKByteArray(env, jRMIvClient,
&(ckParam.pReturnedKeyMaterial->pIVClient), &ckTemp);
++ jByteArrayToCKByteArray(env, jRMIvClient,
++ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient), &ckTemp);
+ if ((*env)->ExceptionCheck(env)) {
+- free(ckParam.RandomInfo.pClientRandom);
+- free(ckParam.RandomInfo.pServerRandom);
+- free(ckParam.pReturnedKeyMaterial);
+- return ckParam;
++ free(cKKeyMatParamRandomInfo->pClientRandom);
++ free(cKKeyMatParamRandomInfo->pServerRandom);
++ free((*cKKeyMatParamPReturnedKeyMaterial));
++ return;
+ }
+- jByteArrayToCKByteArray(env, jRMIvServer,
&(ckParam.pReturnedKeyMaterial->pIVServer), &ckTemp);
++ jByteArrayToCKByteArray(env, jRMIvServer,
++ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVServer), &ckTemp);
+ if ((*env)->ExceptionCheck(env)) {
+- free(ckParam.RandomInfo.pClientRandom);
+- free(ckParam.RandomInfo.pServerRandom);
+- free(ckParam.pReturnedKeyMaterial->pIVClient);
+- free(ckParam.pReturnedKeyMaterial);
+- return ckParam;
++ free(cKKeyMatParamRandomInfo->pClientRandom);
++ free(cKKeyMatParamRandomInfo->pServerRandom);
++ free((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient);
++ free((*cKKeyMatParamPReturnedKeyMaterial));
++ return;
+ }
+
+- return ckParam ;
++ return;
++}
++/*
++ * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a
++ * CK_SSL3_KEY_MAT_PARAMS structure
++ *
++ * @param env - used to call JNI funktions to get the Java classes and objects
++ * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
++ * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
++ */
++CK_SSL3_KEY_MAT_PARAMS
++jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
++{
++ CK_SSL3_KEY_MAT_PARAMS ckParam;
++ jclass jSsl3KeyMatParamsClass;
++ memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
++ jSsl3KeyMatParamsClass = (*env)->FindClass(env,
++ CLASS_SSL3_KEY_MAT_PARAMS);
++ if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
++ keyMatParamToCKKeyMatParam(env, jParam, jSsl3KeyMatParamsClass,
++ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
++ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
++ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
++ return ckParam;
++}
++
++/*
++ * converts the Java CK_TLS12_KEY_MAT_PARAMS object to a
++ * CK_TLS12_KEY_MAT_PARAMS structure
++ *
++ * @param env - used to call JNI functions to get the Java classes and objects
++ * @param jParam - the Java CK_TLS12_KEY_MAT_PARAMS object to convert
++ * @return - the new CK_TLS12_KEY_MAT_PARAMS structure
++ */
++CK_TLS12_KEY_MAT_PARAMS jTls12KeyMatParamToCKTls12KeyMatParam(JNIEnv *env,
++ jobject jParam)
++{
++ CK_TLS12_KEY_MAT_PARAMS ckParam;
++ jclass jTls12KeyMatParamsClass;
++ jfieldID fieldID;
++ memset(&ckParam, 0, sizeof(CK_TLS12_KEY_MAT_PARAMS));
++ jTls12KeyMatParamsClass = (*env)->FindClass(env,
++ CLASS_TLS12_KEY_MAT_PARAMS);
++ if (jTls12KeyMatParamsClass == NULL) { return ckParam; }
++ keyMatParamToCKKeyMatParam(env, jParam, jTls12KeyMatParamsClass,
++ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
++ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
++ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
++ fieldID = (*env)->GetFieldID(env, jTls12KeyMatParamsClass,
++ "prfHashMechanism", "J");
++ if (fieldID != NULL) {
++ jlong prfHashMechanism = (*env)->GetLongField(env, jParam, fieldID);
++ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
++ }
++ return ckParam;
+ }
+
+ /*
+@@ -980,8 +1120,11 @@
+ void jMechanismParameterToCKMechanismParameterSlow(JNIEnv *env, jobject jParam,
CK_VOID_PTR *ckpParamPtr, CK_ULONG *ckpLength)
+ {
+ /* get all Java mechanism parameter classes */
+- jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
+- jclass jTlsPrfParamsClass, jAesCtrParamsClass, jRsaPkcsOaepParamsClass;
++ jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass;
++ jclass jTls12MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
++ jclass jTls12KeyMatParamsClass;
++ jclass jTlsPrfParamsClass, jTlsMacParamsClass, jAesCtrParamsClass;
++ jclass jRsaPkcsOaepParamsClass;
+ jclass jPbeParamsClass, jPkcs5Pbkd2ParamsClass, jRsaPkcsPssParamsClass;
+ jclass jEcdh1DeriveParamsClass, jEcdh2DeriveParamsClass;
+ jclass jX942Dh1DeriveParamsClass, jX942Dh2DeriveParamsClass;
+@@ -1061,6 +1204,62 @@
+ return;
+ }
+
++ jTls12KeyMatParamsClass = (*env)->FindClass(env, CLASS_TLS12_KEY_MAT_PARAMS);
++ if (jTls12KeyMatParamsClass == NULL) { return; }
++ if ((*env)->IsInstanceOf(env, jParam, jTls12KeyMatParamsClass)) {
++ /*
++ * CK_TLS12_KEY_MAT_PARAMS
++ */
++ CK_TLS12_KEY_MAT_PARAMS_PTR ckpParam;
++
++ ckpParam = (CK_TLS12_KEY_MAT_PARAMS_PTR)
malloc(sizeof(CK_TLS12_KEY_MAT_PARAMS));
++ if (ckpParam == NULL) {
++ throwOutOfMemoryError(env, 0);
++ return;
++ }
++
++ /* convert jParameter to CKParameter */
++ *ckpParam = jTls12KeyMatParamToCKTls12KeyMatParam(env, jParam);
++ if ((*env)->ExceptionCheck(env)) {
++ free(ckpParam);
++ return;
++ }
++
++ /* get length and pointer of parameter */
++ *ckpLength = sizeof(CK_TLS12_KEY_MAT_PARAMS);
++ *ckpParamPtr = ckpParam;
++ return;
++ }
++
++ jTls12MasterKeyDeriveParamsClass =
++ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
++ if (jTls12MasterKeyDeriveParamsClass == NULL) { return; }
++ if ((*env)->IsInstanceOf(env, jParam, jTls12MasterKeyDeriveParamsClass)) {
++ /*
++ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS
++ */
++ CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR ckpParam;
++
++ ckpParam = (CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR)malloc(
++ sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
++ if (ckpParam == NULL) {
++ throwOutOfMemoryError(env, 0);
++ return;
++ }
++
++ /* convert jParameter to CKParameter */
++ *ckpParam = jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(env,
jParam);
++ if ((*env)->ExceptionCheck(env)) {
++ free(ckpParam);
++ return;
++ }
++
++ /* get length and pointer of parameter */
++ *ckpLength = sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS);
++ *ckpParamPtr = ckpParam;
++ return;
++ }
++
+ jTlsPrfParamsClass = (*env)->FindClass(env, CLASS_TLS_PRF_PARAMS);
+ if (jTlsPrfParamsClass == NULL) { return; }
+ if ((*env)->IsInstanceOf(env, jParam, jTlsPrfParamsClass)) {
+@@ -1088,6 +1287,30 @@
+ return;
+ }
+
++ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
++ if (jTlsMacParamsClass == NULL) { return; }
++ if ((*env)->IsInstanceOf(env, jParam, jTlsMacParamsClass)) {
++ CK_TLS_MAC_PARAMS_PTR ckpParam;
++
++ ckpParam = (CK_TLS_MAC_PARAMS_PTR) malloc(sizeof(CK_TLS_MAC_PARAMS));
++ if (ckpParam == NULL) {
++ throwOutOfMemoryError(env, 0);
++ return;
++ }
++
++ /* convert jParameter to CKParameter */
++ *ckpParam = jTlsMacParamsToCKTlsMacParam(env, jParam);
++ if ((*env)->ExceptionCheck(env)) {
++ free(ckpParam);
++ return;
++ }
++
++ /* get length and pointer of parameter */
++ *ckpLength = sizeof(CK_TLS_MAC_PARAMS);
++ *ckpParamPtr = ckpParam;
++ return;
++ }
++
+ jAesCtrParamsClass = (*env)->FindClass(env, CLASS_AES_CTR_PARAMS);
+ if (jAesCtrParamsClass == NULL) { return; }
+ if ((*env)->IsInstanceOf(env, jParam, jAesCtrParamsClass)) {
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -355,25 +355,38 @@
+
+ #ifdef P11_ENABLE_C_DERIVEKEY
+
+-void freeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
++static void freeMasterKeyDeriveParams(CK_SSL3_RANDOM_DATA *RandomInfo, CK_VERSION_PTR
pVersion) {
++ if (RandomInfo->pClientRandom != NULL) {
++ free(RandomInfo->pClientRandom);
++ }
++ if (RandomInfo->pServerRandom != NULL) {
++ free(RandomInfo->pServerRandom);
++ }
++ if (pVersion != NULL) {
++ free(pVersion);
++ }
++}
++
++void ssl3FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS *params = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)
ckMechanism->pParameter;
+ if (params == NULL) {
+ return;
+ }
++ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
++}
+
+- if (params->RandomInfo.pClientRandom != NULL) {
+- free(params->RandomInfo.pClientRandom);
++void tls12FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
++ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *params =
++ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
++ if (params == NULL) {
++ return;
+ }
+- if (params->RandomInfo.pServerRandom != NULL) {
+- free(params->RandomInfo.pServerRandom);
+- }
+- if (params->pVersion != NULL) {
+- free(params->pVersion);
+- }
++ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
+ }
+
+ void freeEcdh1DeriveParams(CK_MECHANISM_PTR ckMechanism) {
+- CK_ECDH1_DERIVE_PARAMS *params = (CK_ECDH1_DERIVE_PARAMS *)
ckMechanism->pParameter;
++ CK_ECDH1_DERIVE_PARAMS *params =
++ (CK_ECDH1_DERIVE_PARAMS *)ckMechanism->pParameter;
+ if (params == NULL) {
+ return;
+ }
+@@ -498,6 +511,7 @@
+ switch (ckMechanism.mechanism) {
+ case CKM_SSL3_KEY_AND_MAC_DERIVE:
+ case CKM_TLS_KEY_AND_MAC_DERIVE:
++ case CKM_TLS12_KEY_AND_MAC_DERIVE:
+ case CKM_TLS_PRF:
+ // these mechanism do not return a key handle via phKey
+ // set to NULL in case pedantic implementations check for it
+@@ -519,17 +533,28 @@
+ case CKM_SSL3_MASTER_KEY_DERIVE:
+ case CKM_TLS_MASTER_KEY_DERIVE:
+ /* we must copy back the client version */
+- copyBackClientVersion(env, &ckMechanism, jMechanism);
+- freeMasterKeyDeriveParams(&ckMechanism);
++ ssl3CopyBackClientVersion(env, &ckMechanism, jMechanism);
++ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
++ break;
++ case CKM_TLS12_MASTER_KEY_DERIVE:
++ tls12CopyBackClientVersion(env, &ckMechanism, jMechanism);
++ tls12FreeMasterKeyDeriveParams(&ckMechanism);
+ break;
+ case CKM_SSL3_MASTER_KEY_DERIVE_DH:
+ case CKM_TLS_MASTER_KEY_DERIVE_DH:
+- freeMasterKeyDeriveParams(&ckMechanism);
++ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
++ break;
++ case CKM_TLS12_MASTER_KEY_DERIVE_DH:
++ tls12FreeMasterKeyDeriveParams(&ckMechanism);
+ break;
+ case CKM_SSL3_KEY_AND_MAC_DERIVE:
+ case CKM_TLS_KEY_AND_MAC_DERIVE:
+ /* we must copy back the unwrapped key info to the jMechanism object */
+- copyBackSSLKeyMatParams(env, &ckMechanism, jMechanism);
++ ssl3CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
++ break;
++ case CKM_TLS12_KEY_AND_MAC_DERIVE:
++ /* we must copy back the unwrapped key info to the jMechanism object */
++ tls12CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
+ break;
+ case CKM_TLS_PRF:
+ copyBackTLSPrfParams(env, &ckMechanism, jMechanism);
+@@ -550,53 +575,42 @@
+ return jKeyHandle ;
+ }
+
+-/*
+- * Copy back the client version information from the native
+- * structure to the Java object. This is only used for the
+- * CKM_SSL3_MASTER_KEY_DERIVE mechanism when used for deriving a key.
+- *
+- */
+-void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism)
++static void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism,
++ CK_VERSION *ckVersion, const char *class_master_key_derive_params)
+ {
+- jclass jMechanismClass, jSSL3MasterKeyDeriveParamsClass, jVersionClass;
+- CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
+- CK_VERSION *ckVersion;
+- jfieldID fieldID;
+- CK_MECHANISM_TYPE ckMechanismType;
+- jlong jMechanismType;
+- jobject jSSL3MasterKeyDeriveParams;
+- jobject jVersion;
++ jclass jMasterKeyDeriveParamsClass, jMechanismClass, jVersionClass;
++ jobject jMasterKeyDeriveParams;
++ jfieldID fieldID;
++ CK_MECHANISM_TYPE ckMechanismType;
++ jlong jMechanismType;
++ jobject jVersion;
+
+- /* get mechanism */
+- jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
+- if (jMechanismClass == NULL) { return; }
+- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
+- if (fieldID == NULL) { return; }
+- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
+- ckMechanismType = jLongToCKULong(jMechanismType);
+- if (ckMechanismType != ckMechanism->mechanism) {
+- /* we do not have maching types, this should not occur */
+- return;
+- }
++ /* get mechanism */
++ jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
++ if (jMechanismClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
++ if (fieldID == NULL) { return; }
++ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
++ ckMechanismType = jLongToCKULong(jMechanismType);
++ if (ckMechanismType != ckMechanism->mechanism) {
++ /* we do not have maching types, this should not occur */
++ return;
++ }
+
+- /* get the native CK_SSL3_MASTER_KEY_DERIVE_PARAMS */
+- ckSSL3MasterKeyDeriveParams = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)
ckMechanism->pParameter;
+- if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
+- /* get the native CK_VERSION */
+- ckVersion = ckSSL3MasterKeyDeriveParams->pVersion;
+ if (ckVersion != NULL_PTR) {
+ /* get the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS (pParameter) */
+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
"Ljava/lang/Object;");
+ if (fieldID == NULL) { return; }
+
+- jSSL3MasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
++ jMasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
+
+ /* get the Java CK_VERSION */
+- jSSL3MasterKeyDeriveParamsClass = (*env)->FindClass(env,
CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
+- if (jSSL3MasterKeyDeriveParamsClass == NULL) { return; }
+- fieldID = (*env)->GetFieldID(env, jSSL3MasterKeyDeriveParamsClass,
"pVersion", "L"CLASS_VERSION";");
++ jMasterKeyDeriveParamsClass = (*env)->FindClass(env,
class_master_key_derive_params);
++ if (jMasterKeyDeriveParamsClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jMasterKeyDeriveParamsClass,
++ "pVersion", "L"CLASS_VERSION";");
+ if (fieldID == NULL) { return; }
+- jVersion = (*env)->GetObjectField(env, jSSL3MasterKeyDeriveParams, fieldID);
++ jVersion = (*env)->GetObjectField(env, jMasterKeyDeriveParams, fieldID);
+
+ /* now copy back the version from the native structure to the Java structure */
+
+@@ -612,92 +626,126 @@
+ if (fieldID == NULL) { return; }
+ (*env)->SetByteField(env, jVersion, fieldID,
ckByteToJByte(ckVersion->minor));
+ }
+- }
+ }
+
++/*
++ * Copy back the client version information from the native
++ * structure to the Java object. This is only used for
++ * CKM_SSL3_MASTER_KEY_DERIVE and CKM_TLS_MASTER_KEY_DERIVE
++ * mechanisms when used for deriving a key.
++ *
++ */
++void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
++ jobject jMechanism)
++{
++ CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
++ ckSSL3MasterKeyDeriveParams =
++ (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
++ if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
++ copyBackClientVersion(env, ckMechanism, jMechanism,
++ ckSSL3MasterKeyDeriveParams->pVersion,
++ CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
++ }
++}
+
+ /*
+- * Copy back the derived keys and initialization vectors from the native
+- * structure to the Java object. This is only used for the
+- * CKM_SSL3_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
++ * Copy back the client version information from the native
++ * structure to the Java object. This is only used for
++ * CKM_TLS12_MASTER_KEY_DERIVE mechanism when used for deriving a key.
+ *
+ */
+-void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism)
++void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
++ jobject jMechanism)
+ {
+- jclass jMechanismClass, jSSL3KeyMatParamsClass, jSSL3KeyMatOutClass;
+- CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
+- CK_SSL3_KEY_MAT_OUT *ckSSL3KeyMatOut;
+- jfieldID fieldID;
+- CK_MECHANISM_TYPE ckMechanismType;
+- jlong jMechanismType;
+- CK_BYTE_PTR iv;
+- jobject jSSL3KeyMatParam;
+- jobject jSSL3KeyMatOut;
+- jobject jIV;
+- jint jLength;
+- jbyte* jBytes;
+- int i;
++ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *ckTLS12MasterKeyDeriveParams;
++ ckTLS12MasterKeyDeriveParams =
++ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
++ if (ckTLS12MasterKeyDeriveParams != NULL_PTR) {
++ copyBackClientVersion(env, ckMechanism, jMechanism,
++ ckTLS12MasterKeyDeriveParams->pVersion,
++ CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
++ }
++}
+
+- /* get mechanism */
+- jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
+- if (jMechanismClass == NULL) { return; }
+- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
+- if (fieldID == NULL) { return; }
+- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
+- ckMechanismType = jLongToCKULong(jMechanismType);
+- if (ckMechanismType != ckMechanism->mechanism) {
+- /* we do not have maching types, this should not occur */
+- return;
+- }
++static void copyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
++ jobject jMechanism, CK_SSL3_RANDOM_DATA *RandomInfo,
++ CK_SSL3_KEY_MAT_OUT_PTR ckSSL3KeyMatOut, const char *class_key_mat_params)
++{
++ jclass jMechanismClass, jKeyMatParamsClass, jSSL3KeyMatOutClass;
++ jfieldID fieldID;
++ CK_MECHANISM_TYPE ckMechanismType;
++ jlong jMechanismType;
++ CK_BYTE_PTR iv;
++ jobject jKeyMatParam;
++ jobject jSSL3KeyMatOut;
++ jobject jIV;
++ jint jLength;
++ jbyte* jBytes;
++ int i;
+
+- /* get the native CK_SSL3_KEY_MAT_PARAMS */
+- ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *) ckMechanism->pParameter;
+- if (ckSSL3KeyMatParam != NULL_PTR) {
+- // free malloc'd data
+- if (ckSSL3KeyMatParam->RandomInfo.pClientRandom != NULL) {
+- free(ckSSL3KeyMatParam->RandomInfo.pClientRandom);
+- }
+- if (ckSSL3KeyMatParam->RandomInfo.pServerRandom != NULL) {
+- free(ckSSL3KeyMatParam->RandomInfo.pServerRandom);
++ /* get mechanism */
++ jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
++ if (jMechanismClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism",
"J");
++ if (fieldID == NULL) { return; }
++ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
++ ckMechanismType = jLongToCKULong(jMechanismType);
++ if (ckMechanismType != ckMechanism->mechanism) {
++ /* we do not have maching types, this should not occur */
++ return;
+ }
+
+- /* get the native CK_SSL3_KEY_MAT_OUT */
+- ckSSL3KeyMatOut = ckSSL3KeyMatParam->pReturnedKeyMaterial;
++ // free malloc'd data
++ if (RandomInfo->pClientRandom != NULL) {
++ free(RandomInfo->pClientRandom);
++ }
++ if (RandomInfo->pServerRandom != NULL) {
++ free(RandomInfo->pServerRandom);
++ }
++
+ if (ckSSL3KeyMatOut != NULL_PTR) {
+- /* get the Java CK_SSL3_KEY_MAT_PARAMS (pParameter) */
+- fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
"Ljava/lang/Object;");
++ /* get the Java params object (pParameter) */
++ fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
++ "Ljava/lang/Object;");
+ if (fieldID == NULL) { return; }
+- jSSL3KeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
++ jKeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
+
+ /* get the Java CK_SSL3_KEY_MAT_OUT */
+- jSSL3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
+- if (jSSL3KeyMatParamsClass == NULL) { return; }
+- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatParamsClass,
"pReturnedKeyMaterial", "L"CLASS_SSL3_KEY_MAT_OUT";");
++ jKeyMatParamsClass = (*env)->FindClass(env, class_key_mat_params);
++ if (jKeyMatParamsClass == NULL) { return; }
++ fieldID = (*env)->GetFieldID(env, jKeyMatParamsClass,
++ "pReturnedKeyMaterial",
"L"CLASS_SSL3_KEY_MAT_OUT";");
+ if (fieldID == NULL) { return; }
+- jSSL3KeyMatOut = (*env)->GetObjectField(env, jSSL3KeyMatParam, fieldID);
++ jSSL3KeyMatOut = (*env)->GetObjectField(env, jKeyMatParam, fieldID);
+
+ /* now copy back all the key handles and the initialization vectors */
+ /* copy back client MAC secret handle */
+ jSSL3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
+ if (jSSL3KeyMatOutClass == NULL) { return; }
+- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
"hClientMacSecret", "J");
++ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
++ "hClientMacSecret", "J");
+ if (fieldID == NULL) { return; }
+- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
++ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
++ ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
+
+ /* copy back server MAC secret handle */
+- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
"hServerMacSecret", "J");
++ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
++ "hServerMacSecret", "J");
+ if (fieldID == NULL) { return; }
+- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
++ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
++ ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
+
+ /* copy back client secret key handle */
+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hClientKey",
"J");
+ if (fieldID == NULL) { return; }
+- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
++ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
++ ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
+
+ /* copy back server secret key handle */
+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hServerKey",
"J");
+ if (fieldID == NULL) { return; }
+- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
++ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
++ ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
+
+ /* copy back the client IV */
+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "pIVClient",
"[B");
+@@ -740,7 +788,45 @@
+ free(ckSSL3KeyMatOut->pIVServer);
+ free(ckSSL3KeyMatOut);
+ }
+- }
++}
++
++/*
++ * Copy back the derived keys and initialization vectors from the native
++ * structure to the Java object. This is only used for
++ * CKM_SSL3_KEY_AND_MAC_DERIVE and CKM_TLS_KEY_AND_MAC_DERIVE mechanisms
++ * when used for deriving a key.
++ *
++ */
++void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
++ jobject jMechanism)
++{
++ CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
++ ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *)ckMechanism->pParameter;
++ if (ckSSL3KeyMatParam != NULL_PTR) {
++ copyBackKeyMatParams(env, ckMechanism, jMechanism,
++ &(ckSSL3KeyMatParam->RandomInfo),
++ ckSSL3KeyMatParam->pReturnedKeyMaterial,
++ CLASS_SSL3_KEY_MAT_PARAMS);
++ }
++}
++
++/*
++ * Copy back the derived keys and initialization vectors from the native
++ * structure to the Java object. This is only used for
++ * CKM_TLS12_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
++ *
++ */
++void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
++ jobject jMechanism)
++{
++ CK_TLS12_KEY_MAT_PARAMS *ckTLS12KeyMatParam;
++ ckTLS12KeyMatParam = (CK_TLS12_KEY_MAT_PARAMS *) ckMechanism->pParameter;
++ if (ckTLS12KeyMatParam != NULL_PTR) {
++ copyBackKeyMatParams(env, ckMechanism, jMechanism,
++ &(ckTLS12KeyMatParam->RandomInfo),
++ ckTLS12KeyMatParam->pReturnedKeyMaterial,
++ CLASS_TLS12_KEY_MAT_PARAMS);
++ }
+ }
+
+ #endif
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11t.h
+@@ -807,6 +807,12 @@
+ #define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003D4
+ #define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003D5
+
++/* new for v2.40 */
++#define CKM_TLS12_MASTER_KEY_DERIVE 0x000003E0
++#define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003E1
++#define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003E2
++#define CKM_TLS_MAC 0x000003E4
++
+ #define CKM_KEY_WRAP_LYNKS 0x00000400
+ #define CKM_KEY_WRAP_SET_OAEP 0x00000401
+
+@@ -1682,4 +1688,34 @@
+
+ typedef CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR;
+
++/* new for v2.40 */
++
++typedef struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
++ CK_SSL3_RANDOM_DATA RandomInfo;
++ CK_VERSION_PTR pVersion;
++ CK_MECHANISM_TYPE prfHashMechanism;
++} CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
++
++typedef CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR;
++
++typedef struct CK_TLS12_KEY_MAT_PARAMS {
++ CK_ULONG ulMacSizeInBits;
++ CK_ULONG ulKeySizeInBits;
++ CK_ULONG ulIVSizeInBits;
++ CK_BBOOL bIsExport;
++ CK_SSL3_RANDOM_DATA RandomInfo;
++ CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
++ CK_MECHANISM_TYPE prfHashMechanism;
++} CK_TLS12_KEY_MAT_PARAMS;
++
++typedef CK_TLS12_KEY_MAT_PARAMS CK_PTR CK_TLS12_KEY_MAT_PARAMS_PTR;
++
++typedef struct CK_TLS_MAC_PARAMS {
++ CK_MECHANISM_TYPE prfMechanism;
++ CK_ULONG ulMacLength;
++ CK_ULONG ulServerOrClient;
++} CK_TLS_MAC_PARAMS;
++
++typedef CK_TLS_MAC_PARAMS CK_PTR CK_TLS_MAC_PARAMS_PTR;
++
+ #endif
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ */
+
+ /* Copyright (c) 2002 Graz University of Technology. All rights reserved.
+@@ -268,10 +268,13 @@
+ #define CLASS_SSL3_RANDOM_DATA
"sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA"
+ // CLASS_SSL3_RANDOM_DATA is used by CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS
+ #define CLASS_SSL3_KEY_MAT_OUT
"sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT"
+-// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS
++// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS and
CK_TLS12_KEY_MAT_PARAMS
+ #define CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS
"sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS"
++#define CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS
"sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS"
+ #define CLASS_SSL3_KEY_MAT_PARAMS
"sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_PARAMS"
++#define CLASS_TLS12_KEY_MAT_PARAMS
"sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS"
+ #define CLASS_TLS_PRF_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS"
++#define CLASS_TLS_MAC_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS"
+ #define CLASS_AES_CTR_PARAMS "sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS"
+
+ /* function to convert a PKCS#11 return value other than CK_OK into a Java Exception
+@@ -361,9 +364,11 @@
+ CK_KEY_WRAP_SET_OAEP_PARAMS jKeyWrapSetOaepParamToCKKeyWrapSetOaepParam(JNIEnv *env,
jobject jParam);
+ void copyBackSetUnwrappedKey(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS
jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam);
+-void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
++void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
++void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
+ CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject
jParam);
+-void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
++void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
++void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject
jMechanism);
+ CK_KEY_DERIVATION_STRING_DATA jKeyDerivationStringDataToCKKeyDerivationStringData(JNIEnv
*env, jobject jParam);
+ CK_RSA_PKCS_PSS_PARAMS jRsaPkcsPssParamToCKRsaPkcsPssParam(JNIEnv *env, jobject
jParam);
+ CK_ECDH1_DERIVE_PARAMS jEcdh1DeriveParamToCKEcdh1DeriveParam(JNIEnv *env, jobject
jParam);
+diff --git openjdk.orig/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
openjdk/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/security/pkcs11/fips/TestTLS12.java
+@@ -0,0 +1,449 @@
++/*
++ * Copyright (c) 2018, Red Hat, Inc. 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
++ * @bug 8029661
++ * @summary Test TLS 1.2
++ * @library ..
++ * @run main/othervm/timeout=120 TestTLS12
++ */
++
++import java.io.File;
++import java.io.FileInputStream;
++import java.io.InputStream;
++import java.nio.ByteBuffer;
++
++import java.security.interfaces.RSAPrivateKey;
++import java.security.interfaces.RSAPublicKey;
++import java.security.KeyStore;
++import java.security.NoSuchAlgorithmException;
++import java.security.Provider;
++import java.security.SecureRandom;
++import java.security.Security;
++
++import java.util.Arrays;
++
++import javax.crypto.Cipher;
++import javax.crypto.KeyGenerator;
++import javax.crypto.SecretKey;
++import javax.crypto.spec.SecretKeySpec;
++
++import javax.net.ssl.KeyManagerFactory;
++import javax.net.ssl.SSLContext;
++import javax.net.ssl.SSLEngine;
++import javax.net.ssl.SSLEngineResult;
++import javax.net.ssl.SSLEngineResult.HandshakeStatus;
++import javax.net.ssl.SSLParameters;
++import javax.net.ssl.SSLSession;
++import javax.net.ssl.TrustManagerFactory;
++
++import sun.security.internal.spec.TlsMasterSecretParameterSpec;
++import sun.security.internal.spec.TlsPrfParameterSpec;
++import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec;
++
++public final class TestTLS12 extends SecmodTest {
++
++ private static final boolean enableDebug = true;
++
++ private static Provider sunPKCS11NSSProvider;
++ private static Provider sunJCEProvider;
++ private static com.sun.net.ssl.internal.ssl.Provider jsseProvider;
++ private static KeyStore ks;
++ private static KeyStore ts;
++ private static char[] passphrase = "JAHshj131@(a)".toCharArray();
++ private static RSAPrivateKey privateKey;
++ private static RSAPublicKey publicKey;
++
++ public static void main(String[] args) throws Exception {
++ try {
++ initialize();
++ } catch (Exception e) {
++ System.out.println("Test skipped: failure during" +
++ " initialization");
++ return;
++ }
++
++ if (shouldRun()) {
++ // Test against JCE
++ testTlsAuthenticationCodeGeneration();
++
++ // Self-integrity test (complete TLS 1.2 communication)
++ new testTLS12SunPKCS11Communication().run();
++
++ System.out.println("Test PASS - OK");
++ } else {
++ System.out.println("Test skipped: TLS 1.2 mechanisms" +
++ " not supported by current SunPKCS11 back-end");
++ }
++ }
++
++ private static boolean shouldRun() {
++ if (sunPKCS11NSSProvider == null) {
++ return false;
++ }
++ try {
++ KeyGenerator.getInstance("SunTls12MasterSecret",
++ sunPKCS11NSSProvider);
++ KeyGenerator.getInstance(
++ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
++ KeyGenerator.getInstance("SunTls12Prf", sunPKCS11NSSProvider);
++ } catch (NoSuchAlgorithmException e) {
++ return false;
++ }
++ return true;
++ }
++
++ private static void testTlsAuthenticationCodeGeneration()
++ throws Exception {
++ // Generate RSA Pre-Master Secret in SunPKCS11 provider
++ SecretKey rsaPreMasterSecret = null;
++ @SuppressWarnings("deprecation")
++ TlsRsaPremasterSecretParameterSpec rsaPreMasterSecretSpec =
++ new TlsRsaPremasterSecretParameterSpec(0x0303, 0x0303);
++ {
++ KeyGenerator rsaPreMasterSecretKG = KeyGenerator.getInstance(
++ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
++ rsaPreMasterSecretKG.init(rsaPreMasterSecretSpec, null);
++ rsaPreMasterSecret = rsaPreMasterSecretKG.generateKey();
++ }
++
++ // Get RSA Pre-Master Secret in plain (from SunPKCS11 provider)
++ byte[] rsaPlainPreMasterSecret = null;
++ {
++ Cipher rsaPreMasterSecretWrapperCipher =
++ Cipher.getInstance("RSA/ECB/PKCS1Padding",
++ sunPKCS11NSSProvider);
++ rsaPreMasterSecretWrapperCipher.init(Cipher.WRAP_MODE, publicKey,
++ new SecureRandom());
++ byte[] rsaEncryptedPreMasterSecret =
++ rsaPreMasterSecretWrapperCipher.wrap(rsaPreMasterSecret);
++ Cipher rsaPreMasterSecretUnwrapperCipher =
++ Cipher.getInstance("RSA/ECB/PKCS1Padding",
sunJCEProvider);
++ rsaPreMasterSecretUnwrapperCipher.init(Cipher.UNWRAP_MODE,
++ privateKey, rsaPreMasterSecretSpec);
++ rsaPlainPreMasterSecret = rsaPreMasterSecretUnwrapperCipher.unwrap(
++ rsaEncryptedPreMasterSecret, "TlsRsaPremasterSecret",
++ Cipher.SECRET_KEY).getEncoded();
++
++ if (enableDebug) {
++ System.out.println("rsaPlainPreMasterSecret:");
++ for (byte b : rsaPlainPreMasterSecret) {
++ System.out.printf("%02X, ", b);
++ }
++ System.out.println("");
++ }
++ }
++
++ // Generate Master Secret
++ SecretKey sunPKCS11MasterSecret = null;
++ SecretKey jceMasterSecret = null;
++ {
++ KeyGenerator sunPKCS11MasterSecretGenerator =
++ KeyGenerator.getInstance("SunTls12MasterSecret",
++ sunPKCS11NSSProvider);
++ KeyGenerator jceMasterSecretGenerator = KeyGenerator.getInstance(
++ "SunTls12MasterSecret", sunJCEProvider);
++ @SuppressWarnings("deprecation")
++ TlsMasterSecretParameterSpec sunPKCS11MasterSecretSpec =
++ new TlsMasterSecretParameterSpec(rsaPreMasterSecret, 3, 3,
++ new byte[32], new byte[32], "SHA-256", 32, 64);
++ @SuppressWarnings("deprecation")
++ TlsMasterSecretParameterSpec jceMasterSecretSpec =
++ new TlsMasterSecretParameterSpec(
++ new SecretKeySpec(rsaPlainPreMasterSecret,
++ "Generic"), 3, 3, new byte[32],
++ new byte[32], "SHA-256", 32, 64);
++ sunPKCS11MasterSecretGenerator.init(sunPKCS11MasterSecretSpec,
++ null);
++ jceMasterSecretGenerator.init(jceMasterSecretSpec, null);
++ sunPKCS11MasterSecret =
++ sunPKCS11MasterSecretGenerator.generateKey();
++ jceMasterSecret = jceMasterSecretGenerator.generateKey();
++ if (enableDebug) {
++ System.out.println("Master Secret (SunJCE):");
++ if (jceMasterSecret != null) {
++ for (byte b : jceMasterSecret.getEncoded()) {
++ System.out.printf("%02X, ", b);
++ }
++ System.out.println("");
++ }
++ }
++ }
++
++ // Generate authentication codes
++ byte[] sunPKCS11AuthenticationCode = null;
++ byte[] jceAuthenticationCode = null;
++ {
++ // Generate SunPKCS11 authentication code
++ {
++ @SuppressWarnings("deprecation")
++ TlsPrfParameterSpec sunPKCS11AuthenticationCodeSpec =
++ new TlsPrfParameterSpec(sunPKCS11MasterSecret,
++ "client finished", "a".getBytes(),
12,
++ "SHA-256", 32, 64);
++ KeyGenerator sunPKCS11AuthCodeGenerator =
++ KeyGenerator.getInstance("SunTls12Prf",
++ sunPKCS11NSSProvider);
++ sunPKCS11AuthCodeGenerator.init(
++ sunPKCS11AuthenticationCodeSpec);
++ sunPKCS11AuthenticationCode =
++ sunPKCS11AuthCodeGenerator.generateKey().getEncoded();
++ }
++
++ // Generate SunJCE authentication code
++ {
++ @SuppressWarnings("deprecation")
++ TlsPrfParameterSpec jceAuthenticationCodeSpec =
++ new TlsPrfParameterSpec(jceMasterSecret,
++ "client finished", "a".getBytes(),
12,
++ "SHA-256", 32, 64);
++ KeyGenerator jceAuthCodeGenerator =
++ KeyGenerator.getInstance("SunTls12Prf",
++ sunJCEProvider);
++ jceAuthCodeGenerator.init(jceAuthenticationCodeSpec);
++ jceAuthenticationCode =
++ jceAuthCodeGenerator.generateKey().getEncoded();
++ }
++
++ if (enableDebug) {
++ System.out.println("SunPKCS11 Authentication Code: ");
++ for (byte b : sunPKCS11AuthenticationCode) {
++ System.out.printf("%02X, ", b);
++ }
++ System.out.println("");
++ System.out.println("SunJCE Authentication Code: ");
++ for (byte b : jceAuthenticationCode) {
++ System.out.printf("%02X, ", b);
++ }
++ System.out.println("");
++ }
++ }
++
++ if (sunPKCS11AuthenticationCode == null ||
++ jceAuthenticationCode == null ||
++ sunPKCS11AuthenticationCode.length == 0 ||
++ jceAuthenticationCode.length == 0 ||
++ !Arrays.equals(sunPKCS11AuthenticationCode,
++ jceAuthenticationCode)) {
++ throw new Exception("Authentication codes from JCE" +
++ " and SunPKCS11 differ.");
++ }
++ }
++
++ private static class testTLS12SunPKCS11Communication {
++ public static void run() throws Exception {
++ SSLEngine[][] enginesToTest = getSSLEnginesToTest();
++
++ for (SSLEngine[] engineToTest : enginesToTest) {
++
++ SSLEngine clientSSLEngine = engineToTest[0];
++ SSLEngine serverSSLEngine = engineToTest[1];
++
++ // SSLEngine code based on RedhandshakeFinished.java
++
++ boolean dataDone = false;
++
++ ByteBuffer clientOut = null;
++ ByteBuffer clientIn = null;
++ ByteBuffer serverOut = null;
++ ByteBuffer serverIn = null;
++ ByteBuffer cTOs;
++ ByteBuffer sTOc;
++
++ SSLSession session = clientSSLEngine.getSession();
++ int appBufferMax = session.getApplicationBufferSize();
++ int netBufferMax = session.getPacketBufferSize();
++
++ clientIn = ByteBuffer.allocate(appBufferMax + 50);
++ serverIn = ByteBuffer.allocate(appBufferMax + 50);
++
++ cTOs = ByteBuffer.allocateDirect(netBufferMax);
++ sTOc = ByteBuffer.allocateDirect(netBufferMax);
++
++ clientOut = ByteBuffer.wrap(
++ "Hi Server, I'm Client".getBytes());
++ serverOut = ByteBuffer.wrap(
++ "Hello Client, I'm Server".getBytes());
++
++ SSLEngineResult clientResult;
++ SSLEngineResult serverResult;
++
++ while (!dataDone) {
++ clientResult = clientSSLEngine.wrap(clientOut, cTOs);
++ runDelegatedTasks(clientResult, clientSSLEngine);
++ serverResult = serverSSLEngine.wrap(serverOut, sTOc);
++ runDelegatedTasks(serverResult, serverSSLEngine);
++ cTOs.flip();
++ sTOc.flip();
++
++ if (enableDebug) {
++ System.out.println("Client -> Network");
++ printTlsNetworkPacket("", cTOs);
++ System.out.println("");
++ System.out.println("Server -> Network");
++ printTlsNetworkPacket("", sTOc);
++ System.out.println("");
++ }
++
++ clientResult = clientSSLEngine.unwrap(sTOc, clientIn);
++ runDelegatedTasks(clientResult, clientSSLEngine);
++ serverResult = serverSSLEngine.unwrap(cTOs, serverIn);
++ runDelegatedTasks(serverResult, serverSSLEngine);
++
++ cTOs.compact();
++ sTOc.compact();
++
++ if (!dataDone &&
++ (clientOut.limit() == serverIn.position()) &&
++ (serverOut.limit() == clientIn.position())) {
++ checkTransfer(serverOut, clientIn);
++ checkTransfer(clientOut, serverIn);
++ dataDone = true;
++ }
++ }
++ }
++ }
++
++ static void printTlsNetworkPacket(String prefix, ByteBuffer bb) {
++ ByteBuffer slice = bb.slice();
++ byte[] buffer = new byte[slice.remaining()];
++ slice.get(buffer);
++ for (int i = 0; i < buffer.length; i++) {
++ System.out.printf("%02X, ", (byte)(buffer[i] &
(byte)0xFF));
++ if (i % 8 == 0 && i % 16 != 0) {
++ System.out.print(" ");
++ }
++ if (i % 16 == 0) {
++ System.out.println("");
++ }
++ }
++ System.out.flush();
++ }
++
++ private static void checkTransfer(ByteBuffer a, ByteBuffer b)
++ throws Exception {
++ a.flip();
++ b.flip();
++ if (!a.equals(b)) {
++ throw new Exception("Data didn't transfer cleanly");
++ }
++ a.position(a.limit());
++ b.position(b.limit());
++ a.limit(a.capacity());
++ b.limit(b.capacity());
++ }
++
++ private static void runDelegatedTasks(SSLEngineResult result,
++ SSLEngine engine) throws Exception {
++
++ if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) {
++ Runnable runnable;
++ while ((runnable = engine.getDelegatedTask()) != null) {
++ runnable.run();
++ }
++ HandshakeStatus hsStatus = engine.getHandshakeStatus();
++ if (hsStatus == HandshakeStatus.NEED_TASK) {
++ throw new Exception(
++ "handshake shouldn't need additional tasks");
++ }
++ }
++ }
++
++ private static SSLEngine[][] getSSLEnginesToTest() throws Exception {
++ SSLEngine[][] enginesToTest = new SSLEngine[2][2];
++ String[][] preferredSuites = new String[][]{ new String[] {
++ "TLS_RSA_WITH_AES_128_CBC_SHA256"
++ }, new String[] {
++ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"
++ }};
++ for (int i = 0; i < enginesToTest.length; i++) {
++ enginesToTest[i][0] = createSSLEngine(true);
++ enginesToTest[i][1] = createSSLEngine(false);
++ enginesToTest[i][0].setEnabledCipherSuites(preferredSuites[i]);
++ enginesToTest[i][1].setEnabledCipherSuites(preferredSuites[i]);
++ }
++ return enginesToTest;
++ }
++
++ static private SSLEngine createSSLEngine(boolean client)
++ throws Exception {
++ SSLEngine ssle;
++ KeyManagerFactory kmf = KeyManagerFactory.getInstance("PKIX",
++ jsseProvider);
++ kmf.init(ks, passphrase);
++
++ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX",
++ jsseProvider);
++ tmf.init(ts);
++
++ SSLContext sslCtx = SSLContext.getInstance("TLSv1.2",
++ jsseProvider);
++ sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
++ ssle = sslCtx.createSSLEngine("localhost", 443);
++ ssle.setUseClientMode(client);
++ SSLParameters sslParameters = ssle.getSSLParameters();
++ ssle.setSSLParameters(sslParameters);
++
++ return ssle;
++ }
++ }
++
++ private static void initialize() throws Exception {
++ if (initSecmod() == false) {
++ return;
++ }
++ String configName = BASE + SEP + "fips.cfg";
++ sunPKCS11NSSProvider = getSunPKCS11(configName);
++ System.out.println("SunPKCS11 provider: " + sunPKCS11NSSProvider);
++ Security.addProvider(sunPKCS11NSSProvider);
++
++ sunJCEProvider = new com.sun.crypto.provider.SunJCE();
++ Security.addProvider(sunJCEProvider);
++
++ Security.removeProvider("SunJSSE");
++ jsseProvider =new com.sun.net.ssl.internal.ssl.Provider(
++ sunPKCS11NSSProvider);
++ Security.addProvider(jsseProvider);
++ System.out.println(jsseProvider.getInfo());
++
++ ks = KeyStore.getInstance("PKCS11", sunPKCS11NSSProvider);
++ ks.load(null, "test12".toCharArray());
++ ts = ks;
++
++ KeyStore ksPlain = readTestKeyStore();
++ privateKey = (RSAPrivateKey)ksPlain.getKey("rh_rsa_sha256",
++ passphrase);
++ publicKey = (RSAPublicKey)ksPlain.getCertificate(
++ "rh_rsa_sha256").getPublicKey();
++ }
++
++ private static KeyStore readTestKeyStore() throws Exception {
++ File file = new File(System.getProperty("test.src", "."),
"keystore");
++ InputStream in = new FileInputStream(file);
++ KeyStore ks = KeyStore.getInstance("JKS");
++ ks.load(in, "passphrase".toCharArray());
++ in.close();
++ return ks;
++ }
++}
+\ No newline at end of file
commit 626887d706ae931e13dc4172c31c0e77a0d42751
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 23 18:43:10 2018 +0100
fixing typo of jkd in system_installed_libpng and removing file for removed patch for
pr3573
jkd8035341-allow_using_system_installed_libpng.patch ->
jdk8035341-allow_using_system_installed_libpng.patch
rm
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d5eaae8..ac18a34 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1155,7 +1155,7 @@ Patch577: jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
# 8035341: Allow using a system installed libpng
-Patch202: jkd8035341-allow_using_system_installed_libpng.patch
+Patch202: jdk8035341-allow_using_system_installed_libpng.patch
# 8042159: Allow using a system-installed lcms2
Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
diff --git a/jkd8035341-allow_using_system_installed_libpng.patch
b/jdk8035341-allow_using_system_installed_libpng.patch
similarity index 100%
rename from jkd8035341-allow_using_system_installed_libpng.patch
rename to jdk8035341-allow_using_system_installed_libpng.patch
diff --git
a/pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
b/pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
deleted file mode 100644
index 07b9f10..0000000
---
a/pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1506520357 -7200
-# Wed Sep 27 15:52:37 2017 +0200
-# Node ID c307975d0800f8da5cc8e82cd8f1fdadbd745357
-# Parent ab0c101fa16e4cd97ac8ceff4f5ff72e2f4d5776
-[backport] fix TCK crash with shenandoah
-
-diff --git a/src/share/vm/opto/shenandoahSupport.cpp
b/src/share/vm/opto/shenandoahSupport.cpp
---- openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
-+++ openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
-@@ -472,9 +472,11 @@
- Node* input = in(Memory);
- if (input->Opcode() == Op_ShenandoahWBMemProj) {
- Node* wb = input->in(0);
-- if (wb->is_top()) return NULL; // Dead path.
-+ const Type* in_type = phase->type(wb);
-+ // is_top() test not sufficient here: we can come here after CCP
-+ // in a dead branch of the graph that has not yet been removed.
-+ if (in_type == Type::TOP) return NULL; // Dead path.
- assert(wb->Opcode() == Op_ShenandoahWriteBarrier, "expect write
barrier");
-- const Type* in_type = phase->type(wb);
- if (is_independent(in_type, _type)) {
- if (phase->is_IterGVN()) {
- phase->is_IterGVN()->rehash_node_delayed(wb);
commit 195d8173c78f0c78317a9f4fca88e906f63f80ff
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Nov 20 10:53:39 2018 +0100
renamed all patches to new convention
bug1-bug2-..-bugN-XY-lowercase_comment_suffix_or_jdkpart.patch
XY is number 01-99 for patches which are order sensitive or simply counts together
where bugs are jdkIJK or prLMN or rhOPQ and if more bugs (which is desired) then in
jdk->pr->rh order.
I..Q are numbers corresponding to:
https://bugs.openjdk.java.net/browse/JDK-IJK
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=LMN
https://bugzilla.redhat.com/show_bug.cgi?id=OPQ
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d75b755..d5eaae8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1045,15 +1045,15 @@ Source101: config.sub
# Accessibility patches
# Ignore AWTError when assistive technologies are loaded
-Patch1: %{name}-accessible-toolkit.patch
+Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
# Restrict access to java-atk-wrapper classes
-Patch3: java-atk-wrapper-security.patch
+Patch3: rh1648644-java_access_bridge_privileged_security.patch
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
# Not currently suitable to go upstream as it disables curves
# for all providers unconditionally
-Patch525: pr1834-rh1022017.patch
+Patch525:
pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
# Turn on AssumeMP by default on RHEL systems
-Patch534: always_assumemp.patch
+Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
#############################################
#
@@ -1064,19 +1064,19 @@ Patch534: always_assumemp.patch
# tree of OpenJDK.
#############################################
# PR2737: Allow multiple initialization of PKCS11 libraries
-Patch5: multiple-pkcs11-library-init.patch
+Patch5:
pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
-Patch504: rh1163501.patch
+Patch504:
rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
-Patch512: no_strict_overflow.patch
+Patch512: rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
-Patch523: pr2974-rh1337583.patch
+Patch523:
pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
-Patch528: pr3083-rh1346460.patch
+Patch528:
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
# RH1566890: CVE-2018-3639
-Patch529: rh1566890_embargoed20180521.patch
+Patch529:
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
-Patch530: pr3601.patch
+Patch530:
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
# Support for building the SunEC provider with the system NSS installation
# PR1983: Support using the system installation of NSS with the SunEC provider
# PR2127: SunEC provider crashes when built using system NSS
@@ -1084,19 +1084,19 @@ Patch530: pr3601.patch
# 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
+Patch513:
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
+Patch514:
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
+Patch515:
pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
+Patch516: pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
+Patch517:
pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
+Patch518:
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
+Patch519:
pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
-Patch539: pr2888.patch
+Patch539:
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
-Patch540: pr3575-rh1567204.patch
+Patch540:
pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
-Patch300: pr3183-rh1340845-system-crypto-policy.patch
+Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
#############################################
#
@@ -1110,11 +1110,11 @@ Patch300: pr3183-rh1340845-system-crypto-policy.patch
# OpenJDK 8u.
#############################################
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
-Patch103: pr3593-s390-size_t_format_flags.patch
+Patch103:
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
-Patch105: 8199936-pr3533-workaround.patch
+Patch105:
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
-Patch106: pr3519.patch
+Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
#############################################
#
@@ -1127,52 +1127,52 @@ Patch106: pr3519.patch
#############################################
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
-Patch502: pr2462.patch
+Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
# S8154313: Generated javadoc scattered all over the place
-Patch400: 8154313.patch
+Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
-Patch561: 8197429-pr3546-rh1536622.patch
+Patch561:
jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
-Patch563: 8171000-pr3542-rh1402819.patch
+Patch563:
jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
-Patch564: 8197546-pr3542-rh1402819.patch
+Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
# PR3559: Use ldrexd for atomic reads on ARMv7.
-Patch567: pr3559.patch
+Patch567: pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
-Patch571: pr3591.patch
+Patch571:
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
-Patch572: 8184309-pr3596.patch
+Patch572: jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
-Patch573: 8141570-pr3548.patch
+Patch573:
jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
# 8143245, PR3548: Zero build requires disabled warnings
-Patch574: 8143245-pr3548.patch
+Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
-Patch575: 8197981-pr3548.patch
+Patch575:
jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
# 8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
-Patch576: 8064786-pr3599.patch
+Patch576:
jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
-Patch577: 8062808-pr3548.patch
+Patch577: jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
# s390: JDK-8203030, Type fixing for s390
-Patch102: 8203030-size_t-fixes.patch
+Patch102: jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
# 8035341: Allow using a system installed libpng
-Patch202: system-libpng.patch
+Patch202: jkd8035341-allow_using_system_installed_libpng.patch
# 8042159: Allow using a system-installed lcms2
-Patch203: system-lcms.patch
+Patch203: jdk8042159-allow_using_system_installed_lcms2.patch
# 8210761: libjsig is being compiled without optimization
-Patch620: 8210761-rh1630426-jsig-opt-fix.patch
+Patch620: jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
# 8210647: libsaproc is being compiled without optimization
-Patch621: 8210647-rh1630426-saproc-opt-fix.patch
+Patch621: jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
-Patch622: 8210416-rh1630426-strict-math-opt.patch
+Patch622:
jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Upstream 8u part.
-Patch623: 8210425-01-rh1630426-hotspot-opt-fix.patch
+Patch623:
jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Aarch64-port 8u local part
-Patch624: 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
+Patch624:
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Zero part of the fix for (arm/s390 arches)
-Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
+Patch625:
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
#############################################
#
@@ -1184,36 +1184,36 @@ Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
# and used by this RPM.
#############################################
# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Patch506: 8031668-pr2842-01.patch
+Patch506:
jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Patch507: 8148351-pr2842-02.patch
+Patch507:
jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
-Patch526: 6260348-pr3066.patch
+Patch526:
jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
-Patch538: 8061305-pr3335-rh1423421.patch
+Patch538:
jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
-Patch560: 8188030-pr3459-rh1484079.patch
+Patch560:
jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-Patch562: 8205104-pr3539-rh1548475.patch
+Patch562: jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
-Patch565: 8185723-pr3553.patch
+Patch565: jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
-Patch566: 8186461-pr3557.patch
+Patch566:
jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
-Patch569: 8201509-pr3579.patch
+Patch569:
jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
-Patch578: 8075942-pr3602-rh1582032.patch
+Patch578:
jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
-Patch579: 8203182-pr3603-rh1568033.patch
+Patch579:
jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
-Patch580: 8206406-pr3610-rh1597825.patch
+Patch580:
jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
-Patch204: 8206425-hotspot-remove-debuglink.patch
+Patch204:
jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
# 8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
-Patch205: 8036003-add-with-native-debug-symbols-configure-flag.patch
+Patch205: jdk8036003-add_with_native_debug_symbols_configure_flag.patch
# s390: JDK-8201495, PR2415: JVM -Xmx requirement is too high on s390
-Patch100: 8201495-s390-java-opts.patch
+Patch100: jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
#############################################
#
@@ -1225,20 +1225,20 @@ Patch100: 8201495-s390-java-opts.patch
# and used by this RPM.
#############################################
# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
-Patch508: 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
+Patch508: jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
# 8207057, PR3613: Enable debug information for assembly code files
-Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
-Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
+Patch206: jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
+Patch207: jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
-Patch210: 8165852-pr3468.patch
+Patch210:
jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
# S8073139, RH1191652; fix name of ppc64le architecture
-Patch601: 8073139-rh1191652-root.patch
-Patch602: 8073139-rh1191652-jdk.patch
-Patch603: 8073139-rh1191652-hotspot-aarch64.patch
+Patch601:
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
+Patch602:
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
+Patch603:
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
# 8044235: src.zip should include all sources
-Patch7: 8044235-include-all-srcs.patch
-Patch583: jdk8172850-rh1640127-register_allocator_crash_01.patch
-Patch584: jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
+Patch7: jdk8044235-src_zip_should_include_all_sources.patch
+Patch583: jdk8172850-rh1640127-01-register_allocator_crash.patch
+Patch584: jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
#############################################
#
@@ -1248,7 +1248,7 @@ Patch584:
jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
# upstream, but ineligible for upstream 8u backport.
#############################################
# 8043805: Allow using a system-installed libjpeg
-Patch201: system-libjpeg.patch
+Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
#############################################
#
@@ -1260,7 +1260,7 @@ Patch201: system-libjpeg.patch
# trees.
#############################################
# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
-Patch582: pr3634.patch
+Patch582: pr3634-fix_shenandoah_for_size_t_on_s390.patch
#############################################
#
@@ -1269,7 +1269,7 @@ Patch582: pr3634.patch
# This section includes patches to code other
# that from OpenJDK.
#############################################
-Patch1000: enableCommentedOutSystemNss.patch
+Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
#############################################
#
@@ -2348,8 +2348,8 @@ require "copy_jdk_configs.lua"
- * Move system libpng & lcms patches back to 8u upstreamable section
* Fri Oct 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-8
-- added Patch583 jdk8172850-rh1640127-register_allocator_crash_01.patch
-- added Patch584 jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
+- added Patch583 jdk8172850-rh1640127-01-register_allocator_crash.patch
+- added Patch584 jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-2
- cups moved to headful package
@@ -2357,19 +2357,19 @@ require "copy_jdk_configs.lua"
* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
- updated to aarch64-shenandoah-jdk8u191-b12
- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
-- create pr3634.patch to fix build failure on s390
+- create pr3634-fix_shenandoah_for_size_t_on_s390.patch to fix build failure on s390
* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
-- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
+- Add patch
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch:
- Annother fix for optimization gaps (annocheck issues)
- Zero 8u version fix was missing. Hence, only shows up on Zero arches.
* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
- Refreshed upstreamed patches (from 8u202):
- - 8044235-include-all-srcs.patch: src.zip should include all sources.
- - 8073139-rh1191652-hotspot-aarch64.patch,
- 8073139-rh1191652-jdk.patch,
- 8073139-rh1191652-root.patch: PPC64LE JVM reporting issues.
+ - jdk8044235-src_zip_should_include_all_sources.patch: src.zip should include all
sources.
+ -
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch,
+ jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch,
+ jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch:
PPC64LE JVM reporting issues.
- Moved both patch series to 8u202 sections.
* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
@@ -2387,30 +2387,30 @@ require "copy_jdk_configs.lua"
* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
- Renamed more patches for clarity:
- include-all-srcs.patch => 8044235-include-all-srcs.patch
- java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
8073139-rh1191652-hotspot-aarch64.patch
- java-1.8.0-openjdk-rh1191652-jdk.patch => 8073139-rh1191652-jdk.patch
- java-1.8.0-openjdk-rh1191652-root.patch => 8073139-rh1191652-root.patch
+ include-all-srcs.patch => jdk8044235-src_zip_should_include_all_sources.patch
+ java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
+ java-1.8.0-openjdk-rh1191652-jdk.patch =>
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
+ java-1.8.0-openjdk-rh1191652-root.patch =>
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
- Update(s) from upstreamed patches:
- 8036003-dont-add-unnecessary-debug-links.patch =>
- 8036003-add-with-native-debug-symbols-configure-flag.patch
+ jdk8036003-add_with_native_debug_symbols_configure_flag.patch
- rh1176206-jdk.patch =>
- 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch =>
+ jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch =>
Deleted rh1176206-root.patch as thats no longer needed with
upstream 8150954.
- - Refreshed 8165852-pr3468.patch from upstream.
- - Refreshed 8201495-s390-java-opts.patch from upstream.
+ - Refreshed
jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
from upstream.
+ - Refreshed jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
from upstream.
- 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
- 8207057-pr3613-assembler-debuginfo-hotspot.patch and
- 8207057-pr3613-assembler-debuginfo-root.patch. From JDK 8u
+ jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch and
+ jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch. From JDK 8u
review.
-- Renamed pr2842-02.patch => 8148351-pr2842-02.patch.
+- Renamed pr2842-02.patch =>
jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch.
- Renamed spec-only patch:
- pr3183.patch => pr3183-rh1340845-system-crypto-policy.patch
+ pr3183.patch => pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
- Renamed java-1.8.0-openjdk-size_t.patch =>
- 8201495-s390-java-opts.patch
+ jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
- Moved SunEC provider via system NSS to RPM specific patches section.
- Moved upstream 8u patches to appropriate sections (8u192/8u202).
- Removed rh1214835.patch since it's invalid. See:
@@ -2422,11 +2422,11 @@ require "copy_jdk_configs.lua"
- fixed versions (8->1.8.0) of images used in desktop files
* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
-- Adjust system jpeg patch, system-libjpeg.patch, so as to filter
+- Adjust system jpeg patch, jdk8043805-allow_using_system_installed_libjpeg.patch, so as
to filter
-Wl,--as-needed. Resolves RHBZ#1622186.
* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
-- Adjust system NSS patch, pr1983-jdk.patch, so as to filter
+- Adjust system NSS patch,
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch,
so as to filter
-Wl,--as-needed. Resolves RHBZ#1622186.
* Thu Aug 23 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181.b15-0
@@ -2554,7 +2554,7 @@ require "copy_jdk_configs.lua"
- patch207 8200556-pr3566.patch
- patch104 pr3458-rh1540242.patch
- patch209 8035496-hotspot.patch
-- patch700 pr3573.patch
+- patch700
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
- fixed issue with atkwrapper wrongly palced broken symlink
- fixed libjvm path for system tap
- returned patch104 pr3458-rh1540242.patch
@@ -2578,7 +2578,7 @@ require "copy_jdk_configs.lua"
- patch207 8200556-pr3566.patch
- patch104 pr3458-rh1540242.patch
- patch209 8035496-hotspot.patch
-- patch700 pr3573.patch
+- patch700
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
* Thu May 17 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-6.b10
- Move to javapackages-filesystem over javapackages-tools
@@ -2747,7 +2747,7 @@ require "copy_jdk_configs.lua"
* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
- source999 moved to source1
- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
-- enabled (commented out) system NSS via patch1000, enableCommentedOutSystemNss.patch
+- enabled (commented out) system NSS via patch1000,
rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
* Tue May 09 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
- added javafx binding subpackages
@@ -2808,7 +2808,7 @@ require "copy_jdk_configs.lua"
- used openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz as new sources
- used openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz as new
sources for hotspot
- deleted: 8044762-pr2960.patch 8049226-pr2960.patch 8154210.patch
8158260-pr2991-rh1341258.patch 8159244-pr3074.patch
-- adapted java-1.8.0-openjdk-size_t.patch pr1834-rh1022017.patch rh1163501.patch
+- adapted java-1.8.0-openjdk-size_t.patch
pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
- updated from internal (rhel) repo
OPENJDK_URL_DEFAULT=ssh://t...redhat.com//...ty/
- with custom PR2126=/.../pr2126.patch (removed newly added brainpool curves)
- withspecial values of PROJECT_NAME="openjdk8-forests",
REPO_NAME="latest-aarch64"
@@ -2871,8 +2871,8 @@ require "copy_jdk_configs.lua"
- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources
- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
as new sources for hotspot
- priority lowered for ine zero digit, tip moved to 999
-- added 6260348-pr3066.patch, pr3083-rh1346460.patch, 8159244-pr3074.patch,
corba_typo_fix.patch
-renamed: jdk8-archivedJavadoc.patch -> 8154313.patch, pr2991-rh1341258.patch ->
8158260-pr2991-rh1341258.patch
+- added
jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch,
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch,
8159244-pr3074.patch, corba_typo_fix.patch
+renamed: jdk8-archivedJavadoc.patch ->
jdk8154313-generated_javadoc_scattered_all_over_the_place.patch, pr2991-rh1341258.patch
-> 8158260-pr2991-rh1341258.patch
- not added 8147771-additional_hunk.patch, already in b14
* Tue Jul 12 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-5.b14
@@ -2886,7 +2886,7 @@ renamed: jdk8-archivedJavadoc.patch -> 8154313.patch,
pr2991-rh1341258.patch ->
- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch,
criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
- 8132051-zero.patch, remove_aarch64_template_for_gcc6.patch
- jdwpCrash.abrt.patch renamed to 8044762-pr2960.patch
-- httpsFix1329342.patch renamed to pr2934.patch
+- httpsFix1329342.patch renamed to
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
- added known regresisonos fixes for u92 scheduled for next u (519-525)
* Thu May 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-7.b14
@@ -3340,8 +3340,8 @@ added and applied patch604: aarch64-ifdefbugfix.patch to fix
rhbz1276959
* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b01
- updated to u40-b01
-- adapted java-1.8.0-openjdk-accessible-toolkit.patch
-- adapted system-lcms.patch
+- adapted rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
+- adapted jdk8042159-allow_using_system_installed_lcms2.patch
- removed patch8 set-active-window.patch
- removed patch9 javadoc-error-jdk-8029145.patch
- removed patch10 javadoc-error-jdk-8037484.patch
diff --git a/6260348-pr3066.patch
b/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
similarity index 100%
rename from 6260348-pr3066.patch
rename to
jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch
diff --git a/8031668-pr2842-01.patch
b/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
similarity index 100%
rename from 8031668-pr2842-01.patch
rename to
jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch
diff --git a/8036003-add-with-native-debug-symbols-configure-flag.patch
b/jdk8036003-add_with_native_debug_symbols_configure_flag.patch
similarity index 100%
rename from 8036003-add-with-native-debug-symbols-configure-flag.patch
rename to jdk8036003-add_with_native_debug_symbols_configure_flag.patch
diff --git a/system-lcms.patch b/jdk8042159-allow_using_system_installed_lcms2.patch
similarity index 100%
rename from system-lcms.patch
rename to jdk8042159-allow_using_system_installed_lcms2.patch
diff --git a/system-libjpeg.patch b/jdk8043805-allow_using_system_installed_libjpeg.patch
similarity index 100%
rename from system-libjpeg.patch
rename to jdk8043805-allow_using_system_installed_libjpeg.patch
diff --git a/8044235-include-all-srcs.patch
b/jdk8044235-src_zip_should_include_all_sources.patch
similarity index 100%
rename from 8044235-include-all-srcs.patch
rename to jdk8044235-src_zip_should_include_all_sources.patch
diff --git a/8061305-pr3335-rh1423421.patch
b/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
similarity index 100%
rename from 8061305-pr3335-rh1423421.patch
rename to
jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch
diff --git a/8062808-pr3548.patch
b/jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
similarity index 100%
rename from 8062808-pr3548.patch
rename to jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
diff --git a/8064786-pr3599.patch
b/jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
similarity index 100%
rename from 8064786-pr3599.patch
rename to
jdk8064786-pr3599-fix_debug_build_after_8062808_Turn_on_the_wreturn_type_warning.patch
diff --git a/8073139-rh1191652-jdk.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
similarity index 100%
rename from 8073139-rh1191652-jdk.patch
rename to
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
diff --git a/8073139-rh1191652-root.patch
b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
similarity index 100%
rename from 8073139-rh1191652-root.patch
rename to
jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
diff --git a/8073139-rh1191652-hotspot-aarch64.patch
b/jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
similarity index 100%
rename from 8073139-rh1191652-hotspot-aarch64.patch
rename to
jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
diff --git a/8075942-pr3602-rh1582032.patch
b/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
similarity index 100%
rename from 8075942-pr3602-rh1582032.patch
rename to
jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch
diff --git a/8141570-pr3548.patch
b/jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
similarity index 100%
rename from 8141570-pr3548.patch
rename to
jdk8141570-pr3548-fix_zero_interpreter_build_for_disable_precompiled_headers.patch
diff --git a/8143245-pr3548.patch
b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
similarity index 100%
rename from 8143245-pr3548.patch
rename to jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
diff --git a/8148351-pr2842-02.patch
b/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
similarity index 100%
rename from 8148351-pr2842-02.patch
rename to
jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch
diff --git a/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
b/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
similarity index 100%
rename from 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
rename to jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch
diff --git a/8154313.patch
b/jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
similarity index 100%
rename from 8154313.patch
rename to jdk8154313-generated_javadoc_scattered_all_over_the_place.patch
diff --git a/8165852-pr3468.patch
b/jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
similarity index 100%
rename from 8165852-pr3468.patch
rename to
jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
diff --git a/8171000-pr3542-rh1402819.patch
b/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
similarity index 100%
rename from 8171000-pr3542-rh1402819.patch
rename to
jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
diff --git a/jdk8172850-rh1640127-register_allocator_crash_01.patch
b/jdk8172850-rh1640127-01-register_allocator_crash.patch
similarity index 100%
rename from jdk8172850-rh1640127-register_allocator_crash_01.patch
rename to jdk8172850-rh1640127-01-register_allocator_crash.patch
diff --git a/8184309-pr3596.patch
b/jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
similarity index 100%
rename from 8184309-pr3596.patch
rename to jdk8184309-pr3596-build_warnings_from_gcc_7_1_on_fedora_26.patch
diff --git a/8185723-pr3553.patch
b/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
similarity index 100%
rename from 8185723-pr3553.patch
rename to jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch
diff --git a/8186461-pr3557.patch
b/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
similarity index 100%
rename from 8186461-pr3557.patch
rename to
jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch
diff --git a/8188030-pr3459-rh1484079.patch
b/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
similarity index 100%
rename from 8188030-pr3459-rh1484079.patch
rename to
jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch
diff --git a/8197429-pr3546-rh1536622.patch
b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
similarity index 100%
rename from 8197429-pr3546-rh1536622.patch
rename to
jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch
diff --git a/8197546-pr3542-rh1402819.patch
b/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
similarity index 100%
rename from 8197546-pr3542-rh1402819.patch
rename to jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
diff --git a/8197981-pr3548.patch
b/jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
similarity index 100%
rename from 8197981-pr3548.patch
rename to jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
diff --git a/8199936-pr3533-workaround.patch
b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
similarity index 100%
rename from 8199936-pr3533-workaround.patch
rename to
jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
diff --git a/pr3591.patch
b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
similarity index 100%
rename from pr3591.patch
rename to
jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
diff --git a/8201495-s390-java-opts.patch
b/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
similarity index 100%
rename from 8201495-s390-java-opts.patch
rename to jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
diff --git a/8201509-pr3579.patch
b/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
similarity index 100%
rename from 8201509-pr3579.patch
rename to jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch
diff --git a/8203030-size_t-fixes.patch
b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
similarity index 100%
rename from 8203030-size_t-fixes.patch
rename to jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
diff --git a/8203182-pr3603-rh1568033.patch
b/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
similarity index 100%
rename from 8203182-pr3603-rh1568033.patch
rename to
jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch
diff --git a/8205104-pr3539-rh1548475.patch
b/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
similarity index 100%
rename from 8205104-pr3539-rh1548475.patch
rename to jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch
diff --git a/8206406-pr3610-rh1597825.patch
b/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
similarity index 100%
rename from 8206406-pr3610-rh1597825.patch
rename to
jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch
diff --git a/8206425-hotspot-remove-debuglink.patch
b/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
similarity index 100%
rename from 8206425-hotspot-remove-debuglink.patch
rename to
jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch
diff --git a/8207057-pr3613-assembler-debuginfo-hotspot.patch
b/jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
similarity index 100%
rename from 8207057-pr3613-assembler-debuginfo-hotspot.patch
rename to jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
diff --git a/8207057-pr3613-assembler-debuginfo-root.patch
b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
similarity index 100%
rename from 8207057-pr3613-assembler-debuginfo-root.patch
rename to jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
diff --git a/jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
b/jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
similarity index 100%
rename from jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
rename to jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
diff --git a/8210416-rh1630426-strict-math-opt.patch
b/jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
similarity index 100%
rename from 8210416-rh1630426-strict-math-opt.patch
rename to
jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch
diff --git a/8210425-01-rh1630426-hotspot-opt-fix.patch
b/jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
similarity index 100%
rename from 8210425-01-rh1630426-hotspot-opt-fix.patch
rename to
jdk8210425-rh1632174-01-compile_with_o2_and_ffp_contract_off_as_for_fdlibm.patch
diff --git a/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
b/jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
similarity index 100%
rename from 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
rename to
jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_aarch64.patch
diff --git a/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
b/jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
similarity index 100%
rename from 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
rename to
jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch
diff --git a/8210647-rh1630426-saproc-opt-fix.patch
b/jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
similarity index 100%
rename from 8210647-rh1630426-saproc-opt-fix.patch
rename to jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch
diff --git a/8210761-rh1630426-jsig-opt-fix.patch
b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
similarity index 100%
rename from 8210761-rh1630426-jsig-opt-fix.patch
rename to jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch
diff --git a/system-libpng.patch b/jkd8035341-allow_using_system_installed_libpng.patch
similarity index 100%
rename from system-libpng.patch
rename to jkd8035341-allow_using_system_installed_libpng.patch
diff --git a/pr1834-rh1022017.patch
b/pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
similarity index 100%
rename from pr1834-rh1022017.patch
rename to
pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch
diff --git a/pr1983-jdk.patch
b/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
similarity index 100%
rename from pr1983-jdk.patch
rename to
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch
diff --git a/pr1983-root.patch
b/pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
similarity index 100%
rename from pr1983-root.patch
rename to
pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_root8.patch
diff --git a/pr2127.patch
b/pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
similarity index 100%
rename from pr2127.patch
rename to
pr2127-sunec_provider_crashes_when_built_using_system_nss_thus_use_of_nss_memory_management_functions.patch
diff --git a/pr2462.patch
b/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
similarity index 100%
rename from pr2462.patch
rename to pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
diff --git a/multiple-pkcs11-library-init.patch
b/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
similarity index 100%
rename from multiple-pkcs11-library-init.patch
rename to
pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
diff --git a/pr2815.patch
b/pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
similarity index 100%
rename from pr2815.patch
rename to pr2815-race_condition_in_sunec_provider_with_system_nss_fix.patch
diff --git a/pr2888.patch
b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
similarity index 100%
rename from pr2888.patch
rename to
pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
diff --git a/pr2899.patch
b/pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
similarity index 100%
rename from pr2899.patch
rename to
pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_process_the_seed.patch
diff --git a/pr2934.patch
b/pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
similarity index 100%
rename from pr2934.patch
rename to
pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
diff --git a/pr2974-rh1337583.patch
b/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
similarity index 100%
rename from pr2974-rh1337583.patch
rename to
pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
diff --git a/pr3083-rh1346460.patch
b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
similarity index 100%
rename from pr3083-rh1346460.patch
rename to
pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
diff --git a/pr3183-rh1340845-system-crypto-policy.patch
b/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
similarity index 100%
rename from pr3183-rh1340845-system-crypto-policy.patch
rename to pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
diff --git a/pr3479-rh1486025.patch
b/pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
similarity index 100%
rename from pr3479-rh1486025.patch
rename to
pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch
diff --git a/pr3519.patch
b/pr3519-fix_further_functions_with_a_missing_return_value.patch
similarity index 100%
rename from pr3519.patch
rename to pr3519-fix_further_functions_with_a_missing_return_value.patch
diff --git a/pr3559.patch b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
similarity index 100%
rename from pr3559.patch
rename to pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
diff --git a/pr3573.patch
b/pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
similarity index 100%
rename from pr3573.patch
rename to
pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
diff --git a/pr3575-rh1567204.patch
b/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
similarity index 100%
rename from pr3575-rh1567204.patch
rename to
pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch
diff --git a/pr3593-s390-size_t_format_flags.patch
b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
similarity index 100%
rename from pr3593-s390-size_t_format_flags.patch
rename to
pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
diff --git a/pr3601.patch
b/pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
similarity index 100%
rename from pr3601.patch
rename to
pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
diff --git a/pr3634.patch b/pr3634-fix_shenandoah_for_size_t_on_s390.patch
similarity index 100%
rename from pr3634.patch
rename to pr3634-fix_shenandoah_for_size_t_on_s390.patch
diff --git a/rh1163501.patch
b/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
similarity index 100%
rename from rh1163501.patch
rename to
rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
diff --git a/rh1566890_embargoed20180521.patch
b/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
similarity index 100%
rename from rh1566890_embargoed20180521.patch
rename to
rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch
diff --git a/java-1.8.0-openjdk-accessible-toolkit.patch
b/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
similarity index 100%
rename from java-1.8.0-openjdk-accessible-toolkit.patch
rename to rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
diff --git a/always_assumemp.patch
b/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
similarity index 100%
rename from always_assumemp.patch
rename to rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
diff --git a/enableCommentedOutSystemNss.patch
b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
similarity index 100%
rename from enableCommentedOutSystemNss.patch
rename to rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
diff --git a/java-atk-wrapper-security.patch
b/rh1648644-java_access_bridge_privileged_security.patch
similarity index 100%
rename from java-atk-wrapper-security.patch
rename to rh1648644-java_access_bridge_privileged_security.patch
diff --git a/no_strict_overflow.patch
b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
similarity index 100%
rename from no_strict_overflow.patch
rename to rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
commit 66b29a9af572e8c15c4528cba552f692287ddb69
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Mon Nov 19 16:54:37 2018 +0000
Revise Shenandoah PR3634 patch following upstream discussion.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 60d8c28..d75b755 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -966,7 +966,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 9%{?dist}
+Release: 10%{?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
@@ -2328,6 +2328,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Nov 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-10
+- Revise Shenandoah PR3634 patch following upstream discussion.
+
* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
- headfull suggests of cups, replaced by Requires of cups-libs in headless
diff --git a/pr3634.patch b/pr3634.patch
index caba2ac..20a4625 100644
--- a/pr3634.patch
+++ b/pr3634.patch
@@ -1,16 +1,14 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
-@@ -55,10 +55,10 @@
- "Size of the Shenandoah regions. " \
- "Determined automatically by default.") \
- \
-- experimental(uintx, ShenandoahMinRegionSize, 256 * K, \
-+ experimental(size_t, ShenandoahMinRegionSize, 256 * K, \
- "Minimum heap region size. ") \
- \
-- experimental(uintx, ShenandoahMaxRegionSize, 32 * M, \
-+ experimental(size_t, ShenandoahMaxRegionSize, 32 * M, \
- "Maximum heap region size. ") \
- \
- experimental(intx, ShenandoahHumongousThreshold, 100, \
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+@@ -524,8 +524,8 @@
+ region_size = max_heap_size / ShenandoahTargetNumRegions;
+
+ // Now make sure that we don't go over or under our limits.
+- region_size = MAX2(ShenandoahMinRegionSize, region_size);
+- region_size = MIN2(ShenandoahMaxRegionSize, region_size);
++ region_size = MAX2<size_t>(ShenandoahMinRegionSize, region_size);
++ region_size = MIN2<size_t>(ShenandoahMaxRegionSize, region_size);
+
+ } else {
+ if (ShenandoahHeapRegionSize > initial_heap_size / MIN_NUM_REGIONS) {
commit e68876bb374e165f6f310cae716ff909076394e4
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Nov 8 21:34:03 2018 +0000
Note why PR1834/RH1022017 is not suitable to go upstream in its current form.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b29eeea..60d8c28 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1049,6 +1049,8 @@ Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
+# Not currently suitable to go upstream as it disables curves
+# for all providers unconditionally
Patch525: pr1834-rh1022017.patch
# Turn on AssumeMP by default on RHEL systems
Patch534: always_assumemp.patch
@@ -2329,6 +2331,9 @@ require "copy_jdk_configs.lua"
* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
- headfull suggests of cups, replaced by Requires of cups-libs in headless
+* Wed Nov 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
+- Note why PR1834/RH1022017 is not suitable to go upstream in its current form.
+
* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
- Document patch sections.
commit 5601c0a0369e2dd9eface55392fb42725a2adcc7
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Nov 8 21:32:56 2018 +0000
Document patch sections.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index aabbab3..b29eeea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1038,6 +1038,9 @@ Source101: config.sub
#
# RPM/distribution specific patches
#
+# This section includes patches specific to
+# Fedora/RHEL which can not be upstreamed
+# either in their current form or at all.
############################################
# Accessibility patches
@@ -1054,6 +1057,9 @@ Patch534: always_assumemp.patch
#
# Upstreamable patches
#
+# This section includes patches which need to
+# be reviewed & pushed to the current development
+# tree of OpenJDK.
#############################################
# PR2737: Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
@@ -1090,8 +1096,17 @@ Patch540: pr3575-rh1567204.patch
# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
Patch300: pr3183-rh1340845-system-crypto-policy.patch
+#############################################
+#
# Arch-specific upstreamable patches
-
+#
+# This section includes patches which need to
+# be reviewed & pushed upstream and are specific
+# to certain architectures. This usually means the
+# current OpenJDK development branch, but may also
+# include other trees e.g. for the AArch64 port for
+# OpenJDK 8u.
+#############################################
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: pr3593-s390-size_t_format_flags.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
@@ -1103,6 +1118,10 @@ Patch106: pr3519.patch
#
# Patches which need backporting to 8u
#
+# This section includes patches which have
+# been pushed upstream to the latest OpenJDK
+# development tree, but need to be backported
+# to OpenJDK 8u.
#############################################
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
@@ -1157,6 +1176,10 @@ Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
#
# Patches appearing in 8u192
#
+# This section includes patches which are present
+# in the listed OpenJDK 8u release and should be
+# able to be removed once that release is out
+# and used by this RPM.
#############################################
# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
Patch506: 8031668-pr2842-01.patch
@@ -1194,6 +1217,10 @@ Patch100: 8201495-s390-java-opts.patch
#
# Patches appearing in 8u202
#
+# This section includes patches which are present
+# in the listed OpenJDK 8u release and should be
+# able to be removed once that release is out
+# and used by this RPM.
#############################################
# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
Patch508: 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
@@ -1215,6 +1242,8 @@ Patch584:
jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
#
# Patches ineligible for 8u
#
+# This section includes patches which are present
+# upstream, but ineligible for upstream 8u backport.
#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1223,6 +1252,10 @@ Patch201: system-libjpeg.patch
#
# Shenandoah fixes
#
+# This section includes patches which are
+# specific to the Shenandoah garbage collector
+# and should be upstreamed to the appropriate
+# trees.
#############################################
# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
Patch582: pr3634.patch
@@ -1231,9 +1264,16 @@ Patch582: pr3634.patch
#
# Non-OpenJDK fixes
#
+# This section includes patches to code other
+# that from OpenJDK.
#############################################
Patch1000: enableCommentedOutSystemNss.patch
+#############################################
+#
+# Dependencies
+#
+#############################################
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -2289,6 +2329,9 @@ require "copy_jdk_configs.lua"
* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
- headfull suggests of cups, replaced by Requires of cups-libs in headless
+* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
+- Document patch sections.
+
* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
- Fix patch organisation in the spec file:
- * Move ECC patches back to upstreamable section
commit 5d4b4004b54927fe1944aa325ef3deb033316b4f
Author: Andrew John Hughes <gnu_andrew(a)member.fsf.org>
Date: Thu Nov 8 21:30:32 2018 +0000
Fix patch organisation in the spec file
* Move ECC patches back to upstreamable section
* Move system cacerts & crypto policy patches to upstreamable section
* Merge "Local fixes" and "RPM fixes" which amount to the same
thing
* Move system libpng & lcms patches back to 8u upstreamable section
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b4311b3..aabbab3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1045,22 +1045,10 @@ Source101: config.sub
Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
-# Support for building the SunEC provider with the system NSS installation
-# PR1983: Support using the system installation of NSS with the SunEC provider
-# PR2127: SunEC provider crashes when built using system NSS
-# PR2815: Race condition in SunEC provider with system NSS
-# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
-# 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
-# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
-Patch300: pr3183-rh1340845-system-crypto-policy.patch
+# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
+Patch525: pr1834-rh1022017.patch
+# Turn on AssumeMP by default on RHEL systems
+Patch534: always_assumemp.patch
#############################################
#
@@ -1081,6 +1069,26 @@ Patch528: pr3083-rh1346460.patch
Patch529: rh1566890_embargoed20180521.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530: pr3601.patch
+# Support for building the SunEC provider with the system NSS installation
+# PR1983: Support using the system installation of NSS with the SunEC provider
+# PR2127: SunEC provider crashes when built using system NSS
+# PR2815: Race condition in SunEC provider with system NSS
+# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
+# 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
+# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+Patch539: pr2888.patch
+# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
+Patch540: pr3575-rh1567204.patch
+# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
+Patch300: pr3183-rh1340845-system-crypto-policy.patch
# Arch-specific upstreamable patches
@@ -1125,6 +1133,10 @@ Patch576: 8064786-pr3599.patch
Patch577: 8062808-pr3548.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: 8203030-size_t-fixes.patch
+# 8035341: Allow using a system installed libpng
+Patch202: system-libpng.patch
+# 8042159: Allow using a system-installed lcms2
+Patch203: system-lcms.patch
# 8210761: libjsig is being compiled without optimization
Patch620: 8210761-rh1630426-jsig-opt-fix.patch
# 8210647: libsaproc is being compiled without optimization
@@ -1206,26 +1218,12 @@ Patch584:
jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
-# 8035341: Allow using a system installed libpng
-Patch202: system-libpng.patch
-# 8042159: Allow using a system-installed lcms2
-Patch203: system-lcms.patch
#############################################
#
-# Local fixes
+# Shenandoah fixes
#
#############################################
-# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
-Patch525: pr1834-rh1022017.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)
-Patch539: pr2888.patch
-# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
-Patch540: pr3575-rh1567204.patch
-
-# Shenandoah fixes
# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
Patch582: pr3634.patch
@@ -2291,6 +2289,13 @@ require "copy_jdk_configs.lua"
* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
- headfull suggests of cups, replaced by Requires of cups-libs in headless
+* Mon Nov 05 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.191.b12-9
+- Fix patch organisation in the spec file:
+- * Move ECC patches back to upstreamable section
+- * Move system cacerts & crypto policy patches to upstreamable section
+- * Merge "Local fixes" and "RPM fixes" which amount to the same
thing
+- * Move system libpng & lcms patches back to 8u upstreamable section
+
* Fri Oct 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-8
- added Patch583 jdk8172850-rh1640127-register_allocator_crash_01.patch
- added Patch584 jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
commit 7f870cd2f490b1ebcfe0309f2730e148a1428033
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Nov 8 15:43:40 2018 +0100
headfull suggests of cups, replaced by Requires of cups-libs in headless
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c08253b..b4311b3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -830,7 +830,6 @@ Requires: %{name}-headless%{?1}%{?_isa} =
%{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# for java-X-openjdk package's desktop binding
Recommends: gtk2%{?_isa}
-Suggests: cups
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -861,6 +860,8 @@ Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION}
# considered as regression
Requires: copy-jdk-configs >= 3.3
OrderWithRequires: copy-jdk-configs
+# for printing support
+Requires: cups-libs
# Post requires alternatives to install tool alternatives
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -965,7 +966,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 8%{?dist}
+Release: 9%{?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
@@ -2287,6 +2288,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Nov 07 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-9
+- headfull suggests of cups, replaced by Requires of cups-libs in headless
+
* Fri Oct 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-8
- added Patch583 jdk8172850-rh1640127-register_allocator_crash_01.patch
- added Patch584 jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
commit d6cbe382c957629f0e946d56c53eded44998241c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 26 15:42:53 2018 +0200
added Patch584 jdk8209639-rh1640127_coalesce_attempted_spill_non_spillable_02.patch
and prerequisite Patch583 jdk8172850-rh1640127_register_allocator_crash_01.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a756b3f..c08253b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -965,7 +965,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 7%{?dist}
+Release: 8%{?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
@@ -1195,6 +1195,8 @@ Patch602: 8073139-rh1191652-jdk.patch
Patch603: 8073139-rh1191652-hotspot-aarch64.patch
# 8044235: src.zip should include all sources
Patch7: 8044235-include-all-srcs.patch
+Patch583: jdk8172850-rh1640127-register_allocator_crash_01.patch
+Patch584: jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
#############################################
#
@@ -1634,6 +1636,8 @@ sh %{SOURCE12}
%patch623
%patch624
%patch625
+%patch583
+%patch584
# RPM-only fixes
%patch525
@@ -2283,6 +2287,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-8
+- added Patch583 jdk8172850-rh1640127-register_allocator_crash_01.patch
+- added Patch584 jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
+
* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-2
- cups moved to headful package
diff --git a/jdk8172850-rh1640127-register_allocator_crash_01.patch
b/jdk8172850-rh1640127-register_allocator_crash_01.patch
new file mode 100644
index 0000000..294e313
--- /dev/null
+++ b/jdk8172850-rh1640127-register_allocator_crash_01.patch
@@ -0,0 +1,213 @@
+
+# HG changeset patch
+# User thartmann
+# Date 1539594027 -7200
+# Node ID e044997c2edaeae97866394a7f8e2ddebbd41392
+# Parent 99212080341058548d449a22d1381e79353ec5b5
+8172850: Anti-dependency on membar causes crash in register allocator due to invalid
instruction scheduling
+Summary: Regression test and additional asserts. The problem is fixed by 8087341.
+Reviewed-by: kvn
+
+diff -r 992120803410 -r e044997c2eda src/share/vm/opto/cfgnode.cpp
+--- openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 22 05:26:38 2018 -0400
++++ openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 15 11:00:27 2018 +0200
+@@ -2016,6 +2016,7 @@
+ uint ideal_reg = _type->ideal_reg();
+ assert( ideal_reg != Node::NotAMachineReg, "invalid type at Phi" );
+ if( ideal_reg == 0 ) return RegMask::Empty;
++ assert(ideal_reg != Op_RegFlags, "flags register is not spillable");
+ return *(Compile::current()->matcher()->idealreg2spillmask[ideal_reg]);
+ }
+
+diff -r 992120803410 -r e044997c2eda src/share/vm/opto/coalesce.cpp
+--- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 22 05:26:38 2018 -0400
++++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
+@@ -292,7 +292,14 @@
+ // Copy any flags as well
+ _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map);
+ } else {
+- const RegMask *rm =
C->matcher()->idealreg2spillmask[m->ideal_reg()];
++ int ireg = m->ideal_reg();
++ if (ireg == 0 || ireg == Op_RegFlags) {
++ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
++ m->_idx, m->Name(), ireg));
++ C->record_method_not_compilable("attempted to spill a
non-spillable item");
++ return;
++ }
++ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
+ copy = new (C) MachSpillCopyNode(m, *rm, *rm);
+ // Find a good place to insert. Kinda tricky, use a subroutine
+ insert_copy_with_overlap(pred,copy,phi_name,src_name);
+@@ -326,7 +333,14 @@
+ b->insert_node(copy, l++);
+ l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map);
+ } else {
+- const RegMask *rm =
C->matcher()->idealreg2spillmask[m->ideal_reg()];
++ int ireg = m->ideal_reg();
++ if (ireg == 0 || ireg == Op_RegFlags) {
++ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
++ m->_idx, m->Name(), ireg));
++ C->record_method_not_compilable("attempted to spill a
non-spillable item");
++ return;
++ }
++ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
+ copy = new (C) MachSpillCopyNode(m, *rm, *rm);
+ // Insert the copy in the basic block, just before us
+ b->insert_node(copy, l++);
+@@ -373,7 +387,14 @@
+ if( k < b->_num_succs )
+ continue; // Live out; do not pre-split
+ // Split the lrg at this use
+- const RegMask *rm =
C->matcher()->idealreg2spillmask[inp->ideal_reg()];
++ int ireg = inp->ideal_reg();
++ if (ireg == 0 || ireg == Op_RegFlags) {
++ assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
++ inp->_idx, inp->Name(), ireg));
++ C->record_method_not_compilable("attempted to spill a
non-spillable item");
++ return;
++ }
++ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
+ Node *copy = new (C) MachSpillCopyNode( inp, *rm, *rm );
+ // Insert the copy in the use-def chain
+ n->set_req(inpidx, copy );
+diff -r 992120803410 -r e044997c2eda src/share/vm/opto/machnode.cpp
+--- openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 22 05:26:38 2018 -0400
++++ openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 15 11:00:27 2018 +0200
+@@ -619,6 +619,7 @@
+ }
+
+ // Values outside the domain represent debug info
++ assert(in(idx)->ideal_reg() != Op_RegFlags, "flags register is not
spillable");
+ return
*Compile::current()->matcher()->idealreg2spillmask[in(idx)->ideal_reg()];
+ }
+
+diff -r 992120803410 -r e044997c2eda src/share/vm/opto/matcher.cpp
+--- openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 22 05:26:38 2018 -0400
++++ openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 15 11:00:27 2018 +0200
+@@ -95,6 +95,7 @@
+ idealreg2spillmask [Op_VecD] = NULL;
+ idealreg2spillmask [Op_VecX] = NULL;
+ idealreg2spillmask [Op_VecY] = NULL;
++ idealreg2spillmask [Op_RegFlags] = NULL;
+
+ idealreg2debugmask [Op_RegI] = NULL;
+ idealreg2debugmask [Op_RegN] = NULL;
+@@ -106,6 +107,7 @@
+ idealreg2debugmask [Op_VecD] = NULL;
+ idealreg2debugmask [Op_VecX] = NULL;
+ idealreg2debugmask [Op_VecY] = NULL;
++ idealreg2debugmask [Op_RegFlags] = NULL;
+
+ idealreg2mhdebugmask[Op_RegI] = NULL;
+ idealreg2mhdebugmask[Op_RegN] = NULL;
+@@ -117,6 +119,7 @@
+ idealreg2mhdebugmask[Op_VecD] = NULL;
+ idealreg2mhdebugmask[Op_VecX] = NULL;
+ idealreg2mhdebugmask[Op_VecY] = NULL;
++ idealreg2mhdebugmask[Op_RegFlags] = NULL;
+
+ debug_only(_mem_node = NULL;) // Ideal memory node consumed by mach node
+ }
+diff -r 992120803410 -r e044997c2eda
test/compiler/gcbarriers/TestMembarDependencies.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/gcbarriers/TestMembarDependencies.java Mon Oct 15
11:00:27 2018 +0200
+@@ -0,0 +1,98 @@
++/*
++ * 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 TestMembarDependencies
++ * @bug 8172850
++ * @summary Tests correct scheduling of memory loads around MembarVolatile emitted by GC
barriers.
++ * @library /testlibrary
++ * @run driver compiler.membars.TestMembarDependencies
++ */
++
++package compiler.membars;
++
++import com.oracle.java.testlibrary.*;
++
++public class TestMembarDependencies {
++ private static TestMembarDependencies f1;
++ private static TestMembarDependencies f2;
++
++ public static void main(String args[]) throws Throwable {
++ if (args.length == 0) {
++ // For debugging, add "-XX:+TraceOptoPipelining"
++ OutputAnalyzer oa =
ProcessTools.executeTestJvm("-XX:+IgnoreUnrecognizedVMOptions",
++ "-XX:-TieredCompilation",
"-XX:-BackgroundCompilation", "-XX:+PrintOpto",
++
"-XX:CompileCommand=compileonly,compiler.membars.TestMembarDependencies::test*",
++
"-XX:CompileCommand=dontinline,compiler.membars.TestMembarDependencies::test_m1",
++ TestMembarDependencies.class.getName(), "run");
++ // C2 should not crash or bail out from compilation
++ oa.shouldHaveExitValue(0);
++ oa.shouldNotMatch("Bailout: Recompile without subsuming loads");
++ System.out.println(oa.getOutput());
++ } else {
++ f2 = new TestMembarDependencies();
++ // Trigger compilation of test1 and test2
++ for (int i = 0; i < 10_000; ++i) {
++ f2.test1(f2);
++ f2.test2(f2);
++ }
++ }
++ }
++
++ public void test_m1() { }
++ public void test_m2() { }
++
++ public void test1(TestMembarDependencies obj) {
++ // Try/catch/finally is used to create a CFG block without a test + jmpCon
++ // allowing GCM to schedule the testN_mem_reg0 instruction into that block.
++ try {
++ // Method call defines memory state that is then
++ // used by subsequent instructions/blocks (see below).
++ test_m1();
++ } catch (Exception e) {
++
++ } finally {
++ // Oop write to field emits a GC post-barrier with a MembarVolatile
++ // which has a wide memory effect (kills all memory). This creates an
++ // anti-dependency on all surrounding memory loads.
++ f1 = obj;
++ }
++ // The empty method m2 is inlined but the null check of f2 remains. It is
encoded
++ // as CmpN(LoadN(MEM), NULL) where MEM is the memory after the call to
test_m1().
++ // This is matched to testN_mem_reg0 on x86 which is scheduled before the
barrier
++ // in the try/catch block due to the anti-dependency on the MembarVolatile.
++ // C2 crashes in the register allocator when trying to spill the flag register
++ // to keep the result of the testN instruction live from the try/catch block
++ // until it is here.
++ f2.test_m2();
++ }
++
++ public void test2(TestMembarDependencies obj) {
++ // Same as test1 but without try/catch/finally.
++ // This causes C2 to bail out in block local scheduling because testN_mem_reg0
is
++ // scheduled into a block that already contains another test + jmpCon
instruction.
++ test_m1();
++ f1 = obj;
++ f2.test_m2();
++ }
++}
+
diff --git a/jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
b/jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
new file mode 100644
index 0000000..63c9cba
--- /dev/null
+++ b/jdk8209639-rh1640127-coalesce_attempted_spill_non_spillable_02.patch
@@ -0,0 +1,114 @@
+
+# HG changeset patch
+# User roland
+# Date 1540370574 -7200
+# Node ID d853bac073f8a4851e313ba8fa9768b38396a204
+# Parent e044997c2edaeae97866394a7f8e2ddebbd41392
+8209639: assert failure in coalesce.cpp: attempted to spill a non-spillable item
+Reviewed-by: neliasso, kvn
+
+diff -r e044997c2eda -r d853bac073f8 src/share/vm/opto/coalesce.cpp
+--- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
++++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Wed Oct 24 10:42:54 2018 +0200
+@@ -25,6 +25,7 @@
+ #include "precompiled.hpp"
+ #include "memory/allocation.inline.hpp"
+ #include "opto/block.hpp"
++#include "opto/c2compiler.hpp"
+ #include "opto/cfgnode.hpp"
+ #include "opto/chaitin.hpp"
+ #include "opto/coalesce.hpp"
+@@ -294,9 +295,13 @@
+ } else {
+ int ireg = m->ideal_reg();
+ if (ireg == 0 || ireg == Op_RegFlags) {
+- assert(false, err_msg("attempted to spill a non-spillable item: %d:
%s, ireg = %d",
+- m->_idx, m->Name(), ireg));
+- C->record_method_not_compilable("attempted to spill a
non-spillable item");
++ if (C->subsume_loads()) {
++ C->record_failure(C2Compiler::retry_no_subsuming_loads());
++ } else {
++ assert(false, err_msg("attempted to spill a non-spillable item:
%d: %s, ireg = %d",
++ m->_idx, m->Name(), ireg));
++ C->record_method_not_compilable("attempted to spill a
non-spillable item");
++ }
+ return;
+ }
+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
+diff -r e044997c2eda -r d853bac073f8 test/compiler/c2/SubsumingLoadsCauseFlagSpill.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/c2/SubsumingLoadsCauseFlagSpill.java Wed Oct 24
10:42:54 2018 +0200
+@@ -0,0 +1,72 @@
++/*
++ * Copyright (c) 2018, 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 8209639
++ * @summary assert failure in coalesce.cpp: attempted to spill a non-spillable item
++ *
++ * @run main/othervm -XX:-BackgroundCompilation
-XX:CompileCommand=dontinline,SubsumingLoadsCauseFlagSpill::not_inlined -Xmx1024m
SubsumingLoadsCauseFlagSpill
++ *
++ */
++
++public class SubsumingLoadsCauseFlagSpill {
++ private static Object field;
++ private static boolean do_throw;
++ private static volatile boolean barrier;
++
++ public static void main(String[] args) {
++ for (int i = 0; i < 20_000; i++) {
++ do_throw = true;
++ field = null;
++ test(0);
++ do_throw = false;
++ field = new Object();
++ test(0);
++ }
++ }
++
++ private static float test(float f) {
++ Object v = null;
++ try {
++ not_inlined();
++ v = field;
++ } catch (MyException me) {
++ v = field;
++ barrier = true;
++ }
++ if (v == null) {
++ return f * f;
++ }
++ return f;
++ }
++
++ private static void not_inlined() throws MyException{
++ if (do_throw) {
++ throw new MyException();
++ }
++ }
++
++ private static class MyException extends Throwable {
++ }
++}
+
commit 09a59447d85f102404eb0994d5e80dfd8837beee
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Oct 24 17:37:26 2018 +0200
cups moved to headful package
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d8da205..a756b3f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -830,6 +830,7 @@ Requires: %{name}-headless%{?1}%{?_isa} =
%{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# for java-X-openjdk package's desktop binding
Recommends: gtk2%{?_isa}
+Suggests: cups
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -869,7 +870,7 @@ Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
# for optional support of kernel stream control, card reader and printing bindings
-Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups
+Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
# Standard JPackage base provides
Provides: jre-headless%{?1} = %{epoch}:%{javaver}
@@ -2282,6 +2283,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-2
+- cups moved to headful package
+
* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
- updated to aarch64-shenandoah-jdk8u191-b12
- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
commit 50fd6be2695c19ec9d14c230d428845f00d21ea0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Oct 22 14:40:43 2018 +0200
Added missing %{majorver} into descriptions
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bb97a16..d8da205 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1288,7 +1288,7 @@ BuildRequires: systemtap-sdt-devel
%{java_rpo %{nil}}
%description
-The %{origin_nice} runtime environment.
+The %{origin_nice} runtime environment %{majorver}.
%if %{include_debug_build}
%package slowdebug
@@ -1297,7 +1297,7 @@ Group: Development/Languages
%{java_rpo -- %{debug_suffix_unquoted}}
%description slowdebug
-The %{origin_nice} runtime environment.
+The %{origin_nice} runtime environment %{majorver}.
%{debug_warning}
%endif
@@ -1314,7 +1314,7 @@ The %{origin_nice} runtime environment %{majorver} without audio and
video suppo
%if %{include_debug_build}
%package headless-slowdebug
-Summary: %{origin_nice} Runtime Environment %{debug_on}
+Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
Group: Development/Languages
%{java_headless_rpo -- %{debug_suffix_unquoted}}
commit 1f2a7e0117ca4af42d50ce8ebb0ce46ae18e0efe
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Oct 23 17:51:44 2018 +0200
Removed and adapted patches to u191.
Added changelog for u 191
diff --git a/8146115-pr3508-rh1463098.patch b/8146115-pr3508-rh1463098.patch
deleted file mode 100644
index a04728b..0000000
--- a/8146115-pr3508-rh1463098.patch
+++ /dev/null
@@ -1,1494 +0,0 @@
-# HG changeset patch
-# User poonam
-# Date 1530903013 0
-# Fri Jul 06 18:50:13 2018 +0000
-# Node ID 2f2d2af6fa5c44e67e0a9987f56392315a1e4b64
-# Parent 95b72537801cc9946c27ad27f07e3f0790a21b08
-8146115, PR3508, RH1463098: Improve docker container detection and resource configuration
usage
-Reviewed-by: bobv, dbuck
-
-diff --git openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
openjdk/hotspot/src/os/aix/vm/os_aix.cpp
---- openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
-+++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp
-@@ -4008,6 +4008,16 @@
- };
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
- assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity
check");
- return online_cpus;
-diff --git openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
---- openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
-+++ openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
-@@ -3770,6 +3770,16 @@
- };
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- return _processor_count;
- }
-
-diff --git openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
---- openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, 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
-@@ -49,8 +49,13 @@
- product(bool, UseSHM, false, \
- "Use SYSV shared memory for large pages") \
- \
-- diagnostic(bool, PrintActiveCpus, false, \
-- "Print the number of CPUs detected in os::active_processor_count")
-+ product(bool, UseContainerSupport, true, \
-+ "Enable detection and runtime container configuration support") \
-+ \
-+ product(bool, PreferContainerQuotaForCPUCount, true, \
-+ "Calculate the container CPU availability based on the value" \
-+ " of quotas (if set), when true. Otherwise, use the CPU" \
-+ " shares value, provided it is less than quota.")
-
- //
- // Defines Linux-specific default values. The flags are available on all
-diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.cpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
-@@ -0,0 +1,680 @@
-+/*
-+ * Copyright (c) 2017, 2018, 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.
-+ *
-+ */
-+
-+#include <string.h>
-+#include <math.h>
-+#include <errno.h>
-+#include "utilities/globalDefinitions.hpp"
-+#include "memory/allocation.hpp"
-+#include "runtime/os.hpp"
-+#include "osContainer_linux.hpp"
-+
-+#define PER_CPU_SHARES 1024
-+
-+bool OSContainer::_is_initialized = false;
-+bool OSContainer::_is_containerized = false;
-+julong _unlimited_memory;
-+
-+class CgroupSubsystem: CHeapObj<mtInternal> {
-+ friend class OSContainer;
-+
-+ private:
-+ /* mountinfo contents */
-+ char *_root;
-+ char *_mount_point;
-+
-+ /* Constructed subsystem directory */
-+ char *_path;
-+
-+ public:
-+ CgroupSubsystem(char *root, char *mountpoint) {
-+ _root = os::strdup(root);
-+ _mount_point = os::strdup(mountpoint);
-+ _path = NULL;
-+ }
-+
-+ /*
-+ * Set directory to subsystem specific files based
-+ * on the contents of the mountinfo and cgroup files.
-+ */
-+ void set_subsystem_path(char *cgroup_path) {
-+ char buf[MAXPATHLEN+1];
-+ if (_root != NULL && cgroup_path != NULL) {
-+ if (strcmp(_root, "/") == 0) {
-+ int buflen;
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ if (strcmp(cgroup_path,"/") != 0) {
-+ buflen = strlen(buf);
-+ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
-+ return;
-+ }
-+ strncat(buf, cgroup_path, MAXPATHLEN-buflen);
-+ buf[MAXPATHLEN-1] = '\0';
-+ }
-+ _path = os::strdup(buf);
-+ } else {
-+ if (strcmp(_root, cgroup_path) == 0) {
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ _path = os::strdup(buf);
-+ } else {
-+ char *p = strstr(_root, cgroup_path);
-+ if (p != NULL && p == _root) {
-+ if (strlen(cgroup_path) > strlen(_root)) {
-+ int buflen;
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ buflen = strlen(buf);
-+ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
-+ return;
-+ }
-+ strncat(buf, cgroup_path + strlen(_root), MAXPATHLEN-buflen);
-+ buf[MAXPATHLEN-1] = '\0';
-+ _path = os::strdup(buf);
-+ }
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ char *subsystem_path() { return _path; }
-+};
-+
-+CgroupSubsystem* memory = NULL;
-+CgroupSubsystem* cpuset = NULL;
-+CgroupSubsystem* cpu = NULL;
-+CgroupSubsystem* cpuacct = NULL;
-+
-+typedef char * cptr;
-+
-+PRAGMA_DIAG_PUSH
-+PRAGMA_FORMAT_NONLITERAL_IGNORED
-+template <typename T> int subsystem_file_contents(CgroupSubsystem* c,
-+ const char *filename,
-+ const char *scan_fmt,
-+ T returnval) {
-+ FILE *fp = NULL;
-+ char *p;
-+ char file[MAXPATHLEN+1];
-+ char buf[MAXPATHLEN+1];
-+
-+ if (c == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("subsystem_file_contents: CgroupSubsytem* is NULL");
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+ if (c->subsystem_path() == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("subsystem_file_contents: subsystem path is NULL");
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+
-+ strncpy(file, c->subsystem_path(), MAXPATHLEN);
-+ file[MAXPATHLEN-1] = '\0';
-+ int filelen = strlen(file);
-+ if ((filelen + strlen(filename)) > (MAXPATHLEN-1)) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("File path too long %s, %s", file, filename);
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+ strncat(file, filename, MAXPATHLEN-filelen);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Path to %s is %s", filename, file);
-+ }
-+ fp = fopen(file, "r");
-+ if (fp != NULL) {
-+ p = fgets(buf, MAXPATHLEN, fp);
-+ if (p != NULL) {
-+ int matched = sscanf(p, scan_fmt, returnval);
-+ if (matched == 1) {
-+ fclose(fp);
-+ return 0;
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Type %s not found in file %s", scan_fmt, file);
-+ }
-+ }
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Empty file %s", file);
-+ }
-+ }
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Open of file %s failed, %s", file, strerror(errno));
-+ }
-+ }
-+ if (fp != NULL)
-+ fclose(fp);
-+ return OSCONTAINER_ERROR;
-+}
-+PRAGMA_DIAG_POP
-+
-+#define GET_CONTAINER_INFO(return_type, subsystem, filename, \
-+ logstring, scan_fmt, variable) \
-+ return_type variable; \
-+{ \
-+ int err; \
-+ err = subsystem_file_contents(subsystem, \
-+ filename, \
-+ scan_fmt, \
-+ &variable); \
-+ if (err != 0) \
-+ return (return_type) OSCONTAINER_ERROR; \
-+ \
-+ if (PrintContainerInfo) \
-+ tty->print_cr(logstring, variable); \
-+}
-+
-+#define GET_CONTAINER_INFO_CPTR(return_type, subsystem, filename, \
-+ logstring, scan_fmt, variable, bufsize) \
-+ char variable[bufsize]; \
-+{ \
-+ int err; \
-+ err = subsystem_file_contents(subsystem, \
-+ filename, \
-+ scan_fmt, \
-+ variable); \
-+ if (err != 0) \
-+ return (return_type) NULL; \
-+ \
-+ if (PrintContainerInfo) \
-+ tty->print_cr(logstring, variable); \
-+}
-+
-+/* init
-+ *
-+ * Initialize the container support and determine if
-+ * we are running under cgroup control.
-+ */
-+void OSContainer::init() {
-+ int mountid;
-+ int parentid;
-+ int major;
-+ int minor;
-+ FILE *mntinfo = NULL;
-+ FILE *cgroup = NULL;
-+ char buf[MAXPATHLEN+1];
-+ char tmproot[MAXPATHLEN+1];
-+ char tmpmount[MAXPATHLEN+1];
-+ char tmpbase[MAXPATHLEN+1];
-+ char *p;
-+ jlong mem_limit;
-+
-+ assert(!_is_initialized, "Initializing OSContainer more than once");
-+
-+ _is_initialized = true;
-+ _is_containerized = false;
-+
-+ _unlimited_memory = (LONG_MAX / os::vm_page_size()) * os::vm_page_size();
-+
-+ if (PrintContainerInfo) {
-+ tty->print_cr("OSContainer::init: Initializing Container Support");
-+ }
-+ if (!UseContainerSupport) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Container Support not enabled");
-+ }
-+ return;
-+ }
-+
-+ /*
-+ * Find the cgroup mount point for memory and cpuset
-+ * by reading /proc/self/mountinfo
-+ *
-+ * Example for docker:
-+ * 219 214 0:29
/docker/7208cebd00fa5f2e342b1094f7bed87fa25661471a4637118e65f1c995be8a34
/sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,memory
-+ *
-+ * Example for host:
-+ * 34 28 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:16 -
cgroup cgroup rw,memory
-+ */
-+ mntinfo = fopen("/proc/self/mountinfo", "r");
-+ if (mntinfo == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Can't open /proc/self/mountinfo, %s",
-+ strerror(errno));
-+ }
-+ return;
-+ }
-+
-+ while ( (p = fgets(buf, MAXPATHLEN, mntinfo)) != NULL) {
-+ // Look for the filesystem type and see if it's cgroup
-+ char fstype[MAXPATHLEN+1];
-+ fstype[0] = '\0';
-+ char *s = strstr(p, " - ");
-+ if (s != NULL &&
-+ sscanf(s, " - %s", fstype) == 1 &&
-+ strcmp(fstype, "cgroup") == 0) {
-+
-+ if (strstr(p, "memory") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ memory = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and memory:
%s", p);
-+ }
-+ } else if (strstr(p, "cpuset") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpuset = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpuset:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpu,cpuacct") != NULL || strstr(p,
"cpuacct,cpu") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpu = new CgroupSubsystem(tmproot, tmpmount);
-+ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpu,cpuacct:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpuacct") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpuacct:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpu") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpu = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpu: %s",
p);
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ fclose(mntinfo);
-+
-+ if (memory == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup memory subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpuset == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpuset subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpu == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpu subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpuacct == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpuacct subsystem not found");
-+ }
-+ return;
-+ }
-+
-+ /*
-+ * Read /proc/self/cgroup and map host mount point to
-+ * local one via /proc/self/mountinfo content above
-+ *
-+ * Docker example:
-+ * 5:memory:/docker/6558aed8fc662b194323ceab5b964f69cf36b3e8af877a14b80256e93aecb044
-+ *
-+ * Host example:
-+ * 5:memory:/user.slice
-+ *
-+ * Construct a path to the process specific memory and cpuset
-+ * cgroup directory.
-+ *
-+ * For a container running under Docker from memory example above
-+ * the paths would be:
-+ *
-+ * /sys/fs/cgroup/memory
-+ *
-+ * For a Host from memory example above the path would be:
-+ *
-+ * /sys/fs/cgroup/memory/user.slice
-+ *
-+ */
-+ cgroup = fopen("/proc/self/cgroup", "r");
-+ if (cgroup == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Can't open /proc/self/cgroup, %s",
-+ strerror(errno));
-+ }
-+ return;
-+ }
-+
-+ while ( (p = fgets(buf, MAXPATHLEN, cgroup)) != NULL) {
-+ int cgno;
-+ int matched;
-+ char *controller;
-+ char *base;
-+
-+ /* Skip cgroup number */
-+ strsep(&p, ":");
-+ /* Get controller and base */
-+ controller = strsep(&p, ":");
-+ base = strsep(&p, "\n");
-+
-+ if (controller != NULL) {
-+ if (strstr(controller, "memory") != NULL) {
-+ memory->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpuset") != NULL) {
-+ cpuset->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpu,cpuacct") != NULL ||
strstr(controller, "cpuacct,cpu") != NULL) {
-+ cpu->set_subsystem_path(base);
-+ cpuacct->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpuacct") != NULL) {
-+ cpuacct->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpu") != NULL) {
-+ cpu->set_subsystem_path(base);
-+ }
-+ }
-+ }
-+
-+ fclose(cgroup);
-+
-+ // We need to update the amount of physical memory now that
-+ // command line arguments have been processed.
-+ if ((mem_limit = memory_limit_in_bytes()) > 0) {
-+ os::Linux::set_physical_memory(mem_limit);
-+ }
-+
-+ _is_containerized = true;
-+
-+}
-+
-+const char * OSContainer::container_type() {
-+ if (is_containerized()) {
-+ return "cgroupv1";
-+ } else {
-+ return NULL;
-+ }
-+}
-+
-+
-+/* memory_limit_in_bytes
-+ *
-+ * Return the limit of available memory for this process.
-+ *
-+ * return:
-+ * memory limit in bytes or
-+ * -1 for unlimited
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.limit_in_bytes",
-+ "Memory Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memlimit);
-+
-+ if (memlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ }
-+ else {
-+ return (jlong)memlimit;
-+ }
-+}
-+
-+jlong OSContainer::memory_and_swap_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.memsw.limit_in_bytes",
-+ "Memory and Swap Limit is: " JULONG_FORMAT,
JULONG_FORMAT, memswlimit);
-+ if (memswlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory and Swap Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ } else {
-+ return (jlong)memswlimit;
-+ }
-+}
-+
-+jlong OSContainer::memory_soft_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.soft_limit_in_bytes",
-+ "Memory Soft Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memsoftlimit);
-+ if (memsoftlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory Soft Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ } else {
-+ return (jlong)memsoftlimit;
-+ }
-+}
-+
-+/* memory_usage_in_bytes
-+ *
-+ * Return the amount of used memory for this process.
-+ *
-+ * return:
-+ * memory usage in bytes or
-+ * -1 for unlimited
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_usage_in_bytes() {
-+ GET_CONTAINER_INFO(jlong, memory, "/memory.usage_in_bytes",
-+ "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memusage);
-+ return memusage;
-+}
-+
-+/* memory_max_usage_in_bytes
-+ *
-+ * Return the maximum amount of used memory for this process.
-+ *
-+ * return:
-+ * max memory usage in bytes or
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_max_usage_in_bytes() {
-+ GET_CONTAINER_INFO(jlong, memory, "/memory.max_usage_in_bytes",
-+ "Maximum Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memmaxusage);
-+ return memmaxusage;
-+}
-+
-+/* active_processor_count
-+ *
-+ * Calculate an appropriate number of active processors for the
-+ * VM to use based on these three inputs.
-+ *
-+ * cpu affinity
-+ * cgroup cpu quota & cpu period
-+ * cgroup cpu shares
-+ *
-+ * Algorithm:
-+ *
-+ * Determine the number of available CPUs from sched_getaffinity
-+ *
-+ * If user specified a quota (quota != -1), calculate the number of
-+ * required CPUs by dividing quota by period.
-+ *
-+ * If shares are in effect (shares != -1), calculate the number
-+ * of CPUs required for the shares by dividing the share value
-+ * by PER_CPU_SHARES.
-+ *
-+ * All results of division are rounded up to the next whole number.
-+ *
-+ * If neither shares or quotas have been specified, return the
-+ * number of active processors in the system.
-+ *
-+ * If both shares and quotas have been specified, the results are
-+ * based on the flag PreferContainerQuotaForCPUCount. If true,
-+ * return the quota value. If false return the smallest value
-+ * between shares or quotas.
-+ *
-+ * If shares and/or quotas have been specified, the resulting number
-+ * returned will never exceed the number of active processors.
-+ *
-+ * return:
-+ * number of CPUs
-+ */
-+int OSContainer::active_processor_count() {
-+ int quota_count = 0, share_count = 0;
-+ int cpu_count, limit_count;
-+ int result;
-+
-+ cpu_count = limit_count = os::Linux::active_processor_count();
-+ int quota = cpu_quota();
-+ int period = cpu_period();
-+ int share = cpu_shares();
-+
-+ if (quota > -1 && period > 0) {
-+ quota_count = ceilf((float)quota / (float)period);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("CPU Quota count based on quota/period: %d",
quota_count);
-+ }
-+ }
-+ if (share > -1) {
-+ share_count = ceilf((float)share / (float)PER_CPU_SHARES);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("CPU Share count based on shares: %d", share_count);
-+ }
-+ }
-+
-+ // If both shares and quotas are setup results depend
-+ // on flag PreferContainerQuotaForCPUCount.
-+ // If true, limit CPU count to quota
-+ // If false, use minimum of shares and quotas
-+ if (quota_count !=0 && share_count != 0) {
-+ if (PreferContainerQuotaForCPUCount) {
-+ limit_count = quota_count;
-+ } else {
-+ limit_count = MIN2(quota_count, share_count);
-+ }
-+ } else if (quota_count != 0) {
-+ limit_count = quota_count;
-+ } else if (share_count != 0) {
-+ limit_count = share_count;
-+ }
-+
-+ result = MIN2(cpu_count, limit_count);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("OSContainer::active_processor_count: %d", result);
-+ }
-+ return result;
-+}
-+
-+char * OSContainer::cpu_cpuset_cpus() {
-+ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.cpus",
-+ "cpuset.cpus is: %s", "%1023s", cpus, 1024);
-+ return os::strdup(cpus);
-+}
-+
-+char * OSContainer::cpu_cpuset_memory_nodes() {
-+ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.mems",
-+ "cpuset.mems is: %s", "%1023s", mems, 1024);
-+ return os::strdup(mems);
-+}
-+
-+/* cpu_quota
-+ *
-+ * Return the number of milliseconds per period
-+ * process is guaranteed to run.
-+ *
-+ * return:
-+ * quota time in milliseconds
-+ * -1 for no quota
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+int OSContainer::cpu_quota() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_quota_us",
-+ "CPU Quota is: %d", "%d", quota);
-+ return quota;
-+}
-+
-+int OSContainer::cpu_period() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_period_us",
-+ "CPU Period is: %d", "%d", period);
-+ return period;
-+}
-+
-+/* cpu_shares
-+ *
-+ * Return the amount of cpu shares available to the process
-+ *
-+ * return:
-+ * Share number (typically a number relative to 1024)
-+ * (2048 typically expresses 2 CPUs worth of processing)
-+ * -1 for no share setup
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+int OSContainer::cpu_shares() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.shares",
-+ "CPU Shares is: %d", "%d", shares);
-+ // Convert 1024 to no shares setup
-+ if (shares == 1024) return -1;
-+
-+ return shares;
-+}
-+
-diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.hpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
-@@ -0,0 +1,68 @@
-+/*
-+ * Copyright (c) 2018, 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.
-+ *
-+ */
-+
-+#ifndef OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-+#define OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-+
-+#include "utilities/globalDefinitions.hpp"
-+#include "utilities/macros.hpp"
-+#include "memory/allocation.hpp"
-+
-+#define OSCONTAINER_ERROR (-2)
-+
-+class OSContainer: AllStatic {
-+
-+ private:
-+ static bool _is_initialized;
-+ static bool _is_containerized;
-+
-+ public:
-+ static void init();
-+ static inline bool is_containerized();
-+ static const char * container_type();
-+
-+ static jlong memory_limit_in_bytes();
-+ static jlong memory_and_swap_limit_in_bytes();
-+ static jlong memory_soft_limit_in_bytes();
-+ static jlong memory_usage_in_bytes();
-+ static jlong memory_max_usage_in_bytes();
-+
-+ static int active_processor_count();
-+
-+ static char * cpu_cpuset_cpus();
-+ static char * cpu_cpuset_memory_nodes();
-+
-+ static int cpu_quota();
-+ static int cpu_period();
-+
-+ static int cpu_shares();
-+
-+};
-+
-+inline bool OSContainer::is_containerized() {
-+ assert(_is_initialized, "OSContainer not initialized");
-+ return _is_containerized;
-+}
-+
-+#endif // OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -37,6 +37,7 @@
- #include "mutex_linux.inline.hpp"
- #include "oops/oop.inline.hpp"
- #include "os_share_linux.hpp"
-+#include "osContainer_linux.hpp"
- #include "prims/jniFastGetField.hpp"
- #include "prims/jvm.h"
- #include "prims/jvm_misc.hpp"
-@@ -179,13 +180,62 @@
- julong os::Linux::available_memory() {
- // values in struct sysinfo are "unsigned long"
- struct sysinfo si;
-+ julong avail_mem;
-+
-+ if (OSContainer::is_containerized()) {
-+ jlong mem_limit, mem_usage;
-+ if ((mem_limit = OSContainer::memory_limit_in_bytes()) < 1) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
-+ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
-+ }
-+ }
-+
-+ if (mem_limit > 0 && (mem_usage = OSContainer::memory_usage_in_bytes())
< 1) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory usage failed: " JLONG_FORMAT
", using host value", mem_usage);
-+ }
-+ }
-+
-+ if (mem_limit > 0 && mem_usage > 0 ) {
-+ avail_mem = mem_limit > mem_usage ? (julong)mem_limit - (julong)mem_usage : 0;
-+ if (PrintContainerInfo) {
-+ tty->print_cr("available container memory: " JULONG_FORMAT,
avail_mem);
-+ }
-+ return avail_mem;
-+ }
-+ }
-+
- sysinfo(&si);
--
-- return (julong)si.freeram * si.mem_unit;
-+ avail_mem = (julong)si.freeram * si.mem_unit;
-+ if (Verbose) {
-+ tty->print_cr("available memory: " JULONG_FORMAT, avail_mem);
-+ }
-+ return avail_mem;
- }
-
- julong os::physical_memory() {
-- return Linux::physical_memory();
-+ jlong phys_mem = 0;
-+ if (OSContainer::is_containerized()) {
-+ jlong mem_limit;
-+ if ((mem_limit = OSContainer::memory_limit_in_bytes()) > 0) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("total container memory: " JLONG_FORMAT, mem_limit);
-+ }
-+ return mem_limit;
-+ }
-+
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
-+ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
-+ }
-+ }
-+
-+ phys_mem = Linux::physical_memory();
-+ if (Verbose) {
-+ tty->print_cr("total system memory: " JLONG_FORMAT, phys_mem);
-+ }
-+ return phys_mem;
- }
-
- ////////////////////////////////////////////////////////////////////////////////
-@@ -2129,6 +2179,8 @@
- os::Posix::print_load_average(st);
-
- os::Linux::print_full_memory_info(st);
-+
-+ os::Linux::print_container_info(st);
- }
-
- // Try to identify popular distros.
-@@ -2194,6 +2246,57 @@
- st->cr();
- }
-
-+void os::Linux::print_container_info(outputStream* st) {
-+if (!OSContainer::is_containerized()) {
-+ return;
-+ }
-+
-+ st->print("container (cgroup) information:\n");
-+
-+ const char *p_ct = OSContainer::container_type();
-+ st->print("container_type: %s\n", p_ct != NULL ? p_ct :
"failed");
-+
-+ char *p = OSContainer::cpu_cpuset_cpus();
-+ st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "failed");
-+ free(p);
-+
-+ p = OSContainer::cpu_cpuset_memory_nodes();
-+ st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "failed");
-+ free(p);
-+
-+ int i = OSContainer::active_processor_count();
-+ if (i > 0) {
-+ st->print("active_processor_count: %d\n", i);
-+ } else {
-+ st->print("active_processor_count: failed\n");
-+ }
-+
-+ i = OSContainer::cpu_quota();
-+ st->print("cpu_quota: %d\n", i);
-+
-+ i = OSContainer::cpu_period();
-+ st->print("cpu_period: %d\n", i);
-+
-+ i = OSContainer::cpu_shares();
-+ st->print("cpu_shares: %d\n", i);
-+
-+ jlong j = OSContainer::memory_limit_in_bytes();
-+ st->print("memory_limit_in_bytes: " JLONG_FORMAT "\n", j);
-+
-+ j = OSContainer::memory_and_swap_limit_in_bytes();
-+ st->print("memory_and_swap_limit_in_bytes: " JLONG_FORMAT "\n",
j);
-+
-+ j = OSContainer::memory_soft_limit_in_bytes();
-+ st->print("memory_soft_limit_in_bytes: " JLONG_FORMAT "\n",
j);
-+
-+ j = OSContainer::OSContainer::memory_usage_in_bytes();
-+ st->print("memory_usage_in_bytes: " JLONG_FORMAT "\n", j);
-+
-+ j = OSContainer::OSContainer::memory_max_usage_in_bytes();
-+ st->print("memory_max_usage_in_bytes: " JLONG_FORMAT "\n", j);
-+ st->cr();
-+}
-+
- void os::print_memory_info(outputStream* st) {
-
- st->print("Memory:");
-@@ -4966,6 +5069,10 @@
- }
- }
-
-+void os::pd_init_container_support() {
-+ OSContainer::init();
-+}
-+
- // this is called _after_ the global arguments have been parsed
- jint os::init_2(void)
- {
-@@ -5146,7 +5253,7 @@
- // sched_getaffinity gives an accurate answer as it accounts for cpusets.
- // If anything goes wrong we fallback to returning the number of online
- // processors - which can be greater than the number available to the process.
--int os::active_processor_count() {
-+int os::Linux::active_processor_count() {
- cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
- int cpus_size = sizeof(cpu_set_t);
- int cpu_count = 0;
-@@ -5164,10 +5271,48 @@
- "which may exceed available processors", strerror(errno),
cpu_count);
- }
-
-- assert(cpu_count > 0 && cpu_count <= processor_count(), "sanity
check");
-+ assert(cpu_count > 0 && cpu_count <= os::processor_count(), "sanity
check");
- return cpu_count;
- }
-
-+// Determine the active processor count from one of
-+// three different sources:
-+//
-+// 1. User option -XX:ActiveProcessorCount
-+// 2. kernel os calls (sched_getaffinity or sysconf(_SC_NPROCESSORS_ONLN)
-+// 3. extracted from cgroup cpu subsystem (shares and quotas)
-+//
-+// Option 1, if specified, will always override.
-+// If the cgroup subsystem is active and configured, we
-+// will return the min of the cgroup and option 2 results.
-+// This is required since tools, such as numactl, that
-+// alter cpu affinity do not update cgroup subsystem
-+// cpuset configuration files.
-+int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
-+ int active_cpus;
-+ if (OSContainer::is_containerized()) {
-+ active_cpus = OSContainer::active_processor_count();
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: determined by OSContainer:
%d",
-+ active_cpus);
-+ }
-+ } else {
-+ active_cpus = os::Linux::active_processor_count();
-+ }
-+
-+ return active_cpus;
-+}
-+
- void os::set_native_thread_name(const char *name) {
- // Not yet implemented.
- return;
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
openjdk/hotspot/src/os/linux/vm/os_linux.hpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
-@@ -35,6 +35,7 @@
-
- class Linux {
- friend class os;
-+ friend class OSContainer;
- friend class TestReserveMemorySpecial;
-
- // For signal-chaining
-@@ -79,6 +80,9 @@
-
- static julong available_memory();
- static julong physical_memory() { return _physical_memory; }
-+ static void set_physical_memory(julong phys_mem) { _physical_memory = phys_mem; }
-+ static int active_processor_count();
-+
- static void initialize_system_info();
-
- static int commit_memory_impl(char* addr, size_t bytes, bool exec);
-@@ -116,6 +120,7 @@
- static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
-
- static void print_full_memory_info(outputStream* st);
-+ static void print_container_info(outputStream* st);
- static void print_distro_info(outputStream* st);
- static void print_libversion_info(outputStream* st);
-
-diff --git openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
---- openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
-+++ openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
-@@ -357,6 +357,16 @@
- }
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (Verbose) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- int online_cpus = sysconf(_SC_NPROCESSORS_ONLN);
- pid_t pid = getpid();
- psetid_t pset = PS_NONE;
-diff --git openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
openjdk/hotspot/src/os/windows/vm/os_windows.cpp
---- openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
-+++ openjdk/hotspot/src/os/windows/vm/os_windows.cpp
-@@ -716,6 +716,16 @@
- #endif
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- DWORD_PTR lpProcessAffinityMask = 0;
- DWORD_PTR lpSystemAffinityMask = 0;
- int proc_count = processor_count();
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 2018, 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
-@@ -1801,20 +1801,34 @@
- }
- }
-
-+ // Convert Fraction to Precentage values
-+ if (FLAG_IS_DEFAULT(MaxRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(MaxRAMFraction))
-+ MaxRAMPercentage = 100.0 / MaxRAMFraction;
-+
-+ if (FLAG_IS_DEFAULT(MinRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(MinRAMFraction))
-+ MinRAMPercentage = 100.0 / MinRAMFraction;
-+
-+ if (FLAG_IS_DEFAULT(InitialRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(InitialRAMFraction))
-+ InitialRAMPercentage = 100.0 / InitialRAMFraction;
-+
- // If the maximum heap size has not been set with -Xmx,
- // then set it as fraction of the size of physical memory,
- // respecting the maximum and minimum sizes of the heap.
- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-- julong reasonable_max = phys_mem / MaxRAMFraction;
--
-- if (phys_mem <= MaxHeapSize * MinRAMFraction) {
-+ julong reasonable_max = (julong)((phys_mem * MaxRAMPercentage) / 100);
-+ const julong reasonable_min = (julong)((phys_mem * MinRAMPercentage) / 100);
-+ if (reasonable_min < MaxHeapSize) {
- // Small physical memory, so use a minimum fraction of it for the heap
-- reasonable_max = phys_mem / MinRAMFraction;
-+ reasonable_max = reasonable_min;
- } else {
- // Not-small physical memory, so require a heap at least
- // as large as MaxHeapSize
- reasonable_max = MAX2(reasonable_max, (julong)MaxHeapSize);
- }
-+
- if (!FLAG_IS_DEFAULT(ErgoHeapSizeLimit) && ErgoHeapSizeLimit != 0) {
- // Limit the heap size to ErgoHeapSizeLimit
- reasonable_max = MIN2(reasonable_max, (julong)ErgoHeapSizeLimit);
-@@ -1856,7 +1870,7 @@
- reasonable_minimum = limit_by_allocatable_memory(reasonable_minimum);
-
- if (InitialHeapSize == 0) {
-- julong reasonable_initial = phys_mem / InitialRAMFraction;
-+ julong reasonable_initial = (julong)((phys_mem * InitialRAMPercentage) / 100);
-
- reasonable_initial = MAX3(reasonable_initial, reasonable_minimum,
(julong)min_heap_size());
- reasonable_initial = MIN2(reasonable_initial, (julong)MaxHeapSize);
-@@ -1881,6 +1895,94 @@
- }
- }
-
-+// This option inspects the machine and attempts to set various
-+// parameters to be optimal for long-running, memory allocation
-+// intensive jobs. It is intended for machines with large
-+// amounts of cpu and memory.
-+jint Arguments::set_aggressive_heap_flags() {
-+ // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
-+ // VM, but we may not be able to represent the total physical memory
-+ // available (like having 8gb of memory on a box but using a 32bit VM).
-+ // Thus, we need to make sure we're using a julong for intermediate
-+ // calculations.
-+ julong initHeapSize;
-+ julong total_memory = os::physical_memory();
-+
-+ if (total_memory < (julong) 256 * M) {
-+ jio_fprintf(defaultStream::error_stream(),
-+ "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
-+ vm_exit(1);
-+ }
-+
-+ // The heap size is half of available memory, or (at most)
-+ // all of possible memory less 160mb (leaving room for the OS
-+ // when using ISM). This is the maximum; because adaptive sizing
-+ // is turned on below, the actual space used may be smaller.
-+
-+ initHeapSize = MIN2(total_memory / (julong) 2,
-+ total_memory - (julong) 160 * M);
-+
-+ initHeapSize = limit_by_allocatable_memory(initHeapSize);
-+
-+ if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-+ FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
-+ FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
-+ // Currently the minimum size and the initial heap sizes are the same.
-+ set_min_heap_size(initHeapSize);
-+ }
-+ if (FLAG_IS_DEFAULT(NewSize)) {
-+ // Make the young generation 3/8ths of the total heap.
-+ FLAG_SET_CMDLINE(uintx, NewSize,
-+ ((julong) MaxHeapSize / (julong) 8) * (julong) 3);
-+ FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
-+ }
-+
-+#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
-+ FLAG_SET_DEFAULT(UseLargePages, true);
-+#endif
-+
-+ // Increase some data structure sizes for efficiency
-+ FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
-+ FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
-+ FLAG_SET_CMDLINE(uintx, TLABSize, 256 * K);
-+
-+ // See the OldPLABSize comment below, but replace 'after promotion'
-+ // with 'after copying'. YoungPLABSize is the size of the survivor
-+ // space per-gc-thread buffers. The default is 4kw.
-+ FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256 * K); // Note: this is in words
-+
-+ // OldPLABSize is the size of the buffers in the old gen that
-+ // UseParallelGC uses to promote live data that doesn't fit in the
-+ // survivor spaces. At any given time, there's one for each gc thread.
-+ // The default size is 1kw. These buffers are rarely used, since the
-+ // survivor spaces are usually big enough. For specjbb, however, there
-+ // are occasions when there's lots of live data in the young gen
-+ // and we end up promoting some of it. We don't have a definite
-+ // explanation for why bumping OldPLABSize helps, but the theory
-+ // is that a bigger PLAB results in retaining something like the
-+ // original allocation order after promotion, which improves mutator
-+ // locality. A minor effect may be that larger PLABs reduce the
-+ // number of PLAB allocation events during gc. The value of 8kw
-+ // was arrived at by experimenting with specjbb.
-+ FLAG_SET_CMDLINE(uintx, OldPLABSize, 8 * K); // Note: this is in words
-+
-+ // Enable parallel GC and adaptive generation sizing
-+ FLAG_SET_CMDLINE(bool, UseParallelGC, true);
-+
-+ // Encourage steady state memory management
-+ FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
-+
-+ // This appears to improve mutator locality
-+ FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
-+
-+ // Get around early Solaris scheduling bug
-+ // (affinity vs other jobs on system)
-+ // but disallow DR and offlining (5008695).
-+ FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
-+
-+ return JNI_OK;
-+}
-+
- // This must be called after ergonomics because we want bytecode rewriting
- // if the server compiler is used, or if UseSharedSpaces is disabled.
- void Arguments::set_bytecode_flags() {
-@@ -2644,6 +2746,14 @@
- return result;
- }
-
-+ // We need to ensure processor and memory resources have been properly
-+ // configured - which may rely on arguments we just processed - before
-+ // doing the final argument processing. Any argument processing that
-+ // needs to know about processor and memory resources must occur after
-+ // this point.
-+
-+ os::init_container_support();
-+
- // Do final processing now that all arguments have been parsed
- result = finalize_vm_init_args(&scp, scp_assembly_required);
- if (result != JNI_OK) {
-@@ -3117,94 +3227,6 @@
- _exit_hook = CAST_TO_FN_PTR(exit_hook_t, option->extraInfo);
- } else if (match_option(option, "abort", &tail)) {
- _abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
-- // -XX:+AggressiveHeap
-- } else if (match_option(option, "-XX:+AggressiveHeap", &tail)) {
--
-- // This option inspects the machine and attempts to set various
-- // parameters to be optimal for long-running, memory allocation
-- // intensive jobs. It is intended for machines with large
-- // amounts of cpu and memory.
--
-- // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
-- // VM, but we may not be able to represent the total physical memory
-- // available (like having 8gb of memory on a box but using a 32bit VM).
-- // Thus, we need to make sure we're using a julong for intermediate
-- // calculations.
-- julong initHeapSize;
-- julong total_memory = os::physical_memory();
--
-- if (total_memory < (julong)256*M) {
-- jio_fprintf(defaultStream::error_stream(),
-- "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
-- vm_exit(1);
-- }
--
-- // The heap size is half of available memory, or (at most)
-- // all of possible memory less 160mb (leaving room for the OS
-- // when using ISM). This is the maximum; because adaptive sizing
-- // is turned on below, the actual space used may be smaller.
--
-- initHeapSize = MIN2(total_memory / (julong)2,
-- total_memory - (julong)160*M);
--
-- initHeapSize = limit_by_allocatable_memory(initHeapSize);
--
-- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-- FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
-- FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
-- // Currently the minimum size and the initial heap sizes are the same.
-- set_min_heap_size(initHeapSize);
-- }
-- if (FLAG_IS_DEFAULT(NewSize)) {
-- // Make the young generation 3/8ths of the total heap.
-- FLAG_SET_CMDLINE(uintx, NewSize,
-- ((julong)MaxHeapSize / (julong)8) * (julong)3);
-- FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
-- }
--
--#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
-- FLAG_SET_DEFAULT(UseLargePages, true);
--#endif
--
-- // Increase some data structure sizes for efficiency
-- FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
-- FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
-- FLAG_SET_CMDLINE(uintx, TLABSize, 256*K);
--
-- // See the OldPLABSize comment below, but replace 'after promotion'
-- // with 'after copying'. YoungPLABSize is the size of the survivor
-- // space per-gc-thread buffers. The default is 4kw.
-- FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K); // Note: this is in words
--
-- // OldPLABSize is the size of the buffers in the old gen that
-- // UseParallelGC uses to promote live data that doesn't fit in the
-- // survivor spaces. At any given time, there's one for each gc thread.
-- // The default size is 1kw. These buffers are rarely used, since the
-- // survivor spaces are usually big enough. For specjbb, however, there
-- // are occasions when there's lots of live data in the young gen
-- // and we end up promoting some of it. We don't have a definite
-- // explanation for why bumping OldPLABSize helps, but the theory
-- // is that a bigger PLAB results in retaining something like the
-- // original allocation order after promotion, which improves mutator
-- // locality. A minor effect may be that larger PLABs reduce the
-- // number of PLAB allocation events during gc. The value of 8kw
-- // was arrived at by experimenting with specjbb.
-- FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K); // Note: this is in words
--
-- // Enable parallel GC and adaptive generation sizing
-- FLAG_SET_CMDLINE(bool, UseParallelGC, true);
--
-- // Encourage steady state memory management
-- FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
--
-- // This appears to improve mutator locality
-- FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
--
-- // Get around early Solaris scheduling bug
-- // (affinity vs other jobs on system)
-- // but disallow DR and offlining (5008695).
-- FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
--
- } else if (match_option(option, "-XX:+NeverTenure", &tail)) {
- // The last option must always win.
- FLAG_SET_CMDLINE(bool, AlwaysTenure, false);
-@@ -3605,6 +3627,15 @@
- return JNI_ERR;
- }
-
-+ // This must be done after all arguments have been processed
-+ // and the container support has been initialized since AggressiveHeap
-+ // relies on the amount of total memory available.
-+ if (AggressiveHeap) {
-+ jint result = set_aggressive_heap_flags();
-+ if (result != JNI_OK) {
-+ return result;
-+ }
-+ }
- // This must be done after all arguments have been processed.
- // java_compiler() true means set to "NONE" or empty.
- if (java_compiler() && !xdebug_mode()) {
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
openjdk/hotspot/src/share/vm/runtime/arguments.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.hpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 2018, 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
-@@ -365,6 +365,8 @@
- // Aggressive optimization flags.
- static void set_aggressive_opts_flags();
-
-+ static jint set_aggressive_heap_flags();
-+
- // Argument parsing
- static void do_pd_flag_adjustments();
- static bool parse_argument(const char* arg, Flag::Flags origin);
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
openjdk/hotspot/src/share/vm/runtime/globals.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
-@@ -2076,13 +2076,23 @@
- product_pd(uint64_t, MaxRAM, \
- "Real memory size (in bytes) used to set maximum heap size") \
- \
-+ product(bool, AggressiveHeap, false, \
-+ "Optimize heap options for long-running memory intensive apps") \
-+ \
- product(uintx, ErgoHeapSizeLimit, 0, \
- "Maximum ergonomically set heap size (in bytes); zero means use " \
-- "MaxRAM / MaxRAMFraction") \
-+ "MaxRAM * MaxRAMPercentage / 100") \
- \
- experimental(bool, UseCGroupMemoryLimitForHeap, false, \
- "Use CGroup memory limit as physical memory limit for heap " \
-- "sizing") \
-+ "sizing" \
-+ "Deprecated, replaced by container support") \
-+ \
-+ diagnostic(bool, PrintContainerInfo, false, \
-+ "Print container related information") \
-+ \
-+ diagnostic(bool, PrintActiveCpus, false, \
-+ "Print the number of CPUs detected in os::active_processor_count")
\
- \
- product(uintx, MaxRAMFraction, 4, \
- "Maximum fraction (1/n) of real memory used for maximum heap " \
-@@ -2099,6 +2109,19 @@
- product(uintx, InitialRAMFraction, 64, \
- "Fraction (1/n) of real memory used for initial heap size") \
- \
-+ product(double, MaxRAMPercentage, 25.0, \
-+ "Maximum percentage of real memory used for maximum heap size") \
-+ \
-+ product(double, MinRAMPercentage, 50.0, \
-+ "Minimum percentage of real memory used for maximum heap" \
-+ "size on systems with small physical memory size") \
-+ \
-+ product(double, InitialRAMPercentage, 1.5625, \
-+ "Percentage of real memory used for initial heap size") \
-+ \
-+ product(intx, ActiveProcessorCount, -1, \
-+ "Specify the CPU count the VM should use and report as active") \
-+ \
- develop(uintx, MaxVirtMemFraction, 2, \
- "Maximum fraction (1/n) of virtual memory used for ergonomically "\
- "determining maximum heap size") \
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
openjdk/hotspot/src/share/vm/runtime/os.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/os.hpp
-@@ -152,8 +152,16 @@
- static size_t page_size_for_region(size_t region_size, size_t min_pages, bool
must_be_aligned);
-
- static void initialize_initial_active_processor_count();
-+
-+ LINUX_ONLY(static void pd_init_container_support();)
-+
- public:
- static void init(void); // Called before command line parsing
-+
-+ static void init_container_support() { // Called during command line parsing.
-+ LINUX_ONLY(pd_init_container_support();)
-+ }
-+
- static void init_before_ergo(void); // Called after command line parsing
- // before VM ergonomics processing.
- static jint init_2(void); // Called after command line parsing
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
openjdk/hotspot/src/share/vm/runtime/thread.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/thread.cpp
-@@ -3332,6 +3332,7 @@
- Arguments::init_version_specific_system_properties();
-
- // Parse arguments
-+ // Note: this internally calls os::init_container_support()
- jint parse_result = Arguments::parse(args);
- if (parse_result != JNI_OK) return parse_result;
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e86a8e3..bb97a16 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1057,7 +1057,7 @@ Patch516: pr2815.patch
Patch517: pr2899.patch
Patch518: pr2934.patch
Patch519: pr3479-rh1486025.patch
-# PR3183, RH1340845: Support Fedora/RHEL system crypto policy
+# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
Patch300: pr3183-rh1340845-system-crypto-policy.patch
#############################################
@@ -1168,8 +1168,6 @@ Patch578: 8075942-pr3602-rh1582032.patch
Patch579: 8203182-pr3603-rh1568033.patch
# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
Patch580: 8206406-pr3610-rh1597825.patch
-# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
-Patch581: 8146115-pr3508-rh1463098.patch
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
Patch204: 8206425-hotspot-remove-debuglink.patch
@@ -1224,10 +1222,8 @@ Patch539: pr2888.patch
Patch540: pr3575-rh1567204.patch
# Shenandoah fixes
-# PR3619: Shenandoah broken on s390
-Patch582: pr3619.patch
-# PR3620: Shenandoah broken on ppc64
-Patch583: pr3620.patch
+# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
+Patch582: pr3634.patch
#############################################
#
@@ -1631,7 +1627,6 @@ sh %{SOURCE12}
%patch578
%patch579
%patch580
-%patch581
%patch620
%patch621
%patch622
@@ -1651,7 +1646,6 @@ sh %{SOURCE12}
# Shenandoah patches
%patch582
-%patch583
%patch1000
@@ -2288,6 +2282,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
+- updated to aarch64-shenandoah-jdk8u191-b12
+- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
+- create pr3634.patch to fix build failure on s390
+
* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
- Annother fix for optimization gaps (annocheck issues)
diff --git a/pr3619.patch b/pr3619.patch
deleted file mode 100644
index 3c8631f..0000000
--- a/pr3619.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-@@ -108,7 +108,7 @@
- step = MIN2(step, (intx) MaxNormalStep);
-
- log_info(gc, ergo)("Capacity: " SIZE_FORMAT "M, Peak Occupancy: "
SIZE_FORMAT
-- "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " UINTX_FORMAT "M",
-+ "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " SIZE_FORMAT "M",
- capacity / M, _peak_occupancy / M,
- (capacity - _peak_occupancy) / M, ShenandoahMinFreeThreshold *
capacity / 100 / M);
-
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-@@ -36,7 +36,7 @@
- }
-
- void ShenandoahStaticHeuristics::print_thresholds() {
-- log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"SIZE_FORMAT", free "SIZE_FORMAT", garbage "SIZE_FORMAT,
-+ log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"UINTX_FORMAT", free "UINTX_FORMAT", garbage "UINTX_FORMAT,
- ShenandoahAllocationThreshold,
- ShenandoahFreeThreshold,
- ShenandoahGarbageThreshold);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-@@ -539,7 +539,7 @@
- }
- size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
- region_size = MAX2(average_heap_size / ShenandoahTargetNumRegions,
-- ShenandoahMinRegionSize);
-+ (size_t) ShenandoahMinRegionSize);
-
- // Now make sure that we don't go over or under our limits.
- region_size = MAX2(ShenandoahMinRegionSize, region_size);
-@@ -573,7 +573,7 @@
- // Otherwise, mem-protecting one region may falsely protect the adjacent
- // regions too.
- if (UseLargePages) {
-- region_size = MAX2(region_size, os::large_page_size());
-+ region_size = MAX2((size_t) region_size, os::large_page_size());
- }
-
- int region_size_log = log2_long((jlong) region_size);
diff --git a/pr3620.patch b/pr3620.patch
deleted file mode 100644
index 206828d..0000000
--- a/pr3620.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git openjdk.orig/hotspot/make/excludeSrc.make
openjdk/hotspot/make/excludeSrc.make
---- openjdk.orig/hotspot/make/excludeSrc.make
-+++ openjdk/hotspot/make/excludeSrc.make
-@@ -121,6 +121,7 @@
- Src_Files_EXCLUDE += \
- shenandoahBarrierSet_x86.cpp \
- shenandoahBarrierSet_aarch64.cpp \
-+ shenandoahBarrierSet_ppc.cpp \
- shenandoahBarrierSet_sparc.cpp \
- shenandoahBarrierSet_zero.cpp
- endif
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-@@ -0,0 +1,54 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
-+ *
-+ * 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.
-+ *
-+ */
-+
-+#include "precompiled.hpp"
-+#include "gc_implementation/shenandoah/brooksPointer.hpp"
-+#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp"
-+
-+#include "asm/macroAssembler.hpp"
-+#include "interpreter/interpreter.hpp"
-+
-+#define __ masm->
-+
-+#ifndef CC_INTERP
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier(MacroAssembler* masm, Register dst)
{
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm,
Register dst) {
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst)
{
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register
op2) {
-+ Unimplemented();
-+}
-+
-+void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) {
-+ Unimplemented();
-+}
-+#endif
diff --git a/pr3634.patch b/pr3634.patch
new file mode 100644
index 0000000..caba2ac
--- /dev/null
+++ b/pr3634.patch
@@ -0,0 +1,16 @@
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+@@ -55,10 +55,10 @@
+ "Size of the Shenandoah regions. " \
+ "Determined automatically by default.") \
+ \
+- experimental(uintx, ShenandoahMinRegionSize, 256 * K, \
++ experimental(size_t, ShenandoahMinRegionSize, 256 * K, \
+ "Minimum heap region size. ") \
+ \
+- experimental(uintx, ShenandoahMaxRegionSize, 32 * M, \
++ experimental(size_t, ShenandoahMaxRegionSize, 32 * M, \
+ "Maximum heap region size. ") \
+ \
+ experimental(intx, ShenandoahHumongousThreshold, 100, \
commit 6985b32d3cc12c4c3d3277f388cfa6f06c4ccebf
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 19 16:48:15 2018 +0200
updated to new sources - u191
diff --git a/.gitignore b/.gitignore
index 571ea50..b7a8809 100644
--- a/.gitignore
+++ b/.gitignore
@@ -110,7 +110,10 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u171-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b12.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-06-21.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u181-b03.tar.xz
@@ -121,3 +124,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b16.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b10.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7bcfe17..e86a8e3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -221,7 +221,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u181-b15
+%global shenandoah_revision aarch64-shenandoah-jdk8u191-b12
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
diff --git a/sources b/sources
index f10b98c..7cd45d3 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz) =
d8cdb9b7ef129ba8a07332ca3e4c56ad9e6cc84c4977cbad601b67deeecec44c0f3b95f219d603e063bd7b89bf6515151111fe021cf36132b9b4cc47c1d1d12c
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz) =
1cefbddc40a87fcbcbd875dc83d3897137c6ded3bd18190c3c8e96f89bb5c7edb29750095bb47dd96be062d093f488327f4993f9690975fde2dbaededd7d4e55
commit 3f7d119a88fe9ed60f5b084e4f27f8cf3f3094bb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 19 16:29:52 2018 +0200
Used top-level macro consistently
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bb8821c..7bcfe17 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,7 +71,7 @@
%global include_debug_build 0
%endif
-# On x86_64 and AArch64, we use the Shenandoah HotSpot
+# Shenandoah HotSpot used everywhere, but built only on x86_64 and AArch64
%ifarch x86_64 %{aarch64}
%global use_shenandoah_hotspot 1
%else
@@ -244,7 +244,7 @@
# images stub
%global jdkimage j2sdk-image
# output dir stub
-%define buildoutputdir() %{expand:openjdk/build/jdk8.build%{?1}}
+%define buildoutputdir() %{expand:%{top_level_dir_name}/build/jdk8.build%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
@@ -1548,8 +1548,8 @@ cp %{SOURCE2} .
#
# the configure macro will do this too, but it also passes a few flags not
# supported by openjdk configure script
-cp %{SOURCE100} openjdk/common/autoconf/build-aux/
-cp %{SOURCE101} openjdk/common/autoconf/build-aux/
+cp %{SOURCE100} %{top_level_dir_name}/common/autoconf/build-aux/
+cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
# OpenJDK patches
@@ -1991,7 +1991,7 @@ cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{
# Install icons and menu entries
for s in 16 24 32 48 ; do
install -D -p -m 644 \
- openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
done
commit 68ef862ac2f8b600a7c59f46c9bce6f5e27f6c70
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Oct 12 16:18:07 2018 +0200
Add another optimization gap fix for Zero.
Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch which
performs the same opt steps for Zero arches when they are being
built. This issue showed up on arm (32 bit) and s390x
only as those are Zero arches for JDK 8.
diff --git a/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
b/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
new file mode 100644
index 0000000..6c1ebad
--- /dev/null
+++ b/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
@@ -0,0 +1,20 @@
+--- openjdk/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -30,10 +30,13 @@ ifeq ($(USE_CLANG), true)
+ WARNING_FLAGS += -Wno-undef
+ endif
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+
+ # Specify that the CPU is little endian, if necessary
+ ifeq ($(ZERO_ENDIANNESS), little)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ab60314..bb8821c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -964,7 +964,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 6%{?dist}
+Release: 7%{?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
@@ -1135,6 +1135,9 @@ Patch623: 8210425-01-rh1630426-hotspot-opt-fix.patch
# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
# Aarch64-port 8u local part
Patch624: 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Zero part of the fix for (arm/s390 arches)
+Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
#############################################
#
@@ -1634,6 +1637,7 @@ sh %{SOURCE12}
%patch622
%patch623
%patch624
+%patch625
# RPM-only fixes
%patch525
@@ -2284,6 +2288,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
+- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
+ - Annother fix for optimization gaps (annocheck issues)
+ - Zero 8u version fix was missing. Hence, only shows up on Zero arches.
+
* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
- Refreshed upstreamed patches (from 8u202):
- 8044235-include-all-srcs.patch: src.zip should include all sources.
commit ba397c7d37c7542579f116383e297cfed348e217
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Oct 8 15:46:26 2018 +0200
Add changelog entry for previous changes.
Bump release.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 627dde5..ab60314 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -964,7 +964,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 5%{?dist}
+Release: 6%{?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
@@ -2284,6 +2284,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
+- Refreshed upstreamed patches (from 8u202):
+ - 8044235-include-all-srcs.patch: src.zip should include all sources.
+ - 8073139-rh1191652-hotspot-aarch64.patch,
+ 8073139-rh1191652-jdk.patch,
+ 8073139-rh1191652-root.patch: PPC64LE JVM reporting issues.
+- Moved both patch series to 8u202 sections.
+
* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
- Add explicit requirement for libXcomposite which is used when performing
screenshots from Java.
commit b0ff02ded7e153f342043da73febcb0123d430c6
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Oct 8 15:38:27 2018 +0200
Refresh JDK-8044235 from upstream 8u.
Move patch definition to 8u202 section.
diff --git a/8044235-include-all-srcs.patch b/8044235-include-all-srcs.patch
index 41b1ea2..1beda6d 100644
--- a/8044235-include-all-srcs.patch
+++ b/8044235-include-all-srcs.patch
@@ -1,9 +1,20 @@
---- jdk8/jdk/make/CreateJars.gmk
-+++ jdk8/jdk/make/CreateJars.gmk
-@@ -569,38 +569,12 @@
+# HG changeset patch
+# User omajid
+# Date 1401638044 14400
+# Sun Jun 01 11:54:04 2014 -0400
+# Node ID fd78f7e83f3f1ce7d363b681b97583138218afcb
+# Parent 8d0af21b5b9789f97b05edacc221a63f851d13b8
+8044235: src.zip should include all sources
+Reviewed-by: andrew, dholmes
+
+diff --git a/make/CreateJars.gmk b/make/CreateJars.gmk
+--- openjdk/jdk/make/CreateJars.gmk
++++ openjdk/jdk/make/CreateJars.gmk
+@@ -584,40 +584,53 @@
+
##########################################################################################
- SRC_ZIP_INCLUDES = \
+-SRC_ZIP_INCLUDES = \
- com/sun/corba \
- com/sun/image/codec/jpeg \
- com/sun/imageio \
@@ -16,8 +27,7 @@
- com/sun/security/auth \
- com/sun/security/jgss \
- com/sun/source \
-+ com \
- java \
+- java \
- javax/accessibility \
- javax/annotation \
- javax/imageio \
@@ -37,18 +47,63 @@
- org/omg \
- org/w3c/dom \
- org/xml/sax \
-+ javax \
-+ jdk \
-+ org \
-+ sun \
- #
+- #
++ifdef OPENJDK
++ SRC_ZIP_INCLUDES = \
++ com \
++ java \
++ javax \
++ jdk \
++ org \
++ sun \
++ #
++ SRC_ZIP_EXCLUDES =
++else
++ SRC_ZIP_INCLUDES = \
++ com/sun/corba \
++ com/sun/image/codec/jpeg \
++ com/sun/imageio \
++ com/sun/java_cup \
++ com/sun/javadoc \
++ com/sun/java/swing \
++ com/sun/jmx \
++ com/sun/naming \
++ com/sun/org/apache \
++ com/sun/security/auth \
++ com/sun/security/jgss \
++ com/sun/source \
++ java \
++ javax/accessibility \
++ javax/annotation \
++ javax/imageio \
++ javax/lang \
++ javax/management \
++ javax/naming \
++ javax/print \
++ javax/rmi \
++ javax/script \
++ javax/security \
++ javax/sound \
++ javax/sql \
++ javax/swing \
++ javax/tools \
++ javax/xml \
++ org/ietf \
++ org/omg \
++ org/w3c/dom \
++ org/xml/sax \
++ #
++ SRC_ZIP_EXCLUDES = javax/swing/beaninfo
++endif
SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
-@@ -632,7 +606,6 @@
+ SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc
+@@ -648,7 +661,7 @@
$(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
- EXCLUDES := javax/swing/beaninfo, \
++ EXCLUDES := $(SRC_ZIP_EXCLUDES), \
SUFFIXES := .java .c .h, \
ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 59445d0..627dde5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1094,8 +1094,6 @@ Patch106: pr3519.patch
# Patches which need backporting to 8u
#
#############################################
-# 8044235: src.zip should include all sources
-Patch7: 8044235-include-all-srcs.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
@@ -1193,6 +1191,8 @@ Patch210: 8165852-pr3468.patch
Patch601: 8073139-rh1191652-root.patch
Patch602: 8073139-rh1191652-jdk.patch
Patch603: 8073139-rh1191652-hotspot-aarch64.patch
+# 8044235: src.zip should include all sources
+Patch7: 8044235-include-all-srcs.patch
#############################################
#
commit 0335c0c175da31d6e6fe3be69cca08949ed095d9
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Oct 5 12:09:59 2018 +0200
Refresh JDK-8073139 from upstream.
- Move JDK-8073139 patch series to
8u202 updates section.
- Refactor upstream 8u patches so that
it applies to the current aarch64/shenandoah tree.
diff --git a/8073139-rh1191652-hotspot-aarch64.patch
b/8073139-rh1191652-hotspot-aarch64.patch
index 865ecb3..a5afea0 100644
--- a/8073139-rh1191652-hotspot-aarch64.patch
+++ b/8073139-rh1191652-hotspot-aarch64.patch
@@ -1,25 +1,130 @@
# HG changeset patch
-# User andrew
-# Date 1424102734 0
-# Mon Feb 16 16:05:34 2015 +0000
-# Node ID 4fdaf786d977aa77afdb68b8829579d31069e39c
-# Parent 01a0011cc101f3308c5876db8282c0fc5e3ba2e6
-PR2236: ppc64le should report its os.arch as ppc64le so tools can detect it
-Summary: Use ppc64le as the arch directory on that platform and report it in os.arch
+# User sgehwolf
+# Date 1537885415 -7200
+# Tue Sep 25 16:23:35 2018 +0200
+# Node ID 5044428520866481f438bfd1375da75adbc89243
+# Parent a3df1579a8647b06559f41d345da7bea162b26e9
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
---- openjdk/hotspot/make/defs.make.orig 2015-03-03 17:05:51.000000000 -0500
-+++ openjdk/hotspot/make/defs.make 2015-03-03 19:18:20.000000000 -0500
-@@ -319,6 +319,13 @@
- LIBARCH/ppc64 = ppc64
- LIBARCH/zero = $(ZERO_LIBARCH)
+diff --git a/make/defs.make b/make/defs.make
+--- openjdk/hotspot/make/defs.make
++++ openjdk/hotspot/make/defs.make
+@@ -285,7 +285,7 @@ ifneq ($(OSNAME),windows)
-+ # Override LIBARCH for ppc64le
-+ ifeq ($(ARCH), ppc64)
-+ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
-+ LIBARCH = ppc64le
-+ endif
-+ endif
-+
- LP64_ARCH += sparcv9 amd64 ia64 ppc64 aarch64 zero
- endif
+ # Use uname output for SRCARCH, but deal with platform differences. If ARCH
+ # is not explicitly listed below, it is treated as x86.
+- SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 zero
aarch64,$(ARCH)))
++ SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 ppc64le zero
aarch64,$(ARCH)))
+ ARCH/ = x86
+ ARCH/sparc = sparc
+ ARCH/sparc64= sparc
+@@ -293,6 +293,7 @@ ifneq ($(OSNAME),windows)
+ ARCH/amd64 = x86
+ ARCH/x86_64 = x86
+ ARCH/ppc64 = ppc
++ ARCH/ppc64le= ppc
+ ARCH/ppc = ppc
+ ARCH/zero = zero
+ ARCH/aarch64 = aarch64
+@@ -316,7 +317,12 @@
+ endif
+ endif
+- # LIBARCH is 1:1 mapping from BUILDARCH
++ # LIBARCH is 1:1 mapping from BUILDARCH, except for ARCH=ppc64le
++ ifeq ($(ARCH),ppc64le)
++ LIBARCH ?= ppc64le
++ else
++ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
++ endif
+ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
+ LIBARCH/i486 = i386
+ LIBARCH/amd64 = amd64
+diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1956,7 +1956,7 @@
+ {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9
64"},
+ {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC
32"},
+ #if defined(VM_LITTLE_ENDIAN)
+- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC
64"},
++ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64
LE"},
+ #else
+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC
64"},
+ #endif
+diff --git a/src/share/tools/hsdis/Makefile b/src/share/tools/hsdis/Makefile
+--- openjdk/hotspot/src/share/tools/hsdis/Makefile
++++ openjdk/hotspot/src/share/tools/hsdis/Makefile
+@@ -97,6 +97,7 @@
+ CFLAGS/sparcv9 += -m64
+ CFLAGS/amd64 += -m64
+ CFLAGS/ppc64 += -m64
++CFLAGS/ppc64le += -m64 -DABI_ELFv2
+ else
+ ARCH=$(ARCH1:amd64=i386)
+ CFLAGS/i386 += -m32
+diff --git a/src/share/tools/hsdis/hsdis-demo.c b/src/share/tools/hsdis/hsdis-demo.c
+--- openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
++++ openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
+@@ -88,7 +88,7 @@
+ printf("...And now for something completely different:\n");
+ void *start = (void*) &main;
+ void *end = (void*) &end_of_file;
+-#if defined(__ia64) || defined(__powerpc__)
++#if defined(__ia64) || (defined(__powerpc__) && !defined(ABI_ELFv2))
+ /* On IA64 and PPC function pointers are pointers to function descriptors */
+ start = *((void**)start);
+ end = *((void**)end);
+diff --git a/src/share/tools/hsdis/hsdis.c b/src/share/tools/hsdis/hsdis.c
+--- openjdk/hotspot/src/share/tools/hsdis/hsdis.c
++++ openjdk/hotspot/src/share/tools/hsdis/hsdis.c
+@@ -461,7 +461,7 @@ static const char* native_arch_name() {
+ #ifdef LIBARCH_sparcv9
+ res = "sparc:v9b";
+ #endif
+-#ifdef LIBARCH_ppc64
++#if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le)
+ res = "powerpc:common64";
+ #endif
+ #else
+diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp
+--- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
+@@ -187,11 +187,16 @@ const char* Abstract_VM_Version::jre_release_version() {
+ #ifndef CPU
+ #ifdef ZERO
+ #define CPU ZERO_LIBARCH
++#elif defined(PPC64)
++#if defined(VM_LITTLE_ENDIAN)
++#define CPU "ppc64le"
++#else
++#define CPU "ppc64"
++#endif
+ #else
+ #define CPU IA32_ONLY("x86") \
+ IA64_ONLY("ia64") \
+ AMD64_ONLY("amd64") \
+- PPC64_ONLY("ppc64") \
+ AARCH64_ONLY("aarch64") \
+ SPARC_ONLY("sparc")
+ #endif // ZERO
+diff --git a/test/test_env.sh b/test/test_env.sh
+--- openjdk/hotspot/test/test_env.sh
++++ openjdk/hotspot/test/test_env.sh
+@@ -185,6 +185,15 @@
+ if [ $? = 0 ]
+ then
+ VM_CPU="ppc"
++ if [ $VM_BITS = "64" ]
++ then
++ VM_CPU="ppc64"
++ grep "ppc64le" vm_version.out > ${NULL}
++ if [ $? = 0 ]
++ then
++ VM_CPU="ppc64le"
++ fi
++ fi
+ fi
+ grep "ia64" vm_version.out > ${NULL}
+ if [ $? = 0 ]
diff --git a/8073139-rh1191652-jdk.patch b/8073139-rh1191652-jdk.patch
index 5157f40..7495c36 100644
--- a/8073139-rh1191652-jdk.patch
+++ b/8073139-rh1191652-jdk.patch
@@ -1,4 +1,13 @@
-diff -r 1fe56343ecc8 make/lib/SoundLibraries.gmk
+# HG changeset patch
+# User sgehwolf
+# Date 1537884792 -7200
+# Tue Sep 25 16:13:12 2018 +0200
+# Node ID fd140d7550992267e3f0f08a20b461b2ce9fa740
+# Parent 21056af0d1eabbd04d7a223c01a28320c7010bfe
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
+
+diff --git a/make/lib/SoundLibraries.gmk b/make/lib/SoundLibraries.gmk
--- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
+++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
@@ -140,6 +140,10 @@
@@ -24,10 +33,11 @@ diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
// **********************************
// Make sure you set X_PLATFORM and X_ARCH defines correctly.
-diff -r 1fe56343ecc8 src/solaris/bin/ppc64le/jvm.cfg
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Wed Jan 13 00:18:02 2016 +0000
-@@ -0,0 +1,33 @@
+diff --git a/src/solaris/bin/ppc64le/jvm.cfg b/src/solaris/bin/ppc64le/jvm.cfg
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
+@@ -0,0 +1,34 @@
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
@@ -61,3 +71,28 @@ diff -r 1fe56343ecc8 src/solaris/bin/ppc64le/jvm.cfg
+# and may not be available in a future release.
+#
+-server KNOWN
++-client IGNORE
+diff --git a/test/sun/security/pkcs11/PKCS11Test.java
b/test/sun/security/pkcs11/PKCS11Test.java
+--- openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
++++ openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
+@@ -505,6 +505,8 @@
+ osMap.put("Linux-amd64-64", new String[]{
+ "/usr/lib/x86_64-linux-gnu/",
"/usr/lib/x86_64-linux-gnu/nss/",
+ "/usr/lib64/"});
++ osMap.put("Linux-ppc64-64", new String[]{"/usr/lib64/"});
++ osMap.put("Linux-ppc64le-64", new String[]{"/usr/lib64/"});
+ osMap.put("Windows-x86-32", new String[]{
+ PKCS11_BASE + "/nss/lib/windows-i586/".replace('/',
SEP)});
+ osMap.put("Windows-amd64-64", new String[]{
+diff --git a/test/tools/launcher/Settings.java b/test/tools/launcher/Settings.java
+--- openjdk/jdk/test/tools/launcher/Settings.java
++++ openjdk/jdk/test/tools/launcher/Settings.java
+@@ -74,7 +74,7 @@
+
+ static void runTestOptionDefault() throws IOException {
+ String stackSize = "256"; // in kb
+- if (getArch().equals("ppc64")) {
++ if (getArch().equals("ppc64") ||
getArch().equals("ppc64le")) {
+ stackSize = "800";
+ }
+ TestResult tr = null;
diff --git a/8073139-rh1191652-root.patch b/8073139-rh1191652-root.patch
index 46a9c6f..746529a 100644
--- a/8073139-rh1191652-root.patch
+++ b/8073139-rh1191652-root.patch
@@ -1,20 +1,28 @@
-diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
---- openjdk///common/autoconf/hotspot-spec.gmk.in
-+++ openjdk///common/autoconf/hotspot-spec.gmk.in
-@@ -71,6 +71,10 @@
- LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
- # Set the cpu architecture
- ARCH=$(OPENJDK_TARGET_CPU_ARCH)
-+# ppc64le uses the HotSpot ppc64 build
-+ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
-+ ARCH=ppc64
-+endif
- # Legacy setting for building for a 64 bit machine.
- # If yes then this expands to _LP64:=1
- @LP64@
+# HG changeset patch
+# User sgehwolf
+# Date 1537883922 -7200
+# Tue Sep 25 15:58:42 2018 +0200
+# Node ID 2fabe07c0bd8bf21400313f3bb9b8e80fcb31724
+# Parent 91867683f73de3882ef88981a79995beeeb1e980
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
+
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk/common/autoconf/toolchain.m4
++++ openjdk/common/autoconf/toolchain.m4
+@@ -1125,6 +1125,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
+ else
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
++ fi
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
+ fi
diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
---- openjdk///common/autoconf/jdk-options.m4
-+++ openjdk///common/autoconf/jdk-options.m4
+--- openjdk/common/autoconf/jdk-options.m4
++++ openjdk/common/autoconf/jdk-options.m4
@@ -158,7 +158,7 @@
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
@@ -25,8 +33,8 @@ diff --git a/common/autoconf/jdk-options.m4
b/common/autoconf/jdk-options.m4
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
---- openjdk///common/autoconf/platform.m4
-+++ openjdk///common/autoconf/platform.m4
+--- openjdk/common/autoconf/platform.m4
++++ openjdk/common/autoconf/platform.m4
@@ -67,7 +67,7 @@
VAR_CPU_ENDIAN=big
;;
@@ -36,16 +44,3 @@ diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
-diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -1123,6 +1123,9 @@
- else
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
-+ fi
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
- fi
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f44403e..59445d0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1094,10 +1094,6 @@ Patch106: pr3519.patch
# Patches which need backporting to 8u
#
#############################################
-# S8073139, RH1191652; fix name of ppc64le architecture
-Patch601: 8073139-rh1191652-root.patch
-Patch602: 8073139-rh1191652-jdk.patch
-Patch603: 8073139-rh1191652-hotspot-aarch64.patch
# 8044235: src.zip should include all sources
Patch7: 8044235-include-all-srcs.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
@@ -1193,6 +1189,10 @@ Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
Patch210: 8165852-pr3468.patch
+# S8073139, RH1191652; fix name of ppc64le architecture
+Patch601: 8073139-rh1191652-root.patch
+Patch602: 8073139-rh1191652-jdk.patch
+Patch603: 8073139-rh1191652-hotspot-aarch64.patch
#############################################
#
commit 54b188efb002f57e2154c2aa65f0409fc080ac0d
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Oct 1 14:53:26 2018 +0200
Add missing BRs/Rs.
- libXcomposite is now required since we use upstream
JDK-8150954 patch.
- Add unzip as BR since OpenJDK build requires it.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7f797f9..f44403e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -822,6 +822,9 @@ exit 0
%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
+# Require libXcomposite explicitly since it's only dynamically loaded
+# at runtime. Fixes screenshot issues. See JDK-8150954.
+Requires: libXcomposite%{?_isa}
# Requires rest of java
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
@@ -961,7 +964,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 4%{?dist}
+Release: 5%{?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
@@ -1258,6 +1261,7 @@ BuildRequires: nss-devel
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
+BuildRequires: unzip
# Use OpenJDK 7 where available (on RHEL) to avoid
# having to use the rhel-7.x-java-unsafe-candidate hack
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2280,6 +2284,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
+- Add explicit requirement for libXcomposite which is used when performing
+ screenshots from Java.
+- Add explicit BR unzip required for building OpenJDK.
+
* Thu Sep 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-4
- Add fixes for optimization gaps (annocheck issues):
- 8210761: libjsig is being compiled without optimization
commit 993e704e08309e0982791d8730d84b9704904d00
Merge: 0c4d834 823e8f5
Author: jiri vanek <jvanek(a)fedoraproject.org>
Date: Mon Oct 1 14:11:00 2018 +0000
Merge #24 `Remove obsolete comment wrt debug info.`
commit 823e8f5c66c4ac8336482189209d617dc61db963
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Sep 28 16:29:39 2018 +0200
Remove obsolete comment wrt debug info.
After 1cd817d --with-native-debug-symbols=internal is
being used, which does the desired thing without needing to change
make variables on the command line.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f8f9912..fb3b756 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1754,11 +1754,6 @@ bash ../../configure \
cat spec.gmk
cat hotspot-spec.gmk
-# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
-# disables FDS for all build configs and reverts to pre-FDS make logic.
-# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
-# ignore all the other logic about which debug options and just do '-g'.
-
make \
JAVAC_FLAGS=-g \
LOG=trace \
commit 0c4d834e94662371a2034c1aaad04a5f24d6f11f
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Sep 19 14:06:45 2018 +0200
Fix annocheck optimization issues.
Resolves: RHBZ#1630426
diff --git a/8210416-rh1630426-strict-math-opt.patch
b/8210416-rh1630426-strict-math-opt.patch
new file mode 100644
index 0000000..98bbad0
--- /dev/null
+++ b/8210416-rh1630426-strict-math-opt.patch
@@ -0,0 +1,57 @@
+diff --git openjdk.orig/jdk/make/lib/CoreLibraries.gmk
openjdk/jdk/make/lib/CoreLibraries.gmk
+--- openjdk.orig/jdk/make/lib/CoreLibraries.gmk
++++ openjdk/jdk/make/lib/CoreLibraries.gmk
+@@ -37,21 +37,32 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ endif
+
+ ifeq ($(OPENJDK_TARGET_OS), linux)
+- ifeq ($(OPENJDK_TARGET_CPU), ppc64)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- else ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- else ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- endif
+-endif
+-
+-ifneq ($(OPENJDK_TARGET_OS), macosx)
++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
++ LIBFDLIBM_CFLAGS_LINUX := -ffp-contract=off
+ # Unfortunately, '-ffp-contract' is only available since gcc 4.6. For ppc64le
+ # that's no problem since ppc64le support only appeared in gcc 4.8.3. But on
+ # ppc64 (big endian) we traditionally compiled with gcc 4.3 which only knows
+ # '-mno-fused-madd'. However, that's still not enough to get the float
+ # computations right - we additionally have to supply '-fno-strict-aliasing'.
++ #
++ #
++ ifeq ($(TOOLCHAIN_TYPE), gcc)
++ CC_VER_MAJOR := $(shell $(CC) -dumpversion | cut -d'.' -f1)
++ CC_VER_MINOR := $(shell $(CC) -dumpversion | cut -d'.' -f2)
++ endif
++ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
++ # For other versions we need to explicitly set arch specific machine
++ # flags or keep optimization off.
++ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "0"
++ ifeq ($(OPENJDK_TARGET_CPU), ppc64)
++ LIBFDLIBM_CFLAGS_LINUX := -mno-fused-madd -fno-strict-aliasing
++ else
++ BUILD_LIBFDLIBM_OPTIMIZATION := NONE
++ endif
++ endif
++endif
++
++ifneq ($(OPENJDK_TARGET_OS), macosx)
+ $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
+ STATIC_LIBRARY := fdlibm, \
+ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \
+@@ -62,9 +73,7 @@ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \
+ CFLAGS_windows_debug := -DLOGGING, \
+ CFLAGS_aix := -qfloat=nomaf, \
+- CFLAGS_linux_ppc64 := -mno-fused-madd -fno-strict-aliasing, \
+- CFLAGS_linux_ppc64le := -ffp-contract=off, \
+- CFLAGS_linux_aarch64 := -ffp-contract=off, \
++ CFLAGS_linux := $(LIBFDLIBM_CFLAGS_LINUX), \
+ ARFLAGS := $(ARFLAGS), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
diff --git a/8210425-01-rh1630426-hotspot-opt-fix.patch
b/8210425-01-rh1630426-hotspot-opt-fix.patch
new file mode 100644
index 0000000..0b05ba6
--- /dev/null
+++ b/8210425-01-rh1630426-hotspot-opt-fix.patch
@@ -0,0 +1,83 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/amd64.make
openjdk/hotspot/make/linux/makefiles/amd64.make
+--- openjdk.orig/hotspot/make/linux/makefiles/amd64.make
++++ openjdk/hotspot/make/linux/makefiles/amd64.make
+@@ -22,10 +22,13 @@
+ #
+ #
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
++++ openjdk/hotspot/make/linux/makefiles/gcc.make
+@@ -225,6 +225,16 @@
+ OPT_CFLAGS/SIZE=-Os
+ OPT_CFLAGS/SPEED=-O3
+
++ifeq ($(USE_CLANG),)
++ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
++ # For other versions we need to explicitly set arch specific machine
++ # flags or keep optimization off for them.
++ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "1"
++ OPT_CFLAGS_NO_FMA = -ffp-contract=off
++ endif
++endif
++
++
+ # Hotspot uses very unstrict aliasing turn this optimization off
+ # This option is added to CFLAGS rather than OPT_CFLAGS
+ # so that OPT_CFLAGS overrides get this option too.
+diff --git openjdk.orig/hotspot/make/linux/makefiles/i486.make
openjdk/hotspot/make/linux/makefiles/i486.make
+--- openjdk.orig/hotspot/make/linux/makefiles/i486.make
++++ openjdk/hotspot/make/linux/makefiles/i486.make
+@@ -24,10 +24,13 @@
+
+ # TLS helper, assembled from .s file
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
openjdk/hotspot/make/linux/makefiles/ppc64.make
+--- openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
++++ openjdk/hotspot/make/linux/makefiles/ppc64.make
+@@ -49,3 +49,17 @@
+ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
+ CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple
-mno-string
+ endif
++
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
++ else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ endif
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
++
diff --git a/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
b/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
new file mode 100644
index 0000000..cf1b40b
--- /dev/null
+++ b/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
@@ -0,0 +1,22 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
openjdk/hotspot/make/linux/makefiles/aarch64.make
+index 3d17326..7cdb498 100644
+--- openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
++++ openjdk/hotspot/make/linux/makefiles/aarch64.make
+@@ -22,10 +22,13 @@
+ #
+ #
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
diff --git a/8210647-rh1630426-saproc-opt-fix.patch
b/8210647-rh1630426-saproc-opt-fix.patch
new file mode 100644
index 0000000..0ab09e4
--- /dev/null
+++ b/8210647-rh1630426-saproc-opt-fix.patch
@@ -0,0 +1,23 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -59,6 +59,11 @@
+ SA_DEBUG_CFLAGS = -g
+ endif
+
++# Optimize saproc lib at level -O3 unless it's a slowdebug build
++ifneq ($(DEBUG_LEVEL), slowdebug)
++ SA_OPT_FLAGS = $(OPT_CFLAGS)
++endif
++
+ # if $(AGENT_DIR) does not exist, we don't build SA
+ # also, we don't build SA on Itanium or zero.
+
+@@ -95,6 +100,7 @@
+ $(SASRCFILES) \
+ $(SA_LFLAGS) \
+ $(SA_DEBUG_CFLAGS) \
++ $(SA_OPT_FLAGS) \
+ $(EXTRA_CFLAGS) \
+ -o $@ \
+ -lthread_db
diff --git a/8210761-rh1630426-jsig-opt-fix.patch b/8210761-rh1630426-jsig-opt-fix.patch
new file mode 100644
index 0000000..5f30e59
--- /dev/null
+++ b/8210761-rh1630426-jsig-opt-fix.patch
@@ -0,0 +1,20 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -51,10 +51,15 @@ ifeq ($(DEBUG_BINARIES), true)
+ JSIG_DEBUG_CFLAGS = -g
+ endif
+
++# Optimize jsig lib at level -O3 unless it's a slowdebug build
++ifneq ($(DEBUG_LEVEL), slowdebug)
++ JSIG_OPT_FLAGS = $(OPT_CFLAGS)
++endif
++
+ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
+ @echo Making signal interposition lib...
+ $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
++ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS)
$(EXTRA_CFLAGS) -o $@ $< -ldl
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+ ifeq ($(STRIP_POLICY),all_strip)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f8f9912..7354d35 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -104,8 +104,8 @@
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
-# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
+# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 3%{?dist}
+Release: 4%{?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
@@ -1126,6 +1126,18 @@ Patch576: 8064786-pr3599.patch
Patch577: 8062808-pr3548.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: 8203030-size_t-fixes.patch
+# 8210761: libjsig is being compiled without optimization
+Patch620: 8210761-rh1630426-jsig-opt-fix.patch
+# 8210647: libsaproc is being compiled without optimization
+Patch621: 8210647-rh1630426-saproc-opt-fix.patch
+# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+Patch622: 8210416-rh1630426-strict-math-opt.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Upstream 8u part.
+Patch623: 8210425-01-rh1630426-hotspot-opt-fix.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Aarch64-port 8u local part
+Patch624: 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
#############################################
#
@@ -1613,6 +1625,11 @@ sh %{SOURCE12}
%patch579
%patch580
%patch581
+%patch620
+%patch621
+%patch622
+%patch623
+%patch624
# RPM-only fixes
%patch525
@@ -2268,6 +2285,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Sep 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-4
+- Add fixes for optimization gaps (annocheck issues):
+ - 8210761: libjsig is being compiled without optimization
+ - 8210647: libsaproc is being compiled without optimization
+ - 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+ - 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+ 8u upstream and aarch64/jdk8u upstream versions.
+
* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
- Renamed more patches for clarity:
include-all-srcs.patch => 8044235-include-all-srcs.patch
commit 706e00d456b61ba482108d616522f90edf4053c0
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Sep 28 15:42:55 2018 +0200
Add missing patch file forgotten in 1cd817d.
diff --git a/8207057-pr3613-assembler-debuginfo-root.patch
b/8207057-pr3613-assembler-debuginfo-root.patch
new file mode 100644
index 0000000..7f57c0a
--- /dev/null
+++ b/8207057-pr3613-assembler-debuginfo-root.patch
@@ -0,0 +1,39 @@
+--- openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.783695320 +0200
++++ openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.608695635 +0200
+@@ -814,6 +814,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+
+ C_FLAG_DEPS="-MMD -MF"
+ CXX_FLAG_DEPS="-MMD -MF"
++ # By default don't set any specific assembler debug
++ # info flags for toolchains unless we know they work.
++ # See JDK-8207057.
++ ASFLAGS_DEBUG_SYMBOLS=""
+
+ case $COMPILER_TYPE in
+ CC )
+@@ -842,6 +846,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+ CFLAGS_DEBUG_SYMBOLS="-g1"
+ CXXFLAGS_DEBUG_SYMBOLS="-g1"
+ fi
++ ASFLAGS_DEBUG_SYMBOLS="-g"
+ ;;
+ ossc )
+ #
+@@ -969,6 +974,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+ AC_SUBST(CXX_O_FLAG_NONE)
+ AC_SUBST(C_FLAG_DEPS)
+ AC_SUBST(CXX_FLAG_DEPS)
++ AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
+ ])
+
+ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
+--- openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.324690758 +0200
++++ openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.169691036 +0200
+@@ -414,6 +414,7 @@
+ # Options for generating debug symbols
+ ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
+ CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
++ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
+ CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
+ ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
+ STRIP_POLICY:=@STRIP_POLICY@
commit f275f6232fde42f614471342fd03043d24be35ee
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Sep 26 15:30:29 2018 +0200
Add JDK bug number to some more patch-names.
diff --git a/include-all-srcs.patch b/8044235-include-all-srcs.patch
similarity index 100%
rename from include-all-srcs.patch
rename to 8044235-include-all-srcs.patch
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
b/8073139-rh1191652-hotspot-aarch64.patch
similarity index 100%
rename from java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
rename to 8073139-rh1191652-hotspot-aarch64.patch
diff --git a/java-1.8.0-openjdk-rh1191652-jdk.patch b/8073139-rh1191652-jdk.patch
similarity index 100%
rename from java-1.8.0-openjdk-rh1191652-jdk.patch
rename to 8073139-rh1191652-jdk.patch
diff --git a/java-1.8.0-openjdk-rh1191652-root.patch b/8073139-rh1191652-root.patch
similarity index 100%
rename from java-1.8.0-openjdk-rh1191652-root.patch
rename to 8073139-rh1191652-root.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bf53628..f8f9912 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 2%{?dist}
+Release: 3%{?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
@@ -1092,11 +1092,11 @@ Patch106: pr3519.patch
#
#############################################
# S8073139, RH1191652; fix name of ppc64le architecture
-Patch601: %{name}-rh1191652-root.patch
-Patch602: %{name}-rh1191652-jdk.patch
-Patch603: %{name}-rh1191652-hotspot-aarch64.patch
-# Include all sources in src.zip
-Patch7: include-all-srcs.patch
+Patch601: 8073139-rh1191652-root.patch
+Patch602: 8073139-rh1191652-jdk.patch
+Patch603: 8073139-rh1191652-hotspot-aarch64.patch
+# 8044235: src.zip should include all sources
+Patch7: 8044235-include-all-srcs.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
@@ -2268,6 +2268,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
+- Renamed more patches for clarity:
+ include-all-srcs.patch => 8044235-include-all-srcs.patch
+ java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
8073139-rh1191652-hotspot-aarch64.patch
+ java-1.8.0-openjdk-rh1191652-jdk.patch => 8073139-rh1191652-jdk.patch
+ java-1.8.0-openjdk-rh1191652-root.patch => 8073139-rh1191652-root.patch
+
* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
- Update(s) from upstreamed patches:
- 8036003-dont-add-unnecessary-debug-links.patch =>
commit 1cd817df237f94f6c9b32101a9856fc4497ef700
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Aug 31 18:00:19 2018 +0200
Update patches with latest upstream status.
- Update(s) from upstreamed patches:
- 8036003-dont-add-unnecessary-debug-links.patch =>
8036003-add-with-native-debug-symbols-configure-flag.patch
- rh1176206-jdk.patch =>
8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch =>
Deleted rh1176206-root.patch as thats no longer needed with
upstream 8150954.
- Refreshed 8165852-pr3468.patch from upstream.
- Refreshed 8201495-s390-java-opts.patch from upstream.
- 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
8207057-pr3613-assembler-debuginfo-hotspot.patch and
8207057-pr3613-assembler-debuginfo-root.patch. From JDK 8u
backport.
- Renamed spec-only patch:
pr3183.patch => pr3183-rh1340845-system-crypto-policy.patch
- Renamed java-1.8.0-openjdk-size_t.patch =>
8201495-s390-java-opts.patch
- Moved SunEC provider via system NSS to RPM specific patches section.
- Moved upstream 8u patches to appropriate sections (8u192/8u202).
- Removed rh1214835.patch since it's invalid. See:
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
diff --git a/pr2842-01.patch b/8031668-pr2842-01.patch
similarity index 100%
rename from pr2842-01.patch
rename to 8031668-pr2842-01.patch
diff --git a/8036003-add-with-native-debug-symbols-configure-flag.patch
b/8036003-add-with-native-debug-symbols-configure-flag.patch
new file mode 100644
index 0000000..b7b8a05
--- /dev/null
+++ b/8036003-add-with-native-debug-symbols-configure-flag.patch
@@ -0,0 +1,249 @@
+
+# HG changeset patch
+# User sgehwolf
+# Date 1531824954 -7200
+# Node ID 19e8754f5415cdda79904b9f21a4b8981505cb78
+# Parent 1380ce862bbd0b65c619bfcea454d612b240e332
+8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
+Reviewed-by: erikj
+
+diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/jdk-options.m4
+--- openjdk/common/autoconf/jdk-options.m4 Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/common/autoconf/jdk-options.m4 Tue Jul 17 12:55:54 2018 +0200
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2011, 2018, 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
+@@ -606,11 +606,88 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
+
+ if test "x${enable_zip_debug_info}" = "xno"; then
+ ZIP_DEBUGINFO_FILES=false
++ elif test "x${enable_zip_debug_info}" = "xyes"; then
++ ZIP_DEBUGINFO_FILES=true
++ fi
++
++ #
++ # NATIVE_DEBUG_SYMBOLS
++ # This must be done after the toolchain is setup, since we're looking at objcopy.
++ # In addition, this must be done after ENABLE_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES
++ # checking in order to preserve backwards compatibility post JDK-8207234.
++ #
++ AC_MSG_CHECKING([what type of native debug symbols to use (this will override previous
settings)])
++ AC_ARG_WITH([native-debug-symbols],
++ [AS_HELP_STRING([--with-native-debug-symbols],
++ [set the native debug symbol configuration (none, internal, external, zipped)
@<:@varying@:>@])],
++ [
++ if test "x$OPENJDK_TARGET_OS" = xaix; then
++ if test "x$with_native_debug_symbols" = xexternal || test
"x$with_native_debug_symbols" = xzipped; then
++ AC_MSG_ERROR([AIX only supports the parameters 'none' and
'internal' for --with-native-debug-symbols])
++ fi
++ fi
++ ],
++ [
++ # Default to unset for backwards compatibility
++ with_native_debug_symbols=""
++ ])
++ NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols
++ if test "x$NATIVE_DEBUG_SYMBOLS" = x; then
++ AC_MSG_RESULT([not specified])
+ else
++ AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS])
++ fi
++ # Default is empty
++ DEBUG_BINARIES=
++ # Default is min_strip. Possible values are min_strip, all_strip, no_strip
++ STRIP_POLICY=min_strip
++
++ if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then
++
++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
++ if test "x$OBJCOPY" = x; then
++ # enabling of enable-debug-symbols and can't find objcopy
++ # this is an error
++ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
++ fi
++ fi
++
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=min_strip
+ ZIP_DEBUGINFO_FILES=true
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
++ ENABLE_DEBUG_SYMBOLS=false
++ STRIP_POLICY=min_strip
++ ZIP_DEBUGINFO_FILES=false
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=no_strip
++ ZIP_DEBUGINFO_FILES=false
++ POST_STRIP_CMD=
++ DEBUG_BINARIES=true
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
++
++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
++ if test "x$OBJCOPY" = x; then
++ # enabling of enable-debug-symbols and can't find objcopy
++ # this is an error
++ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
++ fi
++ fi
++
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=min_strip
++ ZIP_DEBUGINFO_FILES=false
++ elif test "x$NATIVE_DEBUG_SYMBOLS" != x; then
++ AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
++ else
++ AC_MSG_NOTICE([--with-native-debug-symbols not specified. Using values from
--disable-debug-symbols and --disable-zip-debug-info])
+ fi
+
+ AC_SUBST(ENABLE_DEBUG_SYMBOLS)
++ AC_SUBST(STRIP_POLICY)
++ AC_SUBST(POST_STRIP_CMD)
++ AC_SUBST(DEBUG_BINARIES)
+ AC_SUBST(ZIP_DEBUGINFO_FILES)
+ AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
+ AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
+diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/spec.gmk.in
+--- openjdk/common/autoconf/spec.gmk.in Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/common/autoconf/spec.gmk.in Tue Jul 17 12:55:54 2018 +0200
+@@ -416,6 +416,8 @@
+ CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
+ CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
+ ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
++STRIP_POLICY:=@STRIP_POLICY@
++DEBUG_BINARIES:=@DEBUG_BINARIES@
+
+ #
+ # Compress (or not) jars
+diff -r 1380ce862bbd -r 19e8754f5415 make/common/NativeCompilation.gmk
+--- openjdk/make/common/NativeCompilation.gmk Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/make/common/NativeCompilation.gmk Tue Jul 17 12:55:54 2018 +0200
+@@ -260,6 +260,10 @@
+ $1_CC:=$(CC)
+ endif
+
++ ifeq ($$($1_STRIP_POLICY),)
++ $1_STRIP_POLICY:=$$(STRIP_POLICY)
++ endif
++
+ # Make sure the dirs exist.
+ $$(eval $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR)))
+ $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to
SetupNativeCompilation $1 contains missing directory $$d)))
+@@ -455,28 +459,34 @@
+ ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
+ ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
+- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
+- # empty section headers until a fixed $(OBJCOPY) is available.
+- # An empty section header has sh_addr == 0 and sh_size == 0.
+- # This problem has only been seen on Solaris X64, but we call this tool
+- # on all Solaris builds just in case.
+- #
+- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ # gobjcopy crashes on "empty" section headers with the
SHF_ALLOC flag set.
++ # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
++ # empty section headers until a fixed $(OBJCOPY) is available.
++ # An empty section header has sh_addr == 0 and sh_size == 0.
++ # This problem has only been seen on Solaris X64, but we call this tool
++ # on all Solaris builds just in case.
++ #
++ # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
++ # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
++ $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
+ $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+ $(RM) $$@
+ $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
++ endif
+ else # not solaris
+- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
+ $(RM) $$@
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
++ endif
+ endif # Touch to not retrigger rule on rebuild
++ ifneq ($$($1_STRIP_POLICY), no_strip)
+ $(TOUCH) $$@
++ endif
+ endif # !windows
+ endif # !macosx
+
+@@ -500,7 +510,9 @@
+ $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
+ $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
+ else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
+- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
++ endif
+ endif
+ endif
+ endif
+@@ -539,28 +551,34 @@
+ ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
+ ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
+- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
+- # empty section headers until a fixed $(OBJCOPY) is available.
+- # An empty section header has sh_addr == 0 and sh_size == 0.
+- # This problem has only been seen on Solaris X64, but we call this tool
+- # on all Solaris builds just in case.
+- #
+- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ # gobjcopy crashes on "empty" section headers with the
SHF_ALLOC flag set.
++ # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
++ # empty section headers until a fixed $(OBJCOPY) is available.
++ # An empty section header has sh_addr == 0 and sh_size == 0.
++ # This problem has only been seen on Solaris X64, but we call this tool
++ # on all Solaris builds just in case.
++ #
++ # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
++ # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
++ $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
+ $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+ $(RM) $$@
+ $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
++ endif
+ else # not solaris
+- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
+ $(RM) $$@
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
++ endif
+ endif
++ ifneq ($$($1_STRIP_POLICY), no_strip)
+ $(TOUCH) $$@
++ endif
+ endif # !windows
+ endif # !macosx
+
+@@ -584,7 +602,9 @@
+ $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \
+ $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb
+ else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
+- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
++ endif
+ endif
+ endif
+ endif
+
diff --git a/pr2842-02.patch b/8148351-pr2842-02.patch
similarity index 100%
rename from pr2842-02.patch
rename to 8148351-pr2842-02.patch
diff --git a/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
b/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
new file mode 100644
index 0000000..8b62ae6
--- /dev/null
+++ b/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
@@ -0,0 +1,160 @@
+
+# HG changeset patch
+# User neugens
+# Date 1532089120 -7200
+# Node ID 7b30bb9b05bd2e8045bc693ea5be353ce6326396
+# Parent 3d8011a1e02179e5658110981e30274c605ceac8
+8150954: Taking screenshots on x11 composite desktop produce wrong result
+Summary: The AWT Robot X11 code that takes screenshots uses the default root window,
which may not contain the final composited desktop.
+Reviewed-by: alexsch, ssadetsky, prr, dbuck
+
+diff -r 3d8011a1e021 -r 7b30bb9b05bd make/mapfiles/libawt_xawt/mapfile-vers
+--- openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Thu Jul 19 03:31:37 2018 +0100
++++ openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Fri Jul 20 14:18:40 2018 +0200
+@@ -158,6 +158,7 @@
+ Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
+ Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
+ Java_sun_awt_X11_XRobotPeer_setup;
++ Java_sun_awt_X11_XRobotPeer_loadNativeLibraries;
+ Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl;
+ Java_java_awt_Component_initIDs;
+ Java_java_awt_Container_initIDs;
+diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/classes/sun/awt/X11/XRobotPeer.java
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Thu Jul 19 03:31:37 2018
+0100
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Fri Jul 20 14:18:40 2018
+0200
+@@ -34,6 +34,10 @@
+
+ class XRobotPeer implements RobotPeer {
+
++ static {
++ loadNativeLibraries();
++ }
++
+ private X11GraphicsConfig xgc = null;
+ /*
+ * native implementation uses some static shared data (pipes, processes)
+@@ -98,4 +102,5 @@
+ private static native synchronized void keyReleaseImpl(int keycode);
+
+ private static native synchronized void getRGBPixelsImpl(X11GraphicsConfig xgc, int
x, int y, int width, int height, int pixelArray[]);
++ private static native void loadNativeLibraries();
+ }
+diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/native/sun/awt/awt_Robot.c
+--- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Thu Jul 19 03:31:37 2018 +0100
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Fri Jul 20 14:18:40 2018 +0200
+@@ -27,6 +27,9 @@
+ #error This file should not be included in headless library
+ #endif
+
++#include "jvm_md.h"
++#include <dlfcn.h>
++
+ #include "awt_p.h"
+ #include "awt_GraphicsEnv.h"
+ #define XK_MISCELLANY
+@@ -49,11 +52,46 @@
+ #include <sys/socket.h>
+ #endif
+
++static Bool (*compositeQueryExtension) (Display*, int*, int*);
++static Status (*compositeQueryVersion) (Display*, int*, int*);
++static Window (*compositeGetOverlayWindow) (Display *, Window);
++
+ extern struct X11GraphicsConfigIDs x11GraphicsConfigIDs;
+
+ static jint * masks;
+ static jint num_buttons;
+
++static void *xCompositeHandle;
++
++static const char* XCOMPOSITE = JNI_LIB_NAME("Xcomposite");
++static const char* XCOMPOSITE_VERSIONED = VERSIONED_JNI_LIB_NAME("Xcomposite",
"1");
++
++static Bool checkXCompositeFunctions(void) {
++ return (compositeQueryExtension != NULL &&
++ compositeQueryVersion != NULL &&
++ compositeGetOverlayWindow != NULL);
++}
++
++static void initXCompositeFunctions(void) {
++
++ if (xCompositeHandle == NULL) {
++ xCompositeHandle = dlopen(XCOMPOSITE, RTLD_LAZY | RTLD_GLOBAL);
++ if (xCompositeHandle == NULL) {
++ xCompositeHandle = dlopen(XCOMPOSITE_VERSIONED, RTLD_LAZY | RTLD_GLOBAL);
++ }
++ }
++ //*(void **)(&asyncGetCallTraceFunction)
++ if (xCompositeHandle != NULL) {
++ *(void **)(&compositeQueryExtension) = dlsym(xCompositeHandle,
"XCompositeQueryExtension");
++ *(void **)(&compositeQueryVersion) = dlsym(xCompositeHandle,
"XCompositeQueryVersion");
++ *(void **)(&compositeGetOverlayWindow) = dlsym(xCompositeHandle,
"XCompositeGetOverlayWindow");
++ }
++
++ if (xCompositeHandle && !checkXCompositeFunctions()) {
++ dlclose(xCompositeHandle);
++ }
++}
++
+ static int32_t isXTestAvailable() {
+ int32_t major_opcode, first_event, first_error;
+ int32_t event_basep, error_basep, majorp, minorp;
+@@ -88,6 +126,35 @@
+ return isXTestAvailable;
+ }
+
++static Bool hasXCompositeOverlayExtension(Display *display) {
++
++ int xoverlay = False;
++ int eventBase, errorBase;
++ if (checkXCompositeFunctions() &&
++ compositeQueryExtension(display, &eventBase, &errorBase))
++ {
++ int major = 0;
++ int minor = 0;
++
++ compositeQueryVersion(display, &major, &minor);
++ if (major > 0 || minor >= 3) {
++ xoverlay = True;
++ }
++ }
++
++ return xoverlay;
++}
++
++static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
++
++ char NET_WM_CM_Sn[25];
++ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
++
++ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
++ Window owner = XGetSelectionOwner(display, managerSelection);
++
++ return owner != 0;
++}
+
+ static XImage *getWindowImage(Display * display, Window window,
+ int32_t x, int32_t y,
+@@ -232,6 +299,12 @@
+ DASSERT(adata != NULL);
+
+ rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
++ if (hasXCompositeOverlayExtension(awt_display) &&
++ isXCompositeDisplay(awt_display, adata->awt_visInfo.screen))
++ {
++ rootWindow = compositeGetOverlayWindow(awt_display, rootWindow);
++ }
++
+ image = getWindowImage(awt_display, rootWindow, x, y, width, height);
+
+ /* Array to use to crunch around the pixel values */
+@@ -412,3 +485,8 @@
+
+ AWT_UNLOCK();
+ }
++
++JNIEXPORT void JNICALL
++Java_sun_awt_X11_XRobotPeer_loadNativeLibraries (JNIEnv *env, jclass cls) {
++ initXCompositeFunctions();
++}
+
diff --git a/8165852-pr3468.patch b/8165852-pr3468.patch
new file mode 100644
index 0000000..6be87a7
--- /dev/null
+++ b/8165852-pr3468.patch
@@ -0,0 +1,87 @@
+
+# HG changeset patch
+# User bpb
+# Date 1515783982 28800
+# Node ID b8843bca95b5e0eed5bbb4dc195c89c727c7aede
+# Parent 61d7ce442d95f5f30c84037a50cf6361bf7c37e1
+8165852: (fs) Mount point not found for a file which is present in overlayfs
+Summary: Check /proc/mounts when the device ID boundary is reached
+Reviewed-by: alanb
+
+diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileStore.java
+--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Tue Jul 24 05:10:45
2018 -0400
++++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Fri Jan 12 11:06:22
2018 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2008, 2018, 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
+@@ -66,6 +66,8 @@
+ }
+
+ // step 2: find mount point
++ List<UnixMountEntry> procMountsEntries =
++ fs.getMountEntries("/proc/mounts");
+ UnixPath parent = path.getParent();
+ while (parent != null) {
+ UnixFileAttributes attrs = null;
+@@ -74,16 +76,23 @@
+ } catch (UnixException x) {
+ x.rethrowAsIOException(parent);
+ }
+- if (attrs.dev() != dev())
+- break;
++ if (attrs.dev() != dev()) {
++ // step 3: lookup mounted file systems (use /proc/mounts to
++ // ensure we find the file system even when not in /etc/mtab)
++ byte[] dir = path.asByteArray();
++ for (UnixMountEntry entry : procMountsEntries) {
++ if (Arrays.equals(dir, entry.dir()))
++ return entry;
++ }
++ }
+ path = parent;
+ parent = parent.getParent();
+ }
+
+- // step 3: lookup mounted file systems (use /proc/mounts to ensure we
+- // find the file system even when not in /etc/mtab)
++ // step 3: lookup mounted file systems (use /proc/mounts to
++ // ensure we find the file system even when not in /etc/mtab)
+ byte[] dir = path.asByteArray();
+- for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts")) {
++ for (UnixMountEntry entry : procMountsEntries) {
+ if (Arrays.equals(dir, entry.dir()))
+ return entry;
+ }
+diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
+--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Tue Jul 24 05:10:45
2018 -0400
++++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Fri Jan 12 11:06:22
2018 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2008, 2018, 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
+@@ -75,7 +75,7 @@
+ /**
+ * Returns object to iterate over the mount entries in the given fstab file.
+ */
+- Iterable<UnixMountEntry> getMountEntries(String fstab) {
++ List<UnixMountEntry> getMountEntries(String fstab) {
+ ArrayList<UnixMountEntry> entries = new ArrayList<>();
+ try {
+ long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r"));
+@@ -101,7 +101,7 @@
+ * Returns object to iterate over the mount entries in /etc/mtab
+ */
+ @Override
+- Iterable<UnixMountEntry> getMountEntries() {
++ List<UnixMountEntry> getMountEntries() {
+ return getMountEntries("/etc/mtab");
+ }
+
+
diff --git a/8201495-s390-java-opts.patch b/8201495-s390-java-opts.patch
new file mode 100644
index 0000000..d42d05b
--- /dev/null
+++ b/8201495-s390-java-opts.patch
@@ -0,0 +1,21 @@
+
+# HG changeset patch
+# User sgehwolf
+# Date 1525428026 -3600
+# Node ID 7129b977c4af021b1c9bbd7bbd334677213940d4
+# Parent 888144400d978e40a004dd8b908025a31135c092
+8201495: [Zero] Reduce limits of max heap size for boot JDK on s390
+Reviewed-by: andrew
+
+diff -r 888144400d97 -r 7129b977c4af common/autoconf/boot-jdk.m4
+--- openjdk.orig/common/autoconf/boot-jdk.m4 Thu Apr 19 03:58:58 2018 -0700
++++ openjdk/common/autoconf/boot-jdk.m4 Fri May 04 11:00:26 2018 +0100
+@@ -334,7 +334,7 @@
+ # Maximum amount of heap memory.
+ # Maximum stack size.
+ if test "x$BOOT_JDK_BITS" = x32; then
+- JVM_MAX_HEAP=1100M
++ JVM_MAX_HEAP=768M
+ STACK_SIZE=768
+ else
+ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git a/java-1.8.0-openjdk-size_t.patch b/8203030-size_t-fixes.patch
similarity index 100%
rename from java-1.8.0-openjdk-size_t.patch
rename to 8203030-size_t-fixes.patch
diff --git a/pr3539-rh1548475.patch b/8205104-pr3539-rh1548475.patch
similarity index 100%
rename from pr3539-rh1548475.patch
rename to 8205104-pr3539-rh1548475.patch
diff --git a/8207057-pr3613-assembler-debuginfo-hotspot.patch
b/8207057-pr3613-assembler-debuginfo-hotspot.patch
new file mode 100644
index 0000000..c61d972
--- /dev/null
+++ b/8207057-pr3613-assembler-debuginfo-hotspot.patch
@@ -0,0 +1,13 @@
+--- openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.933127667 +0200
++++ openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.831127850 +0200
+@@ -184,6 +184,10 @@
+ LFLAGS += $(ARCHFLAG)
+ ASFLAGS += $(ARCHFLAG)
+
++ifeq ($(DEBUG_BINARIES), true)
++ ASFLAGS += $(ASFLAGS_DEBUG_SYMBOLS)
++endif
++
+ # Use C++ Interpreter
+ ifdef CC_INTERP
+ CFLAGS += -DCC_INTERP
diff --git a/8207057-pr3613-hotspot-assembler-debuginfo.patch
b/8207057-pr3613-hotspot-assembler-debuginfo.patch
deleted file mode 100644
index 61f493d..0000000
--- a/8207057-pr3613-hotspot-assembler-debuginfo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Make the assembler generate whatever debuginfo it can
---- openjdk/hotspot/make/linux/makefiles/rules.make
-+++ openjdk/hotspot/make/linux/makefiles/rules.make
-@@ -34,7 +34,7 @@
- CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
- CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
-
--AS.S = $(AS) $(ASFLAGS)
-+AS.S = $(AS) -g $(ASFLAGS)
-
- COMPILE.CC = $(CC_COMPILE) -c
- GENASM.CC = $(CC_COMPILE) -S
-@@ -161,12 +161,12 @@
- %.o: %.s
- @echo Assembling $<
- $(QUIETLY) $(REMOVE_TARGET)
-- $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
-+ $(QUIETLY) $(AS.S) -g $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
-
- %.o: %.S
- @echo Assembling $<
- $(QUIETLY) $(REMOVE_TARGET)
-- $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
-+ $(COMPILE.CC) -g -o $@ $< $(COMPILE_DONE)
-
- %.s: %.cpp
- @echo Generating assembly for $<
diff --git a/8207234-dont-add-unnecessary-debug-links.patch
b/8207234-dont-add-unnecessary-debug-links.patch
deleted file mode 100644
index 9c29e6b..0000000
--- a/8207234-dont-add-unnecessary-debug-links.patch
+++ /dev/null
@@ -1,77 +0,0 @@
---- openjdk/make/common/NativeCompilation.gmk
-+++ openjdk/make/common/NativeCompilation.gmk
-@@ -437,29 +437,6 @@
-
- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
-- ifeq ($(OPENJDK_TARGET_OS), solaris)
-- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
-- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-- # empty section headers until a fixed $(OBJCOPY) is available.
-- # An empty section header has sh_addr == 0 and sh_size == 0.
-- # This problem has only been seen on Solaris X64, but we call this tool
-- # on all Solaris builds just in case.
-- #
-- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
-- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
-- $(RM) $$@
-- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
-- $(OBJCOPY) --only-keep-debug $$< $$@
-- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
-- else # not solaris
-- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
-- $(RM) $$@
-- $(OBJCOPY) --only-keep-debug $$< $$@
-- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
-- endif # Touch to not retrigger rule on rebuild
-- $(TOUCH) $$@
- endif # !windows
- endif # !macosx
-
-@@ -483,7 +460,6 @@
- $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
- $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
-- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
- endif
- endif
- endif
-@@ -522,28 +498,8 @@
- ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
- ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
- ifeq ($(OPENJDK_TARGET_OS), solaris)
-- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
-- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
-- # empty section headers until a fixed $(OBJCOPY) is available.
-- # An empty section header has sh_addr == 0 and sh_size == 0.
-- # This problem has only been seen on Solaris X64, but we call this tool
-- # on all Solaris builds just in case.
-- #
-- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
-- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
-- $(RM) $$@
-- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
-- $(OBJCOPY) --only-keep-debug $$< $$@
-- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
- else # not solaris
-- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
-- $(RM) $$@
-- $(OBJCOPY) --only-keep-debug $$< $$@
-- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
- endif
-- $(TOUCH) $$@
- endif # !windows
- endif # !macosx
-
-@@ -567,7 +523,6 @@
- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \
- $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb
- else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
-- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
- endif
- endif
- endif
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
deleted file mode 100644
index e2a4313..0000000
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- openjdk.orig/common/autoconf/boot-jdk.m4 2016-01-21 18:33:47.586288044 +0000
-+++ openjdk/common/autoconf/boot-jdk.m4 2016-02-05 15:56:09.012242707 +0000
-@@ -1,5 +1,6 @@
- #
- # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-+# Copyright 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
-@@ -303,6 +323,9 @@
-
- AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
- [
-+ # Ensure OPENJDK_TARGET_CPU_ARCH has been setup
-+ AC_REQUIRE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET])
-+
- ##############################################################################
- #
- # Specify options for anything that is run with the Boot JDK.
-@@ -325,16 +348,23 @@
- JAVA_FLAGS=$boot_jdk_jvmargs
- AC_SUBST(JAVA_FLAGS)
-
--
- AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
-
- # Starting amount of heap memory.
-- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
-+ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
-+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
-+ else
-+ ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
-+ fi
-
- # Maximum amount of heap memory.
- # Maximum stack size.
- if test "x$BOOT_JDK_BITS" = x32; then
-- JVM_MAX_HEAP=1100M
-+ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
-+ JVM_MAX_HEAP=768M
-+ else
-+ JVM_MAX_HEAP=1100M
-+ fi
- STACK_SIZE=768
- else
- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4d04da2..bf53628 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 1%{?dist}
+Release: 2%{?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
@@ -1039,21 +1039,7 @@ Source101: config.sub
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
-Patch3: java-atk-wrapper-security.patch
-
-#############################################
-#
-# Upstreamable patches
-#
-#############################################
-# PR2737: Allow multiple initialization of PKCS11 libraries
-Patch5: multiple-pkcs11-library-init.patch
-# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
-Patch504: rh1163501.patch
-# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
-Patch511: rh1214835.patch
-# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
-Patch512: no_strict_overflow.patch
+Patch3: java-atk-wrapper-security.patch
# Support for building the SunEC provider with the system NSS installation
# PR1983: Support using the system installation of NSS with the SunEC provider
# PR2127: SunEC provider crashes when built using system NSS
@@ -1068,10 +1054,20 @@ 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
-Patch509: rh1176206-root.patch
+# PR3183, RH1340845: Support Fedora/RHEL system crypto policy
+Patch300: pr3183-rh1340845-system-crypto-policy.patch
+
+#############################################
+#
+# Upstreamable patches
+#
+#############################################
+# PR2737: Allow multiple initialization of PKCS11 libraries
+Patch5: multiple-pkcs11-library-init.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
+Patch504: rh1163501.patch
+# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
+Patch512: no_strict_overflow.patch
# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
@@ -1080,23 +1076,9 @@ Patch528: pr3083-rh1346460.patch
Patch529: rh1566890_embargoed20180521.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530: pr3601.patch
-# PR3183: Support Fedora/RHEL system crypto policy
-Patch300: pr3183.patch
-
-#############################################
-#
-# Upstreamable debugging patches
-#
-#############################################
-# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
-# 8207234: More libraries with .gnu_debuglink sections added unconditionally
-Patch205: 8207234-dont-add-unnecessary-debug-links.patch
# Arch-specific upstreamable patches
-# s390: PR2415: JVM -Xmx requirement is too high on s390
-Patch100: %{name}-s390-java-opts.patch
-# s390: Type fixing for s390
-Patch102: %{name}-size_t.patch
+
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: pr3593-s390-size_t_format_flags.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
@@ -1115,10 +1097,6 @@ Patch602: %{name}-rh1191652-jdk.patch
Patch603: %{name}-rh1191652-hotspot-aarch64.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
-# 8035341: Allow using a system installed libpng
-Patch202: system-libpng.patch
-# 8042159: Allow using a system-installed lcms2
-Patch203: system-lcms.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
@@ -1146,8 +1124,8 @@ Patch575: 8197981-pr3548.patch
Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
-# 8207057, PR3613: Enable debug information for assembly code files
-Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
+# s390: JDK-8203030, Type fixing for s390
+Patch102: 8203030-size_t-fixes.patch
#############################################
#
@@ -1155,9 +1133,9 @@ Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
#
#############################################
# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Patch506: pr2842-01.patch
+Patch506: 8031668-pr2842-01.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Patch507: pr2842-02.patch
+Patch507: 8148351-pr2842-02.patch
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
@@ -1165,7 +1143,7 @@ Patch538: 8061305-pr3335-rh1423421.patch
# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
Patch560: 8188030-pr3459-rh1484079.patch
# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-Patch562: pr3539-rh1548475.patch
+Patch562: 8205104-pr3539-rh1548475.patch
# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
Patch565: 8185723-pr3553.patch
# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
@@ -1180,8 +1158,26 @@ Patch579: 8203182-pr3603-rh1568033.patch
Patch580: 8206406-pr3610-rh1597825.patch
# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
Patch581: 8146115-pr3508-rh1463098.patch
+# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
Patch204: 8206425-hotspot-remove-debuglink.patch
+# 8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
+Patch205: 8036003-add-with-native-debug-symbols-configure-flag.patch
+# s390: JDK-8201495, PR2415: JVM -Xmx requirement is too high on s390
+Patch100: 8201495-s390-java-opts.patch
+
+#############################################
+#
+# Patches appearing in 8u202
+#
+#############################################
+# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
+Patch508: 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
+# 8207057, PR3613: Enable debug information for assembly code files
+Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
+Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
+# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
+Patch210: 8165852-pr3468.patch
#############################################
#
@@ -1190,6 +1186,10 @@ Patch204: 8206425-hotspot-remove-debuglink.patch
#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
+# 8035341: Allow using a system installed libpng
+Patch202: system-libpng.patch
+# 8042159: Allow using a system-installed lcms2
+Patch203: system-lcms.patch
#############################################
#
@@ -1546,6 +1546,8 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
+%patch207
+%patch210
%patch300
@@ -1576,8 +1578,6 @@ sh %{SOURCE12}
%patch506
%patch507
%patch508
-%patch509
-%patch511
%patch512
%patch513
%patch514
@@ -1727,7 +1727,7 @@ bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
- --disable-zip-debug-info \
+ --with-native-debug-symbols=internal \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
@@ -1760,10 +1760,7 @@ cat hotspot-spec.gmk
# ignore all the other logic about which debug options and just do '-g'.
make \
- DEBUG_BINARIES=true \
JAVAC_FLAGS=-g \
- STRIP_POLICY=no_strip \
- POST_STRIP_CMD="" \
LOG=trace \
SCTP_WERROR= \
%{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs
cat && false )
@@ -2271,6 +2268,31 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
+- Update(s) from upstreamed patches:
+ - 8036003-dont-add-unnecessary-debug-links.patch =>
+ 8036003-add-with-native-debug-symbols-configure-flag.patch
+ - rh1176206-jdk.patch =>
+ 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch =>
+ Deleted rh1176206-root.patch as thats no longer needed with
+ upstream 8150954.
+ - Refreshed 8165852-pr3468.patch from upstream.
+ - Refreshed 8201495-s390-java-opts.patch from upstream.
+ - 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
+ 8207057-pr3613-assembler-debuginfo-hotspot.patch and
+ 8207057-pr3613-assembler-debuginfo-root.patch. From JDK 8u
+ review.
+- Renamed pr2842-02.patch => 8148351-pr2842-02.patch.
+- Renamed spec-only patch:
+ pr3183.patch => pr3183-rh1340845-system-crypto-policy.patch
+- Renamed java-1.8.0-openjdk-size_t.patch =>
+ 8201495-s390-java-opts.patch
+- Moved SunEC provider via system NSS to RPM specific patches section.
+- Moved upstream 8u patches to appropriate sections (8u192/8u202).
+- Removed rh1214835.patch since it's invalid. See:
+
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
+- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
+
* Tue Sep 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b15-1
- fixed unexpanded arch in policy tool desktop file
- fixed versions (8->1.8.0) of images used in desktop files
diff --git a/pr3183.patch b/pr3183-rh1340845-system-crypto-policy.patch
similarity index 100%
rename from pr3183.patch
rename to pr3183-rh1340845-system-crypto-policy.patch
diff --git a/rh1176206-jdk.patch b/rh1176206-jdk.patch
deleted file mode 100644
index 23b8e52..0000000
--- a/rh1176206-jdk.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.497484904 +0100
-+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.402486574 +0100
-@@ -618,7 +618,7 @@
- XRSurfaceData.c \
- XRBackendNative.c
-
-- LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst
-lXi -ljava -ljvm -lc
-+ LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender -lXcomposite
$(LIBDL) -lXtst -lXi -ljava -ljvm -lc
-
- ifeq ($(OPENJDK_TARGET_OS), linux)
- # To match old build, add this to LDFLAGS instead of suffix.
---- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.777479982
+0100
-+++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.677481740
+0100
-@@ -38,6 +38,7 @@
- #include <X11/extensions/XTest.h>
- #include <X11/extensions/XInput.h>
- #include <X11/extensions/XI.h>
-+#include <X11/extensions/Xcomposite.h>
- #include <jni.h>
- #include <sizecalc.h>
- #include "robot_common.h"
-@@ -88,6 +89,32 @@
- return isXTestAvailable;
- }
-
-+static Bool hasXCompositeOverlayExtension(Display *display) {
-+
-+ int xoverlay = False;
-+ int eventBase, errorBase;
-+ if (XCompositeQueryExtension(display, &eventBase, &errorBase)) {
-+ int major = 0;
-+ int minor = 0;
-+
-+ XCompositeQueryVersion(display, &major, &minor);
-+ if (major > 0 || minor >= 3)
-+ xoverlay = True;
-+ }
-+
-+ return xoverlay;
-+}
-+
-+static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
-+
-+ char NET_WM_CM_Sn[25];
-+ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
-+
-+ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
-+ Window owner = XGetSelectionOwner(display, managerSelection);
-+
-+ return owner != 0;
-+}
-
- static XImage *getWindowImage(Display * display, Window window,
- int32_t x, int32_t y,
-@@ -232,6 +259,12 @@
- DASSERT(adata != NULL);
-
- rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
-+ if (isXCompositeDisplay(awt_display, adata->awt_visInfo.screen) &&
-+ hasXCompositeOverlayExtension(awt_display))
-+ {
-+ rootWindow = XCompositeGetOverlayWindow(awt_display, rootWindow);
-+ }
-+
- image = getWindowImage(awt_display, rootWindow, x, y, width, height);
-
- /* Array to use to crunch around the pixel values */
diff --git a/rh1176206-root.patch b/rh1176206-root.patch
deleted file mode 100644
index db1061c..0000000
--- a/rh1176206-root.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.542747800 +0100
-+++ openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.500748539 +0100
-@@ -112,7 +112,7 @@
- pulse)
- PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
- x11)
-- PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev" ;;
-+ PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev libXcomposite-dev" ;;
- ccache)
- PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
- esac
---- openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.716744742 +0100
-+++ openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.675745462 +0100
-@@ -153,7 +153,7 @@
- CFLAGS="$CFLAGS $X_CFLAGS"
-
- # Need to include Xlib.h and Xutil.h to avoid "present but cannot be
compiled" warnings on Solaris 10
-- AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h],
-+ AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h X11/extensions/Xcomposite.h],
- [X11_A_OK=yes],
- [X11_A_OK=no; break],
- [
-@@ -167,7 +167,7 @@
-
- if test "x$X11_A_OK" = xno && test "x$X11_NOT_NEEDED" !=
xyes; then
- HELP_MSG_MISSING_DEPENDENCY([x11])
-- AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h
Intrinsic.h). $HELP_MSG])
-+ AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h Intrinsic.h
Xcomposite.h). $HELP_MSG])
- fi
-
- AC_SUBST(X_CFLAGS)
diff --git a/rh1214835.patch b/rh1214835.patch
deleted file mode 100644
index eba79a6..0000000
--- a/rh1214835.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1429893959 -3600
-# Fri Apr 24 17:45:59 2015 +0100
-# Node ID 6e3f4784affc0de360d763ad69979690b2650a98
-# Parent 75acb9c0991bc118463debed137d38ce40358bc0
-4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
-
-diff -r 75acb9c0991b -r 6e3f4784affc src/share/demo/jvmti/hprof/hprof_init.c
---- openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Thu Jun 04 18:00:35 2015 +0100
-+++ openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Fri Apr 24 17:45:59 2015 +0100
-@@ -1361,7 +1361,7 @@
- } rawMonitorExit(gdata->dump_lock);
-
- /* Dump everything if we need to */
-- if (gdata->dump_on_exit && need_to_dump) {
-+ if (gdata->dump_on_exit || need_to_dump) {
-
- dump_all_data(env);
- }
commit 95d132a01b8a2fa00eededfa4603c35418766e80
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Sep 11 11:25:49 2018 +0200
fixed unexpanded arch in policy tool desktop file, fixed versions (8->1.8.0) of
images used in desktop files
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5c33e7d..4d04da2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 0%{?dist}
+Release: 1%{?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
@@ -1666,7 +1666,7 @@ for file in %{SOURCE9} %{SOURCE10} ; do
sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
- sed -i -e "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_MAJOR_VERSION@:%{javaver}:g" $OUTPUT_FILE
sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
done
done
@@ -2271,6 +2271,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Sep 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b15-1
+- fixed unexpanded arch in policy tool desktop file
+- fixed versions (8->1.8.0) of images used in desktop files
+
* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
- Adjust system jpeg patch, system-libjpeg.patch, so as to filter
-Wl,--as-needed. Resolves RHBZ#1622186.
diff --git a/policytool.desktop.in b/policytool.desktop.in
index e05969d..e38c0ec 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,6 +1,6 @@
[Desktop Entry]
-Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool #ARCH#
-Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files #ARCH#
+Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool @ARCH@
+Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files @ARCH@
Exec=@JRE_HOME@/policytool
Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
Terminal=false
commit 6a92c8f83e3c3fad9c9cf75b923c8fbbd6af3050
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Sep 10 17:15:34 2018 +0200
adapted update_main_sources.sh to single repo and aligned repo url
diff --git a/update_main_sources.sh b/update_main_sources.sh
index e11001e..5f78b8d 100755
--- a/update_main_sources.sh
+++ b/update_main_sources.sh
@@ -28,10 +28,10 @@ if [ "x$PROJECT_NAME" = "x" ] ; then
PROJECT_NAME="aarch64-port"
fi
if [ "x$REPO_NAME" = "x" ] ; then
- REPO_NAME="jdk8u"
+ REPO_NAME="jdk8u-shenandoah"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u181-b13"
+ VERSION="aarch64-shenandoah-jdk8u181-b15"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -63,98 +63,11 @@ fi
echo "Touching spec: $SPEC"
-sed -i "s/^%global\s\+project.*/%global project ${PROJECT_NAME}/" $SPEC
-sed -i "s/^%global\s\+repo.*/%global repo ${REPO_NAME}/" $SPEC
-sed -i "s/^%global\s\+revision.*/%global revision ${VERSION}/" $SPEC
+echo sed -i "s/^%global\s\+project.*/%global project ${PROJECT_NAME}/"
$SPEC
+echo sed -i "s/^%global\s\+repo.*/%global repo ${REPO_NAME}/" $SPEC
+echo sed -i "s/^%global\s\+revision.*/%global revision ${VERSION}/"
$SPEC
# updated sources, resetting release
-sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
-
-#https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Bash
-function levenshtein {
- if [ "$#" -ne "2" ]; then
- echo "Usage: $0 word1 word2" >&2
- elif [ "${#1}" -lt "${#2}" ]; then
- levenshtein "$2" "$1"
- else
- local str1len=$((${#1}))
- local str2len=$((${#2}))
- local d i j
- for i in $(seq 0 $(((str1len+1)*(str2len+1)))); do
- d[i]=0
- done
- for i in $(seq 0 $((str1len))); do
- d[$((i+0*str1len))]=$i
- done
- for j in $(seq 0 $((str2len))); do
- d[$((0+j*(str1len+1)))]=$j
- done
-
- for j in $(seq 1 $((str2len))); do
- for i in $(seq 1 $((str1len))); do
- [ "${1:i-1:1}" = "${2:j-1:1}" ] && local cost=0 || local
cost=1
- local del=$((d[(i-1)+str1len*j]+1))
- local ins=$((d[i+str1len*(j-1)]+1))
- local alt=$((d[(i-1)+str1len*(j-1)]+cost))
- d[i+str1len*j]=$(echo -e "$del\n$ins\n$alt" | sort -n | head -1)
- done
- done
- echo ${d[str1len+str1len*(str2len)]}
- fi
-}
-# generate shenandoah hotspot
-# that means supply the underlying script with new values
-# to new filename.
-MAIN_VERSION=$VERSION
-if [ "x$VERSION" = "xtip" ] ; then
- VERSION="tip"
-else
- #hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u181-b13"
-fi
-MAIN_REPO_NAME=$REPO_NAME
-REPO_NAME=jdk8u-shenandoah
-MAIN_FILE_NAME_ROOT=$FILE_NAME_ROOT
-FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
-FILENAME_SH=${FILE_NAME_ROOT}.tar.${COMPRESSION}
-REPOS="hotspot"
-
-if [ ! -f ${FILENAME_SH} ] ; then
-echo "Generating ${FILENAME_SH}"
-. ./generate_source_tarball.sh
-else
-echo "${FILENAME_SH} already exists, using"
-fi
-
-sed -i "s/^Source1:.*/Source1: ${FILENAME_SH}/" $SPEC
-git --no-pager diff $SPEC
-
-# find the most similar sources name and replace it by newly generated one.
-echo "Old sources"
-cat sources
-a_sources=`cat sources | sed "s/.*(//g" | sed "s/).*//g" | sed
"s/.*\s\+//g"`
-winner=""
-winnerDistance=999999
-for x in $a_sources ; do
- distance=`levenshtein $x ${FILENAME}`
- if [ $distance -lt $winnerDistance ] ; then
- winner=$x
- winnerDistance=$distance
- fi
-done
-sum=`md5sum ${FILENAME}`
-sed -i "s;.*$winner;$sum;" sources
-# now shenandoah hotspot
-winner=""
-winnerDistance=999999
-for x in $a_sources ; do
- distance=`levenshtein $x ${FILENAME_SH}`
- if [ $distance -lt $winnerDistance ] ; then
- winner=$x
- winnerDistance=$distance
- fi
-done
-sum=`md5sum ${FILENAME_SH}`
-sed -i "s;.*$winner;$sum;" sources
+echo sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
echo "New sources"
cat sources
commit 87b90595cd3687234a4966ebc5367a23c3ffbd8a
Merge: 017a125 0d06202
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Sep 4 19:46:23 2018 +0200
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk
diff --cc java-1.8.0-openjdk.spec
index 4888f74,b02874c..5c33e7d
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@@ -1205,12 -1220,8 +1205,14 @@@ Patch539: pr2888.patc
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch540: pr3575-rh1567204.patch
+# Shenandoah fixes
+# PR3619: Shenandoah broken on s390
+Patch582: pr3619.patch
+# PR3620: Shenandoah broken on ppc64
+Patch583: pr3620.patch
+
+ #############################################
+ #
# Non-OpenJDK fixes
#
#############################################
@@@ -2269,39 -2296,14 +2271,47 @@@ require "copy_jdk_configs.lua
%endif
%changelog
+ * Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
+ - Adjust system jpeg patch, system-libjpeg.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
+ * Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
+ - Adjust system NSS patch, pr1983-jdk.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
+* Thu Aug 23 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181.b15-0
+- Move to single OpenJDK tarball build, based on aarch64/shenandoah-jdk8u.
+- Update to aarch64-shenandoah-jdk8u181-b15.
+- Drop 8165489-pr3589.patch which was only applied to aarch64/jdk8u builds.
+- Move buildver to where it should be in the OpenJDK version.
+- Split ppc64 Shenandoah fix into separate patch file with its own bug ID (PR3620).
+- Update pr3539-rh1548475.patch to apply after 8187045.
+- Resolves: rhbz#1594249
+
+* Sat Aug 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Remove unneeded functions from ppc shenandoahBarrierSet.
+- Resolves: rhbz#1594249
+
+* Wed Aug 08 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add missing shenandoahBarrierSet implementation for ppc64{be,le}.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Fix wrong format specifiers in Shenandoah code.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Avoid changing variable types to fix size_t, at least for now.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- More size_t fixes for Shenandoah.
+- Resolves: rhbz#1594249
+
+* Fri Aug 03 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add additional s390 size_t case for Shenandoah.
+- Resolves: rhbz#1594249
+
* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
- build number moved from release to version
commit 017a1252e2f3c1deba1c49207953c1e4f6841a89
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Sep 4 19:37:25 2018 +0200
Updated to u181-b15; moved to single repo tarball.
diff --git a/.gitignore b/.gitignore
index d8923d4..571ea50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,3 +120,4 @@
/aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz
diff --git a/8165489-pr3589.patch b/8165489-pr3589.patch
deleted file mode 100644
index 1674dec..0000000
--- a/8165489-pr3589.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-# HG changeset patch
-# User mdoerr
-# Date 1473159687 -7200
-# Tue Sep 06 13:01:27 2016 +0200
-# Node ID 7f6e1069a5719c8908b53774d3560ce851c7cd70
-# Parent b8fc1e640c4c7f38ca94131279cb67c4d3de6961
-8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
-Summary: Add missing barrier, sharing code with Unsafe_GetObject.
-Reviewed-by: kbarrett, mgerdin, pliden, tschatzl
-
-diff --git openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp
openjdk/hotspot/src/share/vm/prims/unsafe.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp
-+++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp
-@@ -199,37 +199,40 @@
-
- // Get/SetObject must be special-cased, since it works with handles.
-
-+// We could be accessing the referent field in a reference
-+// object. If G1 is enabled then we need to register non-null
-+// referent with the SATB barrier.
-+
-+#if INCLUDE_ALL_GCS
-+static bool is_java_lang_ref_Reference_access(oop o, jlong offset) {
-+ if (offset == java_lang_ref_Reference::referent_offset && o != NULL) {
-+ Klass* k = o->klass();
-+ if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
-+
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
-+ return true;
-+ }
-+ }
-+ return false;
-+}
-+#endif
-+
-+static void ensure_satb_referent_alive(oop o, jlong offset, oop v) {
-+#if INCLUDE_ALL_GCS
-+ if (UseG1GC && v != NULL && is_java_lang_ref_Reference_access(o,
offset)) {
-+ G1SATBCardTableModRefBS::enqueue(v);
-+ }
-+#endif
-+}
-+
- // The xxx140 variants for backward compatibility do not allow a full-width offset.
- UNSAFE_ENTRY(jobject, Unsafe_GetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint
offset))
- UnsafeWrapper("Unsafe_GetObject");
- if (obj == NULL) THROW_0(vmSymbols::java_lang_NullPointerException());
- GET_OOP_FIELD(obj, offset, v)
-- jobject ret = JNIHandles::make_local(env, v);
--#if INCLUDE_ALL_GCS
-- // We could be accessing the referent field in a reference
-- // object. If G1 is enabled then we need to register a non-null
-- // referent with the SATB barrier.
-- if (UseG1GC) {
-- bool needs_barrier = false;
-
-- if (ret != NULL) {
-- if (offset == java_lang_ref_Reference::referent_offset) {
-- oop o = JNIHandles::resolve_non_null(obj);
-- Klass* k = o->klass();
-- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
--
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
-- needs_barrier = true;
-- }
-- }
-- }
-+ ensure_satb_referent_alive(p, offset, v);
-
-- if (needs_barrier) {
-- oop referent = JNIHandles::resolve(ret);
-- G1SATBCardTableModRefBS::enqueue(referent);
-- }
-- }
--#endif // INCLUDE_ALL_GCS
-- return ret;
-+ return JNIHandles::make_local(env, v);
- UNSAFE_END
-
- UNSAFE_ENTRY(void, Unsafe_SetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint
offset, jobject x_h))
-@@ -262,32 +265,10 @@
- UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong
offset))
- UnsafeWrapper("Unsafe_GetObject");
- GET_OOP_FIELD(obj, offset, v)
-- jobject ret = JNIHandles::make_local(env, v);
--#if INCLUDE_ALL_GCS
-- // We could be accessing the referent field in a reference
-- // object. If G1 is enabled then we need to register non-null
-- // referent with the SATB barrier.
-- if (UseG1GC) {
-- bool needs_barrier = false;
-
-- if (ret != NULL) {
-- if (offset == java_lang_ref_Reference::referent_offset && obj != NULL) {
-- oop o = JNIHandles::resolve(obj);
-- Klass* k = o->klass();
-- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
--
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
-- needs_barrier = true;
-- }
-- }
-- }
-+ ensure_satb_referent_alive(p, offset, v);
-
-- if (needs_barrier) {
-- oop referent = JNIHandles::resolve(ret);
-- G1SATBCardTableModRefBS::enqueue(referent);
-- }
-- }
--#endif // INCLUDE_ALL_GCS
-- return ret;
-+ return JNIHandles::make_local(env, v);
- UNSAFE_END
-
- UNSAFE_ENTRY(void, Unsafe_SetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong
offset, jobject x_h))
-@@ -312,6 +293,9 @@
- } else {
- (void)const_cast<oop&>(v = *(volatile oop*) addr);
- }
-+
-+ ensure_satb_referent_alive(p, offset, v);
-+
- OrderAccess::acquire();
- return JNIHandles::make_local(env, v);
- UNSAFE_END
diff --git a/8165852-pr3468.patch b/8165852-pr3468.patch
deleted file mode 100644
index 6a9f643..0000000
--- a/8165852-pr3468.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java 2017-08-23
11:40:26.690809603 +0200
-+++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java 2017-08-23
11:44:28.314815334 +0200
-@@ -74,8 +74,16 @@
- } catch (UnixException x) {
- x.rethrowAsIOException(parent);
- }
-- if (attrs.dev() != dev())
-- break;
-+ if (attrs.dev() != dev()) {
-+
-+ // step 3: lookup mounted file systems (use /proc/mounts to ensure we
-+ // find the file system even when not in /etc/mtab)
-+ byte[] dir = path.asByteArray();
-+ for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts"))
{
-+ if (Arrays.equals(dir, entry.dir()))
-+ return entry;
-+ }
-+ }
- path = parent;
- parent = parent.getParent();
- }
diff --git a/8196516-pr3523-rh1538767.patch b/8196516-pr3523-rh1538767.patch
deleted file mode 100644
index b321611..0000000
--- a/8196516-pr3523-rh1538767.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1523360781 -7200
-# Tue Apr 10 13:46:21 2018 +0200
-# Node ID 5f2401aef9acb6998f06cb82fdd8a84eda3e63ad
-# Parent 656ab3b39178c1e4de644d490613bfd8212ae924
-8196516: libfontmanager must be built with LDFLAGS allowing unresolved symbols
-Summary: Fixes build failures on some sustems with custom LDFLAGS settings.
-
-diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
---- a/make/lib/Awt2dLibraries.gmk
-+++ b/make/lib/Awt2dLibraries.gmk
-@@ -927,6 +927,10 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
- BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
- endif
-
-+# LDFLAGS clarification:
-+# Filter relevant linker flags disallowing unresolved symbols as we cannot
-+# build-time decide to which library to link against (libawt_headless or
-+# libawt_xawt). See JDK-8196516 for details.
- $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- LIBRARY := fontmanager, \
- OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-@@ -941,7 +945,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows
\
- -DCC_NOEX, \
- MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
-- LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
-+ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
-+ $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
- $(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e86860b..4888f74 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -219,12 +219,13 @@
%global origin_nice OpenJDK
%global top_level_dir_name %{origin}
# 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-jdk8u181-b13
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u181-b13
+%global shenandoah_revision aarch64-shenandoah-jdk8u181-b15
+# Define old aarch64/jdk8u tree variables for compatibility
+%global project %{shenandoah_project}
+%global repo %{shenandoah_repo}
+%global revision %{shenandoah_revision}
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
@@ -960,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 7%{?dist}
+Release: 0%{?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
@@ -988,22 +989,15 @@ Group: Development/Languages
License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and
GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C
and zlib
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=%%{revision} FILE_NAME_ROOT=%%{project}-%%{repo}-${VERSION}
-# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
-# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: %{project}-%{repo}-%{revision}.tar.xz
-
# Shenandoah HotSpot
# aarch64-port/jdk8u-shenandoah contains an integration forest of
# OpenJDK 8u, the aarch64 port and Shenandoah
# To regenerate, use:
# VERSION=%%{shenandoah_revision}
# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
-# REPO_ROOT=<path to checked-out repository> REPOS=hotspot
generate_source_tarball.sh
+# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source1: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
# Custom README for -src subpackage
Source2: README.md
@@ -1152,8 +1146,6 @@ Patch575: 8197981-pr3548.patch
Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
-# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
-Patch210: 8165852-pr3468.patch
# 8207057, PR3613: Enable debug information for assembly code files
Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
@@ -1180,11 +1172,6 @@ Patch565: 8185723-pr3553.patch
Patch566: 8186461-pr3557.patch
# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
Patch569: 8201509-pr3579.patch
-# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
-Patch570: 8165489-pr3589.patch
-# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
-# linking with unresolved symbols.
-Patch531: 8196516-pr3523-rh1538767.patch
# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
Patch578: 8075942-pr3602-rh1582032.patch
# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
@@ -1218,8 +1205,12 @@ Patch539: pr2888.patch
# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
Patch540: pr3575-rh1567204.patch
-#############################################
-#
+# Shenandoah fixes
+# PR3619: Shenandoah broken on s390
+Patch582: pr3619.patch
+# PR3620: Shenandoah broken on ppc64
+Patch583: pr3620.patch
+
# Non-OpenJDK fixes
#
#############################################
@@ -1528,17 +1519,7 @@ if [ $prioritylength -ne 7 ] ; then
exit 14
fi
# For old patches
-ln -s openjdk jdk8
-%if %{use_shenandoah_hotspot}
-# On Shenandoah-supported architectures, replace HotSpot with
-# the Shenandoah version
-pushd openjdk
-tar -xf %{SOURCE1}
-rm -rf hotspot
-mv openjdk/hotspot .
-rm -rf openjdk
-popd
-%endif
+ln -s %{top_level_dir_name} jdk8
cp %{SOURCE2} .
@@ -1563,7 +1544,6 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
-%patch210
%patch300
@@ -1612,9 +1592,6 @@ sh %{SOURCE12}
%patch530
%patch538
%patch560
-pushd openjdk/jdk
-%patch531 -p1
-popd
%patch561
%patch562
%patch563
@@ -1645,11 +1622,9 @@ popd
%patch534
%endif
-# Shenandoah-only patches
-%if %{use_shenandoah_hotspot}
-%else
-%patch570
-%endif
+# Shenandoah patches
+%patch582
+%patch583
%patch1000
@@ -2294,6 +2269,39 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 23 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181.b15-0
+- Move to single OpenJDK tarball build, based on aarch64/shenandoah-jdk8u.
+- Update to aarch64-shenandoah-jdk8u181-b15.
+- Drop 8165489-pr3589.patch which was only applied to aarch64/jdk8u builds.
+- Move buildver to where it should be in the OpenJDK version.
+- Split ppc64 Shenandoah fix into separate patch file with its own bug ID (PR3620).
+- Update pr3539-rh1548475.patch to apply after 8187045.
+- Resolves: rhbz#1594249
+
+* Sat Aug 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Remove unneeded functions from ppc shenandoahBarrierSet.
+- Resolves: rhbz#1594249
+
+* Wed Aug 08 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add missing shenandoahBarrierSet implementation for ppc64{be,le}.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Fix wrong format specifiers in Shenandoah code.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Avoid changing variable types to fix size_t, at least for now.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- More size_t fixes for Shenandoah.
+- Resolves: rhbz#1594249
+
+* Fri Aug 03 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add additional s390 size_t case for Shenandoah.
+- Resolves: rhbz#1594249
+
* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
- build number moved from release to version
diff --git a/pr3539-rh1548475.patch b/pr3539-rh1548475.patch
index 492a080..9b40a7f 100644
--- a/pr3539-rh1548475.patch
+++ b/pr3539-rh1548475.patch
@@ -85,8 +85,8 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/m
# cause problems with interposing. See CR: 6466665
# LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
$(LDFLAGS_NO_EXEC_STACK)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(LDFLAGS_NO_EXEC_STACK)
$(EXTRA_LDFLAGS)
# DEBUG_BINARIES overrides everything, use full -g debug information
ifeq ($(DEBUG_BINARIES), true)
@@ -105,7 +105,7 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot
diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
--- openjdk.orig/hotspot/make/linux/makefiles/vm.make
+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -130,7 +130,7 @@
+@@ -122,7 +122,7 @@
# Extra flags from gnumake's invocation or environment
CFLAGS += $(EXTRA_CFLAGS)
diff --git a/pr3619.patch b/pr3619.patch
new file mode 100644
index 0000000..3c8631f
--- /dev/null
+++ b/pr3619.patch
@@ -0,0 +1,45 @@
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
+@@ -108,7 +108,7 @@
+ step = MIN2(step, (intx) MaxNormalStep);
+
+ log_info(gc, ergo)("Capacity: " SIZE_FORMAT "M, Peak Occupancy: "
SIZE_FORMAT
+- "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " UINTX_FORMAT "M",
++ "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " SIZE_FORMAT "M",
+ capacity / M, _peak_occupancy / M,
+ (capacity - _peak_occupancy) / M, ShenandoahMinFreeThreshold *
capacity / 100 / M);
+
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
+@@ -36,7 +36,7 @@
+ }
+
+ void ShenandoahStaticHeuristics::print_thresholds() {
+- log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"SIZE_FORMAT", free "SIZE_FORMAT", garbage "SIZE_FORMAT,
++ log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"UINTX_FORMAT", free "UINTX_FORMAT", garbage "UINTX_FORMAT,
+ ShenandoahAllocationThreshold,
+ ShenandoahFreeThreshold,
+ ShenandoahGarbageThreshold);
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
+@@ -539,7 +539,7 @@
+ }
+ size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
+ region_size = MAX2(average_heap_size / ShenandoahTargetNumRegions,
+- ShenandoahMinRegionSize);
++ (size_t) ShenandoahMinRegionSize);
+
+ // Now make sure that we don't go over or under our limits.
+ region_size = MAX2(ShenandoahMinRegionSize, region_size);
+@@ -573,7 +573,7 @@
+ // Otherwise, mem-protecting one region may falsely protect the adjacent
+ // regions too.
+ if (UseLargePages) {
+- region_size = MAX2(region_size, os::large_page_size());
++ region_size = MAX2((size_t) region_size, os::large_page_size());
+ }
+
+ int region_size_log = log2_long((jlong) region_size);
diff --git a/pr3620.patch b/pr3620.patch
new file mode 100644
index 0000000..206828d
--- /dev/null
+++ b/pr3620.patch
@@ -0,0 +1,70 @@
+diff --git openjdk.orig/hotspot/make/excludeSrc.make
openjdk/hotspot/make/excludeSrc.make
+--- openjdk.orig/hotspot/make/excludeSrc.make
++++ openjdk/hotspot/make/excludeSrc.make
+@@ -121,6 +121,7 @@
+ Src_Files_EXCLUDE += \
+ shenandoahBarrierSet_x86.cpp \
+ shenandoahBarrierSet_aarch64.cpp \
++ shenandoahBarrierSet_ppc.cpp \
+ shenandoahBarrierSet_sparc.cpp \
+ shenandoahBarrierSet_zero.cpp
+ endif
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
+@@ -0,0 +1,54 @@
++/*
++ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
++ *
++ * 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.
++ *
++ */
++
++#include "precompiled.hpp"
++#include "gc_implementation/shenandoah/brooksPointer.hpp"
++#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp"
++
++#include "asm/macroAssembler.hpp"
++#include "interpreter/interpreter.hpp"
++
++#define __ masm->
++
++#ifndef CC_INTERP
++
++void ShenandoahBarrierSet::interpreter_read_barrier(MacroAssembler* masm, Register dst)
{
++ Unimplemented();
++}
++
++void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm,
Register dst) {
++ Unimplemented();
++}
++
++void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst)
{
++ Unimplemented();
++}
++
++void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register
op2) {
++ Unimplemented();
++}
++
++void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) {
++ Unimplemented();
++}
++#endif
diff --git a/sources b/sources
index a9a9f44..f10b98c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz) =
d22ddb8b0b76faa18067fe383a147345be5fe1bad77b50940ff2993f3356166143e5ac9e14d9ead4437c13b00c6b2a5c62093ad57645da15a3419238990a74ac
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz) =
b5611a5b13a8aa3c0e07e015e39b11241f96124bb9454d4151c54d4e9af004ea038cc3a27e3b9099b3061bb9225cb298551e0e726f79bc9bc9837aa912f1586c
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz) =
d8cdb9b7ef129ba8a07332ca3e4c56ad9e6cc84c4977cbad601b67deeecec44c0f3b95f219d603e063bd7b89bf6515151111fe021cf36132b9b4cc47c1d1d12c
commit ca2a20d6f959c110ad24ced8b699ad3334bb988f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Sep 4 19:15:31 2018 +0200
Changed handling of systemtap sources
diff --git a/.gitignore b/.gitignore
index 3bc325a..d8923d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,3 +119,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b04.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
+/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
diff --git a/generate_singlerepo_source_tarball.sh
b/generate_singlerepo_source_tarball.sh
new file mode 100644
index 0000000..62218ba
--- /dev/null
+++ b/generate_singlerepo_source_tarball.sh
@@ -0,0 +1,145 @@
+#!/bin/bash
+# Generates the 'source tarball' for JDK projects.
+#
+# Example:
+# When used from local repo set REPO_ROOT pointing to file:// with your repo
+# if your local repo follows upstream forests conventions, you may be enough by setting
OPENJDK_URL
+# if you wont to use local copy of patch PR2126 set path to it to PR2126 variable
+#
+# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
+# PROJECT_NAME=jdk
+# REPO_NAME=jdk
+# VERSION=tip
+# or to eg prepare systemtap:
+# icedtea7's jstack and other tapsets
+# VERSION=6327cf1cea9e
+# REPO_NAME=icedtea7-2.6
+# PROJECT_NAME=release
+#
OPENJDK_URL=http://icedtea.classpath.org/hg/
+# TO_COMPRESS="*/tapset"
+#
+# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
+
+# This script creates a single source tarball out of the repository
+# based on the given tag and removes code not allowed in fedora/rhel. For
+# consistency, the source tarball will always contain 'openjdk' as the top
+# level folder, name is created, based on parameter
+#
+
+if [ ! "x$PR2126" = "x" ] ; then
+ if [ ! -f "$PR2126" ] ; then
+ echo "You have specified PR2126 as $PR2126 but it does not exists.
exiting"
+ exit 1
+ fi
+fi
+
+set -e
+
+OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+COMPRESSION_DEFAULT=xz
+
+if [ "x$1" = "xhelp" ] ; then
+ echo -e "Behaviour may be specified by setting the following variables:\n"
+ echo "VERSION - the version of the specified OpenJDK project"
+ echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional;
only needed by defaults)"
+ echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by
defaults)"
+ echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to
${OPENJDK_URL_DEFAULT})"
+ echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
+ echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
+ echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
+ echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
+ echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if
unavailable)"
+ exit 1;
+fi
+
+
+if [ "x$VERSION" = "x" ] ; then
+ echo "No VERSION specified"
+ exit -2
+fi
+echo "Version: ${VERSION}"
+
+# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
+if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" =
"x" ] ; then
+ if [ "x$PROJECT_NAME" = "x" ] ; then
+ echo "No PROJECT_NAME specified"
+ exit -1
+ fi
+ echo "Project name: ${PROJECT_NAME}"
+ if [ "x$REPO_NAME" = "x" ] ; then
+ echo "No REPO_NAME specified"
+ exit -3
+ fi
+ echo "Repository name: ${REPO_NAME}"
+fi
+
+if [ "x$OPENJDK_URL" = "x" ] ; then
+ OPENJDK_URL=${OPENJDK_URL_DEFAULT}
+ echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
+else
+ echo "OpenJDK URL: ${OPENJDK_URL}"
+fi
+
+if [ "x$COMPRESSION" = "x" ] ; then
+ # rhel 5 needs tar.gz
+ COMPRESSION=${COMPRESSION_DEFAULT}
+fi
+echo "Creating a tar.${COMPRESSION} archive"
+
+if [ "x$FILE_NAME_ROOT" = "x" ] ; then
+ FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+ echo "No file name root specified; default to ${FILE_NAME_ROOT}"
+fi
+if [ "x$REPO_ROOT" = "x" ] ; then
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ echo "No repository root specified; default to ${REPO_ROOT}"
+fi;
+
+if [ "x$TO_COMPRESS" = "x" ] ; then
+ TO_COMPRESS="openjdk"
+ echo "No to be compressed targets specified, ; default to ${TO_COMPRESS}"
+fi;
+
+if [ -d ${FILE_NAME_ROOT} ] ; then
+ echo "exists exists exists exists exists exists exists "
+ echo "reusing reusing reusing reusing reusing reusing "
+ echo ${FILE_NAME_ROOT}
+else
+ mkdir "${FILE_NAME_ROOT}"
+ pushd "${FILE_NAME_ROOT}"
+ echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
+ hg clone ${REPO_ROOT} openjdk -r ${VERSION}
+ popd
+fi
+pushd "${FILE_NAME_ROOT}"
+ if [ -d openjdk/src ]; then
+ pushd openjdk
+ echo "Removing EC source code we don't build"
+ CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl
+ rm -vrf $CRYPTO_PATH
+ echo "Syncing EC list with NSS"
+ if [ "x$PR2126" = "x" ] ; then
+ # orriginally for 8:
+ # get pr2126.patch (from
http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most correct
tag
+ # Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
+ # there is currnetly no "upstram version of this patch, hardcoding
custom version
+ PR2126="../../pr2126-11.patch"
+ fi;
+ echo "Applying ${PR2126}"
+ patch -Np1 < $PR2126
+ find . -name '*.orig' -exec rm -vf '{}' ';'
+ popd
+ fi
+
+ echo "Compressing remaining forest"
+ if [ "X$COMPRESSION" = "Xxz" ] ; then
+ SWITCH=cJf
+ else
+ SWITCH=czf
+ fi
+ tar --exclude-vcs -$SWITCH ${FILE_NAME_ROOT}.tar.${COMPRESSION} $TO_COMPRESS
+ mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
+popd
+echo "Done. You may want to remove the uncompressed version -
$FILE_NAME_ROOT."
+
+
diff --git a/generate_tarballs.sh b/generate_tarballs.sh
deleted file mode 100755
index 0c5930d..0000000
--- a/generate_tarballs.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-VERSION=3506c375241e
-ICEDTEA_URL=http://icedtea.classpath.org/hg/icedtea7/
-
-wget -O icedtea7.tar.gz ${ICEDTEA_URL}/archive/${VERSION}.tar.gz
-tar xzf icedtea7.tar.gz
-rm -f icedtea7.tar.gz
-pushd icedtea7-${VERSION}
-
-# desktop files
-#mv jconsole.desktop ../jconsole.desktop.in
-#mv policytool.desktop ../policytool.desktop.in
-# Icons were generally cloned fromicedtea, but now are mucvh more specific
-
-# tapsets
-mv tapset/hotspot{,-1.8.0}.stp.in || exit 1
-mv tapset/hotspot_gc{,-1.8.0}.stp.in || exit 1
-mv tapset/hotspot_jni{,-1.8.0}.stp.in || exit 1
-mv tapset/jstack{,-1.8.0}.stp.in || exit 1
-tar cvzf systemtap-tapset.tar.gz tapset
-mv systemtap-tapset.tar.gz ../
-
-popd
-rm -rf icedtea7-${VERSION}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e3e9a0..e86860b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -236,7 +236,6 @@
%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
%global javaver 1.%{majorver}.0
-%global systemtap_javaver 9
# parametrized macros are order-sensitive
%global compatiblename %{name}
@@ -1009,11 +1008,10 @@ Source1:
%{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
# Custom README for -src subpackage
Source2: README.md
-# Use 'generate_tarballs.sh' to generate the following tarballs
-# They are based on code contained in the IcedTea project (3.x)
-# Systemtap tapsets. Zipped up to keep it small
-Source8: systemtap-tapset-3.6.0pre02.tar.xz
+# run update_systemtap.sh to regenerate or update systemtap sources
+# update_package.sh contains hard-coded repos, revisions, tags, and projects to
regenerate the source archives
+Source8: systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
# Desktop files. Adapted from IcedTea
Source9: jconsole.desktop.in
@@ -1657,7 +1655,7 @@ popd
# Extract systemtap tapsets
%if %{with_systemtap}
-tar -x -I xz -f %{SOURCE8}
+tar --strip-components=1 -x -I xz -f %{SOURCE8}
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
@@ -1665,7 +1663,7 @@ cp -r tapset tapset%{debug_suffix}
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
- OUTPUT_FILE=`echo $file | sed -e
"s:%{systemtap_javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
+ OUTPUT_FILE=`echo $file | sed -e
"s:\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
diff --git a/sources b/sources
index c3c111b..a9a9f44 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
848f42ef7ca751e723fd50e3a6da14c0965ad4da37ea3331568658e27497b7a7e4b9aad3dedd264ad0bb5566c37a92302b905f10258a4e2c89dc4ba609e55481
+SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
SHA512 (aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz) =
d22ddb8b0b76faa18067fe383a147345be5fe1bad77b50940ff2993f3356166143e5ac9e14d9ead4437c13b00c6b2a5c62093ad57645da15a3419238990a74ac
SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz) =
b5611a5b13a8aa3c0e07e015e39b11241f96124bb9454d4151c54d4e9af004ea038cc3a27e3b9099b3061bb9225cb298551e0e726f79bc9bc9837aa912f1586c
diff --git a/update_package.sh b/update_main_sources.sh
similarity index 100%
rename from update_package.sh
rename to update_main_sources.sh
diff --git a/update_systemtap.sh b/update_systemtap.sh
new file mode 100644
index 0000000..1a3e3c8
--- /dev/null
+++ b/update_systemtap.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -x
+# this file contains defaults for currently generated source tarball of systemtap
+
+set -e
+
+# TAPSET
+export PROJECT_NAME="hg"
+export REPO_NAME="icedtea8"
+export VERSION="9d464368e06d"
+export COMPRESSION=xz
+export
OPENJDK_URL=http://icedtea.classpath.org
+export FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+export TO_COMPRESS="*/tapset"
+# warning, filename and filenameroot creation is duplicated here from
generate_source_tarball.sh
+CLONED_FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
+TAPSET_VERSION=3.2
+TAPSET=systemtap_"$TAPSET_VERSION"_tapsets_$CLONED_FILENAME
+if [ ! -f ${TAPSET} ] ; then
+ if [ ! -f ${CLONED_FILENAME} ] ; then
+ echo "Generating ${CLONED_FILENAME}"
+ sh ./generate_singlerepo_source_tarball.sh
+ else
+ echo "exists exists exists exists exists exists exists "
+ echo "reusing reusing reusing reusing reusing reusing "
+ echo ${CLONED_FILENAME}
+ fi
+ mv -v $CLONED_FILENAME $TAPSET
+else
+ echo "exists exists exists exists exists exists exists "
+ echo "reusing reusing reusing reusing reusing reusing "
+ echo ${TAPSET}
+fi
commit 0d062022bb121772419b758c205b5a37ad8d8496
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Aug 27 16:56:34 2018 +0200
Adjust system jpeg patch for -Wl,--as-needed.
redhat-rpm-config enabled -Wl,--as-needed flag by default on
August 15. This causes issues when compiling the JDK against
system libjpeg. Filter -Wl,--as-needed when libjavajpeg.so is
being compiled.
Resolves: RHBZ#1622186
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 96fd214..b02874c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 8%{?dist}
+Release: 9%{?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
@@ -2296,6 +2296,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
+- Adjust system jpeg patch, system-libjpeg.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
- Adjust system NSS patch, pr1983-jdk.patch, so as to filter
-Wl,--as-needed. Resolves RHBZ#1622186.
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
index fa01115..003f32b 100644
--- a/system-libjpeg.patch
+++ b/system-libjpeg.patch
@@ -51,7 +51,7 @@ diff -ruN jdk8/common/autoconf/libraries.m4
jdk8/common/autoconf/libraries.m4
diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-10-31 19:44:18.000000000 -0400
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 21:56:01.020796703 -0500
-@@ -696,17 +696,17 @@
+@@ -693,17 +693,17 @@
##########################################################################################
ifdef OPENJDK
@@ -75,7 +75,7 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
endif
endif
-@@ -721,37 +721,37 @@
+@@ -718,37 +718,38 @@
# $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
# \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
# ifeq ($(CC_43_OR_NEWER), 1)
@@ -101,7 +101,8 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
- LDFLAGS := $(LDFLAGS_JDKLIB) \
+ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
-+ LDFLAGS := $(LDFLAGS_JDKLIB) -ljpeg \
++ LDFLAGS := $(subst -Xlinker --as-needed,, \
++ $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) -ljpeg \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
@@ -126,7 +127,7 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
##########################################################################################
-@@ -1183,7 +1183,6 @@
+@@ -1127,7 +1128,6 @@
ifndef BUILD_HEADLESS_ONLY
LIBSPLASHSCREEN_DIRS := \
@@ -134,7 +135,7 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
$(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
$(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
-@@ -1194,6 +1193,13 @@
+@@ -1138,6 +1138,13 @@
GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
endif
@@ -148,7 +149,7 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
ifneq ($(OPENJDK_TARGET_OS), macosx)
LIBSPLASHSCREEN_DIRS +=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
else
-@@ -1256,11 +1262,13 @@
+@@ -1193,11 +1200,13 @@
EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
LANG := C, \
OPTIMIZATION := LOW, \
commit 5ea1728a3d919902f8c89b046b01a221d90bc541
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Aug 27 15:17:38 2018 +0200
Adjust system NSS patch for -Wl,--as-needed.
redhat-rpm-config enabled '-Wl,--as-needed' linker flag by
default on August 15. Filter out --Wl,--as-needed flag until
a better fix becomes available.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e3e9a0..96fd214 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 7%{?dist}
+Release: 8%{?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
@@ -2296,6 +2296,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
+- Adjust system NSS patch, pr1983-jdk.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
- build number moved from release to version
diff --git a/pr1983-jdk.patch b/pr1983-jdk.patch
index 673b8a9..31c285b 100644
--- a/pr1983-jdk.patch
+++ b/pr1983-jdk.patch
@@ -41,8 +41,13 @@ diff -r 984a4af2ed4e make/lib/SecurityLibraries.gmk
LANG := C++, \
OPTIMIZATION := LOW, \
CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \
-@@ -248,8 +257,8 @@
- LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
+@@ -245,11 +254,12 @@
+ CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \
+ $(BUILD_LIBSUNEC_FLAGS), \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsunec/mapfile-vers, \
+- LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
++ LDFLAGS := $(subst -Xlinker --as-needed,, \
++ $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK), \
LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX := $(LIBCXX), \
- LDFLAGS_SUFFIX_linux := -lc, \
commit a2e48182e17cc4b5b38cc076bc1a81b13339a10a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 1 10:18:45 2018 +0200
build number moved from release to version
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4786960..3e3e9a0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -960,8 +960,8 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
%global __jar_repack 0
Name: java-%{javaver}-%{origin}
-Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Version: %{javaver}.%{updatever}.%{buildver}
+Release: 7%{?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
@@ -2296,13 +2296,16 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Jul 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.181-7.b13
+* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
+- build number moved from release to version
+
+* Mon Jul 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181-7.b13
- updated to u181
- patches aligned according to rhel7 (full credit to gnu_andrew)
- removed upstreamed patch104 pr3458-rh1540242-aarch64.patch
- removed upstreamed patch568 8187577-pr3578.patch
-* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-16.b11
+* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-16.b11
- added Recommends gtk2 for main package
- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
- see RHBZ1598152
commit 5930d5a40444a284bf7e2993ca4dc898e4581beb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jul 23 18:44:23 2018 +0200
Renmaed pathces according to bugs and used naming conventions
diff --git a/.gitignore b/.gitignore
index 2006cc1..3bc325a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,5 +112,10 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-06-21.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u181-b03.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b03.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u181-b04.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b04.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
diff --git a/suse_linuxfilestore.patch b/8165852-pr3468.patch
similarity index 100%
rename from suse_linuxfilestore.patch
rename to 8165852-pr3468.patch
diff --git a/rhbz_1538767_fix_linking.patch b/8196516-pr3523-rh1538767.patch
similarity index 100%
rename from rhbz_1538767_fix_linking.patch
rename to 8196516-pr3523-rh1538767.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e2602c8..4786960 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1088,9 +1088,8 @@ Patch528: pr3083-rh1346460.patch
Patch529: rh1566890_embargoed20180521.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530: pr3601.patch
-# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
-# linking with unresolved symbols.
-Patch531: rhbz_1538767_fix_linking.patch
+# PR3183: Support Fedora/RHEL system crypto policy
+Patch300: pr3183.patch
#############################################
#
@@ -1155,6 +1154,8 @@ Patch575: 8197981-pr3548.patch
Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
+# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
+Patch210: 8165852-pr3468.patch
# 8207057, PR3613: Enable debug information for assembly code files
Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
@@ -1183,6 +1184,9 @@ Patch566: 8186461-pr3557.patch
Patch569: 8201509-pr3579.patch
# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
Patch570: 8165489-pr3589.patch
+# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
+# linking with unresolved symbols.
+Patch531: 8196516-pr3523-rh1538767.patch
# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
Patch578: 8075942-pr3602-rh1582032.patch
# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
@@ -1201,9 +1205,6 @@ Patch204: 8206425-hotspot-remove-debuglink.patch
#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
-Patch210: suse_linuxfilestore.patch
-# custom securities
-Patch300: PR3183.patch
#############################################
#
@@ -1578,6 +1579,7 @@ sh %{SOURCE12}
%patch102
%patch103
+# AArch64 fixes
%patch106
# x86 fixes
diff --git a/PR3183.patch b/pr3183.patch
similarity index 100%
rename from PR3183.patch
rename to pr3183.patch
commit 7a12b3bf717276520d8e92632aa39104e6f24c23
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jul 23 17:24:28 2018 +0200
removed upstreamed patch568 8187577-pr3578.patch
diff --git a/8187577-pr3578.patch b/8187577-pr3578.patch
deleted file mode 100644
index ca60619..0000000
--- a/8187577-pr3578.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-# HG changeset patch
-# User poonam
-# Date 1525279722 -3600
-# Wed May 02 17:48:42 2018 +0100
-# Node ID ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
-# Parent 5460c427c0dcb335f510cbc2ea1d76c6921b1aaa
-8187577, PR3578: JVM crash during gc doing concurrent marking
-Summary: Inform G1's SATB that a klass has been resurrected and it should not be
unloaded
-Reviewed-by: coleenp, tschatzl, kbarrett
-
-diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
-+++ openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2018, 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
-@@ -27,6 +27,9 @@
- #include "memory/universe.inline.hpp"
- #include "prims/jvmtiGetLoadedClasses.hpp"
- #include "runtime/thread.hpp"
-+#if INCLUDE_ALL_GCS
-+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
-+#endif
-
-
- // The closure for GetLoadedClasses
-@@ -35,6 +38,20 @@
- Stack<jclass, mtInternal> _classStack;
- JvmtiEnv* _env;
-
-+// Tell the GC to keep this klass alive
-+static void ensure_klass_alive(oop o) {
-+ // A klass that was previously considered dead can be looked up in the
-+ // CLD/SD, and its _java_mirror or _class_loader can be stored in a root
-+ // or a reachable object making it alive again. The SATB part of G1 needs
-+ // to get notified about this potential resurrection, otherwise the marking
-+ // might not find the object.
-+#if INCLUDE_ALL_GCS
-+ if (UseG1GC && o != NULL) {
-+ G1SATBCardTableModRefBS::enqueue(o);
-+ }
-+#endif
-+}
-+
- public:
- LoadedClassesClosure(JvmtiEnv* env) {
- _env = env;
-@@ -43,6 +60,7 @@
- void do_klass(Klass* k) {
- // Collect all jclasses
- _classStack.push((jclass) _env->jni_reference(k->java_mirror()));
-+ ensure_klass_alive(k->java_mirror());
- }
-
- int extract(jclass* result_list) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 93fb088..e2602c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1141,8 +1141,6 @@ Patch563: 8171000-pr3542-rh1402819.patch
Patch564: 8197546-pr3542-rh1402819.patch
# PR3559: Use ldrexd for atomic reads on ARMv7.
Patch567: pr3559.patch
-# 8187577, PR3578: JVM crash during gc doing concurrent marking
-Patch568: 8187577-pr3578.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571: pr3591.patch
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
@@ -1650,7 +1648,6 @@ popd
# Shenandoah-only patches
%if %{use_shenandoah_hotspot}
%else
-%patch568
%patch570
%endif
@@ -2301,6 +2298,7 @@ require "copy_jdk_configs.lua"
- updated to u181
- patches aligned according to rhel7 (full credit to gnu_andrew)
- removed upstreamed patch104 pr3458-rh1540242-aarch64.patch
+- removed upstreamed patch568 8187577-pr3578.patch
* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-16.b11
- added Recommends gtk2 for main package
commit 1b2b62a758ed9bb8f620aa141003720305f00cb7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jul 23 17:09:16 2018 +0200
removed patch104 pr3458-rh1540242-aarch64.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8ba0d79..93fb088 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1108,8 +1108,6 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: pr3593-s390-size_t_format_flags.patch
-# AArch64: Fix more cases of missing return statements
-Patch104: pr3458-rh1540242-aarch64.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
Patch105: 8199936-pr3533-workaround.patch
# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
@@ -1582,11 +1580,6 @@ sh %{SOURCE12}
%patch102
%patch103
-# AArch64 fixes
-%if %{use_shenandoah_hotspot}
-%else
-%patch104
-%endif
%patch106
# x86 fixes
@@ -2304,6 +2297,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.181-7.b13
+- updated to u181
+- patches aligned according to rhel7 (full credit to gnu_andrew)
+- removed upstreamed patch104 pr3458-rh1540242-aarch64.patch
+
* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-16.b11
- added Recommends gtk2 for main package
- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
diff --git a/pr3458-rh1540242-aarch64.patch b/pr3458-rh1540242-aarch64.patch
deleted file mode 100644
index 01ebc2c..0000000
--- a/pr3458-rh1540242-aarch64.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -698,6 +698,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
commit 6e6e3ea448e9332fab685519741a54e72c63ddb6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jul 23 16:11:36 2018 +0200
Updated to u181
diff --git a/.gitignore b/.gitignore
index a1f0faf..2006cc1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,3 +112,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
diff --git a/8075942-pr3602-rh1582032.patch b/8075942-pr3602-rh1582032.patch
new file mode 100644
index 0000000..bd2a40e
--- /dev/null
+++ b/8075942-pr3602-rh1582032.patch
@@ -0,0 +1,95 @@
+# HG changeset patch
+# User prr
+# Date 1429299166 25200
+# Fri Apr 17 12:32:46 2015 -0700
+# Node ID 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6
+# Parent 533117ae5b7587c8d9c0612581682ab984475430
+8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
+Reviewed-by: flar, lbourges
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
+--- openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
++++ openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java
+@@ -146,7 +146,7 @@
+ if (dashOn) {
+ if (starting) {
+ firstSegmentsBuffer = Helpers.widenArray(firstSegmentsBuffer,
+- firstSegidx, type - 2);
++ firstSegidx, type - 2 + 1);
+ firstSegmentsBuffer[firstSegidx++] = type;
+ System.arraycopy(pts, off, firstSegmentsBuffer, firstSegidx, type - 2);
+ firstSegidx += type - 2;
+diff --git a/test/javopenjdk.orig/jdk/awt/BasicStroke/DashStrokeTest.java
openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java
+@@ -0,0 +1,69 @@
++/*
++ * Copyright (c) 2015, 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
++ * @bug 8075942
++ * @summary test there is no exception rendering a dashed stroke
++ * @run DashStrokeTest
++ * @run -Dsun.java2d.renderer=sun.java2d.pisces.PiscesRenderingEngine
++ */
++
++import java.awt.BasicStroke;
++import java.awt.Color;
++import java.awt.Graphics2D;
++import java.awt.Stroke;
++import java.awt.geom.GeneralPath;
++import java.awt.image.BufferedImage;
++
++
++public class DashStrokeTest {
++
++ public static void main(String[] args) {
++
++ GeneralPath shape = new GeneralPath();
++ int[] pointTypes = {0, 0, 1, 1, 0, 1, 1, 0};
++ double[] xpoints = {428, 420, 400, 400, 400, 400, 420, 733};
++ double[] ypoints = {180, 180, 180, 160, 30, 10, 10, 10};
++ shape.moveTo(xpoints[0], ypoints[0]);
++ for (int i = 1; i < pointTypes.length; i++) {
++ if (pointTypes[i] == 1 && i < pointTypes.length - 1) {
++ shape.quadTo(xpoints[i], ypoints[i],
++ xpoints[i + 1], ypoints[i + 1]);
++ } else {
++ shape.lineTo(xpoints[i], ypoints[i]);
++ }
++ }
++
++ BufferedImage image = new
++ BufferedImage(1000, 1000, BufferedImage.TYPE_INT_ARGB);
++ Graphics2D g2 = image.createGraphics();
++
++ Color color = new Color(124, 0, 124, 255);
++ g2.setColor(color);
++ Stroke stroke = new BasicStroke(1.0f,
++ BasicStroke.CAP_BUTT,
++ BasicStroke.JOIN_BEVEL,
++ 10.0f, new float[] {9, 6}, 0.0f);
++ g2.setStroke(stroke);
++ g2.draw(shape);
++ }
++}
diff --git a/8146115-pr3508-rh1463098.patch b/8146115-pr3508-rh1463098.patch
new file mode 100644
index 0000000..a04728b
--- /dev/null
+++ b/8146115-pr3508-rh1463098.patch
@@ -0,0 +1,1494 @@
+# HG changeset patch
+# User poonam
+# Date 1530903013 0
+# Fri Jul 06 18:50:13 2018 +0000
+# Node ID 2f2d2af6fa5c44e67e0a9987f56392315a1e4b64
+# Parent 95b72537801cc9946c27ad27f07e3f0790a21b08
+8146115, PR3508, RH1463098: Improve docker container detection and resource configuration
usage
+Reviewed-by: bobv, dbuck
+
+diff --git openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
openjdk/hotspot/src/os/aix/vm/os_aix.cpp
+--- openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
++++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp
+@@ -4008,6 +4008,16 @@
+ };
+
+ int os::active_processor_count() {
++ // User has overridden the number of active processors
++ if (ActiveProcessorCount > 0) {
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: "
++ "active processor count set by user : %d",
++ ActiveProcessorCount);
++ }
++ return ActiveProcessorCount;
++ }
++
+ int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
+ assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity
check");
+ return online_cpus;
+diff --git openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
+--- openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
++++ openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
+@@ -3770,6 +3770,16 @@
+ };
+
+ int os::active_processor_count() {
++ // User has overridden the number of active processors
++ if (ActiveProcessorCount > 0) {
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: "
++ "active processor count set by user : %d",
++ ActiveProcessorCount);
++ }
++ return ActiveProcessorCount;
++ }
++
+ return _processor_count;
+ }
+
+diff --git openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
+--- openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
++++ openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2018, 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
+@@ -49,8 +49,13 @@
+ product(bool, UseSHM, false, \
+ "Use SYSV shared memory for large pages") \
+ \
+- diagnostic(bool, PrintActiveCpus, false, \
+- "Print the number of CPUs detected in os::active_processor_count")
++ product(bool, UseContainerSupport, true, \
++ "Enable detection and runtime container configuration support") \
++ \
++ product(bool, PreferContainerQuotaForCPUCount, true, \
++ "Calculate the container CPU availability based on the value" \
++ " of quotas (if set), when true. Otherwise, use the CPU" \
++ " shares value, provided it is less than quota.")
+
+ //
+ // Defines Linux-specific default values. The flags are available on all
+diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.cpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
+@@ -0,0 +1,680 @@
++/*
++ * Copyright (c) 2017, 2018, 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.
++ *
++ */
++
++#include <string.h>
++#include <math.h>
++#include <errno.h>
++#include "utilities/globalDefinitions.hpp"
++#include "memory/allocation.hpp"
++#include "runtime/os.hpp"
++#include "osContainer_linux.hpp"
++
++#define PER_CPU_SHARES 1024
++
++bool OSContainer::_is_initialized = false;
++bool OSContainer::_is_containerized = false;
++julong _unlimited_memory;
++
++class CgroupSubsystem: CHeapObj<mtInternal> {
++ friend class OSContainer;
++
++ private:
++ /* mountinfo contents */
++ char *_root;
++ char *_mount_point;
++
++ /* Constructed subsystem directory */
++ char *_path;
++
++ public:
++ CgroupSubsystem(char *root, char *mountpoint) {
++ _root = os::strdup(root);
++ _mount_point = os::strdup(mountpoint);
++ _path = NULL;
++ }
++
++ /*
++ * Set directory to subsystem specific files based
++ * on the contents of the mountinfo and cgroup files.
++ */
++ void set_subsystem_path(char *cgroup_path) {
++ char buf[MAXPATHLEN+1];
++ if (_root != NULL && cgroup_path != NULL) {
++ if (strcmp(_root, "/") == 0) {
++ int buflen;
++ strncpy(buf, _mount_point, MAXPATHLEN);
++ buf[MAXPATHLEN-1] = '\0';
++ if (strcmp(cgroup_path,"/") != 0) {
++ buflen = strlen(buf);
++ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
++ return;
++ }
++ strncat(buf, cgroup_path, MAXPATHLEN-buflen);
++ buf[MAXPATHLEN-1] = '\0';
++ }
++ _path = os::strdup(buf);
++ } else {
++ if (strcmp(_root, cgroup_path) == 0) {
++ strncpy(buf, _mount_point, MAXPATHLEN);
++ buf[MAXPATHLEN-1] = '\0';
++ _path = os::strdup(buf);
++ } else {
++ char *p = strstr(_root, cgroup_path);
++ if (p != NULL && p == _root) {
++ if (strlen(cgroup_path) > strlen(_root)) {
++ int buflen;
++ strncpy(buf, _mount_point, MAXPATHLEN);
++ buf[MAXPATHLEN-1] = '\0';
++ buflen = strlen(buf);
++ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
++ return;
++ }
++ strncat(buf, cgroup_path + strlen(_root), MAXPATHLEN-buflen);
++ buf[MAXPATHLEN-1] = '\0';
++ _path = os::strdup(buf);
++ }
++ }
++ }
++ }
++ }
++ }
++
++ char *subsystem_path() { return _path; }
++};
++
++CgroupSubsystem* memory = NULL;
++CgroupSubsystem* cpuset = NULL;
++CgroupSubsystem* cpu = NULL;
++CgroupSubsystem* cpuacct = NULL;
++
++typedef char * cptr;
++
++PRAGMA_DIAG_PUSH
++PRAGMA_FORMAT_NONLITERAL_IGNORED
++template <typename T> int subsystem_file_contents(CgroupSubsystem* c,
++ const char *filename,
++ const char *scan_fmt,
++ T returnval) {
++ FILE *fp = NULL;
++ char *p;
++ char file[MAXPATHLEN+1];
++ char buf[MAXPATHLEN+1];
++
++ if (c == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("subsystem_file_contents: CgroupSubsytem* is NULL");
++ }
++ return OSCONTAINER_ERROR;
++ }
++ if (c->subsystem_path() == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("subsystem_file_contents: subsystem path is NULL");
++ }
++ return OSCONTAINER_ERROR;
++ }
++
++ strncpy(file, c->subsystem_path(), MAXPATHLEN);
++ file[MAXPATHLEN-1] = '\0';
++ int filelen = strlen(file);
++ if ((filelen + strlen(filename)) > (MAXPATHLEN-1)) {
++ if (PrintContainerInfo) {
++ tty->print_cr("File path too long %s, %s", file, filename);
++ }
++ return OSCONTAINER_ERROR;
++ }
++ strncat(file, filename, MAXPATHLEN-filelen);
++ if (PrintContainerInfo) {
++ tty->print_cr("Path to %s is %s", filename, file);
++ }
++ fp = fopen(file, "r");
++ if (fp != NULL) {
++ p = fgets(buf, MAXPATHLEN, fp);
++ if (p != NULL) {
++ int matched = sscanf(p, scan_fmt, returnval);
++ if (matched == 1) {
++ fclose(fp);
++ return 0;
++ } else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Type %s not found in file %s", scan_fmt, file);
++ }
++ }
++ } else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Empty file %s", file);
++ }
++ }
++ } else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Open of file %s failed, %s", file, strerror(errno));
++ }
++ }
++ if (fp != NULL)
++ fclose(fp);
++ return OSCONTAINER_ERROR;
++}
++PRAGMA_DIAG_POP
++
++#define GET_CONTAINER_INFO(return_type, subsystem, filename, \
++ logstring, scan_fmt, variable) \
++ return_type variable; \
++{ \
++ int err; \
++ err = subsystem_file_contents(subsystem, \
++ filename, \
++ scan_fmt, \
++ &variable); \
++ if (err != 0) \
++ return (return_type) OSCONTAINER_ERROR; \
++ \
++ if (PrintContainerInfo) \
++ tty->print_cr(logstring, variable); \
++}
++
++#define GET_CONTAINER_INFO_CPTR(return_type, subsystem, filename, \
++ logstring, scan_fmt, variable, bufsize) \
++ char variable[bufsize]; \
++{ \
++ int err; \
++ err = subsystem_file_contents(subsystem, \
++ filename, \
++ scan_fmt, \
++ variable); \
++ if (err != 0) \
++ return (return_type) NULL; \
++ \
++ if (PrintContainerInfo) \
++ tty->print_cr(logstring, variable); \
++}
++
++/* init
++ *
++ * Initialize the container support and determine if
++ * we are running under cgroup control.
++ */
++void OSContainer::init() {
++ int mountid;
++ int parentid;
++ int major;
++ int minor;
++ FILE *mntinfo = NULL;
++ FILE *cgroup = NULL;
++ char buf[MAXPATHLEN+1];
++ char tmproot[MAXPATHLEN+1];
++ char tmpmount[MAXPATHLEN+1];
++ char tmpbase[MAXPATHLEN+1];
++ char *p;
++ jlong mem_limit;
++
++ assert(!_is_initialized, "Initializing OSContainer more than once");
++
++ _is_initialized = true;
++ _is_containerized = false;
++
++ _unlimited_memory = (LONG_MAX / os::vm_page_size()) * os::vm_page_size();
++
++ if (PrintContainerInfo) {
++ tty->print_cr("OSContainer::init: Initializing Container Support");
++ }
++ if (!UseContainerSupport) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Container Support not enabled");
++ }
++ return;
++ }
++
++ /*
++ * Find the cgroup mount point for memory and cpuset
++ * by reading /proc/self/mountinfo
++ *
++ * Example for docker:
++ * 219 214 0:29
/docker/7208cebd00fa5f2e342b1094f7bed87fa25661471a4637118e65f1c995be8a34
/sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,memory
++ *
++ * Example for host:
++ * 34 28 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:16 -
cgroup cgroup rw,memory
++ */
++ mntinfo = fopen("/proc/self/mountinfo", "r");
++ if (mntinfo == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Can't open /proc/self/mountinfo, %s",
++ strerror(errno));
++ }
++ return;
++ }
++
++ while ( (p = fgets(buf, MAXPATHLEN, mntinfo)) != NULL) {
++ // Look for the filesystem type and see if it's cgroup
++ char fstype[MAXPATHLEN+1];
++ fstype[0] = '\0';
++ char *s = strstr(p, " - ");
++ if (s != NULL &&
++ sscanf(s, " - %s", fstype) == 1 &&
++ strcmp(fstype, "cgroup") == 0) {
++
++ if (strstr(p, "memory") != NULL) {
++ int matched = sscanf(p, "%d %d %d:%d %s %s",
++ &mountid,
++ &parentid,
++ &major,
++ &minor,
++ tmproot,
++ tmpmount);
++ if (matched == 6) {
++ memory = new CgroupSubsystem(tmproot, tmpmount);
++ }
++ else
++ if (PrintContainerInfo) {
++ tty->print_cr("Incompatible str containing cgroup and memory:
%s", p);
++ }
++ } else if (strstr(p, "cpuset") != NULL) {
++ int matched = sscanf(p, "%d %d %d:%d %s %s",
++ &mountid,
++ &parentid,
++ &major,
++ &minor,
++ tmproot,
++ tmpmount);
++ if (matched == 6) {
++ cpuset = new CgroupSubsystem(tmproot, tmpmount);
++ }
++ else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Incompatible str containing cgroup and cpuset:
%s", p);
++ }
++ }
++ } else if (strstr(p, "cpu,cpuacct") != NULL || strstr(p,
"cpuacct,cpu") != NULL) {
++ int matched = sscanf(p, "%d %d %d:%d %s %s",
++ &mountid,
++ &parentid,
++ &major,
++ &minor,
++ tmproot,
++ tmpmount);
++ if (matched == 6) {
++ cpu = new CgroupSubsystem(tmproot, tmpmount);
++ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
++ }
++ else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Incompatible str containing cgroup and cpu,cpuacct:
%s", p);
++ }
++ }
++ } else if (strstr(p, "cpuacct") != NULL) {
++ int matched = sscanf(p, "%d %d %d:%d %s %s",
++ &mountid,
++ &parentid,
++ &major,
++ &minor,
++ tmproot,
++ tmpmount);
++ if (matched == 6) {
++ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
++ }
++ else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Incompatible str containing cgroup and cpuacct:
%s", p);
++ }
++ }
++ } else if (strstr(p, "cpu") != NULL) {
++ int matched = sscanf(p, "%d %d %d:%d %s %s",
++ &mountid,
++ &parentid,
++ &major,
++ &minor,
++ tmproot,
++ tmpmount);
++ if (matched == 6) {
++ cpu = new CgroupSubsystem(tmproot, tmpmount);
++ }
++ else {
++ if (PrintContainerInfo) {
++ tty->print_cr("Incompatible str containing cgroup and cpu: %s",
p);
++ }
++ }
++ }
++ }
++ }
++
++ fclose(mntinfo);
++
++ if (memory == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Required cgroup memory subsystem not found");
++ }
++ return;
++ }
++ if (cpuset == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Required cgroup cpuset subsystem not found");
++ }
++ return;
++ }
++ if (cpu == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Required cgroup cpu subsystem not found");
++ }
++ return;
++ }
++ if (cpuacct == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Required cgroup cpuacct subsystem not found");
++ }
++ return;
++ }
++
++ /*
++ * Read /proc/self/cgroup and map host mount point to
++ * local one via /proc/self/mountinfo content above
++ *
++ * Docker example:
++ * 5:memory:/docker/6558aed8fc662b194323ceab5b964f69cf36b3e8af877a14b80256e93aecb044
++ *
++ * Host example:
++ * 5:memory:/user.slice
++ *
++ * Construct a path to the process specific memory and cpuset
++ * cgroup directory.
++ *
++ * For a container running under Docker from memory example above
++ * the paths would be:
++ *
++ * /sys/fs/cgroup/memory
++ *
++ * For a Host from memory example above the path would be:
++ *
++ * /sys/fs/cgroup/memory/user.slice
++ *
++ */
++ cgroup = fopen("/proc/self/cgroup", "r");
++ if (cgroup == NULL) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Can't open /proc/self/cgroup, %s",
++ strerror(errno));
++ }
++ return;
++ }
++
++ while ( (p = fgets(buf, MAXPATHLEN, cgroup)) != NULL) {
++ int cgno;
++ int matched;
++ char *controller;
++ char *base;
++
++ /* Skip cgroup number */
++ strsep(&p, ":");
++ /* Get controller and base */
++ controller = strsep(&p, ":");
++ base = strsep(&p, "\n");
++
++ if (controller != NULL) {
++ if (strstr(controller, "memory") != NULL) {
++ memory->set_subsystem_path(base);
++ } else if (strstr(controller, "cpuset") != NULL) {
++ cpuset->set_subsystem_path(base);
++ } else if (strstr(controller, "cpu,cpuacct") != NULL ||
strstr(controller, "cpuacct,cpu") != NULL) {
++ cpu->set_subsystem_path(base);
++ cpuacct->set_subsystem_path(base);
++ } else if (strstr(controller, "cpuacct") != NULL) {
++ cpuacct->set_subsystem_path(base);
++ } else if (strstr(controller, "cpu") != NULL) {
++ cpu->set_subsystem_path(base);
++ }
++ }
++ }
++
++ fclose(cgroup);
++
++ // We need to update the amount of physical memory now that
++ // command line arguments have been processed.
++ if ((mem_limit = memory_limit_in_bytes()) > 0) {
++ os::Linux::set_physical_memory(mem_limit);
++ }
++
++ _is_containerized = true;
++
++}
++
++const char * OSContainer::container_type() {
++ if (is_containerized()) {
++ return "cgroupv1";
++ } else {
++ return NULL;
++ }
++}
++
++
++/* memory_limit_in_bytes
++ *
++ * Return the limit of available memory for this process.
++ *
++ * return:
++ * memory limit in bytes or
++ * -1 for unlimited
++ * OSCONTAINER_ERROR for not supported
++ */
++jlong OSContainer::memory_limit_in_bytes() {
++ GET_CONTAINER_INFO(julong, memory, "/memory.limit_in_bytes",
++ "Memory Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memlimit);
++
++ if (memlimit >= _unlimited_memory) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Memory Limit is: Unlimited");
++ }
++ return (jlong)-1;
++ }
++ else {
++ return (jlong)memlimit;
++ }
++}
++
++jlong OSContainer::memory_and_swap_limit_in_bytes() {
++ GET_CONTAINER_INFO(julong, memory, "/memory.memsw.limit_in_bytes",
++ "Memory and Swap Limit is: " JULONG_FORMAT,
JULONG_FORMAT, memswlimit);
++ if (memswlimit >= _unlimited_memory) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Memory and Swap Limit is: Unlimited");
++ }
++ return (jlong)-1;
++ } else {
++ return (jlong)memswlimit;
++ }
++}
++
++jlong OSContainer::memory_soft_limit_in_bytes() {
++ GET_CONTAINER_INFO(julong, memory, "/memory.soft_limit_in_bytes",
++ "Memory Soft Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memsoftlimit);
++ if (memsoftlimit >= _unlimited_memory) {
++ if (PrintContainerInfo) {
++ tty->print_cr("Memory Soft Limit is: Unlimited");
++ }
++ return (jlong)-1;
++ } else {
++ return (jlong)memsoftlimit;
++ }
++}
++
++/* memory_usage_in_bytes
++ *
++ * Return the amount of used memory for this process.
++ *
++ * return:
++ * memory usage in bytes or
++ * -1 for unlimited
++ * OSCONTAINER_ERROR for not supported
++ */
++jlong OSContainer::memory_usage_in_bytes() {
++ GET_CONTAINER_INFO(jlong, memory, "/memory.usage_in_bytes",
++ "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memusage);
++ return memusage;
++}
++
++/* memory_max_usage_in_bytes
++ *
++ * Return the maximum amount of used memory for this process.
++ *
++ * return:
++ * max memory usage in bytes or
++ * OSCONTAINER_ERROR for not supported
++ */
++jlong OSContainer::memory_max_usage_in_bytes() {
++ GET_CONTAINER_INFO(jlong, memory, "/memory.max_usage_in_bytes",
++ "Maximum Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memmaxusage);
++ return memmaxusage;
++}
++
++/* active_processor_count
++ *
++ * Calculate an appropriate number of active processors for the
++ * VM to use based on these three inputs.
++ *
++ * cpu affinity
++ * cgroup cpu quota & cpu period
++ * cgroup cpu shares
++ *
++ * Algorithm:
++ *
++ * Determine the number of available CPUs from sched_getaffinity
++ *
++ * If user specified a quota (quota != -1), calculate the number of
++ * required CPUs by dividing quota by period.
++ *
++ * If shares are in effect (shares != -1), calculate the number
++ * of CPUs required for the shares by dividing the share value
++ * by PER_CPU_SHARES.
++ *
++ * All results of division are rounded up to the next whole number.
++ *
++ * If neither shares or quotas have been specified, return the
++ * number of active processors in the system.
++ *
++ * If both shares and quotas have been specified, the results are
++ * based on the flag PreferContainerQuotaForCPUCount. If true,
++ * return the quota value. If false return the smallest value
++ * between shares or quotas.
++ *
++ * If shares and/or quotas have been specified, the resulting number
++ * returned will never exceed the number of active processors.
++ *
++ * return:
++ * number of CPUs
++ */
++int OSContainer::active_processor_count() {
++ int quota_count = 0, share_count = 0;
++ int cpu_count, limit_count;
++ int result;
++
++ cpu_count = limit_count = os::Linux::active_processor_count();
++ int quota = cpu_quota();
++ int period = cpu_period();
++ int share = cpu_shares();
++
++ if (quota > -1 && period > 0) {
++ quota_count = ceilf((float)quota / (float)period);
++ if (PrintContainerInfo) {
++ tty->print_cr("CPU Quota count based on quota/period: %d",
quota_count);
++ }
++ }
++ if (share > -1) {
++ share_count = ceilf((float)share / (float)PER_CPU_SHARES);
++ if (PrintContainerInfo) {
++ tty->print_cr("CPU Share count based on shares: %d", share_count);
++ }
++ }
++
++ // If both shares and quotas are setup results depend
++ // on flag PreferContainerQuotaForCPUCount.
++ // If true, limit CPU count to quota
++ // If false, use minimum of shares and quotas
++ if (quota_count !=0 && share_count != 0) {
++ if (PreferContainerQuotaForCPUCount) {
++ limit_count = quota_count;
++ } else {
++ limit_count = MIN2(quota_count, share_count);
++ }
++ } else if (quota_count != 0) {
++ limit_count = quota_count;
++ } else if (share_count != 0) {
++ limit_count = share_count;
++ }
++
++ result = MIN2(cpu_count, limit_count);
++ if (PrintContainerInfo) {
++ tty->print_cr("OSContainer::active_processor_count: %d", result);
++ }
++ return result;
++}
++
++char * OSContainer::cpu_cpuset_cpus() {
++ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.cpus",
++ "cpuset.cpus is: %s", "%1023s", cpus, 1024);
++ return os::strdup(cpus);
++}
++
++char * OSContainer::cpu_cpuset_memory_nodes() {
++ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.mems",
++ "cpuset.mems is: %s", "%1023s", mems, 1024);
++ return os::strdup(mems);
++}
++
++/* cpu_quota
++ *
++ * Return the number of milliseconds per period
++ * process is guaranteed to run.
++ *
++ * return:
++ * quota time in milliseconds
++ * -1 for no quota
++ * OSCONTAINER_ERROR for not supported
++ */
++int OSContainer::cpu_quota() {
++ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_quota_us",
++ "CPU Quota is: %d", "%d", quota);
++ return quota;
++}
++
++int OSContainer::cpu_period() {
++ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_period_us",
++ "CPU Period is: %d", "%d", period);
++ return period;
++}
++
++/* cpu_shares
++ *
++ * Return the amount of cpu shares available to the process
++ *
++ * return:
++ * Share number (typically a number relative to 1024)
++ * (2048 typically expresses 2 CPUs worth of processing)
++ * -1 for no share setup
++ * OSCONTAINER_ERROR for not supported
++ */
++int OSContainer::cpu_shares() {
++ GET_CONTAINER_INFO(int, cpu, "/cpu.shares",
++ "CPU Shares is: %d", "%d", shares);
++ // Convert 1024 to no shares setup
++ if (shares == 1024) return -1;
++
++ return shares;
++}
++
+diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.hpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
+@@ -0,0 +1,68 @@
++/*
++ * Copyright (c) 2018, 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.
++ *
++ */
++
++#ifndef OS_LINUX_VM_OSCONTAINER_LINUX_HPP
++#define OS_LINUX_VM_OSCONTAINER_LINUX_HPP
++
++#include "utilities/globalDefinitions.hpp"
++#include "utilities/macros.hpp"
++#include "memory/allocation.hpp"
++
++#define OSCONTAINER_ERROR (-2)
++
++class OSContainer: AllStatic {
++
++ private:
++ static bool _is_initialized;
++ static bool _is_containerized;
++
++ public:
++ static void init();
++ static inline bool is_containerized();
++ static const char * container_type();
++
++ static jlong memory_limit_in_bytes();
++ static jlong memory_and_swap_limit_in_bytes();
++ static jlong memory_soft_limit_in_bytes();
++ static jlong memory_usage_in_bytes();
++ static jlong memory_max_usage_in_bytes();
++
++ static int active_processor_count();
++
++ static char * cpu_cpuset_cpus();
++ static char * cpu_cpuset_memory_nodes();
++
++ static int cpu_quota();
++ static int cpu_period();
++
++ static int cpu_shares();
++
++};
++
++inline bool OSContainer::is_containerized() {
++ assert(_is_initialized, "OSContainer not initialized");
++ return _is_containerized;
++}
++
++#endif // OS_LINUX_VM_OSCONTAINER_LINUX_HPP
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -37,6 +37,7 @@
+ #include "mutex_linux.inline.hpp"
+ #include "oops/oop.inline.hpp"
+ #include "os_share_linux.hpp"
++#include "osContainer_linux.hpp"
+ #include "prims/jniFastGetField.hpp"
+ #include "prims/jvm.h"
+ #include "prims/jvm_misc.hpp"
+@@ -179,13 +180,62 @@
+ julong os::Linux::available_memory() {
+ // values in struct sysinfo are "unsigned long"
+ struct sysinfo si;
++ julong avail_mem;
++
++ if (OSContainer::is_containerized()) {
++ jlong mem_limit, mem_usage;
++ if ((mem_limit = OSContainer::memory_limit_in_bytes()) < 1) {
++ if (PrintContainerInfo) {
++ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
++ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
++ }
++ }
++
++ if (mem_limit > 0 && (mem_usage = OSContainer::memory_usage_in_bytes())
< 1) {
++ if (PrintContainerInfo) {
++ tty->print_cr("container memory usage failed: " JLONG_FORMAT
", using host value", mem_usage);
++ }
++ }
++
++ if (mem_limit > 0 && mem_usage > 0 ) {
++ avail_mem = mem_limit > mem_usage ? (julong)mem_limit - (julong)mem_usage : 0;
++ if (PrintContainerInfo) {
++ tty->print_cr("available container memory: " JULONG_FORMAT,
avail_mem);
++ }
++ return avail_mem;
++ }
++ }
++
+ sysinfo(&si);
+-
+- return (julong)si.freeram * si.mem_unit;
++ avail_mem = (julong)si.freeram * si.mem_unit;
++ if (Verbose) {
++ tty->print_cr("available memory: " JULONG_FORMAT, avail_mem);
++ }
++ return avail_mem;
+ }
+
+ julong os::physical_memory() {
+- return Linux::physical_memory();
++ jlong phys_mem = 0;
++ if (OSContainer::is_containerized()) {
++ jlong mem_limit;
++ if ((mem_limit = OSContainer::memory_limit_in_bytes()) > 0) {
++ if (PrintContainerInfo) {
++ tty->print_cr("total container memory: " JLONG_FORMAT, mem_limit);
++ }
++ return mem_limit;
++ }
++
++ if (PrintContainerInfo) {
++ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
++ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
++ }
++ }
++
++ phys_mem = Linux::physical_memory();
++ if (Verbose) {
++ tty->print_cr("total system memory: " JLONG_FORMAT, phys_mem);
++ }
++ return phys_mem;
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -2129,6 +2179,8 @@
+ os::Posix::print_load_average(st);
+
+ os::Linux::print_full_memory_info(st);
++
++ os::Linux::print_container_info(st);
+ }
+
+ // Try to identify popular distros.
+@@ -2194,6 +2246,57 @@
+ st->cr();
+ }
+
++void os::Linux::print_container_info(outputStream* st) {
++if (!OSContainer::is_containerized()) {
++ return;
++ }
++
++ st->print("container (cgroup) information:\n");
++
++ const char *p_ct = OSContainer::container_type();
++ st->print("container_type: %s\n", p_ct != NULL ? p_ct :
"failed");
++
++ char *p = OSContainer::cpu_cpuset_cpus();
++ st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "failed");
++ free(p);
++
++ p = OSContainer::cpu_cpuset_memory_nodes();
++ st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "failed");
++ free(p);
++
++ int i = OSContainer::active_processor_count();
++ if (i > 0) {
++ st->print("active_processor_count: %d\n", i);
++ } else {
++ st->print("active_processor_count: failed\n");
++ }
++
++ i = OSContainer::cpu_quota();
++ st->print("cpu_quota: %d\n", i);
++
++ i = OSContainer::cpu_period();
++ st->print("cpu_period: %d\n", i);
++
++ i = OSContainer::cpu_shares();
++ st->print("cpu_shares: %d\n", i);
++
++ jlong j = OSContainer::memory_limit_in_bytes();
++ st->print("memory_limit_in_bytes: " JLONG_FORMAT "\n", j);
++
++ j = OSContainer::memory_and_swap_limit_in_bytes();
++ st->print("memory_and_swap_limit_in_bytes: " JLONG_FORMAT "\n",
j);
++
++ j = OSContainer::memory_soft_limit_in_bytes();
++ st->print("memory_soft_limit_in_bytes: " JLONG_FORMAT "\n",
j);
++
++ j = OSContainer::OSContainer::memory_usage_in_bytes();
++ st->print("memory_usage_in_bytes: " JLONG_FORMAT "\n", j);
++
++ j = OSContainer::OSContainer::memory_max_usage_in_bytes();
++ st->print("memory_max_usage_in_bytes: " JLONG_FORMAT "\n", j);
++ st->cr();
++}
++
+ void os::print_memory_info(outputStream* st) {
+
+ st->print("Memory:");
+@@ -4966,6 +5069,10 @@
+ }
+ }
+
++void os::pd_init_container_support() {
++ OSContainer::init();
++}
++
+ // this is called _after_ the global arguments have been parsed
+ jint os::init_2(void)
+ {
+@@ -5146,7 +5253,7 @@
+ // sched_getaffinity gives an accurate answer as it accounts for cpusets.
+ // If anything goes wrong we fallback to returning the number of online
+ // processors - which can be greater than the number available to the process.
+-int os::active_processor_count() {
++int os::Linux::active_processor_count() {
+ cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
+ int cpus_size = sizeof(cpu_set_t);
+ int cpu_count = 0;
+@@ -5164,10 +5271,48 @@
+ "which may exceed available processors", strerror(errno),
cpu_count);
+ }
+
+- assert(cpu_count > 0 && cpu_count <= processor_count(), "sanity
check");
++ assert(cpu_count > 0 && cpu_count <= os::processor_count(), "sanity
check");
+ return cpu_count;
+ }
+
++// Determine the active processor count from one of
++// three different sources:
++//
++// 1. User option -XX:ActiveProcessorCount
++// 2. kernel os calls (sched_getaffinity or sysconf(_SC_NPROCESSORS_ONLN)
++// 3. extracted from cgroup cpu subsystem (shares and quotas)
++//
++// Option 1, if specified, will always override.
++// If the cgroup subsystem is active and configured, we
++// will return the min of the cgroup and option 2 results.
++// This is required since tools, such as numactl, that
++// alter cpu affinity do not update cgroup subsystem
++// cpuset configuration files.
++int os::active_processor_count() {
++ // User has overridden the number of active processors
++ if (ActiveProcessorCount > 0) {
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: "
++ "active processor count set by user : %d",
++ ActiveProcessorCount);
++ }
++ return ActiveProcessorCount;
++ }
++
++ int active_cpus;
++ if (OSContainer::is_containerized()) {
++ active_cpus = OSContainer::active_processor_count();
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: determined by OSContainer:
%d",
++ active_cpus);
++ }
++ } else {
++ active_cpus = os::Linux::active_processor_count();
++ }
++
++ return active_cpus;
++}
++
+ void os::set_native_thread_name(const char *name) {
+ // Not yet implemented.
+ return;
+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
openjdk/hotspot/src/os/linux/vm/os_linux.hpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
+@@ -35,6 +35,7 @@
+
+ class Linux {
+ friend class os;
++ friend class OSContainer;
+ friend class TestReserveMemorySpecial;
+
+ // For signal-chaining
+@@ -79,6 +80,9 @@
+
+ static julong available_memory();
+ static julong physical_memory() { return _physical_memory; }
++ static void set_physical_memory(julong phys_mem) { _physical_memory = phys_mem; }
++ static int active_processor_count();
++
+ static void initialize_system_info();
+
+ static int commit_memory_impl(char* addr, size_t bytes, bool exec);
+@@ -116,6 +120,7 @@
+ static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
+
+ static void print_full_memory_info(outputStream* st);
++ static void print_container_info(outputStream* st);
+ static void print_distro_info(outputStream* st);
+ static void print_libversion_info(outputStream* st);
+
+diff --git openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
+--- openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
++++ openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
+@@ -357,6 +357,16 @@
+ }
+
+ int os::active_processor_count() {
++ // User has overridden the number of active processors
++ if (ActiveProcessorCount > 0) {
++ if (Verbose) {
++ tty->print_cr("active_processor_count: "
++ "active processor count set by user : %d",
++ ActiveProcessorCount);
++ }
++ return ActiveProcessorCount;
++ }
++
+ int online_cpus = sysconf(_SC_NPROCESSORS_ONLN);
+ pid_t pid = getpid();
+ psetid_t pset = PS_NONE;
+diff --git openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
openjdk/hotspot/src/os/windows/vm/os_windows.cpp
+--- openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
++++ openjdk/hotspot/src/os/windows/vm/os_windows.cpp
+@@ -716,6 +716,16 @@
+ #endif
+
+ int os::active_processor_count() {
++ // User has overridden the number of active processors
++ if (ActiveProcessorCount > 0) {
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: "
++ "active processor count set by user : %d",
++ ActiveProcessorCount);
++ }
++ return ActiveProcessorCount;
++ }
++
+ DWORD_PTR lpProcessAffinityMask = 0;
+ DWORD_PTR lpSystemAffinityMask = 0;
+ int proc_count = processor_count();
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2018, 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
+@@ -1801,20 +1801,34 @@
+ }
+ }
+
++ // Convert Fraction to Precentage values
++ if (FLAG_IS_DEFAULT(MaxRAMPercentage) &&
++ !FLAG_IS_DEFAULT(MaxRAMFraction))
++ MaxRAMPercentage = 100.0 / MaxRAMFraction;
++
++ if (FLAG_IS_DEFAULT(MinRAMPercentage) &&
++ !FLAG_IS_DEFAULT(MinRAMFraction))
++ MinRAMPercentage = 100.0 / MinRAMFraction;
++
++ if (FLAG_IS_DEFAULT(InitialRAMPercentage) &&
++ !FLAG_IS_DEFAULT(InitialRAMFraction))
++ InitialRAMPercentage = 100.0 / InitialRAMFraction;
++
+ // If the maximum heap size has not been set with -Xmx,
+ // then set it as fraction of the size of physical memory,
+ // respecting the maximum and minimum sizes of the heap.
+ if (FLAG_IS_DEFAULT(MaxHeapSize)) {
+- julong reasonable_max = phys_mem / MaxRAMFraction;
+-
+- if (phys_mem <= MaxHeapSize * MinRAMFraction) {
++ julong reasonable_max = (julong)((phys_mem * MaxRAMPercentage) / 100);
++ const julong reasonable_min = (julong)((phys_mem * MinRAMPercentage) / 100);
++ if (reasonable_min < MaxHeapSize) {
+ // Small physical memory, so use a minimum fraction of it for the heap
+- reasonable_max = phys_mem / MinRAMFraction;
++ reasonable_max = reasonable_min;
+ } else {
+ // Not-small physical memory, so require a heap at least
+ // as large as MaxHeapSize
+ reasonable_max = MAX2(reasonable_max, (julong)MaxHeapSize);
+ }
++
+ if (!FLAG_IS_DEFAULT(ErgoHeapSizeLimit) && ErgoHeapSizeLimit != 0) {
+ // Limit the heap size to ErgoHeapSizeLimit
+ reasonable_max = MIN2(reasonable_max, (julong)ErgoHeapSizeLimit);
+@@ -1856,7 +1870,7 @@
+ reasonable_minimum = limit_by_allocatable_memory(reasonable_minimum);
+
+ if (InitialHeapSize == 0) {
+- julong reasonable_initial = phys_mem / InitialRAMFraction;
++ julong reasonable_initial = (julong)((phys_mem * InitialRAMPercentage) / 100);
+
+ reasonable_initial = MAX3(reasonable_initial, reasonable_minimum,
(julong)min_heap_size());
+ reasonable_initial = MIN2(reasonable_initial, (julong)MaxHeapSize);
+@@ -1881,6 +1895,94 @@
+ }
+ }
+
++// This option inspects the machine and attempts to set various
++// parameters to be optimal for long-running, memory allocation
++// intensive jobs. It is intended for machines with large
++// amounts of cpu and memory.
++jint Arguments::set_aggressive_heap_flags() {
++ // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
++ // VM, but we may not be able to represent the total physical memory
++ // available (like having 8gb of memory on a box but using a 32bit VM).
++ // Thus, we need to make sure we're using a julong for intermediate
++ // calculations.
++ julong initHeapSize;
++ julong total_memory = os::physical_memory();
++
++ if (total_memory < (julong) 256 * M) {
++ jio_fprintf(defaultStream::error_stream(),
++ "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
++ vm_exit(1);
++ }
++
++ // The heap size is half of available memory, or (at most)
++ // all of possible memory less 160mb (leaving room for the OS
++ // when using ISM). This is the maximum; because adaptive sizing
++ // is turned on below, the actual space used may be smaller.
++
++ initHeapSize = MIN2(total_memory / (julong) 2,
++ total_memory - (julong) 160 * M);
++
++ initHeapSize = limit_by_allocatable_memory(initHeapSize);
++
++ if (FLAG_IS_DEFAULT(MaxHeapSize)) {
++ FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
++ FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
++ // Currently the minimum size and the initial heap sizes are the same.
++ set_min_heap_size(initHeapSize);
++ }
++ if (FLAG_IS_DEFAULT(NewSize)) {
++ // Make the young generation 3/8ths of the total heap.
++ FLAG_SET_CMDLINE(uintx, NewSize,
++ ((julong) MaxHeapSize / (julong) 8) * (julong) 3);
++ FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
++ }
++
++#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
++ FLAG_SET_DEFAULT(UseLargePages, true);
++#endif
++
++ // Increase some data structure sizes for efficiency
++ FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
++ FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
++ FLAG_SET_CMDLINE(uintx, TLABSize, 256 * K);
++
++ // See the OldPLABSize comment below, but replace 'after promotion'
++ // with 'after copying'. YoungPLABSize is the size of the survivor
++ // space per-gc-thread buffers. The default is 4kw.
++ FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256 * K); // Note: this is in words
++
++ // OldPLABSize is the size of the buffers in the old gen that
++ // UseParallelGC uses to promote live data that doesn't fit in the
++ // survivor spaces. At any given time, there's one for each gc thread.
++ // The default size is 1kw. These buffers are rarely used, since the
++ // survivor spaces are usually big enough. For specjbb, however, there
++ // are occasions when there's lots of live data in the young gen
++ // and we end up promoting some of it. We don't have a definite
++ // explanation for why bumping OldPLABSize helps, but the theory
++ // is that a bigger PLAB results in retaining something like the
++ // original allocation order after promotion, which improves mutator
++ // locality. A minor effect may be that larger PLABs reduce the
++ // number of PLAB allocation events during gc. The value of 8kw
++ // was arrived at by experimenting with specjbb.
++ FLAG_SET_CMDLINE(uintx, OldPLABSize, 8 * K); // Note: this is in words
++
++ // Enable parallel GC and adaptive generation sizing
++ FLAG_SET_CMDLINE(bool, UseParallelGC, true);
++
++ // Encourage steady state memory management
++ FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
++
++ // This appears to improve mutator locality
++ FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
++
++ // Get around early Solaris scheduling bug
++ // (affinity vs other jobs on system)
++ // but disallow DR and offlining (5008695).
++ FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
++
++ return JNI_OK;
++}
++
+ // This must be called after ergonomics because we want bytecode rewriting
+ // if the server compiler is used, or if UseSharedSpaces is disabled.
+ void Arguments::set_bytecode_flags() {
+@@ -2644,6 +2746,14 @@
+ return result;
+ }
+
++ // We need to ensure processor and memory resources have been properly
++ // configured - which may rely on arguments we just processed - before
++ // doing the final argument processing. Any argument processing that
++ // needs to know about processor and memory resources must occur after
++ // this point.
++
++ os::init_container_support();
++
+ // Do final processing now that all arguments have been parsed
+ result = finalize_vm_init_args(&scp, scp_assembly_required);
+ if (result != JNI_OK) {
+@@ -3117,94 +3227,6 @@
+ _exit_hook = CAST_TO_FN_PTR(exit_hook_t, option->extraInfo);
+ } else if (match_option(option, "abort", &tail)) {
+ _abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
+- // -XX:+AggressiveHeap
+- } else if (match_option(option, "-XX:+AggressiveHeap", &tail)) {
+-
+- // This option inspects the machine and attempts to set various
+- // parameters to be optimal for long-running, memory allocation
+- // intensive jobs. It is intended for machines with large
+- // amounts of cpu and memory.
+-
+- // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
+- // VM, but we may not be able to represent the total physical memory
+- // available (like having 8gb of memory on a box but using a 32bit VM).
+- // Thus, we need to make sure we're using a julong for intermediate
+- // calculations.
+- julong initHeapSize;
+- julong total_memory = os::physical_memory();
+-
+- if (total_memory < (julong)256*M) {
+- jio_fprintf(defaultStream::error_stream(),
+- "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
+- vm_exit(1);
+- }
+-
+- // The heap size is half of available memory, or (at most)
+- // all of possible memory less 160mb (leaving room for the OS
+- // when using ISM). This is the maximum; because adaptive sizing
+- // is turned on below, the actual space used may be smaller.
+-
+- initHeapSize = MIN2(total_memory / (julong)2,
+- total_memory - (julong)160*M);
+-
+- initHeapSize = limit_by_allocatable_memory(initHeapSize);
+-
+- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
+- FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
+- FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
+- // Currently the minimum size and the initial heap sizes are the same.
+- set_min_heap_size(initHeapSize);
+- }
+- if (FLAG_IS_DEFAULT(NewSize)) {
+- // Make the young generation 3/8ths of the total heap.
+- FLAG_SET_CMDLINE(uintx, NewSize,
+- ((julong)MaxHeapSize / (julong)8) * (julong)3);
+- FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
+- }
+-
+-#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
+- FLAG_SET_DEFAULT(UseLargePages, true);
+-#endif
+-
+- // Increase some data structure sizes for efficiency
+- FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
+- FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
+- FLAG_SET_CMDLINE(uintx, TLABSize, 256*K);
+-
+- // See the OldPLABSize comment below, but replace 'after promotion'
+- // with 'after copying'. YoungPLABSize is the size of the survivor
+- // space per-gc-thread buffers. The default is 4kw.
+- FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K); // Note: this is in words
+-
+- // OldPLABSize is the size of the buffers in the old gen that
+- // UseParallelGC uses to promote live data that doesn't fit in the
+- // survivor spaces. At any given time, there's one for each gc thread.
+- // The default size is 1kw. These buffers are rarely used, since the
+- // survivor spaces are usually big enough. For specjbb, however, there
+- // are occasions when there's lots of live data in the young gen
+- // and we end up promoting some of it. We don't have a definite
+- // explanation for why bumping OldPLABSize helps, but the theory
+- // is that a bigger PLAB results in retaining something like the
+- // original allocation order after promotion, which improves mutator
+- // locality. A minor effect may be that larger PLABs reduce the
+- // number of PLAB allocation events during gc. The value of 8kw
+- // was arrived at by experimenting with specjbb.
+- FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K); // Note: this is in words
+-
+- // Enable parallel GC and adaptive generation sizing
+- FLAG_SET_CMDLINE(bool, UseParallelGC, true);
+-
+- // Encourage steady state memory management
+- FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
+-
+- // This appears to improve mutator locality
+- FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
+-
+- // Get around early Solaris scheduling bug
+- // (affinity vs other jobs on system)
+- // but disallow DR and offlining (5008695).
+- FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
+-
+ } else if (match_option(option, "-XX:+NeverTenure", &tail)) {
+ // The last option must always win.
+ FLAG_SET_CMDLINE(bool, AlwaysTenure, false);
+@@ -3605,6 +3627,15 @@
+ return JNI_ERR;
+ }
+
++ // This must be done after all arguments have been processed
++ // and the container support has been initialized since AggressiveHeap
++ // relies on the amount of total memory available.
++ if (AggressiveHeap) {
++ jint result = set_aggressive_heap_flags();
++ if (result != JNI_OK) {
++ return result;
++ }
++ }
+ // This must be done after all arguments have been processed.
+ // java_compiler() true means set to "NONE" or empty.
+ if (java_compiler() && !xdebug_mode()) {
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
openjdk/hotspot/src/share/vm/runtime/arguments.hpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.hpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2018, 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
+@@ -365,6 +365,8 @@
+ // Aggressive optimization flags.
+ static void set_aggressive_opts_flags();
+
++ static jint set_aggressive_heap_flags();
++
+ // Argument parsing
+ static void do_pd_flag_adjustments();
+ static bool parse_argument(const char* arg, Flag::Flags origin);
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
openjdk/hotspot/src/share/vm/runtime/globals.hpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
+@@ -2076,13 +2076,23 @@
+ product_pd(uint64_t, MaxRAM, \
+ "Real memory size (in bytes) used to set maximum heap size") \
+ \
++ product(bool, AggressiveHeap, false, \
++ "Optimize heap options for long-running memory intensive apps") \
++ \
+ product(uintx, ErgoHeapSizeLimit, 0, \
+ "Maximum ergonomically set heap size (in bytes); zero means use " \
+- "MaxRAM / MaxRAMFraction") \
++ "MaxRAM * MaxRAMPercentage / 100") \
+ \
+ experimental(bool, UseCGroupMemoryLimitForHeap, false, \
+ "Use CGroup memory limit as physical memory limit for heap " \
+- "sizing") \
++ "sizing" \
++ "Deprecated, replaced by container support") \
++ \
++ diagnostic(bool, PrintContainerInfo, false, \
++ "Print container related information") \
++ \
++ diagnostic(bool, PrintActiveCpus, false, \
++ "Print the number of CPUs detected in os::active_processor_count")
\
+ \
+ product(uintx, MaxRAMFraction, 4, \
+ "Maximum fraction (1/n) of real memory used for maximum heap " \
+@@ -2099,6 +2109,19 @@
+ product(uintx, InitialRAMFraction, 64, \
+ "Fraction (1/n) of real memory used for initial heap size") \
+ \
++ product(double, MaxRAMPercentage, 25.0, \
++ "Maximum percentage of real memory used for maximum heap size") \
++ \
++ product(double, MinRAMPercentage, 50.0, \
++ "Minimum percentage of real memory used for maximum heap" \
++ "size on systems with small physical memory size") \
++ \
++ product(double, InitialRAMPercentage, 1.5625, \
++ "Percentage of real memory used for initial heap size") \
++ \
++ product(intx, ActiveProcessorCount, -1, \
++ "Specify the CPU count the VM should use and report as active") \
++ \
+ develop(uintx, MaxVirtMemFraction, 2, \
+ "Maximum fraction (1/n) of virtual memory used for ergonomically "\
+ "determining maximum heap size") \
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
openjdk/hotspot/src/share/vm/runtime/os.hpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
++++ openjdk/hotspot/src/share/vm/runtime/os.hpp
+@@ -152,8 +152,16 @@
+ static size_t page_size_for_region(size_t region_size, size_t min_pages, bool
must_be_aligned);
+
+ static void initialize_initial_active_processor_count();
++
++ LINUX_ONLY(static void pd_init_container_support();)
++
+ public:
+ static void init(void); // Called before command line parsing
++
++ static void init_container_support() { // Called during command line parsing.
++ LINUX_ONLY(pd_init_container_support();)
++ }
++
+ static void init_before_ergo(void); // Called after command line parsing
+ // before VM ergonomics processing.
+ static jint init_2(void); // Called after command line parsing
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
openjdk/hotspot/src/share/vm/runtime/thread.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
++++ openjdk/hotspot/src/share/vm/runtime/thread.cpp
+@@ -3332,6 +3332,7 @@
+ Arguments::init_version_specific_system_properties();
+
+ // Parse arguments
++ // Note: this internally calls os::init_container_support()
+ jint parse_result = Arguments::parse(args);
+ if (parse_result != JNI_OK) return parse_result;
+
diff --git a/8203182-pr3603-rh1568033.patch b/8203182-pr3603-rh1568033.patch
new file mode 100644
index 0000000..031a60c
--- /dev/null
+++ b/8203182-pr3603-rh1568033.patch
@@ -0,0 +1,131 @@
+# HG changeset patch
+# User igerasim
+# Date 1528992969 25200
+# Thu Jun 14 09:16:09 2018 -0700
+# Node ID d9b0b4bd2526818afa73b60da77403245554caa8
+# Parent 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6
+8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
+Summary: Ensure session is properly released in P11Signature class
+Reviewed-by: valeriep
+Contributed-by: Martin Balao <mbalao(a)redhat.com>
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java
+@@ -309,47 +309,51 @@
+ session = token.killSession(session);
+ return;
+ }
+- // "cancel" operation by finishing it
+- // XXX make sure all this always works correctly
+- if (mode == M_SIGN) {
+- try {
+- if (type == T_UPDATE) {
+- token.p11.C_SignFinal(session.id(), 0);
+- } else {
+- byte[] digest;
+- if (type == T_DIGEST) {
+- digest = md.digest();
+- } else { // T_RAW
+- digest = buffer;
++ try {
++ // "cancel" operation by finishing it
++ // XXX make sure all this always works correctly
++ if (mode == M_SIGN) {
++ try {
++ if (type == T_UPDATE) {
++ token.p11.C_SignFinal(session.id(), 0);
++ } else {
++ byte[] digest;
++ if (type == T_DIGEST) {
++ digest = md.digest();
++ } else { // T_RAW
++ digest = buffer;
++ }
++ token.p11.C_Sign(session.id(), digest);
+ }
+- token.p11.C_Sign(session.id(), digest);
++ } catch (PKCS11Exception e) {
++ throw new ProviderException("cancel failed", e);
+ }
+- } catch (PKCS11Exception e) {
+- throw new ProviderException("cancel failed", e);
++ } else { // M_VERIFY
++ try {
++ byte[] signature;
++ if (keyAlgorithm.equals("DSA")) {
++ signature = new byte[40];
++ } else {
++ signature = new byte[(p11Key.length() + 7) >> 3];
++ }
++ if (type == T_UPDATE) {
++ token.p11.C_VerifyFinal(session.id(), signature);
++ } else {
++ byte[] digest;
++ if (type == T_DIGEST) {
++ digest = md.digest();
++ } else { // T_RAW
++ digest = buffer;
++ }
++ token.p11.C_Verify(session.id(), digest, signature);
++ }
++ } catch (PKCS11Exception e) {
++ // will fail since the signature is incorrect
++ // XXX check error code
++ }
+ }
+- } else { // M_VERIFY
+- try {
+- byte[] signature;
+- if (keyAlgorithm.equals("DSA")) {
+- signature = new byte[40];
+- } else {
+- signature = new byte[(p11Key.length() + 7) >> 3];
+- }
+- if (type == T_UPDATE) {
+- token.p11.C_VerifyFinal(session.id(), signature);
+- } else {
+- byte[] digest;
+- if (type == T_DIGEST) {
+- digest = md.digest();
+- } else { // T_RAW
+- digest = buffer;
+- }
+- token.p11.C_Verify(session.id(), digest, signature);
+- }
+- } catch (PKCS11Exception e) {
+- // will fail since the signature is incorrect
+- // XXX check error code
+- }
++ } finally {
++ session = token.releaseSession(session);
+ }
+ }
+
+@@ -368,6 +372,8 @@
+ }
+ initialized = true;
+ } catch (PKCS11Exception e) {
++ // release session when initialization failed
++ session = token.releaseSession(session);
+ throw new ProviderException("Initialization failed", e);
+ }
+ if (bytesProcessed != 0) {
+@@ -529,6 +535,8 @@
+ }
+ bytesProcessed += len;
+ } catch (PKCS11Exception e) {
++ initialized = false;
++ session = token.releaseSession(session);
+ throw new ProviderException(e);
+ }
+ break;
+@@ -576,6 +584,8 @@
+ bytesProcessed += len;
+ byteBuffer.position(ofs + len);
+ } catch (PKCS11Exception e) {
++ initialized = false;
++ session = token.releaseSession(session);
+ throw new ProviderException("Update failed", e);
+ }
+ break;
diff --git a/8206406-pr3610-rh1597825.patch b/8206406-pr3610-rh1597825.patch
new file mode 100644
index 0000000..0f38126
--- /dev/null
+++ b/8206406-pr3610-rh1597825.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User aph
+# Date 1531146945 -3600
+# Mon Jul 09 15:35:45 2018 +0100
+# Node ID 95b72537801cc9946c27ad27f07e3f0790a21b08
+# Parent f6341f4635dacb56678264d29a88cd052b74036b
+8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
+Reviewed-by: dholmes
+
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp
+@@ -34,12 +34,12 @@
+
+ // Implementation of StubCodeDesc
+
+-StubCodeDesc* StubCodeDesc::_list = NULL;
+-int StubCodeDesc::_count = 0;
++StubCodeDesc* volatile StubCodeDesc::_list = NULL;
++int StubCodeDesc::_count = 0;
+
+
+ StubCodeDesc* StubCodeDesc::desc_for(address pc) {
+- StubCodeDesc* p = _list;
++ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
+ while (p != NULL && !p->contains(pc)) p = p->_next;
+ // p == NULL || p->contains(pc)
+ return p;
+@@ -47,7 +47,7 @@
+
+
+ StubCodeDesc* StubCodeDesc::desc_for_index(int index) {
+- StubCodeDesc* p = _list;
++ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
+ while (p != NULL && p->index() != index) p = p->_next;
+ return p;
+ }
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp
+@@ -38,7 +38,7 @@
+
+ class StubCodeDesc: public CHeapObj<mtCode> {
+ protected:
+- static StubCodeDesc* _list; // the list of all descriptors
++ static StubCodeDesc* volatile _list; // the list of all descriptors
+ static int _count; // length of list
+
+ StubCodeDesc* _next; // the next element in the linked list
+@@ -69,13 +69,13 @@
+
+ StubCodeDesc(const char* group, const char* name, address begin) {
+ assert(name != NULL, "no name specified");
+- _next = _list;
++ _next = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list);
+ _group = group;
+ _name = name;
+ _index = ++_count; // (never zero)
+ _begin = begin;
+ _end = NULL;
+- _list = this;
++ OrderAccess::release_store_ptr(&_list, this);
+ };
+
+ const char* group() const { return _group; }
diff --git a/hotspot-remove-debuglink.patch b/8206425-hotspot-remove-debuglink.patch
similarity index 64%
rename from hotspot-remove-debuglink.patch
rename to 8206425-hotspot-remove-debuglink.patch
index 3b3070d..adbf1f0 100644
--- a/hotspot-remove-debuglink.patch
+++ b/8206425-hotspot-remove-debuglink.patch
@@ -1,15 +1,15 @@
-Remove unnecessary .gnu_debuglink sections from libjvm
+# HG changeset patch
+# User sgehwolf
+# Date 1530808022 -7200
+# Thu Jul 05 18:27:02 2018 +0200
+# Node ID 5ba59d58d976db456c4455640111e8107b8d80e8
+# Parent ad057f2e3211cd18bc56550d8a2c400d92ec35b1
+8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
+Summary: Only add .gnu_debuglink sections when there is some stripping done.
+Reviewed-by: erikj, dholmes
-The .gnu_debuglink section indicates which file contains the debuginfo. This
-is not needed if we not stripping the shared object.
-
-RPM's debuginfo extraction code will add the right file links automatically. As
-it is, RPM copies over the .gnu_debuglink link to the debug info file. Without
-this patch, the debug info file also ends up containing the .gnu_debuglink
-section pointing to a missing (and not needed) file.
-
-diff --git a/make/linux/makefiles/jsig.make b/make/linux/makefiles/jsig.make
---- openjdk/hotspot/make/linux/makefiles/jsig.make
+diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
+++ openjdk/hotspot/make/linux/makefiles/jsig.make
@@ -57,14 +57,15 @@
$(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
@@ -29,10 +29,10 @@ diff --git a/make/linux/makefiles/jsig.make
b/make/linux/makefiles/jsig.make
endif
ifeq ($(ZIP_DEBUGINFO_FILES),1)
$(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO)
-diff --git a/make/linux/makefiles/saproc.make b/make/linux/makefiles/saproc.make
---- openjdk/hotspot/make/linux/makefiles/saproc.make
+diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -99,14 +99,15 @@
+@@ -100,14 +100,15 @@
-lthread_db
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
@@ -50,21 +50,21 @@ diff --git a/make/linux/makefiles/saproc.make
b/make/linux/makefiles/saproc.make
endif
ifeq ($(ZIP_DEBUGINFO_FILES),1)
$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
-diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make
---- openjdk/hotspot/make/linux/makefiles/vm.make
+diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
+--- openjdk.orig/hotspot/make/linux/makefiles/vm.make
+++ openjdk/hotspot/make/linux/makefiles/vm.make
@@ -358,14 +358,15 @@
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
-- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
- ifeq ($(STRIP_POLICY),all_strip)
++ ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+- ifeq ($(STRIP_POLICY),all_strip)
$(QUIETLY) $(STRIP) $@
-+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
else
ifeq ($(STRIP_POLICY),min_strip)
- $(QUIETLY) $(STRIP) -g $@
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+ $(QUIETLY) $(STRIP) -g $@
+ endif
# implied else here is no stripping at all
- endif
diff --git a/hotspot-assembler-debuginfo.patch
b/8207057-pr3613-hotspot-assembler-debuginfo.patch
similarity index 100%
rename from hotspot-assembler-debuginfo.patch
rename to 8207057-pr3613-hotspot-assembler-debuginfo.patch
diff --git a/dont-add-unnecessary-debug-links.patch
b/8207234-dont-add-unnecessary-debug-links.patch
similarity index 100%
rename from dont-add-unnecessary-debug-links.patch
rename to 8207234-dont-add-unnecessary-debug-links.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f89ec64..8ba0d79 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -221,7 +221,11 @@
# 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-jdk8u172-b11
+%global revision aarch64-jdk8u181-b13
+%global shenandoah_project aarch64-port
+%global shenandoah_repo jdk8u-shenandoah
+%global shenandoah_revision aarch64-shenandoah-jdk8u181-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
@@ -957,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 16.%{buildver}%{?dist}
+Release: 7.%{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
@@ -993,13 +997,20 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
+# aarch64-port/jdk8u-shenandoah contains an integration forest of
+# OpenJDK 8u, the aarch64 port and Shenandoah
+# To regenerate, use:
+# VERSION=%%{shenandoah_revision}
+# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
+# REPO_ROOT=<path to checked-out repository> REPOS=hotspot
generate_source_tarball.sh
+# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
+Source1: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
# Custom README for -src subpackage
Source2: README.md
# Use 'generate_tarballs.sh' to generate the following tarballs
-# They are based on code contained in the IcedTea7 project
+# They are based on code contained in the IcedTea project (3.x)
# Systemtap tapsets. Zipped up to keep it small
Source8: systemtap-tapset-3.6.0pre02.tar.xz
@@ -1087,10 +1098,8 @@ Patch531: rhbz_1538767_fix_linking.patch
#
#############################################
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
-Patch204: hotspot-remove-debuglink.patch
-Patch205: dont-add-unnecessary-debug-links.patch
-# Enable debug information for assembly code files
-Patch206: hotspot-assembler-debuginfo.patch
+# 8207234: More libraries with .gnu_debuglink sections added unconditionally
+Patch205: 8207234-dont-add-unnecessary-debug-links.patch
# Arch-specific upstreamable patches
# s390: PR2415: JVM -Xmx requirement is too high on s390
@@ -1121,40 +1130,21 @@ Patch7: include-all-srcs.patch
Patch202: system-libpng.patch
# 8042159: Allow using a system-installed lcms2
Patch203: system-lcms.patch
-# PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the
unpack200 binary"
+# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
-# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Patch506: pr2842-01.patch
-Patch507: pr2842-02.patch
# S8154313: Generated javadoc scattered all over the place
Patch400: 8154313.patch
-# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
-Patch526: 6260348-pr3066.patch
-# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
-Patch538: 8061305-pr3335-rh1423421.patch
-# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
-Patch560: 8188030-pr3459-rh1484079.patch
# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
Patch561: 8197429-pr3546-rh1536622.patch
-# PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-Patch562: pr3539-rh1548475.patch
# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
Patch563: 8171000-pr3542-rh1402819.patch
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
Patch564: 8197546-pr3542-rh1402819.patch
-# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
-Patch565: 8185723-pr3553.patch
-# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
-Patch566: 8186461-pr3557.patch
# PR3559: Use ldrexd for atomic reads on ARMv7.
Patch567: pr3559.patch
# 8187577, PR3578: JVM crash during gc doing concurrent marking
Patch568: 8187577-pr3578.patch
-# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
-Patch569: 8201509-pr3579.patch
-# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
-Patch570: 8165489-pr3589.patch
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
Patch571: pr3591.patch
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
@@ -1169,6 +1159,44 @@ Patch575: 8197981-pr3548.patch
Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
+# 8207057, PR3613: Enable debug information for assembly code files
+Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
+
+#############################################
+#
+# Patches appearing in 8u192
+#
+#############################################
+# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
+Patch506: pr2842-01.patch
+# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
+Patch507: pr2842-02.patch
+# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+Patch526: 6260348-pr3066.patch
+# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
+Patch538: 8061305-pr3335-rh1423421.patch
+# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
+Patch560: 8188030-pr3459-rh1484079.patch
+# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+Patch562: pr3539-rh1548475.patch
+# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+Patch565: 8185723-pr3553.patch
+# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+Patch566: 8186461-pr3557.patch
+# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+Patch569: 8201509-pr3579.patch
+# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+Patch570: 8165489-pr3589.patch
+# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
+Patch578: 8075942-pr3602-rh1582032.patch
+# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
+Patch579: 8203182-pr3603-rh1568033.patch
+# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
+Patch580: 8206406-pr3610-rh1597825.patch
+# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
+Patch581: 8146115-pr3508-rh1463098.patch
+# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
+Patch204: 8206425-hotspot-remove-debuglink.patch
#############################################
#
@@ -1186,7 +1214,6 @@ Patch300: PR3183.patch
# Local fixes
#
#############################################
-
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
Patch525: pr1834-rh1022017.patch
# Turn on AssumeMP by default on RHEL systems
@@ -1612,6 +1639,10 @@ popd
%patch575
%patch576
%patch577
+%patch578
+%patch579
+%patch580
+%patch581
# RPM-only fixes
%patch525
diff --git a/sources b/sources
index 32c9800..c3c111b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
848f42ef7ca751e723fd50e3a6da14c0965ad4da37ea3331568658e27497b7a7e4b9aad3dedd264ad0bb5566c37a92302b905f10258a4e2c89dc4ba609e55481
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz) =
2c322d161fdc5feeaf80011698ac1bcf4311513f9dc7484cefea91a1eba1a1c5aaad024ce6a525995fe88adc30ef68100032eaaa4d00082f2310f676592d3790
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz)
=
7020590f7d618460ab3fc81513edfcd2452c222c15800a376628a864b6bbb611f890e66143a26011f9e4cc534e516047c2c573f7682e5b0f325425eeee05a280
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u181-b13.tar.xz) =
d22ddb8b0b76faa18067fe383a147345be5fe1bad77b50940ff2993f3356166143e5ac9e14d9ead4437c13b00c6b2a5c62093ad57645da15a3419238990a74ac
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz) =
b5611a5b13a8aa3c0e07e015e39b11241f96124bb9454d4151c54d4e9af004ea038cc3a27e3b9099b3061bb9225cb298551e0e726f79bc9bc9837aa912f1586c
diff --git a/update_package.sh b/update_package.sh
index ee8622e..e11001e 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u172-b11"
+ VERSION="aarch64-jdk8u181-b13"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15"
+ VERSION="aarch64-shenandoah-jdk8u181-b13"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 3f1969e9e22e6dd1923a15076539b6b3f93b2110
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jul 17 14:46:44 2018 +0200
Typos fixes
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d7dcd72..f89ec64 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -24,7 +24,7 @@
%define _find_debuginfo_opts -g
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with
normal macros
# also necessary when passing it as parameter to other macros. If not macro, then it is
considered a switch
-# see the difference between global and deffine:
+# see the difference between global and define:
# See
https://github.com/rpm-software-management/rpm/issues/127 to comments at
"pmatilai commented on Aug 18, 2017"
# (initiated in
https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
%global debug_suffix_unquoted -slowdebug
@@ -78,7 +78,6 @@
%global use_shenandoah_hotspot 0
%endif
-
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
%else
@@ -105,7 +104,7 @@
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
-# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
+# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
@@ -114,7 +113,7 @@
%global ourldflags %{__global_ldflags}
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
-# the initialisation must be here. Later the pkg-config have buggy behaviour
+# the initialization must be here. Later the pkg-config have buggy behavior
# looks like openjdk RPM specific bug
# Always set this so the nss.cfg file is not broken
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
@@ -259,9 +258,9 @@
%if %{with_systemtap}
# Where to install systemtap tapset (links)
-# We would like these to be in a package specific subdir,
+# We would like these to be in a package specific sub-dir,
# but currently systemtap doesn't support that, so we have to
-# use the root tapset dir for now. To distinquish between 64
+# use the root tapset dir for now. To distinguish between 64
# and 32 bit architectures we place the tapsets under the arch
# specific dir (note that systemtap will only pickup the tapset
# for the primary arch for now). Systemtap uses the machine name
@@ -344,7 +343,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
# see pretrans where this file is declared
-# also see that pretrans is only for nondebug
+# also see that pretrans is only for non-debug
if [ ! "%{?1}" == %{debug_suffix} ]; then
if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir -- %{?1}}
@@ -842,7 +841,7 @@ Provides: java%{?1} = %{epoch}:%{javaver}
Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/
Requires: javapackages-filesystem
-# Require zoneinfo data provided by tzdata-java sub-package
+# Require zone-info data provided by tzdata-java sub-package
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
@@ -1210,7 +1209,7 @@ BuildRequires: alsa-lib-devel
BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
-# elfutils only are ok for build without AOT
+# elfutils only are OK for build without AOT
BuildRequires: elfutils-devel
BuildRequires: fontconfig
BuildRequires: freetype-devel
@@ -1349,7 +1348,8 @@ Group: Development/Languages
%{java_src_rpo %{nil}}
%description src
-The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} class
library source code for use by IDE indexers and debuggers.
+The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver}
+class library source code for use by IDE indexers and debuggers.
%endif
%if %{include_debug_build}
@@ -1360,7 +1360,8 @@ Group: Development/Languages
%{java_src_rpo -- %{debug_suffix_unquoted}}
%description src-slowdebug
-The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver} class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
+The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
%endif
%if %{include_normal_build}
@@ -1677,7 +1678,7 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} >
nss.cfg
%build
-# How many cpu's do we have?
+# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
%if 0%{?_smp_ncpus_max}
@@ -2082,7 +2083,7 @@ done
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
--- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in tranasction
and so is
+-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction
and so is
-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
-- whether copy-jdk-configs is installed or not. If so, then configs are copied
-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
@@ -2103,7 +2104,7 @@ local stat2 = posix.stat(SOURCE2, "type");
else
if (stat2 ~= nil) then
if (debug) then
- print(SOURCE2 .." exists - copy-jdk-configs alrady installed and NOT in
transation. Using.")
+ print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in
transaction. Using.")
end;
package.path = package.path .. ";" .. SOURCE2
else
@@ -2224,7 +2225,7 @@ require "copy_jdk_configs.lua"
# this puts huge file to /usr/share
# unluckily ti is really a documentation file
-# and unluckily it really is archtecture-depndent, as ag aot and grail are now x86_64
only
+# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64
only
# same for debug variant
%files javadoc-zip
%{files_javadoc_zip %{nil}}
commit bd8d5576e6738bc11c6a7da98d227de0fecd0275
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jul 17 12:41:03 2018 +0200
added Recommends gtk2 for main package, added Suggests lksctp-tools, pcsc-lite-devel,
cups for headless package ;see RHBZ1598152
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1973ce2..d7dcd72 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -819,10 +819,11 @@ exit 0
%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
-
# Requires rest of java
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# for java-X-openjdk package's desktop binding
+Recommends: gtk2%{?_isa}
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -861,6 +862,8 @@ Requires(post): chkconfig >= 1.7
Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
+# for optional support of kernel stream control, card reader and printing bindings
+Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups
# Standard JPackage base provides
Provides: jre-headless%{?1} = %{epoch}:%{javaver}
@@ -955,7 +958,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 15.%{buildver}%{?dist}
+Release: 16.%{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
@@ -2269,6 +2272,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-16.b11
+- added Recommends gtk2 for main package
+- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
+- see RHBZ1598152
+
* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.172-15.b11
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
commit 0125b988953af731dec246bf3d64e32a91db7539
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 13 06:03:30 2018 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3e40f6b..1973ce2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -955,7 +955,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 14.%{buildver}%{?dist}
+Release: 15.%{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
@@ -2269,6 +2269,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jul 13 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.172-15.b11
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Tue Jul 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-14.b11
- Fix hook to show hs_err*.log files on failures.
commit 2d03e5b4008119f4195b3533d56388854d819a80
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Jul 10 11:24:24 2018 +0200
Fix hook to show hs_err*.log files on failures.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 990507f..3e40f6b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -955,7 +955,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 14.%{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
@@ -1713,6 +1713,9 @@ else
debugbuild=`echo $suffix | sed "s/-//g"`
fi
+# Variable used in hs_err hook on build failures
+top_dir_abs_path=$(pwd)/%{top_level_dir_name}
+
mkdir -p %{buildoutputdir -- $suffix}
pushd %{buildoutputdir -- $suffix}
@@ -1761,7 +1764,7 @@ make \
POST_STRIP_CMD="" \
LOG=trace \
SCTP_WERROR= \
- %{targets} || ( find -name "hs_err_pid*.log" | xargs cat && false
)
+ %{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs
cat && false )
make zip-docs
@@ -2266,6 +2269,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jul 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-14.b11
+- Fix hook to show hs_err*.log files on failures.
+
* Mon Jul 02 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-13.b11
- Fix requires/provides filters for internal libs. See
RHBZ#1590796
commit b3b9435b452c0758d9840765e32d8b43177476d6
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Jul 2 15:59:38 2018 +0200
Fix requires/provides filters for internal libs.
See RHBZ#1590796
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8f25f35..990507f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -128,8 +128,12 @@
%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" ==
"x" ] ; then echo "" ;else echo ">=
%{NSS_BUILDTIME_NUMBER}" ;fi)
-# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*|lib[.]so\\(SUNWprivate_.*
+# Fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349.
+# See also
https://bugzilla.redhat.com/show_bug.cgi?id=1590796
+# as to why some libraries *cannot* be excluded. In particular,
+# these are:
+# libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so
+%global _privatelibs
libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -951,7 +955,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -2262,6 +2266,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 02 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-13.b11
+- Fix requires/provides filters for internal libs. See
+ RHBZ#1590796
+
* Mon Jun 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-12.b11
- Add hook to show hs_err*.log files on failures.
commit 67db070908a362b2503b5272635d01f01cf80e77
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Jun 26 10:28:48 2018 +0200
Add hook to show hs_err*.log files on failures.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 43f4bee..8f25f35 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -951,7 +951,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -1757,7 +1757,7 @@ make \
POST_STRIP_CMD="" \
LOG=trace \
SCTP_WERROR= \
- %{targets}
+ %{targets} || ( find -name "hs_err_pid*.log" | xargs cat && false
)
make zip-docs
@@ -2262,6 +2262,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-12.b11
+- Add hook to show hs_err*.log files on failures.
+
* Wed Jun 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-11.b11
- Expose release/slowdebug builds being produced via conditionals.
commit 14507bf10516da5d181c7f16a8827895b9e647ad
Merge: b0622b7 204045d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 21 15:28:57 2018 +0200
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk
diff --cc java-1.8.0-openjdk.spec
index 03b0d12,8cfbfd9..43f4bee
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@@ -2231,14 -2246,9 +2262,17 @@@ require "copy_jdk_configs.lua
%endif
%changelog
+ * Wed Jun 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-11.b11
+ - Expose release/slowdebug builds being produced via conditionals.
+
+* Wed Jun 20 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-11.b11
+- Add additional fix (PR3601) to fix -Wreturn-type failures introduced by 8061651
+- Backport 8064786 (PR3601) to fix -Wreturn-type failure on debug builds.
+- Bring in PR3519 from IcedTea 3.7.0 to fix remaining -Wreturn-type failure on AArch64.
+- Sync with IcedTea 3.8.0 patches to use -Wreturn-type.
+- Add backports of 8141570, 8143245, 8197981 & 8062808.
+- Drop pr3458-rh1540242-zero.patch which is covered by 8143245.
+
* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
- jsa files changed to 444 to pass rpm verification
commit b0622b7b61e19a1055fc06e4ed345f03690974d2
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 21 15:19:24 2018 +0200
Merge from rhel7
diff --git a/8062808-pr3548.patch b/8062808-pr3548.patch
new file mode 100644
index 0000000..e91abd3
--- /dev/null
+++ b/8062808-pr3548.patch
@@ -0,0 +1,191 @@
+# HG changeset patch
+# User stefank
+# Date 1525453613 -3600
+# Fri May 04 18:06:53 2018 +0100
+# Node ID 07a1135a327362f157955d470fad5df07cc35164
+# Parent de79964656fc652f2085dac4fe99bcc128b5a3b1
+8062808, PR3548: Turn on the -Wreturn-type warning
+Reviewed-by: mgerdin, tschatzl, coleenp, jrose, kbarrett
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
++++ openjdk/hotspot/make/linux/makefiles/gcc.make
+@@ -210,7 +210,7 @@
+ WARNINGS_ARE_ERRORS += -Wno-return-type -Wno-empty-body
+ endif
+
+-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value
++WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value
-Wreturn-type
+
+ ifeq ($(USE_CLANG),)
+ # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+--- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad
++++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad
+@@ -1250,6 +1250,7 @@
+
+
+ Unimplemented();
++ return 0; // Mute compiler
+ }
+
+ #ifndef PRODUCT
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+@@ -541,6 +541,7 @@
+ err.report_and_die();
+
+ ShouldNotReachHere();
++ return true; // Mute compiler
+ }
+
+ void os::Linux::init_thread_fpu_state(void) {
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/defaultMethods.cpp
openjdk/hotspot/src/share/vm/classfile/defaultMethods.cpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/defaultMethods.cpp
++++ openjdk/hotspot/src/share/vm/classfile/defaultMethods.cpp
+@@ -506,7 +506,7 @@
+ ss.write((const char*)name->bytes(), name->utf8_length());
+ ss.write((const char*)signature->bytes(), signature->utf8_length());
+ ss.print(" is abstract");
+- return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
++ return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
+ }
+
+ Symbol* MethodFamily::generate_conflicts_message(GrowableArray<Method*>* methods,
TRAPS) const {
+@@ -521,7 +521,7 @@
+ ss.print(".");
+ ss.write((const char*)name->bytes(), name->utf8_length());
+ }
+- return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
++ return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
+ }
+
+
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/symbolTable.cpp
openjdk/hotspot/src/share/vm/classfile/symbolTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/symbolTable.cpp
++++ openjdk/hotspot/src/share/vm/classfile/symbolTable.cpp
+@@ -249,7 +249,7 @@
+ MutexLocker ml(SymbolTable_lock, THREAD);
+
+ // Otherwise, add to symbol to table
+- return the_table()->basic_add(index, (u1*)name, len, hashValue, true, CHECK_NULL);
++ return the_table()->basic_add(index, (u1*)name, len, hashValue, true, THREAD);
+ }
+
+ Symbol* SymbolTable::lookup(const Symbol* sym, int begin, int end, TRAPS) {
+@@ -288,7 +288,7 @@
+ // Grab SymbolTable_lock first.
+ MutexLocker ml(SymbolTable_lock, THREAD);
+
+- return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true,
CHECK_NULL);
++ return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true, THREAD);
+ }
+
+ Symbol* SymbolTable::lookup_only(const char* name, int len,
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp
openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp
++++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp
+@@ -229,15 +229,15 @@
+ class_name->as_C_string(),
+ class_loader.is_null() ? "null" :
class_loader->klass()->name()->as_C_string()));
+ if (FieldType::is_array(class_name)) {
+- return resolve_array_class_or_null(class_name, class_loader, protection_domain,
CHECK_NULL);
++ return resolve_array_class_or_null(class_name, class_loader, protection_domain,
THREAD);
+ } else if (FieldType::is_obj(class_name)) {
+ ResourceMark rm(THREAD);
+ // Ignore wrapping L and ;.
+ TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
+ class_name->utf8_length() - 2, CHECK_NULL);
+- return resolve_instance_class_or_null(name, class_loader, protection_domain,
CHECK_NULL);
++ return resolve_instance_class_or_null(name, class_loader, protection_domain,
THREAD);
+ } else {
+- return resolve_instance_class_or_null(class_name, class_loader, protection_domain,
CHECK_NULL);
++ return resolve_instance_class_or_null(class_name, class_loader, protection_domain,
THREAD);
+ }
+ }
+
+diff --git openjdk.orig/hotspot/src/share/vm/memory/heapInspection.hpp
openjdk/hotspot/src/share/vm/memory/heapInspection.hpp
+--- openjdk.orig/hotspot/src/share/vm/memory/heapInspection.hpp
++++ openjdk/hotspot/src/share/vm/memory/heapInspection.hpp
+@@ -367,7 +367,7 @@
+ _csv_format(csv_format), _print_help(print_help),
+ _print_class_stats(print_class_stats), _columns(columns) {}
+ void heap_inspection(outputStream* st) NOT_SERVICES_RETURN;
+- size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL)
NOT_SERVICES_RETURN;
++ size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL)
NOT_SERVICES_RETURN_(0);
+ static void find_instances_at_safepoint(Klass* k, GrowableArray<oop>* result)
NOT_SERVICES_RETURN;
+ private:
+ void iterate_over_heap(KlassInfoTable* cit, BoolObjectClosure* filter = NULL);
+diff --git openjdk.orig/hotspot/src/share/vm/memory/metaspaceShared.hpp
openjdk/hotspot/src/share/vm/memory/metaspaceShared.hpp
+--- openjdk.orig/hotspot/src/share/vm/memory/metaspaceShared.hpp
++++ openjdk/hotspot/src/share/vm/memory/metaspaceShared.hpp
+@@ -93,7 +93,7 @@
+ static void preload_and_dump(TRAPS) NOT_CDS_RETURN;
+ static int preload_and_dump(const char * class_list_path,
+ GrowableArray<Klass*>* class_promote_order,
+- TRAPS) NOT_CDS_RETURN;
++ TRAPS) NOT_CDS_RETURN_(0);
+
+ static ReservedSpace* shared_rs() {
+ CDS_ONLY(return _shared_rs);
+diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
openjdk/hotspot/src/share/vm/oops/constantPool.hpp
+--- openjdk.orig/hotspot/src/share/vm/oops/constantPool.hpp
++++ openjdk/hotspot/src/share/vm/oops/constantPool.hpp
+@@ -352,7 +352,7 @@
+
+ Klass* klass_at(int which, TRAPS) {
+ constantPoolHandle h_this(THREAD, this);
+- return klass_at_impl(h_this, which, CHECK_NULL);
++ return klass_at_impl(h_this, which, THREAD);
+ }
+
+ Symbol* klass_name_at(int which); // Returns the name, w/o resolving.
+diff --git openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
openjdk/hotspot/src/share/vm/prims/jvm.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
++++ openjdk/hotspot/src/share/vm/prims/jvm.cpp
+@@ -4244,7 +4244,7 @@
+ JVM_DTraceProvider* providers))
+ JVMWrapper("JVM_DTraceActivate");
+ return DTraceJSDT::activate(
+- version, module_name, providers_count, providers, CHECK_0);
++ version, module_name, providers_count, providers, THREAD);
+ JVM_END
+
+ JVM_ENTRY(jboolean,JVM_DTraceIsProbeEnabled(JNIEnv* env, jmethodID method))
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/reflection.cpp
openjdk/hotspot/src/share/vm/runtime/reflection.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/reflection.cpp
++++ openjdk/hotspot/src/share/vm/runtime/reflection.cpp
+@@ -1093,7 +1093,7 @@
+ } else {
+ if (rtype == T_BOOLEAN || rtype == T_BYTE || rtype == T_CHAR || rtype == T_SHORT)
+ narrow((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
+- return box((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
++ return box((jvalue*) result.get_value_addr(), rtype, THREAD);
+ }
+ }
+
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp
++++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp
+@@ -1046,7 +1046,7 @@
+ // last java frame on stack (which includes native call frames)
+ vframeStream vfst(thread, true); // Do not skip and javaCalls
+
+- return find_callee_info_helper(thread, vfst, bc, callinfo, CHECK_(Handle()));
++ return find_callee_info_helper(thread, vfst, bc, callinfo, THREAD);
+ }
+
+
+diff --git openjdk.orig/hotspot/src/share/vm/services/memTracker.hpp
openjdk/hotspot/src/share/vm/services/memTracker.hpp
+--- openjdk.orig/hotspot/src/share/vm/services/memTracker.hpp
++++ openjdk/hotspot/src/share/vm/services/memTracker.hpp
+@@ -64,7 +64,7 @@
+ const NativeCallStack& stack, MEMFLAGS flag = mtNone) { }
+ static inline void record_virtual_memory_commit(void* addr, size_t size, const
NativeCallStack& stack) { }
+ static inline Tracker get_virtual_memory_uncommit_tracker() { return Tracker(); }
+- static inline Tracker get_virtual_memory_release_tracker() { }
++ static inline Tracker get_virtual_memory_release_tracker() { return Tracker(); }
+ static inline void record_virtual_memory_type(void* addr, MEMFLAGS flag) { }
+ static inline void record_thread_stack(void* addr, size_t size) { }
+ static inline void release_thread_stack(void* addr, size_t size) { }
diff --git a/8064786-pr3599.patch b/8064786-pr3599.patch
new file mode 100644
index 0000000..790ee0d
--- /dev/null
+++ b/8064786-pr3599.patch
@@ -0,0 +1,28 @@
+# HG changeset patch
+# User goetz
+# Date 1415873641 -3600
+# Thu Nov 13 11:14:01 2014 +0100
+# Node ID 1878c4c1d04e1f3c6f67a19d36c35863d6b5f906
+# Parent 533473c67de6ff767710594639033c8e83523fe5
+8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
+Reviewed-by: stefank, tschatzl
+
+diff --git openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
openjdk/hotspot/src/share/vm/prims/jni.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
++++ openjdk/hotspot/src/share/vm/prims/jni.cpp
+@@ -708,6 +708,7 @@
+
+ THROW_OOP_(JNIHandles::resolve(obj), JNI_OK);
+ ShouldNotReachHere();
++ return 0; // Mute compiler.
+ JNI_END
+
+ #ifndef USDT2
+@@ -734,6 +735,7 @@
+ Handle protection_domain (THREAD, k->protection_domain());
+ THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK);
+ ShouldNotReachHere();
++ return 0; // Mute compiler.
+ JNI_END
+
+
diff --git a/8141570-pr3548.patch b/8141570-pr3548.patch
new file mode 100644
index 0000000..f1e3215
--- /dev/null
+++ b/8141570-pr3548.patch
@@ -0,0 +1,55 @@
+# HG changeset patch
+# User coleenp
+# Date 1525713256 -3600
+# Mon May 07 18:14:16 2018 +0100
+# Node ID bcbc64dfb629c5f188bbf59b8f986ad95963ed60
+# Parent 07a1135a327362f157955d470fad5df07cc35164
+8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
+Summary: change to include atomic.inline.hpp and allocation.inline.hpp only in .cpp files
and some build fixes from Kim to build on ubuntu without devkits
+Reviewed-by: kbarrett, sgehwolf, erikj
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ # Copyright 2007, 2008 Red Hat, Inc.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+@@ -25,8 +25,15 @@
+
+ # Setup common to Zero (non-Shark) and Shark versions of VM
+
+-# override this from the main file because some version of llvm do not like -Wundef
+-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wunused-function -Wunused-value
++# Some versions of llvm do not like -Wundef
++ifeq ($(USE_CLANG), true)
++ WARNING_FLAGS += -Wno-undef
++endif
++# Suppress some warning flags that are normally turned on for hotspot,
++# because some of the zero code has not been updated accordingly.
++WARNING_FLAGS += -Wno-return-type \
++ -Wno-format-nonliteral -Wno-format-security \
++ -Wno-maybe-uninitialized
+
+ # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+@@ -42,5 +49,3 @@
+ ifeq ($(ARCH_DATA_MODEL), 64)
+ CFLAGS += -D_LP64=1
+ endif
+-
+-OPT_CFLAGS/compactingPermGenGen.o = -O1
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
openjdk/hotspot/src/share/vm/runtime/java.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
++++ openjdk/hotspot/src/share/vm/runtime/java.cpp
+@@ -45,6 +45,7 @@
+ #include "runtime/arguments.hpp"
+ #include "runtime/biasedLocking.hpp"
+ #include "runtime/compilationPolicy.hpp"
++#include "runtime/deoptimization.hpp"
+ #include "runtime/fprofiler.hpp"
+ #include "runtime/init.hpp"
+ #include "runtime/interfaceSupport.hpp"
diff --git a/8143245-pr3548.patch b/8143245-pr3548.patch
new file mode 100644
index 0000000..eccb110
--- /dev/null
+++ b/8143245-pr3548.patch
@@ -0,0 +1,154 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1525714161 -3600
+# Mon May 07 18:29:21 2018 +0100
+# Node ID afb31413c73cbc06420fdb447aa90a7a38258904
+# Parent bcbc64dfb629c5f188bbf59b8f986ad95963ed60
+8143245, PR3548: Zero build requires disabled warnings
+Reviewed-by: dholmes, coleenp
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ # Copyright 2007, 2008 Red Hat, Inc.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+@@ -29,11 +29,6 @@
+ ifeq ($(USE_CLANG), true)
+ WARNING_FLAGS += -Wno-undef
+ endif
+-# Suppress some warning flags that are normally turned on for hotspot,
+-# because some of the zero code has not been updated accordingly.
+-WARNING_FLAGS += -Wno-return-type \
+- -Wno-format-nonliteral -Wno-format-security \
+- -Wno-maybe-uninitialized
+
+ # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+diff --git openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+@@ -100,7 +100,7 @@
+ case T_DOUBLE:
+ case T_VOID:
+ return result;
+- default : ShouldNotReachHere();
++ default : ShouldNotReachHere(); return NULL_WORD;
+ }
+ }
+
+diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -62,7 +62,7 @@
+ }
+
+ void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) {
+- ffi_type *ftype;
++ ffi_type *ftype = NULL;
+ switch (type) {
+ case T_VOID:
+ ftype = &ffi_type_void;
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
++ * Copyright 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
+@@ -61,6 +61,7 @@
+
+ frame os::get_sender_for_C_frame(frame* fr) {
+ ShouldNotCallThis();
++ return frame(NULL, NULL); // silence compile warning.
+ }
+
+ frame os::current_frame() {
+@@ -98,16 +99,19 @@
+
+ address os::Linux::ucontext_get_pc(ucontext_t* uc) {
+ ShouldNotCallThis();
++ return NULL; // silence compile warnings
+ }
+
+ ExtendedPC os::fetch_frame_from_context(void* ucVoid,
+ intptr_t** ret_sp,
+ intptr_t** ret_fp) {
+ ShouldNotCallThis();
++ return NULL; // silence compile warnings
+ }
+
+ frame os::fetch_frame_from_context(void* ucVoid) {
+ ShouldNotCallThis();
++ return frame(NULL, NULL); // silence compile warnings
+ }
+
+ extern "C" JNIEXPORT int
+@@ -247,11 +251,16 @@
+ }
+ #endif // !PRODUCT
+
+- const char *fmt = "caught unhandled signal %d";
+ char buf[64];
+
+- sprintf(buf, fmt, sig);
++ sprintf(buf, "caught unhandled signal %d", sig);
++
++// Silence -Wformat-security warning for fatal()
++PRAGMA_DIAG_PUSH
++PRAGMA_FORMAT_NONLITERAL_IGNORED
+ fatal(buf);
++PRAGMA_DIAG_POP
++ return true; // silence compiler warnings
+ }
+
+ void os::Linux::init_thread_fpu_state(void) {
+@@ -260,6 +269,7 @@
+
+ int os::Linux::get_fpu_control_word() {
+ ShouldNotCallThis();
++ return -1; // silence compile warnings
+ }
+
+ void os::Linux::set_fpu_control_word(int fpu) {
+@@ -408,6 +418,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return -1; // silence compile warnings
+ }
+
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -110,6 +110,7 @@
+ void* ucontext,
+ bool isInJava) {
+ ShouldNotCallThis();
++ return false; // silence compile warning
+ }
+
+ // These routines are only used on cpu architectures that
diff --git a/8197981-pr3548.patch b/8197981-pr3548.patch
new file mode 100644
index 0000000..5f6d9ce
--- /dev/null
+++ b/8197981-pr3548.patch
@@ -0,0 +1,32 @@
+# HG changeset patch
+# User andrew
+# Date 1518667645 0
+# Thu Feb 15 04:07:25 2018 +0000
+# Node ID 1d35411eb7bdf16191e220ffe3b1dc4d5d0c6041
+# Parent 999983606f5c61b093c6f6316a7b26c4cd4ca79e
+8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
+Summary: Fix issue discovered by -Wreturn-type on systems without LP64.
+Reviewed-by: aph
+
+diff --git openjdk.orig/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
openjdk/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
+--- openjdk.orig/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
++++ openjdk/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
+@@ -457,6 +457,7 @@
+ long long unsigned int oldval,
+ long long unsigned int newval) {
+ ShouldNotCallThis();
++ return 0;
+ }
+ };
+ #endif // !_LP64
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -498,6 +498,7 @@
+ long long unsigned int oldval,
+ long long unsigned int newval) {
+ ShouldNotCallThis();
++ return 0;
+ }
+ };
+ #endif // !_LP64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9d3201c..03b0d12 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -920,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -1038,9 +1038,11 @@ Patch523: pr2974-rh1337583.patch
Patch528: pr3083-rh1346460.patch
# RH1566890: CVE-2018-3639
Patch529: rh1566890_embargoed20180521.patch
+# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
+Patch530: pr3601.patch
# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
# linking with unresolved symbols.
-Patch530: rhbz_1538767_fix_linking.patch
+Patch531: rhbz_1538767_fix_linking.patch
#############################################
#
@@ -1064,8 +1066,8 @@ Patch103: pr3593-s390-size_t_format_flags.patch
Patch104: pr3458-rh1540242-aarch64.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
Patch105: 8199936-pr3533-workaround.patch
-# Zero: Fix more cases of missing return statements
-Patch106: pr3458-rh1540242-zero.patch
+# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
+Patch106: pr3519.patch
#############################################
#
@@ -1120,7 +1122,17 @@ Patch570: 8165489-pr3589.patch
Patch571: pr3591.patch
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
Patch572: 8184309-pr3596.patch
-
+# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
+Patch573: 8141570-pr3548.patch
+# 8143245, PR3548: Zero build requires disabled warnings
+Patch574: 8143245-pr3548.patch
+# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
+Patch575: 8197981-pr3548.patch
+# 8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
+Patch576: 8064786-pr3599.patch
+# 8062808, PR3548: Turn on the -Wreturn-type warning
+Patch577: 8062808-pr3548.patch
+
#############################################
#
# Patches ineligible for 8u
@@ -1509,6 +1521,7 @@ sh %{SOURCE12}
%else
%patch104
%endif
+%patch106
# x86 fixes
%patch105
@@ -1518,9 +1531,6 @@ sh %{SOURCE12}
%patch601
%patch602
-# Zero fixes.
-%patch106
-
# Upstreamable fixes
%patch502
%patch504
@@ -1542,10 +1552,11 @@ sh %{SOURCE12}
%patch526
%patch528
%patch529
+%patch530
%patch538
%patch560
pushd openjdk/jdk
-%patch530 -p1
+%patch531 -p1
popd
%patch561
%patch562
@@ -1557,6 +1568,11 @@ popd
%patch569
%patch571
%patch572
+%patch573
+%patch574
+%patch575
+%patch576
+%patch577
# RPM-only fixes
%patch525
@@ -2215,6 +2231,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 20 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-11.b11
+- Add additional fix (PR3601) to fix -Wreturn-type failures introduced by 8061651
+- Backport 8064786 (PR3601) to fix -Wreturn-type failure on debug builds.
+- Bring in PR3519 from IcedTea 3.7.0 to fix remaining -Wreturn-type failure on AArch64.
+- Sync with IcedTea 3.8.0 patches to use -Wreturn-type.
+- Add backports of 8141570, 8143245, 8197981 & 8062808.
+- Drop pr3458-rh1540242-zero.patch which is covered by 8143245.
+
* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
- jsa files changed to 444 to pass rpm verification
diff --git a/pr3458-rh1540242-zero.patch b/pr3458-rh1540242-zero.patch
deleted file mode 100644
index dad435b..0000000
--- a/pr3458-rh1540242-zero.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -408,6 +408,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
-
diff --git a/pr3519.patch b/pr3519.patch
new file mode 100644
index 0000000..51ca7f1
--- /dev/null
+++ b/pr3519.patch
@@ -0,0 +1,19 @@
+# HG changeset patch
+# User andrew
+# Date 1518669922 0
+# Thu Feb 15 04:45:22 2018 +0000
+# Node ID adaf109718c10888cce5b6e73af7f3e15a7ab0db
+# Parent 3ade0115344b77e6d00462044e0cf68722685bfe
+PR3519: Fix further functions with a missing return value.
+
+diff --git openjdk.orig/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+--- openjdk.orig/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+@@ -205,6 +205,7 @@
+ return Address(base, tmp, Address::lsl(addr->scale()));
+ }
+ }
++ return Address();
+ }
+
+ Address LIR_Assembler::as_Address_hi(LIR_Address* addr) {
diff --git a/pr3601.patch b/pr3601.patch
new file mode 100644
index 0000000..d1e9576
--- /dev/null
+++ b/pr3601.patch
@@ -0,0 +1,38 @@
+# HG changeset patch
+# User andrew
+# Date 1529475043 -3600
+# Wed Jun 20 07:10:43 2018 +0100
+# Node ID f6341f4635dacb56678264d29a88cd052b74036b
+# Parent 30520d5018b509b0ae68f5fcc9a5c540e3e5b2de
+PR3601: Fix additional -Wreturn-type issues introduced by 8061651
+
+diff --git openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
openjdk/hotspot/src/share/vm/prims/jvm.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/jvm.cpp
++++ openjdk/hotspot/src/share/vm/prims/jvm.cpp
+@@ -835,7 +835,7 @@
+ JVM_ENTRY(jboolean, JVM_KnownToNotExist(JNIEnv *env, jobject loader, const char
*classname))
+ JVMWrapper("JVM_KnownToNotExist");
+ #if INCLUDE_CDS
+- return ClassLoaderExt::known_to_not_exist(env, loader, classname, CHECK_(false));
++ return ClassLoaderExt::known_to_not_exist(env, loader, classname, THREAD);
+ #else
+ return false;
+ #endif
+@@ -845,7 +845,7 @@
+ JVM_ENTRY(jobjectArray, JVM_GetResourceLookupCacheURLs(JNIEnv *env, jobject loader))
+ JVMWrapper("JVM_GetResourceLookupCacheURLs");
+ #if INCLUDE_CDS
+- return ClassLoaderExt::get_lookup_cache_urls(env, loader, CHECK_NULL);
++ return ClassLoaderExt::get_lookup_cache_urls(env, loader, THREAD);
+ #else
+ return NULL;
+ #endif
+@@ -855,7 +855,7 @@
+ JVM_ENTRY(jintArray, JVM_GetResourceLookupCache(JNIEnv *env, jobject loader, const char
*resource_name))
+ JVMWrapper("JVM_GetResourceLookupCache");
+ #if INCLUDE_CDS
+- return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, CHECK_NULL);
++ return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, THREAD);
+ #else
+ return NULL;
+ #endif
commit 204045da1810d123725c7353848a37bbb77d2635
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Jun 18 14:08:09 2018 +0200
Expose release/slowdebug builds being produced via conditionals.
Example:
$ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
The above example wouldn't include a slowdebug build if it would
be otherwise supported on that architecture.
By default, slowdebug and release builds are being produced in the
same fashion as prior this patch.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9d3201c..8cfbfd9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,3 +1,26 @@
+# RPM conditionals so as to be able to dynamically produce
+# slowdebug/release builds. See:
+#
http://rpm.org/user_doc/conditional_builds.html
+#
+# Examples:
+#
+# Produce release *and* slowdebug builds on x86_64 (default):
+# $ rpmbuild -ba java-1.8.0-openjdk.spec
+#
+# Produce only release builds (no slowdebug builds) on x86_64:
+# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
+#
+# Only produce a release build on x86_64:
+# $ fedpkg mockbuild --without slowdebug
+#
+# Only produce a debug build on x86_64:
+# $ fedpkg local --without release
+#
+# Enable slowdebug builds by default on relevant arches.
+%bcond_without slowdebug
+# Enable release builds by default on relevant arches.
+%bcond_without release
+
%define _find_debuginfo_opts -g
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with
normal macros
# also necessary when passing it as parameter to other macros. If not macro, then it is
considered a switch
@@ -14,8 +37,12 @@
%global debug_on with full debug on
%global for_debug for packages with debug on
-# by default we build normal build
+%if %{with release}
%global include_normal_build 1
+%else
+%global include_normal_build 0
+%endif
+
%if %{include_normal_build}
%global build_loop1 %{normal_suffix}
%else
@@ -30,6 +57,7 @@
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
# By default, we build a debug build during main build on JIT architectures
+%if %{with slowdebug}
%ifarch %{jit_arches}
%ifnarch %{arm}
%global include_debug_build 1
@@ -39,6 +67,9 @@
%else
%global include_debug_build 0
%endif
+%else
+%global include_debug_build 0
+%endif
# On x86_64 and AArch64, we use the Shenandoah HotSpot
%ifarch x86_64 %{aarch64}
@@ -920,7 +951,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -1444,7 +1475,7 @@ else
exit 12
fi
if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
- echo "You have disabled both include_debug_build and include_debug_build. That is
a no go."
+ echo "You have disabled both include_debug_build and include_normal_build. That is
a no go."
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
@@ -2215,6 +2246,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-11.b11
+- Expose release/slowdebug builds being produced via conditionals.
+
* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
- jsa files changed to 444 to pass rpm verification
commit 75dc799865967a7a43c8cec6e07cffa9eceeffe6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 20 14:39:10 2018 +0200
jsa files changed to 444 to pass rpm verification
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3fdc5f6..9d3201c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -567,8 +567,8 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
%ifarch %{jit_arches}
%ifnarch %{power64}
-%ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa
-%ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
%endif
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
@@ -920,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -2215,6 +2215,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
+- jsa files changed to 444 to pass rpm verification
+
* Mon Jun 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-9.b11
- Filter private provides/requires: 'lib.so(SUNWprivate_.*'
commit 192e665b124a6a20f7c5fc9e3805144a427687d6
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Jun 18 11:29:17 2018 +0200
Filter lib.so(SUNWprivate*) from provides/requires.
See RHBZ#1590796.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 065abc4..3fdc5f6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -98,7 +98,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*
+%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*|lib[.]so\\(SUNWprivate_.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -920,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -2215,6 +2215,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-9.b11
+- Filter private provides/requires: 'lib.so(SUNWprivate_.*'
+
* Thu Jun 14 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-8.b11
- Add provides/requires for libjvm.so back. See RHBZ#1591215.
commit 0da81643dd2e1505c27bc6e1ca36bdb615380df7
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Jun 14 14:16:40 2018 +0200
Add libjvm.so provides/requires back.
See RHBZ#1591215.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 200eb98..065abc4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -98,7 +98,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*|libjvm[.]so.*
+%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -920,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -2215,6 +2215,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Jun 14 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-8.b11
+- Add provides/requires for libjvm.so back. See RHBZ#1591215.
+
* Wed Jun 13 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-7.b11
- Fix reg-ex for filtering private libraries' provides/requires.
commit 861523a6156792d1bf8657bc32b0ece6fc3d8d28
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Jun 13 14:35:58 2018 +0200
Fix private libraries' provides/requires filtering.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index db02392..200eb98 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -98,7 +98,7 @@
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-%global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.* libextnet[.]so.*
libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.* libfontmanager[.]so.*
libinstrument[.]so.* libj2gss[.]so.* libj2pcsc[.]so.* libj2pkcs11[.]so.*
libjaas_unix[.]so.* libjavajpeg[.]so.* libjdwp[.]so.* libjimage[.]so.* libjsound[.]so.*
liblcms[.]so.* libmanagement[.]so.* libmanagement_agent[.]so.* libmanagement_ext[.]so.*
libmlib_image[.]so.* libnet[.]so.* libnio[.]so.* libprefs[.]so.* librmi[.]so.*
libsaproc[.]so.* libsctp[.]so.* libunpack[.]so.* libverify[.]so.* libzip[.]so.*
libjsoundalsa[.]so.* libsplashscreen[.]so.* libawt_xawt[.]so.*
+%global _privatelibs
libawt_xawt[.]so.*|libjawt[.]so.*|libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libjli[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjsdt[.]so.*|libjsig[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libverify[.]so.*|libzip[.]so.*|libjsig[.]so.*|libjvm[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -920,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -2215,6 +2215,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 13 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-7.b11
+- Fix reg-ex for filtering private libraries' provides/requires.
+
* Wed Jun 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-6.b11
- Remove build flags exemption for aarch64 now the platform is more mature and can
bootstrap OpenJDK with these flags.
- Remove duplicate -fstack-protector-strong; it is provided by the RHEL cflags.
commit 8a1e920d3d6b2e627b5a340b9250e79fd0be3988
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 13 13:13:56 2018 +0200
fixed flags filtering, added missing credits
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 26cb87a..db02392 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -73,21 +73,14 @@
%endif
-%ifarch %{aarch64}
-# Disable hardened build on AArch64 as it didn't bootcycle
-%undefine _hardened_build
-%global ourcppflags "-fstack-protector-strong"
-%global ourldflags %{nil}
-%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
-%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
"-fstack-protector-strong"
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
-%endif
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialisation must be here. Later the pkg-config have buggy behaviour
@@ -927,7 +920,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -2222,14 +2215,27 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-6.b11
+- Remove build flags exemption for aarch64 now the platform is more mature and can
bootstrap OpenJDK with these flags.
+- Remove duplicate -fstack-protector-strong; it is provided by the RHEL cflags.
+- Add missing changelog credits
+
* Mon Jun 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-5.b11
+- Merge changes from RHEL 7
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
-- Resolves: rhbz#1567204
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
- Update Shenandoah tarball to include 2018-05-15 merge.
- Split PR3458/RH1540242 fix into AArch64 & Zero sections, so former can be skipped
on Shenandoah builds.
- Drop PR3573 patch applied upstream.
- Restrict 8187577 fix to non-Shenandoah builds, as it's included in the new
tarball.
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
- Sync with IcedTea 3.8.0.
- Label architecture-specific fixes with architecture concerned
- x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
commit 635b643f2563d4a9a4175e48dfb02b86fcb82b2a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jun 11 17:13:53 2018 +0200
Removed illegible chnagelog message
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f7616e3..26cb87a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -2256,9 +2256,6 @@ require "copy_jdk_configs.lua"
- fixed libjvm path for system tap
- returned patch104 pr3458-rh1540242.patch
-* Fri Jun 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-3.b11
-- Bump release and rebuild for fixed gdb. See RHBZ#1589118.
-
* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-2.b11
- quoted sed expressions, changed possibly confussing # by @
- added vendor(origin) into icons
commit 0b5ec940119884d600cf9a8a20db8d41d57d26d0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jun 11 17:11:26 2018 +0200
Merge pathces from rhel7
diff --git a/8165489-pr3589.patch b/8165489-pr3589.patch
new file mode 100644
index 0000000..1674dec
--- /dev/null
+++ b/8165489-pr3589.patch
@@ -0,0 +1,123 @@
+# HG changeset patch
+# User mdoerr
+# Date 1473159687 -7200
+# Tue Sep 06 13:01:27 2016 +0200
+# Node ID 7f6e1069a5719c8908b53774d3560ce851c7cd70
+# Parent b8fc1e640c4c7f38ca94131279cb67c4d3de6961
+8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+Summary: Add missing barrier, sharing code with Unsafe_GetObject.
+Reviewed-by: kbarrett, mgerdin, pliden, tschatzl
+
+diff --git openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp
openjdk/hotspot/src/share/vm/prims/unsafe.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp
++++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp
+@@ -199,37 +199,40 @@
+
+ // Get/SetObject must be special-cased, since it works with handles.
+
++// We could be accessing the referent field in a reference
++// object. If G1 is enabled then we need to register non-null
++// referent with the SATB barrier.
++
++#if INCLUDE_ALL_GCS
++static bool is_java_lang_ref_Reference_access(oop o, jlong offset) {
++ if (offset == java_lang_ref_Reference::referent_offset && o != NULL) {
++ Klass* k = o->klass();
++ if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
++
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
++ return true;
++ }
++ }
++ return false;
++}
++#endif
++
++static void ensure_satb_referent_alive(oop o, jlong offset, oop v) {
++#if INCLUDE_ALL_GCS
++ if (UseG1GC && v != NULL && is_java_lang_ref_Reference_access(o,
offset)) {
++ G1SATBCardTableModRefBS::enqueue(v);
++ }
++#endif
++}
++
+ // The xxx140 variants for backward compatibility do not allow a full-width offset.
+ UNSAFE_ENTRY(jobject, Unsafe_GetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint
offset))
+ UnsafeWrapper("Unsafe_GetObject");
+ if (obj == NULL) THROW_0(vmSymbols::java_lang_NullPointerException());
+ GET_OOP_FIELD(obj, offset, v)
+- jobject ret = JNIHandles::make_local(env, v);
+-#if INCLUDE_ALL_GCS
+- // We could be accessing the referent field in a reference
+- // object. If G1 is enabled then we need to register a non-null
+- // referent with the SATB barrier.
+- if (UseG1GC) {
+- bool needs_barrier = false;
+
+- if (ret != NULL) {
+- if (offset == java_lang_ref_Reference::referent_offset) {
+- oop o = JNIHandles::resolve_non_null(obj);
+- Klass* k = o->klass();
+- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
+-
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
+- needs_barrier = true;
+- }
+- }
+- }
++ ensure_satb_referent_alive(p, offset, v);
+
+- if (needs_barrier) {
+- oop referent = JNIHandles::resolve(ret);
+- G1SATBCardTableModRefBS::enqueue(referent);
+- }
+- }
+-#endif // INCLUDE_ALL_GCS
+- return ret;
++ return JNIHandles::make_local(env, v);
+ UNSAFE_END
+
+ UNSAFE_ENTRY(void, Unsafe_SetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint
offset, jobject x_h))
+@@ -262,32 +265,10 @@
+ UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong
offset))
+ UnsafeWrapper("Unsafe_GetObject");
+ GET_OOP_FIELD(obj, offset, v)
+- jobject ret = JNIHandles::make_local(env, v);
+-#if INCLUDE_ALL_GCS
+- // We could be accessing the referent field in a reference
+- // object. If G1 is enabled then we need to register non-null
+- // referent with the SATB barrier.
+- if (UseG1GC) {
+- bool needs_barrier = false;
+
+- if (ret != NULL) {
+- if (offset == java_lang_ref_Reference::referent_offset && obj != NULL) {
+- oop o = JNIHandles::resolve(obj);
+- Klass* k = o->klass();
+- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
+-
assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()),
"sanity");
+- needs_barrier = true;
+- }
+- }
+- }
++ ensure_satb_referent_alive(p, offset, v);
+
+- if (needs_barrier) {
+- oop referent = JNIHandles::resolve(ret);
+- G1SATBCardTableModRefBS::enqueue(referent);
+- }
+- }
+-#endif // INCLUDE_ALL_GCS
+- return ret;
++ return JNIHandles::make_local(env, v);
+ UNSAFE_END
+
+ UNSAFE_ENTRY(void, Unsafe_SetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong
offset, jobject x_h))
+@@ -312,6 +293,9 @@
+ } else {
+ (void)const_cast<oop&>(v = *(volatile oop*) addr);
+ }
++
++ ensure_satb_referent_alive(p, offset, v);
++
+ OrderAccess::acquire();
+ return JNIHandles::make_local(env, v);
+ UNSAFE_END
diff --git a/8171000-pr3542-rh1402819.patch b/8171000-pr3542-rh1402819.patch
new file mode 100644
index 0000000..d831aa9
--- /dev/null
+++ b/8171000-pr3542-rh1402819.patch
@@ -0,0 +1,121 @@
+# HG changeset patch
+# User kaddepalli
+# Date 1517818481 -19800
+# Mon Feb 05 13:44:41 2018 +0530
+# Node ID b77308735540644d4710244e3c88865067f2905a
+# Parent 39bfc94b1f4265b645c2970a58389acc779dafe9
+8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+Reviewed-by: serb, mhalder
+
+diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
++++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
+@@ -394,77 +394,48 @@
+ XRectangle bbox; /* bounding box of grabbed area */
+ list_ptr regions;/* list of regions to read from */
+ {
+- image_region_type *reg;
+- int32_t dst_x, dst_y; /* where in pixmap to write (UL) */
+- int32_t diff;
+-
+- XImage *reg_image,*ximage ;
+- int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ;
+- int32_t rem ;
+- int32_t bytes_per_line;
+- int32_t bitmap_unit;
+-
+- bitmap_unit = sizeof (long);
+- if (format == ZPixmap)
+- bytes_per_line = width*depth/8;
+- else
+- bytes_per_line = width/8;
+-
+-
+- /* Find out how many more bytes are required for padding so that
+- ** bytes per scan line will be multiples of bitmap_unit bits */
+- if (format == ZPixmap) {
+- rem = (bytes_per_line*8)%bitmap_unit;
+- if (rem)
+- bytes_per_line += (rem/8 + 1);
+- }
++ XImage *ximage ;
+
+ ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
+ (uint32_t)width,(uint32_t)height,8,0);
+
+- bytes_per_line = ximage->bytes_per_line;
+-
+- if (format == ZPixmap)
+- ximage->data = malloc(height*bytes_per_line);
+- else
+- ximage->data = malloc(height*bytes_per_line*depth);
+-
++ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 :
depth), sizeof(char));
+ ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
+
+- for (reg = (image_region_type *) first_in_list( regions); reg;
++ for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
+ reg = (image_region_type *) next_in_list( regions))
+ {
+- int32_t rect;
+- struct my_XRegion *vis_reg;
+- vis_reg = (struct my_XRegion *)(reg->visible_region);
+- for (rect = 0;
+- rect < vis_reg->numRects;
+- rect++)
++ struct my_XRegion *vis_reg = (struct my_XRegion
*)(reg->visible_region);
++ for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
+ {
+- /**
------------------------------------------------------------------------
+- Intersect bbox with visible part of region giving src rect &
output
+- location. Width is the min right side minus the max left side.
+- Similar for height. Offset src rect so x,y are relative to
+- origin of win, not the root-relative visible rect of win.
+-
------------------------------------------------------------------------ **/
+- srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width +
bbox.x)
+- - MAX( vis_reg->rects[rect].x1, bbox.x);
++ /**
------------------------------------------------------------------------
++ Intersect bbox with visible part of region giving src rect
& output
++ location. Width is the min right side minus the max left
side.
++ Similar for height. Offset src rect so x,y are relative to
++ origin of win, not the root-relative visible rect of win.
++
------------------------------------------------------------------------ **/
++ int32_t srcRect_width = MIN( vis_reg->rects[rect].x2,
bbox.width + bbox.x)
++ - MAX( vis_reg->rects[rect].x1, bbox.x);
++
++ int32_t srcRect_height = MIN( vis_reg->rects[rect].y2,
bbox.height + bbox.y)
++ - MAX( vis_reg->rects[rect].y1, bbox.y);
+
+- srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height +
bbox.y)
+- - MAX( vis_reg->rects[rect].y1, bbox.y);
++ int32_t diff = bbox.x - vis_reg->rects[rect].x1;
++ int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1
- reg->x_rootrel - reg->border);
++ int32_t dst_x = MAX( 0, -diff) ;
+
+- diff = bbox.x - vis_reg->rects[rect].x1;
+- srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 -
reg->x_rootrel - reg->border);
+- dst_x = MAX( 0, -diff) ;
+- diff = bbox.y - vis_reg->rects[rect].y1;
+- srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 -
reg->y_rootrel - reg->border);
+- dst_y = MAX( 0, -diff) ;
+- reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
+- (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
+- TransferImage(disp,reg_image,srcRect_width,
+- srcRect_height,reg,ximage,dst_x,dst_y) ;
+- XDestroyImage(reg_image);
+- }
++ diff = bbox.y - vis_reg->rects[rect].y1;
++ int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1
- reg->y_rootrel - reg->border);
++ int32_t dst_y = MAX( 0, -diff) ;
++ XImage* reg_image =
XGetImage(disp,reg->win,srcRect_x,srcRect_y,
++ (uint32_t) srcRect_width, (uint32_t)
srcRect_height,AllPlanes,format) ;
++
++ if (reg_image) {
++ TransferImage(disp,reg_image,srcRect_width,
++ srcRect_height,reg,ximage,dst_x,dst_y) ;
++ XDestroyImage(reg_image);
++ }
++ }
+ }
+ return ximage ;
+ }
diff --git a/8184309-pr3596.patch b/8184309-pr3596.patch
new file mode 100644
index 0000000..00b6125
--- /dev/null
+++ b/8184309-pr3596.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User ysuenaga
+# Date 1527498573 -3600
+# Mon May 28 10:09:33 2018 +0100
+# Node ID ef176cb429c49d1c330d9575938f66b04e3fb730
+# Parent 6915dc9ae18cce5625d3a3fc74b37da70a5b4215
+8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+Reviewed-by: kbarrett, vlivanov
+
+diff --git openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp
openjdk/hotspot/src/share/vm/code/dependencies.cpp
+--- openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp
++++ openjdk/hotspot/src/share/vm/code/dependencies.cpp
+@@ -525,7 +525,7 @@
+ xtty->object("x", arg.metadata_value());
+ }
+ } else {
+- char xn[10]; sprintf(xn, "x%d", j);
++ char xn[12]; sprintf(xn, "x%d", j);
+ if (arg.is_oop()) {
+ xtty->object(xn, arg.oop_value());
+ } else {
diff --git a/8185723-pr3553.patch b/8185723-pr3553.patch
new file mode 100644
index 0000000..f8ee50a
--- /dev/null
+++ b/8185723-pr3553.patch
@@ -0,0 +1,27 @@
+# HG changeset patch
+# User aph
+# Date 1501690960 -3600
+# Wed Aug 02 17:22:40 2017 +0100
+# Node ID 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
+# Parent 4e2adbc3d2b512f6b2bf318d2db60f4d1903f8c7
+8185723, PR3553: Zero: segfaults on Power PC 32-bit
+Reviewed-by: roland
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+@@ -38,10 +38,10 @@
+ static void atomic_copy64(volatile void *src, volatile void *dst) {
+ #if defined(PPC32)
+ double tmp;
+- asm volatile ("lfd %0, 0(%1)\n"
+- "stfd %0, 0(%2)\n"
+- : "=f"(tmp)
+- : "b"(src), "b"(dst));
++ asm volatile ("lfd %0, %2\n"
++ "stfd %0, %1\n"
++ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
++ : "Q"(*(volatile double*)src));
+ #elif defined(S390) && !defined(_LP64)
+ double tmp;
+ asm volatile ("ld %0, 0(%1)\n"
diff --git a/8186461-pr3557.patch b/8186461-pr3557.patch
new file mode 100644
index 0000000..cc8020c
--- /dev/null
+++ b/8186461-pr3557.patch
@@ -0,0 +1,32 @@
+# HG changeset patch
+# User glaubitz
+# Date 1524889690 -3600
+# Sat Apr 28 05:28:10 2018 +0100
+# Node ID be1379a186ba527b32c93a83e04c9600735fe44b
+# Parent 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
+8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+Reviewed-by: aph
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+@@ -36,12 +36,18 @@
+
+ // Atomically copy 64 bits of data
+ static void atomic_copy64(volatile void *src, volatile void *dst) {
+-#if defined(PPC32)
++#if defined(PPC32) && !defined(__SPE__)
+ double tmp;
+ asm volatile ("lfd %0, %2\n"
+ "stfd %0, %1\n"
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
+ : "Q"(*(volatile double*)src));
++#elif defined(PPC32) && defined(__SPE__)
++ long tmp;
++ asm volatile ("evldd %0, %2\n"
++ "evstdd %0, %1\n"
++ : "=&r"(tmp), "=Q"(*(volatile long*)dst)
++ : "Q"(*(volatile long*)src));
+ #elif defined(S390) && !defined(_LP64)
+ double tmp;
+ asm volatile ("ld %0, 0(%1)\n"
diff --git a/8187577-pr3578.patch b/8187577-pr3578.patch
new file mode 100644
index 0000000..ca60619
--- /dev/null
+++ b/8187577-pr3578.patch
@@ -0,0 +1,59 @@
+# HG changeset patch
+# User poonam
+# Date 1525279722 -3600
+# Wed May 02 17:48:42 2018 +0100
+# Node ID ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
+# Parent 5460c427c0dcb335f510cbc2ea1d76c6921b1aaa
+8187577, PR3578: JVM crash during gc doing concurrent marking
+Summary: Inform G1's SATB that a klass has been resurrected and it should not be
unloaded
+Reviewed-by: coleenp, tschatzl, kbarrett
+
+diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
++++ openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2018, 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
+@@ -27,6 +27,9 @@
+ #include "memory/universe.inline.hpp"
+ #include "prims/jvmtiGetLoadedClasses.hpp"
+ #include "runtime/thread.hpp"
++#if INCLUDE_ALL_GCS
++#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
++#endif
+
+
+ // The closure for GetLoadedClasses
+@@ -35,6 +38,20 @@
+ Stack<jclass, mtInternal> _classStack;
+ JvmtiEnv* _env;
+
++// Tell the GC to keep this klass alive
++static void ensure_klass_alive(oop o) {
++ // A klass that was previously considered dead can be looked up in the
++ // CLD/SD, and its _java_mirror or _class_loader can be stored in a root
++ // or a reachable object making it alive again. The SATB part of G1 needs
++ // to get notified about this potential resurrection, otherwise the marking
++ // might not find the object.
++#if INCLUDE_ALL_GCS
++ if (UseG1GC && o != NULL) {
++ G1SATBCardTableModRefBS::enqueue(o);
++ }
++#endif
++}
++
+ public:
+ LoadedClassesClosure(JvmtiEnv* env) {
+ _env = env;
+@@ -43,6 +60,7 @@
+ void do_klass(Klass* k) {
+ // Collect all jclasses
+ _classStack.push((jclass) _env->jni_reference(k->java_mirror()));
++ ensure_klass_alive(k->java_mirror());
+ }
+
+ int extract(jclass* result_list) {
diff --git a/8197429-pr3456-rh1536622.patch b/8197429-pr3546-rh1536622.patch
similarity index 100%
rename from 8197429-pr3456-rh1536622.patch
rename to 8197429-pr3546-rh1536622.patch
diff --git a/8197546-pr3542-rh1402819.patch b/8197546-pr3542-rh1402819.patch
new file mode 100644
index 0000000..ba712ad
--- /dev/null
+++ b/8197546-pr3542-rh1402819.patch
@@ -0,0 +1,35 @@
+# HG changeset patch
+# User prr
+# Date 1518454604 28800
+# Mon Feb 12 08:56:44 2018 -0800
+# Node ID 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
+# Parent b77308735540644d4710244e3c88865067f2905a
+8197546: Fix for 8171000 breaks Solaris + Linux builds
+Reviewed-by: serb, jdv
+
+diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
++++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
+@@ -395,6 +395,8 @@
+ list_ptr regions;/* list of regions to read from */
+ {
+ XImage *ximage ;
++ image_region_type* reg;
++ int32_t rect;
+
+ ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
+ (uint32_t)width,(uint32_t)height,8,0);
+@@ -402,11 +404,11 @@
+ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 :
depth), sizeof(char));
+ ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
+
+- for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
++ for (reg = (image_region_type *) first_in_list( regions); reg;
+ reg = (image_region_type *) next_in_list( regions))
+ {
+ struct my_XRegion *vis_reg = (struct my_XRegion
*)(reg->visible_region);
+- for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
++ for (rect = 0; rect < vis_reg->numRects; rect++)
+ {
+ /**
------------------------------------------------------------------------
+ Intersect bbox with visible part of region giving src rect
& output
diff --git a/8199936-pr3533-workaround.patch b/8199936-pr3533-workaround.patch
new file mode 100644
index 0000000..900e0c3
--- /dev/null
+++ b/8199936-pr3533-workaround.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User andrew
+# Date 1526122977 -3600
+# Sat May 12 12:02:57 2018 +0100
+# Node ID 00ccc73498628a51a45301322e64ce2ad06e49be
+# Parent aecf9f48f7b5c6148b62713a6b746301435b57cc
+PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
+Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
+
+diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in
openjdk///common/autoconf/hotspot-spec.gmk.in
+--- openjdk.orig///common/autoconf/hotspot-spec.gmk.in
++++ openjdk///common/autoconf/hotspot-spec.gmk.in
+@@ -110,7 +110,8 @@
+ RC:=@HOTSPOT_RC@
+
+ EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
+- $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
++ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) \
++ $(REALIGN_CFLAG)
+ EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
+ EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
+
+diff --git openjdk.orig///common/autoconf/spec.gmk.in
openjdk///common/autoconf/spec.gmk.in
+--- openjdk.orig///common/autoconf/spec.gmk.in
++++ openjdk///common/autoconf/spec.gmk.in
+@@ -333,6 +333,7 @@
+
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
+ NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
++REALIGN_CFLAG=@REALIGN_CFLAG@
+ CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
+
+ CXX:=@FIXPATH@ @CCACHE@ @CXX@
+diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
+--- openjdk.orig///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -796,20 +796,16 @@
+ #
+ # NOTE: check for -mstackrealign needs to be below potential addition of -m32
+ #
+- if test "x$OPENJDK_TARGET_CPU_BITS" = x32 && test
"x$OPENJDK_TARGET_OS" = xmacosx; then
++ if test "x$OPENJDK_TARGET_CPU" = xx86 && test
"x$OPENJDK_TARGET_OS" = xmacosx -o \
++ "x$OPENJDK_TARGET_OS" =
xlinux; then
+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
+- # While waiting for a better solution, the current workaround is to use
-mstackrealign.
+- CFLAGS="$CFLAGS -mstackrealign"
+- AC_MSG_CHECKING([if 32-bit compiler supports -mstackrealign])
+- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])],
+- [
+- AC_MSG_RESULT([yes])
+- ],
+- [
+- AC_MSG_RESULT([no])
+- AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try
to put another compiler in the path.])
+- ]
++ # While waiting for a better solution, the current workaround is to use
-mstackrealign
++ # This is also required on Linux systems which use libraries compiled with SSE
instructions
++ REALIGN_CFLAG="-mstackrealign"
++ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
++ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
+ )
++ AC_SUBST([REALIGN_CFLAG])
+ fi
+
+ C_FLAG_DEPS="-MMD -MF"
diff --git a/8201509-pr3579.patch b/8201509-pr3579.patch
new file mode 100644
index 0000000..132c225
--- /dev/null
+++ b/8201509-pr3579.patch
@@ -0,0 +1,36 @@
+# HG changeset patch
+# User mbalao
+# Date 1525317412 -3600
+# Thu May 03 04:16:52 2018 +0100
+# Node ID de79964656fc652f2085dac4fe99bcc128b5a3b1
+# Parent ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
+8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+Summary: The inline assembler for the S390 (S390 and not _LP64) has src and dst reversed
thereby corrupting data
+Reviewed-by: shade
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2007, 2008, 2010 Red Hat, Inc.
++ * Copyright 2007, 2008, 2010, 2018, 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
+@@ -50,10 +50,10 @@
+ : "Q"(*(volatile long*)src));
+ #elif defined(S390) && !defined(_LP64)
+ double tmp;
+- asm volatile ("ld %0, 0(%1)\n"
+- "std %0, 0(%2)\n"
+- : "=r"(tmp)
+- : "a"(src), "a"(dst));
++ asm volatile ("ld %0, %2\n"
++ "std %0, %1\n"
++ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
++ : "Q"(*(volatile double*)src));
+ #elif defined(__ARM_ARCH_7A__)
+ jlong tmp;
+ asm volatile ("ldrexd %0, [%1]\n"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 16f320f..f7616e3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -72,14 +72,22 @@
%global targets all
%endif
+
+%ifarch %{aarch64}
+# Disable hardened build on AArch64 as it didn't bootcycle
+%undefine _hardened_build
+%global ourcppflags "-fstack-protector-strong"
+%global ourldflags %{nil}
+%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
-%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
"-fstack-protector-strong"
%global ourldflags %{__global_ldflags}
+%endif
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialisation must be here. Later the pkg-config have buggy behaviour
@@ -919,7 +927,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1035,9 +1043,11 @@ Patch509: rh1176206-root.patch
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528: pr3083-rh1346460.patch
+# RH1566890: CVE-2018-3639
+Patch529: rh1566890_embargoed20180521.patch
# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
# linking with unresolved symbols.
-Patch529: rhbz_1538767_fix_linking.patch
+Patch530: rhbz_1538767_fix_linking.patch
#############################################
#
@@ -1051,14 +1061,18 @@ Patch205: dont-add-unnecessary-debug-links.patch
Patch206: hotspot-assembler-debuginfo.patch
# Arch-specific upstreamable patches
-# PR2415: JVM -Xmx requirement is too high on s390
+# s390: PR2415: JVM -Xmx requirement is too high on s390
Patch100: %{name}-s390-java-opts.patch
-# Type fixing for s390
+# s390: Type fixing for s390
Patch102: %{name}-size_t.patch
-# Use "%z" for size_t on s390 as size_t != intptr_t
-Patch103: s390-size_t_format_flags.patch
-# Fix more cases of missing return statements on AArch64
-Patch104: pr3458-rh1540242.patch
+# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
+Patch103: pr3593-s390-size_t_format_flags.patch
+# AArch64: Fix more cases of missing return statements
+Patch104: pr3458-rh1540242-aarch64.patch
+# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
+Patch105: 8199936-pr3533-workaround.patch
+# Zero: Fix more cases of missing return statements
+Patch106: pr3458-rh1540242-zero.patch
#############################################
#
@@ -1087,11 +1101,32 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
-Patch540: rhbz1548475-LDFLAGSusage.patch
# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
Patch560: 8188030-pr3459-rh1484079.patch
-# 8197429, PR3456, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
-Patch561: 8197429-pr3456-rh1536622.patch
+# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
+Patch561: 8197429-pr3546-rh1536622.patch
+# PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+Patch562: pr3539-rh1548475.patch
+# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+Patch563: 8171000-pr3542-rh1402819.patch
+# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
+Patch564: 8197546-pr3542-rh1402819.patch
+# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+Patch565: 8185723-pr3553.patch
+# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+Patch566: 8186461-pr3557.patch
+# PR3559: Use ldrexd for atomic reads on ARMv7.
+Patch567: pr3559.patch
+# 8187577, PR3578: JVM crash during gc doing concurrent marking
+Patch568: 8187577-pr3578.patch
+# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+Patch569: 8201509-pr3579.patch
+# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+Patch570: 8165489-pr3589.patch
+# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+Patch571: pr3591.patch
+# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+Patch572: 8184309-pr3596.patch
#############################################
#
@@ -1116,13 +1151,15 @@ Patch525: pr1834-rh1022017.patch
Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
+# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
+Patch540: pr3575-rh1567204.patch
#############################################
#
# Non-OpenJDK fixes
-Patch1000: enableCommentedOutSystemNss.patch
#
#############################################
+Patch1000: enableCommentedOutSystemNss.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1155,6 +1192,7 @@ BuildRequires: zip
# Use OpenJDK 7 where available (on RHEL) to avoid
# having to use the rhel-7.x-java-unsafe-candidate hack
%if ! 0%{?fedora} && 0%{?rhel} <= 7
+# Require a boot JDK which doesn't fail due to RH1482244
BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
%else
BuildRequires: java-1.8.0-openjdk-devel
@@ -1479,12 +1517,16 @@ sh %{SOURCE12}
%patch104
%endif
+# x86 fixes
+%patch105
+
# ppc64le fixes
%patch603
%patch601
%patch602
# Zero fixes.
+%patch106
# Upstreamable fixes
%patch502
@@ -1506,23 +1548,40 @@ sh %{SOURCE12}
%patch523
%patch526
%patch528
+%patch529
%patch538
-%patch540
%patch560
-pushd %{top_level_dir_name}/jdk
-%patch529 -p1
-popd # openjdk
+pushd openjdk/jdk
+%patch530 -p1
+popd
%patch561
+%patch562
+%patch563
+%patch564
+%patch565
+%patch566
+%patch567
+%patch569
+%patch571
+%patch572
# RPM-only fixes
%patch525
%patch539
+%patch540
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
%patch534
%endif
+# Shenandoah-only patches
+%if %{use_shenandoah_hotspot}
+%else
+%patch568
+%patch570
+%endif
+
%patch1000
# Extract systemtap tapsets
@@ -2163,6 +2222,40 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jun 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-5.b11
+- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
+- Resolves: rhbz#1567204
+- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
+- Update Shenandoah tarball to include 2018-05-15 merge.
+- Split PR3458/RH1540242 fix into AArch64 & Zero sections, so former can be skipped
on Shenandoah builds.
+- Drop PR3573 patch applied upstream.
+- Restrict 8187577 fix to non-Shenandoah builds, as it's included in the new
tarball.
+- Sync with IcedTea 3.8.0.
+- Label architecture-specific fixes with architecture concerned
+- x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
+- PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+- 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+- 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
+- 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+- 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+- PR3559: Use ldrexd for atomic reads on ARMv7.
+- 8187577, PR3578: JVM crash during gc doing concurrent marking
+- 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+- 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+- PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+- 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
+- updated to u172-b11
+- removed patches:
+- patch207 8200556-pr3566.patch
+- patch104 pr3458-rh1540242.patch
+- patch209 8035496-hotspot.patch
+- patch700 pr3573.patch
+- fixed issue with atkwrapper wrongly palced broken symlink
+- fixed libjvm path for system tap
+- returned patch104 pr3458-rh1540242.patch
+
* Fri Jun 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-3.b11
- Bump release and rebuild for fixed gdb. See RHBZ#1589118.
diff --git a/pr3458-rh1540242.patch b/pr3458-rh1540242-aarch64.patch
similarity index 57%
rename from pr3458-rh1540242.patch
rename to pr3458-rh1540242-aarch64.patch
index 2a1ce5e..01ebc2c 100644
--- a/pr3458-rh1540242.patch
+++ b/pr3458-rh1540242-aarch64.patch
@@ -9,15 +9,3 @@ diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux
}
void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -408,6 +408,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
-
-
diff --git a/pr3458-rh1540242-zero.patch b/pr3458-rh1540242-zero.patch
new file mode 100644
index 0000000..dad435b
--- /dev/null
+++ b/pr3458-rh1540242-zero.patch
@@ -0,0 +1,11 @@
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -408,6 +408,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+
diff --git a/pr3539-rh1548475.patch b/pr3539-rh1548475.patch
new file mode 100644
index 0000000..492a080
--- /dev/null
+++ b/pr3539-rh1548475.patch
@@ -0,0 +1,116 @@
+# HG changeset patch
+# User andrew
+# Date 1526065930 -3600
+# Fri May 11 20:12:10 2018 +0100
+# Node ID b8fc1e640c4c7f38ca94131279cb67c4d3de6961
+# Parent afb31413c73cbc06420fdb447aa90a7a38258904
+PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/jsig.make
openjdk/hotspot/make/aix/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/aix/makefiles/jsig.make
++++ openjdk/hotspot/make/aix/makefiles/jsig.make
+@@ -45,7 +45,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ LFLAGS_JSIG += $(BIN_UTILS)
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/saproc.make
openjdk/hotspot/make/aix/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/saproc.make
++++ openjdk/hotspot/make/aix/makefiles/saproc.make
+@@ -66,7 +66,7 @@
+ endif
+
+
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
+ $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
+diff --git openjdk.orig/hotspot/make/aix/makefiles/vm.make
openjdk/hotspot/make/aix/makefiles/vm.make
+--- openjdk.orig/hotspot/make/aix/makefiles/vm.make
++++ openjdk/hotspot/make/aix/makefiles/vm.make
+@@ -117,7 +117,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
openjdk/hotspot/make/bsd/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
++++ openjdk/hotspot/make/bsd/makefiles/jsig.make
+@@ -52,7 +52,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ # DEBUG_BINARIES overrides everything, use full -g debug information
+ ifeq ($(DEBUG_BINARIES), true)
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
openjdk/hotspot/make/bsd/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
++++ openjdk/hotspot/make/bsd/makefiles/saproc.make
+@@ -114,7 +114,7 @@
+ # bring in minimum version argument or we'll fail on OSX 10.10
+ SA_LFLAGS = $(LFLAGS)
+ endif
+-SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS += $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
+ -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]"
"[:lower:]")
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/vm.make
openjdk/hotspot/make/bsd/makefiles/vm.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/vm.make
++++ openjdk/hotspot/make/bsd/makefiles/vm.make
+@@ -119,7 +119,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -44,7 +44,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ # DEBUG_BINARIES overrides everything, use full -g debug information
+ ifeq ($(DEBUG_BINARIES), true)
+diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -73,7 +73,7 @@
+ else
+ ALT_SAINCDIR=
+ endif
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ SAARCH ?= $(BUILDARCH)
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
+--- openjdk.orig/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -130,7 +130,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
diff --git a/pr3559.patch b/pr3559.patch
new file mode 100644
index 0000000..48211dc
--- /dev/null
+++ b/pr3559.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# User aph
+# Date 1338206478 14400
+# Mon May 28 08:01:18 2012 -0400
+# Node ID 6275d7b419091092752d5a1854194c98897892ba
+# Parent be1379a186ba527b32c93a83e04c9600735fe44b
+PR3559: Use ldrexd for atomic reads on ARMv7.
+
+2012-05-28 Andrew Haley <aph(a)redhat.com>
+
+ * os_linux_zero.hpp (atomic_copy64): Use ldrexd for atomic reads
+ on ARMv7.
+
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+@@ -54,6 +54,12 @@
+ "std %0, 0(%2)\n"
+ : "=r"(tmp)
+ : "a"(src), "a"(dst));
++#elif defined(__ARM_ARCH_7A__)
++ jlong tmp;
++ asm volatile ("ldrexd %0, [%1]\n"
++ : "=r"(tmp)
++ : "r"(src), "m"(src));
++ *(jlong *) dst = tmp;
+ #else
+ *(jlong *) dst = *(jlong *) src;
+ #endif
diff --git a/pr3573.patch b/pr3573.patch
new file mode 100644
index 0000000..07b9f10
--- /dev/null
+++ b/pr3573.patch
@@ -0,0 +1,25 @@
+# HG changeset patch
+# User roland
+# Date 1506520357 -7200
+# Wed Sep 27 15:52:37 2017 +0200
+# Node ID c307975d0800f8da5cc8e82cd8f1fdadbd745357
+# Parent ab0c101fa16e4cd97ac8ceff4f5ff72e2f4d5776
+[backport] fix TCK crash with shenandoah
+
+diff --git a/src/share/vm/opto/shenandoahSupport.cpp
b/src/share/vm/opto/shenandoahSupport.cpp
+--- openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
++++ openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
+@@ -472,9 +472,11 @@
+ Node* input = in(Memory);
+ if (input->Opcode() == Op_ShenandoahWBMemProj) {
+ Node* wb = input->in(0);
+- if (wb->is_top()) return NULL; // Dead path.
++ const Type* in_type = phase->type(wb);
++ // is_top() test not sufficient here: we can come here after CCP
++ // in a dead branch of the graph that has not yet been removed.
++ if (in_type == Type::TOP) return NULL; // Dead path.
+ assert(wb->Opcode() == Op_ShenandoahWriteBarrier, "expect write
barrier");
+- const Type* in_type = phase->type(wb);
+ if (is_independent(in_type, _type)) {
+ if (phase->is_IterGVN()) {
+ phase->is_IterGVN()->rehash_node_delayed(wb);
diff --git a/pr3575-rh1567204.patch b/pr3575-rh1567204.patch
new file mode 100644
index 0000000..ce24c59
--- /dev/null
+++ b/pr3575-rh1567204.patch
@@ -0,0 +1,42 @@
+# HG changeset patch
+# User andrew
+# Date 1525111445 -3600
+# Mon Apr 30 19:04:05 2018 +0100
+# Node ID 388fc8da23044317c160678ffa8ff541c216a255
+# Parent 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
+PR3575: System cacerts database handling should not affect jssecacerts
+
+diff --git
openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+@@ -162,7 +162,7 @@
+ * Try:
+ * javax.net.ssl.trustStore (if this variable exists, stop)
+ * jssecacerts
+- * cacerts
++ * cacerts (system and local)
+ *
+ * If none exists, we use an empty keystore.
+ */
+@@ -174,14 +174,14 @@
+ storeFile = new File(storeFileName);
+ fis = getFileInputStream(storeFile);
+ } else {
+- /* Check system cacerts DB first; /etc/pki/java/cacerts */
+- storeFile = new File(sep + "etc" + sep + "pki" +
sep
+- + "java" + sep +
"cacerts");
++ String javaHome = props.get("javaHome");
++ storeFile = new File(javaHome + sep + "lib" + sep
++ + "security" + sep +
++ "jssecacerts");
+ if ((fis = getFileInputStream(storeFile)) == null) {
+- String javaHome = props.get("javaHome");
+- storeFile = new File(javaHome + sep + "lib" + sep
+- + "security" + sep +
+- "jssecacerts");
++ /* Check system cacerts DB first; /etc/pki/java/cacerts */
++ storeFile = new File(sep + "etc" + sep +
"pki" + sep
++ + "java" + sep +
"cacerts");
+ if ((fis = getFileInputStream(storeFile)) == null) {
+ storeFile = new File(javaHome + sep + "lib" + sep
+ + "security" + sep +
diff --git a/pr3591.patch b/pr3591.patch
new file mode 100644
index 0000000..e287590
--- /dev/null
+++ b/pr3591.patch
@@ -0,0 +1,20 @@
+# HG changeset patch
+# User andrew
+# Date 1526489197 -3600
+# Wed May 16 17:46:37 2018 +0100
+# Node ID 64e87a408afd2b56d59dad73dee28d4b99463810
+# Parent 00ccc73498628a51a45301322e64ce2ad06e49be
+PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+
+diff --git openjdk.orig///common/autoconf/toolchain.m4
openjdk///common/autoconf/toolchain.m4
+--- openjdk.orig///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -794,6 +794,8 @@
+ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to
put another compiler in the path.])
+ )
++ CFLAGS_JDK="${CFLAGS_JDK} ${REALIGN_CFLAG}"
++ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${REALIGN_CFLAG}"
+ AC_SUBST([REALIGN_CFLAG])
+ fi
+
diff --git a/s390-size_t_format_flags.patch b/pr3593-s390-size_t_format_flags.patch
similarity index 100%
rename from s390-size_t_format_flags.patch
rename to pr3593-s390-size_t_format_flags.patch
diff --git a/rh1566890_embargoed20180521.patch b/rh1566890_embargoed20180521.patch
new file mode 100644
index 0000000..e29bdb9
--- /dev/null
+++ b/rh1566890_embargoed20180521.patch
@@ -0,0 +1,44 @@
+# ssbd2.patch
+--- ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp~ 2018-05-02 13:02:51.924489199 -0400
++++ ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2018-05-02 13:04:57.274216581 -0400
+@@ -102,6 +102,8 @@
+ # include <inttypes.h>
+ # include <sys/ioctl.h>
+
++#include <sys/prctl.h>
++
+ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+
+ #ifndef _GNU_SOURCE
+@@ -4892,6 +4894,31 @@
+ }
+ }
+
++/* Per task speculation control */
++#ifndef PR_GET_SPECULATION_CTRL
++#define PR_GET_SPECULATION_CTRL 52
++#endif
++#ifndef PR_SET_SPECULATION_CTRL
++#define PR_SET_SPECULATION_CTRL 53
++#endif
++/* Speculation control variants */
++# undef PR_SPEC_STORE_BYPASS
++# define PR_SPEC_STORE_BYPASS 0
++/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
++# undef PR_SPEC_NOT_AFFECTED
++# undef PR_SPEC_PRCTL
++# undef PR_SPEC_ENABLE
++# undef PR_SPEC_DISABLE
++# define PR_SPEC_NOT_AFFECTED 0
++# define PR_SPEC_PRCTL (1UL << 0)
++# define PR_SPEC_ENABLE (1UL << 1)
++# define PR_SPEC_DISABLE (1UL << 2)
++
++static void set_speculation() __attribute__((constructor));
++static void set_speculation() {
++ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
++}
++
+ // this is called _before_ the most of global arguments have been parsed
+ void os::init(void) {
+ char dummy; /* used to get a guess on initial stack address */
diff --git a/rhbz1548475-LDFLAGSusage.patch b/rhbz1548475-LDFLAGSusage.patch
deleted file mode 100644
index 243c71b..0000000
--- a/rhbz1548475-LDFLAGSusage.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-# User jvanek
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1548475
-# java-1.8.0-openjdk: Partial build flags injection
-# LFLAGS += $(EXTRA_CFLAGS) corrected to LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
---- openjdk/hotspot/make/aix/makefiles/vm.make
-+++ openjdk/hotspot/make/aix/makefiles/vm.make
-@@ -117,7 +117,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
---- openjdk/hotspot/make/bsd/makefiles/vm.make
-+++ openjdk/hotspot/make/bsd/makefiles/vm.make
-@@ -119,7 +119,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
---- openjdk/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -122,7 +122,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
---- openjdk/hotspot/make/linux/makefiles/saproc.make
-+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -73,7 +73,7 @@
- else
- ALT_SAINCDIR=
- endif
--SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- SAARCH ?= $(BUILDARCH)
-
---- openjdk/hotspot/make/linux/makefiles/jsig.make
-+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -44,7 +44,7 @@ LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- # DEBUG_BINARIES overrides everything, use full -g debug information
- ifeq ($(DEBUG_BINARIES), true)
commit e1efe6b8af2de79e7f99b70a379378bc47aa1876
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Jun 8 17:46:50 2018 +0200
Bump release and rebuild for fixed gdb.
See RHBZ#1589118.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b0585fc..16f320f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -919,7 +919,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -2163,6 +2163,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jun 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-3.b11
+- Bump release and rebuild for fixed gdb. See RHBZ#1589118.
+
* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-2.b11
- quoted sed expressions, changed possibly confussing # by @
- added vendor(origin) into icons
commit c362051354ac17d4e23d358e2bbdb599e35acdcd
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 7 14:16:05 2018 +0200
Undeclared patch700
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 29ff69e..b0585fc 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1117,14 +1117,6 @@ Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
-#############################################
-#
-# Shenandoah fixes
-#
-#############################################
-# PR3573: Fix TCK crash with Shenandoah
-Patch700: pr3573.patch
-
#############################################
#
# Non-OpenJDK fixes
commit b897e4253dc2966617e50123ab42fa51cd37d125
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 7 14:08:01 2018 +0200
More fx slowdebug tuning
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 912f84e..29ff69e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1390,20 +1390,20 @@ Set of links from OpenJDK (sdk) to OpenJFX
%if %{include_debug_build}
%package openjfx-slowdebug
-Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-debug
-Requires: %{name}-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-slowdebug
+Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx%{?_isa}
-Provides: javafx-debug = %{epoch}:%{version}-%{release}
-%description openjfx-debug
-Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+Provides: javafx-slowdebug = %{epoch}:%{version}-%{release}
+%description openjfx-slowdebug
+Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
%package openjfx-devel-slowdebug
-Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
-Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-slowdebug
+Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx-devel%{?_isa}
-Provides: javafx-devel-debug = %{epoch}:%{version}-%{release}
-%description openjfx-devel-debug
-Set of links from OpenJDK-debug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release}
+%description openjfx-devel-slowdebug
+Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
%endif
%endif
commit 72be256872752b69c073b55bac57445fb6e5e8f1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 7 14:05:32 2018 +0200
Aligned openjfx packages to slowdebug
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d5b3eb6..912f84e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1389,7 +1389,7 @@ Provides: javafx-devel = %{epoch}:%{version}-%{release}
Set of links from OpenJDK (sdk) to OpenJFX
%if %{include_debug_build}
-%package openjfx-debug
+%package openjfx-slowdebug
Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-debug
Requires: %{name}-debug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx%{?_isa}
@@ -1397,7 +1397,7 @@ Provides: javafx-debug = %{epoch}:%{version}-%{release}
%description openjfx-debug
Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
-%package openjfx-devel-debug
+%package openjfx-devel-slowdebug
Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx-devel%{?_isa}
commit 711d9890501d0e32f6699b7c985da47e4309f388
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 7 14:03:36 2018 +0200
Returned patch 104 as shenandoah only. Semantically aligned with java-openjdk
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..61b3b69
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+Package of LTS OpenJDK 8
+OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6
months only. This package is designed to harbore them. Currently it is build on openJDK
10. LTSs (next is 11) will go as separate packages.
+
+JDK8 is last LTS release of Java platform. It is bringing many cool improvements -
http://openjdk.java.net/projects/jdk/8/ and is landing to your RHEL. Where it will be
maintained for several years. You will always be allowed to install Used LTSs in build
root, and alongside via alternatives.
+
+See announcement:
http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
+See java SIG plans:
https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
+
diff --git a/README.src b/README.src
deleted file mode 100644
index b5f06d1..0000000
--- a/README.src
+++ /dev/null
@@ -1,2 +0,0 @@
-The java-1.8.0-openjdk-src subpackage contains the complete OpenJDK 8
-class library source code for use by IDE indexers and debuggers.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 78135ec..d5b3eb6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,19 +1,20 @@
%define _find_debuginfo_opts -g
-# note, parametrised macros are order-senisitve (unlike not-parametrized) even with
normal macros
-# also necessary when passing it as parameter other macros. If not macro, then it is
considered as switch
-%global debug_suffix_unquoted -debug
+# note: parametrized macros are order-sensitive (unlike not-parametrized) even with
normal macros
+# also necessary when passing it as parameter to other macros. If not macro, then it is
considered a switch
+# see the difference between global and deffine:
+# See
https://github.com/rpm-software-management/rpm/issues/127 to comments at
"pmatilai commented on Aug 18, 2017"
+# (initiated in
https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
+%global debug_suffix_unquoted -slowdebug
# quoted one for shell operations
%global debug_suffix "%{debug_suffix_unquoted}"
%global normal_suffix ""
-#if you wont only debug build, but providing java, build only normal build, but set
normalbuild_parameter
-%global debugbuild_parameter slowdebug
-%global normalbuild_parameter release
-%global debug_warning This package have full debug on. Install only in need, and remove
asap.
+# if you want only debug build but providing java build only normal build but set
normalbuild_parameter
+%global debug_warning This package has full debug on. Install only in need and remove
asap.
%global debug_on with full debug on
%global for_debug for packages with debug on
-# by default we build normal build always.
+# by default we build normal build
%global include_normal_build 1
%if %{include_normal_build}
%global build_loop1 %{normal_suffix}
@@ -22,7 +23,7 @@
%endif
%global aarch64 aarch64 arm64 armv8
-# sometimes we need to distinguish big and little endian PPC64
+# we need to distinguish between big and little endian PPC64
%global ppc64le ppc64le
%global ppc64be ppc64 ppc64p7
%global multilib_arches %{power64} sparc64 x86_64
@@ -30,10 +31,14 @@
# By default, we build a debug build during main build on JIT architectures
%ifarch %{jit_arches}
+%ifnarch %{arm}
%global include_debug_build 1
%else
%global include_debug_build 0
%endif
+%else
+%global include_debug_build 0
+%endif
# On x86_64 and AArch64, we use the Shenandoah HotSpot
%ifarch x86_64 %{aarch64}
@@ -42,16 +47,17 @@
%global use_shenandoah_hotspot 0
%endif
+
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
%else
%global build_loop2 %{nil}
%endif
-# if you disable both builds, then build fails
+# if you disable both builds, then the build fails
%global build_loop %{build_loop1} %{build_loop2}
-# note, that order normal_suffix debug_suffix, in case of both enabled,
-# is expected in one single case at the end of build
+# note: that order: normal_suffix debug_suffix, in case of both enabled
+# is expected in one single case at the end of the build
%global rev_build_loop %{build_loop2} %{build_loop1}
%ifarch %{jit_arches}
@@ -75,9 +81,9 @@
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
-# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
-# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
-#looks liekopenjdk RPM specific bug
+# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
+# the initialisation must be here. Later the pkg-config have buggy behaviour
+# looks like openjdk RPM specific bug
# Always set this so the nss.cfg file is not broken
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
%global NSS_LIBS %(pkg-config --libs nss)
@@ -85,13 +91,14 @@
# see
https://bugzilla.redhat.com/show_bug.cgi?id=1332456
%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : )
%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : )
-#this is worakround for processing of requires during srpm creation
+# this is workaround for processing of requires during srpm creation
%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}"
== "x" ] ; then echo "" ;else echo ">=
%{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)
%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" ==
"x" ] ; then echo "" ;else echo ">=
%{NSS_BUILDTIME_NUMBER}" ;fi)
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-%global _privatelibs libmawt[.]so.*
+%global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.* libextnet[.]so.*
libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.* libfontmanager[.]so.*
libinstrument[.]so.* libj2gss[.]so.* libj2pcsc[.]so.* libj2pkcs11[.]so.*
libjaas_unix[.]so.* libjavajpeg[.]so.* libjdwp[.]so.* libjimage[.]so.* libjsound[.]so.*
liblcms[.]so.* libmanagement[.]so.* libmanagement_agent[.]so.* libmanagement_ext[.]so.*
libmlib_image[.]so.* libnet[.]so.* libnio[.]so.* libprefs[.]so.* librmi[.]so.*
libsaproc[.]so.* libsctp[.]so.* libunpack[.]so.* libverify[.]so.* libzip[.]so.*
libjsoundalsa[.]so.* libsplashscreen[.]so.* libawt_xawt[.]so.*
+
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -101,64 +108,57 @@
# does not match that given by _build_cpu
%ifarch x86_64
%global archinstall amd64
-%global stapinstall x86_64
%endif
%ifarch ppc
%global archinstall ppc
-%global stapinstall powerpc
%endif
%ifarch %{ppc64be}
%global archinstall ppc64
-%global stapinstall powerpc
%endif
%ifarch %{ppc64le}
%global archinstall ppc64le
-%global stapinstall powerpc
%endif
%ifarch %{ix86}
%global archinstall i386
-%global stapinstall i386
%endif
%ifarch ia64
%global archinstall ia64
-%global stapinstall ia64
%endif
%ifarch s390
%global archinstall s390
-%global stapinstall s390
%endif
%ifarch s390x
%global archinstall s390x
-%global stapinstall s390
%endif
%ifarch %{arm}
%global archinstall arm
-%global stapinstall arm
%endif
%ifarch %{aarch64}
%global archinstall aarch64
-%global stapinstall arm64
%endif
# 32 bit sparc, optimized for v9
%ifarch sparcv9
%global archinstall sparc
-%global stapinstall %{_build_cpu}
%endif
# 64 bit sparc
%ifarch sparc64
%global archinstall sparcv9
-%global stapinstall %{_build_cpu}
%endif
%ifnarch %{jit_arches}
%global archinstall %{_arch}
%endif
+
+
%ifarch %{jit_arches}
%global with_systemtap 1
%else
%global with_systemtap 0
%endif
+# New Version-String scheme-style defines
+%global majorver 8
+
%ifarch %{ix86} x86_64
%global with_openjfx_binding 1
%global openjfx_path %{_jvmdir}/openjfx
@@ -179,15 +179,10 @@
%global with_openjfx_binding 0
%endif
-# Convert an absolute path to a relative path. Each symbolic link is
-# specified relative to the directory in which it is installed so that
-# it will resolve properly within chrooted installations.
-%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0],
$ARGV[1])'
-%global abs2rel %{__perl} -e %{script}
-
-
# Standard JPackage naming and versioning defines.
%global origin openjdk
+%global origin_nice OpenJDK
+%global top_level_dir_name %{origin}
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global project aarch64-port
%global repo jdk8u
@@ -201,17 +196,19 @@
# priority must be 7 digits in total. The expression is workarounding tip
%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
-%global javaver 1.8.0
+%global javaver 1.%{majorver}.0
+%global systemtap_javaver 9
# parametrized macros are order-sensitive
-%global fullversion %{name}-%{version}-%{release}
-#images stub
-%global j2sdkimage j2sdk-image
+%global compatiblename %{name}
+%global fullversion %{compatiblename}-%{version}-%{release}
+# images stub
+%global jdkimage j2sdk-image
# output dir stub
%define buildoutputdir() %{expand:openjdk/build/jdk8.build%{?1}}
-#we can copy the javadoc to not arched dir, or made it not noarch
+# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
-#main id and dir of this jdk
+# main id and dir of this jdk
%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
# Standard JPackage directories and symbolic links.
@@ -234,10 +231,11 @@
# for the primary arch for now). Systemtap uses the machine name
# aka build_cpu as architecture specific directory name.
%global tapsetroot /usr/share/systemtap
-%global tapsetdir %{tapsetroot}/tapset/%{stapinstall}
+%global tapsetdirttapset %{tapsetroot}/tapset/
+%global tapsetdir %{tapsetdirttapset}/%{_build_cpu}
%endif
-# not-duplicated scriplets for normal/debug packages
+# not-duplicated scriptlets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
@@ -252,7 +250,7 @@ exit 0
%ifarch %{jit_arches}
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
%ifnarch %{power64}
-#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
%endif
@@ -508,7 +506,7 @@ exit 0
}
%define files_jre() %{expand:
-%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
%{_datadir}/applications/*policytool%{?1}.desktop
%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so
%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so
@@ -522,12 +520,11 @@ exit 0
%defattr(-,root,root,-)
%dir %{_sysconfdir}/.java/.systemPrefs
%dir %{_sysconfdir}/.java
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir -- %{?1}}
%{_jvmdir}/%{jrelnk -- %{?1}}
-%{_jvmprivdir}/*
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
%dir %{_jvmdir}/%{jredir -- %{?1}}
@@ -633,7 +630,17 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar
%{_jvmdir}/%{jredir -- %{?1}}/lib/management/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
-%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/*
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
+
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management
@@ -643,9 +650,9 @@ exit 0
%define files_devel() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/LICENSE
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/THIRD_PARTY_README
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
@@ -693,6 +700,9 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/include/*
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
+%if %{with_systemtap}
+%{_jvmdir}/%{sdkdir -- %{?1}}/tapset
+%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
@@ -734,34 +744,33 @@ exit 0
%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
%if %{with_systemtap}
%dir %{tapsetroot}
+%dir %{tapsetdirttapset}
%dir %{tapsetdir}
-%{tapsetdir}/*%{version}-%{release}.%{_arch}%{?1}.stp
-%dir %{_jvmdir}/%{sdkdir -- %{?1}}/tapset
-%{_jvmdir}/%{sdkdir -- %{?1}}/tapset/*.stp
+%{tapsetdir}/*%{_arch}%{?1}.stp
%endif
}
%define files_demo() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
}
%define files_src() %{expand:
%defattr(-,root,root,-)
-%doc README.src
+%doc README.md
%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
}
%define files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
}
%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
-%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
}
%define files_accessibility() %{expand:
@@ -770,7 +779,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
}
-# not-duplicated requires/provides/obsolate for normal/debug packages
+# not-duplicated requires/provides/obsoletes for normal/debug packages
%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
@@ -779,97 +788,82 @@ Requires: xorg-x11-fonts-Type1
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
-# Standard JPackage base provides.
-Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+# Standard JPackage base provides
+Provides: jre = %{javaver}%{?1}
Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre = %{javaver}%{?1}
Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
Provides: java%{?1} = %{epoch}:%{javaver}
-# Standard JPackage extensions provides.
-Provides: java-fonts%{?1} = %{epoch}:%{version}
-
-Obsoletes: java-1.7.0-openjdk%{?1}
-Obsoletes: java-1.5.0-gcj%{?1}
-Obsoletes: sinjdoc
}
%define java_headless_rpo() %{expand:
-# Require /etc/pki/java/cacerts.
+# Require /etc/pki/java/cacerts
Requires: ca-certificates
# Require javapackages-filesystem for ownership of /usr/lib/jvm/
Requires: javapackages-filesystem
-# Require zoneinfo data provided by tzdata-java subpackage.
+# Require zoneinfo data provided by tzdata-java sub-package
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools%{?_isa}
# there is a need to depend on the exact version of NSS
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 >= 3.3
+# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
+# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
+# considered as regression
+Requires: copy-jdk-configs >= 3.3
OrderWithRequires: copy-jdk-configs
-# Post requires alternatives to install tool alternatives.
+# Post requires alternatives to install tool alternatives
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(post): chkconfig >= 1.7
-# Postun requires alternatives to uninstall tool alternatives.
+# Postun requires alternatives to uninstall tool alternatives
Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
-# Standard JPackage base provides.
+# Standard JPackage base provides
+Provides: jre-headless%{?1} = %{epoch}:%{javaver}
Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
-Provides: jre-headless%{?1} = %{epoch}:%{javaver}
Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
Provides: java-headless%{?1} = %{epoch}:%{javaver}
-# Standard JPackage extensions provides.
-Provides: jndi%{?1} = %{epoch}:%{version}
-Provides: jndi-ldap%{?1} = %{epoch}:%{version}
-Provides: jndi-cos%{?1} = %{epoch}:%{version}
-Provides: jndi-rmi%{?1} = %{epoch}:%{version}
-Provides: jndi-dns%{?1} = %{epoch}:%{version}
-Provides: jaas%{?1} = %{epoch}:%{version}
-Provides: jsse%{?1} = %{epoch}:%{version}
-Provides: jce%{?1} = %{epoch}:%{version}
-Provides: jdbc-stdext%{?1} = 4.1
-Provides: java-sasl%{?1} = %{epoch}:%{version}
-
-#https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
Provides: /usr/bin/jjs
-Obsoletes: java-1.7.0-openjdk-headless%{?1}
}
%define java_devel_rpo() %{expand:
-# Require base package.
+# Requires base package
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install tool alternatives.
+# Post requires alternatives to install tool alternatives
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(post): chkconfig >= 1.7
-# Postun requires alternatives to uninstall tool alternatives.
+# Postun requires alternatives to uninstall tool alternatives
Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
-# Standard JPackage devel provides.
+# Standard JPackage devel provides
Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}
Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}
Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}
Provides: java-sdk%{?1} = %{epoch}:%{javaver}
Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}
+Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}
Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}
Provides: java-devel%{?1} = %{epoch}:%{javaver}
-Obsoletes: java-1.7.0-openjdk-devel%{?1}
-Obsoletes: java-1.5.0-gcj-devel%{?1}
}
@@ -877,39 +871,36 @@ Obsoletes: java-1.5.0-gcj-devel%{?1}
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-demo = %{epoch}:%{version}-%{release}
+Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-demo%{?1}
}
%define java_javadoc_rpo() %{expand:
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install javadoc alternative.
+# Post requires alternatives to install javadoc alternative
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(post): chkconfig >= 1.7
-# Postun requires alternatives to uninstall javadoc alternative.
+# Postun requires alternatives to uninstall javadoc alternative
Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
-# Standard JPackage javadoc provides.
+# Standard JPackage javadoc provides
Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-javadoc = %{epoch}:%{version}-%{release}
-
-Obsoletes: java-1.7.0-openjdk-javadoc%{?1}
-
+Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
}
%define java_src_rpo() %{expand:
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
-# Standard JPackage javadoc provides.
+# Standard JPackage sources provides
Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-src = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-src%{?1}
+Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
}
%define java_accessibility_rpo() %{expand:
@@ -917,29 +908,30 @@ Requires: java-atk-wrapper%{?_isa}
Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+Provides: java-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-accessibility = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
}
-# Prevent brp-java-repack-jars from being run.
+# Prevent brp-java-repack-jars from being run
%global __jar_repack 0
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{buildver}%{?dist}
-# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
-# and this change was brought into RHEL-4. java-1.5.0-ibm packages
-# also included the epoch in their virtual provides. This created a
+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
# situation where in-the-wild java-1.5.0-ibm packages provided "java =
-# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
-# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
-# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
+# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
+# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
+# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 1
-Summary: OpenJDK Runtime Environment
+Summary: %{origin_nice} Runtime Environment %{majorver}
Group: Development/Languages
# HotSpot code is licensed under GPLv2
@@ -966,15 +958,15 @@ Source0: %{project}-%{repo}-%{revision}.tar.xz
Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
# Custom README for -src subpackage
-Source2: README.src
+Source2: README.md
# Use 'generate_tarballs.sh' to generate the following tarballs
-# They are based on code contained in the IcedTea7 project.
+# They are based on code contained in the IcedTea7 project
-# Systemtap tapsets. Zipped up to keep it small.
+# Systemtap tapsets. Zipped up to keep it small
Source8: systemtap-tapset-3.6.0pre02.tar.xz
-# Desktop files. Adapated from IcedTea.
+# Desktop files. Adapted from IcedTea
Source9: jconsole.desktop.in
Source10: policytool.desktop.in
@@ -996,7 +988,11 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
+############################################
+#
# RPM/distribution specific patches
+#
+############################################
# Accessibility patches
# Ignore AWTError when assistive technologies are loaded
@@ -1004,7 +1000,11 @@ Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
+#############################################
+#
# Upstreamable patches
+#
+#############################################
# PR2737: Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
@@ -1039,7 +1039,11 @@ Patch528: pr3083-rh1346460.patch
# linking with unresolved symbols.
Patch529: rhbz_1538767_fix_linking.patch
+#############################################
+#
# Upstreamable debugging patches
+#
+#############################################
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
Patch204: hotspot-remove-debuglink.patch
Patch205: dont-add-unnecessary-debug-links.patch
@@ -1053,8 +1057,14 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
+# Fix more cases of missing return statements on AArch64
+Patch104: pr3458-rh1540242.patch
+#############################################
+#
# Patches which need backporting to 8u
+#
+#############################################
# S8073139, RH1191652; fix name of ppc64le architecture
Patch601: %{name}-rh1191652-root.patch
Patch602: %{name}-rh1191652-jdk.patch
@@ -1083,14 +1093,23 @@ Patch560: 8188030-pr3459-rh1484079.patch
# 8197429, PR3456, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
Patch561: 8197429-pr3456-rh1536622.patch
+#############################################
+#
# Patches ineligible for 8u
+#
+#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
Patch210: suse_linuxfilestore.patch
# custom securities
Patch300: PR3183.patch
+#############################################
+#
# Local fixes
+#
+#############################################
+
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
Patch525: pr1834-rh1022017.patch
# Turn on AssumeMP by default on RHEL systems
@@ -1098,8 +1117,20 @@ Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
+#############################################
+#
+# Shenandoah fixes
+#
+#############################################
+# PR3573: Fix TCK crash with Shenandoah
+Patch700: pr3573.patch
+
+#############################################
+#
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
+#
+#############################################
BuildRequires: autoconf
BuildRequires: automake
@@ -1107,7 +1138,8 @@ BuildRequires: alsa-lib-devel
BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
-BuildRequires: elfutils
+# elfutils only are ok for build without AOT
+BuildRequires: elfutils-devel
BuildRequires: fontconfig
BuildRequires: freetype-devel
BuildRequires: giflib-devel
@@ -1135,7 +1167,7 @@ BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
%else
BuildRequires: java-1.8.0-openjdk-devel
%endif
-# Zero-assembler build requirement.
+# Zero-assembler build requirement
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
@@ -1149,118 +1181,118 @@ BuildRequires: nss-softokn-freebl-devel >= 3.16.1
BuildRequires: systemtap-sdt-devel
%endif
-# this is built always, also during debug-only build
-# when it is built in debug-only, then this package is just placeholder
+# this is always built, also during debug-only build
+# when it is built in debug-only this package is just placeholder
%{java_rpo %{nil}}
%description
-The OpenJDK runtime environment.
+The %{origin_nice} runtime environment.
%if %{include_debug_build}
-%package debug
-Summary: OpenJDK Runtime Environment %{debug_on}
+%package slowdebug
+Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
Group: Development/Languages
%{java_rpo -- %{debug_suffix_unquoted}}
-%description debug
-The OpenJDK runtime environment.
+%description slowdebug
+The %{origin_nice} runtime environment.
%{debug_warning}
%endif
%if %{include_normal_build}
%package headless
-Summary: OpenJDK Runtime Environment
+Summary: %{origin_nice} Headless Runtime Environment %{majorver}
Group: Development/Languages
%{java_headless_rpo %{nil}}
%description headless
-The OpenJDK runtime environment without audio and video support.
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
%endif
%if %{include_debug_build}
-%package headless-debug
-Summary: OpenJDK Runtime Environment %{debug_on}
+%package headless-slowdebug
+Summary: %{origin_nice} Runtime Environment %{debug_on}
Group: Development/Languages
%{java_headless_rpo -- %{debug_suffix_unquoted}}
-%description headless-debug
-The OpenJDK runtime environment without audio and video support.
+%description headless-slowdebug
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
%{debug_warning}
%endif
%if %{include_normal_build}
%package devel
-Summary: OpenJDK Development Environment
+Summary: %{origin_nice} Development Environment %{majorver}
Group: Development/Tools
%{java_devel_rpo %{nil}}
%description devel
-The OpenJDK development tools.
+The %{origin_nice} development tools %{majorver}.
%endif
%if %{include_debug_build}
-%package devel-debug
-Summary: OpenJDK Development Environment %{debug_on}
+%package devel-slowdebug
+Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
Group: Development/Tools
%{java_devel_rpo -- %{debug_suffix_unquoted}}
-%description devel-debug
-The OpenJDK development tools.
+%description devel-slowdebug
+The %{origin_nice} development tools %{majorver}.
%{debug_warning}
%endif
%if %{include_normal_build}
%package demo
-Summary: OpenJDK Demos
+Summary: %{origin_nice} Demos %{majorver}
Group: Development/Languages
%{java_demo_rpo %{nil}}
%description demo
-The OpenJDK demos.
+The %{origin_nice} demos %{majorver}.
%endif
%if %{include_debug_build}
-%package demo-debug
-Summary: OpenJDK Demos %{debug_on}
+%package demo-slowdebug
+Summary: %{origin_nice} Demos %{majorver} %{debug_on}
Group: Development/Languages
%{java_demo_rpo -- %{debug_suffix_unquoted}}
-%description demo-debug
-The OpenJDK demos.
+%description demo-slowdebug
+The %{origin_nice} demos %{majorver}.
%{debug_warning}
%endif
%if %{include_normal_build}
%package src
-Summary: OpenJDK Source Bundle
+Summary: %{origin_nice} Source Bundle %{majorver}
Group: Development/Languages
%{java_src_rpo %{nil}}
%description src
-The OpenJDK source bundle.
+The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} class
library source code for use by IDE indexers and debuggers.
%endif
%if %{include_debug_build}
-%package src-debug
-Summary: OpenJDK Source Bundle %{for_debug}
+%package src-slowdebug
+Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
Group: Development/Languages
%{java_src_rpo -- %{debug_suffix_unquoted}}
-%description src-debug
-The OpenJDK source bundle %{for_debug}.
+%description src-slowdebug
+The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver} class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
%endif
%if %{include_normal_build}
%package javadoc
-Summary: OpenJDK API Documentation
+Summary: %{origin_nice} %{majorver} API documentation
Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
@@ -1268,12 +1300,12 @@ BuildArch: noarch
%{java_javadoc_rpo %{nil}}
%description javadoc
-The OpenJDK API documentation.
+The %{origin_nice} %{majorver} API documentation.
%endif
%if %{include_normal_build}
%package javadoc-zip
-Summary: OpenJDK API Documentation compressed in single archive
+Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
@@ -1281,60 +1313,60 @@ BuildArch: noarch
%{java_javadoc_rpo %{nil}}
%description javadoc-zip
-The OpenJDK API documentation compressed in single archive.
+The %{origin_nice} %{majorver} API documentation compressed in single archive.
%endif
%if %{include_debug_build}
-%package javadoc-debug
-Summary: OpenJDK API Documentation %{for_debug}
+%package javadoc-slowdebug
+Summary: %{origin_nice} %{majorver} API documentation %{for_debug}
Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
-%description javadoc-debug
-The OpenJDK API documentation %{for_debug}.
+%description javadoc-slowdebug
+The %{origin_nice} %{majorver} API documentation %{for_debug}.
%endif
%if %{include_debug_build}
-%package javadoc-zip-debug
-Summary: OpenJDK API Documentation compressed in single archive %{for_debug}
+%package javadoc-zip-slowdebug
+Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}
Group: Documentation
Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
-%description javadoc-zip-debug
-The OpenJDK API documentation compressed in single archive %{for_debug}.
+%description javadoc-zip-slowdebug
+The %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}.
%endif
%if %{include_normal_build}
%package accessibility
-Summary: OpenJDK accessibility connector
+Summary: %{origin_nice} %{majorver} accessibility connector
%{java_accessibility_rpo %{nil}}
%description accessibility
-Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows
+Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper.
This allows
compatible at-spi2 based accessibility programs to work for AWT and Swing-based
programs.
-Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still
+Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself
is still
being tuned to be working with accessibility features. There are known issues
with accessibility on, so please do not install this package unless you really
need to.
%endif
%if %{include_debug_build}
-%package accessibility-debug
-Summary: OpenJDK accessibility connector %{for_debug}
+%package accessibility-slowdebug
+Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug}
%{java_accessibility_rpo -- %{debug_suffix_unquoted}}
-%description accessibility-debug
+%description accessibility-slowdebug
See normal java-%{version}-openjdk-accessibility description.
%endif
@@ -1389,7 +1421,7 @@ else
exit 12
fi
if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
- echo "you have disabled both include_debug_build and include_debug_build. no
go."
+ echo "You have disabled both include_debug_build and include_debug_build. That is
a no go."
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
@@ -1449,6 +1481,12 @@ sh %{SOURCE12}
%patch102
%patch103
+# AArch64 fixes
+%if %{use_shenandoah_hotspot}
+%else
+%patch104
+%endif
+
# ppc64le fixes
%patch603
%patch601
@@ -1479,9 +1517,9 @@ sh %{SOURCE12}
%patch538
%patch540
%patch560
-pushd openjdk/jdk
+pushd %{top_level_dir_name}/jdk
%patch529 -p1
-popd
+popd # openjdk
%patch561
# RPM-only fixes
@@ -1505,17 +1543,17 @@ cp -r tapset tapset%{debug_suffix}
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
- OUTPUT_FILE=`echo $file | sed -e
s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
- sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
+ OUTPUT_FILE=`echo $file | sed -e
"s:%{systemtap_javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
+ sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
- sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
+ sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g" $file.1 > $OUTPUT_FILE
%else
- sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
+ sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE
%endif
- sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g $OUTPUT_FILE
- sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
- sed -i -e s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g $OUTPUT_FILE
+ sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g"
$OUTPUT_FILE
+ sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
+ sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
done
done
# systemtap tapsets ends
@@ -1528,14 +1566,16 @@ for file in %{SOURCE9} %{SOURCE10} ; do
EXT="${FILE##*.}"
NAME="${FILE%.*}"
OUTPUT_FILE=$NAME$suffix.$EXT
- sed -e s:#JAVA_HOME#:%{sdkbindir -- $suffix}:g $file > $OUTPUT_FILE
- sed -i -e s:#JRE_HOME#:%{jrebindir -- $suffix}:g $OUTPUT_FILE
- sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}$suffix:g $OUTPUT_FILE
+ sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
+ sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
+ sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
done
done
# Setup nss.cfg
-sed -e s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g %{SOURCE11} > nss.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
%build
@@ -1547,7 +1587,6 @@ export NUM_PROC=${NUM_PROC:-1}
[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
%endif
-# Build IcedTea and OpenJDK.
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
export ARCH_DATA_MODEL=64
%endif
@@ -1560,21 +1599,23 @@ export CFLAGS="$CFLAGS -mieee"
# Explicitly set the C++ standard as the default has changed on GCC >= 6
EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
export EXTRA_CFLAGS
-(cd openjdk/common/autoconf
+(cd %{top_level_dir_name}/common/autoconf
bash ./autogen.sh
)
for suffix in %{build_loop} ; do
-if [ "$suffix" = "%{debug_suffix}" ] ; then
-debugbuild=%{debugbuild_parameter}
+if [ "x$suffix" = "x" ] ; then
+ debugbuild=release
else
-debugbuild=%{normalbuild_parameter}
+ # change --something to something
+ debugbuild=`echo $suffix | sed "s/-//g"`
fi
mkdir -p %{buildoutputdir -- $suffix}
@@ -1598,10 +1639,15 @@ bash ../../configure \
--with-libjpeg=system \
--with-giflib=system \
--with-libpng=system \
- --with-lcms=bundled \
+ --with-lcms=system \
--with-stdc++lib=dynamic \
+%ifarch %{ix86}
+ --with-extra-cxxflags="-mstackrealign $EXTRA_CPP_FLAGS" \
+ --with-extra-cflags="-mstackrealign $EXTRA_CFLAGS" \
+%else
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
+%endif
--with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC"
@@ -1627,17 +1673,22 @@ make zip-docs
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
-find images/%{j2sdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
-chmod ugo+r images/%{j2sdkimage}/lib/ct.sym
+find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+chmod ugo+r images/%{jdkimage}/lib/ct.sym
# remove redundant *diz and *debuginfo files
-find images/%{j2sdkimage} -iname '*.diz' -exec rm {} \;
-find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {} \;
+find images/%{jdkimage} -iname '*.diz' -exec rm {} \;
+find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \;
+
+# Build screws up permissions on binaries
+#
https://bugs.openjdk.java.net/browse/JDK-8173610
+find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
+find images/%{jdkimage}/bin/ -exec chmod +x {} \;
popd >& /dev/null
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{j2sdkimage}
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
@@ -1646,7 +1697,7 @@ install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
rm $JAVA_HOME/jre/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
-#build cycles
+# build cycles
done
%check
@@ -1654,7 +1705,7 @@ done
# We test debug first as it will give better diagnostics on a crash
for suffix in %{rev_build_loop} ; do
-export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{j2sdkimage}
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -1672,14 +1723,14 @@ do
# All these tests rely on RPM failing the build if the exit code of any set
# of piped commands is non-zero.
- # Test for .debug_* sections in the shared object. This is the main test.
- # Stripped objects will not contain these.
+ # Test for .debug_* sections in the shared object. This is the main test
+ # Stripped objects will not contain these
eu-readelf -S "$lib" | grep "] .debug_"
test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)"
| wc --lines) == 2
- # Test FILE symbols. These will most likely be removed by anyting that
+ # Test FILE symbols. These will most likely be removed by anything that
# manipulates symbol tables because it's generally useless. So a nice test
- # that nothing has messed with symbols.
+ # that nothing has messed with symbols
old_IFS="$IFS"
IFS=$'\n'
for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE
LOCAL DEFAULT")
@@ -1690,7 +1741,7 @@ do
done
IFS="$old_IFS"
- # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity
checking.
+ # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking
if [ "`basename $lib`" = "libjvm.so" ]; then
eu-readelf -s "$lib" | \
grep -E "00000000 0 FILE LOCAL DEFAULT ABS
javaCalls.(cpp|o)$"
@@ -1698,7 +1749,7 @@ do
# Test that there are no .gnu_debuglink sections pointing to another
# debuginfo file. There shouldn't be any debuginfo files, so the link makes
- # no sense either.
+ # no sense either
eu-readelf -S "$lib" | grep 'gnu'
if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS;
then
echo "bad .gnu_debuglink section."
@@ -1740,7 +1791,7 @@ $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled
from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
-#build cycles check
+# build cycles check
done
%install
@@ -1748,9 +1799,10 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-pushd %{buildoutputdir -- $suffix}/images/%{j2sdkimage}
+# Install the jdk
+pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
-#install jsa directories so we can owe them
+# Install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
@@ -1761,7 +1813,7 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
%if %{with_systemtap}
- # Install systemtap support files.
+ # Install systemtap support files
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
# note, that uniquesuffix is in BUILD dir in this case
cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
@@ -1769,28 +1821,20 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
tapsetFiles=`ls *.stp`
popd
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
- pushd $RPM_BUILD_ROOT%{tapsetdir}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir -- $suffix}/tapset %{tapsetdir})
- for name in $tapsetFiles ; do
- targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
- ln -sf $RELATIVE/$name $targetName
- done
- popd
+ for name in $tapsetFiles ; do
+ targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
+ ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name
$RPM_BUILD_ROOT%{tapsetdir}/$targetName
+ done
%endif
- # Remove empty cacerts database.
+ # Remove empty cacerts database
rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
- # Install cacerts symlink needed by some apps which hardcode the path.
+ # Install cacerts symlink needed by some apps which hardcode the path
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
- RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
- %{_jvmdir}/%{jredir -- $suffix}/lib/security)
- ln -sf $RELATIVE/cacerts .
+ ln -sf /etc/pki/java/cacerts .
popd
- # Install JCE policy symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix -- $suffix}/jce/vanilla
-
- # Install versioned symlinks.
+ # Install versioned symlinks
pushd $RPM_BUILD_ROOT%{_jvmdir}
ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
popd
@@ -1798,11 +1842,11 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
# Remove javaws man page
rm -f man/man1/javaws*
- # Install man pages.
+ # Install man pages
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
for manpage in man/man1/*
do
- # Convert man pages to UTF8 encoding.
+ # Convert man pages to UTF8 encoding
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
@@ -1821,19 +1865,20 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir --
$suffix}/lib/%{archinstall}/clien
popd
-# Install Javadoc documentation.
+# Install Javadoc documentation
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
-- $suffix}
-cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+built_doc_archive=`echo
"jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip" | sed
s/slowdebug/debug/`
+cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
-# Install icons and menu entries.
+# Install icons and menu entries
for s in 16 24 32 48 ; do
install -D -p -m 644 \
openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
- $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png
+
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
done
-# Install desktop files.
+# Install desktop files
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
for e in jconsole$suffix policytool$suffix ; do
desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
@@ -1844,7 +1889,7 @@ done
# See
https://bugzilla.redhat.com/show_bug.cgi?id=741821
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
-# FIXME: remove SONAME entries from demo DSOs. See
+# FIXME: remove SONAME entries from demo DSOs. See
#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
# Find non-documentation demo files.
@@ -1920,17 +1965,24 @@ bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}
%{javaver}
#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/security/java.security
+# stabilize permissions
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod
755 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec
chmod 644 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"THIRD_PARTY_README" -exec chmod 644 {} \; ;
+
# end, dual install
done
-%if %{include_normal_build}
-# intentioanlly only for non-debug
+%if %{include_normal_build}
+# intentionally only for non-debug
%pretrans headless -p <lua>
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in tranasction
and so is
--- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
+-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
-- whether copy-jdk-configs is installed or not. If so, then configs are copied
-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
local posix = require "posix"
@@ -1947,7 +1999,7 @@ local stat2 = posix.stat(SOURCE2, "type");
print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this
one.")
end;
package.path = package.path .. ";" .. SOURCE1
-else
+else
if (stat2 ~= nil) then
if (debug) then
print(SOURCE2 .." exists - copy-jdk-configs alrady installed and NOT in
transation. Using.")
@@ -1962,11 +2014,11 @@ else
return
end
end
--- run contetn of included file with fake args
+-- run content of included file with fake args
arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
require "copy_jdk_configs.lua"
-%post
+%post
%{post_script %{nil}}
%post headless
@@ -2003,45 +2055,45 @@ require "copy_jdk_configs.lua"
%{postun_javadoc_zip %{nil}}
%endif
-%if %{include_debug_build}
-%post debug
+%if %{include_debug_build}
+%post slowdebug
%{post_script -- %{debug_suffix_unquoted}}
-%post headless-debug
+%post headless-slowdebug
%{post_headless -- %{debug_suffix_unquoted}}
-%postun debug
+%postun slowdebug
%{postun_script -- %{debug_suffix_unquoted}}
-%postun headless-debug
+%postun headless-slowdebug
%{postun_headless -- %{debug_suffix_unquoted}}
-%posttrans debug
+%posttrans slowdebug
%{posttrans_script -- %{debug_suffix_unquoted}}
-%post devel-debug
+%post devel-slowdebug
%{post_devel -- %{debug_suffix_unquoted}}
-%postun devel-debug
+%postun devel-slowdebug
%{postun_devel -- %{debug_suffix_unquoted}}
-%posttrans devel-debug
+%posttrans devel-slowdebug
%{posttrans_devel -- %{debug_suffix_unquoted}}
-%post javadoc-debug
+%post javadoc-slowdebug
%{post_javadoc -- %{debug_suffix_unquoted}}
-%postun javadoc-debug
+%postun javadoc-slowdebug
%{postun_javadoc -- %{debug_suffix_unquoted}}
-%post javadoc-zip-debug
+%post javadoc-zip-slowdebug
%{post_javadoc_zip -- %{debug_suffix_unquoted}}
-%postun javadoc-zip-debug
+%postun javadoc-zip-slowdebug
%{postun_javadoc_zip -- %{debug_suffix_unquoted}}
%endif
-%if %{include_normal_build}
+%if %{include_normal_build}
%files
# main package builds always
%{files_jre %{nil}}
@@ -2051,10 +2103,10 @@ require "copy_jdk_configs.lua"
%endif
-%if %{include_normal_build}
+%if %{include_normal_build}
%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
+# important note, see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole
issue
+# all config/noreplace files (and more) have to be declared in pretrans. See pretrans
%{files_jre_headless %{nil}}
%files devel
@@ -2069,6 +2121,10 @@ require "copy_jdk_configs.lua"
%files javadoc
%{files_javadoc %{nil}}
+# this puts huge file to /usr/share
+# unluckily ti is really a documentation file
+# and unluckily it really is archtecture-depndent, as ag aot and grail are now x86_64
only
+# same for debug variant
%files javadoc-zip
%{files_javadoc_zip %{nil}}
@@ -2082,39 +2138,52 @@ require "copy_jdk_configs.lua"
%endif
%endif
-%if %{include_debug_build}
-%files debug
+%if %{include_debug_build}
+%files slowdebug
%{files_jre -- %{debug_suffix_unquoted}}
-%files headless-debug
+%files headless-slowdebug
%{files_jre_headless -- %{debug_suffix_unquoted}}
-%files devel-debug
+%files devel-slowdebug
%{files_devel -- %{debug_suffix_unquoted}}
-%files demo-debug -f %{name}-demo.files-debug
+%files demo-slowdebug -f %{name}-demo.files-slowdebug
%{files_demo -- %{debug_suffix_unquoted}}
-%files src-debug
+%files src-slowdebug
%{files_src -- %{debug_suffix_unquoted}}
-%files javadoc-debug
+%files javadoc-slowdebug
%{files_javadoc -- %{debug_suffix_unquoted}}
-%files javadoc-zip-debug
+%files javadoc-zip-slowdebug
%{files_javadoc_zip -- %{debug_suffix_unquoted}}
-%files accessibility-debug
+%files accessibility-slowdebug
%{files_accessibility -- %{debug_suffix_unquoted}}
%if %{with_openjfx_binding}
-%files openjfx-debug -f %{name}-openjfx.files-debug
+%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug
-%files openjfx-devel-debug -f %{name}-openjfx-devel.files-debug
+%files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug
%endif
%endif
%changelog
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-2.b11
+- quoted sed expressions, changed possibly confussing # by @
+- added vendor(origin) into icons
+- removed last trace of relative symlinks
+- added BuildRequires of javapackages-tools to fix build failure after Requires change to
javapackages-filesystem
+- aligning with java-openjdk in fedora:
+- slowdebug instead simply debug subpackage
+- purged provides
+- many macros renamed
+- typos correction
+- bumped jstack (may be wrong)
+- fixed issue with atkwrapper wrongly palced broken symlink
+
* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
- updated to u172-b11
- removed patches:
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index 82a5c4c..a8917c1 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -1,8 +1,8 @@
[Desktop Entry]
-Name=OpenJDK 8 Monitoring & Management Console #ARCH#
-Comment=Monitor and manage OpenJDK applications for #ARCH#
-Exec=#JAVA_HOME#/jconsole
-Icon=java-1.8.0
+Name=OpenJDK @JAVA_MAJOR_VERSION@ Monitoring & Management Console @ARCH@
+Comment=Monitor and manage OpenJDK @JAVA_MAJOR_VERSION@ applications for @ARCH@
+Exec=@JAVA_HOME@/jconsole
+Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
diff --git a/policytool.desktop.in b/policytool.desktop.in
index d38b42d..e05969d 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,8 +1,8 @@
[Desktop Entry]
-Name=OpenJDK 8 Policy Tool #ARCH#
-Comment=Manage OpenJDK policy files #ARCH#
-Exec=#JRE_HOME#/policytool
-Icon=java-1.8.0
+Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool #ARCH#
+Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files #ARCH#
+Exec=@JRE_HOME@/policytool
+Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
Terminal=false
Type=Application
StartupWMClass=sun-security-tools-PolicyTool
diff --git a/pr3458-rh1540242.patch b/pr3458-rh1540242.patch
new file mode 100644
index 0000000..2a1ce5e
--- /dev/null
+++ b/pr3458-rh1540242.patch
@@ -0,0 +1,23 @@
+diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -698,6 +698,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+ void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -408,6 +408,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+
+
diff --git a/sources b/sources
index 9544f7d..32c9800 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
+SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
848f42ef7ca751e723fd50e3a6da14c0965ad4da37ea3331568658e27497b7a7e4b9aad3dedd264ad0bb5566c37a92302b905f10258a4e2c89dc4ba609e55481
SHA512 (aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz) =
2c322d161fdc5feeaf80011698ac1bcf4311513f9dc7484cefea91a1eba1a1c5aaad024ce6a525995fe88adc30ef68100032eaaa4d00082f2310f676592d3790
SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz)
=
7020590f7d618460ab3fc81513edfcd2452c222c15800a376628a864b6bbb611f890e66143a26011f9e4cc534e516047c2c573f7682e5b0f325425eeee05a280
commit 311657d56d1165ac24655fe105e7e87e328767fa
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 6 19:04:57 2018 +0200
updated to u172-b11
removed patches: patch207 8200556-pr3566.patch patch104 pr3458-rh1540242.patch
patch209 8035496-hotspot.patch patch700 pr3573.patch
diff --git a/.gitignore b/.gitignore
index f0288e1..a1f0faf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -110,3 +110,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
diff --git a/8035496-hotspot.patch b/8035496-hotspot.patch
deleted file mode 100644
index 426bdbe..0000000
--- a/8035496-hotspot.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# HG changeset patch
-# User bdelsart
-# Date 1508481469 -28800
-# Fri Oct 20 14:37:49 2017 +0800
-# Node ID 111ed1a4719008b83bf427ae16bbeac2a7a516bc
-# Parent 471de666658d7ec14c5d3f97076fb95f70dd6ffa
-8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for
vm/gc/concurrent/lp50yp10rp70mr30st0
-Summary: release_store used when registering a PerRegionTable. Also reviewed-by:
vitalyd(a)gmail.com
-Reviewed-by: jmasa, tschatzl, brutisso
-
-diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-@@ -514,7 +514,15 @@
-
- PerRegionTable* first_prt = _fine_grain_regions[ind];
- prt->set_collision_list_next(first_prt);
-- _fine_grain_regions[ind] = prt;
-+ // The assignment into _fine_grain_regions allows the prt to
-+ // start being used concurrently. In addition to
-+ // collision_list_next which must be visible (else concurrent
-+ // parsing of the list, if any, may fail to see other entries),
-+ // the content of the prt must be visible (else for instance
-+ // some mark bits may not yet seem cleared or a 'later' update
-+ // performed by a concurrent thread could be undone when the
-+ // zeroing becomes visible). This requires store ordering.
-+ OrderAccess::release_store_ptr((volatile
PerRegionTable*)&_fine_grain_regions[ind], prt);
- _n_fine_entries++;
-
- if (G1HRRSUseSparseTable) {
diff --git a/8200556-pr3566.patch b/8200556-pr3566.patch
deleted file mode 100644
index ccd2f49..0000000
--- a/8200556-pr3566.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -r 214a94e9366c src/cpu/aarch64/vm/nativeInst_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 17 12:11:32 2017
+0000
-+++ openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 24 16:23:14 2017
+0100
-@@ -343,7 +343,7 @@
- CodeBuffer cb(code_pos, instruction_size);
- MacroAssembler a(&cb);
-
-- a.mov(rscratch1, entry);
-+ a.movptr(rscratch1, (uintptr_t)entry);
- a.br(rscratch1);
-
- ICache::invalidate_range(code_pos, instruction_size);
-
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f140768..78135ec 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -191,7 +191,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-jdk8u171-b10
+%global revision aarch64-jdk8u172-b11
# 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
@@ -927,7 +927,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -963,7 +963,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
+Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1045,8 +1045,6 @@ Patch204: hotspot-remove-debuglink.patch
Patch205: dont-add-unnecessary-debug-links.patch
# Enable debug information for assembly code files
Patch206: hotspot-assembler-debuginfo.patch
-# 8200556, PR3566: AArch64 port crashes on slowdebug builds
-Patch207: 8200556-pr3566.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1055,8 +1053,6 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
-# Fix more cases of missing return statements on AArch64
-Patch104: pr3458-rh1540242.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -1090,7 +1086,6 @@ Patch561: 8197429-pr3456-rh1536622.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
-Patch209: 8035496-hotspot.patch
Patch210: suse_linuxfilestore.patch
# custom securities
Patch300: PR3183.patch
@@ -1103,10 +1098,6 @@ Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
-# Shenandoah fixes
-# PR3573: Fix TCK crash with Shenandoah
-Patch700: pr3573.patch
-
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
@@ -1444,8 +1435,6 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
-%patch207
-%patch209
%patch210
%patch300
@@ -1460,9 +1449,6 @@ sh %{SOURCE12}
%patch102
%patch103
-# AArch64 fixes
-%patch104
-
# ppc64le fixes
%patch603
%patch601
@@ -1507,11 +1493,6 @@ popd
%patch534
%endif
-# Shenandoah-only patches
-%if %{use_shenandoah_hotspot}
-%patch700
-%endif
-
%patch1000
# Extract systemtap tapsets
@@ -2134,6 +2115,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
+- updated to u172-b11
+- removed patches:
+- patch207 8200556-pr3566.patch
+- patch104 pr3458-rh1540242.patch
+- patch209 8035496-hotspot.patch
+- patch700 pr3573.patch
+
* Thu May 17 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-6.b10
- Move to javapackages-filesystem over javapackages-tools
for directory ownership. Resolves RHBZ#1500288.
diff --git a/pr3458-rh1540242.patch b/pr3458-rh1540242.patch
deleted file mode 100644
index 2419b3d..0000000
--- a/pr3458-rh1540242.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -698,6 +698,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -408,6 +408,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
-
diff --git a/pr3573.patch b/pr3573.patch
deleted file mode 100644
index 07b9f10..0000000
--- a/pr3573.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1506520357 -7200
-# Wed Sep 27 15:52:37 2017 +0200
-# Node ID c307975d0800f8da5cc8e82cd8f1fdadbd745357
-# Parent ab0c101fa16e4cd97ac8ceff4f5ff72e2f4d5776
-[backport] fix TCK crash with shenandoah
-
-diff --git a/src/share/vm/opto/shenandoahSupport.cpp
b/src/share/vm/opto/shenandoahSupport.cpp
---- openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
-+++ openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
-@@ -472,9 +472,11 @@
- Node* input = in(Memory);
- if (input->Opcode() == Op_ShenandoahWBMemProj) {
- Node* wb = input->in(0);
-- if (wb->is_top()) return NULL; // Dead path.
-+ const Type* in_type = phase->type(wb);
-+ // is_top() test not sufficient here: we can come here after CCP
-+ // in a dead branch of the graph that has not yet been removed.
-+ if (in_type == Type::TOP) return NULL; // Dead path.
- assert(wb->Opcode() == Op_ShenandoahWriteBarrier, "expect write
barrier");
-- const Type* in_type = phase->type(wb);
- if (is_independent(in_type, _type)) {
- if (phase->is_IterGVN()) {
- phase->is_IterGVN()->rehash_node_delayed(wb);
diff --git a/sources b/sources
index cdc7ff6..9544f7d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz) =
f27ac541bb6b058becbfa1e56d7215ee789fca3021718f0944a3e143218a5d1e3276dc8a972d6dafa28c7a860209fa3406ad5161f6dc2d480198bbc34629c5db
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz) =
e5e356aff131bbaaffdd816ba4e7e13e1f267bc981469cd84a267959db5620e74ea9ae81f69c09457c3aff3f041195afe0e4dccb944971eb005392c3bda3d4f5
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz) =
2c322d161fdc5feeaf80011698ac1bcf4311513f9dc7484cefea91a1eba1a1c5aaad024ce6a525995fe88adc30ef68100032eaaa4d00082f2310f676592d3790
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz)
=
7020590f7d618460ab3fc81513edfcd2452c222c15800a376628a864b6bbb611f890e66143a26011f9e4cc534e516047c2c573f7682e5b0f325425eeee05a280
diff --git a/update_package.sh b/update_package.sh
index ab68e3a..ee8622e 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u162-b12"
+ VERSION="aarch64-jdk8u172-b11"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u162-b12"
+ VERSION="aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit ad1d27e9272d3ba6cefb2718d37cbe54f6b38b42
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu May 17 10:17:22 2018 +0200
Move to javapackages-filesystem for directory ownership.
Resolves RHBZ#1500288.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 52ca7c1..f140768 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -799,8 +799,8 @@ Obsoletes: sinjdoc
%define java_headless_rpo() %{expand:
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
-# Require javapackages-tools for ownership of /usr/lib/jvm/
-Requires: javapackages-tools
+# Require javapackages-filesystem for ownership of /usr/lib/jvm/
+Requires: javapackages-filesystem
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
@@ -927,7 +927,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1271,7 +1271,7 @@ The OpenJDK source bundle %{for_debug}.
%package javadoc
Summary: OpenJDK API Documentation
Group: Documentation
-Requires: javapackages-tools
+Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo %{nil}}
@@ -1284,7 +1284,7 @@ The OpenJDK API documentation.
%package javadoc-zip
Summary: OpenJDK API Documentation compressed in single archive
Group: Documentation
-Requires: javapackages-tools
+Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo %{nil}}
@@ -1297,7 +1297,7 @@ The OpenJDK API documentation compressed in single archive.
%package javadoc-debug
Summary: OpenJDK API Documentation %{for_debug}
Group: Documentation
-Requires: javapackages-tools
+Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
@@ -1310,7 +1310,7 @@ The OpenJDK API documentation %{for_debug}.
%package javadoc-zip-debug
Summary: OpenJDK API Documentation compressed in single archive %{for_debug}
Group: Documentation
-Requires: javapackages-tools
+Requires: javapackages-filesystem
BuildArch: noarch
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
@@ -2134,6 +2134,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu May 17 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-6.b10
+- Move to javapackages-filesystem over javapackages-tools
+ for directory ownership. Resolves RHBZ#1500288.
+
* Fri May 04 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-5.b10
- Remove duplicate patch rhbz_1538767_fix_linking2.patch. Just use
rhbz_1538767_fix_linking.patch.
commit 44b0152bc4aab672f4072e2aa266a1c4c8dbb297
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri May 4 14:20:08 2018 +0200
Remove duplicate patch: rhbz_1538767_fix_linking2.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a49d5c2..52ca7c1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -927,7 +927,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1037,7 +1037,7 @@ Patch523: pr2974-rh1337583.patch
Patch528: pr3083-rh1346460.patch
# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
# linking with unresolved symbols.
-Patch529: rhbz_1538767_fix_linking2.patch
+Patch529: rhbz_1538767_fix_linking.patch
# Upstreamable debugging patches
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
@@ -2134,6 +2134,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri May 04 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-5.b10
+- Remove duplicate patch rhbz_1538767_fix_linking2.patch. Just use
+ rhbz_1538767_fix_linking.patch.
+
* Wed Apr 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-4.b10
- Enable hardened build unconditionally (also for Zero).
Resolves RHBZ#1290936.
diff --git a/rhbz_1538767_fix_linking2.patch b/rhbz_1538767_fix_linking2.patch
deleted file mode 100644
index 42032aa..0000000
--- a/rhbz_1538767_fix_linking2.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-# HG changeset patch
-# User sgehwolf
-# Date 1523360781 -7200
-# Tue Apr 10 13:46:21 2018 +0200
-# Node ID 5f2401aef9acb6998f06cb82fdd8a84eda3e63ad
-# Parent 656ab3b39178c1e4de644d490613bfd8212ae924
-8196516: libfontmanager must be built with LDFLAGS allowing unresolved symbols
-Summary: Fixes build failures on some sustems with custom LDFLAGS settings.
-
-diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
---- a/make/lib/Awt2dLibraries.gmk
-+++ b/make/lib/Awt2dLibraries.gmk
-@@ -927,6 +927,10 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
- BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
- endif
-
-+# LDFLAGS clarification:
-+# Filter relevant linker flags disallowing unresolved symbols as we cannot
-+# build-time decide to which library to link against (libawt_headless or
-+# libawt_xawt). See JDK-8196516 for details.
- $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- LIBRARY := fontmanager, \
- OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-@@ -941,7 +945,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
- CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows
\
- -DCC_NOEX, \
- MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
-- LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
-+ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
-+ $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
- $(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
-
commit 2f5cd731b29ff7531937fe051377a93e11330f8c
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Apr 25 10:27:08 2018 +0200
Enable hardened build unconditionally.
That is, also for Zero arches. Resolves RHBZ#1290936.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 710c005..a49d5c2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -66,12 +66,6 @@
%global targets all
%endif
-%ifnarch %{jit_arches}
-# Disable hardened build on non-jit arches. Work-around for RHBZ#1290936.
-%undefine _hardened_build
-%global ourcppflags %{nil}
-%global ourldflags %{nil}
-%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
@@ -80,7 +74,6 @@
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
-%endif
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -934,7 +927,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -2141,6 +2134,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Apr 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-4.b10
+- Enable hardened build unconditionally (also for Zero).
+ Resolves RHBZ#1290936.
+
* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-3.b10
- Enable hardened build for Aarch64.
commit 46da88238559c35dabb1105b97c89f86e26c8f79
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Apr 20 18:10:18 2018 +0200
Enable hardened build for aarch64.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9506495..710c005 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -72,12 +72,6 @@
%global ourcppflags %{nil}
%global ourldflags %{nil}
%else
-%ifarch %{aarch64}
-# Disable hardened build on AArch64 as it didn't bootcycle
-%undefine _hardened_build
-%global ourcppflags "-fstack-protector-strong"
-%global ourldflags %{nil}
-%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
@@ -87,7 +81,6 @@
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
%endif
-%endif
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -941,7 +934,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -2148,6 +2141,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-3.b10
+- Enable hardened build for Aarch64.
+
* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-2.b10
- Update rhbz1548475-LDFLAGSusage.patch to also set linker
flags for libsaproc.so and libjsig.so.
commit 74979b0ce4e01740a4ed603186cdd601b4c48849
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Apr 24 09:58:55 2018 +0200
[flags injection] Set linker flags for SA and libjsig.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 99cf1de..9506495 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -941,7 +941,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -2148,6 +2148,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-2.b10
+- Update rhbz1548475-LDFLAGSusage.patch to also set linker
+ flags for libsaproc.so and libjsig.so.
+
* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.171-1.b10
- Update to aarch64-jdk8u171-b10 and aarch64-shenandoah-jdk8u171-b10.
- Fix jconsole.desktop.in subcategory, replacing "Monitor" with
"Profiling" (PR3550) (gnu_andrew)
diff --git a/rhbz1548475-LDFLAGSusage.patch b/rhbz1548475-LDFLAGSusage.patch
index bde08b4..243c71b 100644
--- a/rhbz1548475-LDFLAGSusage.patch
+++ b/rhbz1548475-LDFLAGSusage.patch
@@ -35,3 +35,25 @@
# Don't set excutable bit on stack segment
# the same could be done by separate execstack command
+--- openjdk/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -73,7 +73,7 @@
+ else
+ ALT_SAINCDIR=
+ endif
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ SAARCH ?= $(BUILDARCH)
+
+--- openjdk/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -44,7 +44,7 @@ LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ # DEBUG_BINARIES overrides everything, use full -g debug information
+ ifeq ($(DEBUG_BINARIES), true)
commit ff3d0532251bb567ea3ac2803927f092c2bae314
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 18 15:01:32 2018 +0200
Update to aarch64-jdk8u171-b10 and aarch64-shenandoah-jdk8u171-b10.
- Fix jconsole.desktop.in subcategory, replacing "Monitor" with
"Profiling" (PR3550) (gnu_andrew)
- Fix invalid license 'LGPL+' (should be LGPLv2+ for ECC code) and add misisng
ones (gnu_andrew)
diff --git a/.gitignore b/.gitignore
index 072f2ef..f0288e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -108,3 +108,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u162-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 05082f3..99cf1de 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -205,7 +205,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-jdk8u162-b12
+%global revision aarch64-jdk8u171-b10
# 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
@@ -941,7 +941,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -956,7 +956,17 @@ Epoch: 1
Summary: OpenJDK Runtime Environment
Group: Development/Languages
-License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and
LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
+# HotSpot code is licensed under GPLv2
+# JDK library code is licensed under GPLv2 with the Classpath exception
+# The Apache license is used in code taken from Apache projects (primarily JAXP &
JAXWS)
+# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C
Software License
+# The JSR166 concurrency code is in the public domain
+# The BSD and MIT licenses are used for a number of third-party libraries (see
THIRD_PARTY_README)
+# The OpenJDK source tree includes the JPEG library (IJG), zlib & libpng (zlib),
giflib and LCMS (MIT)
+# The test code includes copies of NSS under the Mozilla Public License v2.0
+# The PCSClite headers are under a BSD with advertising license
+# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any
later version
+License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and
GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C
and zlib
URL:
http://openjdk.java.net/
# aarch64-port now contains integration forest of both aarch64 and normal jdk
@@ -967,7 +977,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1107,6 +1117,10 @@ Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
+# Shenandoah fixes
+# PR3573: Fix TCK crash with Shenandoah
+Patch700: pr3573.patch
+
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
@@ -1140,7 +1154,7 @@ BuildRequires: zip
# Use OpenJDK 7 where available (on RHEL) to avoid
# having to use the rhel-7.x-java-unsafe-candidate hack
%if ! 0%{?fedora} && 0%{?rhel} <= 7
-BuildRequires: java-1.7.0-openjdk-devel
+BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
%else
BuildRequires: java-1.8.0-openjdk-devel
%endif
@@ -1507,6 +1521,11 @@ popd
%patch534
%endif
+# Shenandoah-only patches
+%if %{use_shenandoah_hotspot}
+%patch700
+%endif
+
%patch1000
# Extract systemtap tapsets
@@ -2129,6 +2148,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.171-1.b10
+- Update to aarch64-jdk8u171-b10 and aarch64-shenandoah-jdk8u171-b10.
+- Fix jconsole.desktop.in subcategory, replacing "Monitor" with
"Profiling" (PR3550) (gnu_andrew)
+- Fix invalid license 'LGPL+' (should be LGPLv2+ for ECC code) and add misisng
ones (gnu_andrew)
+
* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-7.b12
- added ownership of policy dir and subdirs
- removed ignored attributes for classes.jsa
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index a096349..82a5c4c 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -6,5 +6,5 @@ Icon=java-1.8.0
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
-Categories=Development;Monitor;Java;
+Categories=Development;Profiling;Java;
Version=1.0
diff --git a/pr3573.patch b/pr3573.patch
new file mode 100644
index 0000000..07b9f10
--- /dev/null
+++ b/pr3573.patch
@@ -0,0 +1,25 @@
+# HG changeset patch
+# User roland
+# Date 1506520357 -7200
+# Wed Sep 27 15:52:37 2017 +0200
+# Node ID c307975d0800f8da5cc8e82cd8f1fdadbd745357
+# Parent ab0c101fa16e4cd97ac8ceff4f5ff72e2f4d5776
+[backport] fix TCK crash with shenandoah
+
+diff --git a/src/share/vm/opto/shenandoahSupport.cpp
b/src/share/vm/opto/shenandoahSupport.cpp
+--- openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
++++ openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
+@@ -472,9 +472,11 @@
+ Node* input = in(Memory);
+ if (input->Opcode() == Op_ShenandoahWBMemProj) {
+ Node* wb = input->in(0);
+- if (wb->is_top()) return NULL; // Dead path.
++ const Type* in_type = phase->type(wb);
++ // is_top() test not sufficient here: we can come here after CCP
++ // in a dead branch of the graph that has not yet been removed.
++ if (in_type == Type::TOP) return NULL; // Dead path.
+ assert(wb->Opcode() == Op_ShenandoahWriteBarrier, "expect write
barrier");
+- const Type* in_type = phase->type(wb);
+ if (is_independent(in_type, _type)) {
+ if (phase->is_IterGVN()) {
+ phase->is_IterGVN()->rehash_node_delayed(wb);
diff --git a/rhbz_1538767_fix_linking2.patch b/rhbz_1538767_fix_linking2.patch
new file mode 100644
index 0000000..42032aa
--- /dev/null
+++ b/rhbz_1538767_fix_linking2.patch
@@ -0,0 +1,34 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1523360781 -7200
+# Tue Apr 10 13:46:21 2018 +0200
+# Node ID 5f2401aef9acb6998f06cb82fdd8a84eda3e63ad
+# Parent 656ab3b39178c1e4de644d490613bfd8212ae924
+8196516: libfontmanager must be built with LDFLAGS allowing unresolved symbols
+Summary: Fixes build failures on some sustems with custom LDFLAGS settings.
+
+diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
+--- a/make/lib/Awt2dLibraries.gmk
++++ b/make/lib/Awt2dLibraries.gmk
+@@ -927,6 +927,10 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
+ BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
+ endif
+
++# LDFLAGS clarification:
++# Filter relevant linker flags disallowing unresolved symbols as we cannot
++# build-time decide to which library to link against (libawt_headless or
++# libawt_xawt). See JDK-8196516 for details.
+ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
+ LIBRARY := fontmanager, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+@@ -941,7 +945,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
+ CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows
\
+ -DCC_NOEX, \
+ MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
+- LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
++ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
++ $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
+ LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
+
diff --git a/sources b/sources
index 696fdf0..cdc7ff6 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u162-b12.tar.xz) =
5bb05e931a57c25c627fa0b588b74ab89e050e6d0a0b7073ba1d65aa3a3ee9f5d5e62e1fbfe3da55a472ecb3dad9cec3a6faf73b5d95b59bcefa2246caddcab3
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz) =
833a4516fc3b68fedb78feddd272d7f52e9af90aeebc3eb95aa4a86d69b4540e14ad73fdd913b7201c9663c2f136cfe3ec2e2d3b8d39cf1e99ec1c7711079740
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz) =
f27ac541bb6b058becbfa1e56d7215ee789fca3021718f0944a3e143218a5d1e3276dc8a972d6dafa28c7a860209fa3406ad5161f6dc2d480198bbc34629c5db
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz) =
e5e356aff131bbaaffdd816ba4e7e13e1f267bc981469cd84a267959db5620e74ea9ae81f69c09457c3aff3f041195afe0e4dccb944971eb005392c3bda3d4f5
commit eb71079783f027a0ad9943de2356f7bbc0601b20
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 18 14:39:31 2018 +0200
added ownership of policy dir and subdirs; removed ignored attributes for classes.jsa
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a83ec7d..05082f3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -557,6 +557,9 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool
%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv
%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
%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
@@ -580,8 +583,8 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
%ifarch %{jit_arches}
%ifnarch %{power64}
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
+%ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa
+%ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa
%endif
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
@@ -938,7 +941,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -2126,6 +2129,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-7.b12
+- added ownership of policy dir and subdirs
+- removed ignored attributes for classes.jsa
+
* Tue Apr 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.162-6.b12
- Use correct patch for RHBZ#1538767 (JDK-8196516)
commit a720eb72a52b07c14de509522a07ffcbf3d9cf63
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Apr 10 14:08:11 2018 +0200
Use correct patch for RHBZ#1538767 (JDK-8196516)
The old patch caused problems upstream and a new
fix got developed under JDK-8196516.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3ef97d6..a83ec7d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -938,7 +938,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1036,8 +1036,9 @@ Patch509: rh1176206-root.patch
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528: pr3083-rh1346460.patch
-# 8196218, RH1538767: libfontmanager.so needs to link against headless awt library
-Patch529: rhbz_1538767_fix_linking.patch
+# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
+# linking with unresolved symbols.
+Patch529: rhbz_1538767_fix_linking2.patch
# Upstreamable debugging patches
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
@@ -2125,6 +2126,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Apr 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.162-6.b12
+- Use correct patch for RHBZ#1538767 (JDK-8196516)
+
* Mon Apr 02 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-5.b12
- Cleanup from previous commit.
- Remove unused upstream patch 8167200.hotspotAarch64.patch.
diff --git a/rhbz_1538767_fix_linking.patch b/rhbz_1538767_fix_linking.patch
index 10c2cc2..b321611 100644
--- a/rhbz_1538767_fix_linking.patch
+++ b/rhbz_1538767_fix_linking.patch
@@ -1,21 +1,33 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1523360781 -7200
+# Tue Apr 10 13:46:21 2018 +0200
+# Node ID 5f2401aef9acb6998f06cb82fdd8a84eda3e63ad
+# Parent 656ab3b39178c1e4de644d490613bfd8212ae924
+8196516: libfontmanager must be built with LDFLAGS allowing unresolved symbols
+Summary: Fixes build failures on some sustems with custom LDFLAGS settings.
+
diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
--- a/make/lib/Awt2dLibraries.gmk
+++ b/make/lib/Awt2dLibraries.gmk
-@@ -921,7 +921,7 @@
- LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
- $(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
-- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
-+ LDFLAGS_SUFFIX_linux := -lawt_headless -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
- LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm,
\
- LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\
- LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
-@@ -938,7 +938,7 @@
-
- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
-
--ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
-+ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix linux))
- $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_HEADLESS)
+@@ -927,6 +927,10 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
+ BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
endif
++# LDFLAGS clarification:
++# Filter relevant linker flags disallowing unresolved symbols as we cannot
++# build-time decide to which library to link against (libawt_headless or
++# libawt_xawt). See JDK-8196516 for details.
+ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
+ LIBRARY := fontmanager, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+@@ -941,7 +945,8 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
+ CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows
\
+ -DCC_NOEX, \
+ MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \
+- LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
++ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
++ $(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
+ LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
commit 44da3ccafdcb5ae0a2316213d80c683e35bb6348
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Apr 3 16:50:07 2018 +0200
Cleanup from previous commit.
diff --git a/8167200.hotspotAarch64.patch b/8167200.hotspotAarch64.patch
deleted file mode 100644
index 754df89..0000000
--- a/8167200.hotspotAarch64.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-
-# HG changeset patch
-# User aph
-# Date 1475745921 0
-# Node ID 60a8cbf7030e4de40050472705776509fa9cb960
-# Parent d9960bd9fb6d3a5ac0450a47d70f3a3afd7f515d
-8167200: AArch64: Broken stack pointer adjustment in interpreter
-Summary: Always adjust SP unconditionally
-Reviewed-by: dlong, kbarrett
-
-diff -r d9960bd9fb6d -r 60a8cbf7030e src/cpu/aarch64/vm/templateTable_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Tue May 24 08:47:37 2016
-0700
-+++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Thu Oct 06 09:25:21 2016
+0000
-@@ -3717,19 +3717,15 @@
-
- // allocate one if there's no free slot
- {
-- Label entry, loop, no_adjust;
-+ Label entry, loop;
- // 1. compute new pointers // rsp: old expression stack top
- __ ldr(c_rarg1, monitor_block_bot); // c_rarg1: old expression stack bottom
-- __ sub(esp, esp, entry_size); // move expression stack top
-+ __ sub(esp, esp, entry_size); // move expression stack top
- __ sub(c_rarg1, c_rarg1, entry_size); // move expression stack bottom
- __ mov(c_rarg3, esp); // set start value for copy loop
- __ str(c_rarg1, monitor_block_bot); // set new monitor block bottom
-
-- __ cmp(sp, c_rarg3); // Check if we need to move sp
-- __ br(Assembler::LO, no_adjust); // to allow more stack space
-- // for our new esp
-- __ sub(sp, sp, 2 * wordSize);
-- __ bind(no_adjust);
-+ __ sub(sp, sp, entry_size); // make room for the monitor
-
- __ b(entry);
- // 2. move expression stack contents
-
diff --git a/rhbz_1536622-JDK8197429-jdk8.patch b/8197429-pr3456-rh1536622.patch
similarity index 100%
rename from rhbz_1536622-JDK8197429-jdk8.patch
rename to 8197429-pr3456-rh1536622.patch
diff --git a/aarch64BuildFailure.patch b/8200556-pr3566.patch
similarity index 100%
rename from aarch64BuildFailure.patch
rename to 8200556-pr3566.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3117241..3ef97d6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -938,7 +938,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1036,19 +1036,17 @@ Patch509: rh1176206-root.patch
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528: pr3083-rh1346460.patch
+# 8196218, RH1538767: libfontmanager.so needs to link against headless awt library
+Patch529: rhbz_1538767_fix_linking.patch
+
+# Upstreamable debugging patches
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
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
-# 8196218, RH1538767: libfontmanager.so needs to link against headless awt library
-Patch561: rhbz_1538767_fix_linking.patch
-# fixing aarch64 segfault when boostraping after compiled by gcc8
-Patch562: rhbz_1540242.patch
-# rhbz1536622 - 32 bit java app started via JNI crashes with larger stack sizes
-Patch563: rhbz_1536622-JDK8197429-jdk8.patch
+# 8200556, PR3566: AArch64 port crashes on slowdebug builds
+Patch207: 8200556-pr3566.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1057,6 +1055,8 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
+# Fix more cases of missing return statements on AArch64
+Patch104: pr3458-rh1540242.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -1082,16 +1082,18 @@ Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
Patch540: rhbz1548475-LDFLAGSusage.patch
+# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
+Patch560: 8188030-pr3459-rh1484079.patch
+# 8197429, PR3456, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
+Patch561: 8197429-pr3456-rh1536622.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
+# custom securities
+Patch300: PR3183.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
@@ -1439,10 +1441,11 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
-%patch208
%patch209
%patch210
+%patch300
+
%patch1
%patch3
%patch5
@@ -1453,8 +1456,10 @@ sh %{SOURCE12}
%patch102
%patch103
-# ppc64le fixes
+# AArch64 fixes
+%patch104
+# ppc64le fixes
%patch603
%patch601
%patch602
@@ -1485,10 +1490,9 @@ sh %{SOURCE12}
%patch540
%patch560
pushd openjdk/jdk
-%patch561 -p1
+%patch529 -p1
popd
-%patch562
-%patch563
+%patch561
# RPM-only fixes
%patch525
@@ -2121,6 +2125,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Apr 02 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-5.b12
+- Cleanup from previous commit.
+- Remove unused upstream patch 8167200.hotspotAarch64.patch.
+
* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-4.b12
- added experimental %%define _find_debuginfo_opts -g
- in attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
diff --git a/rhbz_1540242.patch b/pr3458-rh1540242.patch
similarity index 100%
rename from rhbz_1540242.patch
rename to pr3458-rh1540242.patch
commit 57b83006b016e6f3e951bad719ee9b69b5921744
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Mar 29 17:06:06 2018 +0200
added experimental %%define _find_debuginfo_opts -g
- in attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
- no idea what will come out
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 60d6626..3117241 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,3 +1,4 @@
+%define _find_debuginfo_opts -g
# note, parametrised macros are order-senisitve (unlike not-parametrized) even with
normal macros
# also necessary when passing it as parameter other macros. If not macro, then it is
considered as switch
%global debug_suffix_unquoted -debug
@@ -937,7 +938,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -2120,6 +2121,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-4.b12
+- added experimental %%define _find_debuginfo_opts -g
+- in attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
+- no idea what will come out
+
* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-3.b12
- returned patch562 rhbz_1540242.patch
- added Patch563 rhbz_1536622-JDK8197429-jdk8.patch
commit 99836e856d739bb595c57453ce0fbdc1aab9b8b9
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Mar 29 15:33:41 2018 +0200
returned patch562 rhbz_1540242.patch, added Patch563
rhbz_1536622-JDK8197429-jdk8.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 34d6475..60d6626 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1044,6 +1044,10 @@ Patch206: hotspot-assembler-debuginfo.patch
Patch560: 8188030-pr3459-rh1484079.patch
# 8196218, RH1538767: libfontmanager.so needs to link against headless awt library
Patch561: rhbz_1538767_fix_linking.patch
+# fixing aarch64 segfault when boostraping after compiled by gcc8
+Patch562: rhbz_1540242.patch
+# rhbz1536622 - 32 bit java app started via JNI crashes with larger stack sizes
+Patch563: rhbz_1536622-JDK8197429-jdk8.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1482,7 +1486,8 @@ sh %{SOURCE12}
pushd openjdk/jdk
%patch561 -p1
popd
-
+%patch562
+%patch563
# RPM-only fixes
%patch525
@@ -2115,7 +2120,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Mar 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-1.b12
+* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-3.b12
+- returned patch562 rhbz_1540242.patch
+- added Patch563 rhbz_1536622-JDK8197429-jdk8.patch
+
+* Mon Mar 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-2.b12
- Added patch 540 rhbz1548475-LDFLAGSusage.patch to honor build flags fully
* Wed Mar 21 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-1.b12
diff --git a/rhbz_1536622-JDK8197429-jdk8.patch b/rhbz_1536622-JDK8197429-jdk8.patch
new file mode 100644
index 0000000..fc60cd3
--- /dev/null
+++ b/rhbz_1536622-JDK8197429-jdk8.patch
@@ -0,0 +1,93 @@
+diff -r eecfc14e66ee src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Jan 22 16:25:24 2018 +0000
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Feb 21 13:52:31 2018 +0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2018, 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
+@@ -674,6 +674,10 @@
+ }
+ }
+
++void os::Linux::expand_stack_to(address bottom) {
++ _expand_stack_to(bottom);
++}
++
+ bool os::Linux::manually_expand_stack(JavaThread * t, address addr) {
+ assert(t!=NULL, "just checking");
+ assert(t->osthread()->expanding_stack(), "expand should be set");
+diff -r eecfc14e66ee src/os/linux/vm/os_linux.hpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.hpp Mon Jan 22 16:25:24 2018 +0000
++++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed Feb 21 13:52:31 2018 +0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2018, 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
+@@ -245,6 +245,8 @@
+ static int safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const
struct timespec *_abstime);
+
+ private:
++ static void expand_stack_to(address bottom);
++
+ typedef int (*sched_getcpu_func_t)(void);
+ typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int
bufferlen);
+ typedef int (*numa_max_node_func_t)(void);
+diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+--- openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Mon Jan 22 16:25:24 2018
+0000
++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Wed Feb 21 13:52:31 2018
+0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2018, 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
+@@ -892,6 +892,25 @@
+ void os::workaround_expand_exec_shield_cs_limit() {
+ #if defined(IA32)
+ size_t page_size = os::vm_page_size();
++
++ /*
++ * JDK-8197429
++ *
++ * Expand the stack mapping to the end of the initial stack before
++ * attempting to install the codebuf. This is needed because newer
++ * Linux kernels impose a distance of a megabyte between stack
++ * memory and other memory regions. If we try to install the
++ * codebuf before expanding the stack the installation will appear
++ * to succeed but we'll get a segfault later if we expand the stack
++ * in Java code.
++ *
++ */
++ if (os::Linux::is_initial_thread()) {
++ address limit = Linux::initial_thread_stack_bottom();
++ limit += (StackYellowPages + StackRedPages) * page_size;
++ os::Linux::expand_stack_to(limit);
++ }
++
+ /*
+ * Take the highest VA the OS will give us and exec
+ *
+@@ -910,6 +929,16 @@
+ char* hint = (char*) (Linux::initial_thread_stack_bottom() -
+ ((StackYellowPages + StackRedPages + 1) * page_size));
+ char* codebuf = os::attempt_reserve_memory_at(page_size, hint);
++
++ if (codebuf == NULL) {
++ // JDK-8197429: There may be a stack gap of one megabyte between
++ // the limit of the stack and the nearest memory region: this is a
++ // Linux kernel workaround for CVE-2017-1000364. If we failed to
++ // map our codebuf, try again at an address one megabyte lower.
++ hint -= 1 * M;
++ codebuf = os::attempt_reserve_memory_at(page_size, hint);
++ }
++
+ if ( (codebuf == NULL) || (!os::commit_memory(codebuf, page_size, true)) ) {
+ return; // No matter, we tried, best effort.
+ }
diff --git a/rhbz_1540242.patch b/rhbz_1540242.patch
new file mode 100644
index 0000000..2419b3d
--- /dev/null
+++ b/rhbz_1540242.patch
@@ -0,0 +1,22 @@
+diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -698,6 +698,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+ void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -408,6 +408,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+
commit e5f736ca26888862b99c6e340be023fa31ceb2e5
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Mar 27 17:49:36 2018 +0200
Returned 8035496-hotspot.patch aarch64BuildFailure.patch
diff --git a/8035496-hotspot.patch b/8035496-hotspot.patch
new file mode 100644
index 0000000..426bdbe
--- /dev/null
+++ b/8035496-hotspot.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# User bdelsart
+# Date 1508481469 -28800
+# Fri Oct 20 14:37:49 2017 +0800
+# Node ID 111ed1a4719008b83bf427ae16bbeac2a7a516bc
+# Parent 471de666658d7ec14c5d3f97076fb95f70dd6ffa
+8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for
vm/gc/concurrent/lp50yp10rp70mr30st0
+Summary: release_store used when registering a PerRegionTable. Also reviewed-by:
vitalyd(a)gmail.com
+Reviewed-by: jmasa, tschatzl, brutisso
+
+diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+@@ -514,7 +514,15 @@
+
+ PerRegionTable* first_prt = _fine_grain_regions[ind];
+ prt->set_collision_list_next(first_prt);
+- _fine_grain_regions[ind] = prt;
++ // The assignment into _fine_grain_regions allows the prt to
++ // start being used concurrently. In addition to
++ // collision_list_next which must be visible (else concurrent
++ // parsing of the list, if any, may fail to see other entries),
++ // the content of the prt must be visible (else for instance
++ // some mark bits may not yet seem cleared or a 'later' update
++ // performed by a concurrent thread could be undone when the
++ // zeroing becomes visible). This requires store ordering.
++ OrderAccess::release_store_ptr((volatile
PerRegionTable*)&_fine_grain_regions[ind], prt);
+ _n_fine_entries++;
+
+ if (G1HRRSUseSparseTable) {
diff --git a/aarch64BuildFailure.patch b/aarch64BuildFailure.patch
new file mode 100644
index 0000000..ccd2f49
--- /dev/null
+++ b/aarch64BuildFailure.patch
@@ -0,0 +1,14 @@
+diff -r 214a94e9366c src/cpu/aarch64/vm/nativeInst_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 17 12:11:32 2017
+0000
++++ openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 24 16:23:14 2017
+0100
+@@ -343,7 +343,7 @@
+ CodeBuffer cb(code_pos, instruction_size);
+ MacroAssembler a(&cb);
+
+- a.mov(rscratch1, entry);
++ a.movptr(rscratch1, (uintptr_t)entry);
+ a.br(rscratch1);
+
+ ICache::invalidate_range(code_pos, instruction_size);
+
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4eb2447..34d6475 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1084,6 +1084,8 @@ 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
@@ -1432,6 +1434,8 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
+%patch208
+%patch209
%patch210
%patch1
@@ -2120,7 +2124,6 @@ require "copy_jdk_configs.lua"
- 8181419/PR3413/RH1463144, 8145913/PR3466/RH1498309,
- 8168318/PR3466/RH1498320, 8170328/PR3466/RR1498321 and
- 8181810/PR3466/RH1498319.
-- removed also 208 and 209 (aarch64BuildFailure.patch, 8035496-hotspot.patch) to preven
aarch64 failure
* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
- Rebuild to fix GCC 8 mis-compilation
commit 66bcbb215b271a01b221df962107f4c39166295c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Mar 26 15:09:56 2018 +0200
removed two patches, adepts to aarch64 failure
diff --git a/8035496-hotspot.patch b/8035496-hotspot.patch
deleted file mode 100644
index 426bdbe..0000000
--- a/8035496-hotspot.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# HG changeset patch
-# User bdelsart
-# Date 1508481469 -28800
-# Fri Oct 20 14:37:49 2017 +0800
-# Node ID 111ed1a4719008b83bf427ae16bbeac2a7a516bc
-# Parent 471de666658d7ec14c5d3f97076fb95f70dd6ffa
-8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for
vm/gc/concurrent/lp50yp10rp70mr30st0
-Summary: release_store used when registering a PerRegionTable. Also reviewed-by:
vitalyd(a)gmail.com
-Reviewed-by: jmasa, tschatzl, brutisso
-
-diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-@@ -514,7 +514,15 @@
-
- PerRegionTable* first_prt = _fine_grain_regions[ind];
- prt->set_collision_list_next(first_prt);
-- _fine_grain_regions[ind] = prt;
-+ // The assignment into _fine_grain_regions allows the prt to
-+ // start being used concurrently. In addition to
-+ // collision_list_next which must be visible (else concurrent
-+ // parsing of the list, if any, may fail to see other entries),
-+ // the content of the prt must be visible (else for instance
-+ // some mark bits may not yet seem cleared or a 'later' update
-+ // performed by a concurrent thread could be undone when the
-+ // zeroing becomes visible). This requires store ordering.
-+ OrderAccess::release_store_ptr((volatile
PerRegionTable*)&_fine_grain_regions[ind], prt);
- _n_fine_entries++;
-
- if (G1HRRSUseSparseTable) {
diff --git a/aarch64BuildFailure.patch b/aarch64BuildFailure.patch
deleted file mode 100644
index ccd2f49..0000000
--- a/aarch64BuildFailure.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -r 214a94e9366c src/cpu/aarch64/vm/nativeInst_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 17 12:11:32 2017
+0000
-+++ openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 24 16:23:14 2017
+0100
-@@ -343,7 +343,7 @@
- CodeBuffer cb(code_pos, instruction_size);
- MacroAssembler a(&cb);
-
-- a.mov(rscratch1, entry);
-+ a.movptr(rscratch1, (uintptr_t)entry);
- a.br(rscratch1);
-
- ICache::invalidate_range(code_pos, instruction_size);
-
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 34d6475..4eb2447 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1084,8 +1084,6 @@ 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
@@ -1434,8 +1432,6 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
-%patch208
-%patch209
%patch210
%patch1
@@ -2124,6 +2120,7 @@ require "copy_jdk_configs.lua"
- 8181419/PR3413/RH1463144, 8145913/PR3466/RH1498309,
- 8168318/PR3466/RH1498320, 8170328/PR3466/RR1498321 and
- 8181810/PR3466/RH1498319.
+- removed also 208 and 209 (aarch64BuildFailure.patch, 8035496-hotspot.patch) to preven
aarch64 failure
* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
- Rebuild to fix GCC 8 mis-compilation
commit d1fb9692bd5948cf3c25cfb316556d91399db1ae
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Mar 26 14:58:09 2018 +0200
Added patch 540 rhbz1548475-LDFLAGSusage.patch to honor build flags fully
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6a20565..34d6475 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1076,6 +1076,7 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
+Patch540: rhbz1548475-LDFLAGSusage.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -1476,6 +1477,7 @@ sh %{SOURCE12}
%patch526
%patch528
%patch538
+%patch540
%patch560
pushd openjdk/jdk
%patch561 -p1
@@ -2113,6 +2115,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-1.b12
+- Added patch 540 rhbz1548475-LDFLAGSusage.patch to honor build flags fully
+
* Wed Mar 21 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-1.b12
- Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12.
- Remove upstreamed patches for 8181055/PR3394/RH1448880,
diff --git a/rhbz1548475-LDFLAGSusage.patch b/rhbz1548475-LDFLAGSusage.patch
new file mode 100644
index 0000000..bde08b4
--- /dev/null
+++ b/rhbz1548475-LDFLAGSusage.patch
@@ -0,0 +1,37 @@
+# User jvanek
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1548475
+# java-1.8.0-openjdk: Partial build flags injection
+# LFLAGS += $(EXTRA_CFLAGS) corrected to LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+--- openjdk/hotspot/make/aix/makefiles/vm.make
++++ openjdk/hotspot/make/aix/makefiles/vm.make
+@@ -117,7 +117,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+--- openjdk/hotspot/make/bsd/makefiles/vm.make
++++ openjdk/hotspot/make/bsd/makefiles/vm.make
+@@ -119,7 +119,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+--- openjdk/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -122,7 +122,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
commit 4a7ca1fbfdd56d721c20bd1564b7bad6e2163645
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Mar 26 13:56:35 2018 +0200
Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12
diff --git a/.gitignore b/.gitignore
index 405bc66..072f2ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -106,3 +106,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b13.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u161-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u162-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
diff --git a/8145913-pr3466-rh1498309.patch b/8145913-pr3466-rh1498309.patch
deleted file mode 100644
index b4394f5..0000000
--- a/8145913-pr3466-rh1498309.patch
+++ /dev/null
@@ -1,472 +0,0 @@
-# HG changeset patch
-# User mdoerr
-# Date 1507750779 -3600
-# Wed Oct 11 20:39:39 2017 +0100
-# Node ID 92f0dbe76a13992cc27188e0f68e4b1771c7004a
-# Parent 542c122b1d7d30c29189565248074aa28f21ae58
-8145913, PR3466, RH1498309: PPC64: add Montgomery multiply intrinsic
-Reviewed-by: aph, goetz
-
-diff --git a/src/cpu/ppc/vm/assembler_ppc.hpp b/src/cpu/ppc/vm/assembler_ppc.hpp
---- openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
-@@ -1180,6 +1180,8 @@
- inline void mullw_( Register d, Register a, Register b);
- inline void mulhw( Register d, Register a, Register b);
- inline void mulhw_( Register d, Register a, Register b);
-+ inline void mulhwu( Register d, Register a, Register b);
-+ inline void mulhwu_(Register d, Register a, Register b);
- inline void mulhd( Register d, Register a, Register b);
- inline void mulhd_( Register d, Register a, Register b);
- inline void mulhdu( Register d, Register a, Register b);
-diff --git a/src/cpu/ppc/vm/assembler_ppc.inline.hpp
b/src/cpu/ppc/vm/assembler_ppc.inline.hpp
---- openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
-@@ -109,6 +109,8 @@
- inline void Assembler::mullw_( Register d, Register a, Register b) {
emit_int32(MULLW_OPCODE | rt(d) | ra(a) | rb(b) | oe(0) | rc(1)); }
- inline void Assembler::mulhw( Register d, Register a, Register b) {
emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
- inline void Assembler::mulhw_( Register d, Register a, Register b) {
emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
-+inline void Assembler::mulhwu( Register d, Register a, Register b) {
emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
-+inline void Assembler::mulhwu_(Register d, Register a, Register b) {
emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
- inline void Assembler::mulhd( Register d, Register a, Register b) {
emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
- inline void Assembler::mulhd_( Register d, Register a, Register b) {
emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
- inline void Assembler::mulhdu( Register d, Register a, Register b) {
emit_int32(MULHDU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
-diff --git a/src/cpu/ppc/vm/c2_init_ppc.cpp b/src/cpu/ppc/vm/c2_init_ppc.cpp
---- openjdk/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
-@@ -45,4 +45,10 @@
- FLAG_SET_ERGO(bool, InsertEndGroupPPC64, true);
- }
- }
-+
-+ if (OptimizeFill) {
-+ warning("OptimizeFill is not supported on this CPU.");
-+ FLAG_SET_DEFAULT(OptimizeFill, false);
-+ }
-+
- }
-diff --git a/src/cpu/ppc/vm/sharedRuntime_ppc.cpp b/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
---- openjdk/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
-@@ -42,6 +42,8 @@
- #include "opto/runtime.hpp"
- #endif
-
-+#include <alloca.h>
-+
- #define __ masm->
-
- #ifdef PRODUCT
-@@ -3269,3 +3271,245 @@
- return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete,
frame_size_in_bytes/wordSize,
- oop_maps, true);
- }
-+
-+
-+//------------------------------Montgomery multiplication------------------------
-+//
-+
-+// Subtract 0:b from carry:a. Return carry.
-+static unsigned long
-+sub(unsigned long a[], unsigned long b[], unsigned long carry, long len) {
-+ long i = 0;
-+ unsigned long tmp, tmp2;
-+ __asm__ __volatile__ (
-+ "subfc %[tmp], %[tmp], %[tmp] \n" // pre-set CA
-+ "mtctr %[len] \n"
-+ "0: \n"
-+ "ldx %[tmp], %[i], %[a] \n"
-+ "ldx %[tmp2], %[i], %[b] \n"
-+ "subfe %[tmp], %[tmp2], %[tmp] \n" // subtract extended
-+ "stdx %[tmp], %[i], %[a] \n"
-+ "addi %[i], %[i], 8 \n"
-+ "bdnz 0b \n"
-+ "addme %[tmp], %[carry] \n" // carry + CA - 1
-+ : [i]"+b"(i), [tmp]"=&r"(tmp),
[tmp2]"=&r"(tmp2)
-+ : [a]"r"(a), [b]"r"(b), [carry]"r"(carry),
[len]"r"(len)
-+ : "ctr", "xer", "memory"
-+ );
-+ return tmp;
-+}
-+
-+// Multiply (unsigned) Long A by Long B, accumulating the double-
-+// length result into the accumulator formed of T0, T1, and T2.
-+inline void MACC(unsigned long A, unsigned long B, unsigned long &T0, unsigned long
&T1, unsigned long &T2) {
-+ unsigned long hi, lo;
-+ __asm__ __volatile__ (
-+ "mulld %[lo], %[A], %[B] \n"
-+ "mulhdu %[hi], %[A], %[B] \n"
-+ "addc %[T0], %[T0], %[lo] \n"
-+ "adde %[T1], %[T1], %[hi] \n"
-+ "addze %[T2], %[T2] \n"
-+ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0),
[T1]"+r"(T1), [T2]"+r"(T2)
-+ : [A]"r"(A), [B]"r"(B)
-+ : "xer"
-+ );
-+}
-+
-+// As above, but add twice the double-length result into the
-+// accumulator.
-+inline void MACC2(unsigned long A, unsigned long B, unsigned long &T0, unsigned long
&T1, unsigned long &T2) {
-+ unsigned long hi, lo;
-+ __asm__ __volatile__ (
-+ "mulld %[lo], %[A], %[B] \n"
-+ "mulhdu %[hi], %[A], %[B] \n"
-+ "addc %[T0], %[T0], %[lo] \n"
-+ "adde %[T1], %[T1], %[hi] \n"
-+ "addze %[T2], %[T2] \n"
-+ "addc %[T0], %[T0], %[lo] \n"
-+ "adde %[T1], %[T1], %[hi] \n"
-+ "addze %[T2], %[T2] \n"
-+ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0),
[T1]"+r"(T1), [T2]"+r"(T2)
-+ : [A]"r"(A), [B]"r"(B)
-+ : "xer"
-+ );
-+}
-+
-+// Fast Montgomery multiplication. The derivation of the algorithm is
-+// in "A Cryptographic Library for the Motorola DSP56000,
-+// Dusse and Kaliski, Proc. EUROCRYPT 90, pp. 230-237".
-+static void
-+montgomery_multiply(unsigned long a[], unsigned long b[], unsigned long n[],
-+ unsigned long m[], unsigned long inv, int len) {
-+ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
-+ int i;
-+
-+ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
-+
-+ for (i = 0; i < len; i++) {
-+ int j;
-+ for (j = 0; j < i; j++) {
-+ MACC(a[j], b[i-j], t0, t1, t2);
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ MACC(a[i], b[0], t0, t1, t2);
-+ m[i] = t0 * inv;
-+ MACC(m[i], n[0], t0, t1, t2);
-+
-+ assert(t0 == 0, "broken Montgomery multiply");
-+
-+ t0 = t1; t1 = t2; t2 = 0;
-+ }
-+
-+ for (i = len; i < 2*len; i++) {
-+ int j;
-+ for (j = i-len+1; j < len; j++) {
-+ MACC(a[j], b[i-j], t0, t1, t2);
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ m[i-len] = t0;
-+ t0 = t1; t1 = t2; t2 = 0;
-+ }
-+
-+ while (t0) {
-+ t0 = sub(m, n, t0, len);
-+ }
-+}
-+
-+// Fast Montgomery squaring. This uses asymptotically 25% fewer
-+// multiplies so it should be up to 25% faster than Montgomery
-+// multiplication. However, its loop control is more complex and it
-+// may actually run slower on some machines.
-+static void
-+montgomery_square(unsigned long a[], unsigned long n[],
-+ unsigned long m[], unsigned long inv, int len) {
-+ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
-+ int i;
-+
-+ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
-+
-+ for (i = 0; i < len; i++) {
-+ int j;
-+ int end = (i+1)/2;
-+ for (j = 0; j < end; j++) {
-+ MACC2(a[j], a[i-j], t0, t1, t2);
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ if ((i & 1) == 0) {
-+ MACC(a[j], a[j], t0, t1, t2);
-+ }
-+ for (; j < i; j++) {
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ m[i] = t0 * inv;
-+ MACC(m[i], n[0], t0, t1, t2);
-+
-+ assert(t0 == 0, "broken Montgomery square");
-+
-+ t0 = t1; t1 = t2; t2 = 0;
-+ }
-+
-+ for (i = len; i < 2*len; i++) {
-+ int start = i-len+1;
-+ int end = start + (len - start)/2;
-+ int j;
-+ for (j = start; j < end; j++) {
-+ MACC2(a[j], a[i-j], t0, t1, t2);
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ if ((i & 1) == 0) {
-+ MACC(a[j], a[j], t0, t1, t2);
-+ }
-+ for (; j < len; j++) {
-+ MACC(m[j], n[i-j], t0, t1, t2);
-+ }
-+ m[i-len] = t0;
-+ t0 = t1; t1 = t2; t2 = 0;
-+ }
-+
-+ while (t0) {
-+ t0 = sub(m, n, t0, len);
-+ }
-+}
-+
-+// The threshold at which squaring is advantageous was determined
-+// experimentally on an i7-3930K (Ivy Bridge) CPU @ 3.5GHz.
-+// Doesn't seem to be relevant for Power8 so we use the same value.
-+#define MONTGOMERY_SQUARING_THRESHOLD 64
-+
-+// Copy len longwords from s to d, word-swapping as we go. The
-+// destination array is reversed.
-+static void reverse_words(unsigned long *s, unsigned long *d, int len) {
-+ d += len;
-+ while(len-- > 0) {
-+ d--;
-+ unsigned long s_val = *s;
-+ // Swap words in a longword on little endian machines.
-+#ifdef VM_LITTLE_ENDIAN
-+ s_val = (s_val << 32) | (s_val >> 32);
-+#endif
-+ *d = s_val;
-+ s++;
-+ }
-+}
-+
-+void SharedRuntime::montgomery_multiply(jint *a_ints, jint *b_ints, jint *n_ints,
-+ jint len, jlong inv,
-+ jint *m_ints) {
-+ assert(len % 2 == 0, "array length in montgomery_multiply must be even");
-+ int longwords = len/2;
-+ assert(longwords > 0, "unsupported");
-+
-+ // Make very sure we don't use so much space that the stack might
-+ // overflow. 512 jints corresponds to an 16384-bit integer and
-+ // will use here a total of 8k bytes of stack space.
-+ int total_allocation = longwords * sizeof (unsigned long) * 4;
-+ guarantee(total_allocation <= 8192, "must be");
-+ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
-+
-+ // Local scratch arrays
-+ unsigned long
-+ *a = scratch + 0 * longwords,
-+ *b = scratch + 1 * longwords,
-+ *n = scratch + 2 * longwords,
-+ *m = scratch + 3 * longwords;
-+
-+ reverse_words((unsigned long *)a_ints, a, longwords);
-+ reverse_words((unsigned long *)b_ints, b, longwords);
-+ reverse_words((unsigned long *)n_ints, n, longwords);
-+
-+ ::montgomery_multiply(a, b, n, m, (unsigned long)inv, longwords);
-+
-+ reverse_words(m, (unsigned long *)m_ints, longwords);
-+}
-+
-+void SharedRuntime::montgomery_square(jint *a_ints, jint *n_ints,
-+ jint len, jlong inv,
-+ jint *m_ints) {
-+ assert(len % 2 == 0, "array length in montgomery_square must be even");
-+ int longwords = len/2;
-+ assert(longwords > 0, "unsupported");
-+
-+ // Make very sure we don't use so much space that the stack might
-+ // overflow. 512 jints corresponds to an 16384-bit integer and
-+ // will use here a total of 6k bytes of stack space.
-+ int total_allocation = longwords * sizeof (unsigned long) * 3;
-+ guarantee(total_allocation <= 8192, "must be");
-+ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
-+
-+ // Local scratch arrays
-+ unsigned long
-+ *a = scratch + 0 * longwords,
-+ *n = scratch + 1 * longwords,
-+ *m = scratch + 2 * longwords;
-+
-+ reverse_words((unsigned long *)a_ints, a, longwords);
-+ reverse_words((unsigned long *)n_ints, n, longwords);
-+
-+ if (len >= MONTGOMERY_SQUARING_THRESHOLD) {
-+ ::montgomery_square(a, n, m, (unsigned long)inv, longwords);
-+ } else {
-+ ::montgomery_multiply(a, a, n, m, (unsigned long)inv, longwords);
-+ }
-+
-+ reverse_words(m, (unsigned long *)m_ints, longwords);
-+}
-diff --git a/src/cpu/ppc/vm/stubGenerator_ppc.cpp b/src/cpu/ppc/vm/stubGenerator_ppc.cpp
---- openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-@@ -2518,6 +2518,15 @@
- generate_safefetch("SafeFetchN", sizeof(intptr_t),
&StubRoutines::_safefetchN_entry,
-
&StubRoutines::_safefetchN_fault_pc,
-
&StubRoutines::_safefetchN_continuation_pc);
-+
-+ if (UseMontgomeryMultiplyIntrinsic) {
-+ StubRoutines::_montgomeryMultiply
-+ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
-+ }
-+ if (UseMontgomerySquareIntrinsic) {
-+ StubRoutines::_montgomerySquare
-+ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
-+ }
-
- if (UseAESIntrinsics) {
- StubRoutines::_aescrypt_encryptBlock = generate_aescrypt_encryptBlock();
-diff --git a/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
b/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
---- openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
-@@ -265,7 +265,7 @@
- __ cmpdi(CCR0, Rmdo, 0);
- __ beq(CCR0, no_mdo);
-
-- // Increment backedge counter in the MDO.
-+ // Increment invocation counter in the MDO.
- const int mdo_bc_offs = in_bytes(MethodData::backedge_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
- __ lwz(Rscratch2, mdo_bc_offs, Rmdo);
- __ addi(Rscratch2, Rscratch2, increment);
-@@ -277,12 +277,12 @@
- }
-
- // Increment counter in MethodCounters*.
-- const int mo_bc_offs = in_bytes(MethodCounters::backedge_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
-+ const int mo_ic_offs = in_bytes(MethodCounters::invocation_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
- __ bind(no_mdo);
- __ get_method_counters(R19_method, R3_counters, done);
-- __ lwz(Rscratch2, mo_bc_offs, R3_counters);
-+ __ lwz(Rscratch2, mo_ic_offs, R3_counters);
- __ addi(Rscratch2, Rscratch2, increment);
-- __ stw(Rscratch2, mo_bc_offs, R3_counters);
-+ __ stw(Rscratch2, mo_ic_offs, R3_counters);
- __ load_const_optimized(Rscratch1, mask, R0);
- __ and_(Rscratch1, Rscratch2, Rscratch1);
- __ beq(CCR0, *overflow);
-diff --git a/src/cpu/ppc/vm/vm_version_ppc.cpp b/src/cpu/ppc/vm/vm_version_ppc.cpp
---- openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-@@ -201,6 +201,12 @@
- FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
- }
-
-+ if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
-+ UseMontgomeryMultiplyIntrinsic = true;
-+ }
-+ if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
-+ UseMontgomerySquareIntrinsic = true;
-+ }
- }
-
- void VM_Version::print_features() {
-diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp
---- openjdk/hotspot/src/share/vm/opto/library_call.cpp
-+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp
-@@ -6205,11 +6205,21 @@
- Node* n_start = array_element_address(n, intcon(0), n_elem);
- Node* m_start = array_element_address(m, intcon(0), m_elem);
-
-- Node* call = make_runtime_call(RC_LEAF,
-- OptoRuntime::montgomeryMultiply_Type(),
-- stubAddr, stubName, TypePtr::BOTTOM,
-- a_start, b_start, n_start, len, inv, top(),
-- m_start);
-+ Node* call = NULL;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ Node* len_I2L = ConvI2L(len);
-+ call = make_runtime_call(RC_LEAF,
-+ OptoRuntime::montgomeryMultiply_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ a_start, b_start, n_start, len_I2L XTOP, inv,
-+ top(), m_start);
-+ } else {
-+ call = make_runtime_call(RC_LEAF,
-+ OptoRuntime::montgomeryMultiply_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ a_start, b_start, n_start, len, inv, top(),
-+ m_start);
-+ }
- set_result(m);
- }
-
-@@ -6263,11 +6273,22 @@
- Node* n_start = array_element_address(n, intcon(0), n_elem);
- Node* m_start = array_element_address(m, intcon(0), m_elem);
-
-- Node* call = make_runtime_call(RC_LEAF,
-- OptoRuntime::montgomerySquare_Type(),
-- stubAddr, stubName, TypePtr::BOTTOM,
-- a_start, n_start, len, inv, top(),
-- m_start);
-+ Node* call = NULL;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ Node* len_I2L = ConvI2L(len);
-+ call = make_runtime_call(RC_LEAF,
-+ OptoRuntime::montgomerySquare_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ a_start, n_start, len_I2L XTOP, inv, top(),
-+ m_start);
-+ } else {
-+ call = make_runtime_call(RC_LEAF,
-+ OptoRuntime::montgomerySquare_Type(),
-+ stubAddr, stubName, TypePtr::BOTTOM,
-+ a_start, n_start, len, inv, top(),
-+ m_start);
-+ }
-+
- set_result(m);
- }
-
-diff --git a/src/share/vm/opto/runtime.cpp b/src/share/vm/opto/runtime.cpp
---- openjdk/hotspot/src/share/vm/opto/runtime.cpp
-+++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
-@@ -1031,12 +1031,20 @@
- // create input type (domain)
- int num_args = 7;
- int argcnt = num_args;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ argcnt++; // additional placeholder
-+ }
- const Type** fields = TypeTuple::fields(argcnt);
- int argp = TypeFunc::Parms;
- fields[argp++] = TypePtr::NOTNULL; // a
- fields[argp++] = TypePtr::NOTNULL; // b
- fields[argp++] = TypePtr::NOTNULL; // n
-- fields[argp++] = TypeInt::INT; // len
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ fields[argp++] = TypeLong::LONG; // len
-+ fields[argp++] = TypeLong::HALF; // placeholder
-+ } else {
-+ fields[argp++] = TypeInt::INT; // len
-+ }
- fields[argp++] = TypeLong::LONG; // inv
- fields[argp++] = Type::HALF;
- fields[argp++] = TypePtr::NOTNULL; // result
-@@ -1055,11 +1063,19 @@
- // create input type (domain)
- int num_args = 6;
- int argcnt = num_args;
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ argcnt++; // additional placeholder
-+ }
- const Type** fields = TypeTuple::fields(argcnt);
- int argp = TypeFunc::Parms;
- fields[argp++] = TypePtr::NOTNULL; // a
- fields[argp++] = TypePtr::NOTNULL; // n
-- fields[argp++] = TypeInt::INT; // len
-+ if (CCallingConventionRequiresIntsAsLongs) {
-+ fields[argp++] = TypeLong::LONG; // len
-+ fields[argp++] = TypeLong::HALF; // placeholder
-+ } else {
-+ fields[argp++] = TypeInt::INT; // len
-+ }
- fields[argp++] = TypeLong::LONG; // inv
- fields[argp++] = Type::HALF;
- fields[argp++] = TypePtr::NOTNULL; // result
diff --git a/8168318-pr3466-rh1498320.patch b/8168318-pr3466-rh1498320.patch
deleted file mode 100644
index 6ed9afb..0000000
--- a/8168318-pr3466-rh1498320.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-# HG changeset patch
-# User goetz
-# Date 1477563748 -7200
-# Thu Oct 27 12:22:28 2016 +0200
-# Node ID 9b9d9e11c04d5e5f64829d34752e5c94b1c7d911
-# Parent 92f0dbe76a13992cc27188e0f68e4b1771c7004a
-8168318, PR3466, RH1498320: PPC64: Use cmpldi instead of li/cmpld
-Reviewed-by: goetz
-Contributed-by: igor.nunes(a)eldorado.org.br
-
-diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
---- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-@@ -10571,6 +10571,17 @@
- ins_pipe(pipe_class_compare);
- %}
-
-+instruct cmpP_reg_null(flagsReg crx, iRegP_N2P src1, immP_0or1 src2) %{
-+ match(Set crx (CmpP src1 src2));
-+ format %{ "CMPLDI $crx, $src1, $src2 \t// ptr" %}
-+ size(4);
-+ ins_encode %{
-+ // TODO: PPC port $archOpcode(ppc64Opcode_cmpl);
-+ __ cmpldi($crx$$CondRegister, $src1$$Register, (int)((short)($src2$$constant &
0xFFFF)));
-+ %}
-+ ins_pipe(pipe_class_compare);
-+%}
-+
- // Used in postalloc expand.
- instruct cmpP_reg_imm16(flagsReg crx, iRegPsrc src1, immL16 src2) %{
- // This match rule prevents reordering of node before a safepoint.
diff --git a/8170328-pr3466-rh1498321.patch b/8170328-pr3466-rh1498321.patch
deleted file mode 100644
index d8751ee..0000000
--- a/8170328-pr3466-rh1498321.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User mdoerr
-# Date 1480079712 7200
-# Fri Nov 25 11:15:12 2016 -0200
-# Node ID 3c499a0ba92b1affb3f473c6502e374f4785aba9
-# Parent 9b9d9e11c04d5e5f64829d34752e5c94b1c7d911
-8170328, PR3466, RH1498321: PPC64: Use andis instead of lis/and
-Reviewed-by: goetz, mdoerr
-Contributed-by: Igor Nunes <igor.nunes(a)eldorado.org.br>
-
-diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
---- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-@@ -8889,6 +8889,19 @@
- ins_pipe(pipe_class_default);
- %}
-
-+// Left shifted Immediate And
-+instruct andI_reg_immIhi16(iRegIdst dst, iRegIsrc src1, immIhi16 src2, flagsRegCR0 cr0)
%{
-+ match(Set dst (AndI src1 src2));
-+ effect(KILL cr0);
-+ format %{ "ANDIS $dst, $src1, $src2.hi" %}
-+ size(4);
-+ ins_encode %{
-+ // TODO: PPC port $archOpcode(ppc64Opcode_andis_);
-+ __ andis_($dst$$Register, $src1$$Register, (int)((unsigned short)(($src2$$constant
& 0xFFFF0000) >> 16)));
-+ %}
-+ ins_pipe(pipe_class_default);
-+%}
-+
- // Immediate And
- instruct andI_reg_uimm16(iRegIdst dst, iRegIsrc src1, uimmI16 src2, flagsRegCR0 cr0) %{
- match(Set dst (AndI src1 src2));
diff --git a/8181055-pr3394-rh1448880.patch b/8181055-pr3394-rh1448880.patch
deleted file mode 100644
index 593159d..0000000
--- a/8181055-pr3394-rh1448880.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-# HG changeset patch
-# User zgu
-# Date 1496236768 14400
-# Wed May 31 09:19:28 2017 -0400
-# Node ID 8330ff7914ec54c46fd19300221f72d774423405
-# Parent 55a34e4962e10c822affe8f89273a87e84cade92
-8181055: PPC64: "mbind: Invalid argument" still seen after 8175813
-Summary: Use numa_interleave_memory v2 api when available
-Reviewed-by: dholmes, shade
-
-diff -r 74c81011375b src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed May 17 17:52:34 2017 -0400
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed May 31 12:27:00 2017 -0400
-@@ -2819,11 +2819,8 @@
- extern "C" JNIEXPORT void numa_error(char *where) { }
- extern "C" JNIEXPORT int fork1() { return fork(); }
-
--
--// If we are running with libnuma version > 2, then we should
--// be trying to use symbols with versions 1.1
--// If we are running with earlier version, which did not have symbol versions,
--// we should use the base version.
-+// Handle request to load libnuma symbol version 1.1 (API v1). If it fails
-+// load symbol from base version instead.
- void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
- void *f = dlvsym(handle, name, "libnuma_1.1");
- if (f == NULL) {
-@@ -2832,6 +2829,12 @@
- return f;
- }
-
-+// Handle request to load libnuma symbol version 1.2 (API v2) only.
-+// Return NULL if the symbol is not defined in this particular version.
-+void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
-+ return dlvsym(handle, name, "libnuma_1.2");
-+}
-+
- bool os::Linux::libnuma_init() {
- // sched_getcpu() should be in libc.
- set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t,
-@@ -2856,6 +2859,8 @@
- libnuma_dlsym(handle,
"numa_tonode_memory")));
- set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
- libnuma_dlsym(handle,
"numa_interleave_memory")));
-+ set_numa_interleave_memory_v2(CAST_TO_FN_PTR(numa_interleave_memory_v2_func_t,
-+ libnuma_v2_dlsym(handle,
"numa_interleave_memory")));
- set_numa_set_bind_policy(CAST_TO_FN_PTR(numa_set_bind_policy_func_t,
- libnuma_dlsym(handle,
"numa_set_bind_policy")));
- set_numa_bitmask_isbitset(CAST_TO_FN_PTR(numa_bitmask_isbitset_func_t,
-@@ -2975,6 +2980,7 @@
- os::Linux::numa_available_func_t os::Linux::_numa_available;
- os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory;
- os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory;
-+os::Linux::numa_interleave_memory_v2_func_t os::Linux::_numa_interleave_memory_v2;
- os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
- os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
- os::Linux::numa_distance_func_t os::Linux::_numa_distance;
-diff -r 74c81011375b src/os/linux/vm/os_linux.hpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed May 17 17:52:34 2017 -0400
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed May 31 12:27:00 2017 -0400
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 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
-@@ -190,6 +190,9 @@
- static void libpthread_init();
- static bool libnuma_init();
- static void* libnuma_dlsym(void* handle, const char* name);
-+ // libnuma v2 (libnuma_1.2) symbols
-+ static void* libnuma_v2_dlsym(void* handle, const char* name);
-+
- // Minimum stack size a thread can be created with (allowing
- // the VM to completely create the thread and enter user code)
- static size_t min_stack_allowed;
-@@ -250,6 +253,8 @@
- typedef int (*numa_available_func_t)(void);
- typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
- typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long
*nodemask);
-+ typedef void (*numa_interleave_memory_v2_func_t)(void *start, size_t size, struct
bitmask* mask);
-+
- typedef void (*numa_set_bind_policy_func_t)(int policy);
- typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
- typedef int (*numa_distance_func_t)(int node1, int node2);
-@@ -261,6 +266,7 @@
- static numa_available_func_t _numa_available;
- static numa_tonode_memory_func_t _numa_tonode_memory;
- static numa_interleave_memory_func_t _numa_interleave_memory;
-+ static numa_interleave_memory_v2_func_t _numa_interleave_memory_v2;
- static numa_set_bind_policy_func_t _numa_set_bind_policy;
- static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
- static numa_distance_func_t _numa_distance;
-@@ -275,6 +281,7 @@
- static void set_numa_available(numa_available_func_t func) { _numa_available = func;
}
- static void set_numa_tonode_memory(numa_tonode_memory_func_t func) {
_numa_tonode_memory = func; }
- static void set_numa_interleave_memory(numa_interleave_memory_func_t func) {
_numa_interleave_memory = func; }
-+ static void set_numa_interleave_memory_v2(numa_interleave_memory_v2_func_t func) {
_numa_interleave_memory_v2 = func; }
- static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) {
_numa_set_bind_policy = func; }
- static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) {
_numa_bitmask_isbitset = func; }
- static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
-@@ -296,7 +303,10 @@
- return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
- }
- static void numa_interleave_memory(void *start, size_t size) {
-- if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
-+ // Use v2 api if available
-+ if (_numa_interleave_memory_v2 != NULL && _numa_all_nodes_ptr != NULL) {
-+ _numa_interleave_memory_v2(start, size, _numa_all_nodes_ptr);
-+ } else if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
- _numa_interleave_memory(start, size, _numa_all_nodes);
- }
- }
-
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/8181810-pr3466-rh1498319.patch b/8181810-pr3466-rh1498319.patch
deleted file mode 100644
index 4dba432..0000000
--- a/8181810-pr3466-rh1498319.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-# HG changeset patch
-# User mdoerr
-# Date 1507752266 -3600
-# Wed Oct 11 21:04:26 2017 +0100
-# Node ID 5c00d5cd7677aec3549afe02e4f9de8dc7b20bef
-# Parent 3c499a0ba92b1affb3f473c6502e374f4785aba9
-8181810, PR3466, RH1498319: PPC64: Leverage extrdi for bitfield extract
-Reviewed-by: mdoerr, simonis
-Contributed-by: Matthew Brandyberry <mbrandy(a)linux.vnet.ibm.com>
-
-diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
---- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-+++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
-@@ -1,6 +1,6 @@
- //
- // Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
--// Copyright 2012, 2014 SAP AG. All rights reserved.
-+// Copyright (c) 2012, 2017 SAP SE. 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
-@@ -8610,6 +8610,44 @@
- ins_pipe(pipe_class_default);
- %}
-
-+// Bitfield Extract: URShiftI + AndI
-+instruct andI_urShiftI_regI_immI_immIpow2minus1(iRegIdst dst, iRegIsrc src1, immI src2,
immIpow2minus1 src3) %{
-+ match(Set dst (AndI (URShiftI src1 src2) src3));
-+
-+ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// int bitfield
extract" %}
-+ size(4);
-+ ins_encode %{
-+ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
-+ int rshift = ($src2$$constant) & 0x1f;
-+ int length = log2_long(((jlong) $src3$$constant) + 1);
-+ if (rshift + length > 32) {
-+ // if necessary, adjust mask to omit rotated bits.
-+ length = 32 - rshift;
-+ }
-+ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
-+ %}
-+ ins_pipe(pipe_class_default);
-+%}
-+
-+// Bitfield Extract: URShiftL + AndL
-+instruct andL_urShiftL_regL_immI_immLpow2minus1(iRegLdst dst, iRegLsrc src1, immI src2,
immLpow2minus1 src3) %{
-+ match(Set dst (AndL (URShiftL src1 src2) src3));
-+
-+ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// long bitfield
extract" %}
-+ size(4);
-+ ins_encode %{
-+ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
-+ int rshift = ($src2$$constant) & 0x3f;
-+ int length = log2_long(((jlong) $src3$$constant) + 1);
-+ if (rshift + length > 64) {
-+ // if necessary, adjust mask to omit rotated bits.
-+ length = 64 - rshift;
-+ }
-+ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
-+ %}
-+ ins_pipe(pipe_class_default);
-+%}
-+
- instruct sxtI_reg(iRegIdst dst, iRegIsrc src) %{
- match(Set dst (ConvL2I (ConvI2L src)));
-
diff --git a/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
b/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
deleted file mode 100644
index a4f588c..0000000
--- a/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-# HG changeset patch
-# User adinn
-# Date 1516891647 0
-# Thu Jan 25 14:47:27 2018 +0000
-# Node ID e321560ac819c05274c59f46f5cc28ccfd4b38ec
-# Parent 77baeab90732e7cfb6eb1b754a768a197bca1ab5
-8195859: AArch64: vtableStubs gtest fails after 8174962
-Summary: gtest vtableStubs introduced by 8174962 fails on AArch64 with an invalid insn
encoding
-Reviewed-by: duke
-
-diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
---- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-@@ -1049,7 +1049,8 @@
- ldr(method_result, Address(method_result, vtable_offset_in_bytes));
- } else {
- vtable_offset_in_bytes += vtable_index.as_constant() * wordSize;
-- ldr(method_result, Address(recv_klass, vtable_offset_in_bytes));
-+ ldr(method_result,
-+ form_address(rscratch1, recv_klass, vtable_offset_in_bytes));
- }
- }
-
diff --git a/JDK-8196136-correct-register-use-8195685.patch
b/JDK-8196136-correct-register-use-8195685.patch
deleted file mode 100644
index 9ad3b6f..0000000
--- a/JDK-8196136-correct-register-use-8195685.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-# HG changeset patch
-# User adinn
-# Date 1516881392 0
-# Thu Jan 25 11:56:32 2018 +0000
-# Node ID 51d97ee431ff04f126c436b25dc75de7e0d2d4dd
-# Parent 2da4a52715d837b639edcfe37c66e5428c023abd
-8196136: AArch64: Correct register use in patch for JDK-8195685
-Summary: itable stubs must not use java argument registers as scratch registers
-Reviewed-by: aph
-
-diff --git a/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
b/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
---- a/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
-+++ b/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
-@@ -64,8 +64,8 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
-
- #ifndef PRODUCT
- if (CountCompiledCalls) {
-- __ lea(r19, ExternalAddress((address)
SharedRuntime::nof_megamorphic_calls_addr()));
-- __ incrementw(Address(r19));
-+ __ lea(r16, ExternalAddress((address)
SharedRuntime::nof_megamorphic_calls_addr()));
-+ __ incrementw(Address(r16));
- }
- #endif
-
-@@ -74,13 +74,13 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
-
- // get receiver klass
- address npe_addr = __ pc();
-- __ load_klass(r19, j_rarg0);
-+ __ load_klass(r16, j_rarg0);
-
- #ifndef PRODUCT
- if (DebugVtables) {
- Label L;
- // check offset vs vtable length
-- __ ldrw(rscratch1, Address(r19, InstanceKlass::vtable_length_offset() * wordSize));
-+ __ ldrw(rscratch1, Address(r16, InstanceKlass::vtable_length_offset() * wordSize));
- __ cmpw(rscratch1, vtable_index * vtableEntry::size());
- __ br(Assembler::GT, L);
- __ enter();
-@@ -92,7 +92,7 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
- }
- #endif // PRODUCT
-
-- __ lookup_virtual_method(r19, vtable_index, rmethod);
-+ __ lookup_virtual_method(r16, vtable_index, rmethod);
-
- if (DebugVtables) {
- Label L;
-@@ -145,9 +145,9 @@ VtableStub* VtableStubs::create_itable_stub(int itable_index) {
- // rscratch2: CompiledICHolder
- // j_rarg0: Receiver
-
-- // Most registers are in use; we'll use r0, rmethod, r10, r11
-+ // Most registers are in use; we'll use r16, rmethod, r10, r11
- const Register recv_klass_reg = r10;
-- const Register holder_klass_reg = r0; // declaring interface klass (DECC)
-+ const Register holder_klass_reg = r16; // declaring interface klass (DECC)
- const Register resolved_klass_reg = rmethod; // resolved interface klass (REFC)
- const Register temp_reg = r11;
- const Register icholder_reg = rscratch2;
diff --git a/JDK-8196221-mistake-in-8195859.patch b/JDK-8196221-mistake-in-8195859.patch
deleted file mode 100644
index d9975c9..0000000
--- a/JDK-8196221-mistake-in-8195859.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User adinn
-# Date 1516984701 0
-# Fri Jan 26 16:38:21 2018 +0000
-# Node ID 2c35f60ad26425a6d1dd1071e8a5adde79154fe3
-# Parent e2a7856edfbaccebd36bf02674e39b1a53867241
-8196221: AArch64: Mistake in committed patch for JDK-8195859
-Summary: The wrong patch was committed for JDK-8195859
-Reviewed-by: duke
-
-diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
---- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-@@ -1050,7 +1050,7 @@
- } else {
- vtable_offset_in_bytes += vtable_index.as_constant() * wordSize;
- ldr(method_result,
-- form_address(rscratch1, recv_klass, vtable_offset_in_bytes));
-+ form_address(rscratch1, recv_klass, vtable_offset_in_bytes, 0));
- }
- }
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 974ea7f..6a20565 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,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-jdk8u161-b14
+%global revision aarch64-jdk8u162-b12
# 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
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -963,7 +963,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1076,34 +1076,7 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.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
-
-# Aarch64 build fixes after January 2018 CPU
-#
-# JDK-8195685 AArch64 cannot build with JDK-8174962 (already included in source tarball)
-# JDK-8196136 AArch64: Correct register use in patch for JDK-8195685
-# JDK-8195859 AArch64: vtableStubs gtest fails after 8174962
-# JDK-8196221 AArch64: Mistake in committed patch for JDK-8195859
-Patch570: JDK-8196136-correct-register-use-8195685.patch
-Patch571: JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
-Patch572: JDK-8196221-mistake-in-8195859.patch
-
-Patch573: rhbz_1540242.patch
-Patch574: rhbz_1540242_2.patch
-
+
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1503,29 +1476,11 @@ sh %{SOURCE12}
%patch526
%patch528
%patch538
-%patch551
-%patch553
%patch560
pushd openjdk/jdk
%patch561 -p1
popd
-# PPC64 updates
-%patch556
-%patch557
-%patch558
-%patch559
-
-pushd openjdk/hotspot
-# Aarch64 build fixes after January 2018 CPU
-%patch570 -p1
-%patch571 -p1
-%patch572 -p1
-
-# Zero/AArch64 fix for RHBZ#1540242
-%patch573 -p1
-%patch574 -p1
-popd
# RPM-only fixes
%patch525
@@ -2158,6 +2113,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Mar 21 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-1.b12
+- Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12.
+- Remove upstreamed patches for 8181055/PR3394/RH1448880,
+- 8181419/PR3413/RH1463144, 8145913/PR3466/RH1498309,
+- 8168318/PR3466/RH1498320, 8170328/PR3466/RR1498321 and
+- 8181810/PR3466/RH1498319.
+
* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
- Rebuild to fix GCC 8 mis-compilation
See
https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
diff --git a/rhbz_1540242.patch b/rhbz_1540242.patch
deleted file mode 100644
index 687d499..0000000
--- a/rhbz_1540242.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -698,6 +698,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -408,6 +408,7 @@
-
- extern "C" {
- int SpinPause() {
-+ return 0;
- }
-
-
diff --git a/rhbz_1540242_2.patch b/rhbz_1540242_2.patch
deleted file mode 100644
index 7842171..0000000
--- a/rhbz_1540242_2.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff --git a/src/cpu/aarch64/vm/assembler_aarch64.hpp
b/src/cpu/aarch64/vm/assembler_aarch64.hpp
---- a/src/cpu/aarch64/vm/assembler_aarch64.hpp
-+++ b/src/cpu/aarch64/vm/assembler_aarch64.hpp
-@@ -2529,6 +2529,8 @@
- virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
- Register tmp,
- int offset) {
-+ ShouldNotCallThis();
-+ return RegisterOrConstant();
- }
-
- // Stack overflow checking
-diff --git a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
---- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-+++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-@@ -209,6 +209,7 @@
-
- Address LIR_Assembler::as_Address_hi(LIR_Address* addr) {
- ShouldNotReachHere();
-+ return Address();
- }
-
- Address LIR_Assembler::as_Address(LIR_Address* addr) {
-diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
---- a/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
-+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
-@@ -434,8 +434,8 @@
- void mov(Register dst, Address a);
-
- public:
-- int push(RegSet regs, Register stack) { if (regs.bits()) push(regs.bits(), stack); }
-- int pop(RegSet regs, Register stack) { if (regs.bits()) pop(regs.bits(), stack); }
-+ void push(RegSet regs, Register stack) { if (regs.bits()) push(regs.bits(), stack); }
-+ void pop(RegSet regs, Register stack) { if (regs.bits()) pop(regs.bits(), stack); }
-
- // Push and pop everything that might be clobbered by a native
- // runtime call except rscratch1 and rscratch2. (They are always
-diff --git a/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
b/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
---- a/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
-+++ b/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
-@@ -220,6 +220,7 @@
- else if (is_ldr_literal_at(instruction_address()))
- return(addr_at(4));
- assert(false, "Unknown instruction in NativeMovConstReg");
-+ return NULL;
- }
-
- intptr_t data() const;
-diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
---- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-+++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
-@@ -472,6 +472,7 @@
- err.report_and_die();
-
- ShouldNotReachHere();
-+ return true; // Mute compiler
- }
-
- void os::Linux::init_thread_fpu_state(void) {
diff --git a/sources b/sources
index def4c19..696fdf0 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u161-b14.tar.xz) =
f60836acdf2a38961e1f8299b4c5274f0201a0e365c37f107e8793640f691e6fef9a03daa0172aa192eddab6db86e9ea904aa0da2abd4d5a75aa147af59d715e
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz) =
da15dbe6c02233d5c172cf862090f335e499fde97dd3a93cd15d6011b7f27864b1af3c58d3677bcf2aef763c3ca60bc97c2223990133ec4d073e5a93fb969053
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u162-b12.tar.xz) =
5bb05e931a57c25c627fa0b588b74ab89e050e6d0a0b7073ba1d65aa3a3ee9f5d5e62e1fbfe3da55a472ecb3dad9cec3a6faf73b5d95b59bcefa2246caddcab3
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz) =
833a4516fc3b68fedb78feddd272d7f52e9af90aeebc3eb95aa4a86d69b4540e14ad73fdd913b7201c9663c2f136cfe3ec2e2d3b8d39cf1e99ec1c7711079740
diff --git a/update_package.sh b/update_package.sh
index 433aae1..ab68e3a 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u151-b12"
+ VERSION="aarch64-jdk8u162-b12"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u151-b12"
+ VERSION="aarch64-shenandoah-jdk8u162-b12"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit c30f1465ce3a04f59cd6d61b6acc1a77f6c3a1a5
Author: Adam Williamson <awilliam(a)redhat.com>
Date: Wed Mar 7 17:47:03 2018 -0800
Rebuild to fix GCC 8 mis-compilation
See
https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e8d0eb8..974ea7f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -2158,7 +2158,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Sun Feb 11 2018 Sandro Mani <manisandro(a)gmail.com> - 1:1.8.0.151-8.b12
+* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
+- Rebuild to fix GCC 8 mis-compilation
+ See
https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
+
+* Sun Feb 11 2018 Sandro Mani <manisandro(a)gmail.com> - 1:1.8.0.161-8.b14
- Rebuild (giflib)
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
1:1.8.0.161-7.b14
commit c4b23a01cc71acdeb2ca4e427b0613e4de1fa033
Author: Sandro Mani <manisandro(a)gmail.com>
Date: Sun Feb 11 22:40:04 2018 +0100
Rebuild (giflib)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4ecd695..e8d0eb8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -2158,6 +2158,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Feb 11 2018 Sandro Mani <manisandro(a)gmail.com> - 1:1.8.0.151-8.b12
+- Rebuild (giflib)
+
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
1:1.8.0.161-7.b14
- Escape macros in %%changelog
commit b2a0cbe0358740438a7074c2159bcada8713b47b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Fri Feb 9 09:04:45 2018 +0100
Escape macros in %changelog
Reference:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c6118b7..4ecd695 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -2158,6 +2158,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
1:1.8.0.161-7.b14
+- Escape macros in %%changelog
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.161-6.b14
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@@ -2173,7 +2176,7 @@ require "copy_jdk_configs.lua"
- Include Aarch64 build fixes post January 2018 CPU.
* Mon Jan 29 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-2.b14
-- Work around ppc64le gdb backtrace problem in %check.
+- Work around ppc64le gdb backtrace problem in %%check.
See RHBZ#1539664
* Wed Jan 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-1.b14
@@ -2228,7 +2231,7 @@ require "copy_jdk_configs.lua"
- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
- get rid of bin/* and lib/*, fixed rhbz1480777
-- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%{?1}, all expandable macros parameter preffixed by --
+- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%%{?1}, all expandable macros parameter preffixed by --
- get rid of generated filelists all except javafx and demos
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
@@ -2599,7 +2602,7 @@ renamed: jdk8-archivedJavadoc.patch -> 8154313.patch,
pr2991-rh1341258.patch ->
* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-8.b17
- used extracted lua scripts.
- now depnding on copy-jdk-configs
-- config files persisting in pre instead of %pretrans
+- config files persisting in pre instead of %%pretrans
* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
- changed way of generating the sources. As result:
commit 70ad565d08a736abd32e57538bba0dbb123aa990
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Feb 7 18:00:29 2018 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4a316d2..c6118b7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -2158,6 +2158,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.161-6.b14
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-5.b14
- Additional fix needed for FTBFS bug on aarch64.
Resolves RHBZ#1540242.
commit 23b41352378e2f1dc74ae621b2b203d50a9c12e0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Feb 1 13:58:42 2018 +0100
Gathered jerboaa's and adinn's fixes ot fix rhbz#1540242
diff --git a/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
b/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
new file mode 100644
index 0000000..a4f588c
--- /dev/null
+++ b/JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User adinn
+# Date 1516891647 0
+# Thu Jan 25 14:47:27 2018 +0000
+# Node ID e321560ac819c05274c59f46f5cc28ccfd4b38ec
+# Parent 77baeab90732e7cfb6eb1b754a768a197bca1ab5
+8195859: AArch64: vtableStubs gtest fails after 8174962
+Summary: gtest vtableStubs introduced by 8174962 fails on AArch64 with an invalid insn
encoding
+Reviewed-by: duke
+
+diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
++++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+@@ -1049,7 +1049,8 @@
+ ldr(method_result, Address(method_result, vtable_offset_in_bytes));
+ } else {
+ vtable_offset_in_bytes += vtable_index.as_constant() * wordSize;
+- ldr(method_result, Address(recv_klass, vtable_offset_in_bytes));
++ ldr(method_result,
++ form_address(rscratch1, recv_klass, vtable_offset_in_bytes));
+ }
+ }
+
diff --git a/JDK-8196136-correct-register-use-8195685.patch
b/JDK-8196136-correct-register-use-8195685.patch
new file mode 100644
index 0000000..9ad3b6f
--- /dev/null
+++ b/JDK-8196136-correct-register-use-8195685.patch
@@ -0,0 +1,61 @@
+# HG changeset patch
+# User adinn
+# Date 1516881392 0
+# Thu Jan 25 11:56:32 2018 +0000
+# Node ID 51d97ee431ff04f126c436b25dc75de7e0d2d4dd
+# Parent 2da4a52715d837b639edcfe37c66e5428c023abd
+8196136: AArch64: Correct register use in patch for JDK-8195685
+Summary: itable stubs must not use java argument registers as scratch registers
+Reviewed-by: aph
+
+diff --git a/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
b/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
+--- a/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
++++ b/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp
+@@ -64,8 +64,8 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
+
+ #ifndef PRODUCT
+ if (CountCompiledCalls) {
+- __ lea(r19, ExternalAddress((address)
SharedRuntime::nof_megamorphic_calls_addr()));
+- __ incrementw(Address(r19));
++ __ lea(r16, ExternalAddress((address)
SharedRuntime::nof_megamorphic_calls_addr()));
++ __ incrementw(Address(r16));
+ }
+ #endif
+
+@@ -74,13 +74,13 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
+
+ // get receiver klass
+ address npe_addr = __ pc();
+- __ load_klass(r19, j_rarg0);
++ __ load_klass(r16, j_rarg0);
+
+ #ifndef PRODUCT
+ if (DebugVtables) {
+ Label L;
+ // check offset vs vtable length
+- __ ldrw(rscratch1, Address(r19, InstanceKlass::vtable_length_offset() * wordSize));
++ __ ldrw(rscratch1, Address(r16, InstanceKlass::vtable_length_offset() * wordSize));
+ __ cmpw(rscratch1, vtable_index * vtableEntry::size());
+ __ br(Assembler::GT, L);
+ __ enter();
+@@ -92,7 +92,7 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
+ }
+ #endif // PRODUCT
+
+- __ lookup_virtual_method(r19, vtable_index, rmethod);
++ __ lookup_virtual_method(r16, vtable_index, rmethod);
+
+ if (DebugVtables) {
+ Label L;
+@@ -145,9 +145,9 @@ VtableStub* VtableStubs::create_itable_stub(int itable_index) {
+ // rscratch2: CompiledICHolder
+ // j_rarg0: Receiver
+
+- // Most registers are in use; we'll use r0, rmethod, r10, r11
++ // Most registers are in use; we'll use r16, rmethod, r10, r11
+ const Register recv_klass_reg = r10;
+- const Register holder_klass_reg = r0; // declaring interface klass (DECC)
++ const Register holder_klass_reg = r16; // declaring interface klass (DECC)
+ const Register resolved_klass_reg = rmethod; // resolved interface klass (REFC)
+ const Register temp_reg = r11;
+ const Register icholder_reg = rscratch2;
diff --git a/JDK-8196221-mistake-in-8195859.patch b/JDK-8196221-mistake-in-8195859.patch
new file mode 100644
index 0000000..d9975c9
--- /dev/null
+++ b/JDK-8196221-mistake-in-8195859.patch
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User adinn
+# Date 1516984701 0
+# Fri Jan 26 16:38:21 2018 +0000
+# Node ID 2c35f60ad26425a6d1dd1071e8a5adde79154fe3
+# Parent e2a7856edfbaccebd36bf02674e39b1a53867241
+8196221: AArch64: Mistake in committed patch for JDK-8195859
+Summary: The wrong patch was committed for JDK-8195859
+Reviewed-by: duke
+
+diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
++++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
+@@ -1050,7 +1050,7 @@
+ } else {
+ vtable_offset_in_bytes += vtable_index.as_constant() * wordSize;
+ ldr(method_result,
+- form_address(rscratch1, recv_klass, vtable_offset_in_bytes));
++ form_address(rscratch1, recv_klass, vtable_offset_in_bytes, 0));
+ }
+ }
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1613d26..4a316d2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1091,6 +1091,19 @@ Patch558: 8170328-pr3466-rh1498321.patch
# 8181810, PR3466, RH1498319: PPC64: Leverage extrdi for bitfield extract
Patch559: 8181810-pr3466-rh1498319.patch
+# Aarch64 build fixes after January 2018 CPU
+#
+# JDK-8195685 AArch64 cannot build with JDK-8174962 (already included in source tarball)
+# JDK-8196136 AArch64: Correct register use in patch for JDK-8195685
+# JDK-8195859 AArch64: vtableStubs gtest fails after 8174962
+# JDK-8196221 AArch64: Mistake in committed patch for JDK-8195859
+Patch570: JDK-8196136-correct-register-use-8195685.patch
+Patch571: JDK-8195859-vtableStubs-gtest-fails-after-8174962.patch
+Patch572: JDK-8196221-mistake-in-8195859.patch
+
+Patch573: rhbz_1540242.patch
+Patch574: rhbz_1540242_2.patch
+
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1503,6 +1516,17 @@ popd
%patch558
%patch559
+pushd openjdk/hotspot
+# Aarch64 build fixes after January 2018 CPU
+%patch570 -p1
+%patch571 -p1
+%patch572 -p1
+
+# Zero/AArch64 fix for RHBZ#1540242
+%patch573 -p1
+%patch574 -p1
+popd
+
# RPM-only fixes
%patch525
%patch539
@@ -1728,11 +1752,16 @@ do
done
# Make sure gdb can do a backtrace based on line numbers on libjvm.so
+# javaCalls.cpp:58 should map to:
+#
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/shar...
+# Using line number 1 might cause build problems. See:
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1539664
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1538767
gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
handle SIGSEGV pass nostop noprint
handle SIGILL pass nostop noprint
set breakpoint pending on
-break javaCalls.cpp:1
+break javaCalls.cpp:58
commands 1
backtrace
quit
@@ -2129,6 +2158,21 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-5.b14
+- Additional fix needed for FTBFS bug on aarch64.
+ Resolves RHBZ#1540242.
+
+* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-4.b14
+- Add fix for FTBFS on aarch64 and armv7hl.
+ Resolves RHBZ#1540242.
+
+* Tue Jan 30 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-3.b14
+- Include Aarch64 build fixes post January 2018 CPU.
+
+* Mon Jan 29 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-2.b14
+- Work around ppc64le gdb backtrace problem in %check.
+ See RHBZ#1539664
+
* Wed Jan 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-1.b14
- Fix FTBFS due to link failure in libfontmanager.so
- See RHBZ#1538767
diff --git a/rhbz_1540242.patch b/rhbz_1540242.patch
new file mode 100644
index 0000000..687d499
--- /dev/null
+++ b/rhbz_1540242.patch
@@ -0,0 +1,22 @@
+diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -698,6 +698,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+ void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -408,6 +408,7 @@
+
+ extern "C" {
+ int SpinPause() {
++ return 0;
+ }
+
+
diff --git a/rhbz_1540242_2.patch b/rhbz_1540242_2.patch
new file mode 100644
index 0000000..7842171
--- /dev/null
+++ b/rhbz_1540242_2.patch
@@ -0,0 +1,59 @@
+diff --git a/src/cpu/aarch64/vm/assembler_aarch64.hpp
b/src/cpu/aarch64/vm/assembler_aarch64.hpp
+--- a/src/cpu/aarch64/vm/assembler_aarch64.hpp
++++ b/src/cpu/aarch64/vm/assembler_aarch64.hpp
+@@ -2529,6 +2529,8 @@
+ virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
+ Register tmp,
+ int offset) {
++ ShouldNotCallThis();
++ return RegisterOrConstant();
+ }
+
+ // Stack overflow checking
+diff --git a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
++++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+@@ -209,6 +209,7 @@
+
+ Address LIR_Assembler::as_Address_hi(LIR_Address* addr) {
+ ShouldNotReachHere();
++ return Address();
+ }
+
+ Address LIR_Assembler::as_Address(LIR_Address* addr) {
+diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
b/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
+--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
++++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
+@@ -434,8 +434,8 @@
+ void mov(Register dst, Address a);
+
+ public:
+- int push(RegSet regs, Register stack) { if (regs.bits()) push(regs.bits(), stack); }
+- int pop(RegSet regs, Register stack) { if (regs.bits()) pop(regs.bits(), stack); }
++ void push(RegSet regs, Register stack) { if (regs.bits()) push(regs.bits(), stack); }
++ void pop(RegSet regs, Register stack) { if (regs.bits()) pop(regs.bits(), stack); }
+
+ // Push and pop everything that might be clobbered by a native
+ // runtime call except rscratch1 and rscratch2. (They are always
+diff --git a/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
b/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
+--- a/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
++++ b/src/cpu/aarch64/vm/nativeInst_aarch64.hpp
+@@ -220,6 +220,7 @@
+ else if (is_ldr_literal_at(instruction_address()))
+ return(addr_at(4));
+ assert(false, "Unknown instruction in NativeMovConstReg");
++ return NULL;
+ }
+
+ intptr_t data() const;
+diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+--- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
++++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
+@@ -472,6 +472,7 @@
+ err.report_and_die();
+
+ ShouldNotReachHere();
++ return true; // Mute compiler
+ }
+
+ void os::Linux::init_thread_fpu_state(void) {
commit bceb750dafd5bd3eeb57ee210887e4bcdc6edcd8
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Thu Jan 25 20:29:07 2018 +0100
Fix FTBFS due to link failure of libfontmanager.so
A recent change in redhat-rpm-config makes the
hardened builds link with -Wl,-z,defs.
See RHBZ#1535422 for the bug which introduced this
change in redhat-rpm-config.
That change, in turn, provokes a build failure due
to a missing lib not being listed when linking
libfontmanager.so.
Resolves RHBZ#1538767
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 99981a7..1613d26 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 0.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -1042,6 +1042,8 @@ Patch205: dont-add-unnecessary-debug-links.patch
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
+# 8196218, RH1538767: libfontmanager.so needs to link against headless awt library
+Patch561: rhbz_1538767_fix_linking.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1491,6 +1493,9 @@ sh %{SOURCE12}
%patch551
%patch553
%patch560
+pushd openjdk/jdk
+%patch561 -p1
+popd
# PPC64 updates
%patch556
@@ -2124,6 +2129,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-1.b14
+- Fix FTBFS due to link failure in libfontmanager.so
+- See RHBZ#1538767
+
* Wed Jan 24 2018 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
- updated to u161, rmeoved upstreamed patches
- removed patch555 8164293-pr3412-rh1459641.patch
diff --git a/rhbz_1538767_fix_linking.patch b/rhbz_1538767_fix_linking.patch
new file mode 100644
index 0000000..10c2cc2
--- /dev/null
+++ b/rhbz_1538767_fix_linking.patch
@@ -0,0 +1,21 @@
+diff --git a/make/lib/Awt2dLibraries.gmk b/make/lib/Awt2dLibraries.gmk
+--- a/make/lib/Awt2dLibraries.gmk
++++ b/make/lib/Awt2dLibraries.gmk
+@@ -921,7 +921,7 @@
+ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK)
\
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
+- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
++ LDFLAGS_SUFFIX_linux := -lawt_headless -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
+ LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm,
\
+ LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\
+ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
+@@ -938,7 +938,7 @@
+
+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
+
+-ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix))
++ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris aix linux))
+ $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_HEADLESS)
+ endif
+
commit f3dd986ac24d71d12a9074177f1a14b525914a20
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 24 15:47:58 2018 +0100
removed patch554 8175887-pr3415.patch
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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 50cc625..99981a7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1075,10 +1075,6 @@ Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
-# Patches upstream and appearing in 8u152
-# 8175887, PR3415: C1 value numbering handling of Unsafe.get*Volatile is incorrect
-Patch554: 8175887-pr3415.patch
-
# Patches upstream and appearing in 8u162
# 8181055, PR3394, RH1448880: PPC64: "mbind: Invalid argument" still seen after
8175813
Patch551: 8181055-pr3394-rh1448880.patch
@@ -1511,12 +1507,6 @@ sh %{SOURCE12}
%patch534
%endif
-# 8175887 was added to the Shenandoah HotSpot ahead of time
-%if %{use_shenandoah_hotspot}
-%else
-%patch554
-%endif
-
%patch1000
# Extract systemtap tapsets
@@ -2142,6 +2132,7 @@ require "copy_jdk_configs.lua"
- removed patch532 8162384-pr3122-rh1358661.patch
- removed patch535 8153711-pr3313-rh1284948.patch
- removed patch561 8075484-pr3473-rh1490713.patch
+- removed patch554 8175887-pr3415.patch
* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
- added ownership of etc dirs
commit a0fefe5e20a33ae34cfd293914cad35c5dd83513
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 24 15:07:19 2018 +0100
Removed upstreamed patches
diff --git a/8075484-pr3473-rh1490713.patch b/8075484-pr3473-rh1490713.patch
deleted file mode 100644
index f124e1a..0000000
--- a/8075484-pr3473-rh1490713.patch
+++ /dev/null
@@ -1,278 +0,0 @@
-# HG changeset patch
-# User vtewari
-# Date 1508189111 -3600
-# Mon Oct 16 22:25:11 2017 +0100
-# Node ID bcaa659478ccac2b2ad1a817e03cab777949775a
-# Parent 161fbe4c53ff12328565487e69a608e15f39bd49
-8075484, PR3473, RH1490713: SocketInputStream.socketRead0 can hang even with soTimeout
set
-Reviewed-by: chegar, dsamersoff, msheppar, clanger
-
-diff --git a/src/aix/native/java/net/aix_close.c b/src/aix/native/java/net/aix_close.c
---- openjdk/jdk/src/aix/native/java/net/aix_close.c
-+++ openjdk/jdk/src/aix/native/java/net/aix_close.c
-@@ -1,5 +1,6 @@
- /*
-- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2016, SAP SE 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
-@@ -328,6 +329,10 @@
- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
- }
-
-+int NET_NonBlockingRead(int s, void* buf, size_t len) {
-+ BLOCKING_IO_RETURN_INT(s, recv(s, buf, len, MSG_NONBLOCK));
-+}
-+
- int NET_ReadV(int s, const struct iovec * vector, int count) {
- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
- }
-@@ -429,8 +434,8 @@
- * Auto restarts with adjusted timeout if interrupted by
- * signal other than our wakeup signal.
- */
--int NET_Timeout(int s, long timeout) {
-- long prevtime = 0, newtime;
-+int NET_Timeout0(int s, long timeout, long currentTime) {
-+ long prevtime = currentTime, newtime;
- struct timeval t;
- fdEntry_t *fdEntry = getFdEntry(s);
-
-@@ -442,14 +447,6 @@
- return -1;
- }
-
-- /*
-- * Pick up current time as may need to adjust timeout
-- */
-- if (timeout > 0) {
-- gettimeofday(&t, NULL);
-- prevtime = t.tv_sec * 1000 + t.tv_usec / 1000;
-- }
--
- for(;;) {
- struct pollfd pfd;
- int rv;
-diff --git a/src/solaris/native/java/net/SocketInputStream.c
b/src/solaris/native/java/net/SocketInputStream.c
---- openjdk/jdk/src/solaris/native/java/net/SocketInputStream.c
-+++ openjdk/jdk/src/solaris/native/java/net/SocketInputStream.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 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
-@@ -52,6 +52,42 @@
- IO_fd_fdID = NET_GetFileDescriptorID(env);
- }
-
-+#if !defined(__solaris__)
-+static int NET_ReadWithTimeout(JNIEnv *env, int fd, char *bufP, int len, long timeout)
{
-+ int result = 0;
-+ long prevtime = NET_GetCurrentTime(), newtime;
-+ while (timeout > 0) {
-+ result = NET_TimeoutWithCurrentTime(fd, timeout, prevtime);
-+ if (result <= 0) {
-+ if (result == 0) {
-+ JNU_ThrowByName(env, "java/net/SocketTimeoutException",
"Read timed out");
-+ } else if (result == -1) {
-+ if (errno == EBADF) {
-+ JNU_ThrowByName(env, "java/net/SocketException",
"Socket closed");
-+ } else if (errno == ENOMEM) {
-+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap
allocation failed");
-+ } else {
-+ JNU_ThrowByNameWithMessageAndLastError
-+ (env, "java/net/SocketException",
"select/poll failed");
-+ }
-+ }
-+ return -1;
-+ }
-+ result = NET_NonBlockingRead(fd, bufP, len);
-+ if (result == -1 && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) {
-+ newtime = NET_GetCurrentTime();
-+ timeout -= newtime - prevtime;
-+ if (timeout > 0) {
-+ prevtime = newtime;
-+ }
-+ } else {
-+ break;
-+ }
-+ }
-+ return result;
-+}
-+#endif
-+
- /*
- * Class: java_net_SocketInputStream
- * Method: socketRead0
-@@ -99,6 +135,7 @@
- bufP = BUF;
- }
-
-+#if defined(__solaris__)
- if (timeout) {
- nread = NET_Timeout(fd, timeout);
- if (nread <= 0) {
-@@ -126,7 +163,19 @@
- }
-
- nread = NET_Read(fd, bufP, len);
--
-+#else
-+ if (timeout) {
-+ nread = NET_ReadWithTimeout(env, fd, bufP, len, timeout);
-+ if ((*env)->ExceptionCheck(env)) {
-+ if (bufP != BUF) {
-+ free(bufP);
-+ }
-+ return nread;
-+ }
-+ } else {
-+ nread = NET_Read(fd, bufP, len);
-+ }
-+#endif
- if (nread <= 0) {
- if (nread < 0) {
-
-diff --git a/src/solaris/native/java/net/bsd_close.c
b/src/solaris/native/java/net/bsd_close.c
---- openjdk/jdk/src/solaris/native/java/net/bsd_close.c
-+++ openjdk/jdk/src/solaris/native/java/net/bsd_close.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2001, 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
-@@ -292,6 +292,10 @@
- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
- }
-
-+int NET_NonBlockingRead(int s, void* buf, size_t len) {
-+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT));
-+}
-+
- int NET_ReadV(int s, const struct iovec * vector, int count) {
- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
- }
-@@ -344,8 +348,8 @@
- * Auto restarts with adjusted timeout if interrupted by
- * signal other than our wakeup signal.
- */
--int NET_Timeout(int s, long timeout) {
-- long prevtime = 0, newtime;
-+int NET_Timeout0(int s, long timeout, long currentTime) {
-+ long prevtime = currentTime, newtime;
- struct timeval t, *tp = &t;
- fd_set fds;
- fd_set* fdsp = NULL;
-@@ -366,9 +370,6 @@
- */
- if (timeout > 0) {
- /* Timed */
-- struct timeval now;
-- gettimeofday(&now, NULL);
-- prevtime = now.tv_sec * 1000 + now.tv_usec / 1000;
- t.tv_sec = timeout / 1000;
- t.tv_usec = (timeout % 1000) * 1000;
- } else if (timeout < 0) {
-diff --git a/src/solaris/native/java/net/linux_close.c
b/src/solaris/native/java/net/linux_close.c
---- openjdk/jdk/src/solaris/native/java/net/linux_close.c
-+++ openjdk/jdk/src/solaris/native/java/net/linux_close.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2001, 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
-@@ -273,6 +273,10 @@
- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
- }
-
-+int NET_NonBlockingRead(int s, void* buf, size_t len) {
-+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT) );
-+}
-+
- int NET_ReadV(int s, const struct iovec * vector, int count) {
- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
- }
-@@ -324,8 +328,8 @@
- * Auto restarts with adjusted timeout if interrupted by
- * signal other than our wakeup signal.
- */
--int NET_Timeout(int s, long timeout) {
-- long prevtime = 0, newtime;
-+int NET_Timeout0(int s, long timeout, long currentTime) {
-+ long prevtime = currentTime, newtime;
- struct timeval t;
- fdEntry_t *fdEntry = getFdEntry(s);
-
-@@ -337,14 +341,6 @@
- return -1;
- }
-
-- /*
-- * Pick up current time as may need to adjust timeout
-- */
-- if (timeout > 0) {
-- gettimeofday(&t, NULL);
-- prevtime = t.tv_sec * 1000 + t.tv_usec / 1000;
-- }
--
- for(;;) {
- struct pollfd pfd;
- int rv;
-diff --git a/src/solaris/native/java/net/net_util_md.c
b/src/solaris/native/java/net/net_util_md.c
---- openjdk/jdk/src/solaris/native/java/net/net_util_md.c
-+++ openjdk/jdk/src/solaris/native/java/net/net_util_md.c
-@@ -33,6 +33,7 @@
- #include <netdb.h>
- #include <stdlib.h>
- #include <dlfcn.h>
-+#include <sys/time.h>
-
- #ifndef _ALLBSD_SOURCE
- #include <values.h>
-@@ -1661,3 +1662,20 @@
-
- return timeout;
- }
-+
-+#if !defined(__solaris__)
-+long NET_GetCurrentTime() {
-+ struct timeval time;
-+ gettimeofday(&time, NULL);
-+ return (time.tv_sec * 1000 + time.tv_usec / 1000);
-+}
-+
-+int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime) {
-+ return NET_Timeout0(s, timeout, currentTime);
-+}
-+
-+int NET_Timeout(int s, long timeout) {
-+ long currentTime = (timeout > 0) ? NET_GetCurrentTime() : 0;
-+ return NET_Timeout0(s, timeout, currentTime);
-+}
-+#endif
-diff --git a/src/solaris/native/java/net/net_util_md.h
b/src/solaris/native/java/net/net_util_md.h
---- openjdk/jdk/src/solaris/native/java/net/net_util_md.h
-+++ openjdk/jdk/src/solaris/native/java/net/net_util_md.h
-@@ -47,9 +47,13 @@
- close subroutine does not return until the select call returns.
- ...
- */
--#if defined(__linux__) || defined(MACOSX) || defined (_AIX)
-+#if !defined(__solaris__)
- extern int NET_Timeout(int s, long timeout);
-+extern int NET_Timeout0(int s, long timeout, long currentTime);
- extern int NET_Read(int s, void* buf, size_t len);
-+extern int NET_NonBlockingRead(int s, void* buf, size_t len);
-+extern int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime);
-+extern long NET_GetCurrentTime();
- extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
- struct sockaddr *from, int *fromlen);
- extern int NET_ReadV(int s, const struct iovec * vector, int count);
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/8164293-pr3412-rh1459641.patch b/8164293-pr3412-rh1459641.patch
deleted file mode 100644
index 3b08f8b..0000000
--- a/8164293-pr3412-rh1459641.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-# HG changeset patch
-# User jcm
-# Date 1484137609 28800
-# Wed Jan 11 04:26:49 2017 -0800
-# Node ID 1faf7c17089922f6f72b580253725f2ecb6ba2f8
-# Parent 3d07e14d65bc223dbfe94be9224e4aa8c6e63762
-8164293, PR3412, RH1459641: HotSpot leaking memory in long-running requests
-Summary: Applied RMs in sweep_code_cache and related codes.
-Reviewed-by: kvn, thartmann
-
-diff --git a/src/share/vm/code/nmethod.cpp b/src/share/vm/code/nmethod.cpp
---- openjdk/hotspot/src/share/vm/code/nmethod.cpp
-+++ openjdk/hotspot/src/share/vm/code/nmethod.cpp
-@@ -1172,6 +1172,7 @@
- // Clear ICStubs of all compiled ICs
- void nmethod::clear_ic_stubs() {
- assert_locked_or_safepoint(CompiledIC_lock);
-+ ResourceMark rm;
- RelocIterator iter(this);
- while(iter.next()) {
- if (iter.type() == relocInfo::virtual_call_type) {
-diff --git a/src/share/vm/runtime/sweeper.cpp b/src/share/vm/runtime/sweeper.cpp
---- openjdk/hotspot/src/share/vm/runtime/sweeper.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/sweeper.cpp
-@@ -319,6 +319,7 @@
- }
-
- void NMethodSweeper::sweep_code_cache() {
-+ ResourceMark rm;
- Ticks sweep_start_counter = Ticks::now();
-
- _flushed_count = 0;
-@@ -626,6 +627,7 @@
- // state of the code cache if it's requested.
- void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) {
- if (PrintMethodFlushing) {
-+ ResourceMark rm;
- stringStream s;
- // Dump code cache state into a buffer before locking the tty,
- // because log_state() will use locks causing lock conflicts.
-@@ -643,6 +645,7 @@
- }
-
- if (LogCompilation && (xtty != NULL)) {
-+ ResourceMark rm;
- stringStream s;
- // Dump code cache state into a buffer before locking the tty,
- // because log_state() will use locks causing lock conflicts.
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/8175813-pr3394-rh1448880.patch b/8175813-pr3394-rh1448880.patch
deleted file mode 100644
index 6baf79c..0000000
--- a/8175813-pr3394-rh1448880.patch
+++ /dev/null
@@ -1,282 +0,0 @@
-# HG changeset patch
-# User gromero
-# Date 1495057954 14400
-# Wed May 17 17:52:34 2017 -0400
-# Node ID 74c81011375b5f432df155dcd7b3c9a668b45740
-# Parent 4d9931ebf8617b1b06adbc1beee6ed1b58661a8b
-8175813: PPC64: "mbind: Invalid argument" when -XX:+UseNUMA is used
-
-diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -2736,8 +2736,9 @@
- bool os::numa_topology_changed() { return false; }
-
- size_t os::numa_get_groups_num() {
-- int max_node = Linux::numa_max_node();
-- return max_node > 0 ? max_node + 1 : 1;
-+ // Return just the number of nodes in which it's possible to allocate memory
-+ // (in numa terminology, configured nodes).
-+ return Linux::numa_num_configured_nodes();
- }
-
- int os::numa_get_group_id() {
-@@ -2751,11 +2752,33 @@
- return 0;
- }
-
-+int os::Linux::get_existing_num_nodes() {
-+ size_t node;
-+ size_t highest_node_number = Linux::numa_max_node();
-+ int num_nodes = 0;
-+
-+ // Get the total number of nodes in the system including nodes without memory.
-+ for (node = 0; node <= highest_node_number; node++) {
-+ if (isnode_in_existing_nodes(node)) {
-+ num_nodes++;
-+ }
-+ }
-+ return num_nodes;
-+}
-+
- size_t os::numa_get_leaf_groups(int *ids, size_t size) {
-- for (size_t i = 0; i < size; i++) {
-- ids[i] = i;
-- }
-- return size;
-+ size_t highest_node_number = Linux::numa_max_node();
-+ size_t i = 0;
-+
-+ // Map all node ids in which is possible to allocate memory. Also nodes are
-+ // not always consecutively available, i.e. available from 0 to the highest
-+ // node number.
-+ for (size_t node = 0; node <= highest_node_number; node++) {
-+ if (Linux::isnode_in_configured_nodes(node)) {
-+ ids[i++] = node;
-+ }
-+ }
-+ return i;
- }
-
- bool os::get_page_info(char *start, page_info* info) {
-@@ -2825,18 +2848,28 @@
- libnuma_dlsym(handle,
"numa_node_to_cpus")));
- set_numa_max_node(CAST_TO_FN_PTR(numa_max_node_func_t,
- libnuma_dlsym(handle,
"numa_max_node")));
-+ set_numa_num_configured_nodes(CAST_TO_FN_PTR(numa_num_configured_nodes_func_t,
-+ libnuma_dlsym(handle,
"numa_num_configured_nodes")));
- set_numa_available(CAST_TO_FN_PTR(numa_available_func_t,
- libnuma_dlsym(handle,
"numa_available")));
- set_numa_tonode_memory(CAST_TO_FN_PTR(numa_tonode_memory_func_t,
- libnuma_dlsym(handle,
"numa_tonode_memory")));
- set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
-- libnuma_dlsym(handle,
"numa_interleave_memory")));
-+ libnuma_dlsym(handle,
"numa_interleave_memory")));
- set_numa_set_bind_policy(CAST_TO_FN_PTR(numa_set_bind_policy_func_t,
-- libnuma_dlsym(handle,
"numa_set_bind_policy")));
--
-+ libnuma_dlsym(handle,
"numa_set_bind_policy")));
-+ set_numa_bitmask_isbitset(CAST_TO_FN_PTR(numa_bitmask_isbitset_func_t,
-+ libnuma_dlsym(handle,
"numa_bitmask_isbitset")));
-+ set_numa_distance(CAST_TO_FN_PTR(numa_distance_func_t,
-+ libnuma_dlsym(handle,
"numa_distance")));
-
- if (numa_available() != -1) {
- set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle,
"numa_all_nodes"));
-+ set_numa_all_nodes_ptr((struct bitmask **)libnuma_dlsym(handle,
"numa_all_nodes_ptr"));
-+ set_numa_nodes_ptr((struct bitmask **)libnuma_dlsym(handle,
"numa_nodes_ptr"));
-+ // Create an index -> node mapping, since nodes are not always consecutive
-+ _nindex_to_node = new (ResourceObj::C_HEAP, mtInternal)
GrowableArray<int>(0, true);
-+ rebuild_nindex_to_node_map();
- // Create a cpu -> node mapping
- _cpu_to_node = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<int>(0,
true);
- rebuild_cpu_to_node_map();
-@@ -2847,6 +2880,17 @@
- return false;
- }
-
-+void os::Linux::rebuild_nindex_to_node_map() {
-+ int highest_node_number = Linux::numa_max_node();
-+
-+ nindex_to_node()->clear();
-+ for (int node = 0; node <= highest_node_number; node++) {
-+ if (Linux::isnode_in_existing_nodes(node)) {
-+ nindex_to_node()->append(node);
-+ }
-+ }
-+}
-+
- // rebuild_cpu_to_node_map() constructs a table mapping cpud id to node id.
- // The table is later used in get_node_by_cpu().
- void os::Linux::rebuild_cpu_to_node_map() {
-@@ -2866,16 +2910,46 @@
-
- cpu_to_node()->clear();
- cpu_to_node()->at_grow(cpu_num - 1);
-- size_t node_num = numa_get_groups_num();
--
-+
-+ size_t node_num = get_existing_num_nodes();
-+
-+ int distance = 0;
-+ int closest_distance = INT_MAX;
-+ int closest_node = 0;
- unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size, mtInternal);
- for (size_t i = 0; i < node_num; i++) {
-- if (numa_node_to_cpus(i, cpu_map, cpu_map_size * sizeof(unsigned long)) != -1) {
-+ // Check if node is configured (not a memory-less node). If it is not, find
-+ // the closest configured node.
-+ if (!isnode_in_configured_nodes(nindex_to_node()->at(i))) {
-+ closest_distance = INT_MAX;
-+ // Check distance from all remaining nodes in the system. Ignore distance
-+ // from itself and from another non-configured node.
-+ for (size_t m = 0; m < node_num; m++) {
-+ if (m != i && isnode_in_configured_nodes(nindex_to_node()->at(m))) {
-+ distance = numa_distance(nindex_to_node()->at(i),
nindex_to_node()->at(m));
-+ // If a closest node is found, update. There is always at least one
-+ // configured node in the system so there is always at least one node
-+ // close.
-+ if (distance != 0 && distance < closest_distance) {
-+ closest_distance = distance;
-+ closest_node = nindex_to_node()->at(m);
-+ }
-+ }
-+ }
-+ } else {
-+ // Current node is already a configured node.
-+ closest_node = nindex_to_node()->at(i);
-+ }
-+
-+ // Get cpus from the original node and map them to the closest node. If node
-+ // is a configured node (not a memory-less node), then original node and
-+ // closest node are the same.
-+ if (numa_node_to_cpus(nindex_to_node()->at(i), cpu_map, cpu_map_size *
sizeof(unsigned long)) != -1) {
- for (size_t j = 0; j < cpu_map_valid_size; j++) {
- if (cpu_map[j] != 0) {
- for (size_t k = 0; k < BitsPerCLong; k++) {
- if (cpu_map[j] & (1UL << k)) {
-- cpu_to_node()->at_put(j * BitsPerCLong + k, i);
-+ cpu_to_node()->at_put(j * BitsPerCLong + k, closest_node);
- }
- }
- }
-@@ -2893,14 +2967,20 @@
- }
-
- GrowableArray<int>* os::Linux::_cpu_to_node;
-+GrowableArray<int>* os::Linux::_nindex_to_node;
- os::Linux::sched_getcpu_func_t os::Linux::_sched_getcpu;
- os::Linux::numa_node_to_cpus_func_t os::Linux::_numa_node_to_cpus;
- os::Linux::numa_max_node_func_t os::Linux::_numa_max_node;
-+os::Linux::numa_num_configured_nodes_func_t os::Linux::_numa_num_configured_nodes;
- os::Linux::numa_available_func_t os::Linux::_numa_available;
- os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory;
- os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory;
- os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
-+os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
-+os::Linux::numa_distance_func_t os::Linux::_numa_distance;
- unsigned long* os::Linux::_numa_all_nodes;
-+struct bitmask* os::Linux::_numa_all_nodes_ptr;
-+struct bitmask* os::Linux::_numa_nodes_ptr;
-
- bool os::pd_uncommit_memory(char* addr, size_t size) {
- uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE,
-diff --git a/src/os/linux/vm/os_linux.hpp b/src/os/linux/vm/os_linux.hpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
-@@ -67,6 +67,7 @@
- static bool _supports_fast_thread_cpu_time;
-
- static GrowableArray<int>* _cpu_to_node;
-+ static GrowableArray<int>* _nindex_to_node;
-
- protected:
-
-@@ -94,7 +95,9 @@
- static void set_is_floating_stack() { _is_floating_stack = true; }
-
- static void rebuild_cpu_to_node_map();
-+ static void rebuild_nindex_to_node_map();
- static GrowableArray<int>* cpu_to_node() { return _cpu_to_node; }
-+ static GrowableArray<int>* nindex_to_node() { return _nindex_to_node; }
-
- static size_t find_large_page_size();
- static size_t setup_large_page_size();
-@@ -243,28 +246,41 @@
- typedef int (*sched_getcpu_func_t)(void);
- typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int
bufferlen);
- typedef int (*numa_max_node_func_t)(void);
-+ typedef int (*numa_num_configured_nodes_func_t)(void);
- typedef int (*numa_available_func_t)(void);
- typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
- typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long
*nodemask);
- typedef void (*numa_set_bind_policy_func_t)(int policy);
-+ typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
-+ typedef int (*numa_distance_func_t)(int node1, int node2);
-
- static sched_getcpu_func_t _sched_getcpu;
- static numa_node_to_cpus_func_t _numa_node_to_cpus;
- static numa_max_node_func_t _numa_max_node;
-+ static numa_num_configured_nodes_func_t _numa_num_configured_nodes;
- static numa_available_func_t _numa_available;
- static numa_tonode_memory_func_t _numa_tonode_memory;
- static numa_interleave_memory_func_t _numa_interleave_memory;
- static numa_set_bind_policy_func_t _numa_set_bind_policy;
-+ static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
-+ static numa_distance_func_t _numa_distance;
- static unsigned long* _numa_all_nodes;
-+ static struct bitmask* _numa_all_nodes_ptr;
-+ static struct bitmask* _numa_nodes_ptr;
-
- static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
- static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus
= func; }
- static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; }
-+ static void set_numa_num_configured_nodes(numa_num_configured_nodes_func_t func) {
_numa_num_configured_nodes = func; }
- static void set_numa_available(numa_available_func_t func) { _numa_available = func;
}
- static void set_numa_tonode_memory(numa_tonode_memory_func_t func) {
_numa_tonode_memory = func; }
- static void set_numa_interleave_memory(numa_interleave_memory_func_t func) {
_numa_interleave_memory = func; }
- static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) {
_numa_set_bind_policy = func; }
-+ static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) {
_numa_bitmask_isbitset = func; }
-+ static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
- static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
-+ static void set_numa_all_nodes_ptr(struct bitmask **ptr) { _numa_all_nodes_ptr = *ptr;
}
-+ static void set_numa_nodes_ptr(struct bitmask **ptr) { _numa_nodes_ptr = *ptr; }
- static int sched_getcpu_syscall(void);
- public:
- static int sched_getcpu() { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
-@@ -272,6 +288,9 @@
- return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) :
-1;
- }
- static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; }
-+ static int numa_num_configured_nodes() {
-+ return _numa_num_configured_nodes != NULL ? _numa_num_configured_nodes() : -1;
-+ }
- static int numa_available() { return _numa_available != NULL ? _numa_available() : -1;
}
- static int numa_tonode_memory(void *start, size_t size, int node) {
- return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
-@@ -286,7 +305,25 @@
- _numa_set_bind_policy(policy);
- }
- }
-+ static int numa_distance(int node1, int node2) {
-+ return _numa_distance != NULL ? _numa_distance(node1, node2) : -1;
-+ }
- static int get_node_by_cpu(int cpu_id);
-+ static int get_existing_num_nodes();
-+ // Check if numa node is configured (non-zero memory node).
-+ static bool isnode_in_configured_nodes(unsigned int n) {
-+ if (_numa_bitmask_isbitset != NULL && _numa_all_nodes_ptr != NULL) {
-+ return _numa_bitmask_isbitset(_numa_all_nodes_ptr, n);
-+ } else
-+ return 0;
-+ }
-+ // Check if numa node exists in the system (including zero memory nodes).
-+ static bool isnode_in_existing_nodes(unsigned int n) {
-+ if (_numa_bitmask_isbitset != NULL && _numa_nodes_ptr != NULL) {
-+ return _numa_bitmask_isbitset(_numa_nodes_ptr, n);
-+ } else
-+ return 0;
-+ }
- };
-
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 216a2eb..50cc625 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -963,7 +963,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1075,25 +1075,9 @@ Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.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
-# 8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
-Patch532: 8162384-pr3122-rh1358661.patch
-# 8173941, PR3326: SA does not work if executable is DSO
-Patch547: 8173941-pr3326.patch
-# 8175813, PR3394, RH1448880: PPC64: "mbind: Invalid argument" when
-XX:+UseNUMA is used
-Patch550: 8175813-pr3394-rh1448880.patch
# 8175887, PR3415: C1 value numbering handling of Unsafe.get*Volatile is incorrect
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
@@ -1507,16 +1491,10 @@ sh %{SOURCE12}
%patch523
%patch526
%patch528
-%patch532
-%patch535
%patch538
-%patch547
-%patch550
%patch551
%patch553
-%patch555
%patch560
-%patch561
# PPC64 updates
%patch556
@@ -2156,7 +2134,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Wed Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
+* Wed Jan 24 2018 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
+- updated to u161, rmeoved upstreamed patches
+- removed patch555 8164293-pr3412-rh1459641.patch
+- removed patch550 8175813-pr3394-rh1448880.patch
+- removed patch547 8173941-pr3326.patch
+- removed patch532 8162384-pr3122-rh1358661.patch
+- removed patch535 8153711-pr3313-rh1284948.patch
+- removed patch561 8075484-pr3473-rh1490713.patch
* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
- added ownership of etc dirs
commit 347e967ec7d60c6628be7a49d8cae5f73a45ddd8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 24 13:44:30 2018 +0100
updated to u161, patces cleanup will follow
diff --git a/.gitignore b/.gitignore
index d62617b..405bc66 100644
--- a/.gitignore
+++ b/.gitignore
@@ -96,3 +96,13 @@
/aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz
/systemtap-tapset-3.6.0pre02.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u161-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b12.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u151-b13.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b13.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u152-b16.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u152-b16.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u161-b13.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b13.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u161-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz
diff --git a/8145913-pr3466-rh1498309.patch b/8145913-pr3466-rh1498309.patch
index 38b6771..b4394f5 100644
--- a/8145913-pr3466-rh1498309.patch
+++ b/8145913-pr3466-rh1498309.patch
@@ -10,7 +10,7 @@ Reviewed-by: aph, goetz
diff --git a/src/cpu/ppc/vm/assembler_ppc.hpp b/src/cpu/ppc/vm/assembler_ppc.hpp
--- openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
-@@ -1179,6 +1179,8 @@
+@@ -1180,6 +1180,8 @@
inline void mullw_( Register d, Register a, Register b);
inline void mulhw( Register d, Register a, Register b);
inline void mulhw_( Register d, Register a, Register b);
@@ -306,10 +306,11 @@ diff --git a/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
b/src/cpu/ppc/vm/sharedRuntime
diff --git a/src/cpu/ppc/vm/stubGenerator_ppc.cpp b/src/cpu/ppc/vm/stubGenerator_ppc.cpp
--- openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
-@@ -2094,6 +2094,14 @@
+@@ -2518,6 +2518,15 @@
generate_safefetch("SafeFetchN", sizeof(intptr_t),
&StubRoutines::_safefetchN_entry,
&StubRoutines::_safefetchN_fault_pc,
&StubRoutines::_safefetchN_continuation_pc);
++
+ if (UseMontgomeryMultiplyIntrinsic) {
+ StubRoutines::_montgomeryMultiply
+ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
@@ -318,9 +319,9 @@ diff --git a/src/cpu/ppc/vm/stubGenerator_ppc.cpp
b/src/cpu/ppc/vm/stubGenerator
+ StubRoutines::_montgomerySquare
+ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
+ }
- }
- public:
+ if (UseAESIntrinsics) {
+ StubRoutines::_aescrypt_encryptBlock = generate_aescrypt_encryptBlock();
diff --git a/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
b/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
--- openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+++ openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
@@ -352,7 +353,7 @@ diff --git a/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
b/src/cpu/ppc/vm/templat
diff --git a/src/cpu/ppc/vm/vm_version_ppc.cpp b/src/cpu/ppc/vm/vm_version_ppc.cpp
--- openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
-@@ -177,6 +177,12 @@
+@@ -201,6 +201,12 @@
FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
}
@@ -368,7 +369,7 @@ diff --git a/src/cpu/ppc/vm/vm_version_ppc.cpp
b/src/cpu/ppc/vm/vm_version_ppc.c
diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp
--- openjdk/hotspot/src/share/vm/opto/library_call.cpp
+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp
-@@ -6031,11 +6031,21 @@
+@@ -6205,11 +6205,21 @@
Node* n_start = array_element_address(n, intcon(0), n_elem);
Node* m_start = array_element_address(m, intcon(0), m_elem);
@@ -395,7 +396,7 @@ diff --git a/src/share/vm/opto/library_call.cpp
b/src/share/vm/opto/library_call
set_result(m);
}
-@@ -6085,11 +6095,22 @@
+@@ -6263,11 +6273,22 @@
Node* n_start = array_element_address(n, intcon(0), n_elem);
Node* m_start = array_element_address(m, intcon(0), m_elem);
@@ -426,7 +427,7 @@ diff --git a/src/share/vm/opto/library_call.cpp
b/src/share/vm/opto/library_call
diff --git a/src/share/vm/opto/runtime.cpp b/src/share/vm/opto/runtime.cpp
--- openjdk/hotspot/src/share/vm/opto/runtime.cpp
+++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
-@@ -1005,12 +1005,20 @@
+@@ -1031,12 +1031,20 @@
// create input type (domain)
int num_args = 7;
int argcnt = num_args;
@@ -448,7 +449,7 @@ diff --git a/src/share/vm/opto/runtime.cpp
b/src/share/vm/opto/runtime.cpp
fields[argp++] = TypeLong::LONG; // inv
fields[argp++] = Type::HALF;
fields[argp++] = TypePtr::NOTNULL; // result
-@@ -1029,11 +1037,19 @@
+@@ -1055,11 +1063,19 @@
// create input type (domain)
int num_args = 6;
int argcnt = num_args;
diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index 879d462..201a220 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -99,6 +99,7 @@ if [ ! -d ${LCMS_SRC} ]; then
fi
# temporary change to move bundled LCMS
if [ ! true ]; then
+rm -vf ${LCMS_SRC}/cmsalpha.c
rm -vf ${LCMS_SRC}/cmscam02.c
rm -vf ${LCMS_SRC}/cmscgats.c
rm -vf ${LCMS_SRC}/cmscnvrt.c
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 16fb9a0..216a2eb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,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-jdk8u151-b12
+%global revision aarch64-jdk8u161-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
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
@@ -2156,6 +2156,8 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
+
* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
- added ownership of etc dirs
- sysconfdir/.java/.systemPrefs
diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch
index 7d6f314..538468a 100644
--- a/java-atk-wrapper-security.patch
+++ b/java-atk-wrapper-security.patch
@@ -1,9 +1,9 @@
--- jdk8/jdk/src/share/lib/security/java.security-linux.orig
+++ jdk8/jdk/src/share/lib/security/java.security-linux
-@@ -211,7 +211,9 @@
- jdk.internal.,\
+@@ -223,7 +223,9 @@
jdk.nashorn.internal.,\
jdk.nashorn.tools.,\
+ jdk.xml.internal.,\
- com.sun.activation.registries.
+ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
@@ -11,10 +11,10 @@
#
# List of comma-separated packages that start with or equal this string
-@@ -258,7 +260,9 @@
- jdk.internal.,\
+@@ -273,7 +275,9 @@
jdk.nashorn.internal.,\
jdk.nashorn.tools.,\
+ jdk.xml.internal.,\
- com.sun.activation.registries.
+ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
@@ -22,4 +22,3 @@
#
# Determines whether this properties file can be appended to
-
diff --git a/pr1834-rh1022017.patch b/pr1834-rh1022017.patch
index 4983884..8165340 100644
--- a/pr1834-rh1022017.patch
+++ b/pr1834-rh1022017.patch
@@ -1,6 +1,6 @@
-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
+diff --git a/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
b/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/EllipticCurvesExtension.java
@@ -168,20 +168,10 @@
"contains no supported elliptic curves");
}
diff --git a/rh1163501.patch b/rh1163501.patch
index 99ff950..d9cbac4 100644
--- a/rh1163501.patch
+++ b/rh1163501.patch
@@ -1,26 +1,3 @@
-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 {
-
-- 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");
- }
- }
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
@@ -31,43 +8,28 @@ diff --git
a/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
* 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 @@
+@@ -61,13 +62,13 @@
private static void checkKeySize(int keysize)
throws InvalidParameterException {
-- if ((keysize != 2048) &&
-+ if ((keysize != 2048) && (keysize != 4096) &&
- ((keysize < 512) || (keysize > 1024) || (keysize % 64 != 0))) {
+- boolean supported = ((keysize == 2048) || (keysize == 3072) ||
++ boolean supported = ((keysize == 2048) || (keysize == 3072) || (keysize == 4096)
||
+ ((keysize >= 512) && (keysize <= 1024) && ((keysize
& 0x3F) == 0)));
+
+ if (!supported) {
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. " +
+- "from 512 to 1024 (inclusive), or 2048, 3072. " +
++ "from 512 to 1024 (inclusive), or 2048, 3072, 4096. " +
"The specific key size " + keysize + " is not
supported");
}
}
-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
-- if ((keySize != 2048) &&
-+ if ((keySize != 2048) && (keySize != 4096) &&
- ((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. " +
- "The specific key size " +
- keySize + " is not supported");
- }
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) 2005, 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.
*
@@ -101,3 +63,4 @@ diff --git
a/test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java b/t
System.out.println("OK");
}
+
diff --git a/sources b/sources
index 6d132ae..def4c19 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz) =
ef8bf4485755ec1c6d229a75dff65cfa17d74b0405f047f7f456bf2004feb985e5558eb66f9ff761aad45b945b0cd47647b41e0be13eb8096ab6e10fae2f47cc
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz) =
d43fc639ab2a784c4914e32459715bc1eaa891c7a2ee05b911f4955e281cb4b4533e170bbfc593942ee793768526329a3955e592bf4a0be691e56dd9f2f89eca
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u161-b14.tar.xz) =
f60836acdf2a38961e1f8299b4c5274f0201a0e365c37f107e8793640f691e6fef9a03daa0172aa192eddab6db86e9ea904aa0da2abd4d5a75aa147af59d715e
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u161-b14.tar.xz) =
da15dbe6c02233d5c172cf862090f335e499fde97dd3a93cd15d6011b7f27864b1af3c58d3677bcf2aef763c3ca60bc97c2223990133ec4d073e5a93fb969053
commit ec9d83a495927d739d43bede5119cc1dfb655fbb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Dec 11 11:09:27 2017 +0100
Bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fd7d497..16fb9a0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -937,7 +937,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
commit f821049a5f843a00742c4fee73e6b50adf5aa051
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Dec 11 11:05:00 2017 +0100
Fixed misspelled Mond to Mon
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3abb472..fd7d497 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -2156,7 +2156,7 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mond Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
+* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
- added ownership of etc dirs
- sysconfdir/.java/.systemPrefs
- sysconfdir/.java
commit c372da3442156591a70aa84f75df9eaef52f484e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Nov 13 12:01:04 2017 +0100
added ownership of etc dirs: sysconfdir/.java/.systemPrefs, sysconfdir/.java
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c2c17b1..3abb472 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -533,6 +533,8 @@ exit 0
%define files_jre_headless() %{expand:
%defattr(-,root,root,-)
+%dir %{_sysconfdir}/.java/.systemPrefs
+%dir %{_sysconfdir}/.java
%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
@@ -2154,6 +2156,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mond Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
+- added ownership of etc dirs
+- sysconfdir/.java/.systemPrefs
+- sysconfdir/.java
+
* Wed Oct 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
- updated to aarch64-jdk8u151-b12 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u151-b12 (from aarch64-port/jdk8u-shenandoah) of
hotspot
commit f3c8c1d21380a07396595cf6ad5eaea6ad209ce6
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Oct 27 09:26:52 2017 +0200
COsmetic change
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c089e51..c2c17b1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -457,7 +457,7 @@ for X in %{origin} %{javaver} ; do
--install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch} \\
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
commit 5d847512a3b55f72b8ce5a39dd71d8a322d272fa
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Oct 25 16:10:28 2017 +0200
updated to aarch64-jdk8u151-b12 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u151-b12 (from aarch64-port/jdk8u-shenandoah) of
hotspot
- used aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz as new sources
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz as new
sources for hotspot
- tapset updated to 3.6pre02
- policies adapted to new limited/unlimited schmea
- above acomapnied by c-j-c 3.3
- alligned patches and added PPC ones (thanx to gnu_andrew)
- added patch209: 8035496-hotspot.patch
- added patch210: suse_linuxfilestore.patc
diff --git a/.gitignore b/.gitignore
index 97d782d..d62617b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -93,3 +93,6 @@
/aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz
+/systemtap-tapset-3.6.0pre02.tar.xz
diff --git a/8035496-hotspot.patch b/8035496-hotspot.patch
new file mode 100644
index 0000000..426bdbe
--- /dev/null
+++ b/8035496-hotspot.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# User bdelsart
+# Date 1508481469 -28800
+# Fri Oct 20 14:37:49 2017 +0800
+# Node ID 111ed1a4719008b83bf427ae16bbeac2a7a516bc
+# Parent 471de666658d7ec14c5d3f97076fb95f70dd6ffa
+8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for
vm/gc/concurrent/lp50yp10rp70mr30st0
+Summary: release_store used when registering a PerRegionTable. Also reviewed-by:
vitalyd(a)gmail.com
+Reviewed-by: jmasa, tschatzl, brutisso
+
+diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+@@ -514,7 +514,15 @@
+
+ PerRegionTable* first_prt = _fine_grain_regions[ind];
+ prt->set_collision_list_next(first_prt);
+- _fine_grain_regions[ind] = prt;
++ // The assignment into _fine_grain_regions allows the prt to
++ // start being used concurrently. In addition to
++ // collision_list_next which must be visible (else concurrent
++ // parsing of the list, if any, may fail to see other entries),
++ // the content of the prt must be visible (else for instance
++ // some mark bits may not yet seem cleared or a 'later' update
++ // performed by a concurrent thread could be undone when the
++ // zeroing becomes visible). This requires store ordering.
++ OrderAccess::release_store_ptr((volatile
PerRegionTable*)&_fine_grain_regions[ind], prt);
+ _n_fine_entries++;
+
+ if (G1HRRSUseSparseTable) {
diff --git a/8075484-pr3473-rh1490713.patch b/8075484-pr3473-rh1490713.patch
new file mode 100644
index 0000000..f124e1a
--- /dev/null
+++ b/8075484-pr3473-rh1490713.patch
@@ -0,0 +1,278 @@
+# HG changeset patch
+# User vtewari
+# Date 1508189111 -3600
+# Mon Oct 16 22:25:11 2017 +0100
+# Node ID bcaa659478ccac2b2ad1a817e03cab777949775a
+# Parent 161fbe4c53ff12328565487e69a608e15f39bd49
+8075484, PR3473, RH1490713: SocketInputStream.socketRead0 can hang even with soTimeout
set
+Reviewed-by: chegar, dsamersoff, msheppar, clanger
+
+diff --git a/src/aix/native/java/net/aix_close.c b/src/aix/native/java/net/aix_close.c
+--- openjdk/jdk/src/aix/native/java/net/aix_close.c
++++ openjdk/jdk/src/aix/native/java/net/aix_close.c
+@@ -1,5 +1,6 @@
+ /*
+- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2016, SAP SE 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
+@@ -328,6 +329,10 @@
+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
+ }
+
++int NET_NonBlockingRead(int s, void* buf, size_t len) {
++ BLOCKING_IO_RETURN_INT(s, recv(s, buf, len, MSG_NONBLOCK));
++}
++
+ int NET_ReadV(int s, const struct iovec * vector, int count) {
+ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
+ }
+@@ -429,8 +434,8 @@
+ * Auto restarts with adjusted timeout if interrupted by
+ * signal other than our wakeup signal.
+ */
+-int NET_Timeout(int s, long timeout) {
+- long prevtime = 0, newtime;
++int NET_Timeout0(int s, long timeout, long currentTime) {
++ long prevtime = currentTime, newtime;
+ struct timeval t;
+ fdEntry_t *fdEntry = getFdEntry(s);
+
+@@ -442,14 +447,6 @@
+ return -1;
+ }
+
+- /*
+- * Pick up current time as may need to adjust timeout
+- */
+- if (timeout > 0) {
+- gettimeofday(&t, NULL);
+- prevtime = t.tv_sec * 1000 + t.tv_usec / 1000;
+- }
+-
+ for(;;) {
+ struct pollfd pfd;
+ int rv;
+diff --git a/src/solaris/native/java/net/SocketInputStream.c
b/src/solaris/native/java/net/SocketInputStream.c
+--- openjdk/jdk/src/solaris/native/java/net/SocketInputStream.c
++++ openjdk/jdk/src/solaris/native/java/net/SocketInputStream.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 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
+@@ -52,6 +52,42 @@
+ IO_fd_fdID = NET_GetFileDescriptorID(env);
+ }
+
++#if !defined(__solaris__)
++static int NET_ReadWithTimeout(JNIEnv *env, int fd, char *bufP, int len, long timeout)
{
++ int result = 0;
++ long prevtime = NET_GetCurrentTime(), newtime;
++ while (timeout > 0) {
++ result = NET_TimeoutWithCurrentTime(fd, timeout, prevtime);
++ if (result <= 0) {
++ if (result == 0) {
++ JNU_ThrowByName(env, "java/net/SocketTimeoutException",
"Read timed out");
++ } else if (result == -1) {
++ if (errno == EBADF) {
++ JNU_ThrowByName(env, "java/net/SocketException",
"Socket closed");
++ } else if (errno == ENOMEM) {
++ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap
allocation failed");
++ } else {
++ JNU_ThrowByNameWithMessageAndLastError
++ (env, "java/net/SocketException",
"select/poll failed");
++ }
++ }
++ return -1;
++ }
++ result = NET_NonBlockingRead(fd, bufP, len);
++ if (result == -1 && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) {
++ newtime = NET_GetCurrentTime();
++ timeout -= newtime - prevtime;
++ if (timeout > 0) {
++ prevtime = newtime;
++ }
++ } else {
++ break;
++ }
++ }
++ return result;
++}
++#endif
++
+ /*
+ * Class: java_net_SocketInputStream
+ * Method: socketRead0
+@@ -99,6 +135,7 @@
+ bufP = BUF;
+ }
+
++#if defined(__solaris__)
+ if (timeout) {
+ nread = NET_Timeout(fd, timeout);
+ if (nread <= 0) {
+@@ -126,7 +163,19 @@
+ }
+
+ nread = NET_Read(fd, bufP, len);
+-
++#else
++ if (timeout) {
++ nread = NET_ReadWithTimeout(env, fd, bufP, len, timeout);
++ if ((*env)->ExceptionCheck(env)) {
++ if (bufP != BUF) {
++ free(bufP);
++ }
++ return nread;
++ }
++ } else {
++ nread = NET_Read(fd, bufP, len);
++ }
++#endif
+ if (nread <= 0) {
+ if (nread < 0) {
+
+diff --git a/src/solaris/native/java/net/bsd_close.c
b/src/solaris/native/java/net/bsd_close.c
+--- openjdk/jdk/src/solaris/native/java/net/bsd_close.c
++++ openjdk/jdk/src/solaris/native/java/net/bsd_close.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2001, 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
+@@ -292,6 +292,10 @@
+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
+ }
+
++int NET_NonBlockingRead(int s, void* buf, size_t len) {
++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT));
++}
++
+ int NET_ReadV(int s, const struct iovec * vector, int count) {
+ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
+ }
+@@ -344,8 +348,8 @@
+ * Auto restarts with adjusted timeout if interrupted by
+ * signal other than our wakeup signal.
+ */
+-int NET_Timeout(int s, long timeout) {
+- long prevtime = 0, newtime;
++int NET_Timeout0(int s, long timeout, long currentTime) {
++ long prevtime = currentTime, newtime;
+ struct timeval t, *tp = &t;
+ fd_set fds;
+ fd_set* fdsp = NULL;
+@@ -366,9 +370,6 @@
+ */
+ if (timeout > 0) {
+ /* Timed */
+- struct timeval now;
+- gettimeofday(&now, NULL);
+- prevtime = now.tv_sec * 1000 + now.tv_usec / 1000;
+ t.tv_sec = timeout / 1000;
+ t.tv_usec = (timeout % 1000) * 1000;
+ } else if (timeout < 0) {
+diff --git a/src/solaris/native/java/net/linux_close.c
b/src/solaris/native/java/net/linux_close.c
+--- openjdk/jdk/src/solaris/native/java/net/linux_close.c
++++ openjdk/jdk/src/solaris/native/java/net/linux_close.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2001, 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
+@@ -273,6 +273,10 @@
+ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
+ }
+
++int NET_NonBlockingRead(int s, void* buf, size_t len) {
++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT) );
++}
++
+ int NET_ReadV(int s, const struct iovec * vector, int count) {
+ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
+ }
+@@ -324,8 +328,8 @@
+ * Auto restarts with adjusted timeout if interrupted by
+ * signal other than our wakeup signal.
+ */
+-int NET_Timeout(int s, long timeout) {
+- long prevtime = 0, newtime;
++int NET_Timeout0(int s, long timeout, long currentTime) {
++ long prevtime = currentTime, newtime;
+ struct timeval t;
+ fdEntry_t *fdEntry = getFdEntry(s);
+
+@@ -337,14 +341,6 @@
+ return -1;
+ }
+
+- /*
+- * Pick up current time as may need to adjust timeout
+- */
+- if (timeout > 0) {
+- gettimeofday(&t, NULL);
+- prevtime = t.tv_sec * 1000 + t.tv_usec / 1000;
+- }
+-
+ for(;;) {
+ struct pollfd pfd;
+ int rv;
+diff --git a/src/solaris/native/java/net/net_util_md.c
b/src/solaris/native/java/net/net_util_md.c
+--- openjdk/jdk/src/solaris/native/java/net/net_util_md.c
++++ openjdk/jdk/src/solaris/native/java/net/net_util_md.c
+@@ -33,6 +33,7 @@
+ #include <netdb.h>
+ #include <stdlib.h>
+ #include <dlfcn.h>
++#include <sys/time.h>
+
+ #ifndef _ALLBSD_SOURCE
+ #include <values.h>
+@@ -1661,3 +1662,20 @@
+
+ return timeout;
+ }
++
++#if !defined(__solaris__)
++long NET_GetCurrentTime() {
++ struct timeval time;
++ gettimeofday(&time, NULL);
++ return (time.tv_sec * 1000 + time.tv_usec / 1000);
++}
++
++int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime) {
++ return NET_Timeout0(s, timeout, currentTime);
++}
++
++int NET_Timeout(int s, long timeout) {
++ long currentTime = (timeout > 0) ? NET_GetCurrentTime() : 0;
++ return NET_Timeout0(s, timeout, currentTime);
++}
++#endif
+diff --git a/src/solaris/native/java/net/net_util_md.h
b/src/solaris/native/java/net/net_util_md.h
+--- openjdk/jdk/src/solaris/native/java/net/net_util_md.h
++++ openjdk/jdk/src/solaris/native/java/net/net_util_md.h
+@@ -47,9 +47,13 @@
+ close subroutine does not return until the select call returns.
+ ...
+ */
+-#if defined(__linux__) || defined(MACOSX) || defined (_AIX)
++#if !defined(__solaris__)
+ extern int NET_Timeout(int s, long timeout);
++extern int NET_Timeout0(int s, long timeout, long currentTime);
+ extern int NET_Read(int s, void* buf, size_t len);
++extern int NET_NonBlockingRead(int s, void* buf, size_t len);
++extern int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime);
++extern long NET_GetCurrentTime();
+ extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
+ struct sockaddr *from, int *fromlen);
+ extern int NET_ReadV(int s, const struct iovec * vector, int count);
diff --git a/8145913-pr3466-rh1498309.patch b/8145913-pr3466-rh1498309.patch
new file mode 100644
index 0000000..38b6771
--- /dev/null
+++ b/8145913-pr3466-rh1498309.patch
@@ -0,0 +1,471 @@
+# HG changeset patch
+# User mdoerr
+# Date 1507750779 -3600
+# Wed Oct 11 20:39:39 2017 +0100
+# Node ID 92f0dbe76a13992cc27188e0f68e4b1771c7004a
+# Parent 542c122b1d7d30c29189565248074aa28f21ae58
+8145913, PR3466, RH1498309: PPC64: add Montgomery multiply intrinsic
+Reviewed-by: aph, goetz
+
+diff --git a/src/cpu/ppc/vm/assembler_ppc.hpp b/src/cpu/ppc/vm/assembler_ppc.hpp
+--- openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+@@ -1179,6 +1179,8 @@
+ inline void mullw_( Register d, Register a, Register b);
+ inline void mulhw( Register d, Register a, Register b);
+ inline void mulhw_( Register d, Register a, Register b);
++ inline void mulhwu( Register d, Register a, Register b);
++ inline void mulhwu_(Register d, Register a, Register b);
+ inline void mulhd( Register d, Register a, Register b);
+ inline void mulhd_( Register d, Register a, Register b);
+ inline void mulhdu( Register d, Register a, Register b);
+diff --git a/src/cpu/ppc/vm/assembler_ppc.inline.hpp
b/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+--- openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
++++ openjdk/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+@@ -109,6 +109,8 @@
+ inline void Assembler::mullw_( Register d, Register a, Register b) {
emit_int32(MULLW_OPCODE | rt(d) | ra(a) | rb(b) | oe(0) | rc(1)); }
+ inline void Assembler::mulhw( Register d, Register a, Register b) {
emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
+ inline void Assembler::mulhw_( Register d, Register a, Register b) {
emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
++inline void Assembler::mulhwu( Register d, Register a, Register b) {
emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
++inline void Assembler::mulhwu_(Register d, Register a, Register b) {
emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
+ inline void Assembler::mulhd( Register d, Register a, Register b) {
emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
+ inline void Assembler::mulhd_( Register d, Register a, Register b) {
emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
+ inline void Assembler::mulhdu( Register d, Register a, Register b) {
emit_int32(MULHDU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
+diff --git a/src/cpu/ppc/vm/c2_init_ppc.cpp b/src/cpu/ppc/vm/c2_init_ppc.cpp
+--- openjdk/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
+@@ -45,4 +45,10 @@
+ FLAG_SET_ERGO(bool, InsertEndGroupPPC64, true);
+ }
+ }
++
++ if (OptimizeFill) {
++ warning("OptimizeFill is not supported on this CPU.");
++ FLAG_SET_DEFAULT(OptimizeFill, false);
++ }
++
+ }
+diff --git a/src/cpu/ppc/vm/sharedRuntime_ppc.cpp b/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
+--- openjdk/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
+@@ -42,6 +42,8 @@
+ #include "opto/runtime.hpp"
+ #endif
+
++#include <alloca.h>
++
+ #define __ masm->
+
+ #ifdef PRODUCT
+@@ -3269,3 +3271,245 @@
+ return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete,
frame_size_in_bytes/wordSize,
+ oop_maps, true);
+ }
++
++
++//------------------------------Montgomery multiplication------------------------
++//
++
++// Subtract 0:b from carry:a. Return carry.
++static unsigned long
++sub(unsigned long a[], unsigned long b[], unsigned long carry, long len) {
++ long i = 0;
++ unsigned long tmp, tmp2;
++ __asm__ __volatile__ (
++ "subfc %[tmp], %[tmp], %[tmp] \n" // pre-set CA
++ "mtctr %[len] \n"
++ "0: \n"
++ "ldx %[tmp], %[i], %[a] \n"
++ "ldx %[tmp2], %[i], %[b] \n"
++ "subfe %[tmp], %[tmp2], %[tmp] \n" // subtract extended
++ "stdx %[tmp], %[i], %[a] \n"
++ "addi %[i], %[i], 8 \n"
++ "bdnz 0b \n"
++ "addme %[tmp], %[carry] \n" // carry + CA - 1
++ : [i]"+b"(i), [tmp]"=&r"(tmp),
[tmp2]"=&r"(tmp2)
++ : [a]"r"(a), [b]"r"(b), [carry]"r"(carry),
[len]"r"(len)
++ : "ctr", "xer", "memory"
++ );
++ return tmp;
++}
++
++// Multiply (unsigned) Long A by Long B, accumulating the double-
++// length result into the accumulator formed of T0, T1, and T2.
++inline void MACC(unsigned long A, unsigned long B, unsigned long &T0, unsigned long
&T1, unsigned long &T2) {
++ unsigned long hi, lo;
++ __asm__ __volatile__ (
++ "mulld %[lo], %[A], %[B] \n"
++ "mulhdu %[hi], %[A], %[B] \n"
++ "addc %[T0], %[T0], %[lo] \n"
++ "adde %[T1], %[T1], %[hi] \n"
++ "addze %[T2], %[T2] \n"
++ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0),
[T1]"+r"(T1), [T2]"+r"(T2)
++ : [A]"r"(A), [B]"r"(B)
++ : "xer"
++ );
++}
++
++// As above, but add twice the double-length result into the
++// accumulator.
++inline void MACC2(unsigned long A, unsigned long B, unsigned long &T0, unsigned long
&T1, unsigned long &T2) {
++ unsigned long hi, lo;
++ __asm__ __volatile__ (
++ "mulld %[lo], %[A], %[B] \n"
++ "mulhdu %[hi], %[A], %[B] \n"
++ "addc %[T0], %[T0], %[lo] \n"
++ "adde %[T1], %[T1], %[hi] \n"
++ "addze %[T2], %[T2] \n"
++ "addc %[T0], %[T0], %[lo] \n"
++ "adde %[T1], %[T1], %[hi] \n"
++ "addze %[T2], %[T2] \n"
++ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0),
[T1]"+r"(T1), [T2]"+r"(T2)
++ : [A]"r"(A), [B]"r"(B)
++ : "xer"
++ );
++}
++
++// Fast Montgomery multiplication. The derivation of the algorithm is
++// in "A Cryptographic Library for the Motorola DSP56000,
++// Dusse and Kaliski, Proc. EUROCRYPT 90, pp. 230-237".
++static void
++montgomery_multiply(unsigned long a[], unsigned long b[], unsigned long n[],
++ unsigned long m[], unsigned long inv, int len) {
++ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
++ int i;
++
++ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
++
++ for (i = 0; i < len; i++) {
++ int j;
++ for (j = 0; j < i; j++) {
++ MACC(a[j], b[i-j], t0, t1, t2);
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ MACC(a[i], b[0], t0, t1, t2);
++ m[i] = t0 * inv;
++ MACC(m[i], n[0], t0, t1, t2);
++
++ assert(t0 == 0, "broken Montgomery multiply");
++
++ t0 = t1; t1 = t2; t2 = 0;
++ }
++
++ for (i = len; i < 2*len; i++) {
++ int j;
++ for (j = i-len+1; j < len; j++) {
++ MACC(a[j], b[i-j], t0, t1, t2);
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ m[i-len] = t0;
++ t0 = t1; t1 = t2; t2 = 0;
++ }
++
++ while (t0) {
++ t0 = sub(m, n, t0, len);
++ }
++}
++
++// Fast Montgomery squaring. This uses asymptotically 25% fewer
++// multiplies so it should be up to 25% faster than Montgomery
++// multiplication. However, its loop control is more complex and it
++// may actually run slower on some machines.
++static void
++montgomery_square(unsigned long a[], unsigned long n[],
++ unsigned long m[], unsigned long inv, int len) {
++ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
++ int i;
++
++ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
++
++ for (i = 0; i < len; i++) {
++ int j;
++ int end = (i+1)/2;
++ for (j = 0; j < end; j++) {
++ MACC2(a[j], a[i-j], t0, t1, t2);
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ if ((i & 1) == 0) {
++ MACC(a[j], a[j], t0, t1, t2);
++ }
++ for (; j < i; j++) {
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ m[i] = t0 * inv;
++ MACC(m[i], n[0], t0, t1, t2);
++
++ assert(t0 == 0, "broken Montgomery square");
++
++ t0 = t1; t1 = t2; t2 = 0;
++ }
++
++ for (i = len; i < 2*len; i++) {
++ int start = i-len+1;
++ int end = start + (len - start)/2;
++ int j;
++ for (j = start; j < end; j++) {
++ MACC2(a[j], a[i-j], t0, t1, t2);
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ if ((i & 1) == 0) {
++ MACC(a[j], a[j], t0, t1, t2);
++ }
++ for (; j < len; j++) {
++ MACC(m[j], n[i-j], t0, t1, t2);
++ }
++ m[i-len] = t0;
++ t0 = t1; t1 = t2; t2 = 0;
++ }
++
++ while (t0) {
++ t0 = sub(m, n, t0, len);
++ }
++}
++
++// The threshold at which squaring is advantageous was determined
++// experimentally on an i7-3930K (Ivy Bridge) CPU @ 3.5GHz.
++// Doesn't seem to be relevant for Power8 so we use the same value.
++#define MONTGOMERY_SQUARING_THRESHOLD 64
++
++// Copy len longwords from s to d, word-swapping as we go. The
++// destination array is reversed.
++static void reverse_words(unsigned long *s, unsigned long *d, int len) {
++ d += len;
++ while(len-- > 0) {
++ d--;
++ unsigned long s_val = *s;
++ // Swap words in a longword on little endian machines.
++#ifdef VM_LITTLE_ENDIAN
++ s_val = (s_val << 32) | (s_val >> 32);
++#endif
++ *d = s_val;
++ s++;
++ }
++}
++
++void SharedRuntime::montgomery_multiply(jint *a_ints, jint *b_ints, jint *n_ints,
++ jint len, jlong inv,
++ jint *m_ints) {
++ assert(len % 2 == 0, "array length in montgomery_multiply must be even");
++ int longwords = len/2;
++ assert(longwords > 0, "unsupported");
++
++ // Make very sure we don't use so much space that the stack might
++ // overflow. 512 jints corresponds to an 16384-bit integer and
++ // will use here a total of 8k bytes of stack space.
++ int total_allocation = longwords * sizeof (unsigned long) * 4;
++ guarantee(total_allocation <= 8192, "must be");
++ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
++
++ // Local scratch arrays
++ unsigned long
++ *a = scratch + 0 * longwords,
++ *b = scratch + 1 * longwords,
++ *n = scratch + 2 * longwords,
++ *m = scratch + 3 * longwords;
++
++ reverse_words((unsigned long *)a_ints, a, longwords);
++ reverse_words((unsigned long *)b_ints, b, longwords);
++ reverse_words((unsigned long *)n_ints, n, longwords);
++
++ ::montgomery_multiply(a, b, n, m, (unsigned long)inv, longwords);
++
++ reverse_words(m, (unsigned long *)m_ints, longwords);
++}
++
++void SharedRuntime::montgomery_square(jint *a_ints, jint *n_ints,
++ jint len, jlong inv,
++ jint *m_ints) {
++ assert(len % 2 == 0, "array length in montgomery_square must be even");
++ int longwords = len/2;
++ assert(longwords > 0, "unsupported");
++
++ // Make very sure we don't use so much space that the stack might
++ // overflow. 512 jints corresponds to an 16384-bit integer and
++ // will use here a total of 6k bytes of stack space.
++ int total_allocation = longwords * sizeof (unsigned long) * 3;
++ guarantee(total_allocation <= 8192, "must be");
++ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
++
++ // Local scratch arrays
++ unsigned long
++ *a = scratch + 0 * longwords,
++ *n = scratch + 1 * longwords,
++ *m = scratch + 2 * longwords;
++
++ reverse_words((unsigned long *)a_ints, a, longwords);
++ reverse_words((unsigned long *)n_ints, n, longwords);
++
++ if (len >= MONTGOMERY_SQUARING_THRESHOLD) {
++ ::montgomery_square(a, n, m, (unsigned long)inv, longwords);
++ } else {
++ ::montgomery_multiply(a, a, n, m, (unsigned long)inv, longwords);
++ }
++
++ reverse_words(m, (unsigned long *)m_ints, longwords);
++}
+diff --git a/src/cpu/ppc/vm/stubGenerator_ppc.cpp b/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+--- openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+@@ -2094,6 +2094,14 @@
+ generate_safefetch("SafeFetchN", sizeof(intptr_t),
&StubRoutines::_safefetchN_entry,
+
&StubRoutines::_safefetchN_fault_pc,
+
&StubRoutines::_safefetchN_continuation_pc);
++ if (UseMontgomeryMultiplyIntrinsic) {
++ StubRoutines::_montgomeryMultiply
++ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
++ }
++ if (UseMontgomerySquareIntrinsic) {
++ StubRoutines::_montgomerySquare
++ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
++ }
+ }
+
+ public:
+diff --git a/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
b/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+--- openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+@@ -265,7 +265,7 @@
+ __ cmpdi(CCR0, Rmdo, 0);
+ __ beq(CCR0, no_mdo);
+
+- // Increment backedge counter in the MDO.
++ // Increment invocation counter in the MDO.
+ const int mdo_bc_offs = in_bytes(MethodData::backedge_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
+ __ lwz(Rscratch2, mdo_bc_offs, Rmdo);
+ __ addi(Rscratch2, Rscratch2, increment);
+@@ -277,12 +277,12 @@
+ }
+
+ // Increment counter in MethodCounters*.
+- const int mo_bc_offs = in_bytes(MethodCounters::backedge_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
++ const int mo_ic_offs = in_bytes(MethodCounters::invocation_counter_offset()) +
in_bytes(InvocationCounter::counter_offset());
+ __ bind(no_mdo);
+ __ get_method_counters(R19_method, R3_counters, done);
+- __ lwz(Rscratch2, mo_bc_offs, R3_counters);
++ __ lwz(Rscratch2, mo_ic_offs, R3_counters);
+ __ addi(Rscratch2, Rscratch2, increment);
+- __ stw(Rscratch2, mo_bc_offs, R3_counters);
++ __ stw(Rscratch2, mo_ic_offs, R3_counters);
+ __ load_const_optimized(Rscratch1, mask, R0);
+ __ and_(Rscratch1, Rscratch2, Rscratch1);
+ __ beq(CCR0, *overflow);
+diff --git a/src/cpu/ppc/vm/vm_version_ppc.cpp b/src/cpu/ppc/vm/vm_version_ppc.cpp
+--- openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+@@ -177,6 +177,12 @@
+ FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
+ }
+
++ if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
++ UseMontgomeryMultiplyIntrinsic = true;
++ }
++ if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
++ UseMontgomerySquareIntrinsic = true;
++ }
+ }
+
+ void VM_Version::print_features() {
+diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp
+--- openjdk/hotspot/src/share/vm/opto/library_call.cpp
++++ openjdk/hotspot/src/share/vm/opto/library_call.cpp
+@@ -6031,11 +6031,21 @@
+ Node* n_start = array_element_address(n, intcon(0), n_elem);
+ Node* m_start = array_element_address(m, intcon(0), m_elem);
+
+- Node* call = make_runtime_call(RC_LEAF,
+- OptoRuntime::montgomeryMultiply_Type(),
+- stubAddr, stubName, TypePtr::BOTTOM,
+- a_start, b_start, n_start, len, inv, top(),
+- m_start);
++ Node* call = NULL;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ Node* len_I2L = ConvI2L(len);
++ call = make_runtime_call(RC_LEAF,
++ OptoRuntime::montgomeryMultiply_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ a_start, b_start, n_start, len_I2L XTOP, inv,
++ top(), m_start);
++ } else {
++ call = make_runtime_call(RC_LEAF,
++ OptoRuntime::montgomeryMultiply_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ a_start, b_start, n_start, len, inv, top(),
++ m_start);
++ }
+ set_result(m);
+ }
+
+@@ -6085,11 +6095,22 @@
+ Node* n_start = array_element_address(n, intcon(0), n_elem);
+ Node* m_start = array_element_address(m, intcon(0), m_elem);
+
+- Node* call = make_runtime_call(RC_LEAF,
+- OptoRuntime::montgomerySquare_Type(),
+- stubAddr, stubName, TypePtr::BOTTOM,
+- a_start, n_start, len, inv, top(),
+- m_start);
++ Node* call = NULL;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ Node* len_I2L = ConvI2L(len);
++ call = make_runtime_call(RC_LEAF,
++ OptoRuntime::montgomerySquare_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ a_start, n_start, len_I2L XTOP, inv, top(),
++ m_start);
++ } else {
++ call = make_runtime_call(RC_LEAF,
++ OptoRuntime::montgomerySquare_Type(),
++ stubAddr, stubName, TypePtr::BOTTOM,
++ a_start, n_start, len, inv, top(),
++ m_start);
++ }
++
+ set_result(m);
+ }
+
+diff --git a/src/share/vm/opto/runtime.cpp b/src/share/vm/opto/runtime.cpp
+--- openjdk/hotspot/src/share/vm/opto/runtime.cpp
++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
+@@ -1005,12 +1005,20 @@
+ // create input type (domain)
+ int num_args = 7;
+ int argcnt = num_args;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ argcnt++; // additional placeholder
++ }
+ const Type** fields = TypeTuple::fields(argcnt);
+ int argp = TypeFunc::Parms;
+ fields[argp++] = TypePtr::NOTNULL; // a
+ fields[argp++] = TypePtr::NOTNULL; // b
+ fields[argp++] = TypePtr::NOTNULL; // n
+- fields[argp++] = TypeInt::INT; // len
++ if (CCallingConventionRequiresIntsAsLongs) {
++ fields[argp++] = TypeLong::LONG; // len
++ fields[argp++] = TypeLong::HALF; // placeholder
++ } else {
++ fields[argp++] = TypeInt::INT; // len
++ }
+ fields[argp++] = TypeLong::LONG; // inv
+ fields[argp++] = Type::HALF;
+ fields[argp++] = TypePtr::NOTNULL; // result
+@@ -1029,11 +1037,19 @@
+ // create input type (domain)
+ int num_args = 6;
+ int argcnt = num_args;
++ if (CCallingConventionRequiresIntsAsLongs) {
++ argcnt++; // additional placeholder
++ }
+ const Type** fields = TypeTuple::fields(argcnt);
+ int argp = TypeFunc::Parms;
+ fields[argp++] = TypePtr::NOTNULL; // a
+ fields[argp++] = TypePtr::NOTNULL; // n
+- fields[argp++] = TypeInt::INT; // len
++ if (CCallingConventionRequiresIntsAsLongs) {
++ fields[argp++] = TypeLong::LONG; // len
++ fields[argp++] = TypeLong::HALF; // placeholder
++ } else {
++ fields[argp++] = TypeInt::INT; // len
++ }
+ fields[argp++] = TypeLong::LONG; // inv
+ fields[argp++] = Type::HALF;
+ fields[argp++] = TypePtr::NOTNULL; // result
diff --git a/8168318-pr3466-rh1498320.patch b/8168318-pr3466-rh1498320.patch
new file mode 100644
index 0000000..6ed9afb
--- /dev/null
+++ b/8168318-pr3466-rh1498320.patch
@@ -0,0 +1,31 @@
+# HG changeset patch
+# User goetz
+# Date 1477563748 -7200
+# Thu Oct 27 12:22:28 2016 +0200
+# Node ID 9b9d9e11c04d5e5f64829d34752e5c94b1c7d911
+# Parent 92f0dbe76a13992cc27188e0f68e4b1771c7004a
+8168318, PR3466, RH1498320: PPC64: Use cmpldi instead of li/cmpld
+Reviewed-by: goetz
+Contributed-by: igor.nunes(a)eldorado.org.br
+
+diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
+--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
+@@ -10571,6 +10571,17 @@
+ ins_pipe(pipe_class_compare);
+ %}
+
++instruct cmpP_reg_null(flagsReg crx, iRegP_N2P src1, immP_0or1 src2) %{
++ match(Set crx (CmpP src1 src2));
++ format %{ "CMPLDI $crx, $src1, $src2 \t// ptr" %}
++ size(4);
++ ins_encode %{
++ // TODO: PPC port $archOpcode(ppc64Opcode_cmpl);
++ __ cmpldi($crx$$CondRegister, $src1$$Register, (int)((short)($src2$$constant &
0xFFFF)));
++ %}
++ ins_pipe(pipe_class_compare);
++%}
++
+ // Used in postalloc expand.
+ instruct cmpP_reg_imm16(flagsReg crx, iRegPsrc src1, immL16 src2) %{
+ // This match rule prevents reordering of node before a safepoint.
diff --git a/8170328-pr3466-rh1498321.patch b/8170328-pr3466-rh1498321.patch
new file mode 100644
index 0000000..d8751ee
--- /dev/null
+++ b/8170328-pr3466-rh1498321.patch
@@ -0,0 +1,33 @@
+# HG changeset patch
+# User mdoerr
+# Date 1480079712 7200
+# Fri Nov 25 11:15:12 2016 -0200
+# Node ID 3c499a0ba92b1affb3f473c6502e374f4785aba9
+# Parent 9b9d9e11c04d5e5f64829d34752e5c94b1c7d911
+8170328, PR3466, RH1498321: PPC64: Use andis instead of lis/and
+Reviewed-by: goetz, mdoerr
+Contributed-by: Igor Nunes <igor.nunes(a)eldorado.org.br>
+
+diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
+--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
+@@ -8889,6 +8889,19 @@
+ ins_pipe(pipe_class_default);
+ %}
+
++// Left shifted Immediate And
++instruct andI_reg_immIhi16(iRegIdst dst, iRegIsrc src1, immIhi16 src2, flagsRegCR0 cr0)
%{
++ match(Set dst (AndI src1 src2));
++ effect(KILL cr0);
++ format %{ "ANDIS $dst, $src1, $src2.hi" %}
++ size(4);
++ ins_encode %{
++ // TODO: PPC port $archOpcode(ppc64Opcode_andis_);
++ __ andis_($dst$$Register, $src1$$Register, (int)((unsigned short)(($src2$$constant
& 0xFFFF0000) >> 16)));
++ %}
++ ins_pipe(pipe_class_default);
++%}
++
+ // Immediate And
+ instruct andI_reg_uimm16(iRegIdst dst, iRegIsrc src1, uimmI16 src2, flagsRegCR0 cr0) %{
+ match(Set dst (AndI src1 src2));
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/8181810-pr3466-rh1498319.patch b/8181810-pr3466-rh1498319.patch
new file mode 100644
index 0000000..4dba432
--- /dev/null
+++ b/8181810-pr3466-rh1498319.patch
@@ -0,0 +1,66 @@
+# HG changeset patch
+# User mdoerr
+# Date 1507752266 -3600
+# Wed Oct 11 21:04:26 2017 +0100
+# Node ID 5c00d5cd7677aec3549afe02e4f9de8dc7b20bef
+# Parent 3c499a0ba92b1affb3f473c6502e374f4785aba9
+8181810, PR3466, RH1498319: PPC64: Leverage extrdi for bitfield extract
+Reviewed-by: mdoerr, simonis
+Contributed-by: Matthew Brandyberry <mbrandy(a)linux.vnet.ibm.com>
+
+diff --git a/src/cpu/ppc/vm/ppc.ad b/src/cpu/ppc/vm/ppc.ad
+--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad
+@@ -1,6 +1,6 @@
+ //
+ // Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+-// Copyright 2012, 2014 SAP AG. All rights reserved.
++// Copyright (c) 2012, 2017 SAP SE. 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
+@@ -8610,6 +8610,44 @@
+ ins_pipe(pipe_class_default);
+ %}
+
++// Bitfield Extract: URShiftI + AndI
++instruct andI_urShiftI_regI_immI_immIpow2minus1(iRegIdst dst, iRegIsrc src1, immI src2,
immIpow2minus1 src3) %{
++ match(Set dst (AndI (URShiftI src1 src2) src3));
++
++ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// int bitfield
extract" %}
++ size(4);
++ ins_encode %{
++ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
++ int rshift = ($src2$$constant) & 0x1f;
++ int length = log2_long(((jlong) $src3$$constant) + 1);
++ if (rshift + length > 32) {
++ // if necessary, adjust mask to omit rotated bits.
++ length = 32 - rshift;
++ }
++ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
++ %}
++ ins_pipe(pipe_class_default);
++%}
++
++// Bitfield Extract: URShiftL + AndL
++instruct andL_urShiftL_regL_immI_immLpow2minus1(iRegLdst dst, iRegLsrc src1, immI src2,
immLpow2minus1 src3) %{
++ match(Set dst (AndL (URShiftL src1 src2) src3));
++
++ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// long bitfield
extract" %}
++ size(4);
++ ins_encode %{
++ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
++ int rshift = ($src2$$constant) & 0x3f;
++ int length = log2_long(((jlong) $src3$$constant) + 1);
++ if (rshift + length > 64) {
++ // if necessary, adjust mask to omit rotated bits.
++ length = 64 - rshift;
++ }
++ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
++ %}
++ ins_pipe(pipe_class_default);
++%}
++
+ instruct sxtI_reg(iRegIdst dst, iRegIsrc src) %{
+ match(Set dst (ConvL2I (ConvI2L src)));
+
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/bug1484079.patch b/bug1484079.patch
deleted file mode 100644
index 2cb1239..0000000
--- a/bug1484079.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -r e96c4a40fdf9 src/solaris/native/sun/awt/fontpath.c
---- openjdk/jdk/src/solaris/native/sun/awt/fontpath.c Wed Aug 23 14:14:49 2017 -0400
-+++ openjdk/jdk/src/solaris/native/sun/awt/fontpath.c Thu Aug 24 12:14:41 2017 -0400
-@@ -1239,6 +1239,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-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index d9578e9..879d462 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-ZIP_SRC=openjdk/jdk/src/share/native/java/util/zip/zlib-*
+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
diff --git a/java-1.8.0-openjdk-rh1191652-root.patch
b/java-1.8.0-openjdk-rh1191652-root.patch
index aa0ce35..46a9c6f 100644
--- a/java-1.8.0-openjdk-rh1191652-root.patch
+++ b/java-1.8.0-openjdk-rh1191652-root.patch
@@ -1,6 +1,6 @@
-diff -r 59d5dc6a0d95 common/autoconf/hotspot-spec.gmk.in
---- openjdk///common/autoconf/hotspot-spec.gmk.in Wed May 25 13:42:38 2016 +0100
-+++ openjdk///common/autoconf/hotspot-spec.gmk.in Thu May 26 04:43:57 2016 +0100
+diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
+--- openjdk///common/autoconf/hotspot-spec.gmk.in
++++ openjdk///common/autoconf/hotspot-spec.gmk.in
@@ -71,6 +71,10 @@
LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
# Set the cpu architecture
@@ -12,9 +12,9 @@ diff -r 59d5dc6a0d95 common/autoconf/hotspot-spec.gmk.in
# Legacy setting for building for a 64 bit machine.
# If yes then this expands to _LP64:=1
@LP64@
-diff -r 59d5dc6a0d95 common/autoconf/jdk-options.m4
---- openjdk///common/autoconf/jdk-options.m4 Wed May 25 13:42:38 2016 +0100
-+++ openjdk///common/autoconf/jdk-options.m4 Thu May 26 04:43:57 2016 +0100
+diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
+--- openjdk///common/autoconf/jdk-options.m4
++++ openjdk///common/autoconf/jdk-options.m4
@@ -158,7 +158,7 @@
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
@@ -24,9 +24,9 @@ diff -r 59d5dc6a0d95 common/autoconf/jdk-options.m4
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-diff -r 59d5dc6a0d95 common/autoconf/platform.m4
---- openjdk///common/autoconf/platform.m4 Wed May 25 13:42:38 2016 +0100
-+++ openjdk///common/autoconf/platform.m4 Thu May 26 04:43:57 2016 +0100
+diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
+--- openjdk///common/autoconf/platform.m4
++++ openjdk///common/autoconf/platform.m4
@@ -67,7 +67,7 @@
VAR_CPU_ENDIAN=big
;;
@@ -36,16 +36,16 @@ diff -r 59d5dc6a0d95 common/autoconf/platform.m4
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
-diff -r 59d5dc6a0d95 common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4 Wed May 25 13:42:38 2016 +0100
-+++ openjdk///common/autoconf/toolchain.m4 Thu May 26 04:43:57 2016 +0100
-@@ -1056,6 +1056,9 @@
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -1123,6 +1123,9 @@
else
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
fi
+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
+ fi
if test "x$OPENJDK_TARGET_OS" = xlinux; then
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
fi
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1f1791f..c089e51 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,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-jdk8u144-b01
+%global revision aarch64-jdk8u151-b12
# 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
@@ -554,8 +554,10 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool
%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv
%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200
-%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/US_export_policy.jar
-%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/local_policy.jar
+%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
@@ -815,7 +817,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
@@ -933,7 +935,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -959,7 +961,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -968,7 +970,7 @@ Source2: README.src
# They are based on code contained in the IcedTea7 project.
# Systemtap tapsets. Zipped up to keep it small.
-Source8: systemtap-tapset-3.4.0pre01.tar.xz
+Source8: systemtap-tapset-3.6.0pre02.tar.xz
# Desktop files. Adapated from IcedTea.
Source9: jconsole.desktop.in
@@ -1015,12 +1017,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
@@ -1034,6 +1038,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
@@ -1066,10 +1072,10 @@ 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
@@ -1080,33 +1086,44 @@ Patch532: 8162384-pr3122-rh1358661.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
# 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)
Patch539: pr2888.patch
-# test patch for rhbz#1484079
-Patch540: bug1484079.patch
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
@@ -1447,6 +1464,8 @@ sh %{SOURCE12}
%patch206
%patch207
%patch208
+%patch209
+%patch210
%patch1
%patch3
@@ -1481,6 +1500,7 @@ sh %{SOURCE12}
%patch516
%patch517
%patch518
+%patch519
%patch400
%patch523
%patch526
@@ -1491,15 +1511,20 @@ sh %{SOURCE12}
%patch547
%patch550
%patch551
-%patch552
%patch553
%patch555
+%patch560
+%patch561
+
+# PPC64 updates
+%patch556
+%patch557
+%patch558
+%patch559
# RPM-only fixes
%patch525
-%patch533
%patch539
-%patch540
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2129,6 +2154,18 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Oct 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
+- updated to aarch64-jdk8u151-b12 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u151-b12 (from aarch64-port/jdk8u-shenandoah) of
hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz as new
sources for hotspot
+- tapset updated to 3.6pre02
+- policies adapted to new limited/unlimited schmea
+- above acomapnied by c-j-c 3.3
+- alligned patches and added PPC ones (thanx to gnu_andrew)
+- added patch209: 8035496-hotspot.patch
+- added patch210: suse_linuxfilestore.patch
+
* Wed Oct 04 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.144-7.b01
- updated to aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02 (from
aarch64-port/jdk8u-shenandoah) of hotspot
- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
as new sources for hotspot
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 851529f..99ff950 100644
--- a/rh1163501.patch
+++ b/rh1163501.patch
@@ -3,7 +3,7 @@ diff --git
a/src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java b
+++ 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) 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.
*
@@ -26,12 +26,12 @@ diff --git
a/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) 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
-@@ -60,11 +61,11 @@
+@@ -61,11 +62,11 @@
private static void checkKeySize(int keysize)
throws InvalidParameterException {
@@ -48,7 +48,7 @@ diff --git
a/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
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 @@
+@@ -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
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 15bfc44..6d132ae 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz) =
dbad1a2a4b58606d2aaaf2124b917362b883b1a5f43eb06c33f8c9b5e5de7cfb00926d39efb6b10fd59792d140302640f8ec2d6b45839e80e3f42a3d027932ad
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz)
=
f5ab210f1e83b5588aed0c671b2d17ae85c3f52b0b9fdd1394c63393b3206dae0c3d0dc5f4e62f7de68dbcffc72776969e5c2e04d51dba604925fa4bfef105e2
+SHA512 (systemtap-tapset-3.6.0pre02.tar.xz) =
d59858bbe9e927bdf47711e3c71c88f93567596aea3e1736b33b436a7a2cb38af25a9b4b4224ca513454b3f2d0371d14e753176c1810d9745a7e4af8edae7fb8
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz) =
ef8bf4485755ec1c6d229a75dff65cfa17d74b0405f047f7f456bf2004feb985e5558eb66f9ff761aad45b945b0cd47647b41e0be13eb8096ab6e10fae2f47cc
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz) =
d43fc639ab2a784c4914e32459715bc1eaa891c7a2ee05b911f4955e281cb4b4533e170bbfc593942ee793768526329a3955e592bf4a0be691e56dd9f2f89eca
diff --git a/suse_linuxfilestore.patch b/suse_linuxfilestore.patch
new file mode 100644
index 0000000..6a9f643
--- /dev/null
+++ b/suse_linuxfilestore.patch
@@ -0,0 +1,21 @@
+--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java 2017-08-23
11:40:26.690809603 +0200
++++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java 2017-08-23
11:44:28.314815334 +0200
+@@ -74,8 +74,16 @@
+ } catch (UnixException x) {
+ x.rethrowAsIOException(parent);
+ }
+- if (attrs.dev() != dev())
+- break;
++ if (attrs.dev() != dev()) {
++
++ // step 3: lookup mounted file systems (use /proc/mounts to ensure we
++ // find the file system even when not in /etc/mtab)
++ byte[] dir = path.asByteArray();
++ for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts"))
{
++ if (Arrays.equals(dir, entry.dir()))
++ return entry;
++ }
++ }
+ path = parent;
+ parent = parent.getParent();
+ }
diff --git a/update_package.sh b/update_package.sh
index 9dec8fb..433aae1 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u144-b01"
+ VERSION="aarch64-jdk8u151-b12"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02"
+ VERSION="aarch64-shenandoah-jdk8u151-b12"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit d30d552aeb160b7c29be108d2124832b30505307
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Oct 4 19:03:21 2017 +0200
- updated to aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02 (from
aarch64-port/jdk8u-shenandoah) of hotspot
diff --git a/.gitignore b/.gitignore
index 1be7b07..97d782d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -92,3 +92,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
diff --git a/bug1484079.patch b/bug1484079.patch
new file mode 100644
index 0000000..2cb1239
--- /dev/null
+++ b/bug1484079.patch
@@ -0,0 +1,11 @@
+diff -r e96c4a40fdf9 src/solaris/native/sun/awt/fontpath.c
+--- openjdk/jdk/src/solaris/native/sun/awt/fontpath.c Wed Aug 23 14:14:49 2017 -0400
++++ openjdk/jdk/src/solaris/native/sun/awt/fontpath.c Thu Aug 24 12:14:41 2017 -0400
+@@ -1239,6 +1239,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.spec b/java-1.8.0-openjdk.spec
index 33c09cf..1f1791f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -933,7 +933,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -959,7 +959,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz
+Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1105,6 +1105,8 @@ Patch533: rh1367357.patch
Patch534: always_assumemp.patch
# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
Patch539: pr2888.patch
+# test patch for rhbz#1484079
+Patch540: bug1484079.patch
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
@@ -1497,6 +1499,7 @@ sh %{SOURCE12}
%patch525
%patch533
%patch539
+%patch540
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -2126,6 +2129,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Oct 04 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.144-7.b01
+- updated to aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
as new sources for hotspot
+
+* Fri Sep 15 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-6.b01
+- added patch540, bug1484079.patch
+
* Fri Sep 08 2017 Troy Dawson <tdawson(a)redhat.com> - 1:1.8.0.144-6.b01
- Cleanup spec file conditionals
diff --git a/sources b/sources
index 467a662..15bfc44 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
SHA512 (aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz) =
dbad1a2a4b58606d2aaaf2124b917362b883b1a5f43eb06c33f8c9b5e5de7cfb00926d39efb6b10fd59792d140302640f8ec2d6b45839e80e3f42a3d027932ad
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz) =
8330d8864f860c54705ec72caefd8e02a0d75bc435ec3c8b10a4c96825155d0473617caa7dde45042211f3c1151042d419853eed3514032e8d71333ed14eebc1
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz)
=
f5ab210f1e83b5588aed0c671b2d17ae85c3f52b0b9fdd1394c63393b3206dae0c3d0dc5f4e62f7de68dbcffc72776969e5c2e04d51dba604925fa4bfef105e2
diff --git a/update_package.sh b/update_package.sh
index db067ca..9dec8fb 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u144-b01"
+ VERSION="aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit d049cdcea6755adac16056ea46aa21df3eb0d3fa
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Mon Sep 11 19:52:00 2017 -0700
Cleanup spec file conditionals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d18eaf6..33c09cf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1138,7 +1138,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} <= 7
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
BuildRequires: java-1.7.0-openjdk-devel
%else
BuildRequires: java-1.8.0-openjdk-devel
@@ -1499,7 +1499,7 @@ sh %{SOURCE12}
%patch539
# RHEL-only patches
-%if 0%{?rhel} <= 7
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
%patch534
%endif
commit fdb86820487699018badae88666c09e843eb6619
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Sep 11 17:11:17 2017 +0200
Cleanup spec file conditionals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2399fd9..d18eaf6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -933,7 +933,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1138,7 +1138,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%{?rhel} <= 7
BuildRequires: java-1.7.0-openjdk-devel
%else
BuildRequires: java-1.8.0-openjdk-devel
@@ -1499,7 +1499,7 @@ sh %{SOURCE12}
%patch539
# RHEL-only patches
-%if 0%{?rhel}
+%if 0%{?rhel} <= 7
%patch534
%endif
@@ -2126,6 +2126,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Sep 08 2017 Troy Dawson <tdawson(a)redhat.com> - 1:1.8.0.144-6.b01
+- Cleanup spec file conditionals
+
* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-4.b01
- added ownership of diretories which were oonly listing files
commit 88af82c22d12449732936c243546ce37e317ebad
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 28 10:34:59 2017 +0200
bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 182e060..2399fd9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -933,7 +933,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
commit 955337ffc470e71a0d0561bc669bae95c48d1411
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 28 10:26:58 2017 +0200
Owned jre/lib dir
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f7cd978..182e060 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -543,6 +543,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
%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
@@ -639,8 +640,8 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/management/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/*
-%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
%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
commit f667e15eabdb81ee8642adc25c53ab8a8fa504eb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Aug 25 15:57:06 2017 +0200
Excluded two more dirs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e4da665..f7cd978 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -580,6 +580,7 @@ exit 0
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
@@ -639,6 +640,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/*
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext
commit 36b7add1a71fa55b6942f8d3a8acea880d5f1e0c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Aug 25 14:01:30 2017 +0200
added ownership of diretories which were oonly listing files
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9fd95ef..e4da665 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -541,6 +541,8 @@ exit 0
%{_jvmprivdir}/*
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
+%dir %{_jvmdir}/%{jredir -- %{?1}}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
%{_jvmdir}/%{jredir -- %{?1}}/bin/java
%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
@@ -578,6 +580,7 @@ exit 0
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
@@ -635,6 +638,10 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/management/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/*
+%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
}
%define files_devel() %{expand:
@@ -923,7 +930,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -2116,6 +2123,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-4.b01
+- added ownership of diretories which were oonly listing files
+
* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-3.b01
- added (experiment) "--" delimiter also to $suffix in expanding macros
commit 1a4b84e6a36029f3a0104457c8e6f12f83145200
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Aug 25 07:31:44 2017 +0200
- added (experiment) "--" delimiter also to $suffix in expanding macros
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4fc8a16..9fd95ef 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -923,7 +923,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1512,16 +1512,16 @@ cp -r tapset tapset%{debug_suffix}
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
OUTPUT_FILE=`echo $file | sed -e
s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
- sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
+ sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
- sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
+ sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
%else
sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
%endif
- sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g $OUTPUT_FILE
+ sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g $OUTPUT_FILE
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
- sed -i -e s:@prefix@:%{_jvmdir}/%{sdkdir $suffix}/:g $OUTPUT_FILE
+ sed -i -e s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g $OUTPUT_FILE
done
done
# systemtap tapsets ends
@@ -1534,8 +1534,8 @@ for file in %{SOURCE9} %{SOURCE10} ; do
EXT="${FILE##*.}"
NAME="${FILE%.*}"
OUTPUT_FILE=$NAME$suffix.$EXT
- sed -e s:#JAVA_HOME#:%{sdkbindir $suffix}:g $file > $OUTPUT_FILE
- sed -i -e s:#JRE_HOME#:%{jrebindir $suffix}:g $OUTPUT_FILE
+ sed -e s:#JAVA_HOME#:%{sdkbindir -- $suffix}:g $file > $OUTPUT_FILE
+ sed -i -e s:#JRE_HOME#:%{jrebindir -- $suffix}:g $OUTPUT_FILE
sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}$suffix:g $OUTPUT_FILE
done
done
@@ -1583,8 +1583,8 @@ else
debugbuild=%{normalbuild_parameter}
fi
-mkdir -p %{buildoutputdir $suffix}
-pushd %{buildoutputdir $suffix}
+mkdir -p %{buildoutputdir -- $suffix}
+pushd %{buildoutputdir -- $suffix}
NSS_LIBS="%{NSS_LIBS} -lfreebl" \
NSS_CFLAGS="%{NSS_CFLAGS}" \
@@ -1643,7 +1643,7 @@ find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {}
\;
popd >& /dev/null
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{j2sdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
@@ -1660,7 +1660,7 @@ done
# We test debug first as it will give better diagnostics on a crash
for suffix in %{rev_build_loop} ; do
-export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{j2sdkimage}
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -1749,29 +1749,29 @@ STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-pushd %{buildoutputdir $suffix}/images/%{j2sdkimage}
+pushd %{buildoutputdir -- $suffix}/images/%{j2sdkimage}
#install jsa directories so we can owe them
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/client/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
# Install main files.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
- cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
- cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+ cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
%if %{with_systemtap}
# Install systemtap support files.
- install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset
+ install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
# note, that uniquesuffix is in BUILD dir in this case
- cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
+ cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
tapsetFiles=`ls *.stp`
popd
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir $suffix}/tapset %{tapsetdir})
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir -- $suffix}/tapset %{tapsetdir})
for name in $tapsetFiles ; do
targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
ln -sf $RELATIVE/$name $targetName
@@ -1780,20 +1780,20 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
%endif
# Remove empty cacerts database.
- rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts
+ rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
# Install cacerts symlink needed by some apps which hardcode the path.
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
- %{_jvmdir}/%{jredir $suffix}/lib/security)
+ %{_jvmdir}/%{jredir -- $suffix}/lib/security)
ln -sf $RELATIVE/cacerts .
popd
# Install JCE policy symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix $suffix}/jce/vanilla
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix -- $suffix}/jce/vanilla
# Install versioned symlinks.
pushd $RPM_BUILD_ROOT%{_jvmdir}
- ln -sf %{jredir $suffix} %{jrelnk $suffix}
+ ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
popd
# Remove javaws man page
@@ -1807,25 +1807,25 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
- $manpage .1)-%{uniquesuffix $suffix}.1
+ $manpage .1)-%{uniquesuffix -- $suffix}.1
done
# Install demos and samples.
- cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
+ cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
mkdir -p sample/rmi
if [ ! -e sample/rmi/java-rmi.cgi ] ; then
# hack to allow --short-circuit on install
mv bin/java-rmi.cgi sample/rmi
fi
- cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
+ cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
$suffix}
-cp -a %{buildoutputdir
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix}.zip
+cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
-- $suffix}
+cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
# Install icons and menu entries.
for s in 16 24 32 48 ; do
@@ -1837,7 +1837,7 @@ done
# Install desktop files.
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
for e in jconsole$suffix policytool$suffix ; do
- desktop-file-install --vendor=%{uniquesuffix $suffix} --mode=644 \
+ desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
done
@@ -1849,15 +1849,15 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
# Find non-documentation demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
-type f -o -type l | sort \
| grep -v README \
| sed 's|'$RPM_BUILD_ROOT'||' \
> %{name}-demo.files"$suffix"
# Find documentation
demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
-type f -o -type l | sort \
| grep README \
| sed 's|'$RPM_BUILD_ROOT'||' \
@@ -1866,13 +1866,13 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
# 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}
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}
ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/ext
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext
ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/
echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
echo "" >> accessibility.properties
echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >>
accessibility.properties
@@ -1887,39 +1887,39 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
echo -n "" > $FXSDK_FILES
for file in %{jfx_jre_libs} ; do
srcfile=%{jfx_jre_libs_dir}/$file
- targetfile=%{_jvmdir}/%{jredir $suffix}/lib/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file
ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
echo $targetfile >> $FXJRE_FILES
done
for file in %{jfx_jre_native} ; do
srcfile=%{jfx_jre_native_dir}/$file
- targetfile=%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file
ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
echo $targetfile >> $FXJRE_FILES
done
for file in %{jfx_jre_exts} ; do
srcfile=%{jfx_jre_exts_dir}/$file
- targetfile=%{_jvmdir}/%{jredir $suffix}/lib/ext/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file
ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
echo $targetfile >> $FXJRE_FILES
done
for file in %{jfx_sdk_libs} ; do
srcfile=%{jfx_sdk_libs_dir}/$file
- targetfile=%{_jvmdir}/%{sdkdir $suffix}/lib/$file
+ targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file
ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
echo $targetfile >> $FXSDK_FILES
done
for file in %{jfx_sdk_bins} ; do
srcfile=%{jfx_sdk_bins_dir}/$file
- targetfile=%{_jvmdir}/%{sdkdir $suffix}/bin/$file
+ targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file
ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
echo $targetfile >> $FXSDK_FILES
done
%endif
-bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver}
+bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
-touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir
$suffix}/lib/security/java.security
+touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/security/java.security
# end, dual install
done
@@ -2116,6 +2116,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-3.b01
+- added (experiment) "--" delimiter also to $suffix in expanding macros
+
* Wed Aug 23 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-1.b01
- Update to aarch64-jdk8u144-b01 and aarch64-shenandoah-jdk8u144-b01.
- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
commit 73a7a17211a7faf57c4eadb5f1de943931cfab0c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 24 12:25:34 2017 +0200
sa-jdi made intel only
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 614a1c4..4fc8a16 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -692,7 +692,7 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
-%ifnarch %{aarch64}
+%ifarch x86_64 %{ix86}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
commit cdd367fc9337aa147b50e139a945273fbb0e0f89
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 24 11:00:37 2017 +0200
jarrepack moved back to global
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8cb73fb..614a1c4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -919,7 +919,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
}
# Prevent brp-java-repack-jars from being run.
-%define __jar_repack 0
+%global __jar_repack 0
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
commit 31077259925a435af278abb23b51c1dbf0d6cbe5
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 24 10:36:32 2017 +0200
libsaproc made aslo for aarch64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 67d81cf..8cb73fb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -604,7 +604,7 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
-%ifarch x86_64 %{ix86}
+%ifarch x86_64 %{ix86} %{aarch64}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
commit 215b0f27a2c0935d6c725eebef4f21b9b117a0d7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 24 09:58:57 2017 +0200
sa-jdi made not available on aarch64 and libsaproc.so only for intels
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b7db41f..67d81cf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -604,7 +604,9 @@ exit 0
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
+%ifarch x86_64 %{ix86}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
+%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
@@ -685,12 +687,14 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc
%{_jvmdir}/%{sdkdir -- %{?1}}/include/*
-%{_jvmdir}/%{sdkdir -- %{?1}}/lib/amd64
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
+%ifnarch %{aarch64}
%{_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
commit 91c05c419cf777a80ae173ac123c604ba0a73a48
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 23 16:41:08 2017 +0200
- get rid of generated filelists all except javafx and demos
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 51e1d31..b7db41f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -523,6 +523,11 @@ exit 0
%define 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/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
}
@@ -536,12 +541,23 @@ exit 0
%{_jvmprivdir}/*
%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
+%{_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/US_export_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/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*
@@ -562,6 +578,61 @@ exit 0
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjavajpeg.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/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/*
}
%define files_devel() %{expand:
@@ -623,7 +694,6 @@ exit 0
%{_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*
%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
@@ -849,7 +919,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1771,49 +1841,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
@@ -1833,7 +1860,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}
@@ -2013,7 +2039,7 @@ require "copy_jdk_configs.lua"
%endif
%if %{include_normal_build}
-%files -f %{name}.files
+%files
# main package builds always
%{files_jre %{nil}}
%else
@@ -2023,7 +2049,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}}
@@ -2054,10 +2080,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
@@ -2092,6 +2118,7 @@ require "copy_jdk_configs.lua"
- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
- get rid of bin/* and lib/*, fixed rhbz1480777
- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%{?1}, all expandable macros parameter preffixed by --
+- get rid of generated filelists all except javafx and demos
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
commit 701fb2b15ef27c922b0ecd2fc2389eda20fbd2ce
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Aug 23 09:26:53 2017 +0200
Sync from f27 - adapted to rpmbild 4.14
diff --git a/.gitignore b/.gitignore
index 4d30a19..1be7b07 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+*.rpm
/class-rewriter.tar.gz
/desktop-files.tar.gz
/jdk8-b79.tar.gz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 22c1977..51e1d31 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -221,19 +221,19 @@
#images stub
%global j2sdkimage j2sdk-image
# output dir stub
-%global buildoutputdir() %{expand:openjdk/build/jdk8.build%1}
+%define buildoutputdir() %{expand:openjdk/build/jdk8.build%{?1}}
#we can copy the javadoc to not arched dir, or made it not noarch
-%global uniquejavadocdir() %{expand:%{fullversion}%1}
+%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
#main id and dir of this jdk
-%global uniquesuffix() %{expand:%{fullversion}.%{_arch}%1}
+%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
# Standard JPackage directories and symbolic links.
-%global sdkdir() %{expand:%{uniquesuffix %%1}}
-%global jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1}
+%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
+%define jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
-%global jredir() %{expand:%{sdkdir %%1}/jre}
-%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
-%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin}
+%define jredir() %{expand:%{sdkdir -- %{?1}}/jre}
+%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
+%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
@@ -254,69 +254,69 @@
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
-%global post_script() %{expand:
+%define post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
exit 0
}
-%global post_headless() %{expand:
+%define post_headless() %{expand:
%ifarch %{jit_arches}
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
%ifnarch %{power64}
#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
-%{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null
+%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
%endif
PRIORITY=%{priority}
-if [ "%1" == %{debug_suffix} ]; then
+if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family
%{name}.%{_arch} \\
- --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
- --slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
- --slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\
- --slave %{_bindir}/orbd orbd %{jrebindir %%1}/orbd \\
- --slave %{_bindir}/pack200 pack200 %{jrebindir %%1}/pack200 \\
- --slave %{_bindir}/rmid rmid %{jrebindir %%1}/rmid \\
- --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\
- --slave %{_bindir}/servertool servertool %{jrebindir %%1}/servertool \\
- --slave %{_bindir}/tnameserv tnameserv %{jrebindir %%1}/tnameserv \\
- --slave %{_bindir}/policytool policytool %{jrebindir %%1}/policytool \\
- --slave %{_bindir}/unpack200 unpack200 %{jrebindir %%1}/unpack200 \\
+ --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
+ --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
+ --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
+ --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
+ --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\
+ --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\
+ --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
+ --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\
+ --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\
+ --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\
+ --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
--slave %{_mandir}/man1/java.1$ext java.1$ext \\
- %{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
- %{_mandir}/man1/jjs-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
- %{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
- %{_mandir}/man1/orbd-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
- %{_mandir}/man1/pack200-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
- %{_mandir}/man1/rmid-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
- %{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
- %{_mandir}/man1/servertool-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
- %{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
- %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
- %{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext
+ %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
- alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name}.%{_arch}
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name}.%{_arch}
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -324,16 +324,16 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
# see pretrans where this file is declared
# also see that pretrans is only for nondebug
-if [ ! "%1" == %{debug_suffix} ]; then
+if [ ! "%{?1}" == %{debug_suffix} ]; then
if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
- sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir %%1}
+ sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir -- %{?1}}
fi
fi
exit 0
}
-%global postun_script() %{expand:
+%define postun_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
if [ $1 -eq 0 ] ; then
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
@@ -343,121 +343,121 @@ exit 0
}
-%global postun_headless() %{expand:
- alternatives --remove java %{jrebindir %%1}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir %%1}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir %%1}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1}
+%define postun_headless() %{expand:
+ alternatives --remove java %{jrebindir -- %{?1}}/java
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
+ alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
}
-%global posttrans_script() %{expand:
+%define posttrans_script() %{expand:
%{update_desktop_icons}
}
-%global post_devel() %{expand:
+%define post_devel() %{expand:
PRIORITY=%{priority}
-if [ "%1" == %{debug_suffix} ]; then
+if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY --family
%{name}.%{_arch} \\
- --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
- --slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
- --slave %{_bindir}/extcheck extcheck %{sdkbindir %%1}/extcheck \\
- --slave %{_bindir}/idlj idlj %{sdkbindir %%1}/idlj \\
- --slave %{_bindir}/jar jar %{sdkbindir %%1}/jar \\
- --slave %{_bindir}/jarsigner jarsigner %{sdkbindir %%1}/jarsigner \\
- --slave %{_bindir}/javadoc javadoc %{sdkbindir %%1}/javadoc \\
- --slave %{_bindir}/javah javah %{sdkbindir %%1}/javah \\
- --slave %{_bindir}/javap javap %{sdkbindir %%1}/javap \\
- --slave %{_bindir}/jcmd jcmd %{sdkbindir %%1}/jcmd \\
- --slave %{_bindir}/jconsole jconsole %{sdkbindir %%1}/jconsole \\
- --slave %{_bindir}/jdb jdb %{sdkbindir %%1}/jdb \\
- --slave %{_bindir}/jdeps jdeps %{sdkbindir %%1}/jdeps \\
- --slave %{_bindir}/jhat jhat %{sdkbindir %%1}/jhat \\
- --slave %{_bindir}/jinfo jinfo %{sdkbindir %%1}/jinfo \\
- --slave %{_bindir}/jmap jmap %{sdkbindir %%1}/jmap \\
- --slave %{_bindir}/jps jps %{sdkbindir %%1}/jps \\
- --slave %{_bindir}/jrunscript jrunscript %{sdkbindir %%1}/jrunscript \\
- --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir %%1}/jsadebugd \\
- --slave %{_bindir}/jstack jstack %{sdkbindir %%1}/jstack \\
- --slave %{_bindir}/jstat jstat %{sdkbindir %%1}/jstat \\
- --slave %{_bindir}/jstatd jstatd %{sdkbindir %%1}/jstatd \\
- --slave %{_bindir}/native2ascii native2ascii %{sdkbindir %%1}/native2ascii \\
- --slave %{_bindir}/rmic rmic %{sdkbindir %%1}/rmic \\
- --slave %{_bindir}/schemagen schemagen %{sdkbindir %%1}/schemagen \\
- --slave %{_bindir}/serialver serialver %{sdkbindir %%1}/serialver \\
- --slave %{_bindir}/wsgen wsgen %{sdkbindir %%1}/wsgen \\
- --slave %{_bindir}/wsimport wsimport %{sdkbindir %%1}/wsimport \\
- --slave %{_bindir}/xjc xjc %{sdkbindir %%1}/xjc \\
+ --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
+ --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
+ --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
+ --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
+ --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
+ --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
+ --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
+ --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\
+ --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
+ --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
+ --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
+ --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
+ --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
+ --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
+ --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
+ --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
+ --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\
+ --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\
+ --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\
+ --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\
+ --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\
+ --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\
+ --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\
+ --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\
+ --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\
+ --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\
+ --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\
+ --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\
+ --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\
--slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
- %{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
- %{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
- %{_mandir}/man1/idlj-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
- %{_mandir}/man1/jar-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
- %{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
- %{_mandir}/man1/javac-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
- %{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
- %{_mandir}/man1/javah-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
- %{_mandir}/man1/javap-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
- %{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
- %{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
- %{_mandir}/man1/jdb-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
- %{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
- %{_mandir}/man1/jhat-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
- %{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
- %{_mandir}/man1/jmap-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
- %{_mandir}/man1/jps-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
- %{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
- %{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
- %{_mandir}/man1/jstack-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
- %{_mandir}/man1/jstat-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
- %{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
- %{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
- %{_mandir}/man1/rmic-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
- %{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
- %{_mandir}/man1/serialver-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
- %{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
- %{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1$ext \\
+ %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
- %{_mandir}/man1/xjc-%{uniquesuffix %%1}.1$ext
+ %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
for X in %{origin} %{javaver} ; do
alternatives \\
- --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
%%1} $PRIORITY --family %{name}.%{_arch}
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family
%{name}.%{_arch} \\
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch} \\
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -465,11 +465,11 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
exit 0
}
-%global postun_devel() %{expand:
- alternatives --remove javac %{sdkbindir %%1}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir %%1}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir %%1}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1}
+%define postun_devel() %{expand:
+ alternatives --remove javac %{sdkbindir -- %{?1}}/javac
+ alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
+ alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -480,245 +480,245 @@ fi
exit 0
}
-%global posttrans_devel() %{expand:
+%define posttrans_devel() %{expand:
%{update_desktop_icons}
}
-%global post_javadoc() %{expand:
+%define post_javadoc() %{expand:
PRIORITY=%{priority}
-if [ "%1" == %{debug_suffix} ]; then
+if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
$PRIORITY --family %{name}
exit 0
}
-%global postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api
+%define postun_javadoc() %{expand:
+ alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
exit 0
}
-%global post_javadoc_zip() %{expand:
+%define post_javadoc_zip() %{expand:
PRIORITY=%{priority}
-if [ "%1" == %{debug_suffix} ]; then
+if [ "%{?1}" == %{debug_suffix} ]; then
let PRIORITY=PRIORITY-1
fi
alternatives \\
- --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
\\
+ --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
$PRIORITY --family %{name}
exit 0
}
-%global postun_javadoc_zip() %{expand:
- alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
+%define postun_javadoc_zip() %{expand:
+ alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
exit 0
}
-%global files_jre() %{expand:
+%define files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
-%{_datadir}/applications/*policytool%1.desktop
+%{_datadir}/applications/*policytool%{?1}.desktop
}
-%global files_jre_headless() %{expand:
+%define files_jre_headless() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir %%1}
-%{_jvmdir}/%{jrelnk %%1}
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}
+%{_jvmdir}/%{jrelnk -- %{?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
-%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
-%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/orbd-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/pack200-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
-%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
+%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
+%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
+%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
%ifarch %{jit_arches}
%ifnarch %{power64}
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/server/classes.jsa
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/client/classes.jsa
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
%endif
%endif
-%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/
-%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
}
-%global files_devel() %{expand:
+%define files_devel() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/LICENSE
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir %%1}/bin
-%dir %{_jvmdir}/%{sdkdir %%1}/include
-%dir %{_jvmdir}/%{sdkdir %%1}/lib
-%{_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/amd64
-%{_jvmdir}/%{sdkdir %%1}/lib/ct.sym
-%{_jvmdir}/%{sdkdir %%1}/lib/ir.idl
-%{_jvmdir}/%{sdkdir %%1}/lib/jconsole.jar
-%{_jvmdir}/%{sdkdir %%1}/lib/orb.idl
-%{_jvmdir}/%{sdkdir %%1}/lib/sa-jdi.jar
-%{_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*
-%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/idlj-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jar-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/javac-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/javah-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/javap-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jdb-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jhat-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jmap-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jps-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jstack-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/xjc-%{uniquesuffix %%1}.1*
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
+%{_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/amd64
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
+%{_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*
+%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
%if %{with_systemtap}
%dir %{tapsetroot}
%dir %{tapsetdir}
-%{tapsetdir}/*%{version}-%{release}.%{_arch}%1.stp
-%dir %{_jvmdir}/%{sdkdir %%1}/tapset
-%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
+%{tapsetdir}/*%{version}-%{release}.%{_arch}%{?1}.stp
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/tapset
+%{_jvmdir}/%{sdkdir -- %{?1}}/tapset/*.stp
%endif
}
-%global files_demo() %{expand:
+%define files_demo() %{expand:
%defattr(-,root,root,-)
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
}
-%global files_src() %{expand:
+%define files_src() %{expand:
%defattr(-,root,root,-)
%doc README.src
-%{_jvmdir}/%{sdkdir %%1}/src.zip
+%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
}
-%global files_javadoc() %{expand:
+%define files_javadoc() %{expand:
%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir %%1}
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
}
-%global files_javadoc_zip() %{expand:
+%define files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir %%1}.zip
-%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+%license %{buildoutputdir -- %{?1}}/images/%{j2sdkimage}/jre/LICENSE
}
-%global files_accessibility() %{expand:
-%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libatk-wrapper.so
-%{_jvmdir}/%{jredir %%1}/lib/ext/java-atk-wrapper.jar
-%{_jvmdir}/%{jredir %%1}/lib/accessibility.properties
+%define files_accessibility() %{expand:
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
}
# not-duplicated requires/provides/obsolate for normal/debug packages
-%global java_rpo() %{expand:
+%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
# Requires rest of java
-Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides.
-Provides: jre-%{javaver}-%{origin}%1 = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}%1 = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver}%1 = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}%1 = %{epoch}:%{version}-%{release}
-Provides: jre = %{javaver}%1
-Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release}
-Provides: java%1 = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre = %{javaver}%{?1}
+Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java%{?1} = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
-Provides: java-fonts%1 = %{epoch}:%{version}
+Provides: java-fonts%{?1} = %{epoch}:%{version}
-Obsoletes: java-1.7.0-openjdk%1
-Obsoletes: java-1.5.0-gcj%1
+Obsoletes: java-1.7.0-openjdk%{?1}
+Obsoletes: java-1.5.0-gcj%{?1}
Obsoletes: sinjdoc
}
-%global java_headless_rpo() %{expand:
+%define java_headless_rpo() %{expand:
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
# Require javapackages-tools for ownership of /usr/lib/jvm/
@@ -743,35 +743,35 @@ Requires(postun): %{_sbindir}/alternatives
Requires(postun): chkconfig >= 1.7
# Standard JPackage base provides.
-Provides: jre-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
-Provides: jre-headless%1 = %{epoch}:%{javaver}
-Provides: java-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
-Provides: java-headless%1 = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-headless%{?1} = %{epoch}:%{javaver}
+Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-headless%{?1} = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
-Provides: jndi%1 = %{epoch}:%{version}
-Provides: jndi-ldap%1 = %{epoch}:%{version}
-Provides: jndi-cos%1 = %{epoch}:%{version}
-Provides: jndi-rmi%1 = %{epoch}:%{version}
-Provides: jndi-dns%1 = %{epoch}:%{version}
-Provides: jaas%1 = %{epoch}:%{version}
-Provides: jsse%1 = %{epoch}:%{version}
-Provides: jce%1 = %{epoch}:%{version}
-Provides: jdbc-stdext%1 = 4.1
-Provides: java-sasl%1 = %{epoch}:%{version}
+Provides: jndi%{?1} = %{epoch}:%{version}
+Provides: jndi-ldap%{?1} = %{epoch}:%{version}
+Provides: jndi-cos%{?1} = %{epoch}:%{version}
+Provides: jndi-rmi%{?1} = %{epoch}:%{version}
+Provides: jndi-dns%{?1} = %{epoch}:%{version}
+Provides: jaas%{?1} = %{epoch}:%{version}
+Provides: jsse%{?1} = %{epoch}:%{version}
+Provides: jce%{?1} = %{epoch}:%{version}
+Provides: jdbc-stdext%{?1} = 4.1
+Provides: java-sasl%{?1} = %{epoch}:%{version}
#https://bugzilla.redhat.com/show_bug.cgi?id=1312019
Provides: /usr/bin/jjs
-Obsoletes: java-1.7.0-openjdk-headless%1
+Obsoletes: java-1.7.0-openjdk-headless%{?1}
}
-%global java_devel_rpo() %{expand:
+%define java_devel_rpo() %{expand:
# Require base package.
-Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -782,30 +782,30 @@ Requires(postun): %{_sbindir}/alternatives
Requires(postun): chkconfig >= 1.7
# Standard JPackage devel provides.
-Provides: java-sdk-%{javaver}-%{origin}%1 = %{epoch}:%{version}
-Provides: java-sdk-%{javaver}%1 = %{epoch}:%{version}
-Provides: java-sdk-%{origin}%1 = %{epoch}:%{version}
-Provides: java-sdk%1 = %{epoch}:%{javaver}
-Provides: java-%{javaver}-devel%1 = %{epoch}:%{version}
-Provides: java-devel-%{origin}%1 = %{epoch}:%{version}
-Provides: java-devel%1 = %{epoch}:%{javaver}
-
-Obsoletes: java-1.7.0-openjdk-devel%1
-Obsoletes: java-1.5.0-gcj-devel%1
+Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}
+Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-sdk%{?1} = %{epoch}:%{javaver}
+Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}
+Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-devel%{?1} = %{epoch}:%{javaver}
+
+Obsoletes: java-1.7.0-openjdk-devel%{?1}
+Obsoletes: java-1.5.0-gcj-devel%{?1}
}
-%global java_demo_rpo() %{expand:
-Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+%define java_demo_rpo() %{expand:
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-demo = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-demo%1
+Obsoletes: java-1.7.0-openjdk-demo%{?1}
}
-%global java_javadoc_rpo() %{expand:
-OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+%define java_javadoc_rpo() %{expand:
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -816,36 +816,36 @@ Requires(postun): %{_sbindir}/alternatives
Requires(postun): chkconfig >= 1.7
# Standard JPackage javadoc provides.
-Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release}
+Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-javadoc = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-javadoc%1
+Obsoletes: java-1.7.0-openjdk-javadoc%{?1}
}
-%global java_src_rpo() %{expand:
-Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+%define java_src_rpo() %{expand:
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# Standard JPackage javadoc provides.
-Provides: java-src%1 = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-src%1 = %{epoch}:%{version}-%{release}
+Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-src = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-src%1
+Obsoletes: java-1.7.0-openjdk-src%{?1}
}
-%global java_accessibility_rpo() %{expand:
+%define java_accessibility_rpo() %{expand:
Requires: java-atk-wrapper%{?_isa}
-Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-accessibility%1
+Obsoletes: java-1.7.0-openjdk-accessibility%{?1}
}
# Prevent brp-java-repack-jars from being run.
-%global __jar_repack 0
+%define __jar_repack 0
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
@@ -1085,7 +1085,7 @@ The OpenJDK runtime environment.
Summary: OpenJDK Runtime Environment %{debug_on}
Group: Development/Languages
-%{java_rpo %{debug_suffix_unquoted}}
+%{java_rpo -- %{debug_suffix_unquoted}}
%description debug
The OpenJDK runtime environment.
%{debug_warning}
@@ -1107,7 +1107,7 @@ The OpenJDK runtime environment without audio and video support.
Summary: OpenJDK Runtime Environment %{debug_on}
Group: Development/Languages
-%{java_headless_rpo %{debug_suffix_unquoted}}
+%{java_headless_rpo -- %{debug_suffix_unquoted}}
%description headless-debug
The OpenJDK runtime environment without audio and video support.
@@ -1130,7 +1130,7 @@ The OpenJDK development tools.
Summary: OpenJDK Development Environment %{debug_on}
Group: Development/Tools
-%{java_devel_rpo %{debug_suffix_unquoted}}
+%{java_devel_rpo -- %{debug_suffix_unquoted}}
%description devel-debug
The OpenJDK development tools.
@@ -1153,7 +1153,7 @@ The OpenJDK demos.
Summary: OpenJDK Demos %{debug_on}
Group: Development/Languages
-%{java_demo_rpo %{debug_suffix_unquoted}}
+%{java_demo_rpo -- %{debug_suffix_unquoted}}
%description demo-debug
The OpenJDK demos.
@@ -1176,7 +1176,7 @@ The OpenJDK source bundle.
Summary: OpenJDK Source Bundle %{for_debug}
Group: Development/Languages
-%{java_src_rpo %{debug_suffix_unquoted}}
+%{java_src_rpo -- %{debug_suffix_unquoted}}
%description src-debug
The OpenJDK source bundle %{for_debug}.
@@ -1215,7 +1215,7 @@ Group: Documentation
Requires: javapackages-tools
BuildArch: noarch
-%{java_javadoc_rpo %{debug_suffix_unquoted}}
+%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
%description javadoc-debug
The OpenJDK API documentation %{for_debug}.
@@ -1228,7 +1228,7 @@ Group: Documentation
Requires: javapackages-tools
BuildArch: noarch
-%{java_javadoc_rpo %{debug_suffix_unquoted}}
+%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
%description javadoc-zip-debug
The OpenJDK API documentation compressed in single archive %{for_debug}.
@@ -1256,7 +1256,7 @@ need to.
%package accessibility-debug
Summary: OpenJDK accessibility connector %{for_debug}
-%{java_accessibility_rpo %{debug_suffix_unquoted}}
+%{java_accessibility_rpo -- %{debug_suffix_unquoted}}
%description accessibility-debug
See normal java-%{version}-openjdk-accessibility description.
@@ -1976,40 +1976,40 @@ require "copy_jdk_configs.lua"
%if %{include_debug_build}
%post debug
-%{post_script %{debug_suffix_unquoted}}
+%{post_script -- %{debug_suffix_unquoted}}
%post headless-debug
-%{post_headless %{debug_suffix_unquoted}}
+%{post_headless -- %{debug_suffix_unquoted}}
%postun debug
-%{postun_script %{debug_suffix_unquoted}}
+%{postun_script -- %{debug_suffix_unquoted}}
%postun headless-debug
-%{postun_headless %{debug_suffix_unquoted}}
+%{postun_headless -- %{debug_suffix_unquoted}}
%posttrans debug
-%{posttrans_script %{debug_suffix_unquoted}}
+%{posttrans_script -- %{debug_suffix_unquoted}}
%post devel-debug
-%{post_devel %{debug_suffix_unquoted}}
+%{post_devel -- %{debug_suffix_unquoted}}
%postun devel-debug
-%{postun_devel %{debug_suffix_unquoted}}
+%{postun_devel -- %{debug_suffix_unquoted}}
%posttrans devel-debug
-%{posttrans_devel %{debug_suffix_unquoted}}
+%{posttrans_devel -- %{debug_suffix_unquoted}}
%post javadoc-debug
-%{post_javadoc %{debug_suffix_unquoted}}
+%{post_javadoc -- %{debug_suffix_unquoted}}
%postun javadoc-debug
-%{postun_javadoc %{debug_suffix_unquoted}}
+%{postun_javadoc -- %{debug_suffix_unquoted}}
%post javadoc-zip-debug
-%{post_javadoc_zip %{debug_suffix_unquoted}}
+%{post_javadoc_zip -- %{debug_suffix_unquoted}}
%postun javadoc-zip-debug
-%{postun_javadoc_zip %{debug_suffix_unquoted}}
+%{postun_javadoc_zip -- %{debug_suffix_unquoted}}
%endif
%if %{include_normal_build}
@@ -2055,28 +2055,28 @@ require "copy_jdk_configs.lua"
%if %{include_debug_build}
%files debug -f %{name}.files-debug
-%{files_jre %{debug_suffix_unquoted}}
+%{files_jre -- %{debug_suffix_unquoted}}
%files headless-debug -f %{name}.files-headless-debug
-%{files_jre_headless %{debug_suffix_unquoted}}
+%{files_jre_headless -- %{debug_suffix_unquoted}}
%files devel-debug
-%{files_devel %{debug_suffix_unquoted}}
+%{files_devel -- %{debug_suffix_unquoted}}
%files demo-debug -f %{name}-demo.files-debug
-%{files_demo %{debug_suffix_unquoted}}
+%{files_demo -- %{debug_suffix_unquoted}}
%files src-debug
-%{files_src %{debug_suffix_unquoted}}
+%{files_src -- %{debug_suffix_unquoted}}
%files javadoc-debug
-%{files_javadoc %{debug_suffix_unquoted}}
+%{files_javadoc -- %{debug_suffix_unquoted}}
%files javadoc-zip-debug
-%{files_javadoc_zip %{debug_suffix_unquoted}}
+%{files_javadoc_zip -- %{debug_suffix_unquoted}}
%files accessibility-debug
-%{files_accessibility %{debug_suffix_unquoted}}
+%{files_accessibility -- %{debug_suffix_unquoted}}
%if %{with_openjfx_binding}
%files openjfx-debug -f %{name}-openjfx.files-debug
@@ -2091,6 +2091,7 @@ require "copy_jdk_configs.lua"
- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
- get rid of bin/* and lib/*, fixed rhbz1480777
+- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%{?1}, all expandable macros parameter preffixed by --
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
commit c6b7d2e7246e7e47071389e478949a101abe9a67
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Aug 23 08:44:28 2017 +0200
Updated to u144
diff --git a/.gitignore b/.gitignore
index eb623a8..4d30a19 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,11 +58,18 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u101-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
/systemtap-tapset-3.1.0.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u101-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u111-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u111-b15.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u111-b18.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u112-b16.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u121-b13.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
@@ -70,9 +77,17 @@
/openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-08.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
-/aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz
-/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
+/systemtap-tapset-3.4.0.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u131-b11.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b11.tar.xz
/systemtap-tapset-3.4.0pre01.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u141-b15.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u141-b16.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz
diff --git a/8164293-pr3412-rh1459641.patch b/8164293-pr3412-rh1459641.patch
new file mode 100644
index 0000000..3b08f8b
--- /dev/null
+++ b/8164293-pr3412-rh1459641.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User jcm
+# Date 1484137609 28800
+# Wed Jan 11 04:26:49 2017 -0800
+# Node ID 1faf7c17089922f6f72b580253725f2ecb6ba2f8
+# Parent 3d07e14d65bc223dbfe94be9224e4aa8c6e63762
+8164293, PR3412, RH1459641: HotSpot leaking memory in long-running requests
+Summary: Applied RMs in sweep_code_cache and related codes.
+Reviewed-by: kvn, thartmann
+
+diff --git a/src/share/vm/code/nmethod.cpp b/src/share/vm/code/nmethod.cpp
+--- openjdk/hotspot/src/share/vm/code/nmethod.cpp
++++ openjdk/hotspot/src/share/vm/code/nmethod.cpp
+@@ -1172,6 +1172,7 @@
+ // Clear ICStubs of all compiled ICs
+ void nmethod::clear_ic_stubs() {
+ assert_locked_or_safepoint(CompiledIC_lock);
++ ResourceMark rm;
+ RelocIterator iter(this);
+ while(iter.next()) {
+ if (iter.type() == relocInfo::virtual_call_type) {
+diff --git a/src/share/vm/runtime/sweeper.cpp b/src/share/vm/runtime/sweeper.cpp
+--- openjdk/hotspot/src/share/vm/runtime/sweeper.cpp
++++ openjdk/hotspot/src/share/vm/runtime/sweeper.cpp
+@@ -319,6 +319,7 @@
+ }
+
+ void NMethodSweeper::sweep_code_cache() {
++ ResourceMark rm;
+ Ticks sweep_start_counter = Ticks::now();
+
+ _flushed_count = 0;
+@@ -626,6 +627,7 @@
+ // state of the code cache if it's requested.
+ void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) {
+ if (PrintMethodFlushing) {
++ ResourceMark rm;
+ stringStream s;
+ // Dump code cache state into a buffer before locking the tty,
+ // because log_state() will use locks causing lock conflicts.
+@@ -643,6 +645,7 @@
+ }
+
+ if (LogCompilation && (xtty != NULL)) {
++ ResourceMark rm;
+ stringStream s;
+ // Dump code cache state into a buffer before locking the tty,
+ // because log_state() will use locks causing lock conflicts.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d7b36ff..22c1977 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,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-jdk8u141-b16
+%global revision aarch64-jdk8u144-b01
# 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
@@ -572,9 +572,58 @@ 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/amd64
+%{_jvmdir}/%{sdkdir %%1}/lib/ct.sym
+%{_jvmdir}/%{sdkdir %%1}/lib/ir.idl
+%{_jvmdir}/%{sdkdir %%1}/lib/jconsole.jar
+%{_jvmdir}/%{sdkdir %%1}/lib/orb.idl
+%{_jvmdir}/%{sdkdir %%1}/lib/sa-jdi.jar
+%{_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*
%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
@@ -790,7 +839,7 @@ Requires: java-atk-wrapper%{?_isa}
Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-%{origin}-accessiblity = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-accessibility%1
}
@@ -800,7 +849,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -826,7 +875,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -952,6 +1001,10 @@ Patch552: 8179084-pr3409-rh1455694.patch
# 8175887, PR3415: C1 value numbering handling of Unsafe.get*Volatile is incorrect
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 ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1354,7 +1407,7 @@ sh %{SOURCE12}
%patch551
%patch552
%patch553
-%patch554
+%patch555
# RPM-only fixes
%patch525
@@ -1366,6 +1419,12 @@ sh %{SOURCE12}
%patch534
%endif
+# 8175887 was added to the Shenandoah HotSpot ahead of time
+%if %{use_shenandoah_hotspot}
+%else
+%patch554
+%endif
+
%patch1000
# Extract systemtap tapsets
@@ -2027,6 +2086,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 23 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-1.b01
+- Update to aarch64-jdk8u144-b01 and aarch64-shenandoah-jdk8u144-b01.
+- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
+- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
+- get rid of bin/* and lib/*, fixed rhbz1480777
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
diff --git a/sources b/sources
index b8cfa8e..467a662 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u141-b16.tar.xz) =
154cc4bebb9a0809f548f630b5d4fa45befe7e5cf784236540205f254913495157f99f63a5b2223487bbff4c430e60cc53b4aacd9e843309f657929b500b061d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz) =
b6bf3383fcd8fb44308eff3ba93a4a635851a4c30e91957c5771990523b0c7c1f7a2acc7ec0472e196c26633a5df7d7b592b933f55ec9cdda63b37a14395ef10
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u144-b01.tar.xz) =
dbad1a2a4b58606d2aaaf2124b917362b883b1a5f43eb06c33f8c9b5e5de7cfb00926d39efb6b10fd59792d140302640f8ec2d6b45839e80e3f42a3d027932ad
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b01.tar.xz) =
8330d8864f860c54705ec72caefd8e02a0d75bc435ec3c8b10a4c96825155d0473617caa7dde45042211f3c1151042d419853eed3514032e8d71333ed14eebc1
diff --git a/update_package.sh b/update_package.sh
index 5168356..db067ca 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u141-b16"
+ VERSION="aarch64-jdk8u144-b01"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u141-b16"
+ VERSION="aarch64-shenandoah-jdk8u144-b01"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 482d973b4bd9e2447ddc74c111276299a136ba45
Merge: 52f8b10 602ad57
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 7 15:12:43 2017 +0200
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk
commit 52f8b108599c7403f234002619db12175d66c95f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 7 15:11:59 2017 +0200
Removed fixme, probably wrongly configured system
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3f51ceb..5c03a2c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -572,10 +572,8 @@ exit 0
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
-#fixme!!! contaisn fx files
%{_jvmdir}/%{sdkdir %%1}/bin/*
%{_jvmdir}/%{sdkdir %%1}/include/*
-#fixme!!! contaisn fx files
%{_jvmdir}/%{sdkdir %%1}/lib/*
%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
commit 9708b4fa12e5ef2a0aabc941ef0b71b29db313a5
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 7 15:01:35 2017 +0200
added fixme about fx
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5c03a2c..3f51ceb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -572,8 +572,10 @@ exit 0
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
+#fixme!!! contaisn fx files
%{_jvmdir}/%{sdkdir %%1}/bin/*
%{_jvmdir}/%{sdkdir %%1}/include/*
+#fixme!!! contaisn fx files
%{_jvmdir}/%{sdkdir %%1}/lib/*
%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
commit 602ad57bd2e3a5eb589a33bff11cfc8fa906cdec
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Aug 2 23:57:37 2017 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b99ef58..d7b36ff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -800,7 +800,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -2027,6 +2027,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 1:1.8.0.141-4.b16
- Rebuild with binutils fix for ppc64le (#1475636)
commit ebf130b934c8cdabea2337ec31a416b8a1b88ba9
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Sun Jul 30 14:45:59 2017 +0200
Rebuild with fixed binutils for ppc64le (#1475636)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5c03a2c..b99ef58 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -800,7 +800,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -2027,6 +2027,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 1:1.8.0.141-4.b16
+- Rebuild with binutils fix for ppc64le (#1475636)
+
* Wed Jul 26 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
- added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
commit 019a592c036cd421f48b71780f59d7654c04ca1e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jul 26 16:48:28 2017 +0200
Actually added the patch ...
diff --git a/aarch64BuildFailure.patch b/aarch64BuildFailure.patch
new file mode 100644
index 0000000..ccd2f49
--- /dev/null
+++ b/aarch64BuildFailure.patch
@@ -0,0 +1,14 @@
+diff -r 214a94e9366c src/cpu/aarch64/vm/nativeInst_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 17 12:11:32 2017
+0000
++++ openjdk/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp Mon Jul 24 16:23:14 2017
+0100
+@@ -343,7 +343,7 @@
+ CodeBuffer cb(code_pos, instruction_size);
+ MacroAssembler a(&cb);
+
+- a.mov(rscratch1, entry);
++ a.movptr(rscratch1, (uintptr_t)entry);
+ a.br(rscratch1);
+
+ ICache::invalidate_range(code_pos, instruction_size);
+
+
commit 57997e97c3434fbdacd94cc9df7744fe03955acc
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jul 26 16:39:43 2017 +0200
Fixed changelog date
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0b10bf0..5c03a2c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -2027,7 +2027,7 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
+* Wed Jul 26 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
- added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-2.b16
commit e75542b6fd2626ce74a43c8cc78d97c6609668a5
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jul 26 16:38:12 2017 +0200
added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index af1b76b..0b10bf0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -800,7 +800,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -957,6 +957,7 @@ Patch554: 8175887-pr3415.patch
Patch201: system-libjpeg.patch
# custom securities
Patch207: PR3183.patch
+Patch208: aarch64BuildFailure.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
@@ -1306,6 +1307,7 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
+%patch208
%patch1
%patch3
@@ -2025,6 +2027,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
+- added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
+
* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-2.b16
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
commit ccefe59743d0acbb3fd0acf3c359468c7cd21914
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jul 26 13:59:48 2017 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a2b4461..af1b76b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -800,7 +800,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -2025,6 +2025,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-2.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-1.b16
- updated to security u141.b16
- sync patches with rhel7
commit 4f0aee953b378391809ed0412962b9b9cd36a995
Author: Jiri <jvanek(a)redhat.com>
Date: Sat Jul 22 08:59:20 2017 +0200
removed no longer defined jvmjardir
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4804d6d..a2b4461 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -234,7 +234,6 @@
%global jredir() %{expand:%{sdkdir %%1}/jre}
%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin}
-%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}}
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
@@ -280,7 +279,6 @@ ext=.gz
alternatives \\
--install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
- --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\
--slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
--slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\
--slave %{_bindir}/orbd orbd %{jrebindir %%1}/orbd \\
@@ -315,15 +313,11 @@ alternatives \\
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext
for X in %{origin} %{javaver} ; do
- alternatives \\
- --install %{_jvmdir}/jre-"$X" \\
- jre_"$X" %{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name}.%{_arch} \\
- --slave %{_jvmjardir}/jre-"$X" \\
- jre_"$X"_exports %{_jvmdir}/%{jredir %%1}
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name}.%{_arch}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name}.%{_arch} \\
---slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir %%1}
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name}.%{_arch}
+
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -371,7 +365,6 @@ ext=.gz
alternatives \\
--install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
- --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
--slave %{_bindir}/extcheck extcheck %{sdkbindir %%1}/extcheck \\
--slave %{_bindir}/idlj idlj %{sdkbindir %%1}/idlj \\
@@ -461,14 +454,10 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
- --install %{_jvmdir}/java-"$X" \\
- java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name}.%{_arch}
\\
- --slave %{_jvmjardir}/java-"$X" \\
- java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1}
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
%%1} $PRIORITY --family %{name}.%{_arch}
done
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family
%{name}.%{_arch} \\
---slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -544,9 +533,7 @@ exit 0
%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}
%{_jvmdir}/%{jrelnk %%1}
-%{_jvmjardir}/%{jrelnk %%1}
%{_jvmprivdir}/*
-%{jvmjardir %%1}
%dir %{_jvmdir}/%{jredir %%1}/lib/security
%{_jvmdir}/%{jredir %%1}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/US_export_policy.jar
@@ -588,7 +575,6 @@ exit 0
%{_jvmdir}/%{sdkdir %%1}/bin/*
%{_jvmdir}/%{sdkdir %%1}/include/*
%{_jvmdir}/%{sdkdir %%1}/lib/*
-%{_jvmjardir}/%{sdkdir %%1}
%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
@@ -1667,30 +1653,6 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
ln -sf $RELATIVE/cacerts .
popd
- # Install extension symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix}
- pushd $RPM_BUILD_ROOT%{jvmjardir $suffix}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir $suffix}/lib %{jvmjardir $suffix})
- ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
- ln -sf $RELATIVE/jce.jar jce-%{version}.jar
- ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
- ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar
- ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar
- ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar
- ln -sf $RELATIVE/rt.jar jaas-%{version}.jar
- ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar
- ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
- ln -sf $RELATIVE/rt.jar sasl-%{version}.jar
- for jar in *-%{version}.jar
- do
- if [ x%{version} != x%{javaver} ]
- then
- ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
- fi
- ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g")
- done
- popd
-
# Install JCE policy symlinks.
install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix $suffix}/jce/vanilla
@@ -1699,10 +1661,6 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
ln -sf %{jredir $suffix} %{jrelnk $suffix}
popd
- pushd $RPM_BUILD_ROOT%{_jvmjardir}
- ln -sf %{sdkdir $suffix} %{jrelnk $suffix}
- popd
-
# Remove javaws man page
rm -f man/man1/javaws*
@@ -2070,6 +2028,7 @@ require "copy_jdk_configs.lua"
* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-1.b16
- updated to security u141.b16
- sync patches with rhel7
+- removed no longer defined jvmjardir
* Sat Jun 17 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-7.b12
- adapted to no longer noarch openjfx-devel
commit 3c096f37e4877cdcc8b9bd701517d658cc5020fe
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Jul 21 14:45:27 2017 +0200
updated to security u141.b16
- sync patches with rhel7
diff --git a/.gitignore b/.gitignore
index 03ab3f7..eb623a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,3 +74,5 @@
/aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
/systemtap-tapset-3.4.0pre01.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u141-b16.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz
diff --git a/6515172-pr3346.patch b/6515172-pr3346.patch
deleted file mode 100644
index 4b8e8a2..0000000
--- a/6515172-pr3346.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-# HG changeset patch
-# User shshahma
-# Date 1474535080 25200
-# Thu Sep 22 02:04:40 2016 -0700
-# Node ID baf64c88538f477d7f5a0cf90b670108ac312375
-# Parent 62212568179b76b5ebe7b0129ddeed7b268b0bc0
-6515172, PR3346: Runtime.availableProcessors() ignores Linux taskset command
-Summary: extract processor count from sched_getaffinity mask
-Reviewed-by: dholmes, gthornbr
-
-diff --git a/src/os/linux/vm/globals_linux.hpp b/src/os/linux/vm/globals_linux.hpp
---- openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 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
-@@ -47,7 +47,10 @@
- "Load DLLs with executable-stack attribute in the VM Thread") \
- \
- product(bool, UseSHM, false, \
-- "Use SYSV shared memory for large pages")
-+ "Use SYSV shared memory for large pages") \
-+ \
-+ diagnostic(bool, PrintActiveCpus, false, \
-+ "Print the number of CPUs detected in os::active_processor_count")
-
- //
- // Defines Linux-specific default values. The flags are available on all
-diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 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
-@@ -104,6 +104,14 @@
-
- PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
-
-+#ifndef _GNU_SOURCE
-+ #define _GNU_SOURCE
-+ #include <sched.h>
-+ #undef _GNU_SOURCE
-+#else
-+ #include <sched.h>
-+#endif
-+
- // if RUSAGE_THREAD for getrusage() has not been defined, do it here. The code calling
- // getrusage() is prepared to handle the associated failure.
- #ifndef RUSAGE_THREAD
-@@ -5027,12 +5035,42 @@
- }
- };
-
-+static int os_cpu_count(const cpu_set_t* cpus) {
-+ int count = 0;
-+ // only look up to the number of configured processors
-+ for (int i = 0; i < os::processor_count(); i++) {
-+ if (CPU_ISSET(i, cpus)) {
-+ count++;
-+ }
-+ }
-+ return count;
-+}
-+
-+// Get the current number of available processors for this process.
-+// This value can change at any time during a process's lifetime.
-+// sched_getaffinity gives an accurate answer as it accounts for cpusets.
-+// If anything goes wrong we fallback to returning the number of online
-+// processors - which can be greater than the number available to the process.
- int os::active_processor_count() {
-- // Linux doesn't yet have a (official) notion of processor sets,
-- // so just return the number of online processors.
-- int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
-- assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity
check");
-- return online_cpus;
-+ cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
-+ int cpus_size = sizeof(cpu_set_t);
-+ int cpu_count = 0;
-+
-+ // pid 0 means the current thread - which we have to assume represents the process
-+ if (sched_getaffinity(0, cpus_size, &cpus) == 0) {
-+ cpu_count = os_cpu_count(&cpus);
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: sched_getaffinity processor count:
%d", cpu_count);
-+ }
-+ }
-+ else {
-+ cpu_count = ::sysconf(_SC_NPROCESSORS_ONLN);
-+ warning("sched_getaffinity failed (%s)- using online processor count (%d)
"
-+ "which may exceed available processors", strerror(errno),
cpu_count);
-+ }
-+
-+ assert(cpu_count > 0 && cpu_count <= processor_count(), "sanity
check");
-+ return cpu_count;
- }
-
- void os::set_native_thread_name(const char *name) {
-diff --git a/test/runtime/os/AvailableProcessors.java
b/test/runtime/os/AvailableProcessors.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/runtime/os/AvailableProcessors.java
-@@ -0,0 +1,103 @@
-+/*
-+ * 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.io.File;
-+import com.oracle.java.testlibrary.ProcessTools;
-+import com.oracle.java.testlibrary.OutputAnalyzer;
-+import java.util.ArrayList;
-+
-+/*
-+ * @test
-+ * @bug 6515172
-+ * @summary Check that availableProcessors reports the correct value when running in a
cpuset on linux
-+ * @requires os.family == "linux"
-+ * @library /testlibrary
-+ * @build com.oracle.java.testlibrary.*
-+ * @run driver AvailableProcessors
-+ */
-+public class AvailableProcessors {
-+
-+ static final String SUCCESS_STRING = "Found expected processors: ";
-+
-+ public static void main(String[] args) throws Throwable {
-+ if (args.length > 0)
-+ checkProcessors(Integer.parseInt(args[0]));
-+ else {
-+ // run ourselves under different cpu configurations
-+ // using the taskset command
-+ String taskset;
-+ final String taskset1 = "/bin/taskset";
-+ final String taskset2 = "/usr/bin/taskset";
-+ if (new File(taskset1).exists())
-+ taskset = taskset1;
-+ else if (new File(taskset2).exists())
-+ taskset = taskset2;
-+ else {
-+ System.out.println("Skipping test: could not find taskset
command");
-+ return;
-+ }
-+
-+ int available = Runtime.getRuntime().availableProcessors();
-+
-+ if (available == 1) {
-+ System.out.println("Skipping test: only one processor
available");
-+ return;
-+ }
-+
-+ // Get the java command we want to execute
-+ // Enable logging for easier failure diagnosis
-+ ProcessBuilder master =
-+ ProcessTools.createJavaProcessBuilder(false,
-+
"-XX:+UnlockDiagnosticVMOptions",
-+
"-XX:+PrintActiveCpus",
-+
"AvailableProcessors");
-+
-+ int[] expected = new int[] { 1, available/2, available-1, available };
-+
-+ for (int i : expected) {
-+ System.out.println("Testing for " + i + " processors
...");
-+ int max = i - 1;
-+ ArrayList<String> cmdline = new
ArrayList<>(master.command());
-+ // prepend taskset command
-+ cmdline.add(0, "0-" + max);
-+ cmdline.add(0, "-c");
-+ cmdline.add(0, taskset);
-+ // append expected processor count
-+ cmdline.add(String.valueOf(i));
-+ ProcessBuilder pb = new ProcessBuilder(cmdline);
-+ System.out.println("Final command line: " +
-+ ProcessTools.getCommandLine(pb));
-+ OutputAnalyzer output = ProcessTools.executeProcess(pb);
-+ output.shouldContain(SUCCESS_STRING);
-+ }
-+ }
-+ }
-+
-+ static void checkProcessors(int expected) {
-+ int available = Runtime.getRuntime().availableProcessors();
-+ if (available != expected)
-+ throw new Error("Expected " + expected + " processors, but
found "
-+ + available);
-+ else
-+ System.out.println(SUCCESS_STRING + available);
-+ }
-+}
diff --git a/8144566-pr3352.patch b/8144566-pr3352.patch
deleted file mode 100644
index 9a2a294..0000000
--- a/8144566-pr3352.patch
+++ /dev/null
@@ -1,911 +0,0 @@
-# HG changeset patch
-# User rpatil
-# Date 1474623897 -19800
-# Fri Sep 23 15:14:57 2016 +0530
-# Node ID fb617df8fbac42e962219e45cbd29b15b5ecdc63
-# Parent d41592af9af3790fe5eee30ce686d85cff09c942
-8144566, PR3352: Custom HostnameVerifier disables SNI extension
-Reviewed-by: coffeys
-
-diff --git a/src/share/classes/sun/security/ssl/SSLSocketImpl.java
b/src/share/classes/sun/security/ssl/SSLSocketImpl.java
---- openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
-+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1996, 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
-@@ -220,6 +220,11 @@
- Collections.<SNIServerName>emptyList();
- Collection<SNIMatcher> sniMatchers =
- Collections.<SNIMatcher>emptyList();
-+ // Is the serverNames set to empty with SSLParameters.setServerNames()?
-+ private boolean noSniExtension = false;
-+
-+ // Is the sniMatchers set to empty with SSLParameters.setSNIMatchers()?
-+ private boolean noSniMatcher = false;
-
- /*
- * READ ME * READ ME * READ ME * READ ME * READ ME * READ ME *
-@@ -666,6 +671,11 @@
- }
-
- super.connect(endpoint, timeout);
-+
-+ if (host == null || host.length() == 0) {
-+ useImplicitHost(false);
-+ }
-+
- doneConnect();
- }
-
-@@ -2158,41 +2168,61 @@
- output.r.setVersion(protocolVersion);
- }
-
-+ //
-+ // ONLY used by ClientHandshaker for the server hostname during handshaking
-+ //
- synchronized String getHost() {
- // Note that the host may be null or empty for localhost.
- if (host == null || host.length() == 0) {
-- if (!trustNameService) {
-- // If the local name service is not trustworthy, reverse host
-- // name resolution should not be performed for endpoint
-- // identification. Use the application original specified
-- // hostname or IP address instead.
-- host = getOriginalHostname(getInetAddress());
-- } else {
-- host = getInetAddress().getHostName();
-- }
-+ useImplicitHost(true);
- }
-
- return host;
- }
-
- /*
-- * Get the original application specified hostname.
-+ * Try to set and use the implicit specified hostname
- */
-- private static String getOriginalHostname(InetAddress inetAddress) {
-- /*
-- * Get the original hostname via sun.misc.SharedSecrets.
-- */
-+ private synchronized void useImplicitHost(boolean noSniUpdate) {
-+
-+ // Note: If the local name service is not trustworthy, reverse
-+ // host name resolution should not be performed for endpoint
-+ // identification. Use the application original specified
-+ // hostname or IP address instead.
-+
-+ // Get the original hostname via jdk.internal.misc.SharedSecrets
-+ InetAddress inetAddress = getInetAddress();
-+ if (inetAddress == null) { // not connected
-+ return;
-+ }
-+
- JavaNetAccess jna = SharedSecrets.getJavaNetAccess();
- String originalHostname = jna.getOriginalHostName(inetAddress);
-+ if ((originalHostname != null) &&
-+ (originalHostname.length() != 0)) {
-
-- /*
-- * If no application specified hostname, use the IP address.
-- */
-- if (originalHostname == null || originalHostname.length() == 0) {
-- originalHostname = inetAddress.getHostAddress();
-+ host = originalHostname;
-+ if (!noSniUpdate && serverNames.isEmpty() &&
!noSniExtension) {
-+ serverNames =
-+ Utilities.addToSNIServerNameList(serverNames, host);
-+
-+ if (!roleIsServer &&
-+ (handshaker != null) && !handshaker.started()) {
-+ handshaker.setSNIServerNames(serverNames);
-+ }
-+ }
-+
-+ return;
- }
-
-- return originalHostname;
-+ // No explicitly specified hostname, no server name indication.
-+ if (!trustNameService) {
-+ // The local name service is not trustworthy, use IP address.
-+ host = inetAddress.getHostAddress();
-+ } else {
-+ // Use the underlying reverse host name resolution service.
-+ host = getInetAddress().getHostName();
-+ }
- }
-
-
-@@ -2205,6 +2235,10 @@
- this.host = host;
- this.serverNames =
- Utilities.addToSNIServerNameList(this.serverNames, this.host);
-+
-+ if (!roleIsServer && (handshaker != null) &&
!handshaker.started()) {
-+ handshaker.setSNIServerNames(serverNames);
-+ }
- }
-
- /**
-@@ -2571,8 +2605,21 @@
- // the super implementation does not handle the following parameters
- params.setEndpointIdentificationAlgorithm(identificationProtocol);
- params.setAlgorithmConstraints(algorithmConstraints);
-- params.setSNIMatchers(sniMatchers);
-- params.setServerNames(serverNames);
-+
-+ if (sniMatchers.isEmpty() && !noSniMatcher) {
-+ // 'null' indicates none has been set
-+ params.setSNIMatchers(null);
-+ } else {
-+ params.setSNIMatchers(sniMatchers);
-+ }
-+
-+ if (serverNames.isEmpty() && !noSniExtension) {
-+ // 'null' indicates none has been set
-+ params.setServerNames(null);
-+ } else {
-+ params.setServerNames(serverNames);
-+ }
-+
- params.setUseCipherSuitesOrder(preferLocalCipherSuites);
-
- return params;
-@@ -2592,11 +2639,13 @@
-
- List<SNIServerName> sniNames = params.getServerNames();
- if (sniNames != null) {
-+ noSniExtension = sniNames.isEmpty();
- serverNames = sniNames;
- }
-
- Collection<SNIMatcher> matchers = params.getSNIMatchers();
- if (matchers != null) {
-+ noSniMatcher = matchers.isEmpty();
- sniMatchers = matchers;
- }
-
-diff --git a/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
b/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
-@@ -0,0 +1,337 @@
-+/*
-+ * 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.
-+ */
-+
-+//
-+// SunJSSE does not support dynamic system properties, no way to re-use
-+// system properties in samevm/agentvm mode.
-+//
-+
-+/**
-+ * @test
-+ * @bug 8144566
-+ * @summary Custom HostnameVerifier disables SNI extension
-+ * @run main/othervm BestEffortOnLazyConnected
-+ */
-+
-+import java.io.*;
-+import java.nio.*;
-+import java.nio.channels.*;
-+import java.util.*;
-+import java.net.*;
-+import javax.net.ssl.*;
-+
-+public class BestEffortOnLazyConnected {
-+
-+ /*
-+ * =============================================================
-+ * Set the various variables needed for the tests, then
-+ * specify what tests to run on each side.
-+ */
-+
-+ /*
-+ * Should we run the client or server in a separate thread?
-+ * Both sides can throw exceptions, but do you have a preference
-+ * as to which side should be the main thread.
-+ */
-+ private static final boolean separateServerThread = true;
-+
-+ /*
-+ * Where do we find the keystores?
-+ */
-+ private static final String pathToStores =
"../../../../sun/security/ssl/etc";
-+ private static final String keyStoreFile = "keystore";
-+ private static final String trustStoreFile = "truststore";
-+ private static final String passwd = "passphrase";
-+
-+ /*
-+ * Is the server ready to serve?
-+ */
-+ private static volatile boolean serverReady = false;
-+
-+ /*
-+ * Turn on SSL debugging?
-+ */
-+ private static final boolean debug = false;
-+
-+ /*
-+ * the fully qualified domain name of localhost
-+ */
-+ private static String hostname = null;
-+
-+ /*
-+ * If the client or server is doing some kind of object creation
-+ * that the other side depends on, and that thread prematurely
-+ * exits, you may experience a hang. The test harness will
-+ * terminate all hung threads after its timeout has expired,
-+ * currently 3 minutes by default, but you might try to be
-+ * smart about it....
-+ */
-+
-+ /*
-+ * Define the server side of the test.
-+ *
-+ * If the server prematurely exits, serverReady will be set to true
-+ * to avoid infinite hangs.
-+ */
-+ private void doServerSide() throws Exception {
-+ SSLServerSocketFactory sslssf =
-+ (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
-+ try (SSLServerSocket sslServerSocket =
-+ (SSLServerSocket) sslssf.createServerSocket(serverPort)) {
-+
-+ serverPort = sslServerSocket.getLocalPort();
-+
-+ /*
-+ * Signal Client, we're ready for his connect.
-+ */
-+ serverReady = true;
-+
-+ try (SSLSocket sslSocket = (SSLSocket)sslServerSocket.accept()) {
-+ InputStream sslIS = sslSocket.getInputStream();
-+ OutputStream sslOS = sslSocket.getOutputStream();
-+
-+ sslIS.read();
-+ sslOS.write(85);
-+ sslOS.flush();
-+
-+ ExtendedSSLSession session =
-+ (ExtendedSSLSession)sslSocket.getSession();
-+ if (session.getRequestedServerNames().isEmpty()) {
-+ throw new Exception("No expected Server Name
Indication");
-+ }
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Define the client side of the test.
-+ *
-+ * If the server prematurely exits, serverReady will be set to true
-+ * to avoid infinite hangs.
-+ */
-+ private void doClientSide() throws Exception {
-+
-+ /*
-+ * Wait for server to get started.
-+ */
-+ while (!serverReady) {
-+ Thread.sleep(50);
-+ }
-+
-+ SSLSocketFactory sslsf =
-+ (SSLSocketFactory) SSLSocketFactory.getDefault();
-+
-+ try (SSLSocket sslSocket = (SSLSocket)sslsf.createSocket()) {
-+
-+ sslSocket.connect(new InetSocketAddress(hostname, serverPort), 0);
-+
-+ InputStream sslIS = sslSocket.getInputStream();
-+ OutputStream sslOS = sslSocket.getOutputStream();
-+
-+ sslOS.write(280);
-+ sslOS.flush();
-+ sslIS.read();
-+ }
-+ }
-+
-+
-+ /*
-+ * =============================================================
-+ * The remainder is just support stuff
-+ */
-+
-+ // use any free port by default
-+ private volatile int serverPort = 0;
-+
-+ private volatile Exception serverException = null;
-+ private volatile Exception clientException = null;
-+
-+ public static void main(String[] args) throws Exception {
-+ String keyFilename =
-+ System.getProperty("test.src", ".") + "/" +
pathToStores +
-+ "/" + keyStoreFile;
-+ String trustFilename =
-+ System.getProperty("test.src", ".") + "/" +
pathToStores +
-+ "/" + trustStoreFile;
-+
-+ System.setProperty("javax.net.ssl.keyStore", keyFilename);
-+ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
-+ System.setProperty("javax.net.ssl.trustStore", trustFilename);
-+ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
-+
-+ if (debug) {
-+ System.setProperty("javax.net.debug", "all");
-+ }
-+
-+ try {
-+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
-+ } catch (UnknownHostException uhe) {
-+ System.out.println(
-+ "Ignore the test as the local hostname cannot be
determined");
-+
-+ return;
-+ }
-+
-+ System.out.println(
-+ "The fully qualified domain name of the local host is " +
-+ hostname);
-+ // Ignore the test if the hostname does not sound like a domain name.
-+ if ((hostname == null) || hostname.isEmpty() ||
-+ hostname.startsWith("localhost") ||
-+ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
-+
-+ System.out.println("Ignore the test as the local hostname " +
-+ "cannot be determined as fully qualified domain name");
-+
-+ return;
-+ }
-+
-+ /*
-+ * Start the tests.
-+ */
-+ new BestEffortOnLazyConnected();
-+ }
-+
-+ private Thread clientThread = null;
-+ private Thread serverThread = null;
-+
-+ /*
-+ * Primary constructor, used to drive remainder of the test.
-+ *
-+ * Fork off the other side, then do your work.
-+ */
-+ BestEffortOnLazyConnected() throws Exception {
-+ try {
-+ if (separateServerThread) {
-+ startServer(true);
-+ startClient(false);
-+ } else {
-+ startClient(true);
-+ startServer(false);
-+ }
-+ } catch (Exception e) {
-+ // swallow for now. Show later
-+ }
-+
-+ /*
-+ * Wait for other side to close down.
-+ */
-+ if (separateServerThread) {
-+ serverThread.join();
-+ } else {
-+ clientThread.join();
-+ }
-+
-+ /*
-+ * When we get here, the test is pretty much over.
-+ * Which side threw the error?
-+ */
-+ Exception local;
-+ Exception remote;
-+ String whichRemote;
-+
-+ if (separateServerThread) {
-+ remote = serverException;
-+ local = clientException;
-+ whichRemote = "server";
-+ } else {
-+ remote = clientException;
-+ local = serverException;
-+ whichRemote = "client";
-+ }
-+
-+ /*
-+ * If both failed, return the curthread's exception, but also
-+ * print the remote side Exception
-+ */
-+ if ((local != null) && (remote != null)) {
-+ System.out.println(whichRemote + " also threw:");
-+ remote.printStackTrace();
-+ System.out.println();
-+ throw local;
-+ }
-+
-+ if (remote != null) {
-+ throw remote;
-+ }
-+
-+ if (local != null) {
-+ throw local;
-+ }
-+ }
-+
-+ private void startServer(boolean newThread) throws Exception {
-+ if (newThread) {
-+ serverThread = new Thread() {
-+ public void run() {
-+ try {
-+ doServerSide();
-+ } catch (Exception e) {
-+ /*
-+ * Our server thread just died.
-+ *
-+ * Release the client, if not active already...
-+ */
-+ System.err.println("Server died...");
-+ serverReady = true;
-+ serverException = e;
-+ }
-+ }
-+ };
-+ serverThread.start();
-+ } else {
-+ try {
-+ doServerSide();
-+ } catch (Exception e) {
-+ serverException = e;
-+ } finally {
-+ serverReady = true;
-+ }
-+ }
-+ }
-+
-+ private void startClient(boolean newThread) throws Exception {
-+ if (newThread) {
-+ clientThread = new Thread() {
-+ public void run() {
-+ try {
-+ doClientSide();
-+ } catch (Exception e) {
-+ /*
-+ * Our client thread just died.
-+ */
-+ System.err.println("Client died...");
-+ clientException = e;
-+ }
-+ }
-+ };
-+ clientThread.start();
-+ } else {
-+ try {
-+ doClientSide();
-+ } catch (Exception e) {
-+ clientException = e;
-+ }
-+ }
-+ }
-+}
-diff --git a/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
b/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
-@@ -0,0 +1,390 @@
-+/*
-+ * 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.
-+ */
-+
-+//
-+// SunJSSE does not support dynamic system properties, no way to re-use
-+// system properties in samevm/agentvm mode.
-+//
-+
-+/*
-+ * @test
-+ * @bug 8144566
-+ * @summary Custom HostnameVerifier disables SNI extension
-+ * @run main/othervm ImpactOnSNI
-+ */
-+
-+import java.io.*;
-+import java.net.*;
-+import javax.net.ssl.*;
-+
-+public class ImpactOnSNI {
-+
-+ /*
-+ * =============================================================
-+ * Set the various variables needed for the tests, then
-+ * specify what tests to run on each side.
-+ */
-+
-+ /*
-+ * Should we run the client or server in a separate thread?
-+ * Both sides can throw exceptions, but do you have a preference
-+ * as to which side should be the main thread.
-+ */
-+ private static final boolean separateServerThread = true;
-+
-+ /*
-+ * Where do we find the keystores?
-+ */
-+ private static final String pathToStores =
-+
"../../../../../../sun/security/ssl/etc";
-+ private static final String keyStoreFile = "keystore";
-+ private static final String trustStoreFile = "truststore";
-+ private static final String passwd = "passphrase";
-+
-+ /*
-+ * Is the server ready to serve?
-+ */
-+ private static volatile boolean serverReady = false;
-+
-+ /*
-+ * Is the connection ready to close?
-+ */
-+ private static volatile boolean closeReady = false;
-+
-+ /*
-+ * Turn on SSL debugging?
-+ */
-+ private static final boolean debug = false;
-+
-+ /*
-+ * Message posted
-+ */
-+ private static final String postMsg = "HTTP post on a https server";
-+
-+ /*
-+ * the fully qualified domain name of localhost
-+ */
-+ private static String hostname = null;
-+
-+ /*
-+ * If the client or server is doing some kind of object creation
-+ * that the other side depends on, and that thread prematurely
-+ * exits, you may experience a hang. The test harness will
-+ * terminate all hung threads after its timeout has expired,
-+ * currently 3 minutes by default, but you might try to be
-+ * smart about it....
-+ */
-+
-+ /*
-+ * Define the server side of the test.
-+ *
-+ * If the server prematurely exits, serverReady will be set to true
-+ * to avoid infinite hangs.
-+ */
-+ private void doServerSide() throws Exception {
-+ SSLServerSocketFactory sslssf =
-+ (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
-+ try (SSLServerSocket sslServerSocket =
-+ (SSLServerSocket)sslssf.createServerSocket(serverPort)) {
-+
-+ serverPort = sslServerSocket.getLocalPort();
-+
-+ /*
-+ * Signal Client, we're ready for his connect.
-+ */
-+ serverReady = true;
-+
-+ /*
-+ * Accept connections
-+ */
-+ try (SSLSocket sslSocket = (SSLSocket)sslServerSocket.accept()) {
-+ InputStream sslIS = sslSocket.getInputStream();
-+ OutputStream sslOS = sslSocket.getOutputStream();
-+ BufferedReader br =
-+ new BufferedReader(new InputStreamReader(sslIS));
-+ PrintStream ps = new PrintStream(sslOS);
-+
-+ // process HTTP POST request from client
-+ System.out.println("status line: " + br.readLine());
-+ String msg = null;
-+ while ((msg = br.readLine()) != null && msg.length() > 0);
-+
-+ msg = br.readLine();
-+ if (msg.equals(postMsg)) {
-+ ps.println("HTTP/1.1 200 OK\n\n");
-+ } else {
-+ ps.println("HTTP/1.1 500 Not OK\n\n");
-+ }
-+ ps.flush();
-+
-+ ExtendedSSLSession session =
-+ (ExtendedSSLSession)sslSocket.getSession();
-+ if (session.getRequestedServerNames().isEmpty()) {
-+ throw new Exception("No expected Server Name
Indication");
-+ }
-+
-+ // close the socket
-+ while (!closeReady) {
-+ Thread.sleep(50);
-+ }
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Define the client side of the test.
-+ *
-+ * If the server prematurely exits, serverReady will be set to true
-+ * to avoid infinite hangs.
-+ */
-+ private void doClientSide() throws Exception {
-+ /*
-+ * Wait for server to get started.
-+ */
-+ while (!serverReady) {
-+ Thread.sleep(50);
-+ }
-+
-+ // Send HTTP POST request to server
-+ URL url = new URL("https://" + hostname + ":" +
serverPort);
-+
-+ HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
-+ HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
-+ http.setDoOutput(true);
-+
-+ http.setRequestMethod("POST");
-+ PrintStream ps = new PrintStream(http.getOutputStream());
-+ try {
-+ ps.println(postMsg);
-+ ps.flush();
-+ if (http.getResponseCode() != 200) {
-+ throw new RuntimeException("test Failed");
-+ }
-+ } finally {
-+ ps.close();
-+ http.disconnect();
-+ closeReady = true;
-+ }
-+ }
-+
-+ private static class NameVerifier implements HostnameVerifier {
-+ public boolean verify(String hostname, SSLSession session) {
-+ return true;
-+ }
-+ }
-+
-+ /*
-+ * =============================================================
-+ * The remainder is just support stuff
-+ */
-+
-+ // use any free port by default
-+ private volatile int serverPort = 0;
-+
-+ private volatile Exception serverException = null;
-+ private volatile Exception clientException = null;
-+
-+ public static void main(String[] args) throws Exception {
-+ String keyFilename =
-+ System.getProperty("test.src", "./") + "/" +
pathToStores +
-+ "/" + keyStoreFile;
-+ String trustFilename =
-+ System.getProperty("test.src", "./") + "/" +
pathToStores +
-+ "/" + trustStoreFile;
-+
-+ System.setProperty("javax.net.ssl.keyStore", keyFilename);
-+ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
-+ System.setProperty("javax.net.ssl.trustStore", trustFilename);
-+ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
-+
-+ if (debug) {
-+ System.setProperty("javax.net.debug", "all");
-+ }
-+
-+ try {
-+ hostname = InetAddress.getLocalHost().getCanonicalHostName();
-+ } catch (UnknownHostException uhe) {
-+ System.out.println(
-+ "Ignore the test as the local hostname cannot be
determined");
-+
-+ return;
-+ }
-+
-+ System.out.println(
-+ "The fully qualified domain name of the local host is " +
-+ hostname);
-+ // Ignore the test if the hostname does not sound like a domain name.
-+ if ((hostname == null) || hostname.isEmpty() ||
-+ hostname.startsWith("localhost") ||
-+ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
-+
-+ System.out.println("Ignore the test as the local hostname " +
-+ "cannot be determined as fully qualified domain name");
-+
-+ return;
-+ }
-+
-+ /*
-+ * Start the tests.
-+ */
-+ new ImpactOnSNI();
-+ }
-+
-+ private Thread clientThread = null;
-+ private Thread serverThread = null;
-+
-+ /*
-+ * Primary constructor, used to drive remainder of the test.
-+ *
-+ * Fork off the other side, then do your work.
-+ */
-+ ImpactOnSNI() throws Exception {
-+ Exception startException = null;
-+ try {
-+ if (separateServerThread) {
-+ startServer(true);
-+ startClient(false);
-+ } else {
-+ startClient(true);
-+ startServer(false);
-+ }
-+ } catch (Exception e) {
-+ startException = e;
-+ }
-+
-+ /*
-+ * Wait for other side to close down.
-+ */
-+ if (separateServerThread) {
-+ if (serverThread != null) {
-+ serverThread.join();
-+ }
-+ } else {
-+ if (clientThread != null) {
-+ clientThread.join();
-+ }
-+ }
-+
-+ /*
-+ * When we get here, the test is pretty much over.
-+ * Which side threw the error?
-+ */
-+ Exception local;
-+ Exception remote;
-+
-+ if (separateServerThread) {
-+ remote = serverException;
-+ local = clientException;
-+ } else {
-+ remote = clientException;
-+ local = serverException;
-+ }
-+
-+ Exception exception = null;
-+
-+ /*
-+ * Check various exception conditions.
-+ */
-+ if ((local != null) && (remote != null)) {
-+ // If both failed, return the curthread's exception.
-+ local.initCause(remote);
-+ exception = local;
-+ } else if (local != null) {
-+ exception = local;
-+ } else if (remote != null) {
-+ exception = remote;
-+ } else if (startException != null) {
-+ exception = startException;
-+ }
-+
-+ /*
-+ * If there was an exception *AND* a startException,
-+ * output it.
-+ */
-+ if (exception != null) {
-+ if (exception != startException && startException != null) {
-+ exception.addSuppressed(startException);
-+ }
-+ throw exception;
-+ }
-+
-+ // Fall-through: no exception to throw!
-+ }
-+
-+ private void startServer(boolean newThread) throws Exception {
-+ if (newThread) {
-+ serverThread = new Thread() {
-+ @Override
-+ public void run() {
-+ try {
-+ doServerSide();
-+ } catch (Exception e) {
-+ /*
-+ * Our server thread just died.
-+ *
-+ * Release the client, if not active already...
-+ */
-+ System.err.println("Server died...");
-+ serverReady = true;
-+ serverException = e;
-+ }
-+ }
-+ };
-+ serverThread.start();
-+ } else {
-+ try {
-+ doServerSide();
-+ } catch (Exception e) {
-+ serverException = e;
-+ } finally {
-+ serverReady = true;
-+ }
-+ }
-+ }
-+
-+ private void startClient(boolean newThread) throws Exception {
-+ if (newThread) {
-+ clientThread = new Thread() {
-+ @Override
-+ public void run() {
-+ try {
-+ doClientSide();
-+ } catch (Exception e) {
-+ /*
-+ * Our client thread just died.
-+ */
-+ System.err.println("Client died...");
-+ clientException = e;
-+ }
-+ }
-+ };
-+ clientThread.start();
-+ } else {
-+ try {
-+ doClientSide();
-+ } catch (Exception e) {
-+ clientException = e;
-+ }
-+ }
-+ }
-+}
diff --git a/8155049-pr3352.patch b/8155049-pr3352.patch
deleted file mode 100644
index 68cf02f..0000000
--- a/8155049-pr3352.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-# HG changeset patch
-# User rhalade
-# Date 1463420211 25200
-# Mon May 16 10:36:51 2016 -0700
-# Node ID c0e856f2dacdf5eb5cdea380da32ba210aee9579
-# Parent fb617df8fbac42e962219e45cbd29b15b5ecdc63
-8155049, PR3352: New tests from 8144566 fail with "No expected Server Name
Indication"
-Reviewed-by: xuelei
-
-diff --git a/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
b/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
---- openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
-+++ openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
-@@ -34,9 +34,6 @@
- */
-
- import java.io.*;
--import java.nio.*;
--import java.nio.channels.*;
--import java.util.*;
- import java.net.*;
- import javax.net.ssl.*;
-
-@@ -197,6 +194,7 @@
- hostname);
- // Ignore the test if the hostname does not sound like a domain name.
- if ((hostname == null) || hostname.isEmpty() ||
-+ !hostname.contains(".") || hostname.endsWith(".")
||
- hostname.startsWith("localhost") ||
- Character.isDigit(hostname.charAt(hostname.length() - 1))) {
-
-diff --git a/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
b/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
---- openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
-+++ openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
-@@ -235,6 +235,7 @@
- hostname);
- // Ignore the test if the hostname does not sound like a domain name.
- if ((hostname == null) || hostname.isEmpty() ||
-+ !hostname.contains(".") || hostname.endsWith(".")
||
- hostname.startsWith("localhost") ||
- Character.isDigit(hostname.charAt(hostname.length() - 1))) {
-
diff --git a/8165231-rh1437545.patch b/8165231-rh1437545.patch
deleted file mode 100644
index e0d5be7..0000000
--- a/8165231-rh1437545.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-# HG changeset patch
-# User horii
-# Date 1473905514 14400
-# Wed Sep 14 22:11:54 2016 -0400
-# Node ID 8d16f74380a78eb76cb33183a64440316393903e
-# Parent be698ac288484ab140715ee29ed9335e6ea8a33b
-8165231: java.nio.Bits.unaligned() doesn't return true on ppc
-Reviewed-by: simonis, coffeys
-
-diff --git a/src/share/classes/java/nio/Bits.java b/src/share/classes/java/nio/Bits.java
---- openjdk/jdk/src/share/classes/java/nio/Bits.java
-+++ openjdk/jdk/src/share/classes/java/nio/Bits.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2000, 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
-@@ -614,7 +614,8 @@
- String arch = AccessController.doPrivileged(
- new sun.security.action.GetPropertyAction("os.arch"));
- unaligned = arch.equals("i386") || arch.equals("x86")
-- || arch.equals("amd64") || arch.equals("x86_64");
-+ || arch.equals("amd64") || arch.equals("x86_64")
-+ || arch.equals("ppc64") || arch.equals("ppc64le");
- unalignedKnown = true;
- return unaligned;
- }
-diff --git a/src/share/classes/sun/security/provider/ByteArrayAccess.java
b/src/share/classes/sun/security/provider/ByteArrayAccess.java
---- openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
-+++ openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2006, 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
-@@ -94,7 +94,7 @@
- String arch = java.security.AccessController.doPrivileged
- (new sun.security.action.GetPropertyAction("os.arch",
""));
- return arch.equals("i386") || arch.equals("x86") ||
arch.equals("amd64")
-- || arch.equals("x86_64");
-+ || arch.equals("x86_64") || arch.equals("ppc64") ||
arch.equals("ppc64le");
- }
-
- /**
diff --git a/8174164-pr3334-rh1417266.patch b/8174164-pr3334-rh1417266.patch
deleted file mode 100644
index 494883f..0000000
--- a/8174164-pr3334-rh1417266.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1487208397 28800
-# Wed Feb 15 17:26:37 2017 -0800
-# Node ID a9cbaff50d3d7e3a1d2dbdc0121c470142b87270
-# Parent 15922b2f31db4857ec84efdf533c41b19e68030b
-8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible loops
-Reviewed-by: kvn
-
-diff --git a/src/share/vm/opto/callnode.hpp b/src/share/vm/opto/callnode.hpp
---- openjdk/hotspot/src/share/vm/opto/callnode.hpp
-+++ openjdk/hotspot/src/share/vm/opto/callnode.hpp
-@@ -449,8 +449,8 @@
- void delete_replaced_nodes() {
- _replaced_nodes.reset();
- }
-- void apply_replaced_nodes() {
-- _replaced_nodes.apply(this);
-+ void apply_replaced_nodes(uint idx) {
-+ _replaced_nodes.apply(this, idx);
- }
- void merge_replaced_nodes_with(SafePointNode* sfpt) {
- _replaced_nodes.merge_with(sfpt->_replaced_nodes);
-diff --git a/src/share/vm/opto/parse1.cpp b/src/share/vm/opto/parse1.cpp
---- openjdk/hotspot/src/share/vm/opto/parse1.cpp
-+++ openjdk/hotspot/src/share/vm/opto/parse1.cpp
-@@ -1048,7 +1048,7 @@
- kit.make_dtrace_method_exit(method());
- }
- if (_replaced_nodes_for_exceptions) {
-- kit.map()->apply_replaced_nodes();
-+ kit.map()->apply_replaced_nodes(_new_idx);
- }
- // Done with exception-path processing.
- ex_map = kit.make_exception_state(ex_oop);
-@@ -1069,7 +1069,7 @@
- _exits.add_exception_state(ex_map);
- }
- }
-- _exits.map()->apply_replaced_nodes();
-+ _exits.map()->apply_replaced_nodes(_new_idx);
- }
-
- //-----------------------------create_entry_map-------------------------------
-diff --git a/src/share/vm/opto/replacednodes.cpp b/src/share/vm/opto/replacednodes.cpp
---- openjdk/hotspot/src/share/vm/opto/replacednodes.cpp
-+++ openjdk/hotspot/src/share/vm/opto/replacednodes.cpp
-@@ -91,13 +91,17 @@
- }
-
- // Perfom node replacement (used when returning to caller)
--void ReplacedNodes::apply(Node* n) {
-+void ReplacedNodes::apply(Node* n, uint idx) {
- if (is_empty()) {
- return;
- }
- for (int i = 0; i < _replaced_nodes->length(); i++) {
- ReplacedNode replaced = _replaced_nodes->at(i);
-- n->replace_edge(replaced.initial(), replaced.improved());
-+ // Only apply if improved node was created in a callee to avoid
-+ // issues with irreducible loops in the caller
-+ if (replaced.improved()->_idx >= idx) {
-+ n->replace_edge(replaced.initial(), replaced.improved());
-+ }
- }
- }
-
-diff --git a/src/share/vm/opto/replacednodes.hpp b/src/share/vm/opto/replacednodes.hpp
---- openjdk/hotspot/src/share/vm/opto/replacednodes.hpp
-+++ openjdk/hotspot/src/share/vm/opto/replacednodes.hpp
-@@ -71,7 +71,7 @@
- void record(Node* initial, Node* improved);
- void transfer_from(const ReplacedNodes& other, uint idx);
- void reset();
-- void apply(Node* n);
-+ void apply(Node* n, uint idx);
- void merge_with(const ReplacedNodes& other);
- bool is_empty() const;
- void dump(outputStream *st) const;
diff --git a/8174729-pr3336-rh1420518.patch b/8174729-pr3336-rh1420518.patch
deleted file mode 100644
index 3d67850..0000000
--- a/8174729-pr3336-rh1420518.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-# HG changeset patch
-# User adinn
-# Date 1487931564 0
-# Fri Feb 24 10:19:24 2017 +0000
-# Node ID d41592af9af3790fe5eee30ce686d85cff09c942
-# Parent 1ac9b0f1bf17fc5935bfa8250550eabc2ffb6785
-8174729, PR3336, RH1420518: Race Condition in java.lang.reflect.WeakCache
-Summary: Race can occur between Proxy.getProxyClass and Proxy.isProxyClass
-Reviewed-by: mchung
-
-diff --git a/src/share/classes/java/lang/reflect/WeakCache.java
b/src/share/classes/java/lang/reflect/WeakCache.java
---- openjdk/jdk/src/share/classes/java/lang/reflect/WeakCache.java
-+++ openjdk/jdk/src/share/classes/java/lang/reflect/WeakCache.java
-@@ -239,11 +239,11 @@
- // wrap value with CacheValue (WeakReference)
- CacheValue<V> cacheValue = new CacheValue<>(value);
-
-+ // put into reverseMap
-+ reverseMap.put(cacheValue, Boolean.TRUE);
-+
- // try replacing us with CacheValue (this should always succeed)
-- if (valuesMap.replace(subKey, this, cacheValue)) {
-- // put also in reverseMap
-- reverseMap.put(cacheValue, Boolean.TRUE);
-- } else {
-+ if (!valuesMap.replace(subKey, this, cacheValue)) {
- throw new AssertionError("Should not reach here");
- }
-
-diff --git a/test/java/lang/reflect/Proxy/ProxyRace.java
b/test/java/lang/reflect/Proxy/ProxyRace.java
-new file mode 100644
---- /dev/null
-+++ openjdk/jdk/test/java/lang/reflect/Proxy/ProxyRace.java
-@@ -0,0 +1,88 @@
-+/*
-+ * 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.
-+ */
-+
-+import java.lang.reflect.Proxy;
-+import java.util.concurrent.ExecutorService;
-+import java.util.concurrent.Executors;
-+import java.util.concurrent.Phaser;
-+import java.util.concurrent.TimeUnit;
-+import java.util.concurrent.atomic.AtomicInteger;
-+
-+/**
-+ * @test
-+ * @bug 8174729
-+ * @summary Proxy.getProxyClass() / Proxy.isProxyClass() race detector
-+ * @run main ProxyRace
-+ * @author plevart
-+ */
-+
-+public class ProxyRace {
-+
-+ static final int threads = 8;
-+
-+ static volatile ClassLoader classLoader;
-+ static volatile boolean terminate;
-+ static final AtomicInteger racesDetected = new AtomicInteger();
-+
-+ public static void main(String[] args) throws Exception {
-+
-+ Phaser phaser = new Phaser(threads) {
-+ @Override
-+ protected boolean onAdvance(int phase, int registeredParties) {
-+ // install new ClassLoader on each advance
-+ classLoader = new CL();
-+ return terminate;
-+ }
-+ };
-+
-+ ExecutorService exe = Executors.newFixedThreadPool(threads);
-+
-+ for (int i = 0; i < threads; i++) {
-+ exe.execute(() -> {
-+ while (phaser.arriveAndAwaitAdvance() >= 0) {
-+ Class<?> proxyClass = Proxy.getProxyClass(classLoader,
Runnable.class);
-+ if (!Proxy.isProxyClass(proxyClass)) {
-+ racesDetected.incrementAndGet();
-+ }
-+ }
-+ });
-+ }
-+
-+ Thread.sleep(5000L);
-+
-+ terminate = true;
-+ exe.shutdown();
-+ exe.awaitTermination(5L, TimeUnit.SECONDS);
-+
-+ System.out.println(racesDetected.get() + " races detected");
-+ if (racesDetected.get() != 0) {
-+ throw new RuntimeException(racesDetected.get() + " races
detected");
-+ }
-+ }
-+
-+ static class CL extends ClassLoader {
-+ public CL() {
-+ super(ClassLoader.getSystemClassLoader());
-+ }
-+ }
-+}
diff --git a/8175097-pr3334-rh1417266.patch b/8175097-pr3334-rh1417266.patch
deleted file mode 100644
index e80dd11..0000000
--- a/8175097-pr3334-rh1417266.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1487286884 28800
-# Thu Feb 16 15:14:44 2017 -0800
-# Node ID 1b4eb44fbfcd0fceb485d89d91eb893d99f5864b
-# Parent a9cbaff50d3d7e3a1d2dbdc0121c470142b87270
-8175097, PR3334, RH1417266: [TESTBUG] 8174164 fix missed the test
-Reviewed-by: kvn
-
-diff --git a/test/compiler/c2/TestReplacedNodesOSR.java
b/test/compiler/c2/TestReplacedNodesOSR.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/compiler/c2/TestReplacedNodesOSR.java
-@@ -0,0 +1,86 @@
-+/*
-+ * 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 8174164
-+ * @summary SafePointNode::_replaced_nodes breaks with irreducible loops
-+ * @run main/othervm -XX:-BackgroundCompilation TestReplacedNodesOSR
-+ *
-+ */
-+
-+public class TestReplacedNodesOSR {
-+
-+ static Object dummy;
-+
-+ static interface I {
-+ }
-+
-+ static class A implements I {
-+ }
-+
-+ static final class MyException extends Exception {
-+ }
-+
-+ static final A obj = new A();
-+ static I static_field() { return obj; }
-+
-+ // When OSR compiled, this method has an irreducible loop
-+ static void test(int v, MyException e) {
-+ int i = 0;
-+ for (;;) {
-+ if (i == 1000) {
-+ break;
-+ }
-+ try {
-+ if ((i%2) == 0) {
-+ int j = 0;
-+ for (;;) {
-+ j++;
-+ if (i+j != v) {
-+ if (j == 1000) {
-+ break;
-+ }
-+ } else {
-+ A a = (A)static_field();
-+ // replaced node recorded here
-+ throw e;
-+ }
-+ }
-+ }
-+ } catch(MyException ex) {
-+ }
-+ i++;
-+ // replaced node applied on return of the method
-+ // replaced node used here
-+ dummy = static_field();
-+ }
-+ }
-+
-+
-+ static public void main(String[] args) {
-+ for (int i = 0; i < 1000; i++) {
-+ test(1100, new MyException());
-+ }
-+ }
-+}
diff --git a/8175887-pr3415.patch b/8175887-pr3415.patch
new file mode 100644
index 0000000..6460f60
--- /dev/null
+++ b/8175887-pr3415.patch
@@ -0,0 +1,168 @@
+# 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
new file mode 100644
index 0000000..dbc2120
--- /dev/null
+++ b/8179084-pr3409-rh1455694.patch
@@ -0,0 +1,135 @@
+# 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
new file mode 100644
index 0000000..c2c7fc6
--- /dev/null
+++ b/8181419-pr3413-rh1463144.patch
@@ -0,0 +1,92 @@
+# 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/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index 1f022f6..d9578e9 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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c4b9c97..4804d6d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -204,7 +204,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-jdk8u131-b12
+%global revision aarch64-jdk8u141-b16
# 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
@@ -814,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -840,7 +840,7 @@ URL:
http://openjdk.java.net/
Source0: %{project}-%{repo}-%{revision}.tar.xz
# Shenandoah HotSpot
-Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
+Source1: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -947,34 +947,24 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
-# 8175813, PR3394, RH1448880: PPC64: "mbind: Invalid argument" when
-XX:+UseNUMA is used
-Patch550: 8175813-pr3394-rh1448880.patch
# 8181055, PR3394, RH1448880: PPC64: "mbind: Invalid argument" still seen after
8175813
Patch551: 8181055-pr3394-rh1448880.patch
-
-# Patches upstream and appearing in 8u131
-# 6515172, PR3346: Runtime.availableProcessors() ignores Linux taskset command
-Patch542: 6515172-pr3346.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 8u152
# 8153711, PR3313, RH1284948: [REDO] JDWP: Memory Leak: GlobalRefs never deleted when
processing invokeMethod command
Patch535: 8153711-pr3313-rh1284948.patch
-# 8144566, PR3352: Custom HostnameVerifier disables SNI extension
-Patch544: 8144566-pr3352.patch
-# 8155049, PR3352: New tests from 8144566 fail with "No expected Server Name
Indication"
-Patch545: 8155049-pr3352.patch
# 8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
Patch532: 8162384-pr3122-rh1358661.patch
-# 8165231, RH1437545: java.nio.Bits.unaligned() doesn't return true on ppc
-Patch546: 8165231-rh1437545.patch
# 8173941, PR3326: SA does not work if executable is DSO
Patch547: 8173941-pr3326.patch
-# 8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible
loops"
-Patch537: 8174164-pr3334-rh1417266.patch
-# 8174729, PR3336, RH1420518: Race Condition in java.lang.reflect.WeakCache
-Patch548: 8174729-pr3336-rh1420518.patch
-# 8175097, PR3334, RH1417266: [TESTBUG] 8174164 fix missed the test
-Patch549: 8175097-pr3334-rh1417266.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
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -1370,17 +1360,13 @@ sh %{SOURCE12}
%patch528
%patch532
%patch535
-%patch537
%patch538
-%patch542
-%patch544
-%patch545
-%patch546
%patch547
-%patch548
-%patch549
%patch550
%patch551
+%patch552
+%patch553
+%patch554
# RPM-only fixes
%patch525
@@ -2081,6 +2067,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-1.b16
+- updated to security u141.b16
+- sync patches with rhel7
+
* Sat Jun 17 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-7.b12
- adapted to no longer noarch openjfx-devel
diff --git a/pr1983-jdk.patch b/pr1983-jdk.patch
index a0b4e1a..673b8a9 100644
--- a/pr1983-jdk.patch
+++ b/pr1983-jdk.patch
@@ -6,10 +6,11 @@
# Parent afd392dfaed501ac674a7cc3e37353ce300969c7
PR1983: Support using the system installation of NSS with the SunEC provider
Summary: Apply code changes from PR1699 & PR1742 & forward-port Makefile changes
to the new build.
+Updated 2017/07/04 to accomodate 8175110
-diff -r afd392dfaed5 -r 48c15869ecd5 make/lib/SecurityLibraries.gmk
---- openjdk/jdk/make/lib/SecurityLibraries.gmk Tue Jan 26 22:26:26 2016 +0000
-+++ openjdk/jdk/make/lib/SecurityLibraries.gmk Wed Jan 27 02:54:06 2016 +0000
+diff -r 984a4af2ed4e make/lib/SecurityLibraries.gmk
+--- openjdk/jdk/make/lib/SecurityLibraries.gmk
++++ openjdk/jdk/make/lib/SecurityLibraries.gmk
@@ -218,8 +218,17 @@
ifeq ($(ENABLE_INTREE_EC), yes)
@@ -51,9 +52,9 @@ diff -r afd392dfaed5 -r 48c15869ecd5 make/lib/SecurityLibraries.gmk
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
RC_FLAGS := $(RC_FLAGS) \
-D "JDK_FNAME=sunec.dll" \
-diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/ECC_JNI.cpp
---- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Tue Jan 26 22:26:26 2016
+0000
-+++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 02:54:06 2016
+0000
+diff -r 984a4af2ed4e 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
@@ -24,7 +24,7 @@
*/
@@ -76,8 +77,8 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ECC_JNI.cp
*/
JNIEXPORT jbyteArray
JNICALL Java_sun_security_ec_ECDSASignature_signDigest
-- (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray
encodedParams, jbyteArray seed)
-+ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray digest, jbyteArray privateKey,
jbyteArray encodedParams, jbyteArray seed)
+- (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray
encodedParams, jbyteArray seed, jint timing)
++ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray digest, jbyteArray privateKey,
jbyteArray encodedParams, jbyteArray seed, jint timing)
{
jbyte* pDigestBuffer = NULL;
jint jDigestLength = env->GetArrayLength(digest);
@@ -99,12 +100,12 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ECC_JNI.cp
{
jbyteArray jSecret = NULL;
ECParams *ecparams = NULL;
-diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/ecc_impl.h
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Jan 27 02:54:06 2016
+0000
+diff -r 984a4af2ed4e src/share/native/sun/security/ec/ecc_impl.h
+--- /dev/null
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
@@ -0,0 +1,298 @@
+/*
-+ * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * This library is free software; you can redistribute it and/or
@@ -139,7 +140,7 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ecc_impl.h
+ * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
+ * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
+ *
-+ * Last Modified Date from the Original Code: November 2013
++ * Last Modified Date from the Original Code: May 2017
+ *********************************************************************** */
+
+#ifndef _ECC_IMPL_H
@@ -373,7 +374,7 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ecc_impl.h
+#ifdef SYSTEM_NSS
+#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
+#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
-+#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e)
++#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigestWithSeed(a,b,c,d,e)
+#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
+#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
+#else
@@ -389,7 +390,7 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ecc_impl.h
+ const unsigned char* random, int randomlen, int);
+/* This function has been modified to accept an array of random bytes */
+extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
-+ const unsigned char* random, int randomlen, int);
++ const unsigned char* random, int randomlen, int, int timing);
+extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
+ const SECItem *, int);
+extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
@@ -401,12 +402,12 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/ecc_impl.h
+#endif
+
+#endif /* _ECC_IMPL_H */
-diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/impl/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h Tue Jan 26 22:26:26 2016
+0000
-+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
+diff -r 984a4af2ed4e src/share/native/sun/security/ec/impl/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h
++++ /dev/null
@@ -1,271 +0,0 @@
-/*
-- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * Use is subject to license terms.
- *
- * This library is free software; you can redistribute it and/or
@@ -441,7 +442,7 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/impl/ecc_i
- * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
- * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
- *
-- * Last Modified Date from the Original Code: November 2013
+- * Last Modified Date from the Original Code: May 2017
- *********************************************************************** */
-
-#ifndef _ECC_IMPL_H
@@ -665,7 +666,7 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/impl/ecc_i
- const unsigned char* random, int randomlen, int);
-/* This function has been modified to accept an array of random bytes */
-extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
-- const unsigned char* random, int randomlen, int);
+- const unsigned char* random, int randomlen, int, int timing);
-extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
- const SECItem *, int);
-extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
@@ -676,9 +677,9 @@ diff -r afd392dfaed5 -r 48c15869ecd5
src/share/native/sun/security/ec/impl/ecc_i
-#endif
-
-#endif /* _ECC_IMPL_H */
-diff -r afd392dfaed5 -r 48c15869ecd5 src/solaris/javavm/export/jni_md.h
---- openjdk/jdk/src/solaris/javavm/export/jni_md.h Tue Jan 26 22:26:26 2016 +0000
-+++ openjdk/jdk/src/solaris/javavm/export/jni_md.h Wed Jan 27 02:54:06 2016 +0000
+diff -r 984a4af2ed4e src/solaris/javavm/export/jni_md.h
+--- openjdk/jdk/src/solaris/javavm/export/jni_md.h
++++ openjdk/jdk/src/solaris/javavm/export/jni_md.h
@@ -36,6 +36,11 @@
#define JNIEXPORT
#define JNIIMPORT
diff --git a/pr2899.patch b/pr2899.patch
index 58fb3c8..ffdefb0 100644
--- a/pr2899.patch
+++ b/pr2899.patch
@@ -6,18 +6,19 @@
# Parent 8957aff589013e671f02d38023d5ff245ef27e87
PR2899: Don't use WithSeed versions of NSS functions as they don't fully process
the seed
Contributed-by: Alex Kashchenko <akashche(a)redhat.com>
+Updated 2017/07/04 to accomodate 8175110 by Andrew Hughes <gnu.andrew(a)redhat.com>
-diff -r 8957aff58901 -r 9dc0eca5fa89 src/share/native/sun/security/ec/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 04:48:56 2016
+0100
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 05:54:40 2016
+0100
+diff -r e5fdbb82bd49 src/share/native/sun/security/ec/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
@@ -267,8 +267,8 @@
#ifdef SYSTEM_NSS
#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
-#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
--#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e)
+-#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigestWithSeed(a,b,c,d,e)
+#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
-+#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c)
++#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigest(a,b,c)
#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
#else
diff --git a/pr2934.patch b/pr2934.patch
index 21e769d..83385da 100644
--- a/pr2934.patch
+++ b/pr2934.patch
@@ -6,10 +6,11 @@
# Parent 3fa42705acab6d69b6141f47ebba4f85739a338c
PR2934: SunEC provider throwing KeyException with current NSS
Summary: Initialise the random number generator and feed the seed to it.
+Updated 2017/07/04 to accomodate 8175110
-diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ECC_JNI.cpp
---- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Apr 20 03:39:11 2016
+0100
-+++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Fri Apr 22 19:17:13 2016
+0100
+diff -r 8aed1e903a4c 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
@@ -134,8 +134,17 @@
env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);
@@ -42,7 +43,7 @@ diff -r 3fa42705acab -r dab76de2f91c
src/share/native/sun/security/ec/ECC_JNI.cp
+ != SECSuccess) {
+#else
if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item,
- (unsigned char *) pSeedBuffer, jSeedLength, 0) != SECSuccess) {
+ (unsigned char *) pSeedBuffer, jSeedLength, 0, timing) != SECSuccess) {
+#endif
ThrowException(env, KEY_EXCEPTION);
goto cleanup;
@@ -65,9 +66,9 @@ diff -r 3fa42705acab -r dab76de2f91c
src/share/native/sun/security/ec/ECC_JNI.cp
if (SECOID_Shutdown() != SECSuccess) {
ThrowException(env, INTERNAL_ERROR);
}
-diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ecc_impl.h
---- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Apr 20 03:39:11 2016
+0100
-+++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Fri Apr 22 19:17:13 2016
+0100
+diff -r 8aed1e903a4c src/share/native/sun/security/ec/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h
@@ -254,8 +254,10 @@
This function is no longer required because the random bytes are now
supplied by the caller. Force a failure.
@@ -84,7 +85,7 @@ diff -r 3fa42705acab -r dab76de2f91c
src/share/native/sun/security/ec/ecc_impl.h
#ifdef SYSTEM_NSS
#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
-#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
--#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c)
+-#define ECDSA_SignDigest(a,b,c,d,e,f,g) ECDSA_SignDigest(a,b,c)
#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
#else
diff --git a/sources b/sources
index c232719..b8cfa8e 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz) =
b7285cbadc787594664944ece1fab74aafd4f3437d75e494b900cdd5ce1d102c0cfa9d734b40c7f122ba8539f098e6dde19894ab15605f4a475138bf69143edf
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz)
=
9450dca9445b5ed90de90905a1210388fc825caada0d4929ac9f2c81b3af066dfcbcb80a667cb4c1c644d3ac65678d6bc162f1f11c1cd44f9dbf682ca3ff95cd
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u141-b16.tar.xz) =
154cc4bebb9a0809f548f630b5d4fa45befe7e5cf784236540205f254913495157f99f63a5b2223487bbff4c430e60cc53b4aacd9e843309f657929b500b061d
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u141-b16.tar.xz) =
b6bf3383fcd8fb44308eff3ba93a4a635851a4c30e91957c5771990523b0c7c1f7a2acc7ec0472e196c26633a5df7d7b592b933f55ec9cdda63b37a14395ef10
diff --git a/update_package.sh b/update_package.sh
index 2c51560..5168356 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u131-b12"
+ VERSION="aarch64-jdk8u141-b16"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20"
+ VERSION="aarch64-shenandoah-jdk8u141-b16"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit aaedfc554ed8429191b75a38108e92f516465fd3
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Sat Jun 17 13:58:54 2017 +0200
adapted to no longer noarch openjfx-devel
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8fce91d..c4b9c97 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -814,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -1245,7 +1245,7 @@ Set of links from OpenJDK (jre) to OpenJFX
%package openjfx-devel
Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx-devel
+Requires: openjfx-devel%{?_isa}
Provides: javafx-devel = %{epoch}:%{version}-%{release}
%description openjfx-devel
Set of links from OpenJDK (sdk) to OpenJFX
@@ -1262,7 +1262,7 @@ Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do
not support
%package openjfx-devel-debug
Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
-Requires: openjfx-devel
+Requires: openjfx-devel%{?_isa}
Provides: javafx-devel-debug = %{epoch}:%{version}-%{release}
%description openjfx-devel-debug
Set of links from OpenJDK-debug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
@@ -2081,6 +2081,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sat Jun 17 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-7.b12
+- adapted to no longer noarch openjfx-devel
+
* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-6.b12
- added virtualprovides for javafx
commit a6e9c72894d56805cd1e28998dcd30970cfda412
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Jun 16 15:52:55 2017 +0200
added virtual provides of javafx
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c643d2c..8fce91d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -814,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1238,6 +1238,7 @@ See normal java-%{version}-openjdk-accessibility description.
Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx%{?_isa}
+Provides: javafx = %{epoch}:%{version}-%{release}
%description openjfx
Set of links from OpenJDK (jre) to OpenJFX
@@ -1245,6 +1246,7 @@ Set of links from OpenJDK (jre) to OpenJFX
Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx-devel
+Provides: javafx-devel = %{epoch}:%{version}-%{release}
%description openjfx-devel
Set of links from OpenJDK (sdk) to OpenJFX
@@ -1253,6 +1255,7 @@ Set of links from OpenJDK (sdk) to OpenJFX
Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-debug
Requires: %{name}-debug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx%{?_isa}
+Provides: javafx-debug = %{epoch}:%{version}-%{release}
%description openjfx-debug
Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
@@ -1260,6 +1263,7 @@ Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do
not support
Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
Requires: openjfx-devel
+Provides: javafx-devel-debug = %{epoch}:%{version}-%{release}
%description openjfx-devel-debug
Set of links from OpenJDK-debug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
%endif
@@ -2077,6 +2081,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-6.b12
+- added virtualprovides for javafx
+
* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-5.b12
- fixed target of to fxrt.jar link
- fixedname of libglass
commit 64ed6e939f28904bcae020199a654476c56f5140
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 8 10:10:51 2017 +0200
fixedname of libglass
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f7c8fc6..c643d2c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -184,7 +184,7 @@
# links src files
# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
%global jfx_jre_libs jfxswt.jar javafx.properties
-%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
ibglass.so libjavafx_iio.so
+%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so
%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
%global jfx_sdk_bins javafxpackager javapackager
%global jfx_jre_exts jfxrt.jar
@@ -814,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -2077,8 +2077,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-4.b12
+* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-5.b12
- fixed target of to fxrt.jar link
+- fixedname of libglass
* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
- source999 moved to source1
commit 9aef87474d59ee744ecb96cde4a27fb4f8a3b984
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 7 12:26:19 2017 +0200
fixed target of to fxrt.jar link
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6e46d7e..f7c8fc6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -180,7 +180,7 @@
%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
%global jfx_sdk_libs_dir %{openjfx_path}/lib
%global jfx_sdk_bins_dir %{openjfx_path}/bin
-%global jfx_jre_exts_dir %{jfx_sdk_libs_dir}/ext
+%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext
# links src files
# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
%global jfx_jre_libs jfxswt.jar javafx.properties
@@ -814,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -2077,6 +2077,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-4.b12
+- fixed target of to fxrt.jar link
+
* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
- source999 moved to source1
- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
commit 93b65a682502b99e0debb751b9bb7242b5758d98
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jun 6 15:11:19 2017 +0200
Updated rh1448880 patch, enabled commented out system nss
diff --git a/8175813-pr3394-rh1448880.patch b/8175813-pr3394-rh1448880.patch
new file mode 100644
index 0000000..6baf79c
--- /dev/null
+++ b/8175813-pr3394-rh1448880.patch
@@ -0,0 +1,282 @@
+# HG changeset patch
+# User gromero
+# Date 1495057954 14400
+# Wed May 17 17:52:34 2017 -0400
+# Node ID 74c81011375b5f432df155dcd7b3c9a668b45740
+# Parent 4d9931ebf8617b1b06adbc1beee6ed1b58661a8b
+8175813: PPC64: "mbind: Invalid argument" when -XX:+UseNUMA is used
+
+diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -2736,8 +2736,9 @@
+ bool os::numa_topology_changed() { return false; }
+
+ size_t os::numa_get_groups_num() {
+- int max_node = Linux::numa_max_node();
+- return max_node > 0 ? max_node + 1 : 1;
++ // Return just the number of nodes in which it's possible to allocate memory
++ // (in numa terminology, configured nodes).
++ return Linux::numa_num_configured_nodes();
+ }
+
+ int os::numa_get_group_id() {
+@@ -2751,11 +2752,33 @@
+ return 0;
+ }
+
++int os::Linux::get_existing_num_nodes() {
++ size_t node;
++ size_t highest_node_number = Linux::numa_max_node();
++ int num_nodes = 0;
++
++ // Get the total number of nodes in the system including nodes without memory.
++ for (node = 0; node <= highest_node_number; node++) {
++ if (isnode_in_existing_nodes(node)) {
++ num_nodes++;
++ }
++ }
++ return num_nodes;
++}
++
+ size_t os::numa_get_leaf_groups(int *ids, size_t size) {
+- for (size_t i = 0; i < size; i++) {
+- ids[i] = i;
+- }
+- return size;
++ size_t highest_node_number = Linux::numa_max_node();
++ size_t i = 0;
++
++ // Map all node ids in which is possible to allocate memory. Also nodes are
++ // not always consecutively available, i.e. available from 0 to the highest
++ // node number.
++ for (size_t node = 0; node <= highest_node_number; node++) {
++ if (Linux::isnode_in_configured_nodes(node)) {
++ ids[i++] = node;
++ }
++ }
++ return i;
+ }
+
+ bool os::get_page_info(char *start, page_info* info) {
+@@ -2825,18 +2848,28 @@
+ libnuma_dlsym(handle,
"numa_node_to_cpus")));
+ set_numa_max_node(CAST_TO_FN_PTR(numa_max_node_func_t,
+ libnuma_dlsym(handle,
"numa_max_node")));
++ set_numa_num_configured_nodes(CAST_TO_FN_PTR(numa_num_configured_nodes_func_t,
++ libnuma_dlsym(handle,
"numa_num_configured_nodes")));
+ set_numa_available(CAST_TO_FN_PTR(numa_available_func_t,
+ libnuma_dlsym(handle,
"numa_available")));
+ set_numa_tonode_memory(CAST_TO_FN_PTR(numa_tonode_memory_func_t,
+ libnuma_dlsym(handle,
"numa_tonode_memory")));
+ set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
+- libnuma_dlsym(handle,
"numa_interleave_memory")));
++ libnuma_dlsym(handle,
"numa_interleave_memory")));
+ set_numa_set_bind_policy(CAST_TO_FN_PTR(numa_set_bind_policy_func_t,
+- libnuma_dlsym(handle,
"numa_set_bind_policy")));
+-
++ libnuma_dlsym(handle,
"numa_set_bind_policy")));
++ set_numa_bitmask_isbitset(CAST_TO_FN_PTR(numa_bitmask_isbitset_func_t,
++ libnuma_dlsym(handle,
"numa_bitmask_isbitset")));
++ set_numa_distance(CAST_TO_FN_PTR(numa_distance_func_t,
++ libnuma_dlsym(handle,
"numa_distance")));
+
+ if (numa_available() != -1) {
+ set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle,
"numa_all_nodes"));
++ set_numa_all_nodes_ptr((struct bitmask **)libnuma_dlsym(handle,
"numa_all_nodes_ptr"));
++ set_numa_nodes_ptr((struct bitmask **)libnuma_dlsym(handle,
"numa_nodes_ptr"));
++ // Create an index -> node mapping, since nodes are not always consecutive
++ _nindex_to_node = new (ResourceObj::C_HEAP, mtInternal)
GrowableArray<int>(0, true);
++ rebuild_nindex_to_node_map();
+ // Create a cpu -> node mapping
+ _cpu_to_node = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<int>(0,
true);
+ rebuild_cpu_to_node_map();
+@@ -2847,6 +2880,17 @@
+ return false;
+ }
+
++void os::Linux::rebuild_nindex_to_node_map() {
++ int highest_node_number = Linux::numa_max_node();
++
++ nindex_to_node()->clear();
++ for (int node = 0; node <= highest_node_number; node++) {
++ if (Linux::isnode_in_existing_nodes(node)) {
++ nindex_to_node()->append(node);
++ }
++ }
++}
++
+ // rebuild_cpu_to_node_map() constructs a table mapping cpud id to node id.
+ // The table is later used in get_node_by_cpu().
+ void os::Linux::rebuild_cpu_to_node_map() {
+@@ -2866,16 +2910,46 @@
+
+ cpu_to_node()->clear();
+ cpu_to_node()->at_grow(cpu_num - 1);
+- size_t node_num = numa_get_groups_num();
+-
++
++ size_t node_num = get_existing_num_nodes();
++
++ int distance = 0;
++ int closest_distance = INT_MAX;
++ int closest_node = 0;
+ unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size, mtInternal);
+ for (size_t i = 0; i < node_num; i++) {
+- if (numa_node_to_cpus(i, cpu_map, cpu_map_size * sizeof(unsigned long)) != -1) {
++ // Check if node is configured (not a memory-less node). If it is not, find
++ // the closest configured node.
++ if (!isnode_in_configured_nodes(nindex_to_node()->at(i))) {
++ closest_distance = INT_MAX;
++ // Check distance from all remaining nodes in the system. Ignore distance
++ // from itself and from another non-configured node.
++ for (size_t m = 0; m < node_num; m++) {
++ if (m != i && isnode_in_configured_nodes(nindex_to_node()->at(m))) {
++ distance = numa_distance(nindex_to_node()->at(i),
nindex_to_node()->at(m));
++ // If a closest node is found, update. There is always at least one
++ // configured node in the system so there is always at least one node
++ // close.
++ if (distance != 0 && distance < closest_distance) {
++ closest_distance = distance;
++ closest_node = nindex_to_node()->at(m);
++ }
++ }
++ }
++ } else {
++ // Current node is already a configured node.
++ closest_node = nindex_to_node()->at(i);
++ }
++
++ // Get cpus from the original node and map them to the closest node. If node
++ // is a configured node (not a memory-less node), then original node and
++ // closest node are the same.
++ if (numa_node_to_cpus(nindex_to_node()->at(i), cpu_map, cpu_map_size *
sizeof(unsigned long)) != -1) {
+ for (size_t j = 0; j < cpu_map_valid_size; j++) {
+ if (cpu_map[j] != 0) {
+ for (size_t k = 0; k < BitsPerCLong; k++) {
+ if (cpu_map[j] & (1UL << k)) {
+- cpu_to_node()->at_put(j * BitsPerCLong + k, i);
++ cpu_to_node()->at_put(j * BitsPerCLong + k, closest_node);
+ }
+ }
+ }
+@@ -2893,14 +2967,20 @@
+ }
+
+ GrowableArray<int>* os::Linux::_cpu_to_node;
++GrowableArray<int>* os::Linux::_nindex_to_node;
+ os::Linux::sched_getcpu_func_t os::Linux::_sched_getcpu;
+ os::Linux::numa_node_to_cpus_func_t os::Linux::_numa_node_to_cpus;
+ os::Linux::numa_max_node_func_t os::Linux::_numa_max_node;
++os::Linux::numa_num_configured_nodes_func_t os::Linux::_numa_num_configured_nodes;
+ os::Linux::numa_available_func_t os::Linux::_numa_available;
+ os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory;
+ os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory;
+ os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
++os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
++os::Linux::numa_distance_func_t os::Linux::_numa_distance;
+ unsigned long* os::Linux::_numa_all_nodes;
++struct bitmask* os::Linux::_numa_all_nodes_ptr;
++struct bitmask* os::Linux::_numa_nodes_ptr;
+
+ bool os::pd_uncommit_memory(char* addr, size_t size) {
+ uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE,
+diff --git a/src/os/linux/vm/os_linux.hpp b/src/os/linux/vm/os_linux.hpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.hpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
+@@ -67,6 +67,7 @@
+ static bool _supports_fast_thread_cpu_time;
+
+ static GrowableArray<int>* _cpu_to_node;
++ static GrowableArray<int>* _nindex_to_node;
+
+ protected:
+
+@@ -94,7 +95,9 @@
+ static void set_is_floating_stack() { _is_floating_stack = true; }
+
+ static void rebuild_cpu_to_node_map();
++ static void rebuild_nindex_to_node_map();
+ static GrowableArray<int>* cpu_to_node() { return _cpu_to_node; }
++ static GrowableArray<int>* nindex_to_node() { return _nindex_to_node; }
+
+ static size_t find_large_page_size();
+ static size_t setup_large_page_size();
+@@ -243,28 +246,41 @@
+ typedef int (*sched_getcpu_func_t)(void);
+ typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int
bufferlen);
+ typedef int (*numa_max_node_func_t)(void);
++ typedef int (*numa_num_configured_nodes_func_t)(void);
+ typedef int (*numa_available_func_t)(void);
+ typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
+ typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long
*nodemask);
+ typedef void (*numa_set_bind_policy_func_t)(int policy);
++ typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
++ typedef int (*numa_distance_func_t)(int node1, int node2);
+
+ static sched_getcpu_func_t _sched_getcpu;
+ static numa_node_to_cpus_func_t _numa_node_to_cpus;
+ static numa_max_node_func_t _numa_max_node;
++ static numa_num_configured_nodes_func_t _numa_num_configured_nodes;
+ static numa_available_func_t _numa_available;
+ static numa_tonode_memory_func_t _numa_tonode_memory;
+ static numa_interleave_memory_func_t _numa_interleave_memory;
+ static numa_set_bind_policy_func_t _numa_set_bind_policy;
++ static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
++ static numa_distance_func_t _numa_distance;
+ static unsigned long* _numa_all_nodes;
++ static struct bitmask* _numa_all_nodes_ptr;
++ static struct bitmask* _numa_nodes_ptr;
+
+ static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
+ static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus
= func; }
+ static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; }
++ static void set_numa_num_configured_nodes(numa_num_configured_nodes_func_t func) {
_numa_num_configured_nodes = func; }
+ static void set_numa_available(numa_available_func_t func) { _numa_available = func;
}
+ static void set_numa_tonode_memory(numa_tonode_memory_func_t func) {
_numa_tonode_memory = func; }
+ static void set_numa_interleave_memory(numa_interleave_memory_func_t func) {
_numa_interleave_memory = func; }
+ static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) {
_numa_set_bind_policy = func; }
++ static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) {
_numa_bitmask_isbitset = func; }
++ static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
+ static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
++ static void set_numa_all_nodes_ptr(struct bitmask **ptr) { _numa_all_nodes_ptr = *ptr;
}
++ static void set_numa_nodes_ptr(struct bitmask **ptr) { _numa_nodes_ptr = *ptr; }
+ static int sched_getcpu_syscall(void);
+ public:
+ static int sched_getcpu() { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
+@@ -272,6 +288,9 @@
+ return _numa_node_to_cpus != NULL ? _numa_node_to_cpus(node, buffer, bufferlen) :
-1;
+ }
+ static int numa_max_node() { return _numa_max_node != NULL ? _numa_max_node() : -1; }
++ static int numa_num_configured_nodes() {
++ return _numa_num_configured_nodes != NULL ? _numa_num_configured_nodes() : -1;
++ }
+ static int numa_available() { return _numa_available != NULL ? _numa_available() : -1;
}
+ static int numa_tonode_memory(void *start, size_t size, int node) {
+ return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
+@@ -286,7 +305,25 @@
+ _numa_set_bind_policy(policy);
+ }
+ }
++ static int numa_distance(int node1, int node2) {
++ return _numa_distance != NULL ? _numa_distance(node1, node2) : -1;
++ }
+ static int get_node_by_cpu(int cpu_id);
++ static int get_existing_num_nodes();
++ // Check if numa node is configured (non-zero memory node).
++ static bool isnode_in_configured_nodes(unsigned int n) {
++ if (_numa_bitmask_isbitset != NULL && _numa_all_nodes_ptr != NULL) {
++ return _numa_bitmask_isbitset(_numa_all_nodes_ptr, n);
++ } else
++ return 0;
++ }
++ // Check if numa node exists in the system (including zero memory nodes).
++ static bool isnode_in_existing_nodes(unsigned int n) {
++ if (_numa_bitmask_isbitset != NULL && _numa_nodes_ptr != NULL) {
++ return _numa_bitmask_isbitset(_numa_nodes_ptr, n);
++ } else
++ return 0;
++ }
+ };
+
+
diff --git a/8181055-pr3394-rh1448880.patch b/8181055-pr3394-rh1448880.patch
new file mode 100644
index 0000000..593159d
--- /dev/null
+++ b/8181055-pr3394-rh1448880.patch
@@ -0,0 +1,115 @@
+# HG changeset patch
+# User zgu
+# Date 1496236768 14400
+# Wed May 31 09:19:28 2017 -0400
+# Node ID 8330ff7914ec54c46fd19300221f72d774423405
+# Parent 55a34e4962e10c822affe8f89273a87e84cade92
+8181055: PPC64: "mbind: Invalid argument" still seen after 8175813
+Summary: Use numa_interleave_memory v2 api when available
+Reviewed-by: dholmes, shade
+
+diff -r 74c81011375b src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed May 17 17:52:34 2017 -0400
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed May 31 12:27:00 2017 -0400
+@@ -2819,11 +2819,8 @@
+ extern "C" JNIEXPORT void numa_error(char *where) { }
+ extern "C" JNIEXPORT int fork1() { return fork(); }
+
+-
+-// If we are running with libnuma version > 2, then we should
+-// be trying to use symbols with versions 1.1
+-// If we are running with earlier version, which did not have symbol versions,
+-// we should use the base version.
++// Handle request to load libnuma symbol version 1.1 (API v1). If it fails
++// load symbol from base version instead.
+ void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
+ void *f = dlvsym(handle, name, "libnuma_1.1");
+ if (f == NULL) {
+@@ -2832,6 +2829,12 @@
+ return f;
+ }
+
++// Handle request to load libnuma symbol version 1.2 (API v2) only.
++// Return NULL if the symbol is not defined in this particular version.
++void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
++ return dlvsym(handle, name, "libnuma_1.2");
++}
++
+ bool os::Linux::libnuma_init() {
+ // sched_getcpu() should be in libc.
+ set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t,
+@@ -2856,6 +2859,8 @@
+ libnuma_dlsym(handle,
"numa_tonode_memory")));
+ set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
+ libnuma_dlsym(handle,
"numa_interleave_memory")));
++ set_numa_interleave_memory_v2(CAST_TO_FN_PTR(numa_interleave_memory_v2_func_t,
++ libnuma_v2_dlsym(handle,
"numa_interleave_memory")));
+ set_numa_set_bind_policy(CAST_TO_FN_PTR(numa_set_bind_policy_func_t,
+ libnuma_dlsym(handle,
"numa_set_bind_policy")));
+ set_numa_bitmask_isbitset(CAST_TO_FN_PTR(numa_bitmask_isbitset_func_t,
+@@ -2975,6 +2980,7 @@
+ os::Linux::numa_available_func_t os::Linux::_numa_available;
+ os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory;
+ os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory;
++os::Linux::numa_interleave_memory_v2_func_t os::Linux::_numa_interleave_memory_v2;
+ os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
+ os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
+ os::Linux::numa_distance_func_t os::Linux::_numa_distance;
+diff -r 74c81011375b src/os/linux/vm/os_linux.hpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed May 17 17:52:34 2017 -0400
++++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed May 31 12:27:00 2017 -0400
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 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
+@@ -190,6 +190,9 @@
+ static void libpthread_init();
+ static bool libnuma_init();
+ static void* libnuma_dlsym(void* handle, const char* name);
++ // libnuma v2 (libnuma_1.2) symbols
++ static void* libnuma_v2_dlsym(void* handle, const char* name);
++
+ // Minimum stack size a thread can be created with (allowing
+ // the VM to completely create the thread and enter user code)
+ static size_t min_stack_allowed;
+@@ -250,6 +253,8 @@
+ typedef int (*numa_available_func_t)(void);
+ typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
+ typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long
*nodemask);
++ typedef void (*numa_interleave_memory_v2_func_t)(void *start, size_t size, struct
bitmask* mask);
++
+ typedef void (*numa_set_bind_policy_func_t)(int policy);
+ typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
+ typedef int (*numa_distance_func_t)(int node1, int node2);
+@@ -261,6 +266,7 @@
+ static numa_available_func_t _numa_available;
+ static numa_tonode_memory_func_t _numa_tonode_memory;
+ static numa_interleave_memory_func_t _numa_interleave_memory;
++ static numa_interleave_memory_v2_func_t _numa_interleave_memory_v2;
+ static numa_set_bind_policy_func_t _numa_set_bind_policy;
+ static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
+ static numa_distance_func_t _numa_distance;
+@@ -275,6 +281,7 @@
+ static void set_numa_available(numa_available_func_t func) { _numa_available = func;
}
+ static void set_numa_tonode_memory(numa_tonode_memory_func_t func) {
_numa_tonode_memory = func; }
+ static void set_numa_interleave_memory(numa_interleave_memory_func_t func) {
_numa_interleave_memory = func; }
++ static void set_numa_interleave_memory_v2(numa_interleave_memory_v2_func_t func) {
_numa_interleave_memory_v2 = func; }
+ static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) {
_numa_set_bind_policy = func; }
+ static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) {
_numa_bitmask_isbitset = func; }
+ static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
+@@ -296,7 +303,10 @@
+ return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
+ }
+ static void numa_interleave_memory(void *start, size_t size) {
+- if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
++ // Use v2 api if available
++ if (_numa_interleave_memory_v2 != NULL && _numa_all_nodes_ptr != NULL) {
++ _numa_interleave_memory_v2(start, size, _numa_all_nodes_ptr);
++ } else if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
+ _numa_interleave_memory(start, size, _numa_all_nodes);
+ }
+ }
+
diff --git a/enableCommentedOutSystemNss.patch b/enableCommentedOutSystemNss.patch
new file mode 100644
index 0000000..febd87e
--- /dev/null
+++ b/enableCommentedOutSystemNss.patch
@@ -0,0 +1,11 @@
+diff -r 5b86f66575b7 src/share/lib/security/java.security-linux
+--- openjdk/jdk/src/share/lib/security/java.security-linux Tue May 16 13:29:05 2017
-0700
++++ openjdk/jdk/src/share/lib/security/java.security-linux Tue Jun 06 14:05:12 2017
+0200
+@@ -74,6 +74,7 @@
+ security.provider.7=com.sun.security.sasl.Provider
+ security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
+ security.provider.9=sun.security.smartcardio.SunPCSC
++#security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
+
+ #
+ # Sun Provider SecureRandom seed source.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 197b550..6e46d7e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -548,6 +548,7 @@ exit 0
%{_jvmprivdir}/*
%{jvmjardir %%1}
%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
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.policy
@@ -813,7 +814,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -838,6 +839,9 @@ URL:
http://openjdk.java.net/
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
+# Shenandoah HotSpot
+Source1:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
+
# Custom README for -src subpackage
Source2: README.src
@@ -869,9 +873,6 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
-# Shenandoah HotSpot
-Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
-
# RPM/distribution specific patches
# Accessibility patches
@@ -946,6 +947,10 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
+# 8175813, PR3394, RH1448880: PPC64: "mbind: Invalid argument" when
-XX:+UseNUMA is used
+Patch550: 8175813-pr3394-rh1448880.patch
+# 8181055, PR3394, RH1448880: PPC64: "mbind: Invalid argument" still seen after
8175813
+Patch551: 8181055-pr3394-rh1448880.patch
# Patches upstream and appearing in 8u131
# 6515172, PR3346: Runtime.availableProcessors() ignores Linux taskset command
@@ -988,6 +993,7 @@ Patch534: always_assumemp.patch
Patch539: pr2888.patch
# Non-OpenJDK fixes
+Patch1000: enableCommentedOutSystemNss.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1289,7 +1295,7 @@ ln -s openjdk jdk8
# On Shenandoah-supported architectures, replace HotSpot with
# the Shenandoah version
pushd openjdk
-tar -xf %{SOURCE999}
+tar -xf %{SOURCE1}
rm -rf hotspot
mv openjdk/hotspot .
rm -rf openjdk
@@ -1369,6 +1375,8 @@ sh %{SOURCE12}
%patch547
%patch548
%patch549
+%patch550
+%patch551
# RPM-only fixes
%patch525
@@ -1380,6 +1388,8 @@ sh %{SOURCE12}
%patch534
%endif
+%patch1000
+
# Extract systemtap tapsets
%if %{with_systemtap}
tar -x -I xz -f %{SOURCE8}
@@ -1660,6 +1670,12 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
# Remove empty cacerts database.
rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts
+ # Install cacerts symlink needed by some apps which hardcode the path.
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security
+ RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
+ %{_jvmdir}/%{jredir $suffix}/lib/security)
+ ln -sf $RELATIVE/cacerts .
+ popd
# Install extension symlinks.
install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix}
@@ -2061,6 +2077,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
+- source999 moved to source1
+- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
+- enabled (commented out) system NSS via patch1000, enableCommentedOutSystemNss.patch
+
* Tue May 09 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
- added javafx binding subpackages
diff --git a/update_package.sh b/update_package.sh
index b66e4d3..2c51560 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -125,7 +125,7 @@ else
echo "${FILENAME_SH} already exists, using"
fi
-sed -i "s/^Source999:.*/Source999: ${FILENAME_SH}/" $SPEC
+sed -i "s/^Source1:.*/Source1: ${FILENAME_SH}/" $SPEC
git --no-pager diff $SPEC
# find the most similar sources name and replace it by newly generated one.
commit 562d2b38dd83268da9c22d1bf528b877d1235133
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon May 29 17:46:14 2017 +0200
added javafx binding subpackages
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8c3ec77..197b550 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -172,6 +172,26 @@
%global with_systemtap 0
%endif
+%ifarch %{ix86} x86_64
+%global with_openjfx_binding 1
+%global openjfx_path %{_jvmdir}/openjfx
+# links src directories
+%global jfx_jre_libs_dir %{openjfx_path}/rt/lib
+%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
+%global jfx_sdk_libs_dir %{openjfx_path}/lib
+%global jfx_sdk_bins_dir %{openjfx_path}/bin
+%global jfx_jre_exts_dir %{jfx_sdk_libs_dir}/ext
+# links src files
+# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
+%global jfx_jre_libs jfxswt.jar javafx.properties
+%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
ibglass.so libjavafx_iio.so
+%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
+%global jfx_sdk_bins javafxpackager javapackager
+%global jfx_jre_exts jfxrt.jar
+%else
+%global with_openjfx_binding 0
+%endif
+
# Convert an absolute path to a relative path. Each symbolic link is
# specified relative to the directory in which it is installed so that
# it will resolve properly within chrooted installations.
@@ -793,7 +813,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1206,6 +1226,39 @@ Summary: OpenJDK accessibility connector %{for_debug}
See normal java-%{version}-openjdk-accessibility description.
%endif
+
+%if %{with_openjfx_binding}
+%package openjfx
+Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
+Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx%{?_isa}
+%description openjfx
+Set of links from OpenJDK (jre) to OpenJFX
+
+%package openjfx-devel
+Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
+Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx-devel
+%description openjfx-devel
+Set of links from OpenJDK (sdk) to OpenJFX
+
+%if %{include_debug_build}
+%package openjfx-debug
+Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-debug
+Requires: %{name}-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx%{?_isa}
+%description openjfx-debug
+Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+
+%package openjfx-devel-debug
+Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
+Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx-devel
+%description openjfx-devel-debug
+Set of links from OpenJDK-debug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+%endif
+%endif
+
%prep
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
echo "include_normal_build is %{include_normal_build}"
@@ -1771,6 +1824,44 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
echo "" >> accessibility.properties
popd
+# intentionally after all else, fx links with redirections on its own
+%if %{with_openjfx_binding}
+ FXSDK_FILES=%{name}-openjfx-devel.files"$suffix"
+ FXJRE_FILES=%{name}-openjfx.files"$suffix"
+ echo -n "" > $FXJRE_FILES
+ echo -n "" > $FXSDK_FILES
+ for file in %{jfx_jre_libs} ; do
+ srcfile=%{jfx_jre_libs_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir $suffix}/lib/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_jre_native} ; do
+ srcfile=%{jfx_jre_native_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_jre_exts} ; do
+ srcfile=%{jfx_jre_exts_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir $suffix}/lib/ext/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_sdk_libs} ; do
+ srcfile=%{jfx_sdk_libs_dir}/$file
+ targetfile=%{_jvmdir}/%{sdkdir $suffix}/lib/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXSDK_FILES
+ done
+ for file in %{jfx_sdk_bins} ; do
+ srcfile=%{jfx_sdk_bins_dir}/$file
+ targetfile=%{_jvmdir}/%{sdkdir $suffix}/bin/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXSDK_FILES
+ done
+%endif
+
bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver}
#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir
$suffix}/lib/security/java.security
@@ -1929,6 +2020,12 @@ require "copy_jdk_configs.lua"
%files accessibility
%{files_accessibility %{nil}}
+
+%if %{with_openjfx_binding}
+%files openjfx -f %{name}-openjfx.files
+
+%files openjfx-devel -f %{name}-openjfx-devel.files
+%endif
%endif
%if %{include_debug_build}
@@ -1955,9 +2052,18 @@ require "copy_jdk_configs.lua"
%files accessibility-debug
%{files_accessibility %{debug_suffix_unquoted}}
+
+%if %{with_openjfx_binding}
+%files openjfx-debug -f %{name}-openjfx.files-debug
+
+%files openjfx-devel-debug -f %{name}-openjfx-devel.files-debug
+%endif
%endif
%changelog
+* Tue May 09 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
+- added javafx binding subpackages
+
* Thu Apr 20 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
- updated to aarch64-jdk8u131-b12 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20 (from
aarch64-port/jdk8u-shenandoah) of hotspot
commit 0fb9d78c0fc9669282fb8bdf6cb0045c48d64d06
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Apr 21 09:56:16 2017 +0200
Patche adapted to current surces
diff --git a/6515172-pr3346.patch b/6515172-pr3346.patch
new file mode 100644
index 0000000..4b8e8a2
--- /dev/null
+++ b/6515172-pr3346.patch
@@ -0,0 +1,213 @@
+# HG changeset patch
+# User shshahma
+# Date 1474535080 25200
+# Thu Sep 22 02:04:40 2016 -0700
+# Node ID baf64c88538f477d7f5a0cf90b670108ac312375
+# Parent 62212568179b76b5ebe7b0129ddeed7b268b0bc0
+6515172, PR3346: Runtime.availableProcessors() ignores Linux taskset command
+Summary: extract processor count from sched_getaffinity mask
+Reviewed-by: dholmes, gthornbr
+
+diff --git a/src/os/linux/vm/globals_linux.hpp b/src/os/linux/vm/globals_linux.hpp
+--- openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
++++ openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 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
+@@ -47,7 +47,10 @@
+ "Load DLLs with executable-stack attribute in the VM Thread") \
+ \
+ product(bool, UseSHM, false, \
+- "Use SYSV shared memory for large pages")
++ "Use SYSV shared memory for large pages") \
++ \
++ diagnostic(bool, PrintActiveCpus, false, \
++ "Print the number of CPUs detected in os::active_processor_count")
+
+ //
+ // Defines Linux-specific default values. The flags are available on all
+diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 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
+@@ -104,6 +104,14 @@
+
+ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+
++#ifndef _GNU_SOURCE
++ #define _GNU_SOURCE
++ #include <sched.h>
++ #undef _GNU_SOURCE
++#else
++ #include <sched.h>
++#endif
++
+ // if RUSAGE_THREAD for getrusage() has not been defined, do it here. The code calling
+ // getrusage() is prepared to handle the associated failure.
+ #ifndef RUSAGE_THREAD
+@@ -5027,12 +5035,42 @@
+ }
+ };
+
++static int os_cpu_count(const cpu_set_t* cpus) {
++ int count = 0;
++ // only look up to the number of configured processors
++ for (int i = 0; i < os::processor_count(); i++) {
++ if (CPU_ISSET(i, cpus)) {
++ count++;
++ }
++ }
++ return count;
++}
++
++// Get the current number of available processors for this process.
++// This value can change at any time during a process's lifetime.
++// sched_getaffinity gives an accurate answer as it accounts for cpusets.
++// If anything goes wrong we fallback to returning the number of online
++// processors - which can be greater than the number available to the process.
+ int os::active_processor_count() {
+- // Linux doesn't yet have a (official) notion of processor sets,
+- // so just return the number of online processors.
+- int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
+- assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity
check");
+- return online_cpus;
++ cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
++ int cpus_size = sizeof(cpu_set_t);
++ int cpu_count = 0;
++
++ // pid 0 means the current thread - which we have to assume represents the process
++ if (sched_getaffinity(0, cpus_size, &cpus) == 0) {
++ cpu_count = os_cpu_count(&cpus);
++ if (PrintActiveCpus) {
++ tty->print_cr("active_processor_count: sched_getaffinity processor count:
%d", cpu_count);
++ }
++ }
++ else {
++ cpu_count = ::sysconf(_SC_NPROCESSORS_ONLN);
++ warning("sched_getaffinity failed (%s)- using online processor count (%d)
"
++ "which may exceed available processors", strerror(errno),
cpu_count);
++ }
++
++ assert(cpu_count > 0 && cpu_count <= processor_count(), "sanity
check");
++ return cpu_count;
+ }
+
+ void os::set_native_thread_name(const char *name) {
+diff --git a/test/runtime/os/AvailableProcessors.java
b/test/runtime/os/AvailableProcessors.java
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/test/runtime/os/AvailableProcessors.java
+@@ -0,0 +1,103 @@
++/*
++ * 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.io.File;
++import com.oracle.java.testlibrary.ProcessTools;
++import com.oracle.java.testlibrary.OutputAnalyzer;
++import java.util.ArrayList;
++
++/*
++ * @test
++ * @bug 6515172
++ * @summary Check that availableProcessors reports the correct value when running in a
cpuset on linux
++ * @requires os.family == "linux"
++ * @library /testlibrary
++ * @build com.oracle.java.testlibrary.*
++ * @run driver AvailableProcessors
++ */
++public class AvailableProcessors {
++
++ static final String SUCCESS_STRING = "Found expected processors: ";
++
++ public static void main(String[] args) throws Throwable {
++ if (args.length > 0)
++ checkProcessors(Integer.parseInt(args[0]));
++ else {
++ // run ourselves under different cpu configurations
++ // using the taskset command
++ String taskset;
++ final String taskset1 = "/bin/taskset";
++ final String taskset2 = "/usr/bin/taskset";
++ if (new File(taskset1).exists())
++ taskset = taskset1;
++ else if (new File(taskset2).exists())
++ taskset = taskset2;
++ else {
++ System.out.println("Skipping test: could not find taskset
command");
++ return;
++ }
++
++ int available = Runtime.getRuntime().availableProcessors();
++
++ if (available == 1) {
++ System.out.println("Skipping test: only one processor
available");
++ return;
++ }
++
++ // Get the java command we want to execute
++ // Enable logging for easier failure diagnosis
++ ProcessBuilder master =
++ ProcessTools.createJavaProcessBuilder(false,
++
"-XX:+UnlockDiagnosticVMOptions",
++
"-XX:+PrintActiveCpus",
++
"AvailableProcessors");
++
++ int[] expected = new int[] { 1, available/2, available-1, available };
++
++ for (int i : expected) {
++ System.out.println("Testing for " + i + " processors
...");
++ int max = i - 1;
++ ArrayList<String> cmdline = new
ArrayList<>(master.command());
++ // prepend taskset command
++ cmdline.add(0, "0-" + max);
++ cmdline.add(0, "-c");
++ cmdline.add(0, taskset);
++ // append expected processor count
++ cmdline.add(String.valueOf(i));
++ ProcessBuilder pb = new ProcessBuilder(cmdline);
++ System.out.println("Final command line: " +
++ ProcessTools.getCommandLine(pb));
++ OutputAnalyzer output = ProcessTools.executeProcess(pb);
++ output.shouldContain(SUCCESS_STRING);
++ }
++ }
++ }
++
++ static void checkProcessors(int expected) {
++ int available = Runtime.getRuntime().availableProcessors();
++ if (available != expected)
++ throw new Error("Expected " + expected + " processors, but
found "
++ + available);
++ else
++ System.out.println(SUCCESS_STRING + available);
++ }
++}
diff --git a/8144566-pr3352.patch b/8144566-pr3352.patch
new file mode 100644
index 0000000..9a2a294
--- /dev/null
+++ b/8144566-pr3352.patch
@@ -0,0 +1,911 @@
+# HG changeset patch
+# User rpatil
+# Date 1474623897 -19800
+# Fri Sep 23 15:14:57 2016 +0530
+# Node ID fb617df8fbac42e962219e45cbd29b15b5ecdc63
+# Parent d41592af9af3790fe5eee30ce686d85cff09c942
+8144566, PR3352: Custom HostnameVerifier disables SNI extension
+Reviewed-by: coffeys
+
+diff --git a/src/share/classes/sun/security/ssl/SSLSocketImpl.java
b/src/share/classes/sun/security/ssl/SSLSocketImpl.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1996, 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
+@@ -220,6 +220,11 @@
+ Collections.<SNIServerName>emptyList();
+ Collection<SNIMatcher> sniMatchers =
+ Collections.<SNIMatcher>emptyList();
++ // Is the serverNames set to empty with SSLParameters.setServerNames()?
++ private boolean noSniExtension = false;
++
++ // Is the sniMatchers set to empty with SSLParameters.setSNIMatchers()?
++ private boolean noSniMatcher = false;
+
+ /*
+ * READ ME * READ ME * READ ME * READ ME * READ ME * READ ME *
+@@ -666,6 +671,11 @@
+ }
+
+ super.connect(endpoint, timeout);
++
++ if (host == null || host.length() == 0) {
++ useImplicitHost(false);
++ }
++
+ doneConnect();
+ }
+
+@@ -2158,41 +2168,61 @@
+ output.r.setVersion(protocolVersion);
+ }
+
++ //
++ // ONLY used by ClientHandshaker for the server hostname during handshaking
++ //
+ synchronized String getHost() {
+ // Note that the host may be null or empty for localhost.
+ if (host == null || host.length() == 0) {
+- if (!trustNameService) {
+- // If the local name service is not trustworthy, reverse host
+- // name resolution should not be performed for endpoint
+- // identification. Use the application original specified
+- // hostname or IP address instead.
+- host = getOriginalHostname(getInetAddress());
+- } else {
+- host = getInetAddress().getHostName();
+- }
++ useImplicitHost(true);
+ }
+
+ return host;
+ }
+
+ /*
+- * Get the original application specified hostname.
++ * Try to set and use the implicit specified hostname
+ */
+- private static String getOriginalHostname(InetAddress inetAddress) {
+- /*
+- * Get the original hostname via sun.misc.SharedSecrets.
+- */
++ private synchronized void useImplicitHost(boolean noSniUpdate) {
++
++ // Note: If the local name service is not trustworthy, reverse
++ // host name resolution should not be performed for endpoint
++ // identification. Use the application original specified
++ // hostname or IP address instead.
++
++ // Get the original hostname via jdk.internal.misc.SharedSecrets
++ InetAddress inetAddress = getInetAddress();
++ if (inetAddress == null) { // not connected
++ return;
++ }
++
+ JavaNetAccess jna = SharedSecrets.getJavaNetAccess();
+ String originalHostname = jna.getOriginalHostName(inetAddress);
++ if ((originalHostname != null) &&
++ (originalHostname.length() != 0)) {
+
+- /*
+- * If no application specified hostname, use the IP address.
+- */
+- if (originalHostname == null || originalHostname.length() == 0) {
+- originalHostname = inetAddress.getHostAddress();
++ host = originalHostname;
++ if (!noSniUpdate && serverNames.isEmpty() &&
!noSniExtension) {
++ serverNames =
++ Utilities.addToSNIServerNameList(serverNames, host);
++
++ if (!roleIsServer &&
++ (handshaker != null) && !handshaker.started()) {
++ handshaker.setSNIServerNames(serverNames);
++ }
++ }
++
++ return;
+ }
+
+- return originalHostname;
++ // No explicitly specified hostname, no server name indication.
++ if (!trustNameService) {
++ // The local name service is not trustworthy, use IP address.
++ host = inetAddress.getHostAddress();
++ } else {
++ // Use the underlying reverse host name resolution service.
++ host = getInetAddress().getHostName();
++ }
+ }
+
+
+@@ -2205,6 +2235,10 @@
+ this.host = host;
+ this.serverNames =
+ Utilities.addToSNIServerNameList(this.serverNames, this.host);
++
++ if (!roleIsServer && (handshaker != null) &&
!handshaker.started()) {
++ handshaker.setSNIServerNames(serverNames);
++ }
+ }
+
+ /**
+@@ -2571,8 +2605,21 @@
+ // the super implementation does not handle the following parameters
+ params.setEndpointIdentificationAlgorithm(identificationProtocol);
+ params.setAlgorithmConstraints(algorithmConstraints);
+- params.setSNIMatchers(sniMatchers);
+- params.setServerNames(serverNames);
++
++ if (sniMatchers.isEmpty() && !noSniMatcher) {
++ // 'null' indicates none has been set
++ params.setSNIMatchers(null);
++ } else {
++ params.setSNIMatchers(sniMatchers);
++ }
++
++ if (serverNames.isEmpty() && !noSniExtension) {
++ // 'null' indicates none has been set
++ params.setServerNames(null);
++ } else {
++ params.setServerNames(serverNames);
++ }
++
+ params.setUseCipherSuitesOrder(preferLocalCipherSuites);
+
+ return params;
+@@ -2592,11 +2639,13 @@
+
+ List<SNIServerName> sniNames = params.getServerNames();
+ if (sniNames != null) {
++ noSniExtension = sniNames.isEmpty();
+ serverNames = sniNames;
+ }
+
+ Collection<SNIMatcher> matchers = params.getSNIMatchers();
+ if (matchers != null) {
++ noSniMatcher = matchers.isEmpty();
+ sniMatchers = matchers;
+ }
+
+diff --git a/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
b/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
+@@ -0,0 +1,337 @@
++/*
++ * 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.
++ */
++
++//
++// SunJSSE does not support dynamic system properties, no way to re-use
++// system properties in samevm/agentvm mode.
++//
++
++/**
++ * @test
++ * @bug 8144566
++ * @summary Custom HostnameVerifier disables SNI extension
++ * @run main/othervm BestEffortOnLazyConnected
++ */
++
++import java.io.*;
++import java.nio.*;
++import java.nio.channels.*;
++import java.util.*;
++import java.net.*;
++import javax.net.ssl.*;
++
++public class BestEffortOnLazyConnected {
++
++ /*
++ * =============================================================
++ * Set the various variables needed for the tests, then
++ * specify what tests to run on each side.
++ */
++
++ /*
++ * Should we run the client or server in a separate thread?
++ * Both sides can throw exceptions, but do you have a preference
++ * as to which side should be the main thread.
++ */
++ private static final boolean separateServerThread = true;
++
++ /*
++ * Where do we find the keystores?
++ */
++ private static final String pathToStores =
"../../../../sun/security/ssl/etc";
++ private static final String keyStoreFile = "keystore";
++ private static final String trustStoreFile = "truststore";
++ private static final String passwd = "passphrase";
++
++ /*
++ * Is the server ready to serve?
++ */
++ private static volatile boolean serverReady = false;
++
++ /*
++ * Turn on SSL debugging?
++ */
++ private static final boolean debug = false;
++
++ /*
++ * the fully qualified domain name of localhost
++ */
++ private static String hostname = null;
++
++ /*
++ * If the client or server is doing some kind of object creation
++ * that the other side depends on, and that thread prematurely
++ * exits, you may experience a hang. The test harness will
++ * terminate all hung threads after its timeout has expired,
++ * currently 3 minutes by default, but you might try to be
++ * smart about it....
++ */
++
++ /*
++ * Define the server side of the test.
++ *
++ * If the server prematurely exits, serverReady will be set to true
++ * to avoid infinite hangs.
++ */
++ private void doServerSide() throws Exception {
++ SSLServerSocketFactory sslssf =
++ (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
++ try (SSLServerSocket sslServerSocket =
++ (SSLServerSocket) sslssf.createServerSocket(serverPort)) {
++
++ serverPort = sslServerSocket.getLocalPort();
++
++ /*
++ * Signal Client, we're ready for his connect.
++ */
++ serverReady = true;
++
++ try (SSLSocket sslSocket = (SSLSocket)sslServerSocket.accept()) {
++ InputStream sslIS = sslSocket.getInputStream();
++ OutputStream sslOS = sslSocket.getOutputStream();
++
++ sslIS.read();
++ sslOS.write(85);
++ sslOS.flush();
++
++ ExtendedSSLSession session =
++ (ExtendedSSLSession)sslSocket.getSession();
++ if (session.getRequestedServerNames().isEmpty()) {
++ throw new Exception("No expected Server Name
Indication");
++ }
++ }
++ }
++ }
++
++ /*
++ * Define the client side of the test.
++ *
++ * If the server prematurely exits, serverReady will be set to true
++ * to avoid infinite hangs.
++ */
++ private void doClientSide() throws Exception {
++
++ /*
++ * Wait for server to get started.
++ */
++ while (!serverReady) {
++ Thread.sleep(50);
++ }
++
++ SSLSocketFactory sslsf =
++ (SSLSocketFactory) SSLSocketFactory.getDefault();
++
++ try (SSLSocket sslSocket = (SSLSocket)sslsf.createSocket()) {
++
++ sslSocket.connect(new InetSocketAddress(hostname, serverPort), 0);
++
++ InputStream sslIS = sslSocket.getInputStream();
++ OutputStream sslOS = sslSocket.getOutputStream();
++
++ sslOS.write(280);
++ sslOS.flush();
++ sslIS.read();
++ }
++ }
++
++
++ /*
++ * =============================================================
++ * The remainder is just support stuff
++ */
++
++ // use any free port by default
++ private volatile int serverPort = 0;
++
++ private volatile Exception serverException = null;
++ private volatile Exception clientException = null;
++
++ public static void main(String[] args) throws Exception {
++ String keyFilename =
++ System.getProperty("test.src", ".") + "/" +
pathToStores +
++ "/" + keyStoreFile;
++ String trustFilename =
++ System.getProperty("test.src", ".") + "/" +
pathToStores +
++ "/" + trustStoreFile;
++
++ System.setProperty("javax.net.ssl.keyStore", keyFilename);
++ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
++ System.setProperty("javax.net.ssl.trustStore", trustFilename);
++ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
++
++ if (debug) {
++ System.setProperty("javax.net.debug", "all");
++ }
++
++ try {
++ hostname = InetAddress.getLocalHost().getCanonicalHostName();
++ } catch (UnknownHostException uhe) {
++ System.out.println(
++ "Ignore the test as the local hostname cannot be
determined");
++
++ return;
++ }
++
++ System.out.println(
++ "The fully qualified domain name of the local host is " +
++ hostname);
++ // Ignore the test if the hostname does not sound like a domain name.
++ if ((hostname == null) || hostname.isEmpty() ||
++ hostname.startsWith("localhost") ||
++ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
++
++ System.out.println("Ignore the test as the local hostname " +
++ "cannot be determined as fully qualified domain name");
++
++ return;
++ }
++
++ /*
++ * Start the tests.
++ */
++ new BestEffortOnLazyConnected();
++ }
++
++ private Thread clientThread = null;
++ private Thread serverThread = null;
++
++ /*
++ * Primary constructor, used to drive remainder of the test.
++ *
++ * Fork off the other side, then do your work.
++ */
++ BestEffortOnLazyConnected() throws Exception {
++ try {
++ if (separateServerThread) {
++ startServer(true);
++ startClient(false);
++ } else {
++ startClient(true);
++ startServer(false);
++ }
++ } catch (Exception e) {
++ // swallow for now. Show later
++ }
++
++ /*
++ * Wait for other side to close down.
++ */
++ if (separateServerThread) {
++ serverThread.join();
++ } else {
++ clientThread.join();
++ }
++
++ /*
++ * When we get here, the test is pretty much over.
++ * Which side threw the error?
++ */
++ Exception local;
++ Exception remote;
++ String whichRemote;
++
++ if (separateServerThread) {
++ remote = serverException;
++ local = clientException;
++ whichRemote = "server";
++ } else {
++ remote = clientException;
++ local = serverException;
++ whichRemote = "client";
++ }
++
++ /*
++ * If both failed, return the curthread's exception, but also
++ * print the remote side Exception
++ */
++ if ((local != null) && (remote != null)) {
++ System.out.println(whichRemote + " also threw:");
++ remote.printStackTrace();
++ System.out.println();
++ throw local;
++ }
++
++ if (remote != null) {
++ throw remote;
++ }
++
++ if (local != null) {
++ throw local;
++ }
++ }
++
++ private void startServer(boolean newThread) throws Exception {
++ if (newThread) {
++ serverThread = new Thread() {
++ public void run() {
++ try {
++ doServerSide();
++ } catch (Exception e) {
++ /*
++ * Our server thread just died.
++ *
++ * Release the client, if not active already...
++ */
++ System.err.println("Server died...");
++ serverReady = true;
++ serverException = e;
++ }
++ }
++ };
++ serverThread.start();
++ } else {
++ try {
++ doServerSide();
++ } catch (Exception e) {
++ serverException = e;
++ } finally {
++ serverReady = true;
++ }
++ }
++ }
++
++ private void startClient(boolean newThread) throws Exception {
++ if (newThread) {
++ clientThread = new Thread() {
++ public void run() {
++ try {
++ doClientSide();
++ } catch (Exception e) {
++ /*
++ * Our client thread just died.
++ */
++ System.err.println("Client died...");
++ clientException = e;
++ }
++ }
++ };
++ clientThread.start();
++ } else {
++ try {
++ doClientSide();
++ } catch (Exception e) {
++ clientException = e;
++ }
++ }
++ }
++}
+diff --git a/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
b/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
+@@ -0,0 +1,390 @@
++/*
++ * 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.
++ */
++
++//
++// SunJSSE does not support dynamic system properties, no way to re-use
++// system properties in samevm/agentvm mode.
++//
++
++/*
++ * @test
++ * @bug 8144566
++ * @summary Custom HostnameVerifier disables SNI extension
++ * @run main/othervm ImpactOnSNI
++ */
++
++import java.io.*;
++import java.net.*;
++import javax.net.ssl.*;
++
++public class ImpactOnSNI {
++
++ /*
++ * =============================================================
++ * Set the various variables needed for the tests, then
++ * specify what tests to run on each side.
++ */
++
++ /*
++ * Should we run the client or server in a separate thread?
++ * Both sides can throw exceptions, but do you have a preference
++ * as to which side should be the main thread.
++ */
++ private static final boolean separateServerThread = true;
++
++ /*
++ * Where do we find the keystores?
++ */
++ private static final String pathToStores =
++
"../../../../../../sun/security/ssl/etc";
++ private static final String keyStoreFile = "keystore";
++ private static final String trustStoreFile = "truststore";
++ private static final String passwd = "passphrase";
++
++ /*
++ * Is the server ready to serve?
++ */
++ private static volatile boolean serverReady = false;
++
++ /*
++ * Is the connection ready to close?
++ */
++ private static volatile boolean closeReady = false;
++
++ /*
++ * Turn on SSL debugging?
++ */
++ private static final boolean debug = false;
++
++ /*
++ * Message posted
++ */
++ private static final String postMsg = "HTTP post on a https server";
++
++ /*
++ * the fully qualified domain name of localhost
++ */
++ private static String hostname = null;
++
++ /*
++ * If the client or server is doing some kind of object creation
++ * that the other side depends on, and that thread prematurely
++ * exits, you may experience a hang. The test harness will
++ * terminate all hung threads after its timeout has expired,
++ * currently 3 minutes by default, but you might try to be
++ * smart about it....
++ */
++
++ /*
++ * Define the server side of the test.
++ *
++ * If the server prematurely exits, serverReady will be set to true
++ * to avoid infinite hangs.
++ */
++ private void doServerSide() throws Exception {
++ SSLServerSocketFactory sslssf =
++ (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
++ try (SSLServerSocket sslServerSocket =
++ (SSLServerSocket)sslssf.createServerSocket(serverPort)) {
++
++ serverPort = sslServerSocket.getLocalPort();
++
++ /*
++ * Signal Client, we're ready for his connect.
++ */
++ serverReady = true;
++
++ /*
++ * Accept connections
++ */
++ try (SSLSocket sslSocket = (SSLSocket)sslServerSocket.accept()) {
++ InputStream sslIS = sslSocket.getInputStream();
++ OutputStream sslOS = sslSocket.getOutputStream();
++ BufferedReader br =
++ new BufferedReader(new InputStreamReader(sslIS));
++ PrintStream ps = new PrintStream(sslOS);
++
++ // process HTTP POST request from client
++ System.out.println("status line: " + br.readLine());
++ String msg = null;
++ while ((msg = br.readLine()) != null && msg.length() > 0);
++
++ msg = br.readLine();
++ if (msg.equals(postMsg)) {
++ ps.println("HTTP/1.1 200 OK\n\n");
++ } else {
++ ps.println("HTTP/1.1 500 Not OK\n\n");
++ }
++ ps.flush();
++
++ ExtendedSSLSession session =
++ (ExtendedSSLSession)sslSocket.getSession();
++ if (session.getRequestedServerNames().isEmpty()) {
++ throw new Exception("No expected Server Name
Indication");
++ }
++
++ // close the socket
++ while (!closeReady) {
++ Thread.sleep(50);
++ }
++ }
++ }
++ }
++
++ /*
++ * Define the client side of the test.
++ *
++ * If the server prematurely exits, serverReady will be set to true
++ * to avoid infinite hangs.
++ */
++ private void doClientSide() throws Exception {
++ /*
++ * Wait for server to get started.
++ */
++ while (!serverReady) {
++ Thread.sleep(50);
++ }
++
++ // Send HTTP POST request to server
++ URL url = new URL("https://" + hostname + ":" +
serverPort);
++
++ HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier());
++ HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
++ http.setDoOutput(true);
++
++ http.setRequestMethod("POST");
++ PrintStream ps = new PrintStream(http.getOutputStream());
++ try {
++ ps.println(postMsg);
++ ps.flush();
++ if (http.getResponseCode() != 200) {
++ throw new RuntimeException("test Failed");
++ }
++ } finally {
++ ps.close();
++ http.disconnect();
++ closeReady = true;
++ }
++ }
++
++ private static class NameVerifier implements HostnameVerifier {
++ public boolean verify(String hostname, SSLSession session) {
++ return true;
++ }
++ }
++
++ /*
++ * =============================================================
++ * The remainder is just support stuff
++ */
++
++ // use any free port by default
++ private volatile int serverPort = 0;
++
++ private volatile Exception serverException = null;
++ private volatile Exception clientException = null;
++
++ public static void main(String[] args) throws Exception {
++ String keyFilename =
++ System.getProperty("test.src", "./") + "/" +
pathToStores +
++ "/" + keyStoreFile;
++ String trustFilename =
++ System.getProperty("test.src", "./") + "/" +
pathToStores +
++ "/" + trustStoreFile;
++
++ System.setProperty("javax.net.ssl.keyStore", keyFilename);
++ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
++ System.setProperty("javax.net.ssl.trustStore", trustFilename);
++ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
++
++ if (debug) {
++ System.setProperty("javax.net.debug", "all");
++ }
++
++ try {
++ hostname = InetAddress.getLocalHost().getCanonicalHostName();
++ } catch (UnknownHostException uhe) {
++ System.out.println(
++ "Ignore the test as the local hostname cannot be
determined");
++
++ return;
++ }
++
++ System.out.println(
++ "The fully qualified domain name of the local host is " +
++ hostname);
++ // Ignore the test if the hostname does not sound like a domain name.
++ if ((hostname == null) || hostname.isEmpty() ||
++ hostname.startsWith("localhost") ||
++ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
++
++ System.out.println("Ignore the test as the local hostname " +
++ "cannot be determined as fully qualified domain name");
++
++ return;
++ }
++
++ /*
++ * Start the tests.
++ */
++ new ImpactOnSNI();
++ }
++
++ private Thread clientThread = null;
++ private Thread serverThread = null;
++
++ /*
++ * Primary constructor, used to drive remainder of the test.
++ *
++ * Fork off the other side, then do your work.
++ */
++ ImpactOnSNI() throws Exception {
++ Exception startException = null;
++ try {
++ if (separateServerThread) {
++ startServer(true);
++ startClient(false);
++ } else {
++ startClient(true);
++ startServer(false);
++ }
++ } catch (Exception e) {
++ startException = e;
++ }
++
++ /*
++ * Wait for other side to close down.
++ */
++ if (separateServerThread) {
++ if (serverThread != null) {
++ serverThread.join();
++ }
++ } else {
++ if (clientThread != null) {
++ clientThread.join();
++ }
++ }
++
++ /*
++ * When we get here, the test is pretty much over.
++ * Which side threw the error?
++ */
++ Exception local;
++ Exception remote;
++
++ if (separateServerThread) {
++ remote = serverException;
++ local = clientException;
++ } else {
++ remote = clientException;
++ local = serverException;
++ }
++
++ Exception exception = null;
++
++ /*
++ * Check various exception conditions.
++ */
++ if ((local != null) && (remote != null)) {
++ // If both failed, return the curthread's exception.
++ local.initCause(remote);
++ exception = local;
++ } else if (local != null) {
++ exception = local;
++ } else if (remote != null) {
++ exception = remote;
++ } else if (startException != null) {
++ exception = startException;
++ }
++
++ /*
++ * If there was an exception *AND* a startException,
++ * output it.
++ */
++ if (exception != null) {
++ if (exception != startException && startException != null) {
++ exception.addSuppressed(startException);
++ }
++ throw exception;
++ }
++
++ // Fall-through: no exception to throw!
++ }
++
++ private void startServer(boolean newThread) throws Exception {
++ if (newThread) {
++ serverThread = new Thread() {
++ @Override
++ public void run() {
++ try {
++ doServerSide();
++ } catch (Exception e) {
++ /*
++ * Our server thread just died.
++ *
++ * Release the client, if not active already...
++ */
++ System.err.println("Server died...");
++ serverReady = true;
++ serverException = e;
++ }
++ }
++ };
++ serverThread.start();
++ } else {
++ try {
++ doServerSide();
++ } catch (Exception e) {
++ serverException = e;
++ } finally {
++ serverReady = true;
++ }
++ }
++ }
++
++ private void startClient(boolean newThread) throws Exception {
++ if (newThread) {
++ clientThread = new Thread() {
++ @Override
++ public void run() {
++ try {
++ doClientSide();
++ } catch (Exception e) {
++ /*
++ * Our client thread just died.
++ */
++ System.err.println("Client died...");
++ clientException = e;
++ }
++ }
++ };
++ clientThread.start();
++ } else {
++ try {
++ doClientSide();
++ } catch (Exception e) {
++ clientException = e;
++ }
++ }
++ }
++}
diff --git a/8155049-pr3352.patch b/8155049-pr3352.patch
new file mode 100644
index 0000000..68cf02f
--- /dev/null
+++ b/8155049-pr3352.patch
@@ -0,0 +1,41 @@
+# HG changeset patch
+# User rhalade
+# Date 1463420211 25200
+# Mon May 16 10:36:51 2016 -0700
+# Node ID c0e856f2dacdf5eb5cdea380da32ba210aee9579
+# Parent fb617df8fbac42e962219e45cbd29b15b5ecdc63
+8155049, PR3352: New tests from 8144566 fail with "No expected Server Name
Indication"
+Reviewed-by: xuelei
+
+diff --git a/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
b/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
+--- openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
++++ openjdk/jdk/test/javax/net/ssl/ServerName/BestEffortOnLazyConnected.java
+@@ -34,9 +34,6 @@
+ */
+
+ import java.io.*;
+-import java.nio.*;
+-import java.nio.channels.*;
+-import java.util.*;
+ import java.net.*;
+ import javax.net.ssl.*;
+
+@@ -197,6 +194,7 @@
+ hostname);
+ // Ignore the test if the hostname does not sound like a domain name.
+ if ((hostname == null) || hostname.isEmpty() ||
++ !hostname.contains(".") || hostname.endsWith(".")
||
+ hostname.startsWith("localhost") ||
+ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
+
+diff --git a/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
b/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
+--- openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
++++ openjdk/jdk/test/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java
+@@ -235,6 +235,7 @@
+ hostname);
+ // Ignore the test if the hostname does not sound like a domain name.
+ if ((hostname == null) || hostname.isEmpty() ||
++ !hostname.contains(".") || hostname.endsWith(".")
||
+ hostname.startsWith("localhost") ||
+ Character.isDigit(hostname.charAt(hostname.length() - 1))) {
+
diff --git a/8165231-rh1437545.patch b/8165231-rh1437545.patch
new file mode 100644
index 0000000..e0d5be7
--- /dev/null
+++ b/8165231-rh1437545.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User horii
+# Date 1473905514 14400
+# Wed Sep 14 22:11:54 2016 -0400
+# Node ID 8d16f74380a78eb76cb33183a64440316393903e
+# Parent be698ac288484ab140715ee29ed9335e6ea8a33b
+8165231: java.nio.Bits.unaligned() doesn't return true on ppc
+Reviewed-by: simonis, coffeys
+
+diff --git a/src/share/classes/java/nio/Bits.java b/src/share/classes/java/nio/Bits.java
+--- openjdk/jdk/src/share/classes/java/nio/Bits.java
++++ openjdk/jdk/src/share/classes/java/nio/Bits.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 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
+@@ -614,7 +614,8 @@
+ String arch = AccessController.doPrivileged(
+ new sun.security.action.GetPropertyAction("os.arch"));
+ unaligned = arch.equals("i386") || arch.equals("x86")
+- || arch.equals("amd64") || arch.equals("x86_64");
++ || arch.equals("amd64") || arch.equals("x86_64")
++ || arch.equals("ppc64") || arch.equals("ppc64le");
+ unalignedKnown = true;
+ return unaligned;
+ }
+diff --git a/src/share/classes/sun/security/provider/ByteArrayAccess.java
b/src/share/classes/sun/security/provider/ByteArrayAccess.java
+--- openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
++++ openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2006, 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
+@@ -94,7 +94,7 @@
+ String arch = java.security.AccessController.doPrivileged
+ (new sun.security.action.GetPropertyAction("os.arch",
""));
+ return arch.equals("i386") || arch.equals("x86") ||
arch.equals("amd64")
+- || arch.equals("x86_64");
++ || arch.equals("x86_64") || arch.equals("ppc64") ||
arch.equals("ppc64le");
+ }
+
+ /**
diff --git a/8170888-pr3314-rh1390708.patch b/8170888-pr3314-rh1390708.patch
deleted file mode 100644
index b72a811..0000000
--- a/8170888-pr3314-rh1390708.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-# HG changeset patch
-# User dholmes
-# Date 1483660520 18000
-# Thu Jan 05 18:55:20 2017 -0500
-# Node ID 652fe741b8f2bfdacba66d772cc89fe7ec6dea66
-# Parent 9e43b1c17a3ad5b26d64499c72db61a1dc1649f0
-8170888, PR3314: [linux] Experimental support for cgroup memory limits in container (ie
Docker) environments
-Summary: Set apparent physical memory to cgroup memory limit when
UseCGroupMemoryLimitForHeap is true
-Reviewed-by: acorn, gtriantafill
-Contributed-by: Christine Flood <chf(a)redhat.com>
-
-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
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 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
-@@ -1768,10 +1768,39 @@
- FLAG_SET_CMDLINE(uintx, MaxRAMFraction, DefaultMaxRAMFraction);
- }
-
-- const julong phys_mem =
-+ julong phys_mem =
- FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM)
- : (julong)MaxRAM;
-
-+ // Experimental support for CGroup memory limits
-+ if (UseCGroupMemoryLimitForHeap) {
-+ // This is a rough indicator that a CGroup limit may be in force
-+ // for this process
-+ const char* lim_file = "/sys/fs/cgroup/memory/memory.limit_in_bytes";
-+ FILE *fp = fopen(lim_file, "r");
-+ if (fp != NULL) {
-+ julong cgroup_max = 0;
-+ int ret = fscanf(fp, JULONG_FORMAT, &cgroup_max);
-+ if (ret == 1 && cgroup_max > 0) {
-+ // If unlimited, cgroup_max will be a very large, but unspecified
-+ // value, so use initial phys_mem as a limit
-+ if (PrintGCDetails && Verbose) {
-+ // Cannot use gclog_or_tty yet.
-+ tty->print_cr("Setting phys_mem to the min of cgroup limit ("
-+ JULONG_FORMAT "MB) and initial phys_mem ("
-+ JULONG_FORMAT "MB)", cgroup_max/M, phys_mem/M);
-+ }
-+ phys_mem = MIN2(cgroup_max, phys_mem);
-+ } else {
-+ warning("Unable to read/parse cgroup memory limit from %s: %s",
-+ lim_file, errno != 0 ? strerror(errno) : "unknown error");
-+ }
-+ fclose(fp);
-+ } else {
-+ warning("Unable to open cgroup memory limit file %s (%s)", lim_file,
strerror(errno));
-+ }
-+ }
-+
- // If the maximum heap size has not been set with -Xmx,
- // then set it as fraction of the size of physical memory,
- // respecting the maximum and minimum sizes of the heap.
-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
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 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
-@@ -2080,6 +2080,10 @@
- "Maximum ergonomically set heap size (in bytes); zero means use " \
- "MaxRAM / MaxRAMFraction") \
- \
-+ experimental(bool, UseCGroupMemoryLimitForHeap, false, \
-+ "Use CGroup memory limit as physical memory limit for heap " \
-+ "sizing") \
-+ \
- product(uintx, MaxRAMFraction, 4, \
- "Maximum fraction (1/n) of real memory used for maximum heap " \
- "size") \
diff --git a/8173941-pr3326.patch b/8173941-pr3326.patch
new file mode 100644
index 0000000..50e74f6
--- /dev/null
+++ b/8173941-pr3326.patch
@@ -0,0 +1,77 @@
+# 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/8174164-pr3334-rh1417266.patch b/8174164-pr3334-rh1417266.patch
index 82a5b16..494883f 100644
--- a/8174164-pr3334-rh1417266.patch
+++ b/8174164-pr3334-rh1417266.patch
@@ -1,16 +1,16 @@
-
# HG changeset patch
# User roland
# Date 1487208397 28800
-# Node ID 35db0413819a18edd6718dd42e7536182c42aa8b
-# Parent ac559f3ccca81de373f18ac7c4b2d813d0278920
-8174164: SafePointNode::_replaced_nodes breaks with irreducible loops
+# Wed Feb 15 17:26:37 2017 -0800
+# Node ID a9cbaff50d3d7e3a1d2dbdc0121c470142b87270
+# Parent 15922b2f31db4857ec84efdf533c41b19e68030b
+8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible loops
Reviewed-by: kvn
-diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/callnode.hpp
---- openjdk/hotspot/src/share/vm/opto/callnode.hpp Wed Feb 15 11:14:45 2017 +0100
-+++ openjdk/hotspot/src/share/vm/opto/callnode.hpp Wed Feb 15 17:26:37 2017 -0800
-@@ -452,8 +452,8 @@
+diff --git a/src/share/vm/opto/callnode.hpp b/src/share/vm/opto/callnode.hpp
+--- openjdk/hotspot/src/share/vm/opto/callnode.hpp
++++ openjdk/hotspot/src/share/vm/opto/callnode.hpp
+@@ -449,8 +449,8 @@
void delete_replaced_nodes() {
_replaced_nodes.reset();
}
@@ -21,60 +21,10 @@ diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/callnode.hpp
}
void merge_replaced_nodes_with(SafePointNode* sfpt) {
_replaced_nodes.merge_with(sfpt->_replaced_nodes);
-# I was informed that this hunk is not necessary in jdk8
-#diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/library_call.cpp
-#--- openjdk/hotspot/src/share/vm/opto/library_call.cpp Wed Feb 15 11:14:45 2017 +0100
-#+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp Wed Feb 15 17:26:37 2017 -0800
-#@@ -277,7 +277,8 @@
-# AllocateArrayNode* tightly_coupled_allocation(Node* ptr,
-# RegionNode* slow_region);
-# JVMState* arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int&
saved_reexecute_sp);
-#- void arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node* dest, JVMState*
saved_jvms, int saved_reexecute_sp);
-#+ void arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node* dest, JVMState*
saved_jvms, int saved_reexecute_sp,
-#+ uint new_idx);
-#
-# typedef enum { LS_get_add, LS_get_set, LS_cmp_swap, LS_cmp_swap_weak, LS_cmp_exchange
} LoadStoreKind;
-# MemNode::MemOrd access_kind_to_memord_LS(AccessKind access_kind, bool is_store);
-#@@ -4882,7 +4883,8 @@
-# // deoptimize. This is possible because tightly_coupled_allocation()
-# // guarantees there's no observer of the allocated array at this point
-# // and the control flow is simple enough.
-#-void LibraryCallKit::arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node*
dest, JVMState* saved_jvms, int saved_reexecute_sp) {
-#+void LibraryCallKit::arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node*
dest, JVMState* saved_jvms,
-#+ int saved_reexecute_sp, uint
new_idx) {
-# if (saved_jvms != NULL && !stopped()) {
-# assert(alloc != NULL, "only with a tightly coupled allocation");
-# // restore JVM state to the state at the arraycopy
-#@@ -4891,7 +4893,7 @@
-# assert(saved_jvms->map()->i_o() == map()->i_o(), "IO state
changed?");
-# // If we've improved the types of some nodes (null check) while
-# // emitting the guards, propagate them to the current state
-#- map()->replaced_nodes().apply(saved_jvms->map());
-#+ map()->replaced_nodes().apply(saved_jvms->map(), new_idx);
-# set_jvms(saved_jvms);
-# _reexecute_sp = saved_reexecute_sp;
-#
-#@@ -4949,6 +4951,7 @@
-# Node* dest_offset = argument(3); // type: int
-# Node* length = argument(4); // type: int
-#
-#+ uint new_idx = C->unique();
-#
-# // Check for allocation before we add nodes that would confuse
-# // tightly_coupled_allocation()
-#@@ -5164,7 +5167,7 @@
-# }
-# }
-#
-#- arraycopy_move_allocation_here(alloc, dest, saved_jvms, saved_reexecute_sp);
-#+ arraycopy_move_allocation_here(alloc, dest, saved_jvms, saved_reexecute_sp,
new_idx);
-#
-# if (stopped()) {
-# return true;
-diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/parse1.cpp
---- openjdk/hotspot/src/share/vm/opto/parse1.cpp Wed Feb 15 11:14:45 2017 +0100
-+++ openjdk/hotspot/src/share/vm/opto/parse1.cpp Wed Feb 15 17:26:37 2017 -0800
-@@ -1086,7 +1086,7 @@
+diff --git a/src/share/vm/opto/parse1.cpp b/src/share/vm/opto/parse1.cpp
+--- openjdk/hotspot/src/share/vm/opto/parse1.cpp
++++ openjdk/hotspot/src/share/vm/opto/parse1.cpp
+@@ -1048,7 +1048,7 @@
kit.make_dtrace_method_exit(method());
}
if (_replaced_nodes_for_exceptions) {
@@ -83,7 +33,7 @@ diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/parse1.cpp
}
// Done with exception-path processing.
ex_map = kit.make_exception_state(ex_oop);
-@@ -1107,7 +1107,7 @@
+@@ -1069,7 +1069,7 @@
_exits.add_exception_state(ex_map);
}
}
@@ -92,10 +42,10 @@ diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/parse1.cpp
}
//-----------------------------create_entry_map-------------------------------
-diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/replacednodes.cpp
---- openjdk/hotspot/src/share/vm/opto/replacednodes.cpp Wed Feb 15 11:14:45 2017 +0100
-+++ openjdk/hotspot/src/share/vm/opto/replacednodes.cpp Wed Feb 15 17:26:37 2017 -0800
-@@ -92,13 +92,17 @@
+diff --git a/src/share/vm/opto/replacednodes.cpp b/src/share/vm/opto/replacednodes.cpp
+--- openjdk/hotspot/src/share/vm/opto/replacednodes.cpp
++++ openjdk/hotspot/src/share/vm/opto/replacednodes.cpp
+@@ -91,13 +91,17 @@
}
// Perfom node replacement (used when returning to caller)
@@ -115,9 +65,9 @@ diff -r ac559f3ccca8 -r 35db0413819a
src/share/vm/opto/replacednodes.cpp
}
}
-diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/replacednodes.hpp
---- openjdk/hotspot/src/share/vm/opto/replacednodes.hpp Wed Feb 15 11:14:45 2017 +0100
-+++ openjdk/hotspot/src/share/vm/opto/replacednodes.hpp Wed Feb 15 17:26:37 2017 -0800
+diff --git a/src/share/vm/opto/replacednodes.hpp b/src/share/vm/opto/replacednodes.hpp
+--- openjdk/hotspot/src/share/vm/opto/replacednodes.hpp
++++ openjdk/hotspot/src/share/vm/opto/replacednodes.hpp
@@ -71,7 +71,7 @@
void record(Node* initial, Node* improved);
void transfer_from(const ReplacedNodes& other, uint idx);
@@ -127,4 +77,3 @@ diff -r ac559f3ccca8 -r 35db0413819a
src/share/vm/opto/replacednodes.hpp
void merge_with(const ReplacedNodes& other);
bool is_empty() const;
void dump(outputStream *st) const;
-
diff --git a/8174729-pr3336-rh1420518.patch b/8174729-pr3336-rh1420518.patch
new file mode 100644
index 0000000..3d67850
--- /dev/null
+++ b/8174729-pr3336-rh1420518.patch
@@ -0,0 +1,122 @@
+# HG changeset patch
+# User adinn
+# Date 1487931564 0
+# Fri Feb 24 10:19:24 2017 +0000
+# Node ID d41592af9af3790fe5eee30ce686d85cff09c942
+# Parent 1ac9b0f1bf17fc5935bfa8250550eabc2ffb6785
+8174729, PR3336, RH1420518: Race Condition in java.lang.reflect.WeakCache
+Summary: Race can occur between Proxy.getProxyClass and Proxy.isProxyClass
+Reviewed-by: mchung
+
+diff --git a/src/share/classes/java/lang/reflect/WeakCache.java
b/src/share/classes/java/lang/reflect/WeakCache.java
+--- openjdk/jdk/src/share/classes/java/lang/reflect/WeakCache.java
++++ openjdk/jdk/src/share/classes/java/lang/reflect/WeakCache.java
+@@ -239,11 +239,11 @@
+ // wrap value with CacheValue (WeakReference)
+ CacheValue<V> cacheValue = new CacheValue<>(value);
+
++ // put into reverseMap
++ reverseMap.put(cacheValue, Boolean.TRUE);
++
+ // try replacing us with CacheValue (this should always succeed)
+- if (valuesMap.replace(subKey, this, cacheValue)) {
+- // put also in reverseMap
+- reverseMap.put(cacheValue, Boolean.TRUE);
+- } else {
++ if (!valuesMap.replace(subKey, this, cacheValue)) {
+ throw new AssertionError("Should not reach here");
+ }
+
+diff --git a/test/java/lang/reflect/Proxy/ProxyRace.java
b/test/java/lang/reflect/Proxy/ProxyRace.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/java/lang/reflect/Proxy/ProxyRace.java
+@@ -0,0 +1,88 @@
++/*
++ * 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.
++ */
++
++import java.lang.reflect.Proxy;
++import java.util.concurrent.ExecutorService;
++import java.util.concurrent.Executors;
++import java.util.concurrent.Phaser;
++import java.util.concurrent.TimeUnit;
++import java.util.concurrent.atomic.AtomicInteger;
++
++/**
++ * @test
++ * @bug 8174729
++ * @summary Proxy.getProxyClass() / Proxy.isProxyClass() race detector
++ * @run main ProxyRace
++ * @author plevart
++ */
++
++public class ProxyRace {
++
++ static final int threads = 8;
++
++ static volatile ClassLoader classLoader;
++ static volatile boolean terminate;
++ static final AtomicInteger racesDetected = new AtomicInteger();
++
++ public static void main(String[] args) throws Exception {
++
++ Phaser phaser = new Phaser(threads) {
++ @Override
++ protected boolean onAdvance(int phase, int registeredParties) {
++ // install new ClassLoader on each advance
++ classLoader = new CL();
++ return terminate;
++ }
++ };
++
++ ExecutorService exe = Executors.newFixedThreadPool(threads);
++
++ for (int i = 0; i < threads; i++) {
++ exe.execute(() -> {
++ while (phaser.arriveAndAwaitAdvance() >= 0) {
++ Class<?> proxyClass = Proxy.getProxyClass(classLoader,
Runnable.class);
++ if (!Proxy.isProxyClass(proxyClass)) {
++ racesDetected.incrementAndGet();
++ }
++ }
++ });
++ }
++
++ Thread.sleep(5000L);
++
++ terminate = true;
++ exe.shutdown();
++ exe.awaitTermination(5L, TimeUnit.SECONDS);
++
++ System.out.println(racesDetected.get() + " races detected");
++ if (racesDetected.get() != 0) {
++ throw new RuntimeException(racesDetected.get() + " races
detected");
++ }
++ }
++
++ static class CL extends ClassLoader {
++ public CL() {
++ super(ClassLoader.getSystemClassLoader());
++ }
++ }
++}
diff --git a/8175097-pr3334-rh1417266.patch b/8175097-pr3334-rh1417266.patch
new file mode 100644
index 0000000..e80dd11
--- /dev/null
+++ b/8175097-pr3334-rh1417266.patch
@@ -0,0 +1,100 @@
+# HG changeset patch
+# User roland
+# Date 1487286884 28800
+# Thu Feb 16 15:14:44 2017 -0800
+# Node ID 1b4eb44fbfcd0fceb485d89d91eb893d99f5864b
+# Parent a9cbaff50d3d7e3a1d2dbdc0121c470142b87270
+8175097, PR3334, RH1417266: [TESTBUG] 8174164 fix missed the test
+Reviewed-by: kvn
+
+diff --git a/test/compiler/c2/TestReplacedNodesOSR.java
b/test/compiler/c2/TestReplacedNodesOSR.java
+new file mode 100644
+--- /dev/null
++++ openjdk/hotspot/test/compiler/c2/TestReplacedNodesOSR.java
+@@ -0,0 +1,86 @@
++/*
++ * 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 8174164
++ * @summary SafePointNode::_replaced_nodes breaks with irreducible loops
++ * @run main/othervm -XX:-BackgroundCompilation TestReplacedNodesOSR
++ *
++ */
++
++public class TestReplacedNodesOSR {
++
++ static Object dummy;
++
++ static interface I {
++ }
++
++ static class A implements I {
++ }
++
++ static final class MyException extends Exception {
++ }
++
++ static final A obj = new A();
++ static I static_field() { return obj; }
++
++ // When OSR compiled, this method has an irreducible loop
++ static void test(int v, MyException e) {
++ int i = 0;
++ for (;;) {
++ if (i == 1000) {
++ break;
++ }
++ try {
++ if ((i%2) == 0) {
++ int j = 0;
++ for (;;) {
++ j++;
++ if (i+j != v) {
++ if (j == 1000) {
++ break;
++ }
++ } else {
++ A a = (A)static_field();
++ // replaced node recorded here
++ throw e;
++ }
++ }
++ }
++ } catch(MyException ex) {
++ }
++ i++;
++ // replaced node applied on return of the method
++ // replaced node used here
++ dummy = static_field();
++ }
++ }
++
++
++ static public void main(String[] args) {
++ for (int i = 0; i < 1000; i++) {
++ test(1100, new MyException());
++ }
++ }
++}
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index bc019a1..77a40f0 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -131,6 +131,7 @@ else
patch -Np1 < $PR2126
fi;
fi
+find . -name '*.orig' -exec rm -vf '{}' ';'
popd
echo "Compressing remaining forest"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 28a66f1..8c3ec77 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -34,7 +34,7 @@
%global include_debug_build 0
%endif
-# on intels, we build shenandoah htspot
+# On x86_64 and AArch64, we use the Shenandoah HotSpot
%ifarch x86_64 %{aarch64}
%global use_shenandoah_hotspot 1
%else
@@ -108,50 +108,64 @@
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
+# In some cases, the arch used by the JDK does
+# not match _arch.
+# Also, in some cases, the machine name used by SystemTap
+# does not match that given by _build_cpu
%ifarch x86_64
%global archinstall amd64
+%global stapinstall x86_64
%endif
%ifarch ppc
%global archinstall ppc
+%global stapinstall powerpc
%endif
%ifarch %{ppc64be}
%global archinstall ppc64
+%global stapinstall powerpc
%endif
%ifarch %{ppc64le}
%global archinstall ppc64le
+%global stapinstall powerpc
%endif
%ifarch %{ix86}
%global archinstall i386
+%global stapinstall i386
%endif
%ifarch ia64
%global archinstall ia64
+%global stapinstall ia64
%endif
%ifarch s390
%global archinstall s390
+%global stapinstall s390
%endif
%ifarch s390x
%global archinstall s390x
+%global stapinstall s390
%endif
%ifarch %{arm}
%global archinstall arm
+%global stapinstall arm
%endif
%ifarch %{aarch64}
%global archinstall aarch64
+%global stapinstall arm64
%endif
# 32 bit sparc, optimized for v9
%ifarch sparcv9
%global archinstall sparc
+%global stapinstall %{_build_cpu}
%endif
# 64 bit sparc
%ifarch sparc64
%global archinstall sparcv9
+%global stapinstall %{_build_cpu}
%endif
%ifnarch %{jit_arches}
%global archinstall %{_arch}
%endif
-
-
%ifarch %{jit_arches}
%global with_systemtap 1
%else
@@ -214,7 +228,7 @@
# for the primary arch for now). Systemtap uses the machine name
# aka build_cpu as architecture specific directory name.
%global tapsetroot /usr/share/systemtap
-%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
+%global tapsetdir %{tapsetroot}/tapset/%{stapinstall}
%endif
# not-duplicated scriplets for normal/debug packages
@@ -799,7 +813,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-jdk8u121-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
+# VERSION=%%{revision} FILE_NAME_ROOT=%%{project}-%%{repo}-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
@@ -811,14 +825,14 @@ Source2: README.src
# They are based on code contained in the IcedTea7 project.
# Systemtap tapsets. Zipped up to keep it small.
-Source8: systemtap-tapset-3.1.0.tar.xz
+Source8: systemtap-tapset-3.4.0pre01.tar.xz
# Desktop files. Adapated from IcedTea.
Source9: jconsole.desktop.in
Source10: policytool.desktop.in
# nss configuration file
-Source11: nss.cfg
+Source11: nss.cfg.in
# Removed libraries that we link instead
Source12: %{name}-remove-intree-libraries.sh
@@ -910,20 +924,32 @@ Patch507: pr2842-02.patch
Patch400: 8154313.patch
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
Patch526: 6260348-pr3066.patch
-# S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
-Patch532: 8162384-pr3122-rh1358661.patch
-# 8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible
loops"
-Patch537: 8174164-pr3334-rh1417266.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
Patch538: 8061305-pr3335-rh1423421.patch
# Patches upstream and appearing in 8u131
-# 8170888, PR3314, RH1390708: [linux] Experimental support for cgroup memory limits in
container (ie Docker) environments
-Patch536: 8170888-pr3314-rh1390708.patch
+# 6515172, PR3346: Runtime.availableProcessors() ignores Linux taskset command
+Patch542: 6515172-pr3346.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
+# 8144566, PR3352: Custom HostnameVerifier disables SNI extension
+Patch544: 8144566-pr3352.patch
+# 8155049, PR3352: New tests from 8144566 fail with "No expected Server Name
Indication"
+Patch545: 8155049-pr3352.patch
+# 8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
+Patch532: 8162384-pr3122-rh1358661.patch
+# 8165231, RH1437545: java.nio.Bits.unaligned() doesn't return true on ppc
+Patch546: 8165231-rh1437545.patch
+# 8173941, PR3326: SA does not work if executable is DSO
+Patch547: 8173941-pr3326.patch
+# 8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible
loops"
+Patch537: 8174164-pr3334-rh1417266.patch
+# 8174729, PR3336, RH1420518: Race Condition in java.lang.reflect.WeakCache
+Patch548: 8174729-pr3336-rh1420518.patch
+# 8175097, PR3334, RH1417266: [TESTBUG] 8174164 fix missed the test
+Patch549: 8175097-pr3334-rh1417266.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -1207,11 +1233,12 @@ fi
# For old patches
ln -s openjdk jdk8
%if %{use_shenandoah_hotspot}
-#on intels, repalce hotpost by shenandoah-able hotspot
+# On Shenandoah-supported architectures, replace HotSpot with
+# the Shenandoah version
pushd openjdk
tar -xf %{SOURCE999}
rm -rf hotspot
-cp -r openjdk/hotspot .
+mv openjdk/hotspot .
rm -rf openjdk
popd
%endif
@@ -1230,9 +1257,12 @@ cp %{SOURCE101} openjdk/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
+# System library fixes
%patch201
%patch202
%patch203
+
+# Debugging fixes
%patch204
%patch205
%patch206
@@ -1250,12 +1280,13 @@ sh %{SOURCE12}
# ppc64le fixes
-# Zero fixes.
-
%patch603
%patch601
%patch602
+# Zero fixes.
+
+# Upstreamable fixes
%patch502
%patch504
%patch506
@@ -1272,15 +1303,23 @@ sh %{SOURCE12}
%patch518
%patch400
%patch523
-%patch525
%patch526
%patch528
%patch532
-%patch533
%patch535
-%patch536
%patch537
%patch538
+%patch542
+%patch544
+%patch545
+%patch546
+%patch547
+%patch548
+%patch549
+
+# RPM-only fixes
+%patch525
+%patch533
%patch539
# RHEL-only patches
@@ -1327,6 +1366,9 @@ for file in %{SOURCE9} %{SOURCE10} ; do
done
done
+# Setup nss.cfg
+sed -e s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g %{SOURCE11} > nss.cfg
+
%build
# How many cpu's do we have?
@@ -1430,7 +1472,7 @@ popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
# Install nss.cfg right away as we will be using the JRE above
-install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
+install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
# Use system-wide tzdata
rm $JAVA_HOME/jre/lib/tzdb.dat
diff --git a/nss.cfg b/nss.cfg.in
similarity index 100%
rename from nss.cfg
rename to nss.cfg.in
diff --git a/pr1834-rh1022017.patch b/pr1834-rh1022017.patch
index 3585029..4983884 100644
--- a/pr1834-rh1022017.patch
+++ b/pr1834-rh1022017.patch
@@ -1,8 +1,8 @@
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 @@
- }
+@@ -168,20 +168,10 @@
+ "contains no supported elliptic curves");
}
} else { // default curves
- int[] ids;
commit 868631b2540eacb5524c64a81cac27335560ecb8
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Apr 21 09:38:51 2017 +0200
Uploaded new sources of systemtap
diff --git a/.gitignore b/.gitignore
index 04c6a7a..03ab3f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,3 +73,4 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
+/systemtap-tapset-3.4.0pre01.tar.xz
diff --git a/sources b/sources
index 73e6ff2..c232719 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (systemtap-tapset-3.1.0.tar.xz) =
e3558dc9d56dff5125a869807135e84ca73a2640d8d8fff2f45dc0dd7d153b81b48c08480e09a75667eba62362f74091465fac622aa0d9b104bfb18b4eba80e1
+SHA512 (systemtap-tapset-3.4.0pre01.tar.xz) =
4446fa20f88bbce53b583484bf06cb2b476c9372beb898dc2b7739eaa5c98b9979fbd72e12474fb344833d831a19366b82216ee03b452411745e6cd3527faa4e
SHA512 (aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz) =
b7285cbadc787594664944ece1fab74aafd4f3437d75e494b900cdd5ce1d102c0cfa9d734b40c7f122ba8539f098e6dde19894ab15605f4a475138bf69143edf
SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz)
=
9450dca9445b5ed90de90905a1210388fc825caada0d4929ac9f2c81b3af066dfcbcb80a667cb4c1c644d3ac65678d6bc162f1f11c1cd44f9dbf682ca3ff95cd
commit 3f0b4091f5dd2a32df54ff65ec212ad1f4fa0d2c
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Apr 20 20:54:05 2017 +0200
Uploaded new sources from latest tags
diff --git a/.gitignore b/.gitignore
index d8c2025..04c6a7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,3 +71,5 @@
/aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1e2ac4b..28a66f1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -170,7 +170,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-jdk8u121-b14
+%global revision aarch64-jdk8u131-b12
# 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
@@ -779,7 +779,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -836,7 +836,7 @@ Source100: config.guess
Source101: config.sub
# Shenandoah HotSpot
-Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
+Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
# RPM/distribution specific patches
@@ -1916,7 +1916,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Wed Mar 19 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-12.b14
+* Thu Apr 20 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
+- updated to aarch64-jdk8u131-b12 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz as new sources
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
as new sources for hotspot
+
+* Sun Mar 19 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-12.b14
- minor tweaks, egrep replaced by grep -E, added provides for some subpackages
* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-11.b14
diff --git a/sources b/sources
index 83169bd..73e6ff2 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.1.0.tar.xz) =
e3558dc9d56dff5125a869807135e84ca73a2640d8d8fff2f45dc0dd7d153b81b48c08480e09a75667eba62362f74091465fac622aa0d9b104bfb18b4eba80e1
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz) =
9c97b5a79c5af698e3d12d69c89ae761b2ef5db6f6ea4ac94504f4ab492eb0b233b874e0a829fb7dbbe44064b49b269a6b4fffed826ada9466df77d196d16994
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz)
=
0e544ffee3d9968c8e77e1a48a136e5de7defa5fe6be0ab60082f9674a050690a1a70b9c2b0c05b3e70787c4e06f30dce45935c000245ba20ec5f97d9fb1563c
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz) =
b7285cbadc787594664944ece1fab74aafd4f3437d75e494b900cdd5ce1d102c0cfa9d734b40c7f122ba8539f098e6dde19894ab15605f4a475138bf69143edf
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz)
=
9450dca9445b5ed90de90905a1210388fc825caada0d4929ac9f2c81b3af066dfcbcb80a667cb4c1c644d3ac65678d6bc162f1f11c1cd44f9dbf682ca3ff95cd
diff --git a/update_package.sh b/update_package.sh
index 71803c7..b66e4d3 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -31,7 +31,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u121-b14"
+ VERSION="aarch64-jdk8u131-b12"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09"
+ VERSION="aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit b038c2d5d6bbccfe655e8be62471373a8f273237
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 19 09:47:41 2017 +0200
minor tweaks, egrep replaced by grep -E, added provides for some subpackages
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0b19516..1e2ac4b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -729,6 +729,8 @@ Obsoletes: java-1.5.0-gcj-devel%1
Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-demo = %{epoch}:%{version}-%{release}
+
Obsoletes: java-1.7.0-openjdk-demo%1
}
@@ -746,6 +748,7 @@ Requires(postun): chkconfig >= 1.7
# Standard JPackage javadoc provides.
Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-javadoc%1
@@ -754,6 +757,10 @@ Obsoletes: java-1.7.0-openjdk-javadoc%1
%global java_src_rpo() %{expand:
Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+# Standard JPackage javadoc provides.
+Provides: java-src%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-src%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-src = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-src%1
}
@@ -762,6 +769,8 @@ Requires: java-atk-wrapper%{?_isa}
Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-accessiblity = %{epoch}:%{version}-%{release}
+
Obsoletes: java-1.7.0-openjdk-accessibility%1
}
@@ -770,7 +779,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -1456,7 +1465,7 @@ do
# Test for .debug_* sections in the shared object. This is the main test.
# Stripped objects will not contain these.
eu-readelf -S "$lib" | grep "] .debug_"
- test $(eu-readelf -S "$lib" | egrep "\]\ .debug_(info|abbrev)" |
wc --lines) == 2
+ test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)"
| wc --lines) == 2
# Test FILE symbols. These will most likely be removed by anyting that
# manipulates symbol tables because it's generally useless. So a nice test
@@ -1467,14 +1476,14 @@ do
do
# We expect to see .cpp files, except for architectures like aarch64 and
# s390 where we expect .o and .oS files
- echo "$line" | egrep "ABS
((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$"
+ echo "$line" | grep -E "ABS
((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$"
done
IFS="$old_IFS"
# If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity
checking.
if [ "`basename $lib`" = "libjvm.so" ]; then
eu-readelf -s "$lib" | \
- egrep "00000000 0 FILE LOCAL DEFAULT ABS
javaCalls.(cpp|o)$"
+ grep -E "00000000 0 FILE LOCAL DEFAULT ABS
javaCalls.(cpp|o)$"
fi
# Test that there are no .gnu_debuglink sections pointing to another
@@ -1515,15 +1524,16 @@ $JAVA_HOME/bin/javap -l java.lang.Object | grep
LocalVariableTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
+
+#build cycles check
done
%install
-rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-pushd %{buildoutputdir $suffix}/images/%{j2sdkimage}
+pushd %{buildoutputdir $suffix}/images/%{j2sdkimage}
#install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/
@@ -1906,6 +1916,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Mar 19 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-12.b14
+- minor tweaks, egrep replaced by grep -E, added provides for some subpackages
+
* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-11.b14
- sync from rhel, reordered patches, enabled shenanoah on aarch64
- Patch OpenJDK to check the system cacerts database directly
commit f3681abdeda971840ae58b19e43dc44fd45270ad
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Mar 14 10:02:48 2017 +0100
Bumped rlease
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index afb6f2b..0b19516 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -770,7 +770,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -1906,7 +1906,7 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
+* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-11.b14
- sync from rhel, reordered patches, enabled shenanoah on aarch64
- Patch OpenJDK to check the system cacerts database directly
- Remove unneeded symlink to the system cacerts database
commit 4821c37ebebfb8c8d5837258b968356dfe689d25
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Mar 13 16:31:11 2017 +0100
Sync with f25
diff --git a/.gitignore b/.gitignore
index dde235b..d8c2025 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,3 +70,4 @@
/openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
diff --git a/1423421.patch b/8061305-pr3335-rh1423421.patch
similarity index 100%
rename from 1423421.patch
rename to 8061305-pr3335-rh1423421.patch
diff --git a/1417266.patch b/8174164-pr3334-rh1417266.patch
similarity index 100%
rename from 1417266.patch
rename to 8174164-pr3334-rh1417266.patch
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index e47b8ca..bc019a1 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -121,7 +121,7 @@ mv -v ecc_impl.h jdk/src/share/native/sun/security/ec/impl
echo "Syncing EC list with NSS"
if [ "x$PR2126" = "x" ] ; then
-# get pr2126.patch (from
http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most
correct tag
+# get pr2126.patch (from
http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most correct
tag
# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr2126.patch
patch -Np1 < pr2126.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index eb09832..afb6f2b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -35,7 +35,7 @@
%endif
# on intels, we build shenandoah htspot
-%ifarch x86_64
+%ifarch x86_64 %{aarch64}
%global use_shenandoah_hotspot 1
%else
%global use_shenandoah_hotspot 0
@@ -514,7 +514,6 @@ exit 0
%{_jvmprivdir}/*
%{jvmjardir %%1}
%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
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.policy
@@ -791,7 +790,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-jdk8u101-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
+# VERSION=aarch64-jdk8u121-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
@@ -826,8 +825,9 @@ Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
-# shenandoah hotpost
-Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
+
+# Shenandoah HotSpot
+Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz
# RPM/distribution specific patches
@@ -866,6 +866,11 @@ Patch509: rh1176206-root.patch
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
Patch528: pr3083-rh1346460.patch
+# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
+Patch204: hotspot-remove-debuglink.patch
+Patch205: dont-add-unnecessary-debug-links.patch
+# Enable debug information for assembly code files
+Patch206: hotspot-assembler-debuginfo.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -898,6 +903,10 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
Patch532: 8162384-pr3122-rh1358661.patch
+# 8174164, PR3334, RH1417266: SafePointNode::_replaced_nodes breaks with irreducible
loops"
+Patch537: 8174164-pr3334-rh1417266.patch
+# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
+Patch538: 8061305-pr3335-rh1423421.patch
# Patches upstream and appearing in 8u131
# 8170888, PR3314, RH1390708: [linux] Experimental support for cgroup memory limits in
container (ie Docker) environments
@@ -906,16 +915,11 @@ Patch536: 8170888-pr3314-rh1390708.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
-Patch537: 1417266.patch
-Patch538: 1423421.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
-# Pathces 204-206 are serving for better check of debug symbols in native liraries
-Patch204: hotspot-remove-debuglink.patch
-Patch205: dont-add-unnecessary-debug-links.patch
-Patch206: hotspot-assembler-debuginfo.patch
+# custom securities
Patch207: PR3183.patch
# Local fixes
@@ -925,6 +929,8 @@ Patch525: pr1834-rh1022017.patch
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)
+Patch539: pr2888.patch
# Non-OpenJDK fixes
@@ -955,7 +961,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
@@ -966,8 +978,6 @@ BuildRequires: gcc >= 4.8.3-8
# Build requirements for SunEC system NSS support
BuildRequires: nss-softokn-freebl-devel >= 3.16.1
-# cacerts build requirement.
-BuildRequires: openssl
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
@@ -1262,6 +1272,7 @@ sh %{SOURCE12}
%patch536
%patch537
%patch538
+%patch539
# RHEL-only patches
%if 0%{?rhel}
@@ -1542,13 +1553,8 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
popd
%endif
- # Install cacerts symlink.
+ # Remove empty cacerts database.
rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security
- RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
- %{_jvmdir}/%{jredir $suffix}/lib/security)
- ln -sf $RELATIVE/cacerts .
- popd
# Install extension symlinks.
install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix}
@@ -1901,7 +1907,14 @@ require "copy_jdk_configs.lua"
%changelog
* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
-- rhbz#1423751 - removed -fno-split-loops worakround as building agaiiinst newer GCC7
+- sync from rhel, reordered patches, enabled shenanoah on aarch64
+- Patch OpenJDK to check the system cacerts database directly
+- Remove unneeded symlink to the system cacerts database
+- Drop outdated openssl dependency from when the RPM built the cacerts database
+- udpated to latest stable shenandoah hotspot
+
+* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
+- rhbz#1423751 - removed -fno-split-loops worakround as building against newer GCC7
* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-9.b14
- updated to latest stable shenandoah hotspot
diff --git a/pr2888.patch b/pr2888.patch
new file mode 100644
index 0000000..fc8f981
--- /dev/null
+++ b/pr2888.patch
@@ -0,0 +1,60 @@
+# HG changeset patch
+# User andrew
+# Date 1459487045 -3600
+# Fri Apr 01 06:04:05 2016 +0100
+# Node ID 3334efeacd8327a14b7d2f392f4546e3c29c594b
+# Parent 6b81fd2227d14226f2121f2d51b464536925686e
+PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+
+diff --git a/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
b/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+--- openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+@@ -174,15 +174,20 @@
+ storeFile = new File(storeFileName);
+ fis = getFileInputStream(storeFile);
+ } else {
+- String javaHome = props.get("javaHome");
+- storeFile = new File(javaHome + sep + "lib" + sep
+- + "security" + sep +
+- "jssecacerts");
++ /* Check system cacerts DB first; /etc/pki/java/cacerts */
++ storeFile = new File(sep + "etc" + sep + "pki" +
sep
++ + "java" + sep +
"cacerts");
+ if ((fis = getFileInputStream(storeFile)) == null) {
++ String javaHome = props.get("javaHome");
+ storeFile = new File(javaHome + sep + "lib" + sep
+- + "security" + sep +
+- "cacerts");
+- fis = getFileInputStream(storeFile);
++ + "security" + sep +
++ "jssecacerts");
++ if ((fis = getFileInputStream(storeFile)) == null) {
++ storeFile = new File(javaHome + sep + "lib" + sep
++ + "security" + sep +
++ "cacerts");
++ fis = getFileInputStream(storeFile);
++ }
+ }
+ }
+
+diff --git a/src/share/classes/sun/security/tools/KeyStoreUtil.java
b/src/share/classes/sun/security/tools/KeyStoreUtil.java
+--- openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+@@ -87,9 +87,14 @@
+ throws Exception
+ {
+ String sep = File.separator;
+- File file = new File(System.getProperty("java.home") + sep
+- + "lib" + sep + "security" + sep
+- + "cacerts");
++ /* Check system cacerts DB first; /etc/pki/java/cacerts */
++ File file = new File(sep + "etc" + sep + "pki" + sep
++ + "java" + sep + "cacerts");
++ if (!file.exists()) {
++ file = new File(System.getProperty("java.home") + sep
++ + "lib" + sep + "security" + sep
++ + "cacerts");
++ }
+ if (!file.exists()) {
+ return null;
+ }
diff --git a/sources b/sources
index a10e03a..83169bd 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.1.0.tar.xz) =
e3558dc9d56dff5125a869807135e84ca73a2640d8d8fff2f45dc0dd7d153b81b48c08480e09a75667eba62362f74091465fac622aa0d9b104bfb18b4eba80e1
-SHA512 (aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz) =
2fbda6c3b0b4269d75e0c79db55b851f616d7ba07614cfa60e85f17d3503cc8765083f5ff6e2657e9c3b08055169130dc6419bcad312b98d18829e147645d516
-SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz)
=
850e883281b4695bdb8728fba5bb96753cb740efa3bac760ca3b9a036c0268541aa3e8c1366f6add01735de8fbff1d3809452cf0731a8f6b99c07c5a9f566487
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz) =
9c97b5a79c5af698e3d12d69c89ae761b2ef5db6f6ea4ac94504f4ab492eb0b233b874e0a829fb7dbbe44064b49b269a6b4fffed826ada9466df77d196d16994
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09.tar.xz)
=
0e544ffee3d9968c8e77e1a48a136e5de7defa5fe6be0ab60082f9674a050690a1a70b9c2b0c05b3e70787c4e06f30dce45935c000245ba20ec5f97d9fb1563c
diff --git a/update_package.sh b/update_package.sh
index e2d9899..71803c7 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -109,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20"
+ VERSION="aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-03-09"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 070029d9fde1bd0b13a40f31bf64e34d648c3b72
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Mar 13 11:15:52 2017 +0100
rhbz#1423751 - removed -fno-split-loops worakround as building agaiiinst newer GCC7
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 425caea..eb09832 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -771,7 +771,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -1328,8 +1328,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
# Explicitly set the C++ standard as the default has changed on GCC >= 6
-EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse -fno-split-loops"
-EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse -fno-split-loops"
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
@@ -1900,6 +1900,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
+- rhbz#1423751 - removed -fno-split-loops worakround as building agaiiinst newer GCC7
+
* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-9.b14
- updated to latest stable shenandoah hotspot
- updated to properly tagged upstream forest (no update, just rename)
commit 31747f365336cca3b64e2b4f679eb2ed9431e208
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Mar 3 18:07:33 2017 +0100
Fixed link to crypto patch
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 21846a1..e47b8ca 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -123,7 +123,7 @@ echo "Syncing EC list with NSS"
if [ "x$PR2126" = "x" ] ; then
# get pr2126.patch (from
http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most
correct tag
# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
- wget
http://icedtea.classpath.org/hg/icedtea/raw-file/tip/patches/pr2126.patch
+ wget
http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr2126.patch
patch -Np1 < pr2126.patch
rm pr2126.patch
else
commit 2ef1e202506da95bab9f02a10a6557b7f1f988b1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 28 14:10:55 2017 +0100
updated to latest stable shenandoah hotspot
- updated to properly tagged upstream forest (no update, just rename)
- fixed update package to verify PR2126 patch and work with sha512
diff --git a/.gitignore b/.gitignore
index 4c2780d..dde235b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,3 +68,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
/openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz
/openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 3c3ea1c..21846a1 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -19,6 +19,12 @@
# level folder, name is created, based on parameter
#
+if [ ! "x$PR2126" = "x" ] ; then
+ if [ ! -f "$PR2126" ] ; then
+ echo "You have specified PR2126 as $PR2126 but it does not exists.
exiting"
+ exit 1
+ fi
+fi
set -e
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b358b70..425caea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -168,8 +168,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
-%global project openjdk8-forests
-%global repo latest-aarch64
+%global project aarch64-port
+%global repo jdk8u
%global revision aarch64-jdk8u121-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
@@ -771,7 +771,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -827,7 +827,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
+Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz
# RPM/distribution specific patches
@@ -1900,6 +1900,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-9.b14
+- updated to latest stable shenandoah hotspot
+- updated to properly tagged upstream forest (no update, just rename)
+- fixed update package to verify PR2126 patch and work with sha512
+
+* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-8.b14
+- rebuild because of NSS
+
* Tue Feb 21 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-7.b14
- fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793)
- by calling new c-j-c hooks
diff --git a/sources b/sources
index a026ed4..a10e03a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (systemtap-tapset-3.1.0.tar.xz) =
e3558dc9d56dff5125a869807135e84ca73a2640d8d8fff2f45dc0dd7d153b81b48c08480e09a75667eba62362f74091465fac622aa0d9b104bfb18b4eba80e1
-SHA512 (openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz) =
8a5418c0560736d3450bbb4f3a0b19d028713f39634630d4e3689c664f25e2dbe9473c3657d5e02c5c614a37dce3cfb9db93a449f5f7f0294dec748514b67dc8
-SHA512 (openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz) =
1b7e9a598fb43c96599393fbe712056e8031ddd985d9abe5e4ffdaa309a9b43659da29f9d9294cd0dab8cbb1d19fc8149c49fee6e81fced120c18d59f015ce81
+SHA512 (aarch64-port-jdk8u-aarch64-jdk8u121-b14.tar.xz) =
2fbda6c3b0b4269d75e0c79db55b851f616d7ba07614cfa60e85f17d3503cc8765083f5ff6e2657e9c3b08055169130dc6419bcad312b98d18829e147645d516
+SHA512
(aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20.tar.xz)
=
850e883281b4695bdb8728fba5bb96753cb740efa3bac760ca3b9a036c0268541aa3e8c1366f6add01735de8fbff1d3809452cf0731a8f6b99c07c5a9f566487
diff --git a/update_package.sh b/update_package.sh
index e517d15..e2d9899 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -15,6 +15,13 @@
#
# the used values are then substituted to spec and sources
+if [ ! "x$PR2126" = "x" ] ; then
+ if [ ! -f "$PR2126" ] ; then
+ echo "You have specified PR2126 as $PR2126 but it does not exists.
exiting"
+ exit 1
+ fi
+fi
+
set -e
if [ "x$PROJECT_NAME" = "x" ] ; then
@@ -102,7 +109,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u121-b14"
+ VERSION="aarch64-shenandoah-jdk8u121-b14-shenandoah-merge-2017-02-20"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
@@ -124,7 +131,7 @@ git --no-pager diff $SPEC
# find the most similar sources name and replace it by newly generated one.
echo "Old sources"
cat sources
-a_sources=`cat sources | sed "s/.*\s\+//g"`
+a_sources=`cat sources | sed "s/.*(//g" | sed "s/).*//g" | sed
"s/.*\s\+//g"`
winner=""
winnerDistance=999999
for x in $a_sources ; do
@@ -151,7 +158,7 @@ sed -i "s;.*$winner;$sum;" sources
echo "New sources"
cat sources
-a_sources=`cat sources | sed "s/.*\s\+//g"`
+a_sources=`cat sources | sed "s/.*(//g" | sed "s/).*//g" | sed
"s/.*\s\+//g"`
echo " you can get inspired by following %changelog template:"
user_name=`whoami`
user_record=$(getent passwd $user_name)
commit a8b796dc6ea516e3c314a731b0c40fbb7d0fdd0d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Feb 22 15:52:12 2017 +0100
Enforced rebuilt against NSS 3.29.1
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4cfeb26..b358b70 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -771,7 +771,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
commit f8e81ce71f7e42a95789d94e821b8e2e4248cfd7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 21 15:40:08 2017 +0100
Bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 85f9d68..4cfeb26 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -771,7 +771,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
commit e9b528bb19c720d49276cd7877c14f7a8226fafe
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 21 15:39:32 2017 +0100
removed self-tail-bitting check check_sum_presented_in_spec
downgraded release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ebc4317..85f9d68 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -220,12 +220,6 @@
# not-duplicated scriplets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
-%global check_sum_presented_in_spec() %{expand:
-md5sum %1
-currentMd5sum=`md5sum %1 | sed "s;\\s.*;;"`
-specfile=%{_specdir}/%{name}.spec
-grep -e md5sum -A 20 $specfile | grep $currentMd5sum
-}
%global post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -777,7 +771,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1313,9 +1307,6 @@ for file in %{SOURCE9} %{SOURCE10} ; do
done
done
-# this is check which controls, that latest java.security is included in post(_headless)
-%{check_sum_presented_in_spec openjdk/jdk/src/share/lib/security/java.security-linux}
-
%build
# How many cpu's do we have?
@@ -1435,9 +1426,6 @@ for suffix in %{rev_build_loop} ; do
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
-# check java.security in this build is also in this specfile
-%{check_sum_presented_in_spec $JAVA_HOME/jre/lib/security/java.security}
-
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
@@ -1915,6 +1903,7 @@ require "copy_jdk_configs.lua"
* Tue Feb 21 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-7.b14
- fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793)
- by calling new c-j-c hooks
+- removed self-tail-bitting check check_sum_presented_in_spec
- release 6+7 to verify update path
* Mon Feb 20 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-5.b14
commit 998cd5f2999764a1c79ff6254698aafce7d934a3
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 21 15:31:10 2017 +0100
Byumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index adf94c8..ebc4317 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -777,7 +777,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
commit 6ec78356c3fad2609c005f50d8d73d8d46feb58a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 21 15:29:42 2017 +0100
fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793) by calling new c-j-c hooks
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e549d31..adf94c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -235,39 +235,6 @@ exit 0
%global post_headless() %{expand:
-# FIXME: identical binaries are copied, not linked. This needs to be
-# fixed upstream.
-# The pretrans lua scriptlet prevents an unmodified java.security
-# from being replaced via an update. It gets created as
-# java.security.rpmnew instead. This invalidates the patch of
-# JDK-8061210 of the January 2015 CPU, JDK-8043201 of the
-# July 2015 CPU and JDK-8141287 of the January 2016 CPU. We
-# fix this via a post scriptlet which runs on updates.
-if [ "$1" -gt 1 ]; then
- javasecurity="%{_jvmdir}/%{uniquesuffix}/jre/lib/security/java.security"
- sum=$(md5sum "${javasecurity}" | cut -d' ' -f1)
- # This is the md5sum of an unmodified java.security file
- if [ "${sum}" = '1690ac33955594f71dc952c9e83fd396' -o \\
- "${sum}" = 'b138695d0c0ea947e64a21a627d973ba' -o \\
- "${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
- "${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
- "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
- "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\
- "${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\
- "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\
- "${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\
- "${sum}" = '0dd41ddb4d1fb25975f7faab2c23e151' -o \\
- "${sum}" = '59dafb237e5def3ccf8a3ad589fb2777' -o \\
- "${sum}" = '84d16306cd4c2ae76ba81a3775e92cee' -o \\
- "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' -o \\
- "${sum}" = 'b727442b4ac0e3b8a26ec9741ad463e5' -o \\
- "${sum}" = 'a59c6d96aeae1303fb8ba85e97588e9d' ]; then
- if [ -f "${javasecurity}.rpmnew" ]; then
- mv -f "${javasecurity}.rpmnew" "${javasecurity}"
- fi
- fi
-fi
-
%ifarch %{jit_arches}
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
%ifnarch %{power64}
@@ -332,6 +299,15 @@ update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+# see pretrans where this file is declared
+# also see that pretrans is only for nondebug
+if [ ! "%1" == %{debug_suffix} ]; then
+ if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
+ sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir %%1}
+ fi
+fi
+
exit 0
}
@@ -692,7 +668,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 >= 1.1-3
+Requires: copy-jdk-configs >= 2.2
OrderWithRequires: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
@@ -801,7 +777,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1796,7 +1772,7 @@ else
end
end
-- run contetn of included file with fake args
-arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}"}
+arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
require "copy_jdk_configs.lua"
%post
@@ -1936,6 +1912,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 21 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-7.b14
+- fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793)
+- by calling new c-j-c hooks
+- release 6+7 to verify update path
+
* Mon Feb 20 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-5.b14
- patch 536 reordered to 537
- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup
memory limits in container (ie Docker) environments"
commit 4a0c3db69a8f31e65e148471abae11f9244c6dc8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Feb 20 14:53:09 2017 +0100
rhbz#1423751 - added -fno-split-loops worakround sigsew when building with GCC7
(probably bug in jdk's JIT )
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 24577b4..e549d31 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1361,8 +1361,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
# Explicitly set the C++ standard as the default has changed on GCC >= 6
-EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
-EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse -fno-split-loops"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse -fno-split-loops"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
@@ -1940,6 +1940,7 @@ require "copy_jdk_configs.lua"
- patch 536 reordered to 537
- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup
memory limits in container (ie Docker) environments"
- added patch 538 - 1423421: Javadoc crashes when method name ends with
"Property"
+- rhbz#1423751 - added -fno-split-loops worakround sigsew when building with GCC7
(probably bug in jdk's JIT )
* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
- added Patch535 and 526
commit c4f741ce3eac09ceb8fdc21714a66c5280e12bab
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Feb 20 11:21:37 2017 +0100
patch 536 reordered to 537, added patch 536, 8170888-pr3314-rh1390708.patch and 538,
1423421.patch
diff --git a/1423421.patch b/1423421.patch
new file mode 100644
index 0000000..384c52a
--- /dev/null
+++ b/1423421.patch
@@ -0,0 +1,33 @@
+# HG changeset patch
+# User ksrini
+# Date 1414764176 25200
+# Fri Oct 31 07:02:56 2014 -0700
+# Node ID 9fd9a50e7994a9659c5ef21296d0baee4c2eecff
+# Parent fd59a2d4313440077fce3fbf39174755a15d285a
+8061305: Javadoc crashes when method name ends with "Property"
+Reviewed-by: jjg
+
+diff --git
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
+---
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
++++
jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
+@@ -656,6 +656,9 @@
+ // properties aren't named setA* or getA*
+ private final Pattern pattern =
Pattern.compile("[sg]et\\p{Upper}.*");
+ private boolean isPropertyMethod(MethodDoc method) {
++ if (!configuration.javafx) {
++ return false;
++ }
+ if (!method.name().endsWith("Property")) {
+ return false;
+ }
+@@ -667,7 +670,9 @@
+ if (pattern.matcher(method.name()).matches()) {
+ return false;
+ }
+-
++ if (method.typeParameters().length > 0) {
++ return false;
++ }
+ return 0 == method.parameters().length
+ &&
!"void".equals(method.returnType().simpleTypeName());
+ }
diff --git a/8170888-pr3314-rh1390708.patch b/8170888-pr3314-rh1390708.patch
new file mode 100644
index 0000000..b72a811
--- /dev/null
+++ b/8170888-pr3314-rh1390708.patch
@@ -0,0 +1,83 @@
+# HG changeset patch
+# User dholmes
+# Date 1483660520 18000
+# Thu Jan 05 18:55:20 2017 -0500
+# Node ID 652fe741b8f2bfdacba66d772cc89fe7ec6dea66
+# Parent 9e43b1c17a3ad5b26d64499c72db61a1dc1649f0
+8170888, PR3314: [linux] Experimental support for cgroup memory limits in container (ie
Docker) environments
+Summary: Set apparent physical memory to cgroup memory limit when
UseCGroupMemoryLimitForHeap is true
+Reviewed-by: acorn, gtriantafill
+Contributed-by: Christine Flood <chf(a)redhat.com>
+
+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
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 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
+@@ -1768,10 +1768,39 @@
+ FLAG_SET_CMDLINE(uintx, MaxRAMFraction, DefaultMaxRAMFraction);
+ }
+
+- const julong phys_mem =
++ julong phys_mem =
+ FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM)
+ : (julong)MaxRAM;
+
++ // Experimental support for CGroup memory limits
++ if (UseCGroupMemoryLimitForHeap) {
++ // This is a rough indicator that a CGroup limit may be in force
++ // for this process
++ const char* lim_file = "/sys/fs/cgroup/memory/memory.limit_in_bytes";
++ FILE *fp = fopen(lim_file, "r");
++ if (fp != NULL) {
++ julong cgroup_max = 0;
++ int ret = fscanf(fp, JULONG_FORMAT, &cgroup_max);
++ if (ret == 1 && cgroup_max > 0) {
++ // If unlimited, cgroup_max will be a very large, but unspecified
++ // value, so use initial phys_mem as a limit
++ if (PrintGCDetails && Verbose) {
++ // Cannot use gclog_or_tty yet.
++ tty->print_cr("Setting phys_mem to the min of cgroup limit ("
++ JULONG_FORMAT "MB) and initial phys_mem ("
++ JULONG_FORMAT "MB)", cgroup_max/M, phys_mem/M);
++ }
++ phys_mem = MIN2(cgroup_max, phys_mem);
++ } else {
++ warning("Unable to read/parse cgroup memory limit from %s: %s",
++ lim_file, errno != 0 ? strerror(errno) : "unknown error");
++ }
++ fclose(fp);
++ } else {
++ warning("Unable to open cgroup memory limit file %s (%s)", lim_file,
strerror(errno));
++ }
++ }
++
+ // If the maximum heap size has not been set with -Xmx,
+ // then set it as fraction of the size of physical memory,
+ // respecting the maximum and minimum sizes of the heap.
+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
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 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
+@@ -2080,6 +2080,10 @@
+ "Maximum ergonomically set heap size (in bytes); zero means use " \
+ "MaxRAM / MaxRAMFraction") \
+ \
++ experimental(bool, UseCGroupMemoryLimitForHeap, false, \
++ "Use CGroup memory limit as physical memory limit for heap " \
++ "sizing") \
++ \
+ product(uintx, MaxRAMFraction, 4, \
+ "Maximum fraction (1/n) of real memory used for maximum heap " \
+ "size") \
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5dfff61..24577b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -801,7 +801,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -929,10 +929,15 @@ 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 8u131
+# 8170888, PR3314, RH1390708: [linux] Experimental support for cgroup memory limits in
container (ie Docker) environments
+Patch536: 8170888-pr3314-rh1390708.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
-Patch536: 1417266.patch
+Patch537: 1417266.patch
+Patch538: 1423421.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -1285,6 +1290,8 @@ sh %{SOURCE12}
%patch533
%patch535
%patch536
+%patch537
+%patch538
# RHEL-only patches
%if 0%{?rhel}
@@ -1929,6 +1936,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 20 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-5.b14
+- patch 536 reordered to 537
+- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup
memory limits in container (ie Docker) environments"
+- added patch 538 - 1423421: Javadoc crashes when method name ends with
"Property"
+
* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
- added Patch535 and 526
- tweeked debugsymbols check for sigill
commit 7cadd8667d1304a7990e30629e6db39eb775793f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 17 16:22:16 2017 +0100
Merge
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fec6091..5dfff61 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1933,9 +1933,6 @@ require "copy_jdk_configs.lua"
- added Patch535 and 526
- tweeked debugsymbols check for sigill
-* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.121-4.b14
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
- revertrd patch535, excludeECDHE-1415137.patch and related changes
- issue casued by nss, see rhbz#1415137 c#35
commit 93bda24b9af9352f202b705f4d01c83fe026706f
Merge: 0c62405 622943e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 17 16:21:00 2017 +0100
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk
diff --cc java-1.8.0-openjdk.spec
index 5dfff61,15df91c..fec6091
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@@ -1929,10 -1921,9 +1929,13 @@@ require "copy_jdk_configs.lua
%endif
%changelog
+* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
+- added Patch535 and 526
+- tweeked debugsymbols check for sigill
+
+ * Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.121-4.b14
+ - Rebuilt for
https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
- revertrd patch535, excludeECDHE-1415137.patch and related changes
- issue casued by nss, see rhbz#1415137 c#35
commit 0c624057693fd7f36900f0d33fd92ba25f81d58e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 17 16:18:38 2017 +0100
added Patch535 and 526, tweeked debugsymbols check for sigill
diff --git a/1417266.patch b/1417266.patch
new file mode 100644
index 0000000..82a5b16
--- /dev/null
+++ b/1417266.patch
@@ -0,0 +1,130 @@
+
+# HG changeset patch
+# User roland
+# Date 1487208397 28800
+# Node ID 35db0413819a18edd6718dd42e7536182c42aa8b
+# Parent ac559f3ccca81de373f18ac7c4b2d813d0278920
+8174164: SafePointNode::_replaced_nodes breaks with irreducible loops
+Reviewed-by: kvn
+
+diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/callnode.hpp
+--- openjdk/hotspot/src/share/vm/opto/callnode.hpp Wed Feb 15 11:14:45 2017 +0100
++++ openjdk/hotspot/src/share/vm/opto/callnode.hpp Wed Feb 15 17:26:37 2017 -0800
+@@ -452,8 +452,8 @@
+ void delete_replaced_nodes() {
+ _replaced_nodes.reset();
+ }
+- void apply_replaced_nodes() {
+- _replaced_nodes.apply(this);
++ void apply_replaced_nodes(uint idx) {
++ _replaced_nodes.apply(this, idx);
+ }
+ void merge_replaced_nodes_with(SafePointNode* sfpt) {
+ _replaced_nodes.merge_with(sfpt->_replaced_nodes);
+# I was informed that this hunk is not necessary in jdk8
+#diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/library_call.cpp
+#--- openjdk/hotspot/src/share/vm/opto/library_call.cpp Wed Feb 15 11:14:45 2017 +0100
+#+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp Wed Feb 15 17:26:37 2017 -0800
+#@@ -277,7 +277,8 @@
+# AllocateArrayNode* tightly_coupled_allocation(Node* ptr,
+# RegionNode* slow_region);
+# JVMState* arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int&
saved_reexecute_sp);
+#- void arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node* dest, JVMState*
saved_jvms, int saved_reexecute_sp);
+#+ void arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node* dest, JVMState*
saved_jvms, int saved_reexecute_sp,
+#+ uint new_idx);
+#
+# typedef enum { LS_get_add, LS_get_set, LS_cmp_swap, LS_cmp_swap_weak, LS_cmp_exchange
} LoadStoreKind;
+# MemNode::MemOrd access_kind_to_memord_LS(AccessKind access_kind, bool is_store);
+#@@ -4882,7 +4883,8 @@
+# // deoptimize. This is possible because tightly_coupled_allocation()
+# // guarantees there's no observer of the allocated array at this point
+# // and the control flow is simple enough.
+#-void LibraryCallKit::arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node*
dest, JVMState* saved_jvms, int saved_reexecute_sp) {
+#+void LibraryCallKit::arraycopy_move_allocation_here(AllocateArrayNode* alloc, Node*
dest, JVMState* saved_jvms,
+#+ int saved_reexecute_sp, uint
new_idx) {
+# if (saved_jvms != NULL && !stopped()) {
+# assert(alloc != NULL, "only with a tightly coupled allocation");
+# // restore JVM state to the state at the arraycopy
+#@@ -4891,7 +4893,7 @@
+# assert(saved_jvms->map()->i_o() == map()->i_o(), "IO state
changed?");
+# // If we've improved the types of some nodes (null check) while
+# // emitting the guards, propagate them to the current state
+#- map()->replaced_nodes().apply(saved_jvms->map());
+#+ map()->replaced_nodes().apply(saved_jvms->map(), new_idx);
+# set_jvms(saved_jvms);
+# _reexecute_sp = saved_reexecute_sp;
+#
+#@@ -4949,6 +4951,7 @@
+# Node* dest_offset = argument(3); // type: int
+# Node* length = argument(4); // type: int
+#
+#+ uint new_idx = C->unique();
+#
+# // Check for allocation before we add nodes that would confuse
+# // tightly_coupled_allocation()
+#@@ -5164,7 +5167,7 @@
+# }
+# }
+#
+#- arraycopy_move_allocation_here(alloc, dest, saved_jvms, saved_reexecute_sp);
+#+ arraycopy_move_allocation_here(alloc, dest, saved_jvms, saved_reexecute_sp,
new_idx);
+#
+# if (stopped()) {
+# return true;
+diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/parse1.cpp
+--- openjdk/hotspot/src/share/vm/opto/parse1.cpp Wed Feb 15 11:14:45 2017 +0100
++++ openjdk/hotspot/src/share/vm/opto/parse1.cpp Wed Feb 15 17:26:37 2017 -0800
+@@ -1086,7 +1086,7 @@
+ kit.make_dtrace_method_exit(method());
+ }
+ if (_replaced_nodes_for_exceptions) {
+- kit.map()->apply_replaced_nodes();
++ kit.map()->apply_replaced_nodes(_new_idx);
+ }
+ // Done with exception-path processing.
+ ex_map = kit.make_exception_state(ex_oop);
+@@ -1107,7 +1107,7 @@
+ _exits.add_exception_state(ex_map);
+ }
+ }
+- _exits.map()->apply_replaced_nodes();
++ _exits.map()->apply_replaced_nodes(_new_idx);
+ }
+
+ //-----------------------------create_entry_map-------------------------------
+diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/replacednodes.cpp
+--- openjdk/hotspot/src/share/vm/opto/replacednodes.cpp Wed Feb 15 11:14:45 2017 +0100
++++ openjdk/hotspot/src/share/vm/opto/replacednodes.cpp Wed Feb 15 17:26:37 2017 -0800
+@@ -92,13 +92,17 @@
+ }
+
+ // Perfom node replacement (used when returning to caller)
+-void ReplacedNodes::apply(Node* n) {
++void ReplacedNodes::apply(Node* n, uint idx) {
+ if (is_empty()) {
+ return;
+ }
+ for (int i = 0; i < _replaced_nodes->length(); i++) {
+ ReplacedNode replaced = _replaced_nodes->at(i);
+- n->replace_edge(replaced.initial(), replaced.improved());
++ // Only apply if improved node was created in a callee to avoid
++ // issues with irreducible loops in the caller
++ if (replaced.improved()->_idx >= idx) {
++ n->replace_edge(replaced.initial(), replaced.improved());
++ }
+ }
+ }
+
+diff -r ac559f3ccca8 -r 35db0413819a src/share/vm/opto/replacednodes.hpp
+--- openjdk/hotspot/src/share/vm/opto/replacednodes.hpp Wed Feb 15 11:14:45 2017 +0100
++++ openjdk/hotspot/src/share/vm/opto/replacednodes.hpp Wed Feb 15 17:26:37 2017 -0800
+@@ -71,7 +71,7 @@
+ void record(Node* initial, Node* improved);
+ void transfer_from(const ReplacedNodes& other, uint idx);
+ void reset();
+- void apply(Node* n);
++ void apply(Node* n, uint idx);
+ void merge_with(const ReplacedNodes& other);
+ bool is_empty() const;
+ void dump(outputStream *st) const;
+
diff --git a/8153711-pr3313-rh1284948.patch b/8153711-pr3313-rh1284948.patch
new file mode 100644
index 0000000..b93fa06
--- /dev/null
+++ b/8153711-pr3313-rh1284948.patch
@@ -0,0 +1,669 @@
+# 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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c7eec17..5dfff61 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -801,7 +801,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -929,6 +929,11 @@ 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 8u152
+# 8153711, PR3313, RH1284948: [REDO] JDWP: Memory Leak: GlobalRefs never deleted when
processing invokeMethod command
+Patch535: 8153711-pr3313-rh1284948.patch
+Patch536: 1417266.patch
+
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1278,6 +1283,8 @@ sh %{SOURCE12}
%patch528
%patch532
%patch533
+%patch535
+%patch536
# RHEL-only patches
%if 0%{?rhel}
@@ -1503,6 +1510,7 @@ done
# Make sure gdb can do a backtrace based on line numbers on libjvm.so
gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
handle SIGSEGV pass nostop noprint
+handle SIGILL pass nostop noprint
set breakpoint pending on
break javaCalls.cpp:1
commands 1
@@ -1921,6 +1929,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
+- added Patch535 and 526
+- tweeked debugsymbols check for sigill
+
* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
- revertrd patch535, excludeECDHE-1415137.patch and related changes
- issue casued by nss, see rhbz#1415137 c#35
commit 622943eda6daa14db2f8a4b8496f88258764beaa
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Feb 10 16:47:03 2017 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c7eec17..15df91c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -801,7 +801,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1921,6 +1921,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.121-4.b14
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
- revertrd patch535, excludeECDHE-1415137.patch and related changes
- issue casued by nss, see rhbz#1415137 c#35
commit 00537c488bd0253ee025a0c03c93994b6bebfd20
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 25 11:50:07 2017 +0100
Bumped release to keep upgrade path
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 92662f2..c7eec17 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -801,7 +801,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1921,6 +1921,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
+- revertrd patch535, excludeECDHE-1415137.patch and related changes
+- issue casued by nss, see rhbz#1415137 c#35
+
+* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
+- added patch535, excludeECDHE-1415137.patch to tmp-worakround crash with nss
+
* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-1.b14
- updated to aarch64-jdk8u121-b14 (from openjdk8-forests/latest-aarch64)
- updated to aarch64-shenandoah-jdk8u121-b14 (from openjdk8-forests/latest-shenandoah) of
hotspot
commit 915447593c51a09cbbd2cb254945ec2e07c922be
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jan 24 15:35:24 2017 +0100
Added missing md5sum
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dda34e8..92662f2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -256,6 +256,7 @@ if [ "$1" -gt 1 ]; then
"${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\
"${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\
"${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\
+ "${sum}" = '0dd41ddb4d1fb25975f7faab2c23e151' -o \\
"${sum}" = '59dafb237e5def3ccf8a3ad589fb2777' -o \\
"${sum}" = '84d16306cd4c2ae76ba81a3775e92cee' -o \\
"${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' -o \\
commit edf0421b2a81a924d515c5ff32c333152673358c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jan 24 13:38:19 2017 +0100
Updated to security jdk8u121-b14
diff --git a/.gitignore b/.gitignore
index 1126169..4c2780d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,3 +66,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
+/openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz
+/openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
diff --git a/8044762-pr2960.patch b/8044762-pr2960.patch
deleted file mode 100644
index af5b606..0000000
--- a/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/8049226-pr2960.patch b/8049226-pr2960.patch
deleted file mode 100644
index 0f6bdf8..0000000
--- a/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/8154210.patch b/8154210.patch
deleted file mode 100644
index 51b8138..0000000
--- a/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/8158260-pr2991-rh1341258.patch b/8158260-pr2991-rh1341258.patch
deleted file mode 100644
index dae9509..0000000
--- a/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(a)linux.vnet.ibm.com, horii(a)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/8159244-pr3074.patch b/8159244-pr3074.patch
deleted file mode 100644
index 94ba21b..0000000
--- a/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/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index c9c6b97..6e0d762 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/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<G1StringDedupEntryFreeList,
mtGC>::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<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)),
+ _overflowed(PaddedArray<G1StringDedupEntryList,
mtGC>::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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 781036d..dda34e8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -56,7 +56,7 @@
%ifarch %{jit_arches}
%global bootstrap_build 1
%else
-%global bootstrap_build 0
+%global bootstrap_build 1
%endif
%if %{bootstrap_build}
@@ -168,9 +168,9 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
# 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-b16
+%global project openjdk8-forests
+%global repo latest-aarch64
+%global revision aarch64-jdk8u121-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -257,7 +257,10 @@ if [ "$1" -gt 1 ]; then
"${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\
"${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\
"${sum}" = '59dafb237e5def3ccf8a3ad589fb2777' -o \\
- "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then
+ "${sum}" = '84d16306cd4c2ae76ba81a3775e92cee' -o \\
+ "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' -o \\
+ "${sum}" = 'b727442b4ac0e3b8a26ec9741ad463e5' -o \\
+ "${sum}" = 'a59c6d96aeae1303fb8ba85e97588e9d' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
fi
@@ -797,7 +800,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -853,7 +856,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
+Source999: openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz
# RPM/distribution specific patches
@@ -925,20 +928,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
@@ -1260,10 +1249,8 @@ sh %{SOURCE12}
%patch103
# ppc64le fixes
-%patch524
# Zero fixes.
-%patch606
%patch603
%patch601
@@ -1284,12 +1271,9 @@ sh %{SOURCE12}
%patch517
%patch518
%patch400
-%patch521
-%patch522
%patch523
%patch525
%patch526
-%patch527
%patch528
%patch532
%patch533
@@ -1936,6 +1920,21 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-1.b14
+- updated to aarch64-jdk8u121-b14 (from openjdk8-forests/latest-aarch64)
+- updated to aarch64-shenandoah-jdk8u121-b14 (from openjdk8-forests/latest-shenandoah) of
hotspot
+- used openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz as new sources
+- used openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz as new
sources for hotspot
+- deleted: 8044762-pr2960.patch 8049226-pr2960.patch 8154210.patch
8158260-pr2991-rh1341258.patch 8159244-pr3074.patch
+- adapted java-1.8.0-openjdk-size_t.patch pr1834-rh1022017.patch rh1163501.patch
+- updated from internal (rhel) repo
OPENJDK_URL_DEFAULT=ssh://t...redhat.com//...ty/
+- with custom PR2126=/.../pr2126.patch (removed newly added brainpool curves)
+- withspecial values of PROJECT_NAME="openjdk8-forests",
REPO_NAME="latest-aarch64"
+- with correct tag VERSION="aarch64-jdk8u121-b14"
+- and for shenandoah hotspot used custom repo REPO_NAME=latest-shenandoah
+- with correct tag VERSION="aarch64-shenandoah-jdk8u121-b14"
+- complete changes to generate_source_tarball.sh update_package.sh NOT commited (willbe
regenerated from official repos soon)
+
* Mon Jan 09 2017 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-5.b16
- Added arched dependencies to headless/main package
diff --git a/pr1834-rh1022017.patch b/pr1834-rh1022017.patch
index 1b3c903..3585029 100644
--- a/pr1834-rh1022017.patch
+++ b/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/rh1163501.patch b/rh1163501.patch
index 51cd4b9..851529f 100644
--- a/rh1163501.patch
+++ b/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/sources b/sources
index 2b903ea..a026ed4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-822e321b710defc8f9c8ec97a6f34b55 systemtap-tapset-3.1.0.tar.xz
-f33dff82e5c0d33d81d8100576b612eb aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz
-dcb3a75964f52a50bb32b2179132724f
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
+SHA512 (systemtap-tapset-3.1.0.tar.xz) =
e3558dc9d56dff5125a869807135e84ca73a2640d8d8fff2f45dc0dd7d153b81b48c08480e09a75667eba62362f74091465fac622aa0d9b104bfb18b4eba80e1
+SHA512 (openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz) =
8a5418c0560736d3450bbb4f3a0b19d028713f39634630d4e3689c664f25e2dbe9473c3657d5e02c5c614a37dce3cfb9db93a449f5f7f0294dec748514b67dc8
+SHA512 (openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz) =
1b7e9a598fb43c96599393fbe712056e8031ddd985d9abe5e4ffdaa309a9b43659da29f9d9294cd0dab8cbb1d19fc8149c49fee6e81fced120c18d59f015ce81
diff --git a/update_package.sh b/update_package.sh
index 3a47bef..e517d15 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u111-b16"
+ VERSION="aarch64-jdk8u121-b14"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u111-b16"
+ VERSION="aarch64-shenandoah-jdk8u121-b14"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit a4eab871ae166949fa2c9beef16728df20ed0c02
Merge: 121d015 9352608
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 9 10:46:45 2017 +0100
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk
commit 121d015d920bf38ba10ffe12ea40c3b842d2d7e6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 9 10:43:34 2017 +0100
Added changelog message and bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5e2d92d..781036d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -797,7 +797,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1936,6 +1936,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jan 09 2017 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-5.b16
+- Added arched dependencies to headless/main package
+
* Thu Nov 03 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-3.b16
- added patch207 - PR3183.patch
- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
commit 935260898c492a4abd4b1112108458a9357aa00a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 9 10:43:34 2017 +0100
Added changelog message and bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5e2d92d..8a0a84a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -797,7 +797,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1936,6 +1936,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jan 09 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-5.b16
+- Added arched dependencies to headless/main package
+
* Thu Nov 03 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-3.b16
- added patch207 - PR3183.patch
- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
commit 09ac4b902860a41345f38aaaf5a662d4c2c244aa
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jan 9 10:40:23 2017 +0100
Added arched depndencies to hedless/main package
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d557998..5e2d92d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -655,8 +655,8 @@ Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
# Requires rest of java
-Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
# Standard JPackage base provides.
@@ -727,8 +727,8 @@ Obsoletes: java-1.7.0-openjdk-headless%1
%global java_devel_rpo() %{expand:
# Require base package.
-Requires: %{name}%1 = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -753,14 +753,14 @@ Obsoletes: java-1.5.0-gcj-devel%1
%global java_demo_rpo() %{expand:
-Requires: %{name}%1 = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-demo%1
}
%global java_javadoc_rpo() %{expand:
-OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -779,15 +779,15 @@ Obsoletes: java-1.7.0-openjdk-javadoc%1
}
%global java_src_rpo() %{expand:
-Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-src%1
}
%global java_accessibility_rpo() %{expand:
-Requires: java-atk-wrapper
-Requires: %{name}%1 = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+Requires: java-atk-wrapper%{?_isa}
+Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-accessibility%1
}
commit bbdff6e8698dd15375c427c8c62cccfdfbbceb71
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 4 15:41:31 2017 +0100
Bumping release to match f25
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 87d7ba5..d557998 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -256,6 +256,7 @@ if [ "$1" -gt 1 ]; then
"${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\
"${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\
"${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\
+ "${sum}" = '59dafb237e5def3ccf8a3ad589fb2777' -o \\
"${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
@@ -796,7 +797,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
commit 647f8debfd63323995c1a5e9be61e6ce79e3fba6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Nov 3 09:07:33 2016 +0100
added patch207 - PR3183.patch
- java SSL/TLS implementation: should follow the policies of system-wide crypto
policy
diff --git a/PR3183.patch b/PR3183.patch
new file mode 100644
index 0000000..5a619b4
--- /dev/null
+++ b/PR3183.patch
@@ -0,0 +1,158 @@
+
+# HG changeset patch
+# User andrew
+# Date 1478057514 0
+# Node ID 1c4d5cb2096ae55106111da200b0bcad304f650c
+# Parent 3d53f19b48384e5252f4ec8891f7a3a82d77af2a
+PR3183: Support Fedora/RHEL system crypto policy
+
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/classes/java/security/Security.java
+--- openjdk/jdk/src/share/classes/java/security/Security.java Wed Oct 26 03:51:39 2016
+0100
++++ openjdk/jdk/src/share/classes/java/security/Security.java Wed Nov 02 03:31:54 2016
+0000
+@@ -43,6 +43,9 @@
+ * implementation-specific location, which is typically the properties file
+ * {@code lib/security/java.security} in the Java installation directory.
+ *
++ * <p>Additional default values of security properties are read from a
++ * system-specific location, if available.</p>
++ *
+ * @author Benjamin Renaud
+ */
+
+@@ -52,6 +55,10 @@
+ private static final Debug sdebug =
+ Debug.getInstance("properties");
+
++ /* System property file*/
++ private static final String SYSTEM_PROPERTIES =
++ "/etc/crypto-policies/back-ends/java.config";
++
+ /* The java.security properties */
+ private static Properties props;
+
+@@ -93,6 +100,7 @@
+ if (sdebug != null) {
+ sdebug.println("reading security properties file: " +
+ propFile);
++ sdebug.println(props.toString());
+ }
+ } catch (IOException e) {
+ if (sdebug != null) {
+@@ -114,6 +122,31 @@
+ }
+
+ if ("true".equalsIgnoreCase(props.getProperty
++ ("security.useSystemPropertiesFile"))) {
++
++ // now load the system file, if it exists, so its values
++ // will win if they conflict with the earlier values
++ try (BufferedInputStream bis =
++ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
++ props.load(bis);
++ loadedProps = true;
++
++ if (sdebug != null) {
++ sdebug.println("reading system security properties file "
+
++ SYSTEM_PROPERTIES);
++ sdebug.println(props.toString());
++ }
++ } catch (IOException e) {
++ if (sdebug != null) {
++ sdebug.println
++ ("unable to load security properties from " +
++ SYSTEM_PROPERTIES);
++ e.printStackTrace();
++ }
++ }
++ }
++
++ if ("true".equalsIgnoreCase(props.getProperty
+ ("security.overridePropertiesFile"))) {
+
+ String extraPropFile = System.getProperty
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-aix
+--- openjdk/jdk/src/share/lib/security/java.security-aix Wed Oct 26 03:51:39 2016 +0100
++++ openjdk/jdk/src/share/lib/security/java.security-aix Wed Nov 02 03:31:54 2016 +0000
+@@ -276,6 +276,13 @@
+ security.overridePropertiesFile=true
+
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-linux
+--- openjdk/jdk/src/share/lib/security/java.security-linux Wed Oct 26 03:51:39 2016
+0100
++++ openjdk/jdk/src/share/lib/security/java.security-linux Wed Nov 02 03:31:54 2016
+0000
+@@ -276,6 +276,13 @@
+ security.overridePropertiesFile=true
+
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=true
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-macosx
+--- openjdk/jdk/src/share/lib/security/java.security-macosx Wed Oct 26 03:51:39 2016
+0100
++++ openjdk/jdk/src/share/lib/security/java.security-macosx Wed Nov 02 03:31:54 2016
+0000
+@@ -279,6 +279,13 @@
+ security.overridePropertiesFile=true
+
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-solaris
+--- openjdk/jdk/src/share/lib/security/java.security-solaris Wed Oct 26 03:51:39 2016
+0100
++++ openjdk/jdk/src/share/lib/security/java.security-solaris Wed Nov 02 03:31:54 2016
+0000
+@@ -278,6 +278,13 @@
+ security.overridePropertiesFile=true
+
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-windows
+--- openjdk/jdk/src/share/lib/security/java.security-windows Wed Oct 26 03:51:39 2016
+0100
++++ openjdk/jdk/src/share/lib/security/java.security-windows Wed Nov 02 03:31:54 2016
+0000
+@@ -279,6 +279,13 @@
+ security.overridePropertiesFile=true
+
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=false
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ddb85f5..87d7ba5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -255,6 +255,7 @@ if [ "$1" -gt 1 ]; then
"${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\
"${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\
"${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\
+ "${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\
"${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
@@ -795,7 +796,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -944,6 +945,7 @@ Patch201: system-libjpeg.patch
Patch204: hotspot-remove-debuglink.patch
Patch205: dont-add-unnecessary-debug-links.patch
Patch206: hotspot-assembler-debuginfo.patch
+Patch207: PR3183.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
@@ -1244,6 +1246,7 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
+%patch207
%patch1
%patch3
@@ -1932,6 +1935,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Nov 03 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-3.b16
+- added patch207 - PR3183.patch
+- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
+
* Fri Oct 21 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.111-2.b16
- added dont-add-unnecessary-debug-links.patch
- added hotspot-assembler-debuginfo.patch
commit ea155293bfd4a813c4b3b5a0823a5fc055ece9d7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 21 10:26:35 2016 +0200
eu-readelfs on libraries improved, added gdb call
diff --git a/dont-add-unnecessary-debug-links.patch
b/dont-add-unnecessary-debug-links.patch
new file mode 100644
index 0000000..9c29e6b
--- /dev/null
+++ b/dont-add-unnecessary-debug-links.patch
@@ -0,0 +1,77 @@
+--- openjdk/make/common/NativeCompilation.gmk
++++ openjdk/make/common/NativeCompilation.gmk
+@@ -437,29 +437,6 @@
+
+ ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
+ ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
+- ifeq ($(OPENJDK_TARGET_OS), solaris)
+- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
+- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
+- # empty section headers until a fixed $(OBJCOPY) is available.
+- # An empty section header has sh_addr == 0 and sh_size == 0.
+- # This problem has only been seen on Solaris X64, but we call this tool
+- # on all Solaris builds just in case.
+- #
+- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET) \
+- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+- $(RM) $$@
+- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+- $(OBJCOPY) --only-keep-debug $$< $$@
+- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
+- else # not solaris
+- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
+- $(RM) $$@
+- $(OBJCOPY) --only-keep-debug $$< $$@
+- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
+- endif # Touch to not retrigger rule on rebuild
+- $(TOUCH) $$@
+ endif # !windows
+ endif # !macosx
+
+@@ -483,7 +460,6 @@
+ $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
+ $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
+ else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
+- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
+ endif
+ endif
+ endif
+@@ -522,28 +498,8 @@
+ ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X
+ ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC
flag set.
+- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set)
from
+- # empty section headers until a fixed $(OBJCOPY) is available.
+- # An empty section header has sh_addr == 0 and sh_size == 0.
+- # This problem has only been seen on Solaris X64, but we call this tool
+- # on all Solaris builds just in case.
+- #
+- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
+- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
+- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \
+- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK)
+- $(RM) $$@
+- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$<
+- $(OBJCOPY) --only-keep-debug $$< $$@
+- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$<
+ else # not solaris
+- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
+- $(RM) $$@
+- $(OBJCOPY) --only-keep-debug $$< $$@
+- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
+ endif
+- $(TOUCH) $$@
+ endif # !windows
+ endif # !macosx
+
+@@ -567,7 +523,6 @@
+ $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \
+ $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb
+ else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo
files
+- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
+ endif
+ endif
+ endif
diff --git a/hotspot-assembler-debuginfo.patch b/hotspot-assembler-debuginfo.patch
new file mode 100644
index 0000000..61f493d
--- /dev/null
+++ b/hotspot-assembler-debuginfo.patch
@@ -0,0 +1,27 @@
+Make the assembler generate whatever debuginfo it can
+--- openjdk/hotspot/make/linux/makefiles/rules.make
++++ openjdk/hotspot/make/linux/makefiles/rules.make
+@@ -34,7 +34,7 @@
+ CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
+ CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
+
+-AS.S = $(AS) $(ASFLAGS)
++AS.S = $(AS) -g $(ASFLAGS)
+
+ COMPILE.CC = $(CC_COMPILE) -c
+ GENASM.CC = $(CC_COMPILE) -S
+@@ -161,12 +161,12 @@
+ %.o: %.s
+ @echo Assembling $<
+ $(QUIETLY) $(REMOVE_TARGET)
+- $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
++ $(QUIETLY) $(AS.S) -g $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
+
+ %.o: %.S
+ @echo Assembling $<
+ $(QUIETLY) $(REMOVE_TARGET)
+- $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
++ $(COMPILE.CC) -g -o $@ $< $(COMPILE_DONE)
+
+ %.s: %.cpp
+ @echo Generating assembly for $<
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a74760b..ddb85f5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -795,7 +795,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -940,6 +940,10 @@ Patch524: 8158260-pr2991-rh1341258.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
+# Pathces 204-206 are serving for better check of debug symbols in native liraries
+Patch204: hotspot-remove-debuglink.patch
+Patch205: dont-add-unnecessary-debug-links.patch
+Patch206: hotspot-assembler-debuginfo.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
@@ -957,10 +961,12 @@ BuildRequires: alsa-lib-devel
BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
+BuildRequires: elfutils
BuildRequires: fontconfig
BuildRequires: freetype-devel
BuildRequires: giflib-devel
BuildRequires: gcc-c++
+BuildRequires: gdb
BuildRequires: gtk2-devel
BuildRequires: lcms2-devel
BuildRequires: libjpeg-devel
@@ -1235,6 +1241,9 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
+%patch204
+%patch205
+%patch206
%patch1
%patch3
@@ -1459,18 +1468,61 @@ $JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
# Check debug symbols are present and can identify code
-SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
-if [ -f "$SERVER_JVM" ] ; then
- nm -aCl "$SERVER_JVM" | grep javaCalls.cpp
-fi
-CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
-if [ -f "$CLIENT_JVM" ] ; then
- nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp
-fi
-ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
-if [ -f "$ZERO_JVM" ] ; then
- nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
-fi
+find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0'
lib
+do
+ if [ -f "$lib" ] ; then
+ echo "Testing $lib for debug symbols"
+ # All these tests rely on RPM failing the build if the exit code of any set
+ # of piped commands is non-zero.
+
+ # Test for .debug_* sections in the shared object. This is the main test.
+ # Stripped objects will not contain these.
+ eu-readelf -S "$lib" | grep "] .debug_"
+ test $(eu-readelf -S "$lib" | egrep "\]\ .debug_(info|abbrev)" |
wc --lines) == 2
+
+ # Test FILE symbols. These will most likely be removed by anyting that
+ # manipulates symbol tables because it's generally useless. So a nice test
+ # that nothing has messed with symbols.
+ old_IFS="$IFS"
+ IFS=$'\n'
+ for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE
LOCAL DEFAULT")
+ do
+ # We expect to see .cpp files, except for architectures like aarch64 and
+ # s390 where we expect .o and .oS files
+ echo "$line" | egrep "ABS
((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$"
+ done
+ IFS="$old_IFS"
+
+ # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity
checking.
+ if [ "`basename $lib`" = "libjvm.so" ]; then
+ eu-readelf -s "$lib" | \
+ egrep "00000000 0 FILE LOCAL DEFAULT ABS
javaCalls.(cpp|o)$"
+ fi
+
+ # Test that there are no .gnu_debuglink sections pointing to another
+ # debuginfo file. There shouldn't be any debuginfo files, so the link makes
+ # no sense either.
+ eu-readelf -S "$lib" | grep 'gnu'
+ if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS;
then
+ echo "bad .gnu_debuglink section."
+ eu-readelf -x .gnu_debuglink "$lib"
+ false
+ fi
+ fi
+done
+
+# Make sure gdb can do a backtrace based on line numbers on libjvm.so
+gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
+handle SIGSEGV pass nostop noprint
+set breakpoint pending on
+break javaCalls.cpp:1
+commands 1
+backtrace
+quit
+end
+run -version
+EOF
+grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -1880,6 +1932,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 21 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.111-2.b16
+- added dont-add-unnecessary-debug-links.patch
+- added hotspot-assembler-debuginfo.patch
+- returned accidentally removed hotspot-remove-debuglink.patch
+- eu-readelfs on libraries improved, added gdb call
+
* Wed Oct 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.111-1.b16
- updated to aarch64-jdk8u111-b16 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u111-b16 (from aarch64-port/jdk8u-shenandoah) of
hotspot
commit dc4e79abbb1edfcc9694d6e8dc8bebe6acae581c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 20 10:31:31 2016 +0200
Updated to security update u111
- updated to aarch64-jdk8u111-b16 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u111-b16 (from aarch64-port/jdk8u-shenandoah) of
hotspot
- used aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz as new sources
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz as new
sources for hotspot
- adapted patches
diff --git a/.gitignore b/.gitignore
index 744712e..1126169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,3 +64,5 @@
/systemtap-tapset-3.1.0.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
diff --git a/8157306-pr3121-rh1360863.patch b/8157306-pr3121-rh1360863.patch
deleted file mode 100644
index 8cb69ae..0000000
--- a/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/always_assumemp.patch b/always_assumemp.patch
new file mode 100644
index 0000000..b0a874d
--- /dev/null
+++ b/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/corba_typo_fix.patch b/corba_typo_fix.patch
deleted file mode 100644
index 9756a8a..0000000
--- a/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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6dfbf0c..a74760b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -27,8 +27,8 @@
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
-# by default we build debug build during main build only on intel arches
-%ifarch %{ix86} x86_64 %{aarch64} %{ppc64le}
+# 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
@@ -170,7 +170,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-b16
# 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
@@ -254,7 +254,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
@@ -794,7 +795,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -850,7 +851,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
+Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
# RPM/distribution specific patches
@@ -919,8 +920,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
@@ -938,19 +937,17 @@ 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 upstream and appearing in 8u122
-Patch607: 8167200.hotspotAarch64.patch
-
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
-Patch204: hotspot-remove-debuglink.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
@@ -960,7 +957,6 @@ BuildRequires: alsa-lib-devel
BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
-Buildrequires: elfutils
BuildRequires: fontconfig
BuildRequires: freetype-devel
BuildRequires: giflib-devel
@@ -1239,7 +1235,6 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
-%patch204
%patch1
%patch3
@@ -1283,11 +1278,13 @@ sh %{SOURCE12}
%patch526
%patch527
%patch528
-%patch529
-%patch531
%patch532
+%patch533
-%patch607
+# RHEL-only patches
+%if 0%{?rhel}
+%patch534
+%endif
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1463,36 +1460,17 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed
"s|\.java||")
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
+if [ -f "$SERVER_JVM" ] ; then
+ nm -aCl "$SERVER_JVM" | grep javaCalls.cpp
+fi
CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
+if [ -f "$CLIENT_JVM" ] ; then
+ nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp
+fi
ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
-jvms=("$SERVER_JVM" "$CLIENT_JVM" "$ZERO_JVM")
-for lib in "${jvms[@]}"; do
- if [ -f "$lib" ] ; then
- echo "Testing $lib for debug symbols"
- # All these tests rely on RPM failing the build if the exit code of any set
- # of piped commands is non-zero.
-
- # Test for .debug_* sections in the shared object. This is the main test.
- # Stripped objects will not contain these.
- eu-readelf -S "$lib" | grep "] .debug_"
- test $(eu-readelf -S "$lib" | egrep "\]\ .debug_(info|abbrev)" |
wc --lines) == 2
-
- # Test FILE symbols. These will most likely be removed by anyting that
- # manipulates symbol tables because it's generally useless. So a nice test
- # that nothing has messed with symbols.
- eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT
ABS javaCalls.cpp"
-
- # Test that there are no .gnu_debuglink sections pointing to another
- # debuginfo file. There shouldn't be any debuginfo files, so the link makes
- # no sense either.
- eu-readelf -S "$lib" | grep 'gnu'
- if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS;
then
- echo "bad .gnu_debuglink section."
- eu-readelf -x .gnu_debuglink "$lib"
- false
- fi
- fi
-done
+if [ -f "$ZERO_JVM" ] ; then
+ nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
+fi
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -1902,12 +1880,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Fri Oct 14 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.102-5.b14
-- added hotspot-remove-debuglink.patch
-- removed grep on javaCalls, and replace by eu-readelfs on libraries
-
-* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-4.b14
-- added patch for failing scala stuff
+* Wed Oct 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.111-1.b16
+- updated to aarch64-jdk8u111-b16 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u111-b16 (from aarch64-port/jdk8u-shenandoah) of
hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz as new
sources for hotspot
+- adapted patches
* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-3.b14
- debug subpackages allowed on aarch64 and ppc64le
diff --git a/rh1367357.patch b/rh1367357.patch
new file mode 100644
index 0000000..254be99
--- /dev/null
+++ b/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/sources b/sources
index be169f3..2b903ea 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
822e321b710defc8f9c8ec97a6f34b55 systemtap-tapset-3.1.0.tar.xz
-fd982589a6345c6dd3698256bed45d3d aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
-76ebec7a595c567a66b9d15fdc530a56
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
+f33dff82e5c0d33d81d8100576b612eb aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz
+dcb3a75964f52a50bb32b2179132724f
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 92534ab..3a47bef 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u102-b14"
+ VERSION="aarch64-jdk8u111-b16"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u102-b14"
+ VERSION="aarch64-shenandoah-jdk8u111-b16"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 081b6536f9e3131f3297a388d291264af3fe182a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 14 14:46:51 2016 +0200
Check for debug symbols speeded up from minutes to seconds
- added hotspot-remove-debuglink.patch
- removed grep on javaCalls, and replace by eu-readelfs on libraries
diff --git a/hotspot-remove-debuglink.patch b/hotspot-remove-debuglink.patch
new file mode 100644
index 0000000..3b3070d
--- /dev/null
+++ b/hotspot-remove-debuglink.patch
@@ -0,0 +1,73 @@
+Remove unnecessary .gnu_debuglink sections from libjvm
+
+The .gnu_debuglink section indicates which file contains the debuginfo. This
+is not needed if we not stripping the shared object.
+
+RPM's debuginfo extraction code will add the right file links automatically. As
+it is, RPM copies over the .gnu_debuglink link to the debug info file. Without
+this patch, the debug info file also ends up containing the .gnu_debuglink
+section pointing to a missing (and not needed) file.
+
+diff --git a/make/linux/makefiles/jsig.make b/make/linux/makefiles/jsig.make
+--- openjdk/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -57,14 +57,15 @@
+ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
++ ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+- ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(STRIP) $@
+ else
+ ifeq ($(STRIP_POLICY),min_strip)
++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+ $(QUIETLY) $(STRIP) -g $@
++ endif
+ # implied else here is no stripping at all
+- endif
+ endif
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO)
+diff --git a/make/linux/makefiles/saproc.make b/make/linux/makefiles/saproc.make
+--- openjdk/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -99,14 +99,15 @@
+ -lthread_db
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
++ ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
+- ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(STRIP) $@
+ else
+ ifeq ($(STRIP_POLICY),min_strip)
++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
+ $(QUIETLY) $(STRIP) -g $@
++ endif
+ # implied else here is no stripping at all
+- endif
+ endif
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
+diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make
+--- openjdk/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -358,14 +358,15 @@
+
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
+- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+ ifeq ($(STRIP_POLICY),all_strip)
+ $(QUIETLY) $(STRIP) $@
++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+ else
+ ifeq ($(STRIP_POLICY),min_strip)
+ $(QUIETLY) $(STRIP) -g $@
++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
++ endif
+ # implied else here is no stripping at all
+- endif
+ endif
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f284cb6..6dfbf0c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -794,7 +794,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -944,6 +944,7 @@ Patch607: 8167200.hotspotAarch64.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
+Patch204: hotspot-remove-debuglink.patch
# Local fixes
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
@@ -959,6 +960,7 @@ BuildRequires: alsa-lib-devel
BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
+Buildrequires: elfutils
BuildRequires: fontconfig
BuildRequires: freetype-devel
BuildRequires: giflib-devel
@@ -1237,6 +1239,7 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
+%patch204
%patch1
%patch3
@@ -1460,17 +1463,36 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed
"s|\.java||")
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
-if [ -f "$SERVER_JVM" ] ; then
- nm -aCl "$SERVER_JVM" | grep javaCalls.cpp
-fi
CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
-if [ -f "$CLIENT_JVM" ] ; then
- nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp
-fi
ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
-if [ -f "$ZERO_JVM" ] ; then
- nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
-fi
+jvms=("$SERVER_JVM" "$CLIENT_JVM" "$ZERO_JVM")
+for lib in "${jvms[@]}"; do
+ if [ -f "$lib" ] ; then
+ echo "Testing $lib for debug symbols"
+ # All these tests rely on RPM failing the build if the exit code of any set
+ # of piped commands is non-zero.
+
+ # Test for .debug_* sections in the shared object. This is the main test.
+ # Stripped objects will not contain these.
+ eu-readelf -S "$lib" | grep "] .debug_"
+ test $(eu-readelf -S "$lib" | egrep "\]\ .debug_(info|abbrev)" |
wc --lines) == 2
+
+ # Test FILE symbols. These will most likely be removed by anyting that
+ # manipulates symbol tables because it's generally useless. So a nice test
+ # that nothing has messed with symbols.
+ eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT
ABS javaCalls.cpp"
+
+ # Test that there are no .gnu_debuglink sections pointing to another
+ # debuginfo file. There shouldn't be any debuginfo files, so the link makes
+ # no sense either.
+ eu-readelf -S "$lib" | grep 'gnu'
+ if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS;
then
+ echo "bad .gnu_debuglink section."
+ eu-readelf -x .gnu_debuglink "$lib"
+ false
+ fi
+ fi
+done
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
@@ -1880,6 +1902,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 14 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.102-5.b14
+- added hotspot-remove-debuglink.patch
+- removed grep on javaCalls, and replace by eu-readelfs on libraries
+
* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-4.b14
- added patch for failing scala stuff
commit 76251bc1aa9656ea810549e856371bb83b9b42b6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 6 14:58:46 2016 +0200
Added patch for triple synchronization falure
diff --git a/8167200.hotspotAarch64.patch b/8167200.hotspotAarch64.patch
new file mode 100644
index 0000000..754df89
--- /dev/null
+++ b/8167200.hotspotAarch64.patch
@@ -0,0 +1,37 @@
+
+# HG changeset patch
+# User aph
+# Date 1475745921 0
+# Node ID 60a8cbf7030e4de40050472705776509fa9cb960
+# Parent d9960bd9fb6d3a5ac0450a47d70f3a3afd7f515d
+8167200: AArch64: Broken stack pointer adjustment in interpreter
+Summary: Always adjust SP unconditionally
+Reviewed-by: dlong, kbarrett
+
+diff -r d9960bd9fb6d -r 60a8cbf7030e src/cpu/aarch64/vm/templateTable_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Tue May 24 08:47:37 2016
-0700
++++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Thu Oct 06 09:25:21 2016
+0000
+@@ -3717,19 +3717,15 @@
+
+ // allocate one if there's no free slot
+ {
+- Label entry, loop, no_adjust;
++ Label entry, loop;
+ // 1. compute new pointers // rsp: old expression stack top
+ __ ldr(c_rarg1, monitor_block_bot); // c_rarg1: old expression stack bottom
+- __ sub(esp, esp, entry_size); // move expression stack top
++ __ sub(esp, esp, entry_size); // move expression stack top
+ __ sub(c_rarg1, c_rarg1, entry_size); // move expression stack bottom
+ __ mov(c_rarg3, esp); // set start value for copy loop
+ __ str(c_rarg1, monitor_block_bot); // set new monitor block bottom
+
+- __ cmp(sp, c_rarg3); // Check if we need to move sp
+- __ br(Assembler::LO, no_adjust); // to allow more stack space
+- // for our new esp
+- __ sub(sp, sp, 2 * wordSize);
+- __ bind(no_adjust);
++ __ sub(sp, sp, entry_size); // make room for the monitor
+
+ __ b(entry);
+ // 2. move expression stack contents
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3ee1957..f284cb6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -794,7 +794,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -938,6 +938,9 @@ 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 upstream and appearing in 8u122
+Patch607: 8167200.hotspotAarch64.patch
+
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
@@ -1281,6 +1284,8 @@ sh %{SOURCE12}
%patch531
%patch532
+%patch607
+
# Extract systemtap tapsets
%if %{with_systemtap}
tar -x -I xz -f %{SOURCE8}
@@ -1875,6 +1880,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-4.b14
+- added patch for failing scala stuff
+
* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-3.b14
- debug subpackages allowed on aarch64 and ppc64le
- fontconfig and nss restricted by isa
commit 08e1407f23b291e9fb2c6a5a5943ed8eae26d424
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Oct 4 14:09:24 2016 +0200
Arches declaration moved to top of specfile
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7d68dd5..3ee1957 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -20,6 +20,13 @@
%global build_loop1 %{nil}
%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}
+
# by default we build debug build during main build only on intel arches
%ifarch %{ix86} x86_64 %{aarch64} %{ppc64le}
%global include_debug_build 1
@@ -58,13 +65,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}
-
%ifnarch %{jit_arches}
# Disable hardened build on non-jit arches. Work-around for RHBZ#1290936.
%undefine _hardened_build
commit 775f6ce325770d3e023dd3f4da5130397ba5d1f4
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Oct 4 12:26:31 2016 +0200
- debug subpackages allowed on aarch64 and ppc64le
- fontconfig and nss restricted by isa
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fd3c514..7d68dd5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -21,7 +21,7 @@
%endif
# by default we build debug build during main build only on intel arches
-%ifarch %{ix86} x86_64
+%ifarch %{ix86} x86_64 %{aarch64} %{ppc64le}
%global include_debug_build 1
%else
%global include_debug_build 0
@@ -648,7 +648,7 @@ exit 0
# not-duplicated requires/provides/obsolate for normal/debug packages
%global java_rpo() %{expand:
-Requires: fontconfig
+Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
# Requires rest of java
@@ -680,10 +680,10 @@ Requires: javapackages-tools
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
-Requires: lksctp-tools
-# there is need to depnd on exact version of nss
-Requires: nss %{NSS_BUILDTIME_VERSION}
-Requires: nss-softokn %{NSSSOFTOKN_BUILDTIME_VERSION}
+Requires: lksctp-tools%{?_isa}
+# there is a need to depend on the exact version of NSS
+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 >= 1.1-3
OrderWithRequires: copy-jdk-configs
@@ -794,7 +794,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1875,6 +1875,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-3.b14
+- debug subpackages allowed on aarch64 and ppc64le
+- fontconfig and nss restricted by isa
+
* Wed Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
- declared check_sum_presented_in_spec and used in prep and check
- it is checking that latest packed java.security is mentioned in listing
commit 8591264417e29098a1e814fb7d522a0d359247d7
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Sep 20 14:21:34 2016 +0200
reasonable doc macros replaced by license macro
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8af12e2..fd3c514 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -528,9 +528,9 @@ exit 0
%global files_jre_headless() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}
%{_jvmdir}/%{jrelnk %%1}
%{_jvmjardir}/%{jrelnk %%1}
@@ -568,9 +568,9 @@ exit 0
%global files_devel() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/LICENSE
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/THIRD_PARTY_README
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/LICENSE
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
@@ -619,7 +619,7 @@ exit 0
%global files_demo() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
%global files_src() %{expand:
@@ -631,13 +631,13 @@ exit 0
%global files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir %%1}
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
%global files_javadoc_zip() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir %%1}.zip
-%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%license %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
%global files_accessibility() %{expand:
commit 836c5e767f2ffce7db449ee8883ad47f365a10b5
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Sep 1 10:39:18 2016 +0200
cosmetic changes - date inchangelog, message, comments, order of patches declaration
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ff5925b..8af12e2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -915,8 +915,6 @@ Patch502: pr2462.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
Patch506: pr2842-01.patch
Patch507: pr2842-02.patch
-# S8158260, PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in
JITed code
-Patch524: 8158260-pr2991-rh1341258.patch
# S8154313: Generated javadoc scattered all over the place
Patch400: 8154313.patch
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
@@ -926,7 +924,7 @@ Patch531: 8157306-pr3121-rh1360863.patch
# S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed
by type speculation
Patch532: 8162384-pr3122-rh1358661.patch
-# Patches upstream and appearing in 8u102
+# 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
@@ -937,6 +935,8 @@ Patch521: 8044762-pr2960.patch
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
@@ -1875,10 +1875,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Thu Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
+* Wed Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
- declared check_sum_presented_in_spec and used in prep and check
- it is checking that latest packed java.security is mentioned in listing
-- fixed tapset
+- @prefix@ in tapsetfiles substitued by prefix as necessary to work with systemtap3
(rhbz1371005)
* Thu Aug 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-1.b14
- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
commit a2c916035412a444599022a551493796b3d5c1a6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 31 17:24:35 2016 +0200
Added check for java.security md5sum list, fixed systemtap (again)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3c52717..ff5925b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -220,6 +220,13 @@
# not-duplicated scriplets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+%global check_sum_presented_in_spec() %{expand:
+md5sum %1
+currentMd5sum=`md5sum %1 | sed "s;\\s.*;;"`
+specfile=%{_specdir}/%{name}.spec
+grep -e md5sum -A 20 $specfile | grep $currentMd5sum
+}
+
%global post_script() %{expand:
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -787,7 +794,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1313,6 +1320,10 @@ for file in %{SOURCE9} %{SOURCE10} ; do
done
done
+# this is check which controls, that latest java.security is included in post(_headless)
+%{check_sum_presented_in_spec openjdk/jdk/src/share/lib/security/java.security-linux}
+
+
%build
# How many cpu's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
@@ -1431,6 +1442,9 @@ for suffix in %{rev_build_loop} ; do
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
+# check java.security in this build is also in this specfile
+%{check_sum_presented_in_spec $JAVA_HOME/jre/lib/security/java.security}
+
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
@@ -1861,6 +1875,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
+- declared check_sum_presented_in_spec and used in prep and check
+- it is checking that latest packed java.security is mentioned in listing
+- fixed tapset
+
* Thu Aug 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-1.b14
- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of
hotspot
commit ee30614eb874e23449cbdcce1f19a7c89f8d9a3f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 29 17:21:34 2016 +0200
Fixed systemtap to work with systemtap 3
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a068db6..3c52717 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1294,6 +1294,7 @@ for suffix in %{build_loop} ; do
%endif
sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g $OUTPUT_FILE
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
+ sed -i -e s:@prefix@:%{_jvmdir}/%{sdkdir $suffix}/:g $OUTPUT_FILE
done
done
# systemtap tapsets ends
commit 5fe3e6f34fa7a847b0b90a9405f154074a26a6b0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 29 11:13:53 2016 +0200
Added 5ea976e209d0d0b5b6ab148416123e02 to java.security md5sums to be clarified
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2d64c11..a068db6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -246,7 +246,8 @@ if [ "$1" -gt 1 ]; then
"${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
"${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
"${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\
- "${sum}" = '134a37a84983b620f4d8d51a550c0c38' ]; then
+ "${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\
+ "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
fi
commit 22266213bb122eee20fef2fa180c1eacefc50023
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 25 14:41:14 2016 +0200
Minor change to generate_sources
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 3b7bf66..3c3ea1c 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -23,6 +23,8 @@ set -e
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
COMPRESSION_DEFAULT=xz
+# jdk is last for its size
+REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk"
if [ "x$1" = "xhelp" ] ; then
echo -e "Behaviour may be specified by setting the following variables:\n"
@@ -34,6 +36,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if
unavailable)"
+ echo "REPOS - specify the repositories to use (optional; defaults to
${REPOS_DEFAULT})"
exit 1;
fi
@@ -89,10 +92,11 @@ pushd openjdk
if [ "x$REPOS" = "x" ] ; then
- #jdk is last for its size
- repos="hotspot corba jaxws jaxp langtools nashorn jdk"
+ repos=${REPOS_DEFAULT}
+ echo "No repositories specified; defaulting to ${repos}"
else
- repos=$REPOS
+ repos=$REPOS
+ echo "Repositories: ${repos}"
fi;
for subrepo in $repos
commit f142bc72b780a4e1c2556f09fdc5404f07c055fd
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 25 14:31:41 2016 +0200
jjs provides moved to headless
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1a69742..2d64c11 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -658,8 +658,6 @@ Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release}
Provides: java%1 = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: java-fonts%1 = %{epoch}:%{version}
-#https://bugzilla.redhat.com/show_bug.cgi?id=1312019
-Provides: /usr/bin/jjs
Obsoletes: java-1.7.0-openjdk%1
Obsoletes: java-1.5.0-gcj%1
@@ -710,6 +708,9 @@ Provides: jce%1 = %{epoch}:%{version}
Provides: jdbc-stdext%1 = 4.1
Provides: java-sasl%1 = %{epoch}:%{version}
+#https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+Provides: /usr/bin/jjs
+
Obsoletes: java-1.7.0-openjdk-headless%1
}
@@ -1865,6 +1866,7 @@ require "copy_jdk_configs.lua"
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
- removed upstreamed patches 519, 520 and 605
- updated to systemtap 3, removed related patches 300 and 301
+- jjs provides moved to headless
* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
commit d102dd99ad4d017c784631caff0927691defd3f0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 25 14:15:52 2016 +0200
Removed dangling patch 605, soundfont patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b40ef08..1a69742 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -903,9 +903,6 @@ Patch203: system-lcms.patch
# PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the
unpack200 binary"
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
-# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux
-# waiting on upstream:
http://mail.openjdk.java.net/pipermail/jdk8u-dev/2016-January/004916.html
-Patch605: soundFontPatch.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
Patch506: pr2842-01.patch
Patch507: pr2842-02.patch
@@ -1248,7 +1245,6 @@ sh %{SOURCE12}
%patch603
%patch601
%patch602
-%patch605
%patch502
%patch504
@@ -1867,7 +1863,7 @@ require "copy_jdk_configs.lua"
- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of
hotspot
- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
-- removed upstreamed patches 519 and 520
+- removed upstreamed patches 519, 520 and 605
- updated to systemtap 3, removed related patches 300 and 301
* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
diff --git a/soundFontPatch.patch b/soundFontPatch.patch
deleted file mode 100644
index 2009642..0000000
--- a/soundFontPatch.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# User omajid
-# Date 1445973555 14400
-# Node ID 3e006ea10d21a7fcf15725c51f2ab7ededce53ab
-# Parent dfeaf40df80032570558c031f37f6630dc729e3f
-8140620: Find and load default.sf2 as the default soundbank on Linux
-Reviewed-by: serb
-
-+++ openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
---- openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
-@@ -671,6 +671,40 @@
- actions.add(new PrivilegedAction<InputStream>() {
- public InputStream run() {
- if (System.getProperties().getProperty("os.name")
-+ .startsWith("Linux")) {
-+
-+ File[] systemSoundFontsDir = new File[] {
-+ /* Arch, Fedora, Mageia */
-+ new File("/usr/share/soundfonts/"),
-+ new File("/usr/local/share/soundfonts/"),
-+ /* Debian, Gentoo, OpenSUSE, Ubuntu */
-+ new File("/usr/share/sounds/sf2/"),
-+ new File("/usr/local/share/sounds/sf2/"),
-+ };
-+
-+ /*
-+ * Look for a default.sf2
-+ */
-+ for (File systemSoundFontDir : systemSoundFontsDir) {
-+ if (systemSoundFontDir.exists()) {
-+ File defaultSoundFont = new File(systemSoundFontDir,
"default.sf2");
-+ if (defaultSoundFont.exists()) {
-+ try {
-+ return new FileInputStream(defaultSoundFont);
-+ } catch (IOException e) {
-+ // continue with lookup
-+ }
-+ }
-+ }
-+ }
-+ }
-+ return null;
-+ }
-+ });
-+
-+ actions.add(new PrivilegedAction<InputStream>() {
-+ public InputStream run() {
-+ if (System.getProperties().getProperty("os.name")
- .startsWith("Windows")) {
- File gm_dls = new File(System.getenv("SystemRoot")
- + "\\system32\\drivers\\gm.dls");
-
-
commit e8a1ee2643e0c63ed7848ac3b59ee6257cde0f44
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 25 14:13:56 2016 +0200
updated to systemtap 3
diff --git a/.gitignore b/.gitignore
index 4b4595f..744712e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,5 +61,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
+/systemtap-tapset-3.1.0.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
diff --git a/bz1204159_java8.patch b/bz1204159_java8.patch
deleted file mode 100644
index 8eda85d..0000000
--- a/bz1204159_java8.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-diff -r 6e357a1fc157 tapset/hotspot.stp.in
---- tapset/hotspot-1.8.0.stp.in Tue Apr 26 18:36:01 2016 +0100
-+++ tapset/hotspot-1.8.0.stp.in Wed Jul 13 14:06:31 2016 -0400
-@@ -141,7 +141,8 @@
- Triggers at the end of the virtual machine initialization.
- Has no arguments.
- */
--probe hotspot.vm_init_end =
-+probe hotspot_vm_init_end = hotspot.vm_init_end8 {}
-+probe hotspot.vm_init_end8 =
- process("@ABS_CLIENT_LIBJVM_SO(a)").mark("vm__init__end"),
- process("@ABS_SERVER_LIBJVM_SO(a)").mark("vm__init__end")
- {
-diff -r 6e357a1fc157 tapset/jstack.stp.in
---- tapset/jstack-1.8.0.stp.in Tue Apr 26 18:36:01 2016 +0100
-+++ tapset/jstack-1.8.0.stp.in Wed Jul 13 14:06:31 2016 -0400
-@@ -45,22 +45,28 @@
- semantic error: failed to retrieve location attribute for local
- */
-
--global CodeCache_heap;
-+/* Resolve multiple installed java versions conflict. */
-+@define _private %( %( systemtap_v >= "3.0" %? private %) %)
-+@define _check_match %(
-+ %( systemtap_v >= "3.0" %? if (pp() !~ "@prefix@") next %)
-+%)
-
--global sp_register;
--global fp_register;
--global pc_register;
--global ptr_size;
--global ptr_mask;
-+@_private global CodeCache_heap;
-
--global constantPool_size;
--global HeapBlock_Header_size;
-+@_private global sp_register;
-+@_private global fp_register;
-+@_private global pc_register;
-+@_private global ptr_size;
-+@_private global ptr_mask;
-
--global vm_inited;
-+@_private global constantPool_size;
-+@_private global HeapBlock_Header_size;
-+
-+@_private global vm_inited;
-
- /* We need to collect some global symbol addresses that cannot be resolved
- in a bare function and vm_init_end seems a good place to use. */
--probe hotspot.vm_init_end
-+probe hotspot.vm_init_end8
- {
- /**
- * The CodeCache class contains the static CodeHeap _heap that
-@@ -116,6 +122,8 @@
-
- function jstack:string()
- {
-+ @_check_match
-+
- // java backtraces can be a lot bigger, but we risk going over MAXACTION.
- // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
- max_depth = 32;
-@@ -125,6 +133,8 @@
-
- function jstack_n:string(max_depth:long)
- {
-+ @_check_match
-+
- // Whether to log the method signatures.
- log_sig = 0;
-
-@@ -139,6 +149,8 @@
-
- function print_jstack()
- {
-+ @_check_match
-+
- // java backtraces can be a lot bigger, but we risk going over MAXACTION.
- // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
- max_depth = 32;
-@@ -148,6 +160,8 @@
-
- function print_jstack_n:string(max_depth:long)
- {
-+ @_check_match
-+
- // Whether to log the method signatures.
- log_sig = 0;
-
-@@ -162,6 +176,8 @@
-
- function jstack_full:string()
- {
-+ @_check_match
-+
- // java backtraces can be a lot bigger, but we risk going over MAXACTION.
- // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
- max_depth = 32;
-@@ -171,6 +187,8 @@
-
- function jstack_full_n:string(max_depth:long)
- {
-+ @_check_match
-+
- // Whether to log the method signatures.
- log_sig = 1;
-
-@@ -185,6 +203,8 @@
-
- function print_jstack_full()
- {
-+ @_check_match
-+
- // java backtraces can be a lot bigger, but we risk going over MAXACTION.
- // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
- max_depth = 32;
-@@ -194,6 +214,8 @@
-
- function print_jstack_full_n:string(max_depth:long)
- {
-+ @_check_match
-+
- // Whether to log the method signatures.
- log_sig = 1;
-
-@@ -209,6 +231,8 @@
- function jstack_call:string(max_depth:long, log_sig:long, log_native:long,
- print_frames:long)
- {
-+ @_check_match
-+
- if (! vm_inited[pid()])
- {
- frame = "<vm-not-inited>";
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9b100a1..b40ef08 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -817,7 +817,7 @@ Source2: README.src
# They are based on code contained in the IcedTea7 project.
# Systemtap tapsets. Zipped up to keep it small.
-Source8: systemtap-tapset.tar.gz
+Source8: systemtap-tapset-3.1.0.tar.xz
# Desktop files. Adapated from IcedTea.
Source9: jconsole.desktop.in
@@ -943,9 +943,6 @@ Patch525: pr1834-rh1022017.patch
Patch529: corba_typo_fix.patch
# Non-OpenJDK fixes
-Patch300: jstack-pr1845.patch
-# PR3090, RH1204159: SystemTap is heavily confused by multiple JDKs
-Patch301: bz1204159_java8.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1281,9 +1278,7 @@ sh %{SOURCE12}
# Extract systemtap tapsets
%if %{with_systemtap}
-tar xzf %{SOURCE8}
-%patch300
-%patch301
+tar -x -I xz -f %{SOURCE8}
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
@@ -1873,6 +1868,7 @@ require "copy_jdk_configs.lua"
- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
- removed upstreamed patches 519 and 520
+- updated to systemtap 3, removed related patches 300 and 301
* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
diff --git a/jstack-pr1845.patch b/jstack-pr1845.patch
deleted file mode 100644
index 5d036ba..0000000
--- a/jstack-pr1845.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-diff -r c728621e76f2 tapset/jstack.stp.in
---- tapset/jstack-1.8.0.stp.in Mon Jun 02 18:41:24 2014 +0100
-+++ tapset/jstack-1.8.0.stp.in Sat Jun 14 00:21:14 2014 +0900
-@@ -45,11 +45,7 @@
- semantic error: failed to retrieve location attribute for local
- */
-
--global Universe_methodKlassObj;
--global Universe_collectedHeap;
--global HeapWordSize;
- global CodeCache_heap;
--global NarrowOopStruct;
-
- global sp_register;
- global fp_register;
-@@ -57,9 +53,8 @@
- global ptr_size;
- global ptr_mask;
-
--global constantPoolOopDesc_size;
-+global constantPool_size;
- global HeapBlock_Header_size;
--global oopDesc_size;
-
- global vm_inited;
-
-@@ -67,26 +62,6 @@
- in a bare function and vm_init_end seems a good place to use. */
- probe hotspot.vm_init_end
- {
-- // The parent/type oop for a methodOop.
-- Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8"
-- %? @var("_methodKlassObj(a)universe.cpp")
-- %: $_methodKlassObj %);
--
-- /**
-- * The Universe class holds some of the interesting statics for
-- * introspection into HotSpot. The CollectedHeap
-- * (Universe::_collectedHeap) is an abstraction of a java heap for Hotspot
-- * it contains a _reserved MemRegion which represents a contigous
-- * region of the address space consisting of HeapWords (which just
-- * have one field member char *i).
-- *
-- * Note that we access it through its "short name" _collectedHeap.
-- */
-- Universe_collectedHeap[pid()] = %( systemtap_v >= "1.8"
-- %? @var("_collectedHeap(a)universe.cpp")
-- %: $_collectedHeap %);
-- HeapWordSize[pid()] = $HeapWordSize;
--
- /**
- * The CodeCache class contains the static CodeHeap _heap that
- * is malloced at the start of the vm run and holds all generated
-@@ -107,17 +82,6 @@
- %? @var("_heap(a)codeCache.cpp")
- %: $_heap %);
-
-- /**
-- * Does target process use CompressedOops ?
-- */
-- NarrowOopStruct[pid()] = 0;
-- %( systemtap_v >= "1.8"
-- %? if (@var("UseCompressedOops(a)globals.cpp"))
-- NarrowOopStruct[pid()] = &@var("_narrow_oop(a)universe.cpp");
-- %: if($UseCompressedOops)
-- NarrowOopStruct[pid()] = $_narrow_oop;
-- %)
--
- // Should really check arch of user space (for 32bit jvm on 64bit kernel).
- %( arch == "i386" %?
- sp_register = "esp";
-@@ -136,22 +100,17 @@
-
- // Pretend we have an array at address zero and take address of second
- // element and we have the size.
-- constantPoolOopDesc_size = &@cast(0, "constantPoolOopDesc")[1];
-+ constantPool_size = &@cast(0, "ConstantPool")[1];
-
- // Really should get from dwarf: @size("HeapBlock::Header"),
@size("oopDesc")
- HeapBlock_Header_size = 2 * ptr_size;
-- oopDesc_size = 2 * ptr_size;
-
- vm_inited[pid()] = 1;
- }
-
- probe hotspot.vm_shutdown
- {
-- delete(Universe_methodKlassObj[pid()]);
-- delete(Universe_collectedHeap[pid()]);
-- delete(HeapWordSize[pid()]);
- delete(CodeCache_heap[pid()]);
-- delete(NarrowOopStruct[pid()]);
- delete(vm_inited[pid()]);
- }
-
-@@ -262,15 +221,7 @@
- return frame;
- }
-
-- // Extract heap and code bounds.
-- heap_start = @cast(Universe_collectedHeap[pid()],
-- "CollectedHeap",
-- "@ABS_SERVER_LIBJVM_SO@")->_reserved->_start;
-- heap_size = HeapWordSize[pid()] * @cast(Universe_collectedHeap[pid()],
-- "CollectedHeap",
--
"@ABS_SERVER_LIBJVM_SO@")->_reserved->_word_size;
-- heap_end = heap_start + heap_size;
--
-+ // Extract code bounds.
- CodeCache_low = @cast(CodeCache_heap[pid()], "CodeHeap",
- "@ABS_SERVER_LIBJVM_SO@")->_memory->_low;
- CodeCache_high = @cast(CodeCache_heap[pid()], "CodeHeap",
-@@ -351,105 +302,69 @@
- // For the interpreter (and other code blobs) it is on the
- // stack relative to the frame pointer.
- if (blob_name == "nmethod")
-- methodOopPtr = @cast(blob, "nmethod",
-+ methodPtr = @cast(blob, "nmethod",
- "@ABS_SERVER_LIBJVM_SO@")->_method
- else
-- methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask
--
-- // Start optimistic. A methodOop is only valid if it was
-- // heap allocated. And if the "type class" oop equals the
-- // Universe::methodKlassObj.
-- if (heap_start > methodOopPtr || methodOopPtr >= heap_end)
-- isMethodOop = 0
-- else
-- {
-- if (NarrowOopStruct[pid()])
-- {
-- methodOopKlass = @cast(methodOopPtr, "methodOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_metadata->_compressed_klass;
-- methodOopKlass = (@cast(NarrowOopStruct[pid()],
-- "NarrowOopStruct",
--
"@ABS_SERVER_LIBJVM_SO@")->_base
-- + (methodOopKlass
-- << @cast(NarrowOopStruct[pid()],
-- "NarrowOopStruct",
--
"@ABS_SERVER_LIBJVM_SO@")->_shift));
-- }
-- else
-- methodOopKlass = @cast(methodOopPtr, "methodOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass;
-+ methodPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask
-
-- isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]);
-- }
-+ // The java class is the holder of the constants (strings)
-+ // that describe the method and signature. This constant pool
-+ // contains symbolic information that describe the properties
-+ // of the class. The indexes for methods and signaturates in
-+ // the constant pool are Symbols that contain utf8
-+ // strings (plus lenghts). (We could also sanity check that
-+ // the tag value is correct [CONSTANT_String = 8]).
-+ // Note that the class name uses '/' instead of '.' as
-+ // package name separator and that the method signature is
-+ // encoded as a method descriptor string. Both of which we
-+ // don't demangle here.
-+ constMethod = @cast(methodPtr, "Method",
-+
"@ABS_SERVER_LIBJVM_SO@")->_constMethod;
-+ constantPool = @cast(constMethod, "ConstMethod",
-+
"@ABS_SERVER_LIBJVM_SO@")->_constants;
-+ constantPool_base = constantPool + constantPool_size;
-+
-+ klass = @cast(constantPool, "ConstantPool",
-+ "@ABS_SERVER_LIBJVM_SO@")->_pool_holder;
-+ klassSymbol = @cast(klass, "Klass",
-+ "@ABS_SERVER_LIBJVM_SO@")->_name;
-+ klassName = &@cast(klassSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
-+ klassLength = @cast(klassSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_length;
-+
-+ methodIndex = @cast(constMethod, "ConstMethod",
-+ "@ABS_SERVER_LIBJVM_SO@")->_name_index;
-+ methodSymbol = user_long(constantPool_base + (methodIndex * ptr_size));
-+ methodName = &@cast(methodSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
-+ methodLength = @cast(methodSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_length;
-
-- if (isMethodOop)
-+ if (log_sig)
- {
-- // The java class is the holder of the constants (strings)
-- // that describe the method and signature. This constant pool
-- // contains symbolic information that describe the properties
-- // of the class. The indexes for methods and signaturates in
-- // the constant pool are Symbols that contain utf8
-- // strings (plus lenghts). (We could also sanity check that
-- // the tag value is correct [CONSTANT_String = 8]).
-- // Note that the class name uses '/' instead of '.'
as
-- // package name separator and that the method signature is
-- // encoded as a method descriptor string. Both of which we
-- // don't demangle here.
-- constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_constants;
-- constantPoolOop_base = constantPoolOopDesc +
constantPoolOopDesc_size;
--
-- klassPtr = @cast(constantPoolOopDesc,
"constantPoolOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_pool_holder;
-- klassSymbol = @cast(klassPtr + oopDesc_size, "Klass",
-- "@ABS_SERVER_LIBJVM_SO@")->_name;
-- klassName = &@cast(klassSymbol, "Symbol",
-- "@ABS_SERVER_LIBJVM_SO@")->_body[0];
-- klassLength = @cast(klassSymbol, "Symbol",
-- "@ABS_SERVER_LIBJVM_SO@")->_length;
--
-- methodIndex = @cast(methodOopPtr, "methodOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index;
-- methodOopDesc = user_long(constantPoolOop_base + (methodIndex *
ptr_size)) - 1;
-- methodName = &@cast(methodOopDesc, "Symbol",
-- "@ABS_SERVER_LIBJVM_SO@")->_body[0];
-- methodLength = @cast(methodOopDesc, "Symbol",
-- "@ABS_SERVER_LIBJVM_SO@")->_length;
--
-- if (log_sig)
-- {
-- sigIndex = @cast(methodOopPtr, "methodOopDesc",
--
"@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index;
-- sigOopDesc = user_long(constantPoolOop_base
-- + (sigIndex * ptr_size)) - 1;
-- sigName = &@cast(sigOopDesc, "Symbol",
--
"@ABS_SERVER_LIBJVM_SO@")->_body[0];
-- sigLength = @cast(sigOopDesc, "Symbol",
--
"@ABS_SERVER_LIBJVM_SO@")->_length;
-- sig = user_string_n(sigName, sigLength);
-- }
-- else
-- sig = "";
--
-- code_name = (log_native
-- ? sprintf("<%s@0x%x>",
-- str_replace(blob_name, " ",
"_"), pc)
-- : "");
--
-- frame = sprintf("%s.%s%s%s",
-- user_string_n(klassName, klassLength),
-- user_string_n(methodName, methodLength),
-- sig, code_name);
-+ sigIndex = @cast(constMethod, "ConstMethod",
-+
"@ABS_SERVER_LIBJVM_SO@")->_signature_index;
-+ sigSymbol = user_long(constantPool_base
-+ + (sigIndex * ptr_size));
-+ sigName = &@cast(sigSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
-+ sigLength = @cast(sigSymbol, "Symbol",
-+ "@ABS_SERVER_LIBJVM_SO@")->_length;
-+ sig = user_string_n(sigName, sigLength);
- }
- else
-- {
-- // This is probably just an internal function, not a java
-- // method, just print the blob_name and continue.
-- // fp is probably still trusted.
-- if (log_native)
-- frame = sprintf("<%s@0x%x>",
-- str_replace(blob_name, " ",
"_"), pc);
-- }
-+ sig = "";
-+
-+ code_name = (log_native
-+ ? sprintf("<%s@0x%x>",
-+ str_replace(blob_name, " ",
"_"), pc)
-+ : "");
-+
-+ frame = sprintf("%s.%s%s%s",
-+ user_string_n(klassName, klassLength),
-+ user_string_n(methodName, methodLength),
-+ sig, code_name);
-
- // We cannot trust the frame pointer of compiled methods.
- // The server (c2) jit compiler uses the fp register.
diff --git a/sources b/sources
index ba27bf9..be169f3 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
+822e321b710defc8f9c8ec97a6f34b55 systemtap-tapset-3.1.0.tar.xz
fd982589a6345c6dd3698256bed45d3d aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
76ebec7a595c567a66b9d15fdc530a56
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
commit 57c769a53968fbd3dcf176b716057a3b5f4a4ece
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 25 14:00:52 2016 +0200
updated to u102
diff --git a/.gitignore b/.gitignore
index 395f29b..4b4595f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,3 +61,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
diff --git a/6961123-pr2972-rh1339740.patch b/6961123-pr2972-rh1339740.patch
deleted file mode 100644
index d880c5f..0000000
--- a/6961123-pr2972-rh1339740.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-# HG changeset patch
-# User omajid
-# Date 1451403643 18000
-# Tue Dec 29 10:40:43 2015 -0500
-# Node ID 0be28a33e12dfc9ae1e4be381530643f691d351a
-# Parent f4c9545cd8a56a5fab74c95de3573623ba2b83c4
-6961123, PR2972: setWMClass fails to null-terminate WM_CLASS string
-Reviewed-by: serb
-
-diff -r f4c9545cd8a5 -r 0be28a33e12d src/solaris/classes/sun/awt/X11/XBaseWindow.java
---- openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Thu Aug 28 05:20:02 2014
-0700
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Tue Dec 29 10:40:43 2015
-0500
-@@ -673,7 +673,7 @@
- XToolkit.awtLock();
- try {
- XAtom xa = XAtom.get(XAtom.XA_WM_CLASS);
-- xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1]);
-+ xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1] + '\0');
- } finally {
- XToolkit.awtUnlock();
- }
diff --git a/8148752-pr2943-rh1330188.patch b/8148752-pr2943-rh1330188.patch
deleted file mode 100644
index d1207d0..0000000
--- a/8148752-pr2943-rh1330188.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-# HG changeset patch
-# User thartmann
-# Date 1455606693 -3600
-# Tue Feb 16 08:11:33 2016 +0100
-# Node ID 7bb48ba4de4fb35c10c526146f65da74a3a16c7a
-# Parent d15bc25b259dcffd2566f90ff09fd263e87e0304
-8148752, PR2943: Compiled StringBuilder code throws StringIndexOutOfBoundsException
-Summary: Fixed handling of long/double MH arguments in
GraphBuilder::try_method_handle_inline().
-Reviewed-by: roland, shade, vlivanov, kvn, twisti
-
-diff -r d15bc25b259d -r 7bb48ba4de4f src/share/vm/opto/callGenerator.cpp
---- openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Wed Apr 20 04:04:43 2016 +0100
-+++ openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Tue Feb 16 08:11:33 2016 +0100
-@@ -829,17 +829,18 @@
- }
- }
- // Cast reference arguments to its type.
-- for (int i = 0; i < signature->count(); i++) {
-+ for (int i = 0, j = 0; i < signature->count(); i++) {
- ciType* t = signature->type_at(i);
- if (t->is_klass()) {
-- Node* arg = kit.argument(receiver_skip + i);
-+ Node* arg = kit.argument(receiver_skip + j);
- const TypeOopPtr* arg_type = arg->bottom_type()->isa_oopptr();
- const Type* sig_type = TypeOopPtr::make_from_klass(t->as_klass());
- if (arg_type != NULL && !arg_type->higher_equal(sig_type)) {
- Node* cast_obj = gvn.transform(new (C) CheckCastPPNode(kit.control(), arg,
sig_type));
-- kit.set_argument(receiver_skip + i, cast_obj);
-+ kit.set_argument(receiver_skip + j, cast_obj);
- }
- }
-+ j += t->size(); // long and double take two slots
- }
-
- // Try to get the most accurate receiver type
-diff -r d15bc25b259d -r 7bb48ba4de4f test/compiler/jsr292/LongReferenceCastingTest.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/hotspot/test/compiler/jsr292/LongReferenceCastingTest.java Tue Feb 16
08:11:33 2016 +0100
-@@ -0,0 +1,75 @@
-+/*
-+ * 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.lang.invoke.*;
-+
-+/**
-+ * @test
-+ * @bug 8148752
-+ * @summary Test correct casting of MH arguments during inlining.
-+ * @run main LongReferenceCastingTest
-+ */
-+public class LongReferenceCastingTest {
-+ static final String MY_STRING = "myString";
-+ static final MethodHandle MH;
-+
-+ static {
-+ try {
-+ MethodHandles.Lookup lookup = MethodHandles.lookup();
-+ MethodType mt = MethodType.methodType(String.class, long.class,
Object.class, String.class);
-+ MH = lookup.findVirtual(LongReferenceCastingTest.class,
"myMethod", mt);
-+ } catch (Exception e) {
-+ throw new Error(e);
-+ }
-+ }
-+
-+ public String myMethod(long l, Object o, String s) {
-+ // The long argument occupies two stack slots, causing C2 to treat it as
-+ // two arguments and casting the fist one two long and the second one to
Object.
-+ // As a result, Object o is casted to String and the o.toString() call is
-+ // inlined as String::toString(). We fail at runtime because 'o' is not
a String.
-+ return o.toString();
-+ }
-+
-+ public String toString() {
-+ return MY_STRING;
-+ }
-+
-+ public static void main(String[] args) throws Exception {
-+ LongReferenceCastingTest test = new LongReferenceCastingTest();
-+ try {
-+ for (int i = 0; i < 20_000; ++i) {
-+ if (!test.invoke().equals(MY_STRING)) {
-+ throw new RuntimeException("Invalid string");
-+ }
-+ }
-+ } catch (Throwable t) {
-+ throw new RuntimeException("Test failed", t);
-+ }
-+ }
-+
-+ public String invoke() throws Throwable {
-+ return (String) MH.invokeExact(this, 0L, (Object)this, MY_STRING);
-+ }
-+}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3922ab7..9b100a1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -170,7 +170,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-jdk8u101-b14
+%global revision aarch64-jdk8u102-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -841,7 +841,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
+Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
# RPM/distribution specific patches
@@ -921,10 +921,6 @@ Patch531: 8157306-pr3121-rh1360863.patch
Patch532: 8162384-pr3122-rh1358661.patch
# Patches upstream and appearing in 8u102
-# S8148752, PR2943, RH1330188: Compiled StringBuilder code throws
StringIndexOutOfBoundsException
-Patch519: 8148752-pr2943-rh1330188.patch
-# S6961123, PR2972, RH1339740: Java application name in GNOME Shell contains funny
characters
-Patch520: 6961123-pr2972-rh1339740.patch
# S8159244, PR3074: Partially initialized string object created by C2's string concat
optimization may escape
Patch527: 8159244-pr3074.patch
@@ -1271,9 +1267,7 @@ sh %{SOURCE12}
%patch516
%patch517
%patch518
-%patch519
%patch400
-%patch520
%patch521
%patch522
%patch523
@@ -1873,6 +1867,13 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Aug 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-1.b14
+- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of
hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
+- removed upstreamed patches 519 and 520
+
* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
- Resolves: rhbz#1358661
diff --git a/sources b/sources
index 17743f3..ba27bf9 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-837e9490d2ffb85644e6b083f8006e7a aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
-40b2e99945101cf8cd6cad5eafc47a82
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
+fd982589a6345c6dd3698256bed45d3d aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz
+76ebec7a595c567a66b9d15fdc530a56
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 1d29611..92534ab 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u101-b14"
+ VERSION="aarch64-jdk8u102-b14"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25"
+ VERSION="aarch64-shenandoah-jdk8u102-b14"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 3e33782eea02c1f36bc49eb07a0fb2dbb765e593
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Aug 2 11:16:47 2016 +0200
Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
- Resolves: rhbz#1358661
- Replace patch for S8157306 with upstream version, documented & applied on all
archs with conditional in patch
- Resolves: rhbz#1360863
diff --git a/8157306-pr3121-rh1360863.patch b/8157306-pr3121-rh1360863.patch
new file mode 100644
index 0000000..8cb69ae
--- /dev/null
+++ b/8157306-pr3121-rh1360863.patch
@@ -0,0 +1,29 @@
+# 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/hotspot-1358661.patch b/8162384-pr3122-rh1358661.patch
similarity index 72%
rename from hotspot-1358661.patch
rename to 8162384-pr3122-rh1358661.patch
index fd986c9..ff38413 100644
--- a/hotspot-1358661.patch
+++ b/8162384-pr3122-rh1358661.patch
@@ -1,6 +1,17 @@
---- openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:42.953343258 +0200
-+++ openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:39.209369543 +0200
-@@ -209,16 +209,22 @@
+# 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) {
@@ -11,7 +22,6 @@
- receiver_method = callee->resolve_invoke(jvms->method()->holder(),
- speculative_receiver_type);
- if (receiver_method == NULL) {
-- speculative_receiver_type = 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
@@ -24,15 +34,16 @@
+ } else {
+ morphism = 1;
+ }
- } else {
-- morphism = 1;
++ } else {
+ // speculation failed before. Use profiling at the call
+ // (could allow bimorphic inlining for instance).
-+ speculative_receiver_type = NULL;
+ speculative_receiver_type = NULL;
+- } else {
+- morphism = 1;
}
}
if (receiver_method == NULL &&
-@@ -255,7 +261,7 @@
+@@ -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))
&&
diff --git a/hotspot-8157306.changeset b/hotspot-8157306.changeset
deleted file mode 100644
index 95f30eb..0000000
--- a/hotspot-8157306.changeset
+++ /dev/null
@@ -1,55 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1466704739 0
-# Thu Jun 23 17:58:59 2016 +0000
-# Node ID 89b3911c92aef18f2fd24ab4a31fbb47954462fa
-# Parent 9febe12cbce4c6aa428a78f6a78906909e2954a4
-8157306: Random infrequent null pointer exceptions in javac
-Reviewed-by: kvn
-
-diff --git openjdk/hotspot/src/share/vm/opto/block.cpp b/src/share/vm/opto/block.cpp
---- openjdk/hotspot/src/share/vm/opto/block.cpp
-+++ openjdk/hotspot/src/share/vm/opto/block.cpp
-@@ -1212,6 +1212,9 @@
- if (j >= 1 && n->is_Mach() &&
n->as_Mach()->ideal_Opcode() == Op_CreateEx) {
- assert(j == 1 || block->get_node(j-1)->is_Phi(), "CreateEx must be
first instruction in block");
- }
-+ if (n->needs_anti_dependence_check()) {
-+ verify_anti_dependences(block, n);
-+ }
- for (uint k = 0; k < n->req(); k++) {
- Node *def = n->in(k);
- if (def && def != n) {
-diff --git a/src/share/vm/opto/block.hpp b/src/share/vm/opto/block.hpp
---- openjdk/hotspot/src/share/vm/opto/block.hpp
-+++ openjdk/hotspot/src/share/vm/opto/block.hpp
-@@ -481,9 +481,9 @@
- MachNode* _goto;
-
- Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false);
-- void verify_anti_dependences(Block* LCA, Node* load) {
-+ void verify_anti_dependences(Block* LCA, Node* load) const {
- assert(LCA == get_block_for_node(load), "should already be scheduled");
-- insert_anti_dependences(LCA, load, true);
-+ const_cast<PhaseCFG*>(this)->insert_anti_dependences(LCA, load, true);
- }
-
- bool move_to_next(Block* bx, uint b_index);
-diff --git a/src/share/vm/opto/lcm.cpp b/src/share/vm/opto/lcm.cpp
---- openjdk/hotspot/src/share/vm/opto/lcm.cpp
-+++ openjdk/hotspot/src/share/vm/opto/lcm.cpp
-@@ -1293,11 +1293,12 @@
- 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);
-+ if (clone->needs_anti_dependence_check()) {
-+ insert_anti_dependences(sb, clone);
-+ }
- }
- }
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c53ddfa..3922ab7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -915,6 +915,10 @@ Patch524: 8158260-pr2991-rh1341258.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
# Patches upstream and appearing in 8u102
# S8148752, PR2943, RH1330188: Compiled StringBuilder code throws
StringIndexOutOfBoundsException
@@ -937,8 +941,6 @@ Patch606: 8154210.patch
Patch201: system-libjpeg.patch
# Local fixes
-Patch531: hotspot-8157306.changeset
-Patch532: hotspot-1358661.patch
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
Patch525: pr1834-rh1022017.patch
# Temporary fix for typo in CORBA security patch
@@ -946,6 +948,7 @@ Patch529: corba_typo_fix.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
+# PR3090, RH1204159: SystemTap is heavily confused by multiple JDKs
Patch301: bz1204159_java8.patch
BuildRequires: autoconf
@@ -1279,9 +1282,7 @@ sh %{SOURCE12}
%patch527
%patch528
%patch529
-%ifarch %{aarch64}
%patch531
-%endif
%patch532
# Extract systemtap tapsets
@@ -1872,6 +1873,12 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
+- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
+- Resolves: rhbz#1358661
+- Replace patch for S8157306 with upstream version, documented & applied on all archs
with conditional in patch
+- Resolves: rhbz#1360863
+
* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-2.b14
- added patch532 hotspot-1358661.patch - to fix performance of bimorphic inlining may be
bypassed by type speculation
- added patch301 bz1204159_java8.patch - to fix systemtap on multiple jdks
commit 700dee4637a1d1d7bda6b598dd2753d92a18a61d
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Jul 28 12:45:10 2016 +0200
added patch532 hotspot-1358661.patch and patch301 bz1204159_java8.patch
diff --git a/bz1204159_java8.patch b/bz1204159_java8.patch
new file mode 100644
index 0000000..8eda85d
--- /dev/null
+++ b/bz1204159_java8.patch
@@ -0,0 +1,136 @@
+diff -r 6e357a1fc157 tapset/hotspot.stp.in
+--- tapset/hotspot-1.8.0.stp.in Tue Apr 26 18:36:01 2016 +0100
++++ tapset/hotspot-1.8.0.stp.in Wed Jul 13 14:06:31 2016 -0400
+@@ -141,7 +141,8 @@
+ Triggers at the end of the virtual machine initialization.
+ Has no arguments.
+ */
+-probe hotspot.vm_init_end =
++probe hotspot_vm_init_end = hotspot.vm_init_end8 {}
++probe hotspot.vm_init_end8 =
+ process("@ABS_CLIENT_LIBJVM_SO(a)").mark("vm__init__end"),
+ process("@ABS_SERVER_LIBJVM_SO(a)").mark("vm__init__end")
+ {
+diff -r 6e357a1fc157 tapset/jstack.stp.in
+--- tapset/jstack-1.8.0.stp.in Tue Apr 26 18:36:01 2016 +0100
++++ tapset/jstack-1.8.0.stp.in Wed Jul 13 14:06:31 2016 -0400
+@@ -45,22 +45,28 @@
+ semantic error: failed to retrieve location attribute for local
+ */
+
+-global CodeCache_heap;
++/* Resolve multiple installed java versions conflict. */
++@define _private %( %( systemtap_v >= "3.0" %? private %) %)
++@define _check_match %(
++ %( systemtap_v >= "3.0" %? if (pp() !~ "@prefix@") next %)
++%)
+
+-global sp_register;
+-global fp_register;
+-global pc_register;
+-global ptr_size;
+-global ptr_mask;
++@_private global CodeCache_heap;
+
+-global constantPool_size;
+-global HeapBlock_Header_size;
++@_private global sp_register;
++@_private global fp_register;
++@_private global pc_register;
++@_private global ptr_size;
++@_private global ptr_mask;
+
+-global vm_inited;
++@_private global constantPool_size;
++@_private global HeapBlock_Header_size;
++
++@_private global vm_inited;
+
+ /* We need to collect some global symbol addresses that cannot be resolved
+ in a bare function and vm_init_end seems a good place to use. */
+-probe hotspot.vm_init_end
++probe hotspot.vm_init_end8
+ {
+ /**
+ * The CodeCache class contains the static CodeHeap _heap that
+@@ -116,6 +122,8 @@
+
+ function jstack:string()
+ {
++ @_check_match
++
+ // java backtraces can be a lot bigger, but we risk going over MAXACTION.
+ // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
+ max_depth = 32;
+@@ -125,6 +133,8 @@
+
+ function jstack_n:string(max_depth:long)
+ {
++ @_check_match
++
+ // Whether to log the method signatures.
+ log_sig = 0;
+
+@@ -139,6 +149,8 @@
+
+ function print_jstack()
+ {
++ @_check_match
++
+ // java backtraces can be a lot bigger, but we risk going over MAXACTION.
+ // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
+ max_depth = 32;
+@@ -148,6 +160,8 @@
+
+ function print_jstack_n:string(max_depth:long)
+ {
++ @_check_match
++
+ // Whether to log the method signatures.
+ log_sig = 0;
+
+@@ -162,6 +176,8 @@
+
+ function jstack_full:string()
+ {
++ @_check_match
++
+ // java backtraces can be a lot bigger, but we risk going over MAXACTION.
+ // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
+ max_depth = 32;
+@@ -171,6 +187,8 @@
+
+ function jstack_full_n:string(max_depth:long)
+ {
++ @_check_match
++
+ // Whether to log the method signatures.
+ log_sig = 1;
+
+@@ -185,6 +203,8 @@
+
+ function print_jstack_full()
+ {
++ @_check_match
++
+ // java backtraces can be a lot bigger, but we risk going over MAXACTION.
+ // 32 frames only gives us ~32 actions per frame (with MAXACTION == 1024).
+ max_depth = 32;
+@@ -194,6 +214,8 @@
+
+ function print_jstack_full_n:string(max_depth:long)
+ {
++ @_check_match
++
+ // Whether to log the method signatures.
+ log_sig = 1;
+
+@@ -209,6 +231,8 @@
+ function jstack_call:string(max_depth:long, log_sig:long, log_native:long,
+ print_frames:long)
+ {
++ @_check_match
++
+ if (! vm_inited[pid()])
+ {
+ frame = "<vm-not-inited>";
diff --git a/hotspot-1358661.patch b/hotspot-1358661.patch
new file mode 100644
index 0000000..fd986c9
--- /dev/null
+++ b/hotspot-1358661.patch
@@ -0,0 +1,43 @@
+--- openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:42.953343258 +0200
++++ openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:39.209369543 +0200
+@@ -209,16 +209,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) {
+- speculative_receiver_type = 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 {
+- morphism = 1;
++ // speculation failed before. Use profiling at the call
++ // (could allow bimorphic inlining for instance).
++ speculative_receiver_type = NULL;
+ }
+ }
+ if (receiver_method == NULL &&
+@@ -255,7 +261,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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3f4ea45..c53ddfa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -938,6 +938,7 @@ Patch201: system-libjpeg.patch
# Local fixes
Patch531: hotspot-8157306.changeset
+Patch532: hotspot-1358661.patch
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
Patch525: pr1834-rh1022017.patch
# Temporary fix for typo in CORBA security patch
@@ -945,6 +946,7 @@ Patch529: corba_typo_fix.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
+Patch301: bz1204159_java8.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1280,11 +1282,13 @@ sh %{SOURCE12}
%ifarch %{aarch64}
%patch531
%endif
+%patch532
# Extract systemtap tapsets
%if %{with_systemtap}
tar xzf %{SOURCE8}
%patch300
+%patch301
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
@@ -1868,6 +1872,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-2.b14
+- added patch532 hotspot-1358661.patch - to fix performance of bimorphic inlining may be
bypassed by type speculation
+- added patch301 bz1204159_java8.patch - to fix systemtap on multiple jdks
+
* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-1.b14
- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u)
- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from
aarch64-port/jdk8u-shenandoah) of hotspot
commit da1227ef56d251bf99d94077fc65aa83c92e7447
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Jul 25 17:52:04 2016 +0200
Updated to security u101-b14
diff --git a/.gitignore b/.gitignore
index fb9fcf0..395f29b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,3 +59,5 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
diff --git a/6260348-pr3066.patch b/6260348-pr3066.patch
new file mode 100644
index 0000000..06be502
--- /dev/null
+++ b/6260348-pr3066.patch
@@ -0,0 +1,150 @@
+# HG changeset patch
+# User ssadetsky
+# Date 1467220169 -3600
+# Wed Jun 29 18:09:29 2016 +0100
+# Node ID 9fffaa63c49d93bff70b96af9a86b7635bce44be
+# Parent d0462c26152fc8bd5f79db7f1670777e807ef2b3
+6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+Reviewed-by: alexsch, azvegint
+
+diff -r d0462c26152f -r 9fffaa63c49d
src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
+--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Tue Jun 28
19:44:50 2016 +0100
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Wed Jun 29
18:09:29 2016 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2015, 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
+@@ -93,7 +93,9 @@
+ */
+ static enum Settings {
+ GTK_FONT_NAME,
+- GTK_ICON_SIZES
++ GTK_ICON_SIZES,
++ GTK_CURSOR_BLINK,
++ GTK_CURSOR_BLINK_TIME
+ }
+
+ /* Custom regions are needed for representing regions that don't exist
+diff -r d0462c26152f -r 9fffaa63c49d
src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
+--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Tue Jun
28 19:44:50 2016 +0100
++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jun
29 18:09:29 2016 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2002, 2015, 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
+@@ -371,7 +371,17 @@
+ int vProgWidth = 22 - (progXThickness * 2);
+ int vProgHeight = 80 - (progYThickness * 2);
+
+- Integer caretBlinkRate = Integer.valueOf(500);
++ Integer caretBlinkRate;
++ if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting(
++ GTKEngine.Settings.GTK_CURSOR_BLINK))) {
++ caretBlinkRate = Integer.valueOf(0);
++ } else {
++ caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting(
++ GTKEngine.Settings.GTK_CURSOR_BLINK_TIME);
++ if (caretBlinkRate == null) {
++ caretBlinkRate = Integer.valueOf(500);
++ }
++ }
+ Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0);
+
+ Double defaultCaretAspectRatio = new Double(0.025);
+diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.c
+--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jun 28 19:44:50 2016
+0100
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Wed Jun 29 18:09:29 2016
+0100
+@@ -1316,9 +1316,6 @@
+ {
+ result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] =
+ (*fp_gtk_entry_new)();
+-
+- GtkSettings* settings = fp_gtk_widget_get_settings(result);
+- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+ }
+ result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE];
+ break;
+@@ -1363,10 +1360,6 @@
+ {
+ gtk2_widgets[_GTK_ENTRY_TYPE] =
+ (*fp_gtk_entry_new)();
+-
+- GtkSettings* settings =
+- fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]);
+- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+ }
+ result = gtk2_widgets[_GTK_ENTRY_TYPE];
+ break;
+@@ -1558,9 +1551,6 @@
+ {
+ result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] =
+ (*fp_gtk_spin_button_new)(NULL, 0, 0);
+-
+- GtkSettings* settings = fp_gtk_widget_get_settings(result);
+- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL);
+ }
+ result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE];
+ break;
+@@ -2510,14 +2500,20 @@
+
+ return result;
+ }
+-/*
++
+ jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key)
+ {
+- gint intval = NULL;
+-
++ gint intval = NULL;
+ (*fp_g_object_get)(settings, key, &intval, NULL);
+ return create_Integer(env, intval);
+-}*/
++}
++
++jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, const gchar* key)
++{
++ gint intval = NULL;
++ (*fp_g_object_get)(settings, key, &intval, NULL);
++ return create_Boolean(env, intval);
++}
+
+ jobject gtk2_get_setting(JNIEnv *env, Setting property)
+ {
+@@ -2529,6 +2525,10 @@
+ return get_string_property(env, settings, "gtk-font-name");
+ case GTK_ICON_SIZES:
+ return get_string_property(env, settings, "gtk-icon-sizes");
++ case GTK_CURSOR_BLINK:
++ return get_boolean_property(env, settings, "gtk-cursor-blink");
++ case GTK_CURSOR_BLINK_TIME:
++ return get_integer_property(env, settings,
"gtk-cursor-blink-time");
+ }
+
+ return NULL;
+diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.h
+--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Tue Jun 28 19:44:50 2016
+0100
++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Wed Jun 29 18:09:29 2016
+0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2015, 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
+@@ -140,7 +140,9 @@
+ typedef enum _Setting
+ {
+ GTK_FONT_NAME,
+- GTK_ICON_SIZES
++ GTK_ICON_SIZES,
++ GTK_CURSOR_BLINK,
++ GTK_CURSOR_BLINK_TIME
+ } Setting;
+
+ /* GTK types, here to eliminate need for GTK headers at compile time */
diff --git a/jdk8-archivedJavadoc.patch b/8154313.patch
similarity index 100%
rename from jdk8-archivedJavadoc.patch
rename to 8154313.patch
diff --git a/8158260-pr2991-rh1341258.patch b/8158260-pr2991-rh1341258.patch
new file mode 100644
index 0000000..dae9509
--- /dev/null
+++ b/8158260-pr2991-rh1341258.patch
@@ -0,0 +1,32 @@
+# 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(a)linux.vnet.ibm.com, horii(a)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/8159244-pr3074.patch b/8159244-pr3074.patch
new file mode 100644
index 0000000..94ba21b
--- /dev/null
+++ b/8159244-pr3074.patch
@@ -0,0 +1,115 @@
+# 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/corba_typo_fix.patch b/corba_typo_fix.patch
new file mode 100644
index 0000000..9756a8a
--- /dev/null
+++ b/corba_typo_fix.patch
@@ -0,0 +1,24 @@
+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/hotspot-8157306.changeset b/hotspot-8157306.changeset
new file mode 100644
index 0000000..95f30eb
--- /dev/null
+++ b/hotspot-8157306.changeset
@@ -0,0 +1,55 @@
+# HG changeset patch
+# User aph
+# Date 1466704739 0
+# Thu Jun 23 17:58:59 2016 +0000
+# Node ID 89b3911c92aef18f2fd24ab4a31fbb47954462fa
+# Parent 9febe12cbce4c6aa428a78f6a78906909e2954a4
+8157306: Random infrequent null pointer exceptions in javac
+Reviewed-by: kvn
+
+diff --git openjdk/hotspot/src/share/vm/opto/block.cpp b/src/share/vm/opto/block.cpp
+--- openjdk/hotspot/src/share/vm/opto/block.cpp
++++ openjdk/hotspot/src/share/vm/opto/block.cpp
+@@ -1212,6 +1212,9 @@
+ if (j >= 1 && n->is_Mach() &&
n->as_Mach()->ideal_Opcode() == Op_CreateEx) {
+ assert(j == 1 || block->get_node(j-1)->is_Phi(), "CreateEx must be
first instruction in block");
+ }
++ if (n->needs_anti_dependence_check()) {
++ verify_anti_dependences(block, n);
++ }
+ for (uint k = 0; k < n->req(); k++) {
+ Node *def = n->in(k);
+ if (def && def != n) {
+diff --git a/src/share/vm/opto/block.hpp b/src/share/vm/opto/block.hpp
+--- openjdk/hotspot/src/share/vm/opto/block.hpp
++++ openjdk/hotspot/src/share/vm/opto/block.hpp
+@@ -481,9 +481,9 @@
+ MachNode* _goto;
+
+ Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false);
+- void verify_anti_dependences(Block* LCA, Node* load) {
++ void verify_anti_dependences(Block* LCA, Node* load) const {
+ assert(LCA == get_block_for_node(load), "should already be scheduled");
+- insert_anti_dependences(LCA, load, true);
++ const_cast<PhaseCFG*>(this)->insert_anti_dependences(LCA, load, true);
+ }
+
+ bool move_to_next(Block* bx, uint b_index);
+diff --git a/src/share/vm/opto/lcm.cpp b/src/share/vm/opto/lcm.cpp
+--- openjdk/hotspot/src/share/vm/opto/lcm.cpp
++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp
+@@ -1293,11 +1293,12 @@
+ 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);
++ if (clone->needs_anti_dependence_check()) {
++ insert_anti_dependences(sb, clone);
++ }
+ }
+ }
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7cf1d4d..3f4ea45 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -170,7 +170,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-jdk8u92-b14
+%global revision aarch64-jdk8u101-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -178,7 +178,7 @@
# eg jdk8u60-b27 -> b27
%global buildver %(VERSION=%{revision}; echo ${VERSION##*-})
# priority must be 7 digits in total. The expression is workarounding tip
-%global priority %(TIP=18000%{updatever}; echo ${TIP/tip/99})
+%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
%global javaver 1.8.0
@@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -805,7 +805,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-jdk8u92-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
+# VERSION=aarch64-jdk8u101-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
@@ -841,7 +841,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
+Source999:
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
# RPM/distribution specific patches
@@ -878,6 +878,8 @@ Patch508: rh1176206-jdk.patch
Patch509: rh1176206-root.patch
# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
Patch523: pr2974-rh1337583.patch
+# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
+Patch528: pr3083-rh1346460.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -886,8 +888,6 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
-# PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in JITed code
-Patch524: pr2991-rh1341258.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -909,12 +909,20 @@ Patch605: soundFontPatch.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
Patch506: pr2842-01.patch
Patch507: pr2842-02.patch
+# S8158260, PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in
JITed code
+Patch524: 8158260-pr2991-rh1341258.patch
+# S8154313: Generated javadoc scattered all over the place
+Patch400: 8154313.patch
+# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+Patch526: 6260348-pr3066.patch
# Patches upstream and appearing in 8u102
# S8148752, PR2943, RH1330188: Compiled StringBuilder code throws
StringIndexOutOfBoundsException
Patch519: 8148752-pr2943-rh1330188.patch
# S6961123, PR2972, RH1339740: Java application name in GNOME Shell contains funny
characters
Patch520: 6961123-pr2972-rh1339740.patch
+# 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
@@ -929,10 +937,11 @@ Patch606: 8154210.patch
Patch201: system-libjpeg.patch
# Local fixes
-# see
http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread
-Patch400: jdk8-archivedJavadoc.patch
+Patch531: hotspot-8157306.changeset
# 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
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -1264,6 +1273,13 @@ sh %{SOURCE12}
%patch522
%patch523
%patch525
+%patch526
+%patch527
+%patch528
+%patch529
+%ifarch %{aarch64}
+%patch531
+%endif
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1852,6 +1868,16 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-1.b14
+- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
as new sources for hotspot
+- priority lowered for ine zero digit, tip moved to 999
+- added 6260348-pr3066.patch, pr3083-rh1346460.patch, 8159244-pr3074.patch,
corba_typo_fix.patch
+renamed: jdk8-archivedJavadoc.patch -> 8154313.patch, pr2991-rh1341258.patch ->
8158260-pr2991-rh1341258.patch
+- not added 8147771-additional_hunk.patch, already in b14
+
* Tue Jul 12 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-5.b14
- added Provides: /usr/bin/jjs
diff --git a/pr2991-rh1341258.patch b/pr2991-rh1341258.patch
deleted file mode 100644
index f13b388..0000000
--- a/pr2991-rh1341258.patch
+++ /dev/null
@@ -1,248 +0,0 @@
-diff -r 3fc29347b27f 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 Thu Jun 02 17:36:55 2016 +0100
-@@ -2516,8 +2516,13 @@
- MacroAssembler _masm(&cbuf);
- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
- // Operand 'ds' requires 4-alignment.
-- assert((Idisp & 0x3) == 0, "unaligned offset");
-- __ ld($dst$$Register, Idisp, $mem$$base$$Register);
-+ if (Idisp & 0x3) {
-+ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
-+ __ ld($dst$$Register, 0, $dst$$Register);
-+ } else {
-+ __ ld($dst$$Register, Idisp, $mem$$base$$Register);
-+ __ nop();
-+ }
- %}
-
- // Load acquire.
-@@ -2526,11 +2531,30 @@
- MacroAssembler _masm(&cbuf);
- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
- // Operand 'ds' requires 4-alignment.
-- assert((Idisp & 0x3) == 0, "unaligned offset");
-- __ ld($dst$$Register, Idisp, $mem$$base$$Register);
-+ if (Idisp & 0x3) {
-+ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
-+ __ ld($dst$$Register, 0, $dst$$Register);
-+ } else {
-+ __ ld($dst$$Register, Idisp, $mem$$base$$Register);
-+ __ nop();
-+ }
- __ twi_0($dst$$Register);
- __ isync();
- %}
-+
-+ enc_class enc_lwa(iRegLdst dst, memoryAlg4 mem) %{
-+ // TODO: PPC port $archOpcode(ppc64Opcode_ld);
-+ MacroAssembler _masm(&cbuf);
-+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
-+ // Operand 'ds' requires 4-alignment.
-+ if (Idisp & 0x3) {
-+ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
-+ __ lwa($dst$$Register, 0, $dst$$Register);
-+ } else {
-+ __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
-+ __ nop();
-+ }
-+ %}
-
- enc_class enc_lfd(RegF dst, memory mem) %{
- // TODO: PPC port $archOpcode(ppc64Opcode_lfd);
-@@ -2857,8 +2881,13 @@
- MacroAssembler _masm(&cbuf);
- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
- // Operand 'ds' requires 4-alignment.
-- assert((Idisp & 0x3) == 0, "unaligned offset");
-- __ std($src$$Register, Idisp, $mem$$base$$Register);
-+ if (Idisp & 0x3) {
-+ __ addi($src$$Register, $mem$$base$$Register, Idisp);
-+ __ std($src$$Register, Idisp, $src$$Register);
-+ } else {
-+ __ std($src$$Register, Idisp, $mem$$base$$Register);
-+ __ nop();
-+ }
- %}
-
- enc_class enc_stfs(RegF src, memory mem) %{
-@@ -5467,12 +5496,8 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LWA $dst, $mem \t// loadI2L" %}
-- size(4);
-- ins_encode %{
-- // TODO: PPC port $archOpcode(ppc64Opcode_lwa);
-- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
-- __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
-- %}
-+ size(8);
-+ ins_encode( enc_lwa(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-
-@@ -5484,11 +5509,18 @@
- format %{ "LWA $dst, $mem \t// loadI2L acquire"
- "TWI $dst\n\t"
- "ISYNC" %}
-- size(12);
-+ size(16);
- ins_encode %{
- // TODO: PPC port $archOpcode(ppc64Opcode_lwa);
- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
-- __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
-+ // Operand 'ds' requires 4-alignment.
-+ if (Idisp & 0x3) {
-+ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
-+ __ lwa($dst$$Register, 0, $dst$$Register);
-+ } else {
-+ __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
-+ __ nop();
-+ }
- __ twi_0($dst$$Register);
- __ isync();
- %}
-@@ -5502,7 +5534,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// long" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5515,7 +5547,7 @@
- format %{ "LD $dst, $mem \t// long acquire\n\t"
- "TWI $dst\n\t"
- "ISYNC" %}
-- size(12);
-+ size(16);
- ins_encode( enc_ld_ac(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5527,7 +5559,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// unaligned long" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5541,7 +5573,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// load 8-byte Vector" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5601,7 +5633,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// ptr" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5614,7 +5646,7 @@
- format %{ "LD $dst, $mem \t// ptr acquire\n\t"
- "TWI $dst\n\t"
- "ISYNC" %}
-- size(12);
-+ size(16);
- ins_encode( enc_ld_ac(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5626,7 +5658,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// ptr + p2x" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -5648,7 +5680,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $mem \t// klass ptr" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -6521,7 +6553,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "STD $src, $mem \t// long" %}
-- size(4);
-+ size(8);
- ins_encode( enc_std(src, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -6535,7 +6567,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "STD $mem, $src \t// packed8B" %}
-- size(4);
-+ size(8);
- ins_encode( enc_std(src, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -6568,7 +6600,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "STD $src, $dst \t// ptr" %}
-- size(4);
-+ size(8);
- ins_encode( enc_std(src, dst) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -7521,7 +7553,7 @@
- format %{ "LD $dst, $mem \t// loadPLocked\n\t"
- "TWI $dst\n\t"
- "ISYNC" %}
-- size(12);
-+ size(16);
- ins_encode( enc_ld_ac(dst, mem) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -9287,7 +9319,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "LD $dst, $src \t// long" %}
-- size(4);
-+ size(8);
- ins_encode( enc_ld(dst, src) );
- ins_pipe(pipe_class_memory);
- %}
-@@ -9298,7 +9330,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "STD $src, $dst \t// long" %}
-- size(4);
-+ size(8);
- ins_encode( enc_std(src, dst) ); // rs=rt
- ins_pipe(pipe_class_memory);
- %}
-@@ -9372,7 +9404,7 @@
- instruct moveD2L_stack_reg(iRegLdst dst, stackSlotD src) %{
- match(Set dst (MoveD2L src));
- ins_cost(MEMORY_REF_COST);
-- size(4);
-+ size(8);
- format %{ "LD $dst, $src \t// MoveD2L" %}
- ins_encode( enc_ld(dst, src) );
- ins_pipe(pipe_class_memory);
-@@ -9407,7 +9439,7 @@
- ins_cost(MEMORY_REF_COST);
-
- format %{ "STD $src, $dst \t// MoveL2D" %}
-- size(4);
-+ size(8);
- ins_encode( enc_std(src, dst) );
- ins_pipe(pipe_class_memory);
- %}
diff --git a/pr3083-rh1346460.patch b/pr3083-rh1346460.patch
new file mode 100644
index 0000000..d44ed1d
--- /dev/null
+++ b/pr3083-rh1346460.patch
@@ -0,0 +1,152 @@
+# HG changeset patch
+# User andrew
+# Date 1467652889 -3600
+# Mon Jul 04 18:21:29 2016 +0100
+# Node ID a4541d1d8609cadb08d3e31b40b9184ff32dd6c3
+# Parent bc6eab2038c603afb2eb2b4644f3b900c8fd0c46
+PR3083, RH1346460: Regression in SSL debug output without an ECC provider
+Summary: Return null rather than throwing an exception when there's no ECC provider.
+
+diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/Debug.java
+--- openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 17:08:12 2016
+0100
++++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 18:21:29 2016
+0100
+@@ -73,6 +73,7 @@
+ System.err.println("certpath PKIX CertPathBuilder and");
+ System.err.println(" CertPathValidator debugging");
+ System.err.println("combiner SubjectDomainCombiner debugging");
++ System.err.println("ecc Elliptic Curve Cryptography
debugging");
+ System.err.println("gssloginconfig");
+ System.err.println(" GSS LoginConfigImpl debugging");
+ System.err.println("configfile JAAS ConfigFile loading");
+diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/ECUtil.java
+--- openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 17:08:12 2016
+0100
++++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 18:21:29 2016
+0100
+@@ -41,6 +41,9 @@
+
+ public class ECUtil {
+
++ /* Are we debugging ? */
++ private static final Debug debug = Debug.getInstance("ecc");
++
+ // Used by SunPKCS11 and SunJSSE.
+ public static ECPoint decodePoint(byte[] data, EllipticCurve curve)
+ throws IOException {
+@@ -90,6 +93,10 @@
+ }
+
+ private static AlgorithmParameters getECParameters(Provider p) {
++ return getECParameters(p, false);
++ }
++
++ private static AlgorithmParameters getECParameters(Provider p, boolean
throwException) {
+ try {
+ if (p != null) {
+ return AlgorithmParameters.getInstance("EC", p);
+@@ -97,13 +104,21 @@
+
+ return AlgorithmParameters.getInstance("EC");
+ } catch (NoSuchAlgorithmException nsae) {
+- throw new RuntimeException(nsae);
++ if (throwException) {
++ throw new RuntimeException(nsae);
++ } else {
++ // ECC provider is optional so just return null
++ if (debug != null) {
++ debug.println("Provider unavailable: " + nsae);
++ }
++ return null;
++ }
+ }
+ }
+
+ public static byte[] encodeECParameterSpec(Provider p,
+ ECParameterSpec spec) {
+- AlgorithmParameters parameters = getECParameters(p);
++ AlgorithmParameters parameters = getECParameters(p, true);
+
+ try {
+ parameters.init(spec);
+@@ -122,11 +137,16 @@
+ public static ECParameterSpec getECParameterSpec(Provider p,
+ ECParameterSpec spec) {
+ AlgorithmParameters parameters = getECParameters(p);
++ if (parameters == null)
++ return null;
+
+ try {
+ parameters.init(spec);
+ return parameters.getParameterSpec(ECParameterSpec.class);
+ } catch (InvalidParameterSpecException ipse) {
++ if (debug != null) {
++ debug.println("Invalid parameter specification: " + ipse);
++ }
+ return null;
+ }
+ }
+@@ -135,34 +155,49 @@
+ byte[] params)
+ throws IOException {
+ AlgorithmParameters parameters = getECParameters(p);
++ if (parameters == null)
++ return null;
+
+ parameters.init(params);
+
+ try {
+ return parameters.getParameterSpec(ECParameterSpec.class);
+ } catch (InvalidParameterSpecException ipse) {
++ if (debug != null) {
++ debug.println("Invalid parameter specification: " + ipse);
++ }
+ return null;
+ }
+ }
+
+ public static ECParameterSpec getECParameterSpec(Provider p, String name) {
+ AlgorithmParameters parameters = getECParameters(p);
++ if (parameters == null)
++ return null;
+
+ try {
+ parameters.init(new ECGenParameterSpec(name));
+ return parameters.getParameterSpec(ECParameterSpec.class);
+ } catch (InvalidParameterSpecException ipse) {
++ if (debug != null) {
++ debug.println("Invalid parameter specification: " + ipse);
++ }
+ return null;
+ }
+ }
+
+ public static ECParameterSpec getECParameterSpec(Provider p, int keySize) {
+ AlgorithmParameters parameters = getECParameters(p);
++ if (parameters == null)
++ return null;
+
+ try {
+ parameters.init(new ECKeySizeParameterSpec(keySize));
+ return parameters.getParameterSpec(ECParameterSpec.class);
+ } catch (InvalidParameterSpecException ipse) {
++ if (debug != null) {
++ debug.println("Invalid parameter specification: " + ipse);
++ }
+ return null;
+ }
+
+@@ -171,11 +206,16 @@
+ public static String getCurveName(Provider p, ECParameterSpec spec) {
+ ECGenParameterSpec nameSpec;
+ AlgorithmParameters parameters = getECParameters(p);
++ if (parameters == null)
++ return null;
+
+ try {
+ parameters.init(spec);
+ nameSpec = parameters.getParameterSpec(ECGenParameterSpec.class);
+ } catch (InvalidParameterSpecException ipse) {
++ if (debug != null) {
++ debug.println("Invalid parameter specification: " + ipse);
++ }
+ return null;
+ }
+
diff --git a/sources b/sources
index 63c6b5a..17743f3 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-aa905556a4feff9164dba5d0616775ff aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz
-88891d2571519b45e65abf9ab8402104
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
+837e9490d2ffb85644e6b083f8006e7a aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz
+40b2e99945101cf8cd6cad5eafc47a82
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 149848e..1d29611 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u92-b14"
+ VERSION="aarch64-jdk8u101-b14"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u92-b14"
+ VERSION="aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit d0dfa9547e3e458599cce7a6ead733166803b45f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jul 12 16:03:32 2016 +0200
added Provides: /usr/bin/jjs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e62d3eb..7cf1d4d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -658,6 +658,8 @@ Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release}
Provides: java%1 = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: java-fonts%1 = %{epoch}:%{version}
+#https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+Provides: /usr/bin/jjs
Obsoletes: java-1.7.0-openjdk%1
Obsoletes: java-1.5.0-gcj%1
@@ -783,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1850,6 +1852,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jul 12 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-5.b14
+- added Provides: /usr/bin/jjs
+
* Tue Jun 21 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-2.b14
- family restricted by arch
commit fe677160d1792539279bffeb5a7a7ce3c173afa4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 23 17:34:39 2016 +0200
bumped release for testing
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fe5c643..e62d3eb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
commit 527e62b0c79bc829f367fba46cdc2c5267b25f37
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 23 11:57:07 2016 +0200
bumped release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 81dbde4..fe5c643 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
commit ad71d9eb993b5de947e9b286e23311f65899ad14
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jun 23 11:46:51 2016 +0200
noarch-packages(javadocs)'s family made archless again to keep javadocs as noarch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ad978cf..81dbde4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -485,7 +485,7 @@ fi
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
- $PRIORITY --family %{name}.%{_arch}
+ $PRIORITY --family %{name}
exit 0
}
@@ -503,7 +503,7 @@ fi
alternatives \\
--install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
\\
- $PRIORITY --family %{name}.%{_arch}
+ $PRIORITY --family %{name}
exit 0
}
commit 5f551a7e60b9148d85be1cedc4b110241e8bc64d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 22 11:08:23 2016 +0200
family restricted by arch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4895367..ad978cf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -268,7 +268,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family %{name} \\
+ --install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\
--slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
@@ -307,12 +307,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/jre-"$X" \\
- jre_"$X" %{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name} \\
+ jre_"$X" %{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name}.%{_arch} \\
--slave %{_jvmjardir}/jre-"$X" \\
jre_"$X"_exports %{_jvmdir}/%{jredir %%1}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name} \\
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name}.%{_arch} \\
--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -350,7 +350,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY --family %{name} \\
+ --install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
--slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
@@ -443,12 +443,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/java-"$X" \\
- java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name} \\
+ java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name}.%{_arch}
\\
--slave %{_jvmjardir}/java-"$X" \\
java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name} \\
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family
%{name}.%{_arch} \\
--slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -485,7 +485,7 @@ fi
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{name}.%{_arch}
exit 0
}
@@ -503,7 +503,7 @@ fi
alternatives \\
--install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
\\
- $PRIORITY --family %{name}
+ $PRIORITY --family %{name}.%{_arch}
exit 0
}
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1850,6 +1850,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jun 21 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-2.b14
+- family restricted by arch
+
* Tue Jun 07 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-1.b14
- updated to u92
- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch,
criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
commit 418a52c266ffb06112ec844a9af8098573b1bd9f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 8 19:11:04 2016 +0200
Finished updtae to u92, added many known regression fixes
diff --git a/6961123-pr2972-rh1339740.patch b/6961123-pr2972-rh1339740.patch
new file mode 100644
index 0000000..d880c5f
--- /dev/null
+++ b/6961123-pr2972-rh1339740.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User omajid
+# Date 1451403643 18000
+# Tue Dec 29 10:40:43 2015 -0500
+# Node ID 0be28a33e12dfc9ae1e4be381530643f691d351a
+# Parent f4c9545cd8a56a5fab74c95de3573623ba2b83c4
+6961123, PR2972: setWMClass fails to null-terminate WM_CLASS string
+Reviewed-by: serb
+
+diff -r f4c9545cd8a5 -r 0be28a33e12d src/solaris/classes/sun/awt/X11/XBaseWindow.java
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Thu Aug 28 05:20:02 2014
-0700
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java Tue Dec 29 10:40:43 2015
-0500
+@@ -673,7 +673,7 @@
+ XToolkit.awtLock();
+ try {
+ XAtom xa = XAtom.get(XAtom.XA_WM_CLASS);
+- xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1]);
++ xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1] + '\0');
+ } finally {
+ XToolkit.awtUnlock();
+ }
diff --git a/8044762-pr2960.patch b/8044762-pr2960.patch
new file mode 100644
index 0000000..af5b606
--- /dev/null
+++ b/8044762-pr2960.patch
@@ -0,0 +1,45 @@
+# 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/jdwpCrash.abrt.patch b/8049226-pr2960.patch
similarity index 68%
rename from jdwpCrash.abrt.patch
rename to 8049226-pr2960.patch
index 9ff2590..0f6bdf8 100644
--- a/jdwpCrash.abrt.patch
+++ b/8049226-pr2960.patch
@@ -1,56 +1,14 @@
# HG changeset patch
# User dsamersoff
-# Date 1403087398 25200
-# Node ID 7eb9656224049bee9ca32cca8217fb12e8686b76
-# Parent 66c61047f119f2919f4087f49189ee7171e7205d
-8044762: com/sun/jdi/OptionTest.java test time out
-Summary: gdata could be NULL in debugInit_exit
-Reviewed-by: dcubed
-# HG changeset patch
-# User dsamersoff
# Date 1409228402 25200
-# Node ID 66199a53c7f9b21032666a7e3655daab408d9881
-# Parent 7eb9656224049bee9ca32cca8217fb12e8686b76
-8049226: com/sun/jdi/OptionTest.java test times out again
+# 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 66c61047f119 -r 7eb965622404 src/share/back/debugInit.c
---- openjdk/jdk/src/share/back/debugInit.c Mon May 16 09:54:50 2016 +0300
-+++ 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 -r 7eb965622404 -r 66199a53c7f9 src/share/back/debugInit.c
+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 @@
@@ -139,7 +97,7 @@ diff -r 7eb965622404 -r 66199a53c7f9 src/share/back/debugInit.c
+ // Last chance to die, this kills the entire process.
+ forceExit(EXIT_JVMTI_ERROR);
}
-diff -r 7eb965622404 -r 66199a53c7f9 src/share/back/log_messages.c
+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 @@
@@ -151,7 +109,7 @@ diff -r 7eb965622404 -r 66199a53c7f9 src/share/back/log_messages.c
{
#ifdef JDWP_LOGGING
MUTEX_LOCK(my_mutex);
-diff -r 7eb965622404 -r 66199a53c7f9 src/share/back/log_messages.h
+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 @@
@@ -163,4 +121,3 @@ diff -r 7eb965622404 -r 66199a53c7f9 src/share/back/log_messages.h
#define LOG_NULL ((void)0)
-
diff --git a/8148752-pr2943-rh1330188.patch b/8148752-pr2943-rh1330188.patch
new file mode 100644
index 0000000..d1207d0
--- /dev/null
+++ b/8148752-pr2943-rh1330188.patch
@@ -0,0 +1,114 @@
+# HG changeset patch
+# User thartmann
+# Date 1455606693 -3600
+# Tue Feb 16 08:11:33 2016 +0100
+# Node ID 7bb48ba4de4fb35c10c526146f65da74a3a16c7a
+# Parent d15bc25b259dcffd2566f90ff09fd263e87e0304
+8148752, PR2943: Compiled StringBuilder code throws StringIndexOutOfBoundsException
+Summary: Fixed handling of long/double MH arguments in
GraphBuilder::try_method_handle_inline().
+Reviewed-by: roland, shade, vlivanov, kvn, twisti
+
+diff -r d15bc25b259d -r 7bb48ba4de4f src/share/vm/opto/callGenerator.cpp
+--- openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Wed Apr 20 04:04:43 2016 +0100
++++ openjdk/hotspot/src/share/vm/opto/callGenerator.cpp Tue Feb 16 08:11:33 2016 +0100
+@@ -829,17 +829,18 @@
+ }
+ }
+ // Cast reference arguments to its type.
+- for (int i = 0; i < signature->count(); i++) {
++ for (int i = 0, j = 0; i < signature->count(); i++) {
+ ciType* t = signature->type_at(i);
+ if (t->is_klass()) {
+- Node* arg = kit.argument(receiver_skip + i);
++ Node* arg = kit.argument(receiver_skip + j);
+ const TypeOopPtr* arg_type = arg->bottom_type()->isa_oopptr();
+ const Type* sig_type = TypeOopPtr::make_from_klass(t->as_klass());
+ if (arg_type != NULL && !arg_type->higher_equal(sig_type)) {
+ Node* cast_obj = gvn.transform(new (C) CheckCastPPNode(kit.control(), arg,
sig_type));
+- kit.set_argument(receiver_skip + i, cast_obj);
++ kit.set_argument(receiver_skip + j, cast_obj);
+ }
+ }
++ j += t->size(); // long and double take two slots
+ }
+
+ // Try to get the most accurate receiver type
+diff -r d15bc25b259d -r 7bb48ba4de4f test/compiler/jsr292/LongReferenceCastingTest.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/jsr292/LongReferenceCastingTest.java Tue Feb 16
08:11:33 2016 +0100
+@@ -0,0 +1,75 @@
++/*
++ * 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.lang.invoke.*;
++
++/**
++ * @test
++ * @bug 8148752
++ * @summary Test correct casting of MH arguments during inlining.
++ * @run main LongReferenceCastingTest
++ */
++public class LongReferenceCastingTest {
++ static final String MY_STRING = "myString";
++ static final MethodHandle MH;
++
++ static {
++ try {
++ MethodHandles.Lookup lookup = MethodHandles.lookup();
++ MethodType mt = MethodType.methodType(String.class, long.class,
Object.class, String.class);
++ MH = lookup.findVirtual(LongReferenceCastingTest.class,
"myMethod", mt);
++ } catch (Exception e) {
++ throw new Error(e);
++ }
++ }
++
++ public String myMethod(long l, Object o, String s) {
++ // The long argument occupies two stack slots, causing C2 to treat it as
++ // two arguments and casting the fist one two long and the second one to
Object.
++ // As a result, Object o is casted to String and the o.toString() call is
++ // inlined as String::toString(). We fail at runtime because 'o' is not
a String.
++ return o.toString();
++ }
++
++ public String toString() {
++ return MY_STRING;
++ }
++
++ public static void main(String[] args) throws Exception {
++ LongReferenceCastingTest test = new LongReferenceCastingTest();
++ try {
++ for (int i = 0; i < 20_000; ++i) {
++ if (!test.invoke().equals(MY_STRING)) {
++ throw new RuntimeException("Invalid string");
++ }
++ }
++ } catch (Throwable t) {
++ throw new RuntimeException("Test failed", t);
++ }
++ }
++
++ public String invoke() throws Throwable {
++ return (String) MH.invokeExact(this, 0L, (Object)this, MY_STRING);
++ }
++}
diff --git a/8154210.patch b/8154210.patch
new file mode 100644
index 0000000..51b8138
--- /dev/null
+++ b/8154210.patch
@@ -0,0 +1,47 @@
+# 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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 95b0e2e..4895367 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -803,7 +803,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-jdk8u91-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
+# VERSION=aarch64-jdk8u92-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
@@ -863,13 +863,19 @@ Patch512: no_strict_overflow.patch
# PR2127: SunEC provider crashes when built using system NSS
# PR2815: Race condition in SunEC provider with system NSS
# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
+# PR2934: SunEC provider throwing KeyException with current NSS
Patch513: pr1983-jdk.patch
Patch514: pr1983-root.patch
Patch515: pr2127.patch
Patch516: pr2815.patch
Patch517: pr2899.patch
-Patch518: httpsFix1329342.patch
-Patch519: jdwpCrash.abrt.patch
+Patch518: pr2934.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
+Patch509: rh1176206-root.patch
+# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
+Patch523: pr2974-rh1337583.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -878,6 +884,8 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
+# PR2991, RH1341258: JVM on PPC64 LE crashes due to an illegal instruction in JITed code
+Patch524: pr2991-rh1341258.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -899,14 +907,20 @@ Patch605: soundFontPatch.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
Patch506: pr2842-01.patch
Patch507: pr2842-02.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
-Patch509: rh1176206-root.patch
-# Patches which need adding to aarch64/8u
+# Patches upstream and appearing in 8u102
+# S8148752, PR2943, RH1330188: Compiled StringBuilder code throws
StringIndexOutOfBoundsException
+Patch519: 8148752-pr2943-rh1330188.patch
+# S6961123, PR2972, RH1339740: Java application name in GNOME Shell contains funny
characters
+Patch520: 6961123-pr2972-rh1339740.patch
-# Patches upstream and appearing in 8u76
+# 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
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -915,8 +929,8 @@ Patch201: system-libjpeg.patch
# Local fixes
# see
http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread
Patch400: jdk8-archivedJavadoc.patch
-# already in shenandoah repo:
http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/06556235f193
-# proposed for shenandoah integration forest:
http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2016-May/003461.html
+# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
+Patch525: pr1834-rh1022017.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -1216,7 +1230,11 @@ sh %{SOURCE12}
%patch102
%patch103
+# ppc64le fixes
+%patch524
+
# Zero fixes.
+%patch606
%patch603
%patch601
@@ -1239,6 +1257,11 @@ sh %{SOURCE12}
%patch518
%patch519
%patch400
+%patch520
+%patch521
+%patch522
+%patch523
+%patch525
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1827,6 +1850,14 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Jun 07 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-1.b14
+- updated to u92
+- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch,
criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
+- 8132051-zero.patch, remove_aarch64_template_for_gcc6.patch
+- jdwpCrash.abrt.patch renamed to 8044762-pr2960.patch
+- httpsFix1329342.patch renamed to pr2934.patch
+- added known regresisonos fixes for u92 scheduled for next u (519-525)
+
* Thu May 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-7.b14
- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
diff --git a/pr1834-rh1022017.patch b/pr1834-rh1022017.patch
new file mode 100644
index 0000000..1b3c903
--- /dev/null
+++ b/pr1834-rh1022017.patch
@@ -0,0 +1,44 @@
+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/httpsFix1329342.patch b/pr2934.patch
similarity index 98%
rename from httpsFix1329342.patch
rename to pr2934.patch
index 7f1bfbd..21e769d 100644
--- a/httpsFix1329342.patch
+++ b/pr2934.patch
@@ -1,7 +1,7 @@
-
# HG changeset patch
# User andrew
# Date 1461349033 -3600
+# Fri Apr 22 19:17:13 2016 +0100
# Node ID dab76de2f91cf1791c03560a3f45aaa69f8351fd
# Parent 3fa42705acab6d69b6141f47ebba4f85739a338c
PR2934: SunEC provider throwing KeyException with current NSS
@@ -88,4 +88,3 @@ diff -r 3fa42705acab -r dab76de2f91c
src/share/native/sun/security/ec/ecc_impl.h
#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
#else
-
diff --git a/pr2974-rh1337583.patch b/pr2974-rh1337583.patch
new file mode 100644
index 0000000..5c00050
--- /dev/null
+++ b/pr2974-rh1337583.patch
@@ -0,0 +1,148 @@
+# HG changeset patch
+# User andrew
+# Date 1464316115 -3600
+# Fri May 27 03:28:35 2016 +0100
+# Node ID 794541fbbdc323f7da8a5cee75611f977eee66ee
+# Parent 0be28a33e12dfc9ae1e4be381530643f691d351a
+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
+@@ -30,6 +30,7 @@
+ import java.io.IOException;
+ import java.math.BigInteger;
+
++import java.security.AccessController;
+ import java.security.cert.CertificateException;
+ import java.security.NoSuchAlgorithmException;
+ import java.security.InvalidKeyException;
+@@ -39,6 +40,7 @@
+
+ import java.util.Base64;
+
++import sun.security.action.GetPropertyAction;
+ import sun.security.util.*;
+ import sun.security.x509.AlgorithmId;
+ import sun.security.x509.X509Key;
+@@ -76,6 +78,14 @@
+ * @author Hemma Prafullchandra
+ */
+ public class PKCS10 {
++
++ private static final byte[] sysLineEndings;
++
++ static {
++ sysLineEndings =
++ AccessController.doPrivileged(new
GetPropertyAction("line.separator")).getBytes();
++ }
++
+ /**
+ * 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 @@
+ */
+ public void print(PrintStream out)
+ throws IOException, SignatureException {
++ print(out, false);
++ }
++
++ /**
++ * Prints an E-Mailable version of the certificate request on the print
++ * stream passed. The format is a common base64 encoded one, supported
++ * by most Certificate Authorities because Netscape web servers have
++ * used this for some time. Some certificate authorities expect some
++ * more information, in particular contact information for the web
++ * server administrator.
++ *
++ * @param out the print stream where the certificate request
++ * will be printed.
++ * @param systemLineEndings true if the request should be terminated
++ * using the system line endings.
++ * @exception IOException when an output operation failed
++ * @exception SignatureException when the certificate request was
++ * not yet signed.
++ */
++ public void print(PrintStream out, boolean systemLineEndings)
++ throws IOException, SignatureException {
++ byte[] lineEndings;
++
+ if (encoded == null)
+ throw new SignatureException("Cert request was not signed");
+
++ if (systemLineEndings)
++ lineEndings = sysLineEndings;
++ else
++ lineEndings = new byte[] {'\r', '\n'}; // CRLF
+
+- byte[] CRLF = new byte[] {'\r', '\n'};
+ out.println("-----BEGIN NEW CERTIFICATE REQUEST-----");
+- out.println(Base64.getMimeEncoder(64, CRLF).encodeToString(encoded));
++ out.println(Base64.getMimeEncoder(64, lineEndings).encodeToString(encoded));
+ 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 @@
+ private String infilename = null;
+ private String outfilename = null;
+ private String srcksfname = null;
++ private boolean systemLineEndings = false;
+
+ // 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 @@
+ CERTREQ("Generates.a.certificate.request",
+ ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME,
+ STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS,
+- PROVIDERARG, PROVIDERPATH, V, PROTECTED),
++ PROVIDERARG, PROVIDERPATH, SYSTEMLINEENDINGS, V, PROTECTED),
+ CHANGEALIAS("Changes.an.entry.s.alias",
+ ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS,
+ STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG,
+@@ -296,6 +297,7 @@
+ STARTDATE("startdate", "<startdate>",
"certificate.validity.start.date.time"),
+ STOREPASS("storepass", "<arg>",
"keystore.password"),
+ STORETYPE("storetype", "<storetype>",
"keystore.type"),
++ SYSTEMLINEENDINGS("systemlineendings", null,
"system.line.endings"),
+ TRUSTCACERTS("trustcacerts", null,
"trust.certificates.from.cacerts"),
+ V("v", null, "verbose.output"),
+ VALIDITY("validity", "<valDays>",
"validity.number.of.days");
+@@ -537,6 +539,8 @@
+ protectedPath = true;
+ } else if (collator.compare(flags, "-srcprotected") == 0) {
+ srcprotectedPath = true;
++ } else if (collator.compare(flags, "-systemlineendings") == 0) {
++ systemLineEndings = true;
+ } else {
+ System.err.println(rb.getString("Illegal.option.") + flags);
+ tinyHelp();
+@@ -1335,7 +1339,7 @@
+
+ // Sign the request and base-64 encode it
+ request.encodeAndSign(subject, signature);
+- request.print(out);
++ request.print(out, systemLineEndings);
+ }
+
+ /**
+@@ -4191,4 +4195,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
+@@ -168,6 +168,8 @@
+ "keystore password"}, //-storepass
+ {"keystore.type",
+ "keystore type"}, //-storetype
++ {"system.line.endings",
++ "use system line endings rather than CRLF to terminate output"},
//-systemlineendings
+ {"trust.certificates.from.cacerts",
+ "trust certificates from cacerts"}, //-trustcacerts
+ {"verbose.output",
diff --git a/pr2991-rh1341258.patch b/pr2991-rh1341258.patch
new file mode 100644
index 0000000..f13b388
--- /dev/null
+++ b/pr2991-rh1341258.patch
@@ -0,0 +1,248 @@
+diff -r 3fc29347b27f 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 Thu Jun 02 17:36:55 2016 +0100
+@@ -2516,8 +2516,13 @@
+ MacroAssembler _masm(&cbuf);
+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
+ // Operand 'ds' requires 4-alignment.
+- assert((Idisp & 0x3) == 0, "unaligned offset");
+- __ ld($dst$$Register, Idisp, $mem$$base$$Register);
++ if (Idisp & 0x3) {
++ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
++ __ ld($dst$$Register, 0, $dst$$Register);
++ } else {
++ __ ld($dst$$Register, Idisp, $mem$$base$$Register);
++ __ nop();
++ }
+ %}
+
+ // Load acquire.
+@@ -2526,11 +2531,30 @@
+ MacroAssembler _masm(&cbuf);
+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
+ // Operand 'ds' requires 4-alignment.
+- assert((Idisp & 0x3) == 0, "unaligned offset");
+- __ ld($dst$$Register, Idisp, $mem$$base$$Register);
++ if (Idisp & 0x3) {
++ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
++ __ ld($dst$$Register, 0, $dst$$Register);
++ } else {
++ __ ld($dst$$Register, Idisp, $mem$$base$$Register);
++ __ nop();
++ }
+ __ twi_0($dst$$Register);
+ __ isync();
+ %}
++
++ enc_class enc_lwa(iRegLdst dst, memoryAlg4 mem) %{
++ // TODO: PPC port $archOpcode(ppc64Opcode_ld);
++ MacroAssembler _masm(&cbuf);
++ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
++ // Operand 'ds' requires 4-alignment.
++ if (Idisp & 0x3) {
++ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
++ __ lwa($dst$$Register, 0, $dst$$Register);
++ } else {
++ __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
++ __ nop();
++ }
++ %}
+
+ enc_class enc_lfd(RegF dst, memory mem) %{
+ // TODO: PPC port $archOpcode(ppc64Opcode_lfd);
+@@ -2857,8 +2881,13 @@
+ MacroAssembler _masm(&cbuf);
+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
+ // Operand 'ds' requires 4-alignment.
+- assert((Idisp & 0x3) == 0, "unaligned offset");
+- __ std($src$$Register, Idisp, $mem$$base$$Register);
++ if (Idisp & 0x3) {
++ __ addi($src$$Register, $mem$$base$$Register, Idisp);
++ __ std($src$$Register, Idisp, $src$$Register);
++ } else {
++ __ std($src$$Register, Idisp, $mem$$base$$Register);
++ __ nop();
++ }
+ %}
+
+ enc_class enc_stfs(RegF src, memory mem) %{
+@@ -5467,12 +5496,8 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LWA $dst, $mem \t// loadI2L" %}
+- size(4);
+- ins_encode %{
+- // TODO: PPC port $archOpcode(ppc64Opcode_lwa);
+- int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
+- __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
+- %}
++ size(8);
++ ins_encode( enc_lwa(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+
+@@ -5484,11 +5509,18 @@
+ format %{ "LWA $dst, $mem \t// loadI2L acquire"
+ "TWI $dst\n\t"
+ "ISYNC" %}
+- size(12);
++ size(16);
+ ins_encode %{
+ // TODO: PPC port $archOpcode(ppc64Opcode_lwa);
+ int Idisp = $mem$$disp + frame_slots_bias($mem$$base, ra_);
+- __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
++ // Operand 'ds' requires 4-alignment.
++ if (Idisp & 0x3) {
++ __ addi($dst$$Register, $mem$$base$$Register, Idisp);
++ __ lwa($dst$$Register, 0, $dst$$Register);
++ } else {
++ __ lwa($dst$$Register, Idisp, $mem$$base$$Register);
++ __ nop();
++ }
+ __ twi_0($dst$$Register);
+ __ isync();
+ %}
+@@ -5502,7 +5534,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// long" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5515,7 +5547,7 @@
+ format %{ "LD $dst, $mem \t// long acquire\n\t"
+ "TWI $dst\n\t"
+ "ISYNC" %}
+- size(12);
++ size(16);
+ ins_encode( enc_ld_ac(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5527,7 +5559,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// unaligned long" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5541,7 +5573,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// load 8-byte Vector" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5601,7 +5633,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// ptr" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5614,7 +5646,7 @@
+ format %{ "LD $dst, $mem \t// ptr acquire\n\t"
+ "TWI $dst\n\t"
+ "ISYNC" %}
+- size(12);
++ size(16);
+ ins_encode( enc_ld_ac(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5626,7 +5658,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// ptr + p2x" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -5648,7 +5680,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $mem \t// klass ptr" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -6521,7 +6553,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STD $src, $mem \t// long" %}
+- size(4);
++ size(8);
+ ins_encode( enc_std(src, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -6535,7 +6567,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STD $mem, $src \t// packed8B" %}
+- size(4);
++ size(8);
+ ins_encode( enc_std(src, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -6568,7 +6600,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STD $src, $dst \t// ptr" %}
+- size(4);
++ size(8);
+ ins_encode( enc_std(src, dst) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -7521,7 +7553,7 @@
+ format %{ "LD $dst, $mem \t// loadPLocked\n\t"
+ "TWI $dst\n\t"
+ "ISYNC" %}
+- size(12);
++ size(16);
+ ins_encode( enc_ld_ac(dst, mem) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -9287,7 +9319,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "LD $dst, $src \t// long" %}
+- size(4);
++ size(8);
+ ins_encode( enc_ld(dst, src) );
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -9298,7 +9330,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STD $src, $dst \t// long" %}
+- size(4);
++ size(8);
+ ins_encode( enc_std(src, dst) ); // rs=rt
+ ins_pipe(pipe_class_memory);
+ %}
+@@ -9372,7 +9404,7 @@
+ instruct moveD2L_stack_reg(iRegLdst dst, stackSlotD src) %{
+ match(Set dst (MoveD2L src));
+ ins_cost(MEMORY_REF_COST);
+- size(4);
++ size(8);
+ format %{ "LD $dst, $src \t// MoveD2L" %}
+ ins_encode( enc_ld(dst, src) );
+ ins_pipe(pipe_class_memory);
+@@ -9407,7 +9439,7 @@
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STD $src, $dst \t// MoveL2D" %}
+- size(4);
++ size(8);
+ ins_encode( enc_std(src, dst) );
+ ins_pipe(pipe_class_memory);
+ %}
commit 07077ab8b135d28b6a53f493c512dcd0c62079e1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 8 18:33:19 2016 +0200
More removed u92 upstreamed patches
diff --git a/8132051-aarch64.patch b/8132051-aarch64.patch
deleted file mode 100644
index 802a8d8..0000000
--- a/8132051-aarch64.patch
+++ /dev/null
@@ -1,248 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1460374398 0
-# Mon Apr 11 11:33:18 2016 +0000
-# Node ID 388e9d0905e69727a15a94f825bdde17e2ed96d6
-# Parent e2b90ce9a1d12eae1a8edbd34eacd9a9674e315b
-8132051: Better byte behavior
-Reviewed-by: adinn
-
-diff --git a/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
b/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
-@@ -337,7 +337,7 @@
- length.load_item();
-
- }
-- if (needs_store_check) {
-+ if (needs_store_check || x->check_boolean()) {
- value.load_item();
- } else {
- value.load_for_store(x->elt_type());
-@@ -386,7 +386,8 @@
- // Seems to be a precise
- post_barrier(LIR_OprFact::address(array_addr), value.result());
- } else {
-- __ move(value.result(), array_addr, null_check_info);
-+ LIR_Opr result = maybe_mask_boolean(x, array.result(), value.result(),
null_check_info);
-+ __ move(result, array_addr, null_check_info);
- }
- }
-
-diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
b/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
-@@ -41,7 +41,43 @@
- #include "runtime/thread.inline.hpp"
-
-
--// Implementation of InterpreterMacroAssembler
-+void InterpreterMacroAssembler::narrow(Register result) {
-+
-+ // Get method->_constMethod->_result_type
-+ ldr(rscratch1, Address(rfp, frame::interpreter_frame_method_offset * wordSize));
-+ ldr(rscratch1, Address(rscratch1, Method::const_offset()));
-+ ldrb(rscratch1, Address(rscratch1, ConstMethod::result_type_offset()));
-+
-+ Label done, notBool, notByte, notChar;
-+
-+ // common case first
-+ cmpw(rscratch1, T_INT);
-+ br(Assembler::EQ, done);
-+
-+ // mask integer result to narrower return type.
-+ cmpw(rscratch1, T_BOOLEAN);
-+ br(Assembler::NE, notBool);
-+ andw(result, result, 0x1);
-+ b(done);
-+
-+ bind(notBool);
-+ cmpw(rscratch1, T_BYTE);
-+ br(Assembler::NE, notByte);
-+ sbfx(result, result, 0, 8);
-+ b(done);
-+
-+ bind(notByte);
-+ cmpw(rscratch1, T_CHAR);
-+ br(Assembler::NE, notChar);
-+ ubfx(result, result, 0, 16); // truncate upper 16 bits
-+ b(done);
-+
-+ bind(notChar);
-+ sbfx(result, result, 0, 16); // sign-extend short
-+
-+ // Nothing to do for T_INT
-+ bind(done);
-+}
-
- #ifndef CC_INTERP
-
-@@ -79,6 +115,7 @@
- verify_oop(r0, state); break;
- case ltos: ldr(r0, val_addr); break;
- case btos: // fall through
-+ case ztos: // fall through
- case ctos: // fall through
- case stos: // fall through
- case itos: ldrw(r0, val_addr); break;
-@@ -312,6 +349,7 @@
- switch (state) {
- case atos: pop_ptr(); break;
- case btos:
-+ case ztos:
- case ctos:
- case stos:
- case itos: pop_i(); break;
-@@ -329,6 +367,7 @@
- switch (state) {
- case atos: push_ptr(); break;
- case btos:
-+ case ztos:
- case ctos:
- case stos:
- case itos: push_i(); break;
-diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
b/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
---- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
-@@ -252,6 +252,9 @@
- void update_mdp_by_constant(Register mdp_in, int constant);
- void update_mdp_for_ret(Register return_bci);
-
-+ // narrow int return value
-+ void narrow(Register result);
-+
- void profile_taken_branch(Register mdp, Register bumped_count);
- void profile_not_taken_branch(Register mdp);
- void profile_call(Register mdp);
-diff --git a/src/cpu/aarch64/vm/templateTable_aarch64.cpp
b/src/cpu/aarch64/vm/templateTable_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp
-@@ -233,6 +233,7 @@
- switch (bc) {
- case Bytecodes::_fast_aputfield:
- case Bytecodes::_fast_bputfield:
-+ case Bytecodes::_fast_zputfield:
- case Bytecodes::_fast_cputfield:
- case Bytecodes::_fast_dputfield:
- case Bytecodes::_fast_fputfield:
-@@ -1072,6 +1073,18 @@
- // r1: index
- // r3: array
- index_check(r3, r1); // prefer index in r1
-+
-+ // Need to check whether array is boolean or byte
-+ // since both types share the bastore bytecode.
-+ __ load_klass(r2, r3);
-+ __ ldrw(r2, Address(r2, Klass::layout_helper_offset()));
-+ int diffbit = Klass::layout_helper_boolean_diffbit();
-+ __ andw(rscratch1, r2, diffbit);
-+ Label L_skip;
-+ __ cbzw(rscratch1, L_skip);
-+ __ andw(r0, r0, 1); // if it is a T_BOOLEAN array, mask the stored value to 0/1
-+ __ bind(L_skip);
-+
- __ lea(rscratch1, Address(r3, r1, Address::uxtw(0)));
- __ strb(r0, Address(rscratch1,
- arrayOopDesc::base_offset_in_bytes(T_BYTE)));
-@@ -2186,6 +2199,13 @@
- if (_desc->bytecode() == Bytecodes::_return)
- __ membar(MacroAssembler::StoreStore);
-
-+ // Narrow result if state is itos but result type is smaller.
-+ // Need to narrow in the return bytecode rather than in generate_return_entry
-+ // since compiled code callers expect the result to already be narrowed.
-+ if (state == itos) {
-+ __ narrow(r0);
-+ }
-+
- __ remove_activation(state);
- __ ret(lr);
- }
-@@ -2395,7 +2415,7 @@
-
- const Address field(obj, off);
-
-- Label Done, notByte, notInt, notShort, notChar,
-+ Label Done, notByte, notBool, notInt, notShort, notChar,
- notLong, notFloat, notObj, notDouble;
-
- // x86 uses a shift and mask or wings it with a shift plus assert
-@@ -2415,6 +2435,20 @@
- __ b(Done);
-
- __ bind(notByte);
-+ __ cmp(flags, ztos);
-+ __ br(Assembler::NE, notBool);
-+
-+ // ztos (same code as btos)
-+ __ ldrsb(r0, field);
-+ __ push(ztos);
-+ // Rewrite bytecode to be faster
-+ if (!is_static) {
-+ // use btos rewriting, no truncating to t/f bit is needed for getfield.
-+ patch_bytecode(Bytecodes::_fast_bgetfield, bc, r1);
-+ }
-+ __ b(Done);
-+
-+ __ bind(notBool);
- __ cmp(flags, atos);
- __ br(Assembler::NE, notObj);
- // atos
-@@ -2606,7 +2640,7 @@
- // field address
- const Address field(obj, off);
-
-- Label notByte, notInt, notShort, notChar,
-+ Label notByte, notBool, notInt, notShort, notChar,
- notLong, notFloat, notObj, notDouble;
-
- // x86 uses a shift and mask or wings it with a shift plus assert
-@@ -2628,6 +2662,22 @@
- }
-
- __ bind(notByte);
-+ __ cmp(flags, ztos);
-+ __ br(Assembler::NE, notBool);
-+
-+ // ztos
-+ {
-+ __ pop(ztos);
-+ if (!is_static) pop_and_check_object(obj);
-+ __ andw(r0, r0, 0x1);
-+ __ strb(r0, field);
-+ if (!is_static) {
-+ patch_bytecode(Bytecodes::_fast_zputfield, bc, r1, true, byte_no);
-+ }
-+ __ b(Done);
-+ }
-+
-+ __ bind(notBool);
- __ cmp(flags, atos);
- __ br(Assembler::NE, notObj);
-
-@@ -2778,6 +2828,7 @@
- switch (bytecode()) { // load values into the jvalue object
- case Bytecodes::_fast_aputfield: __ push_ptr(r0); break;
- case Bytecodes::_fast_bputfield: // fall through
-+ case Bytecodes::_fast_zputfield: // fall through
- case Bytecodes::_fast_sputfield: // fall through
- case Bytecodes::_fast_cputfield: // fall through
- case Bytecodes::_fast_iputfield: __ push_i(r0); break;
-@@ -2803,6 +2854,7 @@
- switch (bytecode()) { // restore tos values
- case Bytecodes::_fast_aputfield: __ pop_ptr(r0); break;
- case Bytecodes::_fast_bputfield: // fall through
-+ case Bytecodes::_fast_zputfield: // fall through
- case Bytecodes::_fast_sputfield: // fall through
- case Bytecodes::_fast_cputfield: // fall through
- case Bytecodes::_fast_iputfield: __ pop_i(r0); break;
-@@ -2858,6 +2910,9 @@
- case Bytecodes::_fast_iputfield:
- __ strw(r0, field);
- break;
-+ case Bytecodes::_fast_zputfield:
-+ __ andw(r0, r0, 0x1); // boolean is true if LSB is 1
-+ // fall through to bputfield
- case Bytecodes::_fast_bputfield:
- __ strb(r0, field);
- break;
diff --git a/8143855.patch b/8143855.patch
deleted file mode 100644
index 5d398de..0000000
--- a/8143855.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1448509207 0
-# Thu Nov 26 03:40:07 2015 +0000
-# Node ID 4a4a5b8b3dfe44b25d2a40ba987e5243b3ebc9db
-# Parent 110735ab93eca3bd6e9b157955a942e00aed72e1
-8143855: Bad printf formatting in frame_zero.cpp
-Summary: Backport subset of 8075967 fix that resolves this issue.
-Reviewed-by: dholmes
-
-diff -r 110735ab93ec -r 4a4a5b8b3dfe src/cpu/zero/vm/frame_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Nov 04 13:38:38 2015 +0100
-+++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Thu Nov 26 03:40:07 2015 +0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
-@@ -216,7 +216,7 @@
- valuebuf[buflen - 1] = '\0';
-
- // Print the result
-- st->print_cr(" " PTR_FORMAT ": %-21s = %s", addr, fieldbuf,
valuebuf);
-+ st->print_cr(" " PTR_FORMAT ": %-21s = %s", p2i(addr),
fieldbuf, valuebuf);
- }
- }
-
diff --git a/criticalShenandoahFix.patch b/criticalShenandoahFix.patch
deleted file mode 100644
index 8242684..0000000
--- a/criticalShenandoahFix.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-# HG changeset patch
-# User rkennke
-# Date 1463083411 -7200
-# Thu May 12 22:03:31 2016 +0200
-# Node ID 632ccab070e6b8f0114f4c636508de5b9d7210ab
-# Parent 04726a0d70bbbdef63056ebfe3ef20bf21fb4be7
-Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any
weak references in full-gc.
-
-diff --git a/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
b/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
-@@ -126,6 +126,8 @@
- ShenandoahMarkCompactBarrierSet bs(_heap);
- oopDesc::set_bs(&bs);
-
-+ _heap->set_need_update_refs(true);
-+
- OrderAccess::fence();
-
- phase1_mark_heap();
-@@ -260,6 +262,12 @@
- ShenandoahConcurrentMark* cm = _heap->concurrentMark();
-
- cm->prepare_unmarked_root_objs_no_derived_ptrs(true);
-+ if (ShenandoahProcessReferences) {
-+ ReferenceProcessor* rp = _heap->ref_processor();
-+ // enable ("weak") refs discovery
-+ rp->enable_discovery(true /*verify_no_refs*/, true);
-+ rp->setup_policy(true); // snapshot the soft ref policy to be used in this cycle
-+ }
- cm->shared_finish_mark_from_roots();
-
- if (VerifyDuringGC) {
-
diff --git a/java-1.8.0-openjdk-rh1191652-root.patch
b/java-1.8.0-openjdk-rh1191652-root.patch
index 7483623..aa0ce35 100644
--- a/java-1.8.0-openjdk-rh1191652-root.patch
+++ b/java-1.8.0-openjdk-rh1191652-root.patch
@@ -1,10 +1,10 @@
-diff -r 590cc3ca1fec common/autoconf/hotspot-spec.gmk.in
---- openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 11 12:18:34 2015 -0800
-+++ openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 18 12:10:19 2015 +0000
+diff -r 59d5dc6a0d95 common/autoconf/hotspot-spec.gmk.in
+--- openjdk///common/autoconf/hotspot-spec.gmk.in Wed May 25 13:42:38 2016 +0100
++++ openjdk///common/autoconf/hotspot-spec.gmk.in Thu May 26 04:43:57 2016 +0100
@@ -71,6 +71,10 @@
LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
- # Old name for OPENJDK_TARGET_CPU, uses i586 and amd64, instead of x86 and x86_64.
- ARCH=$(OPENJDK_TARGET_CPU_LEGACY)
+ # Set the cpu architecture
+ ARCH=$(OPENJDK_TARGET_CPU_ARCH)
+# ppc64le uses the HotSpot ppc64 build
+ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
+ ARCH=ppc64
@@ -12,9 +12,10 @@ diff -r 590cc3ca1fec common/autoconf/hotspot-spec.gmk.in
# Legacy setting for building for a 64 bit machine.
# If yes then this expands to _LP64:=1
@LP64@
---- openjdk/common/autoconf/jdk-options.m4.orig 2015-03-03 20:13:00.000000000 -0500
-+++ openjdk/common/autoconf/jdk-options.m4 2015-03-03 20:36:17.000000000 -0500
-@@ -153,7 +153,7 @@
+diff -r 59d5dc6a0d95 common/autoconf/jdk-options.m4
+--- openjdk///common/autoconf/jdk-options.m4 Wed May 25 13:42:38 2016 +0100
++++ openjdk///common/autoconf/jdk-options.m4 Thu May 26 04:43:57 2016 +0100
+@@ -158,7 +158,7 @@
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
fi
@@ -23,10 +24,10 @@ diff -r 590cc3ca1fec common/autoconf/hotspot-spec.gmk.in
INCLUDE_SA=false
fi
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-diff -r 590cc3ca1fec common/autoconf/platform.m4
---- openjdk///common/autoconf/platform.m4 Wed Feb 11 12:18:34 2015 -0800
-+++ openjdk///common/autoconf/platform.m4 Wed Feb 18 12:10:19 2015 +0000
-@@ -61,7 +61,7 @@
+diff -r 59d5dc6a0d95 common/autoconf/platform.m4
+--- openjdk///common/autoconf/platform.m4 Wed May 25 13:42:38 2016 +0100
++++ openjdk///common/autoconf/platform.m4 Thu May 26 04:43:57 2016 +0100
+@@ -67,7 +67,7 @@
VAR_CPU_ENDIAN=big
;;
powerpc64le)
@@ -35,9 +36,9 @@ diff -r 590cc3ca1fec common/autoconf/platform.m4
VAR_CPU_ARCH=ppc
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
-diff -r 590cc3ca1fec common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4 Wed Feb 11 12:18:34 2015 -0800
-+++ openjdk///common/autoconf/toolchain.m4 Wed Feb 18 12:10:19 2015 +0000
+diff -r 59d5dc6a0d95 common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4 Wed May 25 13:42:38 2016 +0100
++++ openjdk///common/autoconf/toolchain.m4 Thu May 26 04:43:57 2016 +0100
@@ -1056,6 +1056,9 @@
else
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c4087e5..95b0e2e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -905,15 +905,8 @@ Patch508: rh1176206-jdk.patch
Patch509: rh1176206-root.patch
# Patches which need adding to aarch64/8u
-# S8132051: Better byte behaviour for AArch64
-Patch701: 8132051-aarch64.patch
# Patches upstream and appearing in 8u76
-# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
-# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86
platforms
-Patch403: rhbz1206656_fix_current_stack_pointer.patch
-# S8143855: Bad printf formatting in frame_zero.cpp
-Patch505: 8143855.patch
# Patches ineligible for 8u
# 8043805: Allow using a system-installed libjpeg
@@ -924,7 +917,6 @@ Patch201: system-libjpeg.patch
Patch400: jdk8-archivedJavadoc.patch
# already in shenandoah repo:
http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/06556235f193
# proposed for shenandoah integration forest:
http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2016-May/003461.html
-Patch401: criticalShenandoahFix.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -1225,15 +1217,6 @@ sh %{SOURCE12}
%patch103
# Zero fixes.
-%if %{use_shenandoah_hotspot} != 1
-%patch403
-%patch505
-%endif
-
-# AArch64 fixes
-%if %{use_shenandoah_hotspot} != 1
-%patch701
-%endif
%patch603
%patch601
@@ -1256,9 +1239,6 @@ sh %{SOURCE12}
%patch518
%patch519
%patch400
-%if %{use_shenandoah_hotspot} == 1
-%patch401
-%endif
# Extract systemtap tapsets
%if %{with_systemtap}
diff --git a/rhbz1206656_fix_current_stack_pointer.patch
b/rhbz1206656_fix_current_stack_pointer.patch
deleted file mode 100644
index dbefaef..0000000
--- a/rhbz1206656_fix_current_stack_pointer.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
-@@ -55,8 +55,8 @@
- #include "utilities/vmError.hpp"
-
- address os::current_stack_pointer() {
-- address dummy = (address) &dummy;
-- return dummy;
-+ // return the address of the current function
-+ return (address)__builtin_frame_address(0);
- }
-
- frame os::get_sender_for_C_frame(frame* fr) {
commit b803a9924a124358e84b7cf925f7541137d2f867
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jun 8 18:25:01 2016 +0200
updated to u92, removed upstreamed patches
diff --git a/.gitignore b/.gitignore
index 2daa8de..fb9fcf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,3 +57,5 @@
/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
diff --git a/8132051-zero.patch b/8132051-zero.patch
deleted file mode 100644
index 77dd9c2..0000000
--- a/8132051-zero.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -r 388e9d0905e6 src/cpu/zero/vm/cppInterpreter_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 11:33:18 2016
+0000
-+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 21:42:21 2016
+0100
-@@ -93,6 +93,7 @@
- case T_SHORT:
- return (intptr_t)(jshort)result;
- case T_OBJECT: // nothing to do fall through
-+ case T_ARRAY:
- case T_LONG:
- case T_INT:
- case T_FLOAT:
-@@ -219,9 +219,16 @@
- // Push our result
- for (int i = 0; i < result_slots; i++) {
- // Adjust result to smaller
-- intptr_t res = result[-i];
-+ union {
-+ intptr_t res;
-+ jint res_jint;
-+ };
-+ res = result[-i];
- if (result_slots == 1) {
-- res = narrow(result_type_of(method), res);
-+ BasicType t = result_type_of(method);
-+ if (is_subword_type(t)) {
-+ res_jint = (jint)narrow(t, res_jint);
-+ }
- }
- stack->push(res);
- }
-@@ -796,22 +797,10 @@
- }
-
- BasicType CppInterpreter::result_type_of(Method* method) {
-- BasicType t;
-- switch (method->result_index()) {
-- case 0 : t = T_BOOLEAN; break;
-- case 1 : t = T_CHAR; break;
-- case 2 : t = T_BYTE; break;
-- case 3 : t = T_SHORT; break;
-- case 4 : t = T_INT; break;
-- case 5 : t = T_LONG; break;
-- case 6 : t = T_VOID; break;
-- case 7 : t = T_FLOAT; break;
-- case 8 : t = T_DOUBLE; break;
-- case 9 : t = T_OBJECT; break;
-- default: ShouldNotReachHere();
-- }
-- assert(AbstractInterpreter::BasicType_as_index(t) == method->result_index(),
-- "out of step with AbstractInterpreter::BasicType_as_index");
-+ // Get method->_constMethod->_result_type
-+ u1 *p = ((unsigned char *)method->constMethod()
-+ + in_bytes(ConstMethod::result_type_offset()));
-+ BasicType t = (BasicType)*p;
- return t;
- }
-
-diff -r 388e9d0905e6 src/share/vm/interpreter/bytecodeInterpreter.cpp
---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 11:33:18
2016 +0000
-+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 21:42:21
2016 +0100
-@@ -593,9 +593,10 @@
- /* 0xDC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
-
- /* 0xE0 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
--/* 0xE4 */ &&opc_default, &&opc_fast_aldc,
&&opc_fast_aldc_w, &&opc_return_register_finalizer,
--/* 0xE8 */ &&opc_invokehandle,&&opc_default,
&&opc_default, &&opc_default,
--/* 0xEC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
-+/* 0xE4 */ &&opc_default, &&opc_default,
&&opc_fast_aldc, &&opc_fast_aldc_w,
-+/* 0xE8 */ &&opc_return_register_finalizer,
-+ &&opc_invokehandle, &&opc_default,
&&opc_default,
-+/* 0xEC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
-
- /* 0xF0 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
- /* 0xF4 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index aed7a5c..c4087e5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -170,7 +170,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-jdk8u91-b14
+%global revision aarch64-jdk8u92-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -839,7 +839,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
+Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
# RPM/distribution specific patches
@@ -879,10 +879,6 @@ Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
-# AArch64-specific upstreamable patches
-# Remove template in AArch64 port which causes issues with GCC 6
-Patch106: remove_aarch64_template_for_gcc6.patch
-
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
Patch601: %{name}-rh1191652-root.patch
@@ -907,8 +903,6 @@ Patch507: pr2842-02.patch
# In progress:
http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
Patch508: rh1176206-jdk.patch
Patch509: rh1176206-root.patch
-# S8132051: Better byte behaviour for Zero
-Patch606: 8132051-zero.patch
# Patches which need adding to aarch64/8u
# S8132051: Better byte behaviour for AArch64
@@ -1235,10 +1229,8 @@ sh %{SOURCE12}
%patch403
%patch505
%endif
-%patch606
# AArch64 fixes
-%patch106
%if %{use_shenandoah_hotspot} != 1
%patch701
%endif
diff --git a/remove_aarch64_template_for_gcc6.patch
b/remove_aarch64_template_for_gcc6.patch
deleted file mode 100644
index 298badd..0000000
--- a/remove_aarch64_template_for_gcc6.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-index ef50802..9d604d5 100644
---- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
- return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
- }
-
--template <class T> static const T& min (const T& a, const T& b) {
-- return (a > b) ? b : a;
--}
--
- // ---------------------------------------------------------------------------
- // Read the array of BasicTypes from a signature, and compute where the
- // arguments should go. Values in the VMRegPair regs array refer to 4-byte
diff --git a/sources b/sources
index 15e655f..63c6b5a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
-83a45a35718a39381006ed7d6bd0b566
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
+aa905556a4feff9164dba5d0616775ff aarch64-port-jdk8u-aarch64-jdk8u92-b14.tar.xz
+88891d2571519b45e65abf9ab8402104
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u92-b14.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 3e41345..149848e 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u91-b14"
+ VERSION="aarch64-jdk8u92-b14"
fi
if [ "x$COMPRESSION" = "x" ] ; then
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u71-b15-beta02"
+ VERSION="aarch64-shenandoah-jdk8u92-b14"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 255cc81b092dd635d8cddc905fddb67ff4a868cf
Author: Jiri <jvanek(a)redhat.com>
Date: Tue May 31 18:19:05 2016 +0200
Testing rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0552d94..aed7a5c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
commit 4091ca11f394fea20d567c603599a9627674226c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu May 19 15:37:50 2016 +0200
added patch519, jdwpCrash.abrt.patch to fix trasnportation error
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e860326..0552d94 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -869,6 +869,7 @@ Patch515: pr2127.patch
Patch516: pr2815.patch
Patch517: pr2899.patch
Patch518: httpsFix1329342.patch
+Patch519: jdwpCrash.abrt.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1261,6 +1262,7 @@ sh %{SOURCE12}
%patch516
%patch517
%patch518
+%patch519
%patch400
%if %{use_shenandoah_hotspot} == 1
%patch401
@@ -1853,6 +1855,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu May 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-7.b14
+- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
+
* Fri May 13 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-6.b14
- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process
any weak references in full-gc.
diff --git a/jdwpCrash.abrt.patch b/jdwpCrash.abrt.patch
new file mode 100644
index 0000000..9ff2590
--- /dev/null
+++ b/jdwpCrash.abrt.patch
@@ -0,0 +1,166 @@
+# HG changeset patch
+# User dsamersoff
+# Date 1403087398 25200
+# Node ID 7eb9656224049bee9ca32cca8217fb12e8686b76
+# Parent 66c61047f119f2919f4087f49189ee7171e7205d
+8044762: com/sun/jdi/OptionTest.java test time out
+Summary: gdata could be NULL in debugInit_exit
+Reviewed-by: dcubed
+# HG changeset patch
+# User dsamersoff
+# Date 1409228402 25200
+# Node ID 66199a53c7f9b21032666a7e3655daab408d9881
+# Parent 7eb9656224049bee9ca32cca8217fb12e8686b76
+8049226: 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 66c61047f119 -r 7eb965622404 src/share/back/debugInit.c
+--- openjdk/jdk/src/share/back/debugInit.c Mon May 16 09:54:50 2016 +0300
++++ 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 -r 7eb965622404 -r 66199a53c7f9 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 7eb965622404 -r 66199a53c7f9 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 7eb965622404 -r 66199a53c7f9 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)
+
+
commit 2ec1b15ed17ef88e366b47e552fe77a24fd31628
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri May 13 10:03:43 2016 +0200
Patch 401 made shenandoah only
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f77445e..e860326 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1262,7 +1262,9 @@ sh %{SOURCE12}
%patch517
%patch518
%patch400
+%if %{use_shenandoah_hotspot} == 1
%patch401
+%endif
# Extract systemtap tapsets
%if %{with_systemtap}
commit 26ed4d9b9ed562ab0bac5825dfab4a4475b69481
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri May 13 09:48:58 2016 +0200
Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process
any weak references in full-gc.
diff --git a/criticalShenandoahFix.patch b/criticalShenandoahFix.patch
new file mode 100644
index 0000000..8242684
--- /dev/null
+++ b/criticalShenandoahFix.patch
@@ -0,0 +1,34 @@
+# HG changeset patch
+# User rkennke
+# Date 1463083411 -7200
+# Thu May 12 22:03:31 2016 +0200
+# Node ID 632ccab070e6b8f0114f4c636508de5b9d7210ab
+# Parent 04726a0d70bbbdef63056ebfe3ef20bf21fb4be7
+Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any
weak references in full-gc.
+
+diff --git a/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
b/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp
+@@ -126,6 +126,8 @@
+ ShenandoahMarkCompactBarrierSet bs(_heap);
+ oopDesc::set_bs(&bs);
+
++ _heap->set_need_update_refs(true);
++
+ OrderAccess::fence();
+
+ phase1_mark_heap();
+@@ -260,6 +262,12 @@
+ ShenandoahConcurrentMark* cm = _heap->concurrentMark();
+
+ cm->prepare_unmarked_root_objs_no_derived_ptrs(true);
++ if (ShenandoahProcessReferences) {
++ ReferenceProcessor* rp = _heap->ref_processor();
++ // enable ("weak") refs discovery
++ rp->enable_discovery(true /*verify_no_refs*/, true);
++ rp->setup_policy(true); // snapshot the soft ref policy to be used in this cycle
++ }
+ cm->shared_finish_mark_from_roots();
+
+ if (VerifyDuringGC) {
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bac6ca7..f77445e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -927,6 +927,9 @@ Patch201: system-libjpeg.patch
# Local fixes
# see
http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread
Patch400: jdk8-archivedJavadoc.patch
+# already in shenandoah repo:
http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/06556235f193
+# proposed for shenandoah integration forest:
http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2016-May/003461.html
+Patch401: criticalShenandoahFix.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -1259,6 +1262,7 @@ sh %{SOURCE12}
%patch517
%patch518
%patch400
+%patch401
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1847,6 +1851,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri May 13 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-6.b14
+- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process
any weak references in full-gc.
+
* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
- Restricted to depend on exactly same version of nss as used for build
- Resolves: rhbz#1332456
commit de90c5adee0e876870cc8903cc3d21dec4182233
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed May 4 17:34:22 2016 +0200
Restricted to depend on exactly same version of nss as used for build
- Resolves: rhbz#1332456
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 734e14e..bac6ca7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -95,6 +95,13 @@
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
%global NSS_LIBS %(pkg-config --libs nss)
%global NSS_CFLAGS %(pkg-config --cflags nss-softokn)
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=1332456
+%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : )
+%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : )
+#this is worakround for processing of requires during srpm creation
+%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}"
== "x" ] ; then echo "" ;else echo ">=
%{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)
+%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" ==
"x" ] ; then echo "" ;else echo ">=
%{NSS_BUILDTIME_NUMBER}" ;fi)
+
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libmawt[.]so.*
@@ -666,6 +673,9 @@ Requires: javapackages-tools
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
+# there is need to depnd on exact version of nss
+Requires: nss %{NSS_BUILDTIME_VERSION}
+Requires: nss-softokn %{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 >= 1.1-3
OrderWithRequires: copy-jdk-configs
@@ -773,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1837,6 +1847,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
+- Restricted to depend on exactly same version of nss as used for build
+- Resolves: rhbz#1332456
+
* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
- updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
commit 172bd103ee5e621c68a6e85e76824348ed0bb92f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed May 4 12:15:14 2016 +0200
reverted nss version fix - was not working
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fc0398d..734e14e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -95,9 +95,6 @@
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
%global NSS_LIBS %(pkg-config --libs nss)
%global NSS_CFLAGS %(pkg-config --cflags nss-softokn)
-# see
https://bugzilla.redhat.com/show_bug.cgi?id=1332456
-%global NSSSOFTOKN_BUILDTIME_VERSION %(pkg-config --modversion nss-softokn)
-%global NSS_BUILDTIME_VERSION %(pkg-config --modversion nss)
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libmawt[.]so.*
@@ -669,9 +666,6 @@ Requires: javapackages-tools
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
-# there is need to depnd on exact version of nss
-Requires: nss >= %{NSS_BUILDTIME_VERSION}
-Requires: nss-softokn >= %{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 >= 1.1-3
OrderWithRequires: copy-jdk-configs
@@ -779,7 +773,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1843,9 +1837,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
+* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
- updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
+- reverted nss version fix
* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
- Restricted to depend on exactly same version of nss as use dfor build
commit 1a7934c8635865243e219cb6ea7f49f18a2be30d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue May 3 15:47:06 2016 +0200
updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
diff --git a/.gitignore b/.gitignore
index 87e370e..2daa8de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@
/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bf24c65..fc0398d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -779,7 +779,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -835,7 +835,7 @@ Source20: repackReproduciblePolycies.sh
Source100: config.guess
Source101: config.sub
# shenandoah hotpost
-Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
+Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
# RPM/distribution specific patches
@@ -1843,6 +1843,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
+- updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
+
* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
- Restricted to depend on exactly same version of nss as use dfor build
- Resolves: rhbz#1332456
diff --git a/sources b/sources
index 8b33ddc..15e655f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
-c116a8f376e4bb9d2a23b77c54015792
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
+83a45a35718a39381006ed7d6bd0b566
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 633124a..3e41345 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -102,7 +102,7 @@ if [ "x$VERSION" = "xtip" ] ; then
VERSION="tip"
else
#hardcoding version for anything else except tip
- VERSION="aarch64-shenandoah-jdk8u80-b00-beta01"
+ VERSION="aarch64-shenandoah-jdk8u71-b15-beta02"
fi
MAIN_REPO_NAME=$REPO_NAME
REPO_NAME=jdk8u-shenandoah
commit 84a0b7acb7cc99095abc89140b947f74cadc94eb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue May 3 15:41:45 2016 +0200
Restricted to depend on exactly same version of nss as use dfor build
- Resolves: rhbz#1332456
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1bb855a..bf24c65 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -95,6 +95,9 @@
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
%global NSS_LIBS %(pkg-config --libs nss)
%global NSS_CFLAGS %(pkg-config --cflags nss-softokn)
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=1332456
+%global NSSSOFTOKN_BUILDTIME_VERSION %(pkg-config --modversion nss-softokn)
+%global NSS_BUILDTIME_VERSION %(pkg-config --modversion nss)
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libmawt[.]so.*
@@ -666,6 +669,9 @@ Requires: javapackages-tools
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
+# there is need to depnd on exact version of nss
+Requires: nss >= %{NSS_BUILDTIME_VERSION}
+Requires: nss-softokn >= %{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 >= 1.1-3
OrderWithRequires: copy-jdk-configs
@@ -773,7 +779,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1837,6 +1843,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
+- Restricted to depend on exactly same version of nss as use dfor build
+- Resolves: rhbz#1332456
+
* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-3.b14
- included shenandoah support in 64b intel
commit 0ec10bb226abebaef10bcc2610c3d4b2f2a80617
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Apr 25 16:32:28 2016 +0200
shenandoah support in 64b intel
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index eb3dbfe..1bb855a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -28,7 +28,7 @@
%endif
# on intels, we build shenandoah htspot
-%ifarch %{ix86} x86_64
+%ifarch x86_64
%global use_shenandoah_hotspot 1
%else
%global use_shenandoah_hotspot 0
@@ -1838,7 +1838,7 @@ require "copy_jdk_configs.lua"
%changelog
* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-3.b14
-- included shenandoah support
+- included shenandoah support in 64b intel
* Sun Apr 24 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-2.b14
- added patch518 httpsFix1329342.patch
commit 58c402866a3a057091bacf73d3099ec345088aac
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Apr 25 16:17:22 2016 +0200
Added shenandoah hotspot
diff --git a/.gitignore b/.gitignore
index 0c57188..87e370e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,3 +55,4 @@
/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c6be068..3b7bf66 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -87,8 +87,13 @@ echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
pushd openjdk
-#jdk is last for its size
-repos="hotspot corba jaxws jaxp langtools nashorn jdk"
+
+if [ "x$REPOS" = "x" ] ; then
+ #jdk is last for its size
+ repos="hotspot corba jaxws jaxp langtools nashorn jdk"
+else
+ repos=$REPOS
+fi;
for subrepo in $repos
do
@@ -96,7 +101,7 @@ do
hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
done
-
+if [ -d jdk ]; then
echo "Removing EC source code we don't build"
mv -v jdk/src/share/native/sun/security/ec/impl/ecc_impl.h .
@@ -115,6 +120,7 @@ else
echo "Applying ${PR2126}"
patch -Np1 < $PR2126
fi;
+fi
popd
echo "Compressing remaining forest"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bd7dc0f..eb3dbfe 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -27,6 +27,13 @@
%global include_debug_build 0
%endif
+# on intels, we build shenandoah htspot
+%ifarch %{ix86} x86_64
+%global use_shenandoah_hotspot 1
+%else
+%global use_shenandoah_hotspot 0
+%endif
+
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
%else
@@ -766,7 +773,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -821,6 +828,8 @@ Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
+# shenandoah hotpost
+Source999: aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
# RPM/distribution specific patches
@@ -1169,6 +1178,15 @@ if [ $prioritylength -ne 7 ] ; then
fi
# For old patches
ln -s openjdk jdk8
+%if %{use_shenandoah_hotspot}
+#on intels, repalce hotpost by shenandoah-able hotspot
+pushd openjdk
+tar -xf %{SOURCE999}
+rm -rf hotspot
+cp -r openjdk/hotspot .
+rm -rf openjdk
+popd
+%endif
cp %{SOURCE2} .
@@ -1199,13 +1217,17 @@ sh %{SOURCE12}
%patch103
# Zero fixes.
+%if %{use_shenandoah_hotspot} != 1
%patch403
%patch505
+%endif
%patch606
# AArch64 fixes
%patch106
+%if %{use_shenandoah_hotspot} != 1
%patch701
+%endif
%patch603
%patch601
@@ -1815,6 +1837,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-3.b14
+- included shenandoah support
+
* Sun Apr 24 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-2.b14
- added patch518 httpsFix1329342.patch
- test based on SOURCE14 enabled
diff --git a/sources b/sources
index c8ab915..8b33ddc 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
+c116a8f376e4bb9d2a23b77c54015792
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u80-b00-beta01.tar.xz
diff --git a/update_package.sh b/update_package.sh
index c069ca2..633124a 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -62,8 +62,6 @@ sed -i "s/^%global\s\+revision.*/%global revision
${VERSION}/" $SPEC
# updated sources, resetting release
sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
-git --no-pager diff $SPEC
-
#https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Bash
function levenshtein {
if [ "$#" -ne "2" ]; then
@@ -96,6 +94,32 @@ function levenshtein {
echo ${d[str1len+str1len*(str2len)]}
fi
}
+# generate shenandoah hotspot
+# that means supply the underlying script with new values
+# to new filename.
+MAIN_VERSION=$VERSION
+if [ "x$VERSION" = "xtip" ] ; then
+ VERSION="tip"
+else
+ #hardcoding version for anything else except tip
+ VERSION="aarch64-shenandoah-jdk8u80-b00-beta01"
+fi
+MAIN_REPO_NAME=$REPO_NAME
+REPO_NAME=jdk8u-shenandoah
+MAIN_FILE_NAME_ROOT=$FILE_NAME_ROOT
+FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+FILENAME_SH=${FILE_NAME_ROOT}.tar.${COMPRESSION}
+REPOS="hotspot"
+
+if [ ! -f ${FILENAME_SH} ] ; then
+echo "Generating ${FILENAME_SH}"
+. ./generate_source_tarball.sh
+else
+echo "${FILENAME_SH} already exists, using"
+fi
+
+sed -i "s/^Source999:.*/Source999: ${FILENAME_SH}/" $SPEC
+git --no-pager diff $SPEC
# find the most similar sources name and replace it by newly generated one.
echo "Old sources"
@@ -112,6 +136,19 @@ for x in $a_sources ; do
done
sum=`md5sum ${FILENAME}`
sed -i "s;.*$winner;$sum;" sources
+# now shenandoah hotspot
+winner=""
+winnerDistance=999999
+for x in $a_sources ; do
+ distance=`levenshtein $x ${FILENAME_SH}`
+ if [ $distance -lt $winnerDistance ] ; then
+ winner=$x
+ winnerDistance=$distance
+ fi
+done
+sum=`md5sum ${FILENAME_SH}`
+sed -i "s;.*$winner;$sum;" sources
+
echo "New sources"
cat sources
a_sources=`cat sources | sed "s/.*\s\+//g"`
@@ -122,12 +159,14 @@ user_gecos_field=$(echo "$user_record" | cut -d
':' -f 5)
user_full_name=$(echo "$user_gecos_field" | cut -d ',' -f 1)
spec_date=`date +"%a %b %d %Y"`
# See spec:
-revision_helper=`echo ${VERSION%-*}`
+revision_helper=`echo ${MAIN_VERSION%-*}`
updatever=`echo ${revision_helper##*u}`
-buildver=`echo ${VERSION##*-}`
+buildver=`echo ${MAIN_VERSION##*-}`
echo "* $spec_date $user_full_name <$user_name(a)redhat.com> -
1:1.8.0.$updatever-$RELEASE.$buildver"
-echo "- updated to $VERSION (from $PROJECT_NAME/$REPO_NAME)"
+echo "- updated to $MAIN_VERSION (from $PROJECT_NAME/$MAIN_REPO_NAME)"
+echo "- updated to $VERSION (from $PROJECT_NAME/$REPO_NAME) of hotspot"
echo "- used $FILENAME as new sources"
+echo "- used $FILENAME_SH as new sources for hotspot"
echo " execute:"
echo "fedpkg/rhpkg new-sources "$a_sources
commit 9565950e8d95f74c478fdbe9c725626dd05a0323
Author: Jiri <jvanek(a)redhat.com>
Date: Sun Apr 24 10:58:15 2016 +0200
added patch518 httpsFix1329342.patch, test based on SOURCE14 enabled
- Resolves: rhbz#1329342
diff --git a/httpsFix1329342.patch b/httpsFix1329342.patch
new file mode 100644
index 0000000..7f1bfbd
--- /dev/null
+++ b/httpsFix1329342.patch
@@ -0,0 +1,91 @@
+
+# HG changeset patch
+# User andrew
+# Date 1461349033 -3600
+# Node ID dab76de2f91cf1791c03560a3f45aaa69f8351fd
+# Parent 3fa42705acab6d69b6141f47ebba4f85739a338c
+PR2934: SunEC provider throwing KeyException with current NSS
+Summary: Initialise the random number generator and feed the seed to it.
+
+diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ECC_JNI.cpp
+--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Apr 20 03:39:11 2016
+0100
++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Fri Apr 22 19:17:13 2016
+0100
+@@ -134,8 +134,17 @@
+ env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);
+
+ // Generate the new keypair (using the supplied seed)
++#ifdef SYSTEM_NSS
++ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)
++ != SECSuccess) {
++ ThrowException(env, KEY_EXCEPTION);
++ goto cleanup;
++ }
++ if (EC_NewKey(ecparams, &privKey) != SECSuccess) {
++#else
+ if (EC_NewKey(ecparams, &privKey, (unsigned char *) pSeedBuffer,
+ jSeedLength, 0) != SECSuccess) {
++#endif
+ ThrowException(env, KEY_EXCEPTION);
+ goto cleanup;
+ }
+@@ -267,8 +276,18 @@
+ env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer);
+
+ // Sign the digest (using the supplied seed)
++#ifdef SYSTEM_NSS
++ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength)
++ != SECSuccess) {
++ ThrowException(env, KEY_EXCEPTION);
++ goto cleanup;
++ }
++ if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item)
++ != SECSuccess) {
++#else
+ if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item,
+ (unsigned char *) pSeedBuffer, jSeedLength, 0) != SECSuccess) {
++#endif
+ ThrowException(env, KEY_EXCEPTION);
+ goto cleanup;
+ }
+@@ -499,6 +518,9 @@
+ if (SECOID_Init() != SECSuccess) {
+ ThrowException(env, INTERNAL_ERROR);
+ }
++ if (RNG_RNGInit() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
+ #endif
+ }
+
+@@ -507,6 +529,7 @@
+ (JNIEnv *env, jclass UNUSED(clazz))
+ {
+ #ifdef SYSTEM_NSS
++ RNG_RNGShutdown();
+ if (SECOID_Shutdown() != SECSuccess) {
+ ThrowException(env, INTERNAL_ERROR);
+ }
+diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Apr 20 03:39:11 2016
+0100
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Fri Apr 22 19:17:13 2016
+0100
+@@ -254,8 +254,10 @@
+ This function is no longer required because the random bytes are now
+ supplied by the caller. Force a failure.
+ */
++#ifndef SYSTEM_NSS
+ #define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
+ #endif
++#endif
+ #define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
+ #define MP_TO_SEC_ERROR(err)
+
+@@ -267,8 +269,6 @@
+
+ #ifdef SYSTEM_NSS
+ #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
+-#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
+-#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c)
+ #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
+ #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
+ #else
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8bf4cd6..bd7dc0f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -766,7 +766,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -849,6 +849,7 @@ Patch514: pr1983-root.patch
Patch515: pr2127.patch
Patch516: pr2815.patch
Patch517: pr2899.patch
+Patch518: httpsFix1329342.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -1224,6 +1225,7 @@ sh %{SOURCE12}
%patch515
%patch516
%patch517
+%patch518
%patch400
# Extract systemtap tapsets
@@ -1389,7 +1391,7 @@ $JAVA_HOME/bin/java TestCryptoLevel
# Check ECC is working
$JAVA_HOME/bin/javac -d . %{SOURCE14}
-#$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
+$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
@@ -1813,6 +1815,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Sun Apr 24 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-2.b14
+- added patch518 httpsFix1329342.patch
+- test based on SOURCE14 enabled
+- Resolves: rhbz#1329342
* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
- Roll back release number as release 1 never succeeded, even with tests disabled.
commit c7d7bec80a236c97ace22933f3ff159ce27aaf54
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 20 16:10:22 2016 +0200
Updated to security u91
diff --git a/.gitignore b/.gitignore
index be5c9de..0c57188 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,3 +54,4 @@
/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
diff --git a/8132051-aarch64.patch b/8132051-aarch64.patch
new file mode 100644
index 0000000..802a8d8
--- /dev/null
+++ b/8132051-aarch64.patch
@@ -0,0 +1,248 @@
+# HG changeset patch
+# User aph
+# Date 1460374398 0
+# Mon Apr 11 11:33:18 2016 +0000
+# Node ID 388e9d0905e69727a15a94f825bdde17e2ed96d6
+# Parent e2b90ce9a1d12eae1a8edbd34eacd9a9674e315b
+8132051: Better byte behavior
+Reviewed-by: adinn
+
+diff --git a/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
b/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp
+@@ -337,7 +337,7 @@
+ length.load_item();
+
+ }
+- if (needs_store_check) {
++ if (needs_store_check || x->check_boolean()) {
+ value.load_item();
+ } else {
+ value.load_for_store(x->elt_type());
+@@ -386,7 +386,8 @@
+ // Seems to be a precise
+ post_barrier(LIR_OprFact::address(array_addr), value.result());
+ } else {
+- __ move(value.result(), array_addr, null_check_info);
++ LIR_Opr result = maybe_mask_boolean(x, array.result(), value.result(),
null_check_info);
++ __ move(result, array_addr, null_check_info);
+ }
+ }
+
+diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
b/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp
+@@ -41,7 +41,43 @@
+ #include "runtime/thread.inline.hpp"
+
+
+-// Implementation of InterpreterMacroAssembler
++void InterpreterMacroAssembler::narrow(Register result) {
++
++ // Get method->_constMethod->_result_type
++ ldr(rscratch1, Address(rfp, frame::interpreter_frame_method_offset * wordSize));
++ ldr(rscratch1, Address(rscratch1, Method::const_offset()));
++ ldrb(rscratch1, Address(rscratch1, ConstMethod::result_type_offset()));
++
++ Label done, notBool, notByte, notChar;
++
++ // common case first
++ cmpw(rscratch1, T_INT);
++ br(Assembler::EQ, done);
++
++ // mask integer result to narrower return type.
++ cmpw(rscratch1, T_BOOLEAN);
++ br(Assembler::NE, notBool);
++ andw(result, result, 0x1);
++ b(done);
++
++ bind(notBool);
++ cmpw(rscratch1, T_BYTE);
++ br(Assembler::NE, notByte);
++ sbfx(result, result, 0, 8);
++ b(done);
++
++ bind(notByte);
++ cmpw(rscratch1, T_CHAR);
++ br(Assembler::NE, notChar);
++ ubfx(result, result, 0, 16); // truncate upper 16 bits
++ b(done);
++
++ bind(notChar);
++ sbfx(result, result, 0, 16); // sign-extend short
++
++ // Nothing to do for T_INT
++ bind(done);
++}
+
+ #ifndef CC_INTERP
+
+@@ -79,6 +115,7 @@
+ verify_oop(r0, state); break;
+ case ltos: ldr(r0, val_addr); break;
+ case btos: // fall through
++ case ztos: // fall through
+ case ctos: // fall through
+ case stos: // fall through
+ case itos: ldrw(r0, val_addr); break;
+@@ -312,6 +349,7 @@
+ switch (state) {
+ case atos: pop_ptr(); break;
+ case btos:
++ case ztos:
+ case ctos:
+ case stos:
+ case itos: pop_i(); break;
+@@ -329,6 +367,7 @@
+ switch (state) {
+ case atos: push_ptr(); break;
+ case btos:
++ case ztos:
+ case ctos:
+ case stos:
+ case itos: push_i(); break;
+diff --git a/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
b/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp
+@@ -252,6 +252,9 @@
+ void update_mdp_by_constant(Register mdp_in, int constant);
+ void update_mdp_for_ret(Register return_bci);
+
++ // narrow int return value
++ void narrow(Register result);
++
+ void profile_taken_branch(Register mdp, Register bumped_count);
+ void profile_not_taken_branch(Register mdp);
+ void profile_call(Register mdp);
+diff --git a/src/cpu/aarch64/vm/templateTable_aarch64.cpp
b/src/cpu/aarch64/vm/templateTable_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp
+@@ -233,6 +233,7 @@
+ switch (bc) {
+ case Bytecodes::_fast_aputfield:
+ case Bytecodes::_fast_bputfield:
++ case Bytecodes::_fast_zputfield:
+ case Bytecodes::_fast_cputfield:
+ case Bytecodes::_fast_dputfield:
+ case Bytecodes::_fast_fputfield:
+@@ -1072,6 +1073,18 @@
+ // r1: index
+ // r3: array
+ index_check(r3, r1); // prefer index in r1
++
++ // Need to check whether array is boolean or byte
++ // since both types share the bastore bytecode.
++ __ load_klass(r2, r3);
++ __ ldrw(r2, Address(r2, Klass::layout_helper_offset()));
++ int diffbit = Klass::layout_helper_boolean_diffbit();
++ __ andw(rscratch1, r2, diffbit);
++ Label L_skip;
++ __ cbzw(rscratch1, L_skip);
++ __ andw(r0, r0, 1); // if it is a T_BOOLEAN array, mask the stored value to 0/1
++ __ bind(L_skip);
++
+ __ lea(rscratch1, Address(r3, r1, Address::uxtw(0)));
+ __ strb(r0, Address(rscratch1,
+ arrayOopDesc::base_offset_in_bytes(T_BYTE)));
+@@ -2186,6 +2199,13 @@
+ if (_desc->bytecode() == Bytecodes::_return)
+ __ membar(MacroAssembler::StoreStore);
+
++ // Narrow result if state is itos but result type is smaller.
++ // Need to narrow in the return bytecode rather than in generate_return_entry
++ // since compiled code callers expect the result to already be narrowed.
++ if (state == itos) {
++ __ narrow(r0);
++ }
++
+ __ remove_activation(state);
+ __ ret(lr);
+ }
+@@ -2395,7 +2415,7 @@
+
+ const Address field(obj, off);
+
+- Label Done, notByte, notInt, notShort, notChar,
++ Label Done, notByte, notBool, notInt, notShort, notChar,
+ notLong, notFloat, notObj, notDouble;
+
+ // x86 uses a shift and mask or wings it with a shift plus assert
+@@ -2415,6 +2435,20 @@
+ __ b(Done);
+
+ __ bind(notByte);
++ __ cmp(flags, ztos);
++ __ br(Assembler::NE, notBool);
++
++ // ztos (same code as btos)
++ __ ldrsb(r0, field);
++ __ push(ztos);
++ // Rewrite bytecode to be faster
++ if (!is_static) {
++ // use btos rewriting, no truncating to t/f bit is needed for getfield.
++ patch_bytecode(Bytecodes::_fast_bgetfield, bc, r1);
++ }
++ __ b(Done);
++
++ __ bind(notBool);
+ __ cmp(flags, atos);
+ __ br(Assembler::NE, notObj);
+ // atos
+@@ -2606,7 +2640,7 @@
+ // field address
+ const Address field(obj, off);
+
+- Label notByte, notInt, notShort, notChar,
++ Label notByte, notBool, notInt, notShort, notChar,
+ notLong, notFloat, notObj, notDouble;
+
+ // x86 uses a shift and mask or wings it with a shift plus assert
+@@ -2628,6 +2662,22 @@
+ }
+
+ __ bind(notByte);
++ __ cmp(flags, ztos);
++ __ br(Assembler::NE, notBool);
++
++ // ztos
++ {
++ __ pop(ztos);
++ if (!is_static) pop_and_check_object(obj);
++ __ andw(r0, r0, 0x1);
++ __ strb(r0, field);
++ if (!is_static) {
++ patch_bytecode(Bytecodes::_fast_zputfield, bc, r1, true, byte_no);
++ }
++ __ b(Done);
++ }
++
++ __ bind(notBool);
+ __ cmp(flags, atos);
+ __ br(Assembler::NE, notObj);
+
+@@ -2778,6 +2828,7 @@
+ switch (bytecode()) { // load values into the jvalue object
+ case Bytecodes::_fast_aputfield: __ push_ptr(r0); break;
+ case Bytecodes::_fast_bputfield: // fall through
++ case Bytecodes::_fast_zputfield: // fall through
+ case Bytecodes::_fast_sputfield: // fall through
+ case Bytecodes::_fast_cputfield: // fall through
+ case Bytecodes::_fast_iputfield: __ push_i(r0); break;
+@@ -2803,6 +2854,7 @@
+ switch (bytecode()) { // restore tos values
+ case Bytecodes::_fast_aputfield: __ pop_ptr(r0); break;
+ case Bytecodes::_fast_bputfield: // fall through
++ case Bytecodes::_fast_zputfield: // fall through
+ case Bytecodes::_fast_sputfield: // fall through
+ case Bytecodes::_fast_cputfield: // fall through
+ case Bytecodes::_fast_iputfield: __ pop_i(r0); break;
+@@ -2858,6 +2910,9 @@
+ case Bytecodes::_fast_iputfield:
+ __ strw(r0, field);
+ break;
++ case Bytecodes::_fast_zputfield:
++ __ andw(r0, r0, 0x1); // boolean is true if LSB is 1
++ // fall through to bputfield
+ case Bytecodes::_fast_bputfield:
+ __ strb(r0, field);
+ break;
diff --git a/8132051-zero.patch b/8132051-zero.patch
new file mode 100644
index 0000000..77dd9c2
--- /dev/null
+++ b/8132051-zero.patch
@@ -0,0 +1,74 @@
+diff -r 388e9d0905e6 src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 11:33:18 2016
+0000
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Apr 11 21:42:21 2016
+0100
+@@ -93,6 +93,7 @@
+ case T_SHORT:
+ return (intptr_t)(jshort)result;
+ case T_OBJECT: // nothing to do fall through
++ case T_ARRAY:
+ case T_LONG:
+ case T_INT:
+ case T_FLOAT:
+@@ -219,9 +219,16 @@
+ // Push our result
+ for (int i = 0; i < result_slots; i++) {
+ // Adjust result to smaller
+- intptr_t res = result[-i];
++ union {
++ intptr_t res;
++ jint res_jint;
++ };
++ res = result[-i];
+ if (result_slots == 1) {
+- res = narrow(result_type_of(method), res);
++ BasicType t = result_type_of(method);
++ if (is_subword_type(t)) {
++ res_jint = (jint)narrow(t, res_jint);
++ }
+ }
+ stack->push(res);
+ }
+@@ -796,22 +797,10 @@
+ }
+
+ BasicType CppInterpreter::result_type_of(Method* method) {
+- BasicType t;
+- switch (method->result_index()) {
+- case 0 : t = T_BOOLEAN; break;
+- case 1 : t = T_CHAR; break;
+- case 2 : t = T_BYTE; break;
+- case 3 : t = T_SHORT; break;
+- case 4 : t = T_INT; break;
+- case 5 : t = T_LONG; break;
+- case 6 : t = T_VOID; break;
+- case 7 : t = T_FLOAT; break;
+- case 8 : t = T_DOUBLE; break;
+- case 9 : t = T_OBJECT; break;
+- default: ShouldNotReachHere();
+- }
+- assert(AbstractInterpreter::BasicType_as_index(t) == method->result_index(),
+- "out of step with AbstractInterpreter::BasicType_as_index");
++ // Get method->_constMethod->_result_type
++ u1 *p = ((unsigned char *)method->constMethod()
++ + in_bytes(ConstMethod::result_type_offset()));
++ BasicType t = (BasicType)*p;
+ return t;
+ }
+
+diff -r 388e9d0905e6 src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 11:33:18
2016 +0000
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 11 21:42:21
2016 +0100
+@@ -593,9 +593,10 @@
+ /* 0xDC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
+
+ /* 0xE0 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
+-/* 0xE4 */ &&opc_default, &&opc_fast_aldc,
&&opc_fast_aldc_w, &&opc_return_register_finalizer,
+-/* 0xE8 */ &&opc_invokehandle,&&opc_default,
&&opc_default, &&opc_default,
+-/* 0xEC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
++/* 0xE4 */ &&opc_default, &&opc_default,
&&opc_fast_aldc, &&opc_fast_aldc_w,
++/* 0xE8 */ &&opc_return_register_finalizer,
++ &&opc_invokehandle, &&opc_default,
&&opc_default,
++/* 0xEC */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
+
+ /* 0xF0 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
+ /* 0xF4 */ &&opc_default, &&opc_default,
&&opc_default, &&opc_default,
diff --git a/TestECDSA.java b/TestECDSA.java
new file mode 100644
index 0000000..6eb9cb2
--- /dev/null
+++ b/TestECDSA.java
@@ -0,0 +1,49 @@
+/* TestECDSA -- Ensure ECDSA signatures are working.
+ Copyright (C) 2016 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <
http://www.gnu.org/licenses/>.
+*/
+
+import java.math.BigInteger;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.Signature;
+
+/**
+ * @test
+ */
+public class TestECDSA {
+
+ public static void main(String[] args) throws Exception {
+ KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
+ KeyPair key = keyGen.generateKeyPair();
+
+ byte[] data = "This is a string to sign".getBytes("UTF-8");
+
+ Signature dsa = Signature.getInstance("NONEwithECDSA");
+ dsa.initSign(key.getPrivate());
+ dsa.update(data);
+ byte[] sig = dsa.sign();
+ System.out.println("Signature: " + new BigInteger(1,
sig).toString(16));
+
+ Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
+ dsaCheck.initVerify(key.getPublic());
+ dsaCheck.update(data);
+ boolean success = dsaCheck.verify(sig);
+ if (!success) {
+ throw new RuntimeException("Test failed. Signature verification
error");
+ }
+ System.out.println("Test passed.");
+ }
+}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 996fd92..8bf4cd6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -39,7 +39,11 @@
# is expected in one single case at the end of build
%global rev_build_loop %{build_loop2} %{build_loop1}
+%ifarch %{jit_arches}
+%global bootstrap_build 1
+%else
%global bootstrap_build 0
+%endif
%if %{bootstrap_build}
%global targets bootcycle-images docs
@@ -152,7 +156,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global project aarch64-port
%global repo jdk8u
-%global revision aarch64-jdk8u77-b03
+%global revision aarch64-jdk8u91-b14
# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
@@ -227,7 +231,8 @@ if [ "$1" -gt 1 ]; then
"${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
"${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
"${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
- "${sum}" = '321342219bb130d238ff144b9e5dbfc1' ]; then
+ "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\
+ "${sum}" = '134a37a84983b620f4d8d51a550c0c38' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
fi
@@ -761,7 +766,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -781,7 +786,7 @@ URL:
http://openjdk.java.net/
# aarch64-port now contains integration forest of both aarch64 and normal jdk
# Source from upstream OpenJDK8 project. To regenerate, use
-# VERSION=aarch64-jdk8u77-b03 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
+# VERSION=aarch64-jdk8u91-b14 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}.tar.xz
@@ -808,6 +813,9 @@ Source12: %{name}-remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
+# Ensure ECDSA is working
+Source14: TestECDSA.java
+
Source20: repackReproduciblePolycies.sh
# New versions of config files with aarch64 support. This is not upstream yet.
@@ -835,10 +843,12 @@ Patch512: no_strict_overflow.patch
# PR1983: Support using the system installation of NSS with the SunEC provider
# PR2127: SunEC provider crashes when built using system NSS
# PR2815: Race condition in SunEC provider with system NSS
+# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
Patch513: pr1983-jdk.patch
Patch514: pr1983-root.patch
Patch515: pr2127.patch
Patch516: pr2815.patch
+Patch517: pr2899.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -876,6 +886,12 @@ Patch507: pr2842-02.patch
# In progress:
http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
Patch508: rh1176206-jdk.patch
Patch509: rh1176206-root.patch
+# S8132051: Better byte behaviour for Zero
+Patch606: 8132051-zero.patch
+
+# Patches which need adding to aarch64/8u
+# S8132051: Better byte behaviour for AArch64
+Patch701: 8132051-aarch64.patch
# Patches upstream and appearing in 8u76
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
@@ -1181,11 +1197,14 @@ sh %{SOURCE12}
%patch102
%patch103
-# aarch64 build fixes
-%patch106
-
-# Zero PPC fixes.
+# Zero fixes.
%patch403
+%patch505
+%patch606
+
+# AArch64 fixes
+%patch106
+%patch701
%patch603
%patch601
@@ -1194,7 +1213,6 @@ sh %{SOURCE12}
%patch502
%patch504
-%patch505
%patch506
%patch507
%patch508
@@ -1205,7 +1223,7 @@ sh %{SOURCE12}
%patch514
%patch515
%patch516
-
+%patch517
%patch400
# Extract systemtap tapsets
@@ -1369,6 +1387,10 @@ export JAVA_HOME=$(pwd)/%{buildoutputdir
$suffix}/images/%{j2sdkimage}
$JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
+# Check ECC is working
+$JAVA_HOME/bin/javac -d . %{SOURCE14}
+#$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
+
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
if [ -f "$SERVER_JVM" ] ; then
@@ -1791,10 +1813,81 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Roll back release number as release 1 never succeeded, even with tests disabled.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add additional fix to Zero patch to properly handle result on 64-bit big-endian
+- Revert debugging options (aarch64 back to JIT, product build, no -Wno-error)
+- Enable full bootstrap on all architectures to check we are good to go.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn tests back on or build will not fail.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Temporarily remove power64 from JIT arches to see if endian issue appears on Zero.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn off Java-based checks in a vain attempt to get a complete build.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn off -Werror so s390 can build in slowdebug mode.
+- Add fix for formatting issue found by previous s390 build.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Revert settings to production defaults so we can at least get a build.
+- Switch to a slowdebug build to try and unearth remaining issue on s390x.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Disable ECDSA test for now until failure on RHEL 7 is fixed.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add 8132051 port to Zero.
+- Turn on bootstrap build for all to ensure we are now good to go.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add 8132051 port to AArch64.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Enable a full bootstrap on JIT archs. Full build held back by Zero archs anyway.
+- Resolves: rhbz#1325423
+
+* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Use basename of test file to avoid misinterpretation of full path as a package
+- Resolves: rhbz#1325423
+
+* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Update to u91b14.
+- Resolves: rhbz#1325423
+
* Mon Apr 04 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.77-2.b03
- added patch400 jdk8-archivedJavadoc.patch
- added javadoc-zip(-debug) subpackage with compressed javadoc
+* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
+- Fix typo in test invocation.
+- Resolves: rhbz#1245810
+
+* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
+- Add ECDSA test to ensure ECC is working.
+- Resolves: rhbz#1245810
+
+* Wed Mar 30 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-2.b03
+- Avoid WithSeed versions of NSS functions as they do not fully process the seed
+- List current java.security md5sum so that java.security is replaced and ECC gets
enabled.
+- Resolves: rhbz#1245810
+
* Wed Mar 23 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-1.b03
- Update to u77b03.
diff --git a/pr2899.patch b/pr2899.patch
new file mode 100644
index 0000000..58fb3c8
--- /dev/null
+++ b/pr2899.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User andrew
+# Date 1459313680 -3600
+# Wed Mar 30 05:54:40 2016 +0100
+# Node ID 9dc0eca5fa8926e6a952fa4f1931e78aa1f52443
+# Parent 8957aff589013e671f02d38023d5ff245ef27e87
+PR2899: Don't use WithSeed versions of NSS functions as they don't fully process
the seed
+Contributed-by: Alex Kashchenko <akashche(a)redhat.com>
+
+diff -r 8957aff58901 -r 9dc0eca5fa89 src/share/native/sun/security/ec/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 04:48:56 2016
+0100
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 05:54:40 2016
+0100
+@@ -267,8 +267,8 @@
+
+ #ifdef SYSTEM_NSS
+ #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
+-#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
+-#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e)
++#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b)
++#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c)
+ #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
+ #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
+ #else
diff --git a/s390-size_t_format_flags.patch b/s390-size_t_format_flags.patch
index 451c806..b9ae9ab 100644
--- a/s390-size_t_format_flags.patch
+++ b/s390-size_t_format_flags.patch
@@ -128,3 +128,16 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
#define INTX_FORMAT "%" PRIdPTR
#define UINTX_FORMAT "%" PRIuPTR
+diff -r 388e9d0905e6 src/share/vm/memory/collectorPolicy.cpp
+--- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Mon Apr 11 11:33:18 2016
+0000
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Apr 12 04:12:50 2016
+0100
+@@ -1056,7 +1056,8 @@
+ size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size);
+ assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu",
msp.initial_gen0_size(), expected));
+ assert(FLAG_IS_ERGO(NewSize) && NewSize == expected,
+- err_msg("NewSize should have been set ergonomically to %zu, but was
%zu", expected, NewSize));
++ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT
", but was " UINTX_FORMAT,
++ expected, NewSize));
+ }
+
+ private:
diff --git a/sources b/sources
index b10d948..c8ab915 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-4959de8fdb9f953ff526bb348d27e97a aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
+39880a5af218dfb9ef167bf1800b1b45 aarch64-port-jdk8u-aarch64-jdk8u91-b14.tar.xz
diff --git a/update_package.sh b/update_package.sh
index e4fbb44..c069ca2 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u77-b03"
+ VERSION="aarch64-jdk8u91-b14"
fi
if [ "x$COMPRESSION" = "x" ] ; then
commit ca9abca9f19ded059b2d4b986d2af9787eb091b2
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Apr 5 12:58:17 2016 +0200
patch400 moved out of with_systemtap block
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index af3eb09..996fd92 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1206,6 +1206,8 @@ sh %{SOURCE12}
%patch515
%patch516
+%patch400
+
# Extract systemtap tapsets
%if %{with_systemtap}
tar xzf %{SOURCE8}
@@ -1214,7 +1216,6 @@ tar xzf %{SOURCE8}
cp -r tapset tapset%{debug_suffix}
%endif
-%patch400
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
commit db2f51d7465b7e4602b50bca7fa54e2900a3c8c3
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Apr 4 16:54:41 2016 +0200
added javadoc-zip(-debug) subpackage with compressed javadoc based on patch400
jdk8-archivedJavadoc.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 10a9edc..af3eb09 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -475,6 +475,24 @@ exit 0
exit 0
}
+%global post_javadoc_zip() %{expand:
+
+PRIORITY=%{priority}
+if [ "%1" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
+alternatives \\
+ --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
\\
+ $PRIORITY --family %{name}
+exit 0
+}
+
+%global postun_javadoc_zip() %{expand:
+ alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
+exit 0
+}
+
%global files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_datadir}/applications/*policytool%1.desktop
@@ -589,6 +607,12 @@ exit 0
%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
+%global files_javadoc_zip() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir %%1}.zip
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+}
+
%global files_accessibility() %{expand:
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libatk-wrapper.so
%{_jvmdir}/%{jredir %%1}/lib/ext/java-atk-wrapper.jar
@@ -737,7 +761,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -865,6 +889,8 @@ Patch505: 8143855.patch
Patch201: system-libjpeg.patch
# Local fixes
+# see
http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread
+Patch400: jdk8-archivedJavadoc.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -1033,6 +1059,19 @@ BuildArch: noarch
The OpenJDK API documentation.
%endif
+%if %{include_normal_build}
+%package javadoc-zip
+Summary: OpenJDK API Documentation compressed in single archive
+Group: Documentation
+Requires: javapackages-tools
+BuildArch: noarch
+
+%{java_javadoc_rpo %{nil}}
+
+%description javadoc-zip
+The OpenJDK API documentation compressed in single archive.
+%endif
+
%if %{include_debug_build}
%package javadoc-debug
Summary: OpenJDK API Documentation %{for_debug}
@@ -1046,6 +1085,20 @@ BuildArch: noarch
The OpenJDK API documentation %{for_debug}.
%endif
+%if %{include_debug_build}
+%package javadoc-zip-debug
+Summary: OpenJDK API Documentation compressed in single archive %{for_debug}
+Group: Documentation
+Requires: javapackages-tools
+BuildArch: noarch
+
+%{java_javadoc_rpo %{debug_suffix_unquoted}}
+
+%description javadoc-zip-debug
+The OpenJDK API documentation compressed in single archive %{for_debug}.
+%endif
+
+
%if %{include_normal_build}
%package accessibility
Summary: OpenJDK accessibility connector
@@ -1161,6 +1214,7 @@ tar xzf %{SOURCE8}
cp -r tapset tapset%{debug_suffix}
%endif
+%patch400
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
@@ -1276,6 +1330,8 @@ make \
SCTP_WERROR= \
%{targets}
+make zip-docs
+
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
@@ -1449,6 +1505,7 @@ popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -a %{buildoutputdir $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
$suffix}
+cp -a %{buildoutputdir
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix}.zip
# Install icons and menu entries.
for s in 16 24 32 48 ; do
@@ -1625,6 +1682,12 @@ require "copy_jdk_configs.lua"
%postun javadoc
%{postun_javadoc %{nil}}
+
+%post javadoc-zip
+%{post_javadoc_zip %{nil}}
+
+%postun javadoc-zip
+%{postun_javadoc_zip %{nil}}
%endif
%if %{include_debug_build}
@@ -1657,6 +1720,12 @@ require "copy_jdk_configs.lua"
%postun javadoc-debug
%{postun_javadoc %{debug_suffix_unquoted}}
+
+%post javadoc-zip-debug
+%{post_javadoc_zip %{debug_suffix_unquoted}}
+
+%postun javadoc-zip-debug
+%{postun_javadoc_zip %{debug_suffix_unquoted}}
%endif
%if %{include_normal_build}
@@ -1687,6 +1756,9 @@ require "copy_jdk_configs.lua"
%files javadoc
%{files_javadoc %{nil}}
+%files javadoc-zip
+%{files_javadoc_zip %{nil}}
+
%files accessibility
%{files_accessibility %{nil}}
%endif
@@ -1710,11 +1782,18 @@ require "copy_jdk_configs.lua"
%files javadoc-debug
%{files_javadoc %{debug_suffix_unquoted}}
+%files javadoc-zip-debug
+%{files_javadoc_zip %{debug_suffix_unquoted}}
+
%files accessibility-debug
%{files_accessibility %{debug_suffix_unquoted}}
%endif
%changelog
+* Mon Apr 04 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.77-2.b03
+- added patch400 jdk8-archivedJavadoc.patch
+- added javadoc-zip(-debug) subpackage with compressed javadoc
+
* Wed Mar 23 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-1.b03
- Update to u77b03.
diff --git a/jdk8-archivedJavadoc.patch b/jdk8-archivedJavadoc.patch
new file mode 100644
index 0000000..3a43c5f
--- /dev/null
+++ b/jdk8-archivedJavadoc.patch
@@ -0,0 +1,68 @@
+--- jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.069477682 +0200
++++ jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.014477059 +0200
+@@ -220,6 +220,12 @@
+ JRE_API_DOCSDIR = $(DOCSDIR)/jre/api
+ PLATFORM_DOCSDIR = $(DOCSDIR)/platform
+
++
++JAVADOC_ARCHIVE_NAME := jdk-$(FULL_VERSION)-docs.zip
++JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(DOCSTMPDIR)/zip-docs
++JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles
++JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME)
++
+ # The non-core api javadocs need to be able to access the root of the core
+ # api directory, so for jdk/api or jre/api to get to the core api/
+ # directory we would use this:
+@@ -319,6 +325,37 @@
+ all: docs
+ docs: coredocs otherdocs
+
++#
++# Optional target which bundles all generated javadocs into a zip
++# archive. The dependency on docs is handled in Main.gmk. Incremental
++# building of docs is currently broken so if you invoke zip-docs after
++# docs, the docs are always rebuilt.
++#
++
++zip-docs: $(JAVADOC_ARCHIVE)
++
++#
++# Add the core docs as prerequisite to the archive to trigger a rebuild
++# if the core docs were rebuilt. Ideally any doc rebuild should trigger
++# this, but the way prerequisites are currently setup in this file, that
++# is hard to achieve.
++#
++
++$(JAVADOC_ARCHIVE): $(COREAPI_INDEX_FILE)
++ @$(ECHO) "Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME)" ;
++ $(MKDIR) -p $(JAVADOC_ARCHIVE_DIR) ;
++ $(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR) ;
++ $(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR);
++ all_roots=`$(FIND) $(DOCSDIR) | $(GREP) index.html `; \
++ pushd $(JAVADOC_ARCHIVE_ASSEMBLY_DIR); \
++ for index_file in $${all_roots} ; do \
++ target_dir=`dirname $${index_file}`; \
++ name=`$(ECHO) $${target_dir} | $(SED) "s;/spec;;" | $(SED)
"s;.*/;;"`; \
++ $(LN) -s $${target_dir} $${name}; \
++ done; \
++ $(ZIP) -q -r $(JAVADOC_ARCHIVE) * ; \
++ popd ;
++
+ #################################################################
+ # Production Targets -- USE THESE TARGETS WHEN:
+ # a) You're generating docs outside of release engineering's
+--- jdk8/make/Main.gmk 2016-04-01 16:53:41.311480424 +0200
++++ jdk8/make/Main.gmk 2016-04-01 16:53:41.266479914 +0200
+@@ -165,6 +165,12 @@
+ @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f
Javadoc.gmk docs)
+ @$(call TargetExit)
+
++zip-docs: docs zip-docs-only
++zip-docs-only: start-make
++ @$(call TargetEnter)
++ @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f
Javadoc.gmk zip-docs)
++ @$(call TargetExit)
++
+ sign-jars: jdk sign-jars-only
+ sign-jars-only: start-make
+ @$(call TargetEnter)
commit ebc98b64d4557d7eb605a2325f872d2f6954a16b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Mar 24 14:17:43 2016 +0100
Security update to u77
diff --git a/.gitignore b/.gitignore
index fcefab3..be5c9de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,4 @@
/aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7d6cdf7..10a9edc 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -152,7 +152,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-jdk8u72-b16
+%global revision aarch64-jdk8u77-b03
# 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
@@ -737,7 +737,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -757,10 +757,10 @@ 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-jdk8u72-b16 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}-ec
+# VERSION=aarch64-jdk8u77-b03 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
-Source0: %{project}-%{repo}-%{revision}-ec.tar.xz
+Source0: %{project}-%{repo}-%{revision}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -828,10 +828,6 @@ Patch103: s390-size_t_format_flags.patch
# Remove template in AArch64 port which causes issues with GCC 6
Patch106: remove_aarch64_template_for_gcc6.patch
-# AArch64-specific upstreamed patches
-# Remove accidentally included global large code cache changes which break S390
-Patch107: make_reservedcodecachesize_changes_aarch64_only.patch
-
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
Patch601: %{name}-rh1191652-root.patch
@@ -897,7 +893,6 @@ BuildRequires: libXtst-devel
BuildRequires: nss-devel
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
-#BuildRequires: redhat-lsb
BuildRequires: zip
BuildRequires: java-1.8.0-openjdk-devel
# Zero-assembler build requirement.
@@ -1135,7 +1130,6 @@ sh %{SOURCE12}
# aarch64 build fixes
%patch106
-%patch107
# Zero PPC fixes.
%patch403
@@ -1721,6 +1715,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Mar 23 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-1.b03
+- Update to u77b03.
+
* Thu Mar 03 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-13.b16
- When using a compositing WM, the overlay window should be used, not the root window.
diff --git a/make_reservedcodecachesize_changes_aarch64_only.patch
b/make_reservedcodecachesize_changes_aarch64_only.patch
deleted file mode 100644
index aa2eda9..0000000
--- a/make_reservedcodecachesize_changes_aarch64_only.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -r 4c440540c962 src/share/vm/runtime/arguments.cpp
---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Mon Feb 29 06:45:24 2016 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Mon Feb 29 16:36:41 2016 +0000
-@@ -1137,8 +1137,9 @@
- }
- // Increase the code cache size - tiered compiles a lot more.
- if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
-- FLAG_SET_DEFAULT(ReservedCodeCacheSize,
-- MIN2(CODE_CACHE_DEFAULT_LIMIT, ReservedCodeCacheSize * 5));
-+ NOT_AARCH64(FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 5));
-+ AARCH64_ONLY(FLAG_SET_DEFAULT(ReservedCodeCacheSize,
-+ MIN2(CODE_CACHE_DEFAULT_LIMIT, ReservedCodeCacheSize * 5)));
- }
- if (!UseInterpreter) { // -Xcomp
- Tier3InvokeNotifyFreqLog = 0;
diff --git a/sources b/sources
index e244932..b10d948 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-6e925f9328e82e69ada86fa0c7bac338 aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
+4959de8fdb9f953ff526bb348d27e97a aarch64-port-jdk8u-aarch64-jdk8u77-b03.tar.xz
diff --git a/update_package.sh b/update_package.sh
index 3282cd4..e4fbb44 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -24,7 +24,7 @@ if [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u72-b15"
+ VERSION="aarch64-jdk8u77-b03"
fi
if [ "x$COMPRESSION" = "x" ] ; then
commit 6721cbbc51cff3ec61775338f48432066bf4e70b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Mar 4 10:06:19 2016 +0100
When using a compositing WM, the overlay window should be used, not the root window.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ba67d30..7d6cdf7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -737,7 +737,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -757,8 +757,9 @@ 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-jdk8u72-b15 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}-ec
+# VERSION=aarch64-jdk8u72-b16 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}-ec
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
+# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
Source0: %{project}-%{repo}-%{revision}-ec.tar.xz
# Custom README for -src subpackage
@@ -826,6 +827,8 @@ Patch103: s390-size_t_format_flags.patch
# AArch64-specific upstreamable patches
# Remove template in AArch64 port which causes issues with GCC 6
Patch106: remove_aarch64_template_for_gcc6.patch
+
+# AArch64-specific upstreamed patches
# Remove accidentally included global large code cache changes which break S390
Patch107: make_reservedcodecachesize_changes_aarch64_only.patch
@@ -844,10 +847,15 @@ Patch203: system-lcms.patch
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux
+# waiting on upstream:
http://mail.openjdk.java.net/pipermail/jdk8u-dev/2016-January/004916.html
Patch605: soundFontPatch.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
Patch506: pr2842-01.patch
Patch507: pr2842-02.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
+Patch509: rh1176206-root.patch
# Patches upstream and appearing in 8u76
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
@@ -1142,6 +1150,8 @@ sh %{SOURCE12}
%patch505
%patch506
%patch507
+%patch508
+%patch509
%patch511
%patch512
%patch513
@@ -1711,8 +1721,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Thu Mar 03 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-13.b16
+- When using a compositing WM, the overlay window should be used, not the root window.
+
* Mon Feb 29 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.72-12.b15
-- Use a simple backport for PRPR2462/8074839.
+- Use a simple backport for PR2462/8074839.
- Don't backport the crc check for pack.gz. It's not tested well upstream.
* Mon Feb 29 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b16
diff --git a/rh1176206-jdk.patch b/rh1176206-jdk.patch
new file mode 100644
index 0000000..23b8e52
--- /dev/null
+++ b/rh1176206-jdk.patch
@@ -0,0 +1,67 @@
+--- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.497484904 +0100
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.402486574 +0100
+@@ -618,7 +618,7 @@
+ XRSurfaceData.c \
+ XRBackendNative.c
+
+- LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst
-lXi -ljava -ljvm -lc
++ LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender -lXcomposite
$(LIBDL) -lXtst -lXi -ljava -ljvm -lc
+
+ ifeq ($(OPENJDK_TARGET_OS), linux)
+ # To match old build, add this to LDFLAGS instead of suffix.
+--- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.777479982
+0100
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.677481740
+0100
+@@ -38,6 +38,7 @@
+ #include <X11/extensions/XTest.h>
+ #include <X11/extensions/XInput.h>
+ #include <X11/extensions/XI.h>
++#include <X11/extensions/Xcomposite.h>
+ #include <jni.h>
+ #include <sizecalc.h>
+ #include "robot_common.h"
+@@ -88,6 +89,32 @@
+ return isXTestAvailable;
+ }
+
++static Bool hasXCompositeOverlayExtension(Display *display) {
++
++ int xoverlay = False;
++ int eventBase, errorBase;
++ if (XCompositeQueryExtension(display, &eventBase, &errorBase)) {
++ int major = 0;
++ int minor = 0;
++
++ XCompositeQueryVersion(display, &major, &minor);
++ if (major > 0 || minor >= 3)
++ xoverlay = True;
++ }
++
++ return xoverlay;
++}
++
++static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
++
++ char NET_WM_CM_Sn[25];
++ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
++
++ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
++ Window owner = XGetSelectionOwner(display, managerSelection);
++
++ return owner != 0;
++}
+
+ static XImage *getWindowImage(Display * display, Window window,
+ int32_t x, int32_t y,
+@@ -232,6 +259,12 @@
+ DASSERT(adata != NULL);
+
+ rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
++ if (isXCompositeDisplay(awt_display, adata->awt_visInfo.screen) &&
++ hasXCompositeOverlayExtension(awt_display))
++ {
++ rootWindow = XCompositeGetOverlayWindow(awt_display, rootWindow);
++ }
++
+ image = getWindowImage(awt_display, rootWindow, x, y, width, height);
+
+ /* Array to use to crunch around the pixel values */
diff --git a/rh1176206-root.patch b/rh1176206-root.patch
new file mode 100644
index 0000000..db1061c
--- /dev/null
+++ b/rh1176206-root.patch
@@ -0,0 +1,31 @@
+--- openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.542747800 +0100
++++ openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.500748539 +0100
+@@ -112,7 +112,7 @@
+ pulse)
+ PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
+ x11)
+- PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev" ;;
++ PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev libXcomposite-dev" ;;
+ ccache)
+ PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
+ esac
+--- openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.716744742 +0100
++++ openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.675745462 +0100
+@@ -153,7 +153,7 @@
+ CFLAGS="$CFLAGS $X_CFLAGS"
+
+ # Need to include Xlib.h and Xutil.h to avoid "present but cannot be
compiled" warnings on Solaris 10
+- AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h],
++ AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h X11/extensions/Xcomposite.h],
+ [X11_A_OK=yes],
+ [X11_A_OK=no; break],
+ [
+@@ -167,7 +167,7 @@
+
+ if test "x$X11_A_OK" = xno && test "x$X11_NOT_NEEDED" !=
xyes; then
+ HELP_MSG_MISSING_DEPENDENCY([x11])
+- AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h
Intrinsic.h). $HELP_MSG])
++ AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h Intrinsic.h
Xcomposite.h). $HELP_MSG])
+ fi
+
+ AC_SUBST(X_CFLAGS)
commit da0851abceb98b428df09ca3b1bba78bf507809e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Mar 1 10:13:57 2016 +0100
Use a simple backport for PRPR2462/8074839, Don't backport the crc check for
pack.gz. It's not tested well upstream.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8056ec7..ba67d30 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -737,7 +737,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -842,8 +842,7 @@ Patch202: system-libpng.patch
Patch203: system-lcms.patch
# PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the
unpack200 binary"
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
-Patch502: pr2462-01.patch
-Patch503: pr2462-02.patch
+Patch502: pr2462.patch
# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux
Patch605: soundFontPatch.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
@@ -1139,7 +1138,6 @@ sh %{SOURCE12}
%patch605
%patch502
-%patch503
%patch504
%patch505
%patch506
@@ -1713,6 +1711,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 29 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.72-12.b15
+- Use a simple backport for PRPR2462/8074839.
+- Don't backport the crc check for pack.gz. It's not tested well upstream.
+
* Mon Feb 29 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b16
- Fix regression introduced on s390 by large code cache change.
- Update to u72b16.
diff --git a/pr2462-01.patch b/pr2462-01.patch
deleted file mode 100644
index 09de4f9..0000000
--- a/pr2462-01.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-# HG changeset patch
-# User kizune
-# Date 1403186822 -14400
-# Thu Jun 19 18:07:02 2014 +0400
-# Node ID ad88ac6bac57e540e87fdb5d9ad15528b1beee11
-# Parent f0137fa5ba5298a73f14ae508463dc7e890a70a5
-8000650, PR2462: unpack200.exe should check gzip crc
-Reviewed-by: ksrini
-
-diff -r f0137fa5ba52 -r ad88ac6bac57
src/share/native/com/sun/java/util/jar/pack/main.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Apr 23 13:48:02
2015 -0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Jun 19 18:07:02
2014 +0400
-@@ -62,6 +62,13 @@
- return unpacker::run(argc, argv);
- }
-
-+// Dealing with big-endian arch
-+#ifdef _BIG_ENDIAN
-+#define SWAP_INT(a) (((a>>24)&0xff) | ((a<<8)&0xff0000) |
((a>>8)&0xff00) | ((a<<24)&0xff000000))
-+#else
-+#define SWAP_INT(a) (a)
-+#endif
-+
- // Single-threaded, implementation, not reentrant.
- // Includes a weak error check against MT access.
- #ifndef THREAD_SELF
-@@ -385,6 +392,7 @@
- u.start();
- }
- } else {
-+ u.gzcrc = 0;
- u.start(peek, sizeof(peek));
- }
-
-@@ -425,7 +433,23 @@
- status = 1;
- }
-
-- if (u.infileptr != null) {
-+ if (!u.aborting() && u.infileptr != null) {
-+ if (u.gzcrc != 0) {
-+ // Read the CRC information from the gzip container
-+ fseek(u.infileptr, -8, SEEK_END);
-+ uint filecrc;
-+ fread(&filecrc, sizeof(filecrc), 1, u.infileptr);
-+ if (u.gzcrc != SWAP_INT(filecrc)) { // CRC error
-+ if (strcmp(destination_file, "-") != 0) {
-+ // Output is not stdout, remove it, it's broken
-+ if (u.jarout != null)
-+ u.jarout->closeJarFile(false);
-+ remove(destination_file);
-+ }
-+ // Print out the error and exit with return code != 0
-+ u.abort("CRC error, invalid compressed data.");
-+ }
-+ }
- fclose(u.infileptr);
- u.infileptr = null;
- }
-diff -r f0137fa5ba52 -r ad88ac6bac57
src/share/native/com/sun/java/util/jar/pack/unpack.h
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Apr 23 13:48:02
2015 -0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Jun 19 18:07:02
2014 +0400
-@@ -171,6 +171,7 @@
- bytes inbytes; // direct
- gunzip* gzin; // gunzip filter, if any
- jar* jarout; // output JAR file
-+ uint gzcrc; // CRC gathered from gzip content
-
- #ifndef PRODUCT
- int nowrite;
-diff -r f0137fa5ba52 -r ad88ac6bac57 src/share/native/com/sun/java/util/jar/pack/zip.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Apr 23 13:48:02
2015 -0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Jun 19 18:07:02
2014 +0400
-@@ -551,6 +551,7 @@
- break;
- }
- int nr = readlen - zs.avail_out;
-+ u->gzcrc = crc32(u->gzcrc, (const unsigned char *)bufptr, nr);
- numread += nr;
- bufptr += nr;
- assert(numread <= maxlen);
-@@ -589,6 +590,7 @@
- zstream = NEW(z_stream, 1);
- u->gzin = this;
- u->read_input_fn = read_input_via_gzip;
-+ u->gzcrc = crc32(0L, Z_NULL, 0);
- }
-
- void gunzip::start(int magic) {
-diff -r f0137fa5ba52 -r ad88ac6bac57 test/tools/pack200/PackChecksum.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/test/tools/pack200/PackChecksum.java Thu Jun 19 18:07:02 2014 +0400
-@@ -0,0 +1,107 @@
-+/*
-+ * Copyright (c) 2014, 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.io.File;
-+import java.io.FileOutputStream;
-+import java.io.IOException;
-+import java.io.RandomAccessFile;
-+import java.util.ArrayList;
-+import java.util.List;
-+import java.util.jar.JarEntry;
-+import java.util.jar.JarOutputStream;
-+
-+/*
-+ * @test
-+ * @bug 8000650
-+ * @summary unpack200.exe should check gzip crc
-+ * @compile -XDignore.symbol.file Utils.java PackChecksum.java
-+ * @run main PackChecksum
-+ * @author kizune
-+ */
-+public class PackChecksum {
-+
-+ public static void main(String... args) throws Exception {
-+ testChecksum();
-+ }
-+
-+ static void testChecksum() throws Exception {
-+
-+ // Create a fresh .jar file
-+ File testFile = new File("src_tools.jar");
-+ File testPack = new File("src_tools.pack.gz");
-+ generateJar(testFile);
-+ List<String> cmdsList = new ArrayList<>();
-+
-+ // Create .pack file
-+ cmdsList.add(Utils.getPack200Cmd());
-+ cmdsList.add(testPack.getName());
-+ cmdsList.add(testFile.getName());
-+ Utils.runExec(cmdsList);
-+
-+ // Mess up with the checksum of the packed file
-+ RandomAccessFile raf = new RandomAccessFile(testPack, "rw");
-+ raf.seek(raf.length() - 8);
-+ int val = raf.readInt();
-+ val = Integer.MAX_VALUE - val;
-+ raf.seek(raf.length() - 8);
-+ raf.writeInt(val);
-+ raf.close();
-+
-+ File dstFile = new File("dst_tools.jar");
-+ cmdsList.clear();
-+ cmdsList.add(Utils.getUnpack200Cmd());
-+ cmdsList.add(testPack.getName());
-+ cmdsList.add(dstFile.getName());
-+
-+ boolean passed = false;
-+ try {
-+ Utils.runExec(cmdsList);
-+ } catch (RuntimeException re) {
-+ // unpack200 should exit with non-zero exit code
-+ passed = true;
-+ }
-+
-+ // tidy up
-+ if (testFile.exists()) testFile.delete();
-+ if (testPack.exists()) testPack.delete();
-+ if (dstFile.exists()) dstFile.delete();
-+ if (!passed) {
-+ throw new Exception("File with incorrect CRC unpacked without the
error.");
-+ }
-+ }
-+
-+ static void generateJar(File result) throws IOException {
-+ if (result.exists()) {
-+ result.delete();
-+ }
-+
-+ try (JarOutputStream output = new JarOutputStream(new FileOutputStream(result));
) {
-+ for (int i = 0 ; i < 100 ; i++) {
-+ JarEntry e = new JarEntry("F-" + i + ".txt");
-+ output.putNextEntry(e);
-+ }
-+ output.flush();
-+ output.close();
-+ }
-+ }
-+
-+}
diff --git a/pr2462-02.patch b/pr2462.patch
similarity index 85%
rename from pr2462-02.patch
rename to pr2462.patch
index 47360e7..17e1f69 100644
--- a/pr2462-02.patch
+++ b/pr2462.patch
@@ -1,15 +1,15 @@
# HG changeset patch
# User mikael
-# Date 1435336416 -3600
-# Fri Jun 26 17:33:36 2015 +0100
-# Node ID d64c0a9b8b5a43c1b7ba88a871f001fc6b44a3d4
-# Parent ad88ac6bac57e540e87fdb5d9ad15528b1beee11
-8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
+# Date 1426870964 25200
+# Fri Mar 20 10:02:44 2015 -0700
+# Node ID ee13ce369705a700b867f8c77423580b7b22cc13
+# Parent 7847ccfb240b35ed0dd328f0404b713b20e0905a
+8074839: Resolve disabled warnings for libunpack and the unpack200 binary
Reviewed-by: dholmes, ksrini
-diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/bytes.h
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h Fri Jun 26 17:33:36
2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h
@@ -63,7 +63,7 @@
bytes res;
res.ptr = ptr + beg;
@@ -19,9 +19,9 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
return res;
}
// building C strings inside byte buffers:
-diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/jni.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Fri Jun 26 17:33:36
2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp
@@ -292,7 +292,7 @@
if (uPtr->aborting()) {
@@ -48,10 +48,10 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE);
CHECK_EXCEPTION_RETURN_VALUE(prop, false);
const char* value = env->GetStringUTFChars(pValue, JNI_FALSE);
-diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/main.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Fri Jun 26 17:33:36
2015 +0100
-@@ -149,31 +149,28 @@
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp
+@@ -142,31 +142,28 @@
return progname;
}
@@ -101,9 +101,9 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
}
}
-diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/unpack.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Thu Jun 19
18:07:02 2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Fri Jun 26
17:33:36 2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
@@ -222,9 +222,9 @@
}
@@ -170,7 +170,7 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
initGroupIndexes();
// Initialize hashTab to a generous power-of-two size.
-@@ -3676,21 +3677,22 @@
+@@ -3677,21 +3678,22 @@
unpacker* debug_u;
@@ -197,7 +197,7 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
case CONSTANT_Signature:
if (value.b.ptr == null)
return ref(0)->string();
-@@ -3710,26 +3712,28 @@
+@@ -3711,26 +3713,28 @@
break;
default:
if (nrefs == 0) {
@@ -235,10 +235,10 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
}
void print_cp_entries(int beg, int end) {
-diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/unpack.h
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Fri Jun 26 17:33:36
2015 +0100
-@@ -210,7 +210,7 @@
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h
+@@ -209,7 +209,7 @@
byte* rp; // read pointer (< rplimit <= input.limit())
byte* rplimit; // how much of the input block has been read?
julong bytes_read;
@@ -247,9 +247,9 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
// callback to read at least one byte, up to available input
typedef jlong (*read_input_fn_t)(unpacker* self, void* buf, jlong minlen, jlong
maxlen);
-diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/utils.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp Fri Jun 26 17:33:36
2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp
@@ -81,7 +81,7 @@
int assert_failed(const char* p) {
char message[1<<12];
@@ -259,9 +259,9 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
breakpoint();
unpack_abort(message);
return 0;
-diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/zip.cpp
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Fri Jun 26 17:33:36
2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
@@ -84,7 +84,7 @@
}
@@ -286,18 +286,9 @@ diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack
PRINTCR((2, "writing zip comment\n"));
// Write the comment.
-@@ -590,7 +590,7 @@
- zstream = NEW(z_stream, 1);
- u->gzin = this;
- u->read_input_fn = read_input_via_gzip;
-- u->gzcrc = crc32(0L, Z_NULL, 0);
-+ u->gzcrc = crc32(0, Z_NULL, 0);
- }
-
- void gunzip::start(int magic) {
-diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/zip.h
---- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h Thu Jun 19 18:07:02
2014 +0400
-+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h Fri Jun 26 17:33:36
2015 +0100
+diff --git openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
@@ -68,8 +68,8 @@
}
commit cbca541ec5763393088798667a41e8b9b82c58da
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Mar 1 09:29:01 2016 +0100
moved to u72b16
diff --git a/.gitignore b/.gitignore
index 1019c09..fcefab3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,3 +52,4 @@
/aarch64-jdk8u71-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 131894c..8056ec7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -152,7 +152,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-jdk8u72-b15
+%global revision aarch64-jdk8u72-b16
# 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
@@ -824,12 +824,10 @@ Patch102: %{name}-size_t.patch
Patch103: s390-size_t_format_flags.patch
# AArch64-specific upstreamable patches
-# Revert 'Fixes to work around "missing 'client' JVM" error
messages' and sync jvm.cfg with OpenJDK 9
-Patch104: remove_aarch64_jvm.cfg_divergence.patch
-# RH1300630, 8147805: aarch64: C1 segmentation fault due to inline
Unsafe.getAndSetObject
-Patch105: rh1300630.patch
# Remove template in AArch64 port which causes issues with GCC 6
Patch106: remove_aarch64_template_for_gcc6.patch
+# Remove accidentally included global large code cache changes which break S390
+Patch107: make_reservedcodecachesize_changes_aarch64_only.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -1129,9 +1127,8 @@ sh %{SOURCE12}
%patch103
# aarch64 build fixes
-%patch104
-%patch105
%patch106
+%patch107
# Zero PPC fixes.
%patch403
@@ -1716,6 +1713,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 29 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b16
+- Fix regression introduced on s390 by large code cache change.
+- Update to u72b16.
+- Drop 8147805 and jvm.cfg fix which are applied upstream.
+
* Wed Feb 24 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-11.b15
- Add patches to allow the SunEC provider to be built with the system NSS install.
- Re-generate source tarball so it includes ecc_impl.h.
diff --git a/make_reservedcodecachesize_changes_aarch64_only.patch
b/make_reservedcodecachesize_changes_aarch64_only.patch
new file mode 100644
index 0000000..aa2eda9
--- /dev/null
+++ b/make_reservedcodecachesize_changes_aarch64_only.patch
@@ -0,0 +1,15 @@
+diff -r 4c440540c962 src/share/vm/runtime/arguments.cpp
+--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Mon Feb 29 06:45:24 2016 +0000
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Mon Feb 29 16:36:41 2016 +0000
+@@ -1137,8 +1137,9 @@
+ }
+ // Increase the code cache size - tiered compiles a lot more.
+ if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
+- FLAG_SET_DEFAULT(ReservedCodeCacheSize,
+- MIN2(CODE_CACHE_DEFAULT_LIMIT, ReservedCodeCacheSize * 5));
++ NOT_AARCH64(FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 5));
++ AARCH64_ONLY(FLAG_SET_DEFAULT(ReservedCodeCacheSize,
++ MIN2(CODE_CACHE_DEFAULT_LIMIT, ReservedCodeCacheSize * 5)));
+ }
+ if (!UseInterpreter) { // -Xcomp
+ Tier3InvokeNotifyFreqLog = 0;
diff --git a/remove_aarch64_jvm.cfg_divergence.patch
b/remove_aarch64_jvm.cfg_divergence.patch
deleted file mode 100644
index 64aeb57..0000000
--- a/remove_aarch64_jvm.cfg_divergence.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -r 57824090cf28 src/share/bin/java.c
---- openjdk/jdk/src/share/bin/java.c Fri Feb 05 17:41:45 2016 +0000
-+++ openjdk/jdk/src/share/bin/java.c Thu Feb 18 03:43:51 2016 +0000
-@@ -699,22 +699,6 @@
- }
- }
-
--/*
-- * This is called if the jvmtype returned by CheckJvmType above
-- * didn't exist. In this case if it was the default VM and we
-- * selected the server vm we will allow it to use the client vm
-- * instead.
-- */
--char *
--GetAltJvmType(char *jvmtype)
--{
-- if ((knownVMs[0].flag == VM_IF_SERVER_CLASS)) {
-- if (jvmtype == knownVMs[0].server_class+1) return knownVMs[0].name+1;
-- if (jvmtype == knownVMs[0].name+1) return knownVMs[0].server_class+1;
-- }
-- return NULL;
--}
--
- /* copied from HotSpot function "atomll()" */
- static int
- parse_size(const char *s, jlong *result) {
-diff -r 57824090cf28 src/share/bin/java.h
---- openjdk/jdk/src/share/bin/java.h Fri Feb 05 17:41:45 2016 +0000
-+++ openjdk/jdk/src/share/bin/java.h Thu Feb 18 03:43:51 2016 +0000
-@@ -164,7 +164,6 @@
- */
- jint ReadKnownVMs(const char *jvmcfg, jboolean speculative);
- char *CheckJvmType(int *argc, char ***argv, jboolean speculative);
--char *GetAltJvmType(char *jvmtype);
- void AddOption(char *str, void *info);
-
- enum ergo_policy {
-diff -r 57824090cf28 src/solaris/bin/aarch64/jvm.cfg
---- openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg Fri Feb 05 17:41:45 2016 +0000
-+++ openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg Thu Feb 18 03:43:51 2016 +0000
-@@ -31,6 +31,5 @@
- # "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
- # and may not be available in a future release.
- #
---client IF_SERVER_CLASS -server
- -server KNOWN
---minimal KNOWN
-+-client IGNORE
diff --git a/rh1300630.patch b/rh1300630.patch
deleted file mode 100644
index d9c46c5..0000000
--- a/rh1300630.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-# HG changeset patch
-# User hshi
-# Date 1455640059 0
-# Tue Feb 16 16:27:39 2016 +0000
-# Node ID f90e98d9a3e53ffa6d4611bec799d8a9b338d82c
-# Parent 225180d970c1fd447b87de8122016cdbfaea0dff
-8147805: aarch64: C1 segmentation fault due to inline Unsafe.getAndSetObject
-Summary: In Aarch64 LIR_Assembler.atomic_op, keep stored data reference register in
decompressed forms as it may be used later
-Reviewed-by: aph
-Contributed-by: hui.shi(a)linaro.org, felix.yang(a)linaro.org
-
-diff -r 225180d970c1 -r f90e98d9a3e5 src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
---- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Thu Jan 21 22:17:05
2016 +0000
-+++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue Feb 16 16:27:39
2016 +0000
-@@ -3202,7 +3202,8 @@
- Register obj = as_reg(data);
- Register dst = as_reg(dest);
- if (is_oop && UseCompressedOops) {
-- __ encode_heap_oop(obj);
-+ __ encode_heap_oop(rscratch1, obj);
-+ obj = rscratch1;
- }
- assert_different_registers(obj, addr.base(), tmp, rscratch2, dst);
- Label again;
diff --git a/sources b/sources
index 1f2907c..e244932 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-29b804c787abbbf2e2dc4189c83c982c aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
+6e925f9328e82e69ada86fa0c7bac338 aarch64-port-jdk8u-aarch64-jdk8u72-b16-ec.tar.xz
commit acfc6fd0682da08688b782d5375d7628be82aac4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Feb 24 18:46:52 2016 +0100
Add patches to allow the SunEC provider to be built with the system NSS install.
Re-generate source tarball so it includes ecc_impl.h.
Adjust tarball generation script to allow ecc_impl.h to be included.
Bring over NSS changes from java-1.7.0-openjdk spec file (NSS_CFLAGS/NSS_LIBS)
Remove patch which disables the SunEC provider as it is now usable.
Correct spelling mistakes in tarball generation script.
Resolves: rhbz#1019554
diff --git a/.gitignore b/.gitignore
index c6d9c14..1019c09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,3 +51,4 @@
/aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
/aarch64-jdk8u71-b15.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 8ed2b21..c6be068 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -2,7 +2,7 @@
# Generates the 'source tarball' for JDK 8 projects.
#
# Example:
-# When used from local repo set REPO_ROOT pointing to file:// wth your repo
+# When used from local repo set REPO_ROOT pointing to file:// with your repo
# if your local repo follows upstream forests conventions, you may be enough by setting
OPENJDK_URL
# if you wont to use local copy of patch PR2126 set path to it to PR2126 variable
#
@@ -29,7 +29,7 @@ if [ "x$1" = "xhelp" ] ; then
echo "VERSION - the version of the specified OpenJDK project"
echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional;
only needed by defaults)"
echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by
defaults)"
- echo "OPENJDK_URL - the URL to retrive code from (optional; defaults to
${OPENJDK_URL_DEFAULT})"
+ echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to
${OPENJDK_URL_DEFAULT})"
echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
@@ -98,7 +98,11 @@ done
echo "Removing EC source code we don't build"
+
+mv -v jdk/src/share/native/sun/security/ec/impl/ecc_impl.h .
rm -vrf jdk/src/share/native/sun/security/ec/impl
+mkdir jdk/src/share/native/sun/security/ec/impl
+mv -v ecc_impl.h jdk/src/share/native/sun/security/ec/impl
echo "Syncing EC list with NSS"
if [ "x$PR2126" = "x" ] ; then
@@ -113,7 +117,7 @@ else
fi;
popd
-echo "Compresing remaining forest"
+echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
tar --exclude-vcs -cJf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
else
@@ -122,6 +126,6 @@ fi
mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
popd
-echo "Done, you may wont to remove freshly cloned repo..."
+echo "Done. You may want to remove the uncompressed version."
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6c2e345..131894c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -82,6 +82,8 @@
#looks liekopenjdk RPM specific bug
# Always set this so the nss.cfg file is not broken
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
+%global NSS_LIBS %(pkg-config --libs nss)
+%global NSS_CFLAGS %(pkg-config --cflags nss-softokn)
# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libmawt[.]so.*
@@ -735,7 +737,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -755,9 +757,9 @@ 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-jdk8u71-b15 FILE_NAME_ROOT=${VERSION}
+# VERSION=aarch64-jdk8u72-b15 FILE_NAME_ROOT=aarch64-port-jdk8u-${VERSION}-ec
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
-Source0: %{project}-%{repo}-%{revision}.tar.xz
+Source0: %{project}-%{repo}-%{revision}-ec.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -800,10 +802,18 @@ Patch3: java-atk-wrapper-security.patch
Patch5: multiple-pkcs11-library-init.patch
# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
Patch504: rh1163501.patch
-# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
(upstreaming post-CPU 2015/07)
+# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
Patch511: rh1214835.patch
# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
Patch512: no_strict_overflow.patch
+# Support for building the SunEC provider with the system NSS installation
+# PR1983: Support using the system installation of NSS with the SunEC provider
+# PR2127: SunEC provider crashes when built using system NSS
+# PR2815: Race condition in SunEC provider with system NSS
+Patch513: pr1983-jdk.patch
+Patch514: pr1983-root.patch
+Patch515: pr2127.patch
+Patch516: pr2815.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
@@ -818,6 +828,8 @@ Patch103: s390-size_t_format_flags.patch
Patch104: remove_aarch64_jvm.cfg_divergence.patch
# RH1300630, 8147805: aarch64: C1 segmentation fault due to inline
Unsafe.getAndSetObject
Patch105: rh1300630.patch
+# Remove template in AArch64 port which causes issues with GCC 6
+Patch106: remove_aarch64_template_for_gcc6.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -852,8 +864,6 @@ Patch505: 8143855.patch
Patch201: system-libjpeg.patch
# Local fixes
-# Turns off ECC support as we don't ship the SunEC provider currently
-Patch12: removeSunEcProvider-RH1154143.patch
# Non-OpenJDK fixes
Patch300: jstack-pr1845.patch
@@ -892,6 +902,9 @@ BuildRequires: libffi-devel
BuildRequires: tzdata-java >= 2015d
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
+# Build requirements for SunEC system NSS support
+BuildRequires: nss-softokn-freebl-devel >= 3.16.1
+
# cacerts build requirement.
BuildRequires: openssl
%if %{with_systemtap}
@@ -1109,7 +1122,6 @@ sh %{SOURCE12}
%patch3
%patch5
%patch7
-%patch12
# s390 build fixes
%patch100
@@ -1119,6 +1131,7 @@ sh %{SOURCE12}
# aarch64 build fixes
%patch104
%patch105
+%patch106
# Zero PPC fixes.
%patch403
@@ -1136,6 +1149,10 @@ sh %{SOURCE12}
%patch507
%patch511
%patch512
+%patch513
+%patch514
+%patch515
+%patch516
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1218,6 +1235,8 @@ fi
mkdir -p %{buildoutputdir $suffix}
pushd %{buildoutputdir $suffix}
+NSS_LIBS="%{NSS_LIBS} -lfreebl" \
+NSS_CFLAGS="%{NSS_CFLAGS}" \
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
@@ -1229,6 +1248,7 @@ bash ../../configure \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=$debugbuild \
--enable-unlimited-crypto \
+ --enable-system-nss \
--with-zlib=system \
--with-libjpeg=system \
--with-giflib=system \
@@ -1696,6 +1716,16 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Feb 24 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-11.b15
+- Add patches to allow the SunEC provider to be built with the system NSS install.
+- Re-generate source tarball so it includes ecc_impl.h.
+- Adjust tarball generation script to allow ecc_impl.h to be included.
+- Bring over NSS changes from java-1.7.0-openjdk spec file (NSS_CFLAGS/NSS_LIBS)
+- Remove patch which disables the SunEC provider as it is now usable.
+- Correct spelling mistakes in tarball generation script.
+- Move completely unrelated AArch64 gcc 6 patch into separate file.
+- Resolves: rhbz#1019554 (fedora bug)
+
* Tue Feb 23 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-10.b15
- returning accidentlay removed hunk from renamed and so wrongly merged
remove_aarch64_jvm.cfg_divergence.patch
diff --git a/pr1983-jdk.patch b/pr1983-jdk.patch
new file mode 100644
index 0000000..a0b4e1a
--- /dev/null
+++ b/pr1983-jdk.patch
@@ -0,0 +1,693 @@
+# HG changeset patch
+# User andrew
+# Date 1453863246 0
+# Wed Jan 27 02:54:06 2016 +0000
+# Node ID 48c15869ecd568263249af4b9a4e98d4e57f9a8f
+# Parent afd392dfaed501ac674a7cc3e37353ce300969c7
+PR1983: Support using the system installation of NSS with the SunEC provider
+Summary: Apply code changes from PR1699 & PR1742 & forward-port Makefile changes
to the new build.
+
+diff -r afd392dfaed5 -r 48c15869ecd5 make/lib/SecurityLibraries.gmk
+--- openjdk/jdk/make/lib/SecurityLibraries.gmk Tue Jan 26 22:26:26 2016 +0000
++++ openjdk/jdk/make/lib/SecurityLibraries.gmk Wed Jan 27 02:54:06 2016 +0000
+@@ -218,8 +218,17 @@
+
+ ifeq ($(ENABLE_INTREE_EC), yes)
+
+- BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \
++ BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec
++
++ ifeq ($(USE_EXTERNAL_NSS), true)
++ BUILD_LIBSUNEC_IMPL_DIR :=
++ BUILD_LIBSUNEC_FLAGS += $(NSS_CFLAGS) -DSYSTEM_NSS -DNSS_ENABLE_ECC
++ else
++ BUILD_LIBSUNEC_IMPL_DIR := \
++ $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
++ BUILD_LIBSUNEC_FLAGS += \
+ -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl
++ endif
+
+ #
+ # On sol-sparc...all libraries are compiled with -xregs=no%appl
+@@ -235,8 +244,8 @@
+ $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \
+ LIBRARY := sunec, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+- SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \
+- $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \
++ SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec/ECC_JNI.cpp \
++ $(BUILD_LIBSUNEC_IMPL_DIR), \
+ LANG := C++, \
+ OPTIMIZATION := LOW, \
+ CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \
+@@ -248,8 +257,8 @@
+ LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
+ LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX := $(LIBCXX), \
+- LDFLAGS_SUFFIX_linux := -lc, \
+- LDFLAGS_SUFFIX_solaris := -lc, \
++ LDFLAGS_SUFFIX_linux := -lc $(NSS_LIBS), \
++ LDFLAGS_SUFFIX_solaris := -lc $(NSS_LIBS), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+ -D "JDK_FNAME=sunec.dll" \
+diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/ECC_JNI.cpp
+--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Tue Jan 26 22:26:26 2016
+0000
++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 02:54:06 2016
+0000
+@@ -24,7 +24,7 @@
+ */
+
+ #include <jni.h>
+-#include "impl/ecc_impl.h"
++#include "ecc_impl.h"
+
+ #define ILLEGAL_STATE_EXCEPTION "java/lang/IllegalStateException"
+ #define INVALID_ALGORITHM_PARAMETER_EXCEPTION \
+@@ -89,7 +89,7 @@
+ */
+ JNIEXPORT jobjectArray
+ JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
+- (JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed)
++ (JNIEnv *env, jclass UNUSED(clazz), jint UNUSED(keySize), jbyteArray encodedParams,
jbyteArray seed)
+ {
+ ECPrivateKey *privKey = NULL; // contains both public and private values
+ ECParams *ecparams = NULL;
+@@ -190,7 +190,7 @@
+ */
+ JNIEXPORT jbyteArray
+ JNICALL Java_sun_security_ec_ECDSASignature_signDigest
+- (JNIEnv *env, jclass clazz, jbyteArray digest, jbyteArray privateKey, jbyteArray
encodedParams, jbyteArray seed)
++ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray digest, jbyteArray privateKey,
jbyteArray encodedParams, jbyteArray seed)
+ {
+ jbyte* pDigestBuffer = NULL;
+ jint jDigestLength = env->GetArrayLength(digest);
+@@ -299,7 +299,7 @@
+ */
+ JNIEXPORT jboolean
+ JNICALL Java_sun_security_ec_ECDSASignature_verifySignedDigest
+- (JNIEnv *env, jclass clazz, jbyteArray signedDigest, jbyteArray digest, jbyteArray
publicKey, jbyteArray encodedParams)
++ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray signedDigest, jbyteArray digest,
jbyteArray publicKey, jbyteArray encodedParams)
+ {
+ jboolean isValid = false;
+
+@@ -384,7 +384,7 @@
+ */
+ JNIEXPORT jbyteArray
+ JNICALL Java_sun_security_ec_ECDHKeyAgreement_deriveKey
+- (JNIEnv *env, jclass clazz, jbyteArray privateKey, jbyteArray publicKey, jbyteArray
encodedParams)
++ (JNIEnv *env, jclass UNUSED(clazz), jbyteArray privateKey, jbyteArray publicKey,
jbyteArray encodedParams)
+ {
+ jbyteArray jSecret = NULL;
+ ECParams *ecparams = NULL;
+diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/ecc_impl.h
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Jan 27 02:54:06 2016
+0000
+@@ -0,0 +1,298 @@
++/*
++ * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Use is subject to license terms.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this library; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin Street, 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.
++ */
++
++/* *********************************************************************
++ *
++ * The Original Code is the Netscape security libraries.
++ *
++ * The Initial Developer of the Original Code is
++ * Netscape Communications Corporation.
++ * Portions created by the Initial Developer are Copyright (C) 1994-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
++ * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
++ *
++ * Last Modified Date from the Original Code: November 2013
++ *********************************************************************** */
++
++#ifndef _ECC_IMPL_H
++#define _ECC_IMPL_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <sys/types.h>
++
++#ifdef SYSTEM_NSS
++#include <secitem.h>
++#include <secerr.h>
++#include <keythi.h>
++#ifdef LEGACY_NSS
++#include <softoken.h>
++#else
++#include <blapi.h>
++#endif
++#else
++#include "ecl-exp.h"
++#endif
++
++/*
++ * Multi-platform definitions
++ */
++#ifdef __linux__
++#define B_FALSE FALSE
++#define B_TRUE TRUE
++typedef unsigned char uint8_t;
++typedef unsigned long ulong_t;
++typedef enum { B_FALSE, B_TRUE } boolean_t;
++#endif /* __linux__ */
++
++#ifdef _ALLBSD_SOURCE
++#include <stdint.h>
++#define B_FALSE FALSE
++#define B_TRUE TRUE
++typedef unsigned long ulong_t;
++typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
++#endif /* _ALLBSD_SOURCE */
++
++#ifdef AIX
++#define B_FALSE FALSE
++#define B_TRUE TRUE
++typedef unsigned char uint8_t;
++typedef unsigned long ulong_t;
++#endif /* AIX */
++
++#ifdef _WIN32
++typedef unsigned char uint8_t;
++typedef unsigned long ulong_t;
++typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
++#define strdup _strdup /* Replace POSIX name with ISO C++ name */
++#endif /* _WIN32 */
++
++#ifndef _KERNEL
++#include <stdlib.h>
++#endif /* _KERNEL */
++
++#define EC_MAX_DIGEST_LEN 1024 /* max digest that can be signed */
++#define EC_MAX_POINT_LEN 145 /* max len of DER encoded Q */
++#define EC_MAX_VALUE_LEN 72 /* max len of ANSI X9.62 private value d */
++#define EC_MAX_SIG_LEN 144 /* max signature len for supported curves */
++#define EC_MIN_KEY_LEN 112 /* min key length in bits */
++#define EC_MAX_KEY_LEN 571 /* max key length in bits */
++#define EC_MAX_OID_LEN 10 /* max length of OID buffer */
++
++/*
++ * Various structures and definitions from NSS are here.
++ */
++
++#ifndef SYSTEM_NSS
++#ifdef _KERNEL
++#define PORT_ArenaAlloc(a, n, f) kmem_alloc((n), (f))
++#define PORT_ArenaZAlloc(a, n, f) kmem_zalloc((n), (f))
++#define PORT_ArenaGrow(a, b, c, d) NULL
++#define PORT_ZAlloc(n, f) kmem_zalloc((n), (f))
++#define PORT_Alloc(n, f) kmem_alloc((n), (f))
++#else
++#define PORT_ArenaAlloc(a, n, f) malloc((n))
++#define PORT_ArenaZAlloc(a, n, f) calloc(1, (n))
++#define PORT_ArenaGrow(a, b, c, d) NULL
++#define PORT_ZAlloc(n, f) calloc(1, (n))
++#define PORT_Alloc(n, f) malloc((n))
++#endif
++
++#define PORT_NewArena(b) (char *)12345
++#define PORT_ArenaMark(a) NULL
++#define PORT_ArenaUnmark(a, b)
++#define PORT_ArenaRelease(a, m)
++#define PORT_FreeArena(a, b)
++#define PORT_Strlen(s) strlen((s))
++#define PORT_SetError(e)
++
++#define PRBool boolean_t
++#define PR_TRUE B_TRUE
++#define PR_FALSE B_FALSE
++
++#ifdef _KERNEL
++#define PORT_Assert ASSERT
++#define PORT_Memcpy(t, f, l) bcopy((f), (t), (l))
++#else
++#define PORT_Assert assert
++#define PORT_Memcpy(t, f, l) memcpy((t), (f), (l))
++#endif
++
++#endif
++
++#define CHECK_OK(func) if (func == NULL) goto cleanup
++#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
++
++#ifndef SYSTEM_NSS
++typedef enum {
++ siBuffer = 0,
++ siClearDataBuffer = 1,
++ siCipherDataBuffer = 2,
++ siDERCertBuffer = 3,
++ siEncodedCertBuffer = 4,
++ siDERNameBuffer = 5,
++ siEncodedNameBuffer = 6,
++ siAsciiNameString = 7,
++ siAsciiString = 8,
++ siDEROID = 9,
++ siUnsignedInteger = 10,
++ siUTCTime = 11,
++ siGeneralizedTime = 12
++} SECItemType;
++
++typedef struct SECItemStr SECItem;
++
++struct SECItemStr {
++ SECItemType type;
++ unsigned char *data;
++ unsigned int len;
++};
++
++typedef SECItem SECKEYECParams;
++
++typedef enum { ec_params_explicit,
++ ec_params_named
++} ECParamsType;
++
++typedef enum { ec_field_GFp = 1,
++ ec_field_GF2m
++} ECFieldType;
++
++struct ECFieldIDStr {
++ int size; /* field size in bits */
++ ECFieldType type;
++ union {
++ SECItem prime; /* prime p for (GFp) */
++ SECItem poly; /* irreducible binary polynomial for (GF2m) */
++ } u;
++ int k1; /* first coefficient of pentanomial or
++ * the only coefficient of trinomial
++ */
++ int k2; /* two remaining coefficients of pentanomial */
++ int k3;
++};
++typedef struct ECFieldIDStr ECFieldID;
++
++struct ECCurveStr {
++ SECItem a; /* contains octet stream encoding of
++ * field element (X9.62 section 4.3.3)
++ */
++ SECItem b;
++ SECItem seed;
++};
++typedef struct ECCurveStr ECCurve;
++
++typedef void PRArenaPool;
++
++struct ECParamsStr {
++ PRArenaPool * arena;
++ ECParamsType type;
++ ECFieldID fieldID;
++ ECCurve curve;
++ SECItem base;
++ SECItem order;
++ int cofactor;
++ SECItem DEREncoding;
++ ECCurveName name;
++ SECItem curveOID;
++};
++typedef struct ECParamsStr ECParams;
++
++struct ECPublicKeyStr {
++ ECParams ecParams;
++ SECItem publicValue; /* elliptic curve point encoded as
++ * octet stream.
++ */
++};
++typedef struct ECPublicKeyStr ECPublicKey;
++
++struct ECPrivateKeyStr {
++ ECParams ecParams;
++ SECItem publicValue; /* encoded ec point */
++ SECItem privateValue; /* private big integer */
++ SECItem version; /* As per SEC 1, Appendix C, Section C.4 */
++};
++typedef struct ECPrivateKeyStr ECPrivateKey;
++
++typedef enum _SECStatus {
++ SECBufferTooSmall = -3,
++ SECWouldBlock = -2,
++ SECFailure = -1,
++ SECSuccess = 0
++} SECStatus;
++#endif
++
++#ifdef _KERNEL
++#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))
++#else
++/*
++ This function is no longer required because the random bytes are now
++ supplied by the caller. Force a failure.
++*/
++#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
++#endif
++#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
++#define MP_TO_SEC_ERROR(err)
++
++#define SECITEM_TO_MPINT(it, mp) \
++ CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
++
++extern int ecc_knzero_random_generator(uint8_t *, size_t);
++extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);
++
++#ifdef SYSTEM_NSS
++#define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b)
++#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d)
++#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e)
++#define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c)
++#define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e)
++#else
++extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);
++
++extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);
++extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,
++ int);
++extern void SECITEM_FreeItem(SECItem *, boolean_t);
++
++/* This function has been modified to accept an array of random bytes */
++extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,
++ const unsigned char* random, int randomlen, int);
++/* This function has been modified to accept an array of random bytes */
++extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
++ const unsigned char* random, int randomlen, int);
++extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
++ const SECItem *, int);
++extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
++ SECItem *, int);
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _ECC_IMPL_H */
+diff -r afd392dfaed5 -r 48c15869ecd5 src/share/native/sun/security/ec/impl/ecc_impl.h
+--- openjdk/jdk/src/share/native/sun/security/ec/impl/ecc_impl.h Tue Jan 26 22:26:26 2016
+0000
++++ /dev/null Thu Jan 01 00:00:00 1970 +0000
+@@ -1,271 +0,0 @@
+-/*
+- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Use is subject to license terms.
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2.1 of the License, or (at your option) any later version.
+- *
+- * This library 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
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public License
+- * along with this library; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin Street, 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.
+- */
+-
+-/* *********************************************************************
+- *
+- * The Original Code is the Netscape security libraries.
+- *
+- * The Initial Developer of the Original Code is
+- * Netscape Communications Corporation.
+- * Portions created by the Initial Developer are Copyright (C) 1994-2000
+- * the Initial Developer. All Rights Reserved.
+- *
+- * Contributor(s):
+- * Dr Vipul Gupta <vipul.gupta(a)sun.com> and
+- * Douglas Stebila <douglas(a)stebila.ca>, Sun Microsystems Laboratories
+- *
+- * Last Modified Date from the Original Code: November 2013
+- *********************************************************************** */
+-
+-#ifndef _ECC_IMPL_H
+-#define _ECC_IMPL_H
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-#include <sys/types.h>
+-#include "ecl-exp.h"
+-
+-/*
+- * Multi-platform definitions
+- */
+-#ifdef __linux__
+-#define B_FALSE FALSE
+-#define B_TRUE TRUE
+-typedef unsigned char uint8_t;
+-typedef unsigned long ulong_t;
+-typedef enum { B_FALSE, B_TRUE } boolean_t;
+-#endif /* __linux__ */
+-
+-#ifdef _ALLBSD_SOURCE
+-#include <stdint.h>
+-#define B_FALSE FALSE
+-#define B_TRUE TRUE
+-typedef unsigned long ulong_t;
+-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
+-#endif /* _ALLBSD_SOURCE */
+-
+-#ifdef AIX
+-#define B_FALSE FALSE
+-#define B_TRUE TRUE
+-typedef unsigned char uint8_t;
+-typedef unsigned long ulong_t;
+-#endif /* AIX */
+-
+-#ifdef _WIN32
+-typedef unsigned char uint8_t;
+-typedef unsigned long ulong_t;
+-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
+-#define strdup _strdup /* Replace POSIX name with ISO C++ name */
+-#endif /* _WIN32 */
+-
+-#ifndef _KERNEL
+-#include <stdlib.h>
+-#endif /* _KERNEL */
+-
+-#define EC_MAX_DIGEST_LEN 1024 /* max digest that can be signed */
+-#define EC_MAX_POINT_LEN 145 /* max len of DER encoded Q */
+-#define EC_MAX_VALUE_LEN 72 /* max len of ANSI X9.62 private value d */
+-#define EC_MAX_SIG_LEN 144 /* max signature len for supported curves */
+-#define EC_MIN_KEY_LEN 112 /* min key length in bits */
+-#define EC_MAX_KEY_LEN 571 /* max key length in bits */
+-#define EC_MAX_OID_LEN 10 /* max length of OID buffer */
+-
+-/*
+- * Various structures and definitions from NSS are here.
+- */
+-
+-#ifdef _KERNEL
+-#define PORT_ArenaAlloc(a, n, f) kmem_alloc((n), (f))
+-#define PORT_ArenaZAlloc(a, n, f) kmem_zalloc((n), (f))
+-#define PORT_ArenaGrow(a, b, c, d) NULL
+-#define PORT_ZAlloc(n, f) kmem_zalloc((n), (f))
+-#define PORT_Alloc(n, f) kmem_alloc((n), (f))
+-#else
+-#define PORT_ArenaAlloc(a, n, f) malloc((n))
+-#define PORT_ArenaZAlloc(a, n, f) calloc(1, (n))
+-#define PORT_ArenaGrow(a, b, c, d) NULL
+-#define PORT_ZAlloc(n, f) calloc(1, (n))
+-#define PORT_Alloc(n, f) malloc((n))
+-#endif
+-
+-#define PORT_NewArena(b) (char *)12345
+-#define PORT_ArenaMark(a) NULL
+-#define PORT_ArenaUnmark(a, b)
+-#define PORT_ArenaRelease(a, m)
+-#define PORT_FreeArena(a, b)
+-#define PORT_Strlen(s) strlen((s))
+-#define PORT_SetError(e)
+-
+-#define PRBool boolean_t
+-#define PR_TRUE B_TRUE
+-#define PR_FALSE B_FALSE
+-
+-#ifdef _KERNEL
+-#define PORT_Assert ASSERT
+-#define PORT_Memcpy(t, f, l) bcopy((f), (t), (l))
+-#else
+-#define PORT_Assert assert
+-#define PORT_Memcpy(t, f, l) memcpy((t), (f), (l))
+-#endif
+-
+-#define CHECK_OK(func) if (func == NULL) goto cleanup
+-#define CHECK_SEC_OK(func) if (SECSuccess != (rv = func)) goto cleanup
+-
+-typedef enum {
+- siBuffer = 0,
+- siClearDataBuffer = 1,
+- siCipherDataBuffer = 2,
+- siDERCertBuffer = 3,
+- siEncodedCertBuffer = 4,
+- siDERNameBuffer = 5,
+- siEncodedNameBuffer = 6,
+- siAsciiNameString = 7,
+- siAsciiString = 8,
+- siDEROID = 9,
+- siUnsignedInteger = 10,
+- siUTCTime = 11,
+- siGeneralizedTime = 12
+-} SECItemType;
+-
+-typedef struct SECItemStr SECItem;
+-
+-struct SECItemStr {
+- SECItemType type;
+- unsigned char *data;
+- unsigned int len;
+-};
+-
+-typedef SECItem SECKEYECParams;
+-
+-typedef enum { ec_params_explicit,
+- ec_params_named
+-} ECParamsType;
+-
+-typedef enum { ec_field_GFp = 1,
+- ec_field_GF2m
+-} ECFieldType;
+-
+-struct ECFieldIDStr {
+- int size; /* field size in bits */
+- ECFieldType type;
+- union {
+- SECItem prime; /* prime p for (GFp) */
+- SECItem poly; /* irreducible binary polynomial for (GF2m) */
+- } u;
+- int k1; /* first coefficient of pentanomial or
+- * the only coefficient of trinomial
+- */
+- int k2; /* two remaining coefficients of pentanomial */
+- int k3;
+-};
+-typedef struct ECFieldIDStr ECFieldID;
+-
+-struct ECCurveStr {
+- SECItem a; /* contains octet stream encoding of
+- * field element (X9.62 section 4.3.3)
+- */
+- SECItem b;
+- SECItem seed;
+-};
+-typedef struct ECCurveStr ECCurve;
+-
+-typedef void PRArenaPool;
+-
+-struct ECParamsStr {
+- PRArenaPool * arena;
+- ECParamsType type;
+- ECFieldID fieldID;
+- ECCurve curve;
+- SECItem base;
+- SECItem order;
+- int cofactor;
+- SECItem DEREncoding;
+- ECCurveName name;
+- SECItem curveOID;
+-};
+-typedef struct ECParamsStr ECParams;
+-
+-struct ECPublicKeyStr {
+- ECParams ecParams;
+- SECItem publicValue; /* elliptic curve point encoded as
+- * octet stream.
+- */
+-};
+-typedef struct ECPublicKeyStr ECPublicKey;
+-
+-struct ECPrivateKeyStr {
+- ECParams ecParams;
+- SECItem publicValue; /* encoded ec point */
+- SECItem privateValue; /* private big integer */
+- SECItem version; /* As per SEC 1, Appendix C, Section C.4 */
+-};
+-typedef struct ECPrivateKeyStr ECPrivateKey;
+-
+-typedef enum _SECStatus {
+- SECBufferTooSmall = -3,
+- SECWouldBlock = -2,
+- SECFailure = -1,
+- SECSuccess = 0
+-} SECStatus;
+-
+-#ifdef _KERNEL
+-#define RNG_GenerateGlobalRandomBytes(p,l) ecc_knzero_random_generator((p), (l))
+-#else
+-/*
+- This function is no longer required because the random bytes are now
+- supplied by the caller. Force a failure.
+-*/
+-#define RNG_GenerateGlobalRandomBytes(p,l) SECFailure
+-#endif
+-#define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup
+-#define MP_TO_SEC_ERROR(err)
+-
+-#define SECITEM_TO_MPINT(it, mp) \
+- CHECK_MPI_OK(mp_read_unsigned_octets((mp), (it).data, (it).len))
+-
+-extern int ecc_knzero_random_generator(uint8_t *, size_t);
+-extern ulong_t soft_nzero_random_generator(uint8_t *, ulong_t);
+-
+-extern SECStatus EC_DecodeParams(const SECItem *, ECParams **, int);
+-extern SECItem * SECITEM_AllocItem(PRArenaPool *, SECItem *, unsigned int, int);
+-extern SECStatus SECITEM_CopyItem(PRArenaPool *, SECItem *, const SECItem *,
+- int);
+-extern void SECITEM_FreeItem(SECItem *, boolean_t);
+-/* This function has been modified to accept an array of random bytes */
+-extern SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey,
+- const unsigned char* random, int randomlen, int);
+-/* This function has been modified to accept an array of random bytes */
+-extern SECStatus ECDSA_SignDigest(ECPrivateKey *, SECItem *, const SECItem *,
+- const unsigned char* random, int randomlen, int);
+-extern SECStatus ECDSA_VerifyDigest(ECPublicKey *, const SECItem *,
+- const SECItem *, int);
+-extern SECStatus ECDH_Derive(SECItem *, ECParams *, SECItem *, boolean_t,
+- SECItem *, int);
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-
+-#endif /* _ECC_IMPL_H */
+diff -r afd392dfaed5 -r 48c15869ecd5 src/solaris/javavm/export/jni_md.h
+--- openjdk/jdk/src/solaris/javavm/export/jni_md.h Tue Jan 26 22:26:26 2016 +0000
++++ openjdk/jdk/src/solaris/javavm/export/jni_md.h Wed Jan 27 02:54:06 2016 +0000
+@@ -36,6 +36,11 @@
+ #define JNIEXPORT
+ #define JNIIMPORT
+ #endif
++#if (defined(__GNUC__)) || __has_attribute(unused)
++ #define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
++#else
++ #define UNUSED(x) UNUSED_ ## x
++#endif
+
+ #define JNICALL
+
diff --git a/pr1983-root.patch b/pr1983-root.patch
new file mode 100644
index 0000000..100472b
--- /dev/null
+++ b/pr1983-root.patch
@@ -0,0 +1,89 @@
+# HG changeset patch
+# User andrew
+# Date 1453863007 0
+# Wed Jan 27 02:50:07 2016 +0000
+# Node ID f0635543beb309c4da1bb88c906a76ee4b75e16d
+# Parent 4a5a0d4e1ae0feec2f47d17be380d6fcd5eff126
+PR1983: Support using the system installation of NSS with the SunEC provider
+Summary: Add new configure option --enable-system-nss
+
+diff -r 92af9369869f common/autoconf/jdk-options.m4
+--- openjdk/common/autoconf/jdk-options.m4 Thu Jan 21 22:17:02 2016 +0000
++++ openjdk/common/autoconf/jdk-options.m4 Wed Jan 27 05:32:12 2016 +0000
+@@ -414,9 +414,10 @@
+ #
+ AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
+ [
+- AC_MSG_CHECKING([if elliptic curve crypto implementation is present])
++ AC_REQUIRE([LIB_SETUP_MISC_LIBS])
++ AC_MSG_CHECKING([if the elliptic curve crypto implementation is present])
+
+- if test -d "${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
++ if test "x${system_nss}" = "xyes" -o -d
"${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
+ ENABLE_INTREE_EC=yes
+ AC_MSG_RESULT([yes])
+ else
+diff -r 92af9369869f common/autoconf/libraries.m4
+--- openjdk/common/autoconf/libraries.m4 Thu Jan 21 22:17:02 2016 +0000
++++ openjdk/common/autoconf/libraries.m4 Wed Jan 27 05:32:12 2016 +0000
+@@ -731,6 +731,47 @@
+ LIBDL="$LIBS"
+ AC_SUBST(LIBDL)
+ LIBS="$save_LIBS"
++
++ ###############################################################################
++ #
++ # Check for the NSS libraries
++ #
++
++ AC_MSG_CHECKING([whether to build the Sun EC provider against the system NSS
libraries])
++
++ # default is bundled
++ DEFAULT_SYSTEM_NSS=no
++
++ AC_ARG_ENABLE([system-nss], [AS_HELP_STRING([--enable-system-nss],
++ [build the SunEC provider using the system NSS libraries
@<:@disabled@:>@])],
++ [
++ case "${enableval}" in
++ yes)
++ system_nss=yes
++ ;;
++ *)
++ system_nss=no
++ ;;
++ esac
++ ],
++ [
++ system_nss=${DEFAULT_SYSTEM_NSS}
++ ])
++ AC_MSG_RESULT([$system_nss])
++
++ if test "x${system_nss}" = "xyes"; then
++ PKG_CHECK_MODULES(NSS, nss-softokn >= 3.16.1, [NSS_SOFTOKN_FOUND=yes],
[NSS_SOFTOKN_FOUND=no])
++ if test "x${NSS_SOFTOKN_FOUND}" = "xyes"; then
++ NSS_LIBS="$NSS_LIBS -lfreebl";
++ USE_EXTERNAL_NSS=true
++ else
++ AC_MSG_ERROR([--enable-system-nss specified, but NSS not found.])
++ fi
++ else
++ USE_EXTERNAL_NSS=false
++ fi
++ AC_SUBST(USE_EXTERNAL_NSS)
++
+ ])
+
+ AC_DEFUN_ONCE([LIB_SETUP_STATIC_LINK_LIBSTDCPP],
+diff -r 92af9369869f common/autoconf/spec.gmk.in
+--- openjdk/common/autoconf/spec.gmk.in Thu Jan 21 22:17:02 2016 +0000
++++ openjdk/common/autoconf/spec.gmk.in Wed Jan 27 05:32:12 2016 +0000
+@@ -647,6 +647,9 @@
+ # Read-only single-machine data
+ INSTALL_SYSCONFDIR=@sysconfdir@
+
++USE_EXTERNAL_NSS:=@USE_EXTERNAL_NSS@
++NSS_LIBS:=@NSS_LIBS@
++NSS_CFLAGS:=@NSS_CFLAGS@
+
+ ####################################################
+ #
diff --git a/pr2127.patch b/pr2127.patch
new file mode 100644
index 0000000..b08822a
--- /dev/null
+++ b/pr2127.patch
@@ -0,0 +1,178 @@
+# HG changeset patch
+# User andrew
+# Date 1453866306 0
+# Wed Jan 27 03:45:06 2016 +0000
+# Node ID 0ff7720931e8dbf7de25720bdc93b18527ab89e8
+# Parent 48c15869ecd568263249af4b9a4e98d4e57f9a8f
+PR2127: SunEC provider crashes when built using system NSS
+Summary: Use NSS memory management functions
+
+diff -r 48c15869ecd5 -r 0ff7720931e8 src/share/native/sun/security/ec/ECC_JNI.cpp
+--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 02:54:06 2016
+0000
++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 03:45:06 2016
+0000
+@@ -32,6 +32,13 @@
+ #define INVALID_PARAMETER_EXCEPTION \
+ "java/security/InvalidParameterException"
+ #define KEY_EXCEPTION "java/security/KeyException"
++#define INTERNAL_ERROR "java/lang/InternalError"
++
++#ifdef SYSTEM_NSS
++#define SYSTEM_UNUSED(x) UNUSED(x)
++#else
++#define SYSTEM_UNUSED(x) x
++#endif
+
+ extern "C" {
+
+@@ -49,8 +56,13 @@
+ /*
+ * Deep free of the ECParams struct
+ */
+-void FreeECParams(ECParams *ecparams, jboolean freeStruct)
++void FreeECParams(ECParams *ecparams, jboolean SYSTEM_UNUSED(freeStruct))
+ {
++#ifdef SYSTEM_NSS
++ // Needs to be freed using the matching method to the one
++ // that allocated it. PR_TRUE means the memory is zeroed.
++ PORT_FreeArena(ecparams->arena, PR_TRUE);
++#else
+ // Use B_FALSE to free the SECItem->data element, but not the SECItem itself
+ // Use B_TRUE to free both
+
+@@ -64,6 +76,7 @@
+ SECITEM_FreeItem(&ecparams->curveOID, B_FALSE);
+ if (freeStruct)
+ free(ecparams);
++#endif
+ }
+
+ jbyteArray getEncodedBytes(JNIEnv *env, SECItem *hSECItem)
+@@ -108,6 +121,13 @@
+ goto cleanup;
+ }
+
++#ifdef SYSTEM_NSS
++ if (SECOID_Init() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ goto cleanup;
++ }
++#endif
++
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -163,16 +183,26 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
++#ifdef SYSTEM_NSS
++ if (SECOID_Shutdown() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
+ }
+ if (ecparams) {
+ FreeECParams(ecparams, true);
+ }
+ if (privKey) {
+ FreeECParams(&privKey->ecParams, false);
++#ifndef SYSTEM_NSS
++ // The entire ECPrivateKey is allocated in the arena
++ // when using system NSS, so only the in-tree version
++ // needs to clear these manually.
+ SECITEM_FreeItem(&privKey->version, B_FALSE);
+ SECITEM_FreeItem(&privKey->privateValue, B_FALSE);
+ SECITEM_FreeItem(&privKey->publicValue, B_FALSE);
+ free(privKey);
++#endif
+ }
+
+ if (pSeedBuffer) {
+@@ -223,6 +253,13 @@
+ goto cleanup;
+ }
+
++#ifdef SYSTEM_NSS
++ if (SECOID_Init() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ goto cleanup;
++ }
++#endif
++
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -270,6 +307,11 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
++#ifdef SYSTEM_NSS
++ if (SECOID_Shutdown() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
+ }
+ if (privKey.privateValue.data) {
+ env->ReleaseByteArrayElements(privateKey,
+@@ -336,6 +378,13 @@
+ goto cleanup;
+ }
+
++#ifdef SYSTEM_NSS
++ if (SECOID_Init() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ goto cleanup;
++ }
++#endif
++
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -356,9 +405,15 @@
+
+ cleanup:
+ {
+- if (params_item.data)
++ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
++#ifdef SYSTEM_NSS
++ if (SECOID_Shutdown() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
++ }
+
+ if (pubKey.publicValue.data)
+ env->ReleaseByteArrayElements(publicKey,
+@@ -419,6 +474,13 @@
+ goto cleanup;
+ }
+
++#ifdef SYSTEM_NSS
++ if (SECOID_Init() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ goto cleanup;
++ }
++#endif
++
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -460,9 +522,15 @@
+ env->ReleaseByteArrayElements(publicKey,
+ (jbyte *) publicValue_item.data, JNI_ABORT);
+
+- if (params_item.data)
++ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
++#ifdef SYSTEM_NSS
++ if (SECOID_Shutdown() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
++ }
+
+ if (ecparams)
+ FreeECParams(ecparams, true);
diff --git a/pr2815.patch b/pr2815.patch
new file mode 100644
index 0000000..db14f10
--- /dev/null
+++ b/pr2815.patch
@@ -0,0 +1,189 @@
+# HG changeset patch
+# User andrew
+# Date 1453867347 0
+# Wed Jan 27 04:02:27 2016 +0000
+# Node ID 26e2e029ee256e9815fdc324831a03d8582255e1
+# Parent 0ff7720931e8dbf7de25720bdc93b18527ab89e8
+PR2815: Race condition in SunEC provider with system NSS
+Summary: Perform initialisation and shutdown only when library is loaded or SunEC is
finalized respectively
+
+diff -r 0ff7720931e8 -r 26e2e029ee25 make/mapfiles/libsunec/mapfile-vers
+--- openjdk/jdk/make/mapfiles/libsunec/mapfile-vers Wed Jan 27 03:45:06 2016 +0000
++++ openjdk/jdk/make/mapfiles/libsunec/mapfile-vers Wed Jan 27 04:02:27 2016 +0000
+@@ -31,6 +31,8 @@
+ Java_sun_security_ec_ECDSASignature_signDigest;
+ 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 -r 0ff7720931e8 -r 26e2e029ee25 src/share/classes/sun/security/ec/SunEC.java
+--- openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java Wed Jan 27 03:45:06 2016
+0000
++++ openjdk/jdk/src/share/classes/sun/security/ec/SunEC.java Wed Jan 27 04:02:27 2016
+0000
+@@ -58,6 +58,7 @@
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ public Void run() {
+ System.loadLibrary("sunec"); // check for native library
++ initialize();
+ return null;
+ }
+ });
+@@ -81,4 +82,22 @@
+ }
+ }
+
++ /**
++ * 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 -r 0ff7720931e8 -r 26e2e029ee25 src/share/native/sun/security/ec/ECC_JNI.cpp
+--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 03:45:06 2016
+0000
++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Jan 27 04:02:27 2016
+0000
+@@ -121,13 +121,6 @@
+ goto cleanup;
+ }
+
+-#ifdef SYSTEM_NSS
+- if (SECOID_Init() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- goto cleanup;
+- }
+-#endif
+-
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -183,11 +176,6 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
+-#ifdef SYSTEM_NSS
+- if (SECOID_Shutdown() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- }
+-#endif
+ }
+ if (ecparams) {
+ FreeECParams(ecparams, true);
+@@ -253,13 +241,6 @@
+ goto cleanup;
+ }
+
+-#ifdef SYSTEM_NSS
+- if (SECOID_Init() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- goto cleanup;
+- }
+-#endif
+-
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -307,11 +288,6 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
+-#ifdef SYSTEM_NSS
+- if (SECOID_Shutdown() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- }
+-#endif
+ }
+ if (privKey.privateValue.data) {
+ env->ReleaseByteArrayElements(privateKey,
+@@ -378,13 +354,6 @@
+ goto cleanup;
+ }
+
+-#ifdef SYSTEM_NSS
+- if (SECOID_Init() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- goto cleanup;
+- }
+-#endif
+-
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -408,11 +377,6 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
+-#ifdef SYSTEM_NSS
+- if (SECOID_Shutdown() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- }
+-#endif
+ }
+
+ if (pubKey.publicValue.data)
+@@ -474,13 +438,6 @@
+ goto cleanup;
+ }
+
+-#ifdef SYSTEM_NSS
+- if (SECOID_Init() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- goto cleanup;
+- }
+-#endif
+-
+ // Fill a new ECParams using the supplied OID
+ if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
+ /* bad curve OID */
+@@ -525,11 +482,6 @@
+ if (params_item.data) {
+ env->ReleaseByteArrayElements(encodedParams,
+ (jbyte *) params_item.data, JNI_ABORT);
+-#ifdef SYSTEM_NSS
+- if (SECOID_Shutdown() != SECSuccess) {
+- ThrowException(env, INTERNAL_ERROR);
+- }
+-#endif
+ }
+
+ if (ecparams)
+@@ -539,4 +491,26 @@
+ return jSecret;
+ }
+
++JNIEXPORT void
++JNICALL Java_sun_security_ec_SunEC_initialize
++ (JNIEnv *env, jclass UNUSED(clazz))
++{
++#ifdef SYSTEM_NSS
++ if (SECOID_Init() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
++}
++
++JNIEXPORT void
++JNICALL Java_sun_security_ec_SunEC_cleanup
++ (JNIEnv *env, jclass UNUSED(clazz))
++{
++#ifdef SYSTEM_NSS
++ if (SECOID_Shutdown() != SECSuccess) {
++ ThrowException(env, INTERNAL_ERROR);
++ }
++#endif
++}
++
+ } /* extern "C" */
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
deleted file mode 100644
index 02955a2..0000000
--- a/removeSunEcProvider-RH1154143.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -r 1fe56343ecc8 src/share/lib/security/java.security-linux
---- openjdk/jdk/src/share/lib/security/java.security-linux Tue Jan 12 21:01:12 2016
+0000
-+++ openjdk/jdk/src/share/lib/security/java.security-linux Tue Jan 12 23:59:19 2016
+0000
-@@ -67,13 +67,13 @@
- #
- security.provider.1=sun.security.provider.Sun
- security.provider.2=sun.security.rsa.SunRsaSign
--security.provider.3=sun.security.ec.SunEC
--security.provider.4=com.sun.net.ssl.internal.ssl.Provider
--security.provider.5=com.sun.crypto.provider.SunJCE
--security.provider.6=sun.security.jgss.SunProvider
--security.provider.7=com.sun.security.sasl.Provider
--security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
--security.provider.9=sun.security.smartcardio.SunPCSC
-+security.provider.3=com.sun.net.ssl.internal.ssl.Provider
-+security.provider.4=com.sun.crypto.provider.SunJCE
-+security.provider.5=sun.security.jgss.SunProvider
-+security.provider.6=com.sun.security.sasl.Provider
-+security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
-+security.provider.8=sun.security.smartcardio.SunPCSC
-+
-
- #
- # Sun Provider SecureRandom seed source.
-@@ -509,7 +509,7 @@
- #
- # Example:
- # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
--jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768
-+jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, EC, ECDHE, ECDH
-
- # Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
- # processing in JSSE implementation.
diff --git a/remove_aarch64_jvm.cfg_divergence.patch
b/remove_aarch64_jvm.cfg_divergence.patch
index 586e6f2..64aeb57 100644
--- a/remove_aarch64_jvm.cfg_divergence.patch
+++ b/remove_aarch64_jvm.cfg_divergence.patch
@@ -1,18 +1,3 @@
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-index ef50802..9d604d5 100644
---- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
- return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
- }
-
--template <class T> static const T& min (const T& a, const T& b) {
-- return (a > b) ? b : a;
--}
--
- // ---------------------------------------------------------------------------
- // Read the array of BasicTypes from a signature, and compute where the
- // arguments should go. Values in the VMRegPair regs array refer to 4-byte
diff -r 57824090cf28 src/share/bin/java.c
--- openjdk/jdk/src/share/bin/java.c Fri Feb 05 17:41:45 2016 +0000
+++ openjdk/jdk/src/share/bin/java.c Thu Feb 18 03:43:51 2016 +0000
diff --git a/remove_aarch64_template_for_gcc6.patch
b/remove_aarch64_template_for_gcc6.patch
new file mode 100644
index 0000000..298badd
--- /dev/null
+++ b/remove_aarch64_template_for_gcc6.patch
@@ -0,0 +1,15 @@
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+index ef50802..9d604d5 100644
+--- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
+ return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
+ }
+
+-template <class T> static const T& min (const T& a, const T& b) {
+- return (a > b) ? b : a;
+-}
+-
+ // ---------------------------------------------------------------------------
+ // Read the array of BasicTypes from a signature, and compute where the
+ // arguments should go. Values in the VMRegPair regs array refer to 4-byte
diff --git a/sources b/sources
index 8131325..1f2907c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-a21f6b0591cd79ab10192c69cf85cd3f aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
+29b804c787abbbf2e2dc4189c83c982c aarch64-port-jdk8u-aarch64-jdk8u72-b15-ec.tar.xz
commit 740ff25ed2d4c9f1c55fa664a797473fa1eac6cc
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Feb 23 14:04:23 2016 +0100
returning accidentlay removed hunk from renamed and so wrongly merged
remove_aarch64_jvm.cfg_divergence.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e7a98f2..6c2e345 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -735,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -1696,7 +1696,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Mon Feb 22 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-.b15
+* Tue Feb 23 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-10.b15
+- returning accidentlay removed hunk from renamed and so wrongly merged
remove_aarch64_jvm.cfg_divergence.patch
+
+* Mon Feb 22 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-9.b15
- sync from rhel
* Tue Feb 16 2016 Dan Horák <dan[at]danny.cz> - 1:1.8.0.72-8.b15
diff --git a/remove_aarch64_jvm.cfg_divergence.patch
b/remove_aarch64_jvm.cfg_divergence.patch
index 64aeb57..586e6f2 100644
--- a/remove_aarch64_jvm.cfg_divergence.patch
+++ b/remove_aarch64_jvm.cfg_divergence.patch
@@ -1,3 +1,18 @@
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+index ef50802..9d604d5 100644
+--- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
+ return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
+ }
+
+-template <class T> static const T& min (const T& a, const T& b) {
+- return (a > b) ? b : a;
+-}
+-
+ // ---------------------------------------------------------------------------
+ // Read the array of BasicTypes from a signature, and compute where the
+ // arguments should go. Values in the VMRegPair regs array refer to 4-byte
diff -r 57824090cf28 src/share/bin/java.c
--- openjdk/jdk/src/share/bin/java.c Fri Feb 05 17:41:45 2016 +0000
+++ openjdk/jdk/src/share/bin/java.c Thu Feb 18 03:43:51 2016 +0000
commit 42712cb78a052157ff4acde83b6a2091d790cc2d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Feb 22 15:27:34 2016 +0100
Sync with rhel 7.3
diff --git a/aarch64_FTBFS_rhbz_1307224.patch b/aarch64_FTBFS_rhbz_1307224.patch
deleted file mode 100644
index 1a10f2c..0000000
--- a/aarch64_FTBFS_rhbz_1307224.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-index ef50802..9d604d5 100644
---- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-+++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
-@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
- return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
- }
-
--template <class T> static const T& min (const T& a, const T& b) {
-- return (a > b) ? b : a;
--}
--
- // ---------------------------------------------------------------------------
- // Read the array of BasicTypes from a signature, and compute where the
- // arguments should go. Values in the VMRegPair regs array refer to 4-byte
-diff --git
a/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.x86_64/openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
b/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.x86_64/openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
-index d20c3f4..17c4be3 100644
---- openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
-+++ openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
-@@ -31,6 +31,5 @@
- # "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
- # and may not be available in a future release.
- #
---client IF_SERVER_CLASS -server
- -server KNOWN
---minimal KNOWN
-+-client IGNORE
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
index 3f0cf39..e2a4313 100644
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ b/java-1.8.0-openjdk-s390-java-opts.patch
@@ -1,27 +1,46 @@
-diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4
---- jdk8/common/autoconf/boot-jdk.m4.s390 2016-02-16 16:18:10.000000000 +0100
-+++ jdk8/common/autoconf/boot-jdk.m4 2016-02-16 16:21:44.000000000 +0100
-@@ -329,21 +329,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
+--- openjdk.orig/common/autoconf/boot-jdk.m4 2016-01-21 18:33:47.586288044 +0000
++++ openjdk/common/autoconf/boot-jdk.m4 2016-02-05 15:56:09.012242707 +0000
+@@ -1,5 +1,6 @@
+ #
+ # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
++# Copyright 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
+@@ -303,6 +323,9 @@
+
+ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
+ [
++ # Ensure OPENJDK_TARGET_CPU_ARCH has been setup
++ AC_REQUIRE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET])
++
+ ##############################################################################
+ #
+ # Specify options for anything that is run with the Boot JDK.
+@@ -325,16 +348,23 @@
+ JAVA_FLAGS=$boot_jdk_jvmargs
+ AC_SUBST(JAVA_FLAGS)
+
+-
AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
# Starting amount of heap memory.
- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
-+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
++ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
++ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
++ else
++ ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
++ fi
# Maximum amount of heap memory.
# Maximum stack size.
-- if test "x$BOOT_JDK_BITS" = x32; then
+ if test "x$BOOT_JDK_BITS" = x32; then
- JVM_MAX_HEAP=1100M
-+ JVM_MAX_HEAP=768M
++ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
++ JVM_MAX_HEAP=768M
++ else
++ JVM_MAX_HEAP=1100M
++ fi
STACK_SIZE=768
-- else
-- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
-- # pointers are used. Apparently, we need to increase the heap and stack
-- # space for the jvm. More specifically, when running javac to build huge
-- # jdk batch
-- JVM_MAX_HEAP=1600M
-- STACK_SIZE=1536
-- fi
- ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA])
- ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
- ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA])
+ else
+ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 406372a..c9c6b97 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -109,18 +109,6 @@ 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/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2015-05-19
12:16:26.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-06-09
10:21:39.000000000 -0400
-@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
- // This can be done by either mutator threads together with the
- // concurrent refinement threads or GC threads.
- uint HeapRegionRemSet::num_par_rem_sets() {
-- return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(uint)ParallelGCThreads);
-+ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
ParallelGCThreads);
- }
-
- HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
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
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5c2863b..e7a98f2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -735,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -806,15 +806,18 @@ Patch511: rh1214835.patch
Patch512: no_strict_overflow.patch
# Arch-specific upstreamable patches
-# JVM heap size changes for s390 (thanks to aph)
+# PR2415: JVM -Xmx requirement is too high on s390
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
-# Remove unneccessary template definition in aarch64
-# sharedRuntime code. See RHBZ#1307224
-Patch104: aarch64_FTBFS_rhbz_1307224.patch
+
+# AArch64-specific upstreamable patches
+# Revert 'Fixes to work around "missing 'client' JVM" error
messages' and sync jvm.cfg with OpenJDK 9
+Patch104: remove_aarch64_jvm.cfg_divergence.patch
+# RH1300630, 8147805: aarch64: C1 segmentation fault due to inline
Unsafe.getAndSetObject
+Patch105: rh1300630.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -1109,13 +1112,13 @@ sh %{SOURCE12}
%patch12
# s390 build fixes
-%ifarch s390
%patch100
%patch102
%patch103
-%endif
-# Aarch64 build fixes
+
+# aarch64 build fixes
%patch104
+%patch105
# Zero PPC fixes.
%patch403
@@ -1223,9 +1226,6 @@ bash ../../configure \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
-%ifarch %{aarch64}
- --with-user-release-suffix="aarch64-%{updatever}-%{buildver}" \
-%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=$debugbuild \
--enable-unlimited-crypto \
@@ -1269,6 +1269,7 @@ find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {}
\;
popd >& /dev/null
+# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
# Install nss.cfg right away as we will be using the JRE above
@@ -1695,6 +1696,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 22 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-.b15
+- sync from rhel
+
* Tue Feb 16 2016 Dan Horák <dan[at]danny.cz> - 1:1.8.0.72-8.b15
- Refresh s390-java-opts patch
diff --git a/remove_aarch64_jvm.cfg_divergence.patch
b/remove_aarch64_jvm.cfg_divergence.patch
new file mode 100644
index 0000000..64aeb57
--- /dev/null
+++ b/remove_aarch64_jvm.cfg_divergence.patch
@@ -0,0 +1,48 @@
+diff -r 57824090cf28 src/share/bin/java.c
+--- openjdk/jdk/src/share/bin/java.c Fri Feb 05 17:41:45 2016 +0000
++++ openjdk/jdk/src/share/bin/java.c Thu Feb 18 03:43:51 2016 +0000
+@@ -699,22 +699,6 @@
+ }
+ }
+
+-/*
+- * This is called if the jvmtype returned by CheckJvmType above
+- * didn't exist. In this case if it was the default VM and we
+- * selected the server vm we will allow it to use the client vm
+- * instead.
+- */
+-char *
+-GetAltJvmType(char *jvmtype)
+-{
+- if ((knownVMs[0].flag == VM_IF_SERVER_CLASS)) {
+- if (jvmtype == knownVMs[0].server_class+1) return knownVMs[0].name+1;
+- if (jvmtype == knownVMs[0].name+1) return knownVMs[0].server_class+1;
+- }
+- return NULL;
+-}
+-
+ /* copied from HotSpot function "atomll()" */
+ static int
+ parse_size(const char *s, jlong *result) {
+diff -r 57824090cf28 src/share/bin/java.h
+--- openjdk/jdk/src/share/bin/java.h Fri Feb 05 17:41:45 2016 +0000
++++ openjdk/jdk/src/share/bin/java.h Thu Feb 18 03:43:51 2016 +0000
+@@ -164,7 +164,6 @@
+ */
+ jint ReadKnownVMs(const char *jvmcfg, jboolean speculative);
+ char *CheckJvmType(int *argc, char ***argv, jboolean speculative);
+-char *GetAltJvmType(char *jvmtype);
+ void AddOption(char *str, void *info);
+
+ enum ergo_policy {
+diff -r 57824090cf28 src/solaris/bin/aarch64/jvm.cfg
+--- openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg Fri Feb 05 17:41:45 2016 +0000
++++ openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg Thu Feb 18 03:43:51 2016 +0000
+@@ -31,6 +31,5 @@
+ # "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+ # and may not be available in a future release.
+ #
+--client IF_SERVER_CLASS -server
+ -server KNOWN
+--minimal KNOWN
++-client IGNORE
diff --git a/rh1300630.patch b/rh1300630.patch
new file mode 100644
index 0000000..d9c46c5
--- /dev/null
+++ b/rh1300630.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User hshi
+# Date 1455640059 0
+# Tue Feb 16 16:27:39 2016 +0000
+# Node ID f90e98d9a3e53ffa6d4611bec799d8a9b338d82c
+# Parent 225180d970c1fd447b87de8122016cdbfaea0dff
+8147805: aarch64: C1 segmentation fault due to inline Unsafe.getAndSetObject
+Summary: In Aarch64 LIR_Assembler.atomic_op, keep stored data reference register in
decompressed forms as it may be used later
+Reviewed-by: aph
+Contributed-by: hui.shi(a)linaro.org, felix.yang(a)linaro.org
+
+diff -r 225180d970c1 -r f90e98d9a3e5 src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
+--- openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Thu Jan 21 22:17:05
2016 +0000
++++ openjdk/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue Feb 16 16:27:39
2016 +0000
+@@ -3202,7 +3202,8 @@
+ Register obj = as_reg(data);
+ Register dst = as_reg(dest);
+ if (is_oop && UseCompressedOops) {
+- __ encode_heap_oop(obj);
++ __ encode_heap_oop(rscratch1, obj);
++ obj = rscratch1;
+ }
+ assert_different_registers(obj, addr.base(), tmp, rscratch2, dst);
+ Label again;
diff --git a/s390-size_t_format_flags.patch b/s390-size_t_format_flags.patch
index 1c644b5..451c806 100644
--- a/s390-size_t_format_flags.patch
+++ b/s390-size_t_format_flags.patch
@@ -110,7 +110,7 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
#define INTPTR_FORMAT_W(width) "%" #width PRIxPTR
-+#ifdef S390
++#if defined(S390) && !defined(_LP64)
+#define SSIZE_FORMAT "%z" PRIdPTR
+#define SIZE_FORMAT "%z" PRIuPTR
+#define SIZE_FORMAT_HEX "0x%z" PRIxPTR
commit 77d85e1b5c0a8b0a7ab742873d557bb4c306ae39
Author: Dan Horák <dan(a)danny.cz>
Date: Tue Feb 16 19:25:30 2016 +0100
- Refresh s390-java-opts patch
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
index 9e2b5b8..3f0cf39 100644
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ b/java-1.8.0-openjdk-s390-java-opts.patch
@@ -1,7 +1,7 @@
diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4
---- jdk8/common/autoconf/boot-jdk.m4.s390 2014-10-28 13:10:36.000000000 -0400
-+++ jdk8/common/autoconf/boot-jdk.m4 2015-01-09 15:49:45.443809100 -0500
-@@ -319,21 +319,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
+--- jdk8/common/autoconf/boot-jdk.m4.s390 2016-02-16 16:18:10.000000000 +0100
++++ jdk8/common/autoconf/boot-jdk.m4 2016-02-16 16:21:44.000000000 +0100
+@@ -329,21 +329,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
# Starting amount of heap memory.
@@ -10,7 +10,7 @@ diff -up jdk8/common/autoconf/boot-jdk.m4.s390
jdk8/common/autoconf/boot-jdk.m4
# Maximum amount of heap memory.
# Maximum stack size.
-- if test "x$BUILD_NUM_BITS" = x32; then
+- if test "x$BOOT_JDK_BITS" = x32; then
- JVM_MAX_HEAP=1100M
+ JVM_MAX_HEAP=768M
STACK_SIZE=768
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 22db542..5c2863b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -735,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -1695,6 +1695,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 16 2016 Dan Horák <dan[at]danny.cz> - 1:1.8.0.72-8.b15
+- Refresh s390-java-opts patch
+
* Tue Feb 16 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-7.b15
- Use -fno-lifetime-dse over -fno-guess-branch-probability.
See RHBZ#1306558.
commit 7754e85a0331ef3692cfcd0f999ede91bf9c3c35
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Feb 16 17:42:33 2016 +0100
Use -fno-lifetime-dse over -fno-guess-branch-probability.
See RHBZ#1306558.
Signed-off-by: Omair Majid <omajid(a)redhat.com>
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 68c1cb3..22db542 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -735,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -1193,8 +1193,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
# Explicitly set the C++ standard as the default has changed on GCC >= 6
-EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-guess-branch-probability"
-EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-guess-branch-probability"
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
@@ -1695,6 +1695,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Feb 16 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-7.b15
+- Use -fno-lifetime-dse over -fno-guess-branch-probability.
+ See RHBZ#1306558.
+
* Mon Feb 15 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-6.b15
- Add aarch64_FTBFS_rhbz_1307224.patch so as to resolve RHBZ#1307224.
commit 16c68e027250bd6c0702148b6f382e2ef1c5ce05
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Mon Feb 15 11:33:48 2016 +0100
Add aarch64_FTBFS_rhbz_1307224.patch so as to resolve RHBZ#1307224.
- Remove unneeded template which fails to compile with GNU C std 98
- Fix jvm.cfg so as to use server JVM and ignore client JVM
Signed-off-by: Jiri Vanek <jvanek(a)redhat.com>
diff --git a/aarch64_FTBFS_rhbz_1307224.patch b/aarch64_FTBFS_rhbz_1307224.patch
new file mode 100644
index 0000000..1a10f2c
--- /dev/null
+++ b/aarch64_FTBFS_rhbz_1307224.patch
@@ -0,0 +1,27 @@
+diff --git openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
b/java-1.8.0-openjdk-1.8.0.72-5.b15.fc24.x86_64/openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+index ef50802..9d604d5 100644
+--- openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
++++ openjdk/hotspot/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
+ return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) *
VMRegImpl::stack_slot_size;
+ }
+
+-template <class T> static const T& min (const T& a, const T& b) {
+- return (a > b) ? b : a;
+-}
+-
+ // ---------------------------------------------------------------------------
+ // Read the array of BasicTypes from a signature, and compute where the
+ // arguments should go. Values in the VMRegPair regs array refer to 4-byte
+diff --git
a/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.x86_64/openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
b/java-1.8.0-openjdk-1.8.0.72-6.b15.fc24.x86_64/openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
+index d20c3f4..17c4be3 100644
+--- openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
++++ openjdk/jdk/src/solaris/bin/aarch64/jvm.cfg
+@@ -31,6 +31,5 @@
+ # "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+ # and may not be available in a future release.
+ #
+--client IF_SERVER_CLASS -server
+ -server KNOWN
+--minimal KNOWN
++-client IGNORE
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 94f5527..68c1cb3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -735,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -812,6 +812,9 @@ Patch100: %{name}-s390-java-opts.patch
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
+# Remove unneccessary template definition in aarch64
+# sharedRuntime code. See RHBZ#1307224
+Patch104: aarch64_FTBFS_rhbz_1307224.patch
# Patches which need backporting to 8u
# S8073139, RH1191652; fix name of ppc64le architecture
@@ -1111,6 +1114,8 @@ sh %{SOURCE12}
%patch102
%patch103
%endif
+# Aarch64 build fixes
+%patch104
# Zero PPC fixes.
%patch403
@@ -1690,6 +1695,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 15 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-6.b15
+- Add aarch64_FTBFS_rhbz_1307224.patch so as to resolve RHBZ#1307224.
+
* Fri Feb 12 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-5.b15
- Add -fno-delete-null-pointer-checks -fno-guess-branch-probability flags to resolve
x86/x86_64 crash.
commit 26fb4d91c2976c5e0a0524e9c4681cf592409e18
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Fri Feb 12 18:34:54 2016 -0500
Add -fno-delete-null-pointer-checks -fno-guess-branch-probability flags to resolve
x86/x86_64 crash.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 91af364..94f5527 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1188,8 +1188,8 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
# Explicitly set the C++ standard as the default has changed on GCC >= 6
-EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error"
-EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98"
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-guess-branch-probability"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-guess-branch-probability"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
@@ -1690,6 +1690,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 12 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-5.b15
+- Add -fno-delete-null-pointer-checks -fno-guess-branch-probability flags to resolve
x86/x86_64 crash.
+
* Mon Feb 08 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b15
- Explicitly set the C++ standard to use, as the default has changed to C++ 2014 in GCC
6.
- Turn off -Werror due to format warnings in HotSpot and -std usage warnings in SCTP.
commit b0231bb3da02c241a448e204ba8574ad34b11f78
Author: Andrew Hughes <gnu.andrew(a)redhat.com>
Date: Tue Feb 9 13:53:54 2016 -0500
Explicitly set the C++ standard to use, as the default has changed to C++ 2014 in GCC
6.
Turn off -Werror due to format warnings in HotSpot and -std usage warnings in SCTP.
Run tests under the check stage and use the debug build first.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6a228fe..91af364 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -37,6 +37,7 @@
%global build_loop %{build_loop1} %{build_loop2}
# note, that order normal_suffix debug_suffix, in case of both enabled,
# is expected in one single case at the end of build
+%global rev_build_loop %{build_loop2} %{build_loop1}
%global bootstrap_build 0
@@ -734,7 +735,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1185,8 +1186,10 @@ export CFLAGS="$CFLAGS -mieee"
%endif
# We use ourcppflags because the OpenJDK build seems to
-# pass these to the HotSpot C++ compiler...
-EXTRA_CFLAGS="%ourcppflags"
+# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
+# Explicitly set the C++ standard as the default has changed on GCC >= 6
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98"
%ifarch %{power64} ppc
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
@@ -1246,6 +1249,7 @@ make \
STRIP_POLICY=no_strip \
POST_STRIP_CMD="" \
LOG=trace \
+ SCTP_WERROR= \
%{targets}
# the build (erroneously) removes read permissions from some jars
@@ -1260,17 +1264,25 @@ find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {}
\;
popd >& /dev/null
-# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
-
# Use system-wide tzdata
rm $JAVA_HOME/jre/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+#build cycles
+done
+
+%check
+
+# We test debug first as it will give better diagnostics on a crash
+for suffix in %{rev_build_loop} ; do
+
+export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
+
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
@@ -1301,8 +1313,6 @@ $JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
-
-#build cycles
done
%install
@@ -1680,6 +1690,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Mon Feb 08 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b15
+- Explicitly set the C++ standard to use, as the default has changed to C++ 2014 in GCC
6.
+- Turn off -Werror due to format warnings in HotSpot and -std usage warnings in SCTP.
+- Run tests under the check stage and use the debug build first.
+
* Fri Feb 05 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.71-4.b15
- Backport S8148351: Only display resolved symlink for compiler, do not change path
commit 421bcca1dcf2e370736a1ea4214f2b958135c9c8
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Feb 8 13:57:51 2016 +0100
Removed accidentlyreadded patch501 8146566.patch
diff --git a/8146566.patch b/8146566.patch
deleted file mode 100644
index b5728bc..0000000
--- a/8146566.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -r 3bde96c2f7f5 make/CompileDemos.gmk
---- openjdk.orig/jdk/make/CompileDemos.gmk Tue Jan 12 11:47:16 2016 +0000
-+++ openjdk/jdk/make/CompileDemos.gmk Tue Jan 12 15:47:25 2016 +0000
-@@ -229,7 +229,7 @@
- BUILD_DEMO_JVMTI_$1_LANG := $4
- endif
- ifeq (C++, $4)
-- $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
-+ $1_EXTRA_CXX := $$(LDFLAGS_CXX_JDK) $(LIBCXX)
- endif
-
- $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
-@@ -251,8 +251,8 @@
- LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
- OPTIMIZATION := LOW, \
- CXXFLAGS := $$($1_CXXFLAGS), \
-- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
-- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
-+ LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \
-+ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \
- LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
- LDFLAGS_SUFFIX_posix := $5, \
- LDFLAGS_SUFFIX_windows := $6, \
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ba2ba83..6a228fe 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -837,8 +837,6 @@ Patch507: pr2842-02.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86
platforms
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-# S8146566, PR2428: OpenJDK build can't handle commas in LDFLAGS
-Patch501: 8146566.patch
# S8143855: Bad printf formatting in frame_zero.cpp
Patch505: 8143855.patch
@@ -1121,7 +1119,6 @@ sh %{SOURCE12}
%patch602
%patch605
-%patch501
%patch502
%patch503
%patch504
commit ee3b4be2f3bc44c58fdf8bffd0d3e758e4c0c896
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Feb 8 13:31:45 2016 +0100
Sync with rhel7
diff --git a/8146566.patch b/8146566.patch
new file mode 100644
index 0000000..b5728bc
--- /dev/null
+++ b/8146566.patch
@@ -0,0 +1,23 @@
+diff -r 3bde96c2f7f5 make/CompileDemos.gmk
+--- openjdk.orig/jdk/make/CompileDemos.gmk Tue Jan 12 11:47:16 2016 +0000
++++ openjdk/jdk/make/CompileDemos.gmk Tue Jan 12 15:47:25 2016 +0000
+@@ -229,7 +229,7 @@
+ BUILD_DEMO_JVMTI_$1_LANG := $4
+ endif
+ ifeq (C++, $4)
+- $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
++ $1_EXTRA_CXX := $$(LDFLAGS_CXX_JDK) $(LIBCXX)
+ endif
+
+ $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
+@@ -251,8 +251,8 @@
+ LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
+ OPTIMIZATION := LOW, \
+ CXXFLAGS := $$($1_CXXFLAGS), \
+- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
+- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
++ LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \
++ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \
+ LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
+ LDFLAGS_SUFFIX_posix := $5, \
+ LDFLAGS_SUFFIX_windows := $6, \
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5f5162f..ba2ba83 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -734,7 +734,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -788,6 +788,7 @@ Source101: config.sub
# RPM/distribution specific patches
+# Accessibility patches
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
@@ -828,11 +829,16 @@ Patch502: pr2462-01.patch
Patch503: pr2462-02.patch
# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux
Patch605: soundFontPatch.patch
+# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
+Patch506: pr2842-01.patch
+Patch507: pr2842-02.patch
# Patches upstream and appearing in 8u76
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86
platforms
Patch403: rhbz1206656_fix_current_stack_pointer.patch
+# S8146566, PR2428: OpenJDK build can't handle commas in LDFLAGS
+Patch501: 8146566.patch
# S8143855: Bad printf formatting in frame_zero.cpp
Patch505: 8143855.patch
@@ -879,14 +885,14 @@ BuildRequires: java-1.8.0-openjdk-devel
BuildRequires: libffi-devel
%endif
BuildRequires: tzdata-java >= 2015d
-
+# Earlier versions have a bug in tree vectorization on PPC
+BuildRequires: gcc >= 4.8.3-8
# cacerts build requirement.
BuildRequires: openssl
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
-
# this is built always, also during debug-only build
# when it is built in debug-only, then this package is just placeholder
%{java_rpo %{nil}}
@@ -1115,10 +1121,13 @@ sh %{SOURCE12}
%patch602
%patch605
+%patch501
%patch502
%patch503
%patch504
%patch505
+%patch506
+%patch507
%patch511
%patch512
@@ -1181,13 +1190,7 @@ export CFLAGS="$CFLAGS -mieee"
# We use ourcppflags because the OpenJDK build seems to
# pass these to the HotSpot C++ compiler...
EXTRA_CFLAGS="%ourcppflags"
-# Disable various optimizations to fix miscompliation. See:
-# -
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-EXTRA_CPP_FLAGS="%ourcppflags -fno-tree-vrp"
-# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
-# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-tree-vectorize"
# fix rpmlint warnings
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
@@ -1680,6 +1683,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Feb 05 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.71-4.b15
+- Backport S8148351: Only display resolved symlink for compiler, do not change path
+
* Wed Feb 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-3.b15
* touch -t 201401010000 java.security to try to worakround md5sums
diff --git a/pr2842-01.patch b/pr2842-01.patch
new file mode 100644
index 0000000..4ee4c55
--- /dev/null
+++ b/pr2842-01.patch
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User mduigou
+# Date 1389723922 28800
+# Tue Jan 14 10:25:22 2014 -0800
+# Node ID 842cc183c9f6d29270ff002238248978c08f0a66
+# Parent f0635543beb309c4da1bb88c906a76ee4b75e16d
+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 @@
+ $1="$PROPER_COMPILER_$1"
+ else
+ AC_MSG_RESULT([no, keeping $1])
+- $1="$TEST_COMPILER"
+ fi
++
+ TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
+ ])
+
diff --git a/pr2842-02.patch b/pr2842-02.patch
new file mode 100644
index 0000000..f5268fc
--- /dev/null
+++ b/pr2842-02.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User ihse
+# Date 1454642639 0
+# Fri Feb 05 03:23:59 2016 +0000
+# Node ID 61798573efe5a9efa67e268a52cf61263abb4396
+# Parent 842cc183c9f6d29270ff002238248978c08f0a66
+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 @@
+ fi
+ BASIC_FIXUP_EXECUTABLE($1)
+ TEST_COMPILER="[$]$1"
+- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r'
may all be links
+- # to 'xlc' but it is crucial that we invoke the compiler with the right name!
+- if test "x$OPENJDK_BUILD_OS" != xaix; then
+- AC_MSG_CHECKING([resolved symbolic links for $1])
+- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER)
+- AC_MSG_RESULT([$TEST_COMPILER])
+- fi
+- AC_MSG_CHECKING([if $1 is disguised ccache])
+
+- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"`
+- if test "x$COMPILER_BASENAME" = "xccache"; then
+- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler])
+- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache.
+- # We want to control ccache invocation ourselves, so ignore this cc and try
+- # searching again.
++ AC_MSG_CHECKING([resolved symbolic links for $1])
++ SYMLINK_ORIGINAL="$TEST_COMPILER"
++ BASIC_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
++ if test "x$TEST_COMPILER" = "x$SYMLINK_ORIGINAL"; then
++ AC_MSG_RESULT([no symlink])
++ else
++ AC_MSG_RESULT([$SYMLINK_ORIGINAL])
+
+- # Remove the path to the fake ccache cc from the PATH
+- RETRY_COMPILER_SAVED_PATH="$PATH"
+- COMPILER_DIRNAME=`$DIRNAME [$]$1`
+- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e
"s,::,:,g" -e "s,^:,,g"`"
+-
+- # Try again looking for our compiler
+- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3)
+- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1)
+- PATH="$RETRY_COMPILER_SAVED_PATH"
+-
+- AC_MSG_CHECKING([for resolved symbolic links for $1])
+- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1)
+- AC_MSG_RESULT([$PROPER_COMPILER_$1])
+- $1="$PROPER_COMPILER_$1"
+- else
+- AC_MSG_RESULT([no, keeping $1])
++ # We can't handle ccache by gcc wrappers, since we need to know if we're
++ # using ccache. Instead ccache usage must be controlled by a configure option.
++ COMPILER_BASENAME=`$BASENAME "$SYMLINK_ORIGINAL"`
++ if test "x$COMPILER_BASENAME" = "xccache"; then
++ AC_MSG_NOTICE([Please use --enable-ccache instead of providing a wrapped
compiler.])
++ AC_MSG_ERROR([$TEST_COMPILER is a symbolic link to ccache. This is not
supported.])
++ fi
+ fi
+
+ TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
commit 5b5affaf0dfd02d0927b70a7258e81badbd5b0ba
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Feb 3 18:44:36 2016 +0100
* touch -t 201401010000 java.security to try to worakround md5sums
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f24eaea..5f5162f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -734,7 +734,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1512,6 +1512,8 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
popd
bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver}
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
+touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir
$suffix}/lib/security/java.security
# end, dual install
done
@@ -1678,6 +1680,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Feb 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-3.b15
+* touch -t 201401010000 java.security to try to worakround md5sums
+
* Wed Jan 27 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-1.b15
- updated to aarch64-jdk8u72-b15 (from aarch64-port/jdk8u)
- used aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz as new sources
commit 6848b73a7375a752279c61603775642bc7dd27ec
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Jan 28 09:22:18 2016 +0100
Bumped release to rebuild by itself
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6045372..f24eaea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -734,7 +734,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
commit 40d5f9003b4d1558660b7fe076e21fe95225eaca
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 27 18:35:29 2016 +0100
Actually removed 8146566.patch file
diff --git a/8146566.patch b/8146566.patch
deleted file mode 100644
index b5728bc..0000000
--- a/8146566.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -r 3bde96c2f7f5 make/CompileDemos.gmk
---- openjdk.orig/jdk/make/CompileDemos.gmk Tue Jan 12 11:47:16 2016 +0000
-+++ openjdk/jdk/make/CompileDemos.gmk Tue Jan 12 15:47:25 2016 +0000
-@@ -229,7 +229,7 @@
- BUILD_DEMO_JVMTI_$1_LANG := $4
- endif
- ifeq (C++, $4)
-- $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
-+ $1_EXTRA_CXX := $$(LDFLAGS_CXX_JDK) $(LIBCXX)
- endif
-
- $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
-@@ -251,8 +251,8 @@
- LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
- OPTIMIZATION := LOW, \
- CXXFLAGS := $$($1_CXXFLAGS), \
-- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
-- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
-+ LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \
-+ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \
- LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
- LDFLAGS_SUFFIX_posix := $5, \
- LDFLAGS_SUFFIX_windows := $6, \
commit 72739d1f703c07a9913a24a07cbe722ce3b1a7ee
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 27 18:33:40 2016 +0100
updated to aarch64-jdk8u72-b15 (from aarch64-port/jdk8u)
- used aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz as new sources
- removed already upstreamed patch501 8146566.patch
diff --git a/.gitignore b/.gitignore
index bcdecd2..c6d9c14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@
/jdk8u60-aarch64-jdk8u65-b17.tar.xz
/aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
/aarch64-jdk8u71-b15.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 65782a8..8ed2b21 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -113,7 +113,7 @@ else
fi;
popd
-
+echo "Compresing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
tar --exclude-vcs -cJf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
else
@@ -122,5 +122,6 @@ fi
mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
popd
+echo "Done, you may wont to remove freshly cloned repo..."
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f4c08aa..6045372 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -148,8 +148,8 @@
%global origin openjdk
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global project aarch64-port
-%global repo jdk8u60
-%global revision aarch64-jdk8u71-b15
+%global repo jdk8u
+%global revision aarch64-jdk8u72-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
@@ -756,7 +756,7 @@ URL:
http://openjdk.java.net/
# Source from upstream OpenJDK8 project. To regenerate, use
# VERSION=aarch64-jdk8u71-b15 FILE_NAME_ROOT=${VERSION}
# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
-Source0: %{revision}.tar.xz
+Source0: %{project}-%{repo}-%{revision}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -833,8 +833,6 @@ Patch605: soundFontPatch.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86
platforms
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-# S8146566, PR2428: OpenJDK build can't handle commas in LDFLAGS
-Patch501: 8146566.patch
# S8143855: Bad printf formatting in frame_zero.cpp
Patch505: 8143855.patch
@@ -1117,7 +1115,6 @@ sh %{SOURCE12}
%patch602
%patch605
-%patch501
%patch502
%patch503
%patch504
@@ -1681,6 +1678,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 27 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-1.b15
+- updated to aarch64-jdk8u72-b15 (from aarch64-port/jdk8u)
+- used aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz as new sources
+- removed already upstreamed patch501 8146566.patch
+
* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-1.b15
- sync with rhel7
- security update to CPU 19.1.2016 to u71b15
diff --git a/sources b/sources
index 8d42dc6..8131325 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-07a99eb8771002d80862dbefd7629212 aarch64-jdk8u71-b15.tar.xz
+a21f6b0591cd79ab10192c69cf85cd3f aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz
diff --git a/update_package.sh b/update_package.sh
index f42f40f..3282cd4 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -21,10 +21,10 @@ if [ "x$PROJECT_NAME" = "x" ] ; then
PROJECT_NAME="aarch64-port"
fi
if [ "x$REPO_NAME" = "x" ] ; then
- REPO_NAME="jdk8u60"
+ REPO_NAME="jdk8u"
fi
if [ "x$VERSION" = "x" ] ; then
- VERSION="aarch64-jdk8u65-b17"
+ VERSION="aarch64-jdk8u72-b15"
fi
if [ "x$COMPRESSION" = "x" ] ; then
commit fec0c379241f375fe1934ce6c01519f1c7b65518
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 20 14:09:52 2016 +0100
reset release
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 01a90b0..f4c08aa 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -734,7 +734,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 15.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -1681,7 +1681,7 @@ require "copy_jdk_configs.lua"
%endif
%changelog
-* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-2.b15
+* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-1.b15
- sync with rhel7
- security update to CPU 19.1.2016 to u71b15
commit 993373a2a08fba63dc01c91aff11019610fe990b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 20 14:03:36 2016 +0100
- security update to CPU 19.1.2016 to u71b15
- and sync with rhel7
diff --git a/.gitignore b/.gitignore
index ec0ea22..bcdecd2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,3 +49,4 @@
/jdk8u60-aarch64-jdk8u60-b28.tar.xz
/jdk8u60-aarch64-jdk8u65-b17.tar.xz
/aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
+/aarch64-jdk8u71-b15.tar.xz
diff --git a/8146566.patch b/8146566.patch
new file mode 100644
index 0000000..b5728bc
--- /dev/null
+++ b/8146566.patch
@@ -0,0 +1,23 @@
+diff -r 3bde96c2f7f5 make/CompileDemos.gmk
+--- openjdk.orig/jdk/make/CompileDemos.gmk Tue Jan 12 11:47:16 2016 +0000
++++ openjdk/jdk/make/CompileDemos.gmk Tue Jan 12 15:47:25 2016 +0000
+@@ -229,7 +229,7 @@
+ BUILD_DEMO_JVMTI_$1_LANG := $4
+ endif
+ ifeq (C++, $4)
+- $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
++ $1_EXTRA_CXX := $$(LDFLAGS_CXX_JDK) $(LIBCXX)
+ endif
+
+ $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
+@@ -251,8 +251,8 @@
+ LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
+ OPTIMIZATION := LOW, \
+ CXXFLAGS := $$($1_CXXFLAGS), \
+- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
+- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
++ LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)), \
++ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \
+ LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
+ LDFLAGS_SUFFIX_posix := $5, \
+ LDFLAGS_SUFFIX_windows := $6, \
diff --git a/aarch64-ifdefbugfix.patch b/aarch64-ifdefbugfix.patch
deleted file mode 100644
index c2e05fc..0000000
--- a/aarch64-ifdefbugfix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/share/vm/interpreter/abstractInterpreter.hpp
b/src/share/vm/interpreter/abstractInterpreter.hpp
---- openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
-+++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
-@@ -34,7 +34,7 @@
- # include INTERP_MASM_MD_HPP
- #elif defined TARGET_ARCH_x86
- # include "interp_masm_x86.hpp"
--#elif TARGET_ARCH_MODEL_aarch64
-+#elif defined TARGET_ARCH_MODEL_aarch64
- # include "interp_masm_aarch64.hpp"
- #elif defined TARGET_ARCH_MODEL_sparc
- # include "interp_masm_sparc.hpp"
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 7b67da2..65782a8 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash
# Generates the 'source tarball' for JDK 8 projects.
#
# Example:
@@ -21,36 +21,69 @@
set -e
-if [ "x$PROJECT_NAME" = "x" ] ; then
- echo "no PROJECT_NAME"
- exit 1
-fi
-if [ "x$REPO_NAME" = "x" ] ; then
- echo "no REPO_NAME"
- exit 2
+OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
+COMPRESSION_DEFAULT=xz
+
+if [ "x$1" = "xhelp" ] ; then
+ echo -e "Behaviour may be specified by setting the following variables:\n"
+ echo "VERSION - the version of the specified OpenJDK project"
+ echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional;
only needed by defaults)"
+ echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by
defaults)"
+ echo "OPENJDK_URL - the URL to retrive code from (optional; defaults to
${OPENJDK_URL_DEFAULT})"
+ echo "COMPRESSION - the compression type to use (optional; defaults to
${COMPRESSION_DEFAULT})"
+ echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults
to PROJECT_NAME-REPO_NAME-VERSION)"
+ echo "REPO_ROOT - the location of the Mercurial repository to archive (optional;
defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
+ echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if
unavailable)"
+ exit 1;
fi
+
+
if [ "x$VERSION" = "x" ] ; then
- echo "no VERSION"
- exit 3
+ echo "No VERSION specified"
+ exit -2
fi
+echo "Version: ${VERSION}"
+
+# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
+if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" =
"x" ] ; then
+ if [ "x$PROJECT_NAME" = "x" ] ; then
+ echo "No PROJECT_NAME specified"
+ exit -1
+ fi
+ echo "Project name: ${PROJECT_NAME}"
+ if [ "x$REPO_NAME" = "x" ] ; then
+ echo "No REPO_NAME specified"
+ exit -3
+ fi
+ echo "Repository name: ${REPO_NAME}"
+fi
+
if [ "x$OPENJDK_URL" = "x" ] ; then
-
OPENJDK_URL=http://hg.openjdk.java.net
+ OPENJDK_URL=${OPENJDK_URL_DEFAULT}
+ echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
+else
+ echo "OpenJDK URL: ${OPENJDK_URL}"
fi
if [ "x$COMPRESSION" = "x" ] ; then
# rhel 5 needs tar.gz
- COMPRESSION=xz
+ COMPRESSION=${COMPRESSION_DEFAULT}
fi
+echo "Creating a tar.${COMPRESSION} archive"
+
if [ "x$FILE_NAME_ROOT" = "x" ] ; then
FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+ echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+ echo "No repository root specified; default to ${REPO_ROOT}"
fi;
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
+echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
pushd openjdk
@@ -59,6 +92,7 @@ repos="hotspot corba jaxws jaxp langtools nashorn jdk"
for subrepo in $repos
do
+ echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}"
hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
done
@@ -74,6 +108,7 @@ if [ "x$PR2126" = "x" ] ; then
patch -Np1 < pr2126.patch
rm pr2126.patch
else
+ echo "Applying ${PR2126}"
patch -Np1 < $PR2126
fi;
diff --git a/java-1.8.0-openjdk-rh1191652-jdk.patch
b/java-1.8.0-openjdk-rh1191652-jdk.patch
index b6fb673..5157f40 100644
--- a/java-1.8.0-openjdk-rh1191652-jdk.patch
+++ b/java-1.8.0-openjdk-rh1191652-jdk.patch
@@ -1,5 +1,6 @@
---- openjdk/jdk/make/lib/SoundLibraries.gmk.orig 2015-03-03 20:52:33.000000000 -0500
-+++ openjdk/jdk/make/lib/SoundLibraries.gmk 2015-03-03 20:54:39.000000000 -0500
+diff -r 1fe56343ecc8 make/lib/SoundLibraries.gmk
+--- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
++++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
@@ -140,6 +140,10 @@
LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
endif
@@ -11,21 +12,21 @@
ifeq ($(OPENJDK_TARGET_CPU), aarch64)
LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
endif
-diff -r 87c95759b92b src/share/native/com/sun/media/sound/SoundDefs.h
---- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Feb 11 18:55:05 2015
-0800
-+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Feb 17 18:25:01 2015
+0000
-@@ -43,6 +43,8 @@
+diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
+--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12 2016
+0000
++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016
+0000
+@@ -44,6 +44,8 @@
#define X_ARM 7
#define X_PPC 8
#define X_AARCH64 9
-+#define X_PPC64 9
-+#define X_PPC64LE 10
++#define X_PPC64 10
++#define X_PPC64LE 11
// **********************************
// Make sure you set X_PLATFORM and X_ARCH defines correctly.
-diff -r 87c95759b92b src/solaris/bin/ppc64le/jvm.cfg
+diff -r 1fe56343ecc8 src/solaris/bin/ppc64le/jvm.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Tue Feb 17 18:25:01 2015 +0000
++++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Wed Jan 13 00:18:02 2016 +0000
@@ -0,0 +1,33 @@
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a5c2ce9..01a90b0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -38,6 +38,14 @@
# note, that order normal_suffix debug_suffix, in case of both enabled,
# is expected in one single case at the end of build
+%global bootstrap_build 0
+
+%if %{bootstrap_build}
+%global targets bootcycle-images docs
+%else
+%global targets all
+%endif
+
%global aarch64 aarch64 arm64 armv8
# sometimes we need to distinguish big and little endian PPC64
%global ppc64le ppc64le
@@ -51,6 +59,12 @@
%global ourcppflags %{nil}
%global ourldflags %{nil}
%else
+%ifarch %{aarch64}
+# Disable hardened build on AArch64 as it didn't bootcycle
+%undefine _hardened_build
+%global ourcppflags "-fstack-protector-strong"
+%global ourldflags %{nil}
+%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
@@ -60,6 +74,7 @@
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global ourldflags %{__global_ldflags}
%endif
+%endif
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -134,7 +149,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global project aarch64-port
%global repo jdk8u60
-%global revision aarch64-jdk8u65-b17
+%global revision aarch64-jdk8u71-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
@@ -197,8 +212,9 @@ exit 0
# The pretrans lua scriptlet prevents an unmodified java.security
# from being replaced via an update. It gets created as
# java.security.rpmnew instead. This invalidates the patch of
-# JDK-8061210 of the January 2015 CPU or JDK-8043201 of the
-# July 2015 CPU. We fix this via a post scriptlet which runs on updates.
+# JDK-8061210 of the January 2015 CPU, JDK-8043201 of the
+# July 2015 CPU and JDK-8141287 of the January 2016 CPU. We
+# fix this via a post scriptlet which runs on updates.
if [ "$1" -gt 1 ]; then
javasecurity="%{_jvmdir}/%{uniquesuffix}/jre/lib/security/java.security"
sum=$(md5sum "${javasecurity}" | cut -d' ' -f1)
@@ -207,7 +223,8 @@ if [ "$1" -gt 1 ]; then
"${sum}" = 'b138695d0c0ea947e64a21a627d973ba' -o \\
"${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
"${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
- "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' ]; then
+ "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' -o \\
+ "${sum}" = '321342219bb130d238ff144b9e5dbfc1' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
fi
@@ -735,10 +752,11 @@ Group: Development/Languages
License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and
LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
URL:
http://openjdk.java.net/
-# Source from upstrem OpenJDK8 project. To regenerate, use
# aarch64-port now contains integration forest of both aarch64 and normal jdk
-# ./generate_source_tarball.sh aarch64-port jdk8u60 aarch64-jdk8u65-b17
-Source0: %{project}-%{repo}-%{revision}.tar.xz
+# Source from upstream OpenJDK8 project. To regenerate, use
+# VERSION=aarch64-jdk8u71-b15 FILE_NAME_ROOT=${VERSION}
+# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
+Source0: %{revision}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -772,53 +790,64 @@ Source101: config.sub
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
-
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
-# Allow multiple initialization of PKCS11 libraries
-Patch5: multiple-pkcs11-library-init.patch
-# Include all sources in src.zip
-Patch7: include-all-srcs.patch
-# Problem discovered with make 4.0
-Patch12: removeSunEcProvider-RH1154143.patch
-#
-# OpenJDK specific patches
-#
+# Upstreamable patches
+# PR2737: Allow multiple initialization of PKCS11 libraries
+Patch5: multiple-pkcs11-library-init.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
+Patch504: rh1163501.patch
+# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
(upstreaming post-CPU 2015/07)
+Patch511: rh1214835.patch
+# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
+Patch512: no_strict_overflow.patch
+# Arch-specific upstreamable patches
# JVM heap size changes for s390 (thanks to aph)
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
Patch102: %{name}-size_t.patch
+# Use "%z" for size_t on s390 as size_t != intptr_t
+Patch103: s390-size_t_format_flags.patch
-Patch201: system-libjpeg.patch
+# Patches which need backporting to 8u
+# S8073139, RH1191652; fix name of ppc64le architecture
+Patch601: %{name}-rh1191652-root.patch
+Patch602: %{name}-rh1191652-jdk.patch
+Patch603: %{name}-rh1191652-hotspot-aarch64.patch
+# Include all sources in src.zip
+Patch7: include-all-srcs.patch
+# 8035341: Allow using a system installed libpng
Patch202: system-libpng.patch
+# 8042159: Allow using a system-installed lcms2
Patch203: system-lcms.patch
-
-Patch300: jstack-pr1845.patch
-
-# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
-Patch403: rhbz1206656_fix_current_stack_pointer.patch
-
-# PR2428: OpenJDK build can't handle commas in LDFLAGS
-Patch501: pr2428.patch
# PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the
unpack200 binary"
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462-01.patch
Patch503: pr2462-02.patch
-# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
-Patch504: rh1163501.patch
-# S8143855: Bad printf formatting in frame_zero.cpp (upstream from u76)
+# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux
+Patch605: soundFontPatch.patch
+
+# Patches upstream and appearing in 8u76
+# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
+# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86
platforms
+Patch403: rhbz1206656_fix_current_stack_pointer.patch
+# S8146566, PR2428: OpenJDK build can't handle commas in LDFLAGS
+Patch501: 8146566.patch
+# S8143855: Bad printf formatting in frame_zero.cpp
Patch505: 8143855.patch
-# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
(upstreaming post-CPU 2015/07)
-Patch511: rh1214835.patch
-# RH1191652; fix name of ppc64le architecture
-Patch601: %{name}-rh1191652-root.patch
-Patch602: %{name}-rh1191652-jdk.patch
-Patch603: %{name}-rh1191652-hotspot-aarch64.patch
-Patch604: aarch64-ifdefbugfix.patch
-Patch605: soundFontPatch.patch
+# Patches ineligible for 8u
+# 8043805: Allow using a system-installed libjpeg
+Patch201: system-libjpeg.patch
+
+# Local fixes
+# Turns off ECC support as we don't ship the SunEC provider currently
+Patch12: removeSunEcProvider-RH1154143.patch
+
+# Non-OpenJDK fixes
+Patch300: jstack-pr1845.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -855,7 +884,6 @@ BuildRequires: tzdata-java >= 2015d
# cacerts build requirement.
BuildRequires: openssl
-#prelink was removed from fedora
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
@@ -1078,6 +1106,7 @@ sh %{SOURCE12}
%ifarch s390
%patch100
%patch102
+%patch103
%endif
# Zero PPC fixes.
@@ -1086,7 +1115,6 @@ sh %{SOURCE12}
%patch603
%patch601
%patch602
-%patch604
%patch605
%patch501
@@ -1095,6 +1123,7 @@ sh %{SOURCE12}
%patch504
%patch505
%patch511
+%patch512
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1220,7 +1249,7 @@ make \
STRIP_POLICY=no_strip \
POST_STRIP_CMD="" \
LOG=trace \
- all
+ %{targets}
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
@@ -1652,6 +1681,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-2.b15
+- sync with rhel7
+- security update to CPU 19.1.2016 to u71b15
+
* Tue Dec 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-14.b17
- pretrans moved back to lua nd now includes file from copy-jdk-configs instead of call
it
diff --git a/no_strict_overflow.patch b/no_strict_overflow.patch
new file mode 100644
index 0000000..53fa41c
--- /dev/null
+++ b/no_strict_overflow.patch
@@ -0,0 +1,16 @@
+diff -r 1fe56343ecc8 make/lib/Awt2dLibraries.gmk
+--- openjdk/jdk/make/lib/Awt2dLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk Thu Jan 14 00:47:01 2016 +0000
+@@ -904,6 +904,12 @@
+ BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
+ endif
+
++# Turn off strict overflow with GCC for IndicRearrangementProcessor.cpp
++ifeq ($(OPENJDK_TARGET_OS), linux)
++ BUILD_LIBFONTMANAGER_IndicRearrangementProcessor.cpp_CXXFLAGS := -fno-strict-overflow
++ BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS :=
-fno-strict-overflow
++endif
++
+ $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \
+ LIBRARY := fontmanager, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
diff --git a/pr2428.patch b/pr2428.patch
deleted file mode 100644
index a51976f..0000000
--- a/pr2428.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1434497865 -3600
-# Wed Jun 17 00:37:45 2015 +0100
-# Node ID adf1b3700c5ba6c13eb8f9d8eb4d6d32085bd483
-# Parent 9e470ada9ea747f711ad2bd5b69e8124fbad384f
-PR2428: OpenJDK build can't handle commas in LDFLAGS
-Summary: Expand LDFLAGS outside function call, as is done with CFLAGS
-
-diff -r 9e470ada9ea7 -r adf1b3700c5b make/CompileDemos.gmk
---- openjdk/jdk/make/CompileDemos.gmk Mon Jun 08 19:25:43 2015 +0100
-+++ openjdk/jdk/make/CompileDemos.gmk Wed Jun 17 00:37:45 2015 +0100
-@@ -246,12 +246,13 @@
- -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3
-
- # Remove the -incremental:no setting to get .ilk-files like in the old build.
-+ BUILD_DEMO_JVMTI_$1_LDFLAGS := $(filter-out -incremental:no -opt:ref,
$(LDFLAGS_JDKLIB))
-+
- $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \
- SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
- LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
- OPTIMIZATION := LOW, \
- CXXFLAGS := $$($1_CXXFLAGS), \
-- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
- LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
- LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
- LDFLAGS_SUFFIX_posix := $5, \
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
index e549a9c..02955a2 100644
--- a/removeSunEcProvider-RH1154143.patch
+++ b/removeSunEcProvider-RH1154143.patch
@@ -1,6 +1,6 @@
-diff -r 135101850ef1 src/share/lib/security/java.security-linux
---- openjdk/jdk/src/share/lib/security/java.security-linux Wed Jun 03 20:23:19 2015
-0700
-+++ openjdk/jdk/src/share/lib/security/java.security-linux Thu Jul 02 04:02:18 2015
+0100
+diff -r 1fe56343ecc8 src/share/lib/security/java.security-linux
+--- openjdk/jdk/src/share/lib/security/java.security-linux Tue Jan 12 21:01:12 2016
+0000
++++ openjdk/jdk/src/share/lib/security/java.security-linux Tue Jan 12 23:59:19 2016
+0000
@@ -67,13 +67,13 @@
#
security.provider.1=sun.security.provider.Sun
@@ -22,12 +22,12 @@ diff -r 135101850ef1 src/share/lib/security/java.security-linux
#
# Sun Provider SecureRandom seed source.
-@@ -500,7 +500,7 @@
+@@ -509,7 +509,7 @@
#
# Example:
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
--jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
-+jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768, EC, ECDHE, ECDH
+-jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768
++jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, EC, ECDHE, ECDH
# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
# processing in JSSE implementation.
diff --git a/s390-size_t_format_flags.patch b/s390-size_t_format_flags.patch
new file mode 100644
index 0000000..1c644b5
--- /dev/null
+++ b/s390-size_t_format_flags.patch
@@ -0,0 +1,130 @@
+diff -r cf43a852f486 src/share/vm/asm/codeBuffer.cpp
+--- openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 03:43:29 2016 +0000
++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 05:30:26 2016 +0000
+@@ -977,7 +977,7 @@
+ for (int n = (int) CodeBuffer::SECT_FIRST; n < (int) CodeBuffer::SECT_LIMIT; n++)
{
+ CodeSection* sect = code_section(n);
+ if (!sect->is_allocated() || sect->is_empty()) continue;
+- xtty->print_cr("<sect index='%d' size='" SIZE_FORMAT
"' free='" SIZE_FORMAT "'/>",
++ xtty->print_cr("<sect index='%d' size='" INTX_FORMAT
"' free='" INTX_FORMAT "'/>",
+ n, sect->limit() - sect->start(), sect->limit() -
sect->end());
+ }
+ xtty->print_cr("</blob>");
+diff -r cf43a852f486 src/share/vm/code/codeCache.cpp
+--- openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 03:43:29 2016 +0000
++++ openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 05:30:26 2016 +0000
+@@ -191,7 +191,7 @@
+ }
+ if (PrintCodeCacheExtension) {
+ ResourceMark rm;
+- tty->print_cr("code cache extended to [" INTPTR_FORMAT ", "
INTPTR_FORMAT "] (" SSIZE_FORMAT " bytes)",
++ tty->print_cr("code cache extended to [" INTPTR_FORMAT ", "
INTPTR_FORMAT "] (" INTX_FORMAT " bytes)",
+ (intptr_t)_heap->low_boundary(), (intptr_t)_heap->high(),
+ (address)_heap->high() - (address)_heap->low_boundary());
+ }
+diff -r cf43a852f486 src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13
03:43:29 2016 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13
05:30:26 2016 +0000
+@@ -556,7 +556,7 @@
+ " [Table]\n"
+ " [Memory Usage: "G1_STRDEDUP_BYTES_FORMAT_NS"]\n"
+ " [Size: "SIZE_FORMAT", Min: "SIZE_FORMAT", Max:
"SIZE_FORMAT"]\n"
+- " [Entries: "UINTX_FORMAT", Load:
"G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " UINTX_FORMAT ", Added:
"UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n"
++ " [Entries: "UINTX_FORMAT", Load:
"G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " SIZE_FORMAT ", Added:
"UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n"
+ " [Resize Count: "UINTX_FORMAT", Shrink Threshold:
"UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS"), Grow Threshold:
"UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS")]\n"
+ " [Rehash Count: "UINTX_FORMAT", Rehash Threshold:
"UINTX_FORMAT", Hash Seed: 0x%x]\n"
+ " [Age Threshold: "UINTX_FORMAT"]",
+diff -r cf43a852f486 src/share/vm/memory/blockOffsetTable.cpp
+--- openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 03:43:29 2016
+0000
++++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 05:30:26 2016
+0000
+@@ -57,7 +57,7 @@
+ gclog_or_tty->print_cr("BlockOffsetSharedArray::BlockOffsetSharedArray:
");
+ gclog_or_tty->print_cr(" "
+ " rs.base(): " INTPTR_FORMAT
+- " rs.size(): " INTPTR_FORMAT
++ " rs.size(): " SIZE_FORMAT
+ " rs end(): " INTPTR_FORMAT,
+ p2i(rs.base()), rs.size(), p2i(rs.base() + rs.size()));
+ gclog_or_tty->print_cr(" "
+diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp
+--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 03:43:29 2016 +0000
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 05:30:26 2016 +0000
+@@ -1285,14 +1285,14 @@
+ }
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+- tty->print_cr("CMS ergo set MaxNewSize: " SIZE_FORMAT, MaxNewSize);
++ tty->print_cr("CMS ergo set MaxNewSize: " UINTX_FORMAT, MaxNewSize);
+ }
+
+ // Code along this path potentially sets NewSize and OldSize
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+- tty->print_cr("CMS set min_heap_size: " SIZE_FORMAT
+- " initial_heap_size: " SIZE_FORMAT
++ tty->print_cr("CMS set min_heap_size: " UINTX_FORMAT
++ " initial_heap_size: " UINTX_FORMAT
+ " max_heap: " SIZE_FORMAT,
+ min_heap_size(), InitialHeapSize, max_heap);
+ }
+@@ -1308,7 +1308,7 @@
+ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+- tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
++ tty->print_cr("CMS ergo set NewSize: " UINTX_FORMAT, NewSize);
+ }
+ }
+ // Unless explicitly requested otherwise, size old gen
+@@ -1318,7 +1318,7 @@
+ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap -
NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+- tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
++ tty->print_cr("CMS ergo set OldSize: " UINTX_FORMAT, OldSize);
+ }
+ }
+ }
+@@ -1834,7 +1834,7 @@
+
+ if (PrintGCDetails && Verbose) {
+ // Cannot use gclog_or_tty yet.
+- tty->print_cr(" Initial heap size " SIZE_FORMAT,
(uintx)reasonable_initial);
++ tty->print_cr(" Initial heap size " SIZE_FORMAT,
(size_t)reasonable_initial);
+ }
+ FLAG_SET_ERGO(uintx, InitialHeapSize, (uintx)reasonable_initial);
+ }
+@@ -1844,7 +1844,7 @@
+ set_min_heap_size(MIN2((uintx)reasonable_minimum, InitialHeapSize));
+ if (PrintGCDetails && Verbose) {
+ // Cannot use gclog_or_tty yet.
+- tty->print_cr(" Minimum heap size " SIZE_FORMAT,
min_heap_size());
++ tty->print_cr(" Minimum heap size " UINTX_FORMAT,
min_heap_size());
+ }
+ }
+ }
+diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp
+--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 03:43:29 2016
+0000
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 05:30:26 2016
+0000
+@@ -1382,12 +1382,21 @@
+
+ #define INTPTR_FORMAT_W(width) "%" #width PRIxPTR
+
++#ifdef S390
++#define SSIZE_FORMAT "%z" PRIdPTR
++#define SIZE_FORMAT "%z" PRIuPTR
++#define SIZE_FORMAT_HEX "0x%z" PRIxPTR
++#define SSIZE_FORMAT_W(width) "%" #width "z" PRIdPTR
++#define SIZE_FORMAT_W(width) "%" #width "z" PRIuPTR
++#define SIZE_FORMAT_HEX_W(width) "0x%" #width "z" PRIxPTR
++#else // !S390
+ #define SSIZE_FORMAT "%" PRIdPTR
+ #define SIZE_FORMAT "%" PRIuPTR
+ #define SIZE_FORMAT_HEX "0x%" PRIxPTR
+ #define SSIZE_FORMAT_W(width) "%" #width PRIdPTR
+ #define SIZE_FORMAT_W(width) "%" #width PRIuPTR
+ #define SIZE_FORMAT_HEX_W(width) "0x%" #width PRIxPTR
++#endif // S390
+
+ #define INTX_FORMAT "%" PRIdPTR
+ #define UINTX_FORMAT "%" PRIuPTR
diff --git a/sources b/sources
index 0dd43a7..8d42dc6 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-f6ee06389f8ac0890ce5d003b2c0fb0a aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
+07a99eb8771002d80862dbefd7629212 aarch64-jdk8u71-b15.tar.xz
diff --git a/system-lcms.patch b/system-lcms.patch
index e1170f0..6f39b57 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -51,52 +51,68 @@ diff -ruN jdk8/common/autoconf/libraries.m4
jdk8/common/autoconf/libraries.m4
diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
--- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
-@@ -661,8 +661,8 @@
+@@ -666,18 +666,35 @@
+
##########################################################################################
++LIBLCMS_DIR := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms
++
++ifeq ($(USE_EXTERNAL_LCMS), true)
++ # If we're using an external library, we'll just need the wrapper part.
++ # By including it explicitely, all other files will be excluded.
++ BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c
++ BUILD_LIBLCMS_HEADERS :=
++else
++ BUILD_LIBLCMS_INCLUDE_FILES :=
++ # If we're using the bundled library, we'll need to include it in the
++ # include path explicitly. Otherwise the system headers will be used.
++ BUILD_LIBLCMS_HEADERS := -I$(LIBLCMS_DIR)
++endif
++
# TODO: Update awt lib path when awt is converted
--$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
-- LIBRARY := lcms, \
-+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \
-+ LIBRARY := javalcms, \
+ $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
+ LIBRARY := lcms, \
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
- SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
+- SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
++ SRC := $(LIBLCMS_DIR), \
++ INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
LANG := C, \
-@@ -680,19 +680,19 @@
+ OPTIMIZATION := HIGHEST, \
+ CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
+ -DCMS_DONT_USE_FAST_FLOOR \
+ $(SHARED_LIBRARY_FLAGS) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/java2d \
+- -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug, \
++ -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
++ $(BUILD_LIBLCMS_HEADERS) \
++ $(LCMS_CFLAGS), \
+ CFLAGS_solaris := -xc99=no_lib, \
+ CFLAGS_windows := -DCMS_IS_WINDOWS_, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/liblcms/mapfile-vers, \
+@@ -685,10 +702,10 @@
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
- LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
- LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
+- LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
+- LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
-+ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
- LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
+- LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
++ LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc $(LCMS_LIBS), \
++ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm $(LCMS_LIBS), \
++ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm $(LCMS_LIBS), \
++ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm $(LCMS_LIBS),\
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
RC_FLAGS := $(RC_FLAGS) \
-- -D "JDK_FNAME=lcms.dll" \
-- -D "JDK_INTERNAL_NAME=lcms" \
-+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=javalcms" \
- -D "JDK_FTYPE=0x2L", \
-- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
-+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \
- DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+ -D "JDK_FNAME=lcms.dll" \
+diff -r 3d1c3b0b73a3 src/share/native/sun/java2d/cmm/lcms/LCMS.c
+--- openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Tue Sep 08 22:31:26 2015
+0300
++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Thu Oct 15 05:29:28 2015
+0100
+@@ -30,7 +30,7 @@
+ #include "jni_util.h"
+ #include "Trace.h"
+ #include "Disposer.h"
+-#include "lcms2.h"
++#include <lcms2.h>
+ #include "jlong.h"
--BUILD_LIBRARIES += $(BUILD_LIBLCMS)
-+BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-
--$(BUILD_LIBLCMS): $(BUILD_LIBAWT)
-+$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT)
-
-
##########################################################################################
-diff -ruN jdk8/jdk/src/share/classes/sun/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
---- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2013-10-31
19:44:18.000000000 -0400
-+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2013-11-14
22:05:11.476356403 -0500
-@@ -207,7 +207,7 @@
- * disposer frameworks
- */
- System.loadLibrary("awt");
-- System.loadLibrary("lcms");
-+ System.loadLibrary("javalcms");
- return null;
- }
- });
commit 8a6194ff5ac7f587a76b643067b33af55aa597fa
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jan 20 13:27:27 2016 +0100
copy-jdk-configs are enforced now
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9b12b1e..a5c2ce9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -610,8 +610,8 @@ Requires: javapackages-tools
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
-# tool to copy jdk's configs
-Recommends: copy-jdk-configs >= 1.1-3
+# 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 >= 1.1-3
OrderWithRequires: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
commit 2aa2ebf905800482be081d8a9d488899721b18a5
Author: Jiri <jvanek(a)redhat.com>
Date: Fri Jan 8 13:22:13 2016 +0100
depending on latest copy-jdk-configs
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 63b35ea..9b12b1e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -611,7 +611,7 @@ Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
# tool to copy jdk's configs
-Recommends: copy-jdk-configs >= 1.1-2
+Recommends: copy-jdk-configs >= 1.1-3
OrderWithRequires: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
commit a015e867617e49b4b9f8fc28ca12c90b2ba3fa2e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 17 08:55:09 2015 +0100
Bumped release. build by itself
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6287ceb..63b35ea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -717,7 +717,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 14.%{buildver}%{?dist}
+Release: 15.%{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
commit 8aabfb4c17341e592b287345768e7c8096f3dc56
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Dec 16 18:26:24 2015 +0100
pretrans moved back to lua nd now includes file from copy-jdk-configs instead of call
it
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 41ebd42..6287ceb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -166,6 +166,8 @@
%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin}
%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}}
+%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir,
@@ -609,7 +611,8 @@ Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
# tool to copy jdk's configs
-Recommends: copy-jdk-configs
+Recommends: copy-jdk-configs >= 1.1-2
+OrderWithRequires: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -714,7 +717,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 14.%{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
@@ -1489,12 +1492,46 @@ done
%if %{include_normal_build}
# intentioanlly only for non-debug
-%pretrans headless
-# see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
-if [ -f %{_libexecdir}/copy_jdk_configs.lua ] ; then
- %{_libexecdir}/copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}"
--jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver
"%{javaver}" --arch "%{_arch}"
-fi
-
+%pretrans headless -p <lua>
+-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
+-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
+-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in tranasction
and so is
+-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
+-- whether copy-jdk-configs is installed or not. If so, then configs are copied
+-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
+local posix = require "posix"
+local debug = false
+
+SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
+SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
+
+local stat1 = posix.stat(SOURCE1, "type");
+local stat2 = posix.stat(SOURCE2, "type");
+
+ if (stat1 ~= nil) then
+ if (debug) then
+ print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this
one.")
+ end;
+ package.path = package.path .. ";" .. SOURCE1
+else
+ if (stat2 ~= nil) then
+ if (debug) then
+ print(SOURCE2 .." exists - copy-jdk-configs alrady installed and NOT in
transation. Using.")
+ end;
+ package.path = package.path .. ";" .. SOURCE2
+ else
+ if (debug) then
+ print(SOURCE1 .." does NOT exists")
+ print(SOURCE2 .." does NOT exists")
+ print("No config files will be copied")
+ end
+ return
+ end
+end
+-- run contetn of included file with fake args
+arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}"}
+require "copy_jdk_configs.lua"
%post
%{post_script %{nil}}
@@ -1615,6 +1652,9 @@ fi
%endif
%changelog
+* Tue Dec 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-14.b17
+- pretrans moved back to lua nd now includes file from copy-jdk-configs instead of call
it
+
* Tue Dec 15 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.65-13.b17
- Disable hardened build on non-JIT arches.
Workaround for RHBZ#1290936.
commit a3d2906731c65fdf9b88aac87d4c4f22a98e5c07
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Tue Dec 15 14:50:16 2015 +0100
Disable hardened build on non-JIT arches.
This is a workaround for RHBZ#1290936 until we know
why a hardened build does not work for Zero JVMs.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3ddc5fe..41ebd42 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -38,6 +38,19 @@
# note, that order normal_suffix debug_suffix, in case of both enabled,
# is expected in one single case at the end of build
+%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}
+
+%ifnarch %{jit_arches}
+# Disable hardened build on non-jit arches. Work-around for RHBZ#1290936.
+%undefine _hardened_build
+%global ourcppflags %{nil}
+%global ourldflags %{nil}
+%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
@@ -45,13 +58,8 @@
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
-
-%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}
+%global ourldflags %{__global_ldflags}
+%endif
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -706,7 +714,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -1192,7 +1200,7 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
- --with-extra-ldflags="%__global_ldflags" \
+ --with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC"
cat spec.gmk
@@ -1607,6 +1615,10 @@ fi
%endif
%changelog
+* Tue Dec 15 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.65-13.b17
+- Disable hardened build on non-JIT arches.
+ Workaround for RHBZ#1290936.
+
* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-12.b17
-removed patch4 java-1.8.0-openjdk-PStack-808293.patch
-removed patch13 libjpeg-turbo-1.4-compat.patch
commit 9a56328e095130ed0c54aa13b9541d3d38efdac0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Dec 14 13:48:13 2015 +0100
jdk8 in system-lcms.patch repalced by openjdk
diff --git a/system-lcms.patch b/system-lcms.patch
index c098f3a..e1170f0 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -1,6 +1,6 @@
diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4 2013-11-14 22:04:38.039440136 -0500
-+++ jdk8/common/autoconf/libraries.m4 2013-11-14 22:05:11.474356424 -0500
+--- openjdk/common/autoconf/libraries.m4 2013-11-14 22:04:38.039440136 -0500
++++ openjdk/common/autoconf/libraries.m4 2013-11-14 22:05:11.474356424 -0500
@@ -676,6 +676,46 @@
###############################################################################
@@ -49,8 +49,8 @@ diff -ruN jdk8/common/autoconf/libraries.m4
jdk8/common/autoconf/libraries.m4
#
diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
---- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
-+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
+--- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
@@ -661,8 +661,8 @@
##########################################################################################
commit 1b66302e78024f99265c703cf485063874ea891e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Dec 14 13:45:05 2015 +0100
bundled LCMS sources surrounded by if to male exclusion/*inclusion easier
diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh
b/java-1.8.0-openjdk-remove-intree-libraries.sh
index 76a4156..1f022f6 100644
--- a/java-1.8.0-openjdk-remove-intree-libraries.sh
+++ b/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -97,6 +97,8 @@ if [ ! -d ${LCMS_SRC} ]; then
echo "${LCMS_SRC} does not exist. Refusing to proceed."
exit 1
fi
+# temporary change to move bundled LCMS
+if [ ! true ]; then
rm -vf ${LCMS_SRC}/cmscam02.c
rm -vf ${LCMS_SRC}/cmscgats.c
rm -vf ${LCMS_SRC}/cmscnvrt.c
@@ -125,3 +127,4 @@ rm -vf ${LCMS_SRC}/cmsxform.c
rm -vf ${LCMS_SRC}/lcms2.h
rm -vf ${LCMS_SRC}/lcms2_internal.h
rm -vf ${LCMS_SRC}/lcms2_plugin.h
+fi
commit d28765c33d068af9ff432a92443b93beeef88a22
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 10 15:38:09 2015 +0100
Tracked and remeoved useless patches (thanx gnu_andrew!)
diff --git a/java-1.8.0-openjdk-PStack-808293.patch
b/java-1.8.0-openjdk-PStack-808293.patch
deleted file mode 100644
index eb8b8a0..0000000
--- a/java-1.8.0-openjdk-PStack-808293.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06
02:26:33.322164601 +0200
-+++ jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06
02:26:57.958514071 +0200
-@@ -1,5 +1,6 @@
- /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2012, 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
-@@ -84,7 +85,8 @@
- out.print("----------------- ");
- out.print(th);
- out.println(" -----------------");
-- while (f != null) {
-+ int maxStack = 256;
-+ while (f != null && maxStack-- > 0) {
- ClosestSymbol sym = f.closestSymbolToPC();
- Address pc = f.pc();
- out.print(pc + "\t");
-@@ -158,10 +160,19 @@
- }
- }
- }
-+ Address oldPC = f.pc();
-+ Address oldFP = f.localVariableBase();
- f = f.sender(th);
-+ if (f != null
-+ && oldPC.equals(f.pc())
-+ && oldFP.equals(f.localVariableBase())) {
-+ // We didn't make any progress
-+ f = null;
-+ }
- }
- } catch (Exception exp) {
-- exp.printStackTrace();
-+ // exp.printStackTrace();
-+ out.println("bad stack: " + exp);
- // continue, may be we can do a better job for other threads
- }
- if (concurrentLocks) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bb615f2..3ddc5fe 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -706,7 +706,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -764,15 +764,12 @@ Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
-# RHBZ 808293
-Patch4: %{name}-PStack-808293.patch
# Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
# Problem discovered with make 4.0
Patch12: removeSunEcProvider-RH1154143.patch
-Patch13: libjpeg-turbo-1.4-compat.patch
#
# OpenJDK specific patches
@@ -1062,11 +1059,9 @@ sh %{SOURCE12}
%patch1
%patch3
-%patch4
%patch5
%patch7
%patch12
-%patch13
# s390 build fixes
%ifarch s390
@@ -1612,6 +1607,10 @@ fi
%endif
%changelog
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-12.b17
+-removed patch4 java-1.8.0-openjdk-PStack-808293.patch
+-removed patch13 libjpeg-turbo-1.4-compat.patch
+
* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-11.b17
- Define our own optimisation flags based on the optflags macro and pass to OpenJDK build
cflags/cxxflags.
- Remove -fno-devirtualize as we are now on GCC 5 where the GCC bug it worked around is
fixed.
diff --git a/libjpeg-turbo-1.4-compat.patch b/libjpeg-turbo-1.4-compat.patch
deleted file mode 100644
index 26ffc7b..0000000
--- a/libjpeg-turbo-1.4-compat.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Remove uses of FAR in jpeg code
-
-Upstream libjpeg-trubo removed the (empty) FAR macro:
-http://sourceforge.net/p/libjpeg-turbo/code/1312/
-
-Adjust our code to not use the undefined FAR macro anymore.
-
-diff --git a/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
b/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
---- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
-+++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
-@@ -1385,7 +1385,7 @@
- /* and fill it in */
- dst_ptr = icc_data;
- for (seq_no = first; seq_no < last; seq_no++) {
-- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
-+ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
- unsigned int length =
- icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;
-
-diff --git a/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
b/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
---- jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
-+++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
-@@ -41,9 +41,8 @@
- #include "jni.h"
- #include "jni_util.h"
-
--/* undo "system_boolean" hack and undef FAR since we don't use it anyway
*/
-+/* undo "system_boolean" hack since we don't use it anyway */
- #undef boolean
--#undef FAR
- #include <jpeglib.h>
- #include "jerror.h"
-
commit 322a6accbb226cdb2682784a1b8b3f3a0e978c91
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 10 14:05:06 2015 +0100
Fixed hardened build (gnu_andrew)
diff --git a/8143855.patch b/8143855.patch
new file mode 100644
index 0000000..5d398de
--- /dev/null
+++ b/8143855.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# User andrew
+# Date 1448509207 0
+# Thu Nov 26 03:40:07 2015 +0000
+# Node ID 4a4a5b8b3dfe44b25d2a40ba987e5243b3ebc9db
+# Parent 110735ab93eca3bd6e9b157955a942e00aed72e1
+8143855: Bad printf formatting in frame_zero.cpp
+Summary: Backport subset of 8075967 fix that resolves this issue.
+Reviewed-by: dholmes
+
+diff -r 110735ab93ec -r 4a4a5b8b3dfe src/cpu/zero/vm/frame_zero.cpp
+--- openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Nov 04 13:38:38 2015 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Thu Nov 26 03:40:07 2015 +0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+@@ -216,7 +216,7 @@
+ valuebuf[buflen - 1] = '\0';
+
+ // Print the result
+- st->print_cr(" " PTR_FORMAT ": %-21s = %s", addr, fieldbuf,
valuebuf);
++ st->print_cr(" " PTR_FORMAT ": %-21s = %s", p2i(addr),
fieldbuf, valuebuf);
+ }
+ }
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 356a43b..bb615f2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -38,6 +38,13 @@
# note, that order normal_suffix debug_suffix, in case of both enabled,
# is expected in one single case at the end of build
+# Filter out flags from the optflags macro that cause problems with the OpenJDK build
+# We filter out -O flags so that the optimisation of HotSpot is not lowered from O3 to
O2
+# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
+# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
+# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
+%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
%global aarch64 aarch64 arm64 armv8
# sometimes we need to distinguish big and little endian PPC64
@@ -699,7 +706,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -785,8 +792,16 @@ Patch300: jstack-pr1845.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
Patch403: rhbz1206656_fix_current_stack_pointer.patch
+# PR2428: OpenJDK build can't handle commas in LDFLAGS
+Patch501: pr2428.patch
+# PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the
unpack200 binary"
+# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
+Patch502: pr2462-01.patch
+Patch503: pr2462-02.patch
# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
Patch504: rh1163501.patch
+# S8143855: Bad printf formatting in frame_zero.cpp (upstream from u76)
+Patch505: 8143855.patch
# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
(upstreaming post-CPU 2015/07)
Patch511: rh1214835.patch
@@ -1068,7 +1083,11 @@ sh %{SOURCE12}
%patch604
%patch605
+%patch501
+%patch502
+%patch503
%patch504
+%patch505
%patch511
# Extract systemtap tapsets
@@ -1127,11 +1146,12 @@ export ARCH_DATA_MODEL=64
export CFLAGS="$CFLAGS -mieee"
%endif
-EXTRA_CFLAGS="-fstack-protector-strong"
+# We use ourcppflags because the OpenJDK build seems to
+# pass these to the HotSpot C++ compiler...
+EXTRA_CFLAGS="%ourcppflags"
# Disable various optimizations to fix miscompliation. See:
# -
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize"
-EXTRA_CPP_FLAGS="-fno-devirtualize -fno-tree-vrp"
+EXTRA_CPP_FLAGS="%ourcppflags -fno-tree-vrp"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
@@ -1177,6 +1197,7 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
+ --with-extra-ldflags="%__global_ldflags" \
--with-num-cores="$NUM_PROC"
cat spec.gmk
@@ -1591,6 +1612,15 @@ fi
%endif
%changelog
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-11.b17
+- Define our own optimisation flags based on the optflags macro and pass to OpenJDK build
cflags/cxxflags.
+- Remove -fno-devirtualize as we are now on GCC 5 where the GCC bug it worked around is
fixed.
+- Pass __global_ldflags to --with-extra-ldflags so Fedora linker flags are used in the
build.
+- Also Pass ourcppflags to the OpenJDK build cflags as it wrongly uses them for the
HotSpot C++ build.
+- Add PR2428, PR2462 & S8143855 patches to fix build issues that arise.
+- Resolves: rhbz#1283949
+- Resolves: rhbz#1120792
+
* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-10.b17
- Add patch to honour %%{_smp_ncpus_max} from Tuomo Soini
- Resolves: rhbz#1152896
diff --git a/pr2428.patch b/pr2428.patch
new file mode 100644
index 0000000..a51976f
--- /dev/null
+++ b/pr2428.patch
@@ -0,0 +1,27 @@
+# HG changeset patch
+# User andrew
+# Date 1434497865 -3600
+# Wed Jun 17 00:37:45 2015 +0100
+# Node ID adf1b3700c5ba6c13eb8f9d8eb4d6d32085bd483
+# Parent 9e470ada9ea747f711ad2bd5b69e8124fbad384f
+PR2428: OpenJDK build can't handle commas in LDFLAGS
+Summary: Expand LDFLAGS outside function call, as is done with CFLAGS
+
+diff -r 9e470ada9ea7 -r adf1b3700c5b make/CompileDemos.gmk
+--- openjdk/jdk/make/CompileDemos.gmk Mon Jun 08 19:25:43 2015 +0100
++++ openjdk/jdk/make/CompileDemos.gmk Wed Jun 17 00:37:45 2015 +0100
+@@ -246,12 +246,13 @@
+ -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3
+
+ # Remove the -incremental:no setting to get .ilk-files like in the old build.
++ BUILD_DEMO_JVMTI_$1_LDFLAGS := $(filter-out -incremental:no -opt:ref,
$(LDFLAGS_JDKLIB))
++
+ $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \
+ SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
+ LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
+ OPTIMIZATION := LOW, \
+ CXXFLAGS := $$($1_CXXFLAGS), \
+- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
+ LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
+ LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
+ LDFLAGS_SUFFIX_posix := $5, \
diff --git a/pr2462-01.patch b/pr2462-01.patch
new file mode 100644
index 0000000..09de4f9
--- /dev/null
+++ b/pr2462-01.patch
@@ -0,0 +1,200 @@
+# HG changeset patch
+# User kizune
+# Date 1403186822 -14400
+# Thu Jun 19 18:07:02 2014 +0400
+# Node ID ad88ac6bac57e540e87fdb5d9ad15528b1beee11
+# Parent f0137fa5ba5298a73f14ae508463dc7e890a70a5
+8000650, PR2462: unpack200.exe should check gzip crc
+Reviewed-by: ksrini
+
+diff -r f0137fa5ba52 -r ad88ac6bac57
src/share/native/com/sun/java/util/jar/pack/main.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Apr 23 13:48:02
2015 -0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Jun 19 18:07:02
2014 +0400
+@@ -62,6 +62,13 @@
+ return unpacker::run(argc, argv);
+ }
+
++// Dealing with big-endian arch
++#ifdef _BIG_ENDIAN
++#define SWAP_INT(a) (((a>>24)&0xff) | ((a<<8)&0xff0000) |
((a>>8)&0xff00) | ((a<<24)&0xff000000))
++#else
++#define SWAP_INT(a) (a)
++#endif
++
+ // Single-threaded, implementation, not reentrant.
+ // Includes a weak error check against MT access.
+ #ifndef THREAD_SELF
+@@ -385,6 +392,7 @@
+ u.start();
+ }
+ } else {
++ u.gzcrc = 0;
+ u.start(peek, sizeof(peek));
+ }
+
+@@ -425,7 +433,23 @@
+ status = 1;
+ }
+
+- if (u.infileptr != null) {
++ if (!u.aborting() && u.infileptr != null) {
++ if (u.gzcrc != 0) {
++ // Read the CRC information from the gzip container
++ fseek(u.infileptr, -8, SEEK_END);
++ uint filecrc;
++ fread(&filecrc, sizeof(filecrc), 1, u.infileptr);
++ if (u.gzcrc != SWAP_INT(filecrc)) { // CRC error
++ if (strcmp(destination_file, "-") != 0) {
++ // Output is not stdout, remove it, it's broken
++ if (u.jarout != null)
++ u.jarout->closeJarFile(false);
++ remove(destination_file);
++ }
++ // Print out the error and exit with return code != 0
++ u.abort("CRC error, invalid compressed data.");
++ }
++ }
+ fclose(u.infileptr);
+ u.infileptr = null;
+ }
+diff -r f0137fa5ba52 -r ad88ac6bac57
src/share/native/com/sun/java/util/jar/pack/unpack.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Apr 23 13:48:02
2015 -0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Jun 19 18:07:02
2014 +0400
+@@ -171,6 +171,7 @@
+ bytes inbytes; // direct
+ gunzip* gzin; // gunzip filter, if any
+ jar* jarout; // output JAR file
++ uint gzcrc; // CRC gathered from gzip content
+
+ #ifndef PRODUCT
+ int nowrite;
+diff -r f0137fa5ba52 -r ad88ac6bac57 src/share/native/com/sun/java/util/jar/pack/zip.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Apr 23 13:48:02
2015 -0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Jun 19 18:07:02
2014 +0400
+@@ -551,6 +551,7 @@
+ break;
+ }
+ int nr = readlen - zs.avail_out;
++ u->gzcrc = crc32(u->gzcrc, (const unsigned char *)bufptr, nr);
+ numread += nr;
+ bufptr += nr;
+ assert(numread <= maxlen);
+@@ -589,6 +590,7 @@
+ zstream = NEW(z_stream, 1);
+ u->gzin = this;
+ u->read_input_fn = read_input_via_gzip;
++ u->gzcrc = crc32(0L, Z_NULL, 0);
+ }
+
+ void gunzip::start(int magic) {
+diff -r f0137fa5ba52 -r ad88ac6bac57 test/tools/pack200/PackChecksum.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/test/tools/pack200/PackChecksum.java Thu Jun 19 18:07:02 2014 +0400
+@@ -0,0 +1,107 @@
++/*
++ * Copyright (c) 2014, 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.io.File;
++import java.io.FileOutputStream;
++import java.io.IOException;
++import java.io.RandomAccessFile;
++import java.util.ArrayList;
++import java.util.List;
++import java.util.jar.JarEntry;
++import java.util.jar.JarOutputStream;
++
++/*
++ * @test
++ * @bug 8000650
++ * @summary unpack200.exe should check gzip crc
++ * @compile -XDignore.symbol.file Utils.java PackChecksum.java
++ * @run main PackChecksum
++ * @author kizune
++ */
++public class PackChecksum {
++
++ public static void main(String... args) throws Exception {
++ testChecksum();
++ }
++
++ static void testChecksum() throws Exception {
++
++ // Create a fresh .jar file
++ File testFile = new File("src_tools.jar");
++ File testPack = new File("src_tools.pack.gz");
++ generateJar(testFile);
++ List<String> cmdsList = new ArrayList<>();
++
++ // Create .pack file
++ cmdsList.add(Utils.getPack200Cmd());
++ cmdsList.add(testPack.getName());
++ cmdsList.add(testFile.getName());
++ Utils.runExec(cmdsList);
++
++ // Mess up with the checksum of the packed file
++ RandomAccessFile raf = new RandomAccessFile(testPack, "rw");
++ raf.seek(raf.length() - 8);
++ int val = raf.readInt();
++ val = Integer.MAX_VALUE - val;
++ raf.seek(raf.length() - 8);
++ raf.writeInt(val);
++ raf.close();
++
++ File dstFile = new File("dst_tools.jar");
++ cmdsList.clear();
++ cmdsList.add(Utils.getUnpack200Cmd());
++ cmdsList.add(testPack.getName());
++ cmdsList.add(dstFile.getName());
++
++ boolean passed = false;
++ try {
++ Utils.runExec(cmdsList);
++ } catch (RuntimeException re) {
++ // unpack200 should exit with non-zero exit code
++ passed = true;
++ }
++
++ // tidy up
++ if (testFile.exists()) testFile.delete();
++ if (testPack.exists()) testPack.delete();
++ if (dstFile.exists()) dstFile.delete();
++ if (!passed) {
++ throw new Exception("File with incorrect CRC unpacked without the
error.");
++ }
++ }
++
++ static void generateJar(File result) throws IOException {
++ if (result.exists()) {
++ result.delete();
++ }
++
++ try (JarOutputStream output = new JarOutputStream(new FileOutputStream(result));
) {
++ for (int i = 0 ; i < 100 ; i++) {
++ JarEntry e = new JarEntry("F-" + i + ".txt");
++ output.putNextEntry(e);
++ }
++ output.flush();
++ output.close();
++ }
++ }
++
++}
diff --git a/pr2462-02.patch b/pr2462-02.patch
new file mode 100644
index 0000000..47360e7
--- /dev/null
+++ b/pr2462-02.patch
@@ -0,0 +1,311 @@
+# HG changeset patch
+# User mikael
+# Date 1435336416 -3600
+# Fri Jun 26 17:33:36 2015 +0100
+# Node ID d64c0a9b8b5a43c1b7ba88a871f001fc6b44a3d4
+# Parent ad88ac6bac57e540e87fdb5d9ad15528b1beee11
+8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
+Reviewed-by: dholmes, ksrini
+
+diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/bytes.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h Fri Jun 26 17:33:36
2015 +0100
+@@ -63,7 +63,7 @@
+ bytes res;
+ res.ptr = ptr + beg;
+ res.len = end - beg;
+- assert(res.len == 0 || inBounds(res.ptr) && inBounds(res.limit()-1));
++ assert(res.len == 0 || (inBounds(res.ptr) && inBounds(res.limit()-1)));
+ return res;
+ }
+ // building C strings inside byte buffers:
+diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/jni.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Fri Jun 26 17:33:36
2015 +0100
+@@ -292,7 +292,7 @@
+
+ if (uPtr->aborting()) {
+ THROW_IOE(uPtr->get_abort_message());
+- return false;
++ return null;
+ }
+
+ // We have fetched all the files.
+@@ -310,7 +310,7 @@
+ JNIEXPORT jlong JNICALL
+ Java_com_sun_java_util_jar_pack_NativeUnpack_finish(JNIEnv *env, jobject pObj) {
+ unpacker* uPtr = get_unpacker(env, pObj, false);
+- CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL);
++ CHECK_EXCEPTION_RETURN_VALUE(uPtr, 0);
+ size_t consumed = uPtr->input_consumed();
+ free_unpacker(env, pObj, uPtr);
+ return consumed;
+@@ -320,6 +320,7 @@
+ Java_com_sun_java_util_jar_pack_NativeUnpack_setOption(JNIEnv *env, jobject pObj,
+ jstring pProp, jstring pValue) {
+ unpacker* uPtr = get_unpacker(env, pObj);
++ CHECK_EXCEPTION_RETURN_VALUE(uPtr, false);
+ const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE);
+ CHECK_EXCEPTION_RETURN_VALUE(prop, false);
+ const char* value = env->GetStringUTFChars(pValue, JNI_FALSE);
+diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/main.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp Fri Jun 26 17:33:36
2015 +0100
+@@ -149,31 +149,28 @@
+ return progname;
+ }
+
+-static const char* usage_lines[] = {
+- "Usage: %s [-opt... | --option=value]... x.pack[.gz] y.jar\n",
+- "\n",
+- "Unpacking Options\n",
+- " -H{h}, --deflate-hint={h} override transmitted deflate hint: true,
false, or keep (default)\n",
+- " -r, --remove-pack-file remove input file after unpacking\n",
+- " -v, --verbose increase program verbosity\n",
+- " -q, --quiet set verbosity to lowest level\n",
+- " -l{F}, --log-file={F} output to the given log file, or '-'
for standard output (default)\n",
+- " -?, -h, --help print this message\n",
+- " -V, --version print program version\n",
+- " -J{X} Java VM argument (ignored)\n",
+- null
+-};
++#define USAGE_HEADER "Usage: %s [-opt... | --option=value]... x.pack[.gz]
y.jar\n"
++#define USAGE_OPTIONS \
++ "\n" \
++ "Unpacking Options\n" \
++ " -H{h}, --deflate-hint={h} override transmitted deflate hint: true,
false, or keep (default)\n" \
++ " -r, --remove-pack-file remove input file after unpacking\n" \
++ " -v, --verbose increase program verbosity\n" \
++ " -q, --quiet set verbosity to lowest level\n" \
++ " -l{F}, --log-file={F} output to the given log file, or '-'
for standard output (default)\n" \
++ " -?, -h, --help print this message\n" \
++ " -V, --version print program version\n" \
++ " -J{X} Java VM argument (ignored)\n"
+
+ static void usage(unpacker* u, const char* progname, bool full = false) {
+ // WinMain does not set argv[0] to the progrname
+ progname = (progname != null) ? nbasename(progname) : "unpack200";
+- for (int i = 0; usage_lines[i] != null; i++) {
+- fprintf(u->errstrm, usage_lines[i], progname);
+- if (!full) {
+- fprintf(u->errstrm,
+- "(For more information, run %s --help .)\n", progname);
+- break;
+- }
++
++ fprintf(u->errstrm, USAGE_HEADER, progname);
++ if (full) {
++ fprintf(u->errstrm, USAGE_OPTIONS);
++ } else {
++ fprintf(u->errstrm, "(For more information, run %s --help .)\n",
progname);
+ }
+ }
+
+diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/unpack.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Thu Jun 19
18:07:02 2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Fri Jun 26
17:33:36 2015 +0100
+@@ -222,9 +222,9 @@
+ }
+
+ #ifdef PRODUCT
+- char* string() { return 0; }
++ const char* string() { return NULL; }
+ #else
+- char* string(); // see far below
++ const char* string(); // see far below
+ #endif
+ };
+
+@@ -715,13 +715,13 @@
+ // Now we can size the whole archive.
+ // Read everything else into a mega-buffer.
+ rp = hdr.rp;
+- int header_size_0 = (int)(rp - input.base()); // used-up header (4byte + 3int)
+- int header_size_1 = (int)(rplimit - rp); // buffered unused initial fragment
+- int header_size = header_size_0+header_size_1;
++ size_t header_size_0 = (rp - input.base()); // used-up header (4byte + 3int)
++ size_t header_size_1 = (rplimit - rp); // buffered unused initial fragment
++ size_t header_size = header_size_0 + header_size_1;
+ unsized_bytes_read = header_size_0;
+ CHECK;
+ if (foreign_buf) {
+- if (archive_size > (size_t)header_size_1) {
++ if (archive_size > header_size_1) {
+ abort("EOF reading fixed input buffer");
+ return;
+ }
+@@ -735,7 +735,7 @@
+ return;
+ }
+ input.set(U_NEW(byte, add_size(header_size_0, archive_size, C_SLOP)),
+- (size_t) header_size_0 + archive_size);
++ header_size_0 + archive_size);
+ CHECK;
+ assert(input.limit()[0] == 0);
+ // Move all the bytes we read initially into the real buffer.
+@@ -958,13 +958,13 @@
+ nentries = next_entry;
+
+ // place a limit on future CP growth:
+- int generous = 0;
++ size_t generous = 0;
+ generous = add_size(generous, u->ic_count); // implicit name
+ generous = add_size(generous, u->ic_count); // outer
+ generous = add_size(generous, u->ic_count); // outer.utf8
+ generous = add_size(generous, 40); // WKUs, misc
+ generous = add_size(generous, u->class_count); // implicit SourceFile strings
+- maxentries = add_size(nentries, generous);
++ maxentries = (uint)add_size(nentries, generous);
+
+ // Note that this CP does not include "empty" entries
+ // for longs and doubles. Those are introduced when
+@@ -982,8 +982,9 @@
+ }
+
+ // Initialize *all* our entries once
+- for (int i = 0 ; i < maxentries ; i++)
++ for (uint i = 0 ; i < maxentries ; i++) {
+ entries[i].outputIndex = REQUESTED_NONE;
++ }
+
+ initGroupIndexes();
+ // Initialize hashTab to a generous power-of-two size.
+@@ -3676,21 +3677,22 @@
+
+ unpacker* debug_u;
+
+-static bytes& getbuf(int len) { // for debugging only!
++static bytes& getbuf(size_t len) { // for debugging only!
+ static int bn = 0;
+ static bytes bufs[8];
+ bytes& buf = bufs[bn++ & 7];
+- while ((int)buf.len < len+10)
++ while (buf.len < len + 10) {
+ buf.realloc(buf.len ? buf.len * 2 : 1000);
++ }
+ buf.ptr[0] = 0; // for the sake of strcat
+ return buf;
+ }
+
+-char* entry::string() {
++const char* entry::string() {
+ bytes buf;
+ switch (tag) {
+ case CONSTANT_None:
+- return (char*)"<empty>";
++ return "<empty>";
+ case CONSTANT_Signature:
+ if (value.b.ptr == null)
+ return ref(0)->string();
+@@ -3710,26 +3712,28 @@
+ break;
+ default:
+ if (nrefs == 0) {
+- buf = getbuf(20);
+- sprintf((char*)buf.ptr, TAG_NAME[tag]);
++ return TAG_NAME[tag];
+ } else if (nrefs == 1) {
+ return refs[0]->string();
+ } else {
+- char* s1 = refs[0]->string();
+- char* s2 = refs[1]->string();
+- buf = getbuf((int)strlen(s1) + 1 + (int)strlen(s2) + 4 + 1);
++ const char* s1 = refs[0]->string();
++ const char* s2 = refs[1]->string();
++ buf = getbuf(strlen(s1) + 1 + strlen(s2) + 4 + 1);
+ buf.strcat(s1).strcat(" ").strcat(s2);
+ if (nrefs > 2) buf.strcat(" ...");
+ }
+ }
+- return (char*)buf.ptr;
++ return (const char*)buf.ptr;
+ }
+
+ void print_cp_entry(int i) {
+ entry& e = debug_u->cp.entries[i];
+- char buf[30];
+- sprintf(buf, ((uint)e.tag < CONSTANT_Limit)? TAG_NAME[e.tag]: "%d",
e.tag);
+- printf(" %d\t%s %s\n", i, buf, e.string());
++
++ if ((uint)e.tag < CONSTANT_Limit) {
++ printf(" %d\t%s %s\n", i, TAG_NAME[e.tag], e.string());
++ } else {
++ printf(" %d\t%d %s\n", i, e.tag, e.string());
++ }
+ }
+
+ void print_cp_entries(int beg, int end) {
+diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/unpack.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h Fri Jun 26 17:33:36
2015 +0100
+@@ -210,7 +210,7 @@
+ byte* rp; // read pointer (< rplimit <= input.limit())
+ byte* rplimit; // how much of the input block has been read?
+ julong bytes_read;
+- int unsized_bytes_read;
++ size_t unsized_bytes_read;
+
+ // callback to read at least one byte, up to available input
+ typedef jlong (*read_input_fn_t)(unpacker* self, void* buf, jlong minlen, jlong
maxlen);
+diff -r ad88ac6bac57 -r d64c0a9b8b5a
src/share/native/com/sun/java/util/jar/pack/utils.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp Fri Jun 26 17:33:36
2015 +0100
+@@ -81,7 +81,7 @@
+ int assert_failed(const char* p) {
+ char message[1<<12];
+ sprintf(message, "@assert failed: %s\n", p);
+- fprintf(stdout, 1+message);
++ fprintf(stdout, "%s", 1+message);
+ breakpoint();
+ unpack_abort(message);
+ return 0;
+diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/zip.cpp
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Fri Jun 26 17:33:36
2015 +0100
+@@ -84,7 +84,7 @@
+ }
+
+ // Write data to the ZIP output stream.
+-void jar::write_data(void* buff, int len) {
++void jar::write_data(void* buff, size_t len) {
+ while (len > 0) {
+ int rc = (int)fwrite(buff, 1, len, jarfp);
+ if (rc <= 0) {
+@@ -323,12 +323,12 @@
+ // Total number of disks (int)
+ header64[36] = (ushort)SWAP_BYTES(1);
+ header64[37] = 0;
+- write_data(header64, (int)sizeof(header64));
++ write_data(header64, sizeof(header64));
+ }
+
+ // Write the End of Central Directory structure.
+ PRINTCR((2, "end-of-directory at %d\n", output_file_offset));
+- write_data(header, (int)sizeof(header));
++ write_data(header, sizeof(header));
+
+ PRINTCR((2, "writing zip comment\n"));
+ // Write the comment.
+@@ -590,7 +590,7 @@
+ zstream = NEW(z_stream, 1);
+ u->gzin = this;
+ u->read_input_fn = read_input_via_gzip;
+- u->gzcrc = crc32(0L, Z_NULL, 0);
++ u->gzcrc = crc32(0, Z_NULL, 0);
+ }
+
+ void gunzip::start(int magic) {
+diff -r ad88ac6bac57 -r d64c0a9b8b5a src/share/native/com/sun/java/util/jar/pack/zip.h
+--- openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h Thu Jun 19 18:07:02
2014 +0400
++++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h Fri Jun 26 17:33:36
2015 +0100
+@@ -68,8 +68,8 @@
+ }
+
+ // Private Methods
+- void write_data(void* ptr, int len);
+- void write_data(bytes& b) { write_data(b.ptr, (int)b.len); }
++ void write_data(void* ptr, size_t len);
++ void write_data(bytes& b) { write_data(b.ptr, b.len); }
+ void add_to_jar_directory(const char* fname, bool store, int modtime,
+ int len, int clen, uLong crc);
+ void write_jar_header(const char* fname, bool store, int modtime,
commit 20c3d28f755c0077c7b1979483323deb2b926581
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Dec 10 13:35:30 2015 +0100
Add patch to honour %%{_smp_ncpus_max} from Tuomo Soini
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cf8261e..356a43b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -699,7 +699,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -1112,8 +1112,12 @@ done
%build
# How many cpu's do we have?
-export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :`
+export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
+%if 0%{?_smp_ncpus_max}
+# Honor %%_smp_ncpus_max
+[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
+%endif
# Build IcedTea and OpenJDK.
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
@@ -1587,6 +1591,10 @@ fi
%endif
%changelog
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-10.b17
+- Add patch to honour %%{_smp_ncpus_max} from Tuomo Soini
+- Resolves: rhbz#1152896
+
* Wed Dec 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-9.b17
- extracted lua scripts moved from pre where they don't work to pretrans
- requirement on copy-jdk-configs made Week.
commit c12577c604dbc86753fdfbf61d1c67e6a1ddeaf4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Dec 9 16:29:03 2015 +0100
extracted lua scripts moved from pre where they don't work to pretrans,
requirement on copy-jdk-configs made Week.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0b29ecf..cf8261e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -594,7 +594,7 @@ Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
# tool to copy jdk's configs
-Requires(pre): copy-jdk-configs
+Recommends: copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -699,7 +699,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -1461,9 +1461,11 @@ done
%if %{include_normal_build}
# intentioanlly only for non-debug
-%pre headless
+%pretrans headless
# see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
-%{_libexecdir}/copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}"
--jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver
"%{javaver}" --arch "%{_arch}"
+if [ -f %{_libexecdir}/copy_jdk_configs.lua ] ; then
+ %{_libexecdir}/copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}"
--jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver
"%{javaver}" --arch "%{_arch}"
+fi
%post
@@ -1585,6 +1587,10 @@ done
%endif
%changelog
+* Wed Dec 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-9.b17
+- extracted lua scripts moved from pre where they don't work to pretrans
+- requirement on copy-jdk-configs made Week.
+
* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-8.b17
- used extracted lua scripts.
- now depnding on copy-jdk-configs
commit 4cecfa01fbd65fca9f4a32fb5fd5f7feb94fdd20
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Dec 8 20:29:17 2015 +0100
used extracted lua scripts., now depnding on copy-jdk-configs, config files
persisting in pre instead of %pretrans
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 27d8ef6..0b29ecf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -593,6 +593,8 @@ Requires: javapackages-tools
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
Requires: lksctp-tools
+# tool to copy jdk's configs
+Requires(pre): copy-jdk-configs
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
@@ -697,7 +699,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -1459,174 +1461,10 @@ done
%if %{include_normal_build}
# intentioanlly only for non-debug
-%pretrans headless -p <lua>
--- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
-
-local posix = require "posix"
-
-local currentjvm = "%{uniquesuffix %{nil}}"
-local jvmdir = "%{_jvmdir %{nil}}"
-local jvmDestdir = jvmdir
-local origname = "%{name}"
-local origjavaver = "%{javaver}"
---trasnform substitute names to lua patterns
---all percentages must be doubled for case of RPM escapingg
-local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"),
"%%.", "%%%%.")
-local javaver = string.gsub(origjavaver, "%%.", "%%%%.")
-local arch ="%{_arch}"
-local debug = false;
-
-local jvms = { }
-
-local caredFiles = {"jre/lib/calendars.properties",
- "jre/lib/content-types.properties",
- "jre/lib/flavormap.properties",
- "jre/lib/logging.properties",
- "jre/lib/net.properties",
- "jre/lib/psfontj2d.properties",
- "jre/lib/sound.properties",
- "jre/lib/deployment.properties",
- "jre/lib/deployment.config",
- "jre/lib/security/US_export_policy.jar",
- "jre/lib/security/java.policy",
- "jre/lib/security/java.security",
- "jre/lib/security/local_policy.jar",
- "jre/lib/security/nss.cfg,",
- "jre/lib/ext"}
-
-function splitToTable(source, pattern)
- local i1 = string.gmatch(source, pattern)
- local l1 = {}
- for i in i1 do
- table.insert(l1, i)
- end
- return l1
-end
-
-if (debug) then
- print("started")
-end;
-
-foundJvms = posix.dir(jvmdir);
-if (foundJvms == nil) then
- if (debug) then
- print("no, or nothing in "..jvmdir.." exit")
- end;
- return
-end
-
-if (debug) then
- print("found "..#foundJvms.."jvms")
-end;
-
-for i,p in pairs(foundJvms) do
--- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command
---all percentages must be doubled for case of RPM escapingg
- if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then
- if (debug) then
- print("matched: "..p)
- end;
- if (currentjvm == p) then
- if (debug) then
- print("this jdk is already installed. exiting lua script")
- end;
- return
- end ;
- table.insert(jvms, p)
- else
- if (debug) then
- print("NOT matched: "..p)
- end;
- end
-end
-
-if (#jvms <=0) then
- if (debug) then
- print("no matching jdk in "..jvmdir.." exit")
- end;
- return
-end;
-
-if (debug) then
- print("matched "..#jvms.." jdk in "..jvmdir)
-end;
-
---full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64
-table.sort(jvms , function(a,b)
--- version-sort
--- split on non word: . -
- local l1 = splitToTable(a, "[^%.-]+")
- local l2 = splitToTable(b, "[^%.-]+")
- for x = 1, math.min(#l1, #l2) do
- local l1x = tonumber(l1[x])
- local l2x = tonumber(l2[x])
- if (l1x ~= nil and l2x ~= nil)then
---if hunks are numbers, go with them
- if (l1x < l2x) then return true; end
- if (l1x > l2x) then return false; end
- else
- if (l1[x] < l2[x]) then return true; end
- if (l1[x] > l2[x]) then return false; end
- end
--- if hunks are equals then move to another pair of hunks
- end
-return a<b
-
-end)
-
-if (debug) then
- print("sorted lsit of jvms")
- for i,file in pairs(jvms) do
- print(file)
- end
-end
-
-latestjvm = jvms[#jvms]
-
-
-for i,file in pairs(caredFiles) do
- local SOURCE=jvmdir.."/"..latestjvm.."/"..file
- local DEST=jvmDestdir.."/"..currentjvm.."/"..file
- if (debug) then
- print("going to copy "..SOURCE)
- print("to "..DEST)
- end;
- local stat1 = posix.stat(SOURCE, "type");
- if (stat1 ~= nil) then
- if (debug) then
- print(SOURCE.." exists")
- end;
- local s = ""
- local dirs = splitToTable(DEST, "[^/]+")
- for i,d in pairs(dirs) do
- if (i == #dirs) then
- break
- end
- s = s.."/"..d
- local stat2 = posix.stat(s, "type");
- if (stat2 == nil) then
- if (debug) then
- print(s.." does not exists, creating")
- end;
- posix.mkdir(s)
- else
- if (debug) then
- print(s.." exists,not creating")
- end;
- end
- end
--- Copy with -a to keep everything intact
- local exe = "cp".." -ar "..SOURCE.." "..DEST
- if (debug) then
- print("executing "..exe)
- end;
- os.execute(exe)
- else
- if (debug) then
- print(SOURCE.." does not exists")
- end;
- end
-end
+%pre headless
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+%{_libexecdir}/copy_jdk_configs.lua --currentjvm "%{uniquesuffix %{nil}}"
--jvmdir "%{_jvmdir %{nil}}" --origname "%{name}" --origjavaver
"%{javaver}" --arch "%{_arch}"
+
%post
%{post_script %{nil}}
@@ -1747,6 +1585,11 @@ end
%endif
%changelog
+* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-8.b17
+- used extracted lua scripts.
+- now depnding on copy-jdk-configs
+- config files persisting in pre instead of %pretrans
+
* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
- changed way of generating the sources. As result:
- "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60)
commit 07a5b28e1818606b5a11ca17c0932660b32c50e6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Dec 8 12:56:41 2015 +0100
Fixed changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6f0e44a..27d8ef6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1747,7 +1747,7 @@ end
%endif
%changelog
-Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
+* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
- changed way of generating the sources. As result:
- "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60)
- used aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz as new sources
diff --git a/update_package.sh b/update_package.sh
index d453e48..f42f40f 100755
--- a/update_package.sh
+++ b/update_package.sh
@@ -125,7 +125,7 @@ spec_date=`date +"%a %b %d %Y"`
revision_helper=`echo ${VERSION%-*}`
updatever=`echo ${revision_helper##*u}`
buildver=`echo ${VERSION##*-}`
-echo "$spec_date $user_full_name <$user_name(a)redhat.com> -
1:1.8.0.$updatever-$RELEASE.$buildver"
+echo "* $spec_date $user_full_name <$user_name(a)redhat.com> -
1:1.8.0.$updatever-$RELEASE.$buildver"
echo "- updated to $VERSION (from $PROJECT_NAME/$REPO_NAME)"
echo "- used $FILENAME as new sources"
commit 5ddc1621e2e66c0ffb5c27b9ffea2828850734c3
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Dec 8 12:55:18 2015 +0100
changed way of generating the sources
diff --git a/.gitignore b/.gitignore
index 64328db..ec0ea22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,3 +48,4 @@
/jdk8-aarch64-jdk8u60-b24.2.tar.xz
/jdk8u60-aarch64-jdk8u60-b28.tar.xz
/jdk8u60-aarch64-jdk8u65-b17.tar.xz
+/aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 8330365..7b67da2 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,82 +1,91 @@
-#!/bin/bash
+#!/bin/bash -x
# Generates the 'source tarball' for JDK 8 projects.
#
-# Usage: generate_source_tarball.sh project_name repo_name tag
+# Example:
+# When used from local repo set REPO_ROOT pointing to file:// wth your repo
+# if your local repo follows upstream forests conventions, you may be enough by setting
OPENJDK_URL
+# if you wont to use local copy of patch PR2126 set path to it to PR2126 variable
#
-# Examples:
-# sh generate_source_tarball.sh jdk8u jdk8u40 jdk8u40-b25
-# ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
-# ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
-# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
-# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-jdk8u60-b24.2
-# ./generate_source_tarball.sh jdk8u jdk8u60 jdk8u60-b27
+# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
+# PROJECT_NAME=jdk8u OR aarch64-port
+# REPO_NAME=jdk8u60 OR jdk8u60
+# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should
do the job there
+#
+# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
# This script creates a single source tarball out of the repository
-# based on the given tag and removes code not allowed in fedora. For
+# based on the given tag and removes code not allowed in fedora/rhel. For
# consistency, the source tarball will always contain 'openjdk' as the top
-# level folder.
+# level folder, name is created, based on parameter
+#
set -e
-PROJECT_NAME="$1"
-REPO_NAME="$2"
-VERSION="$3"
-OPENJDK_URL=http://hg.openjdk.java.net
-
-if [[ "${PROJECT_NAME}" = "" ]] ; then
- echo "No repository specified."
- exit -1
+if [ "x$PROJECT_NAME" = "x" ] ; then
+ echo "no PROJECT_NAME"
+ exit 1
fi
-if [[ "${REPO_NAME}" = "" ]] ; then
- echo "No repository specified."
- exit -1
+if [ "x$REPO_NAME" = "x" ] ; then
+ echo "no REPO_NAME"
+ exit 2
fi
-if [[ "${VERSION}" = "" ]]; then
- echo "No version/tag specified."
- exit -1;
+if [ "x$VERSION" = "x" ] ; then
+ echo "no VERSION"
+ exit 3
+fi
+if [ "x$OPENJDK_URL" = "x" ] ; then
+
OPENJDK_URL=http://hg.openjdk.java.net
fi
-mkdir "${REPO_NAME}"
-pushd "${REPO_NAME}"
-
-REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+if [ "x$COMPRESSION" = "x" ] ; then
+# rhel 5 needs tar.gz
+ COMPRESSION=xz
+fi
+if [ "x$FILE_NAME_ROOT" = "x" ] ; then
+ FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+fi
+if [ "x$REPO_ROOT" = "x" ] ; then
+ REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
+fi;
-wget "${REPO_ROOT}/archive/${VERSION}.tar.gz"
-tar xf "${VERSION}.tar.gz"
-rm "${VERSION}.tar.gz"
+mkdir "${FILE_NAME_ROOT}"
+pushd "${FILE_NAME_ROOT}"
-mv "${REPO_NAME}-${VERSION}" openjdk
+hg clone ${REPO_ROOT} openjdk -r ${VERSION}
pushd openjdk
-
-repos="corba hotspot jdk jaxws jaxp langtools nashorn"
-if [ aarch64-port = $PROJECT_NAME ] ; then
-#tmp disable because of jdk8-aarch64-jdk8u60-b24.2
-echo NOT
-#repos="hotspot"
-fi;
+
+#jdk is last for its size
+repos="hotspot corba jaxws jaxp langtools nashorn jdk"
for subrepo in $repos
do
- wget "${REPO_ROOT}/${subrepo}/archive/${VERSION}.tar.gz"
- tar xf "${VERSION}.tar.gz"
- rm "${VERSION}.tar.gz"
- mv "${subrepo}-${VERSION}" "${subrepo}"
+ hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
done
+
echo "Removing EC source code we don't build"
rm -vrf jdk/src/share/native/sun/security/ec/impl
-#get this file
http://icedtea.classpath.org/hg/icedtea/raw-file/tip/patches/pr2126.patch
(from
http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=8d2c9a898f50)
-#from most correct tag
-#and use it like below. Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
-pwd
echo "Syncing EC list with NSS"
-patch -Np1 < ../../pr2126.patch
+if [ "x$PR2126" = "x" ] ; then
+# get pr2126.patch (from
http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most
correct tag
+# Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
+ wget
http://icedtea.classpath.org/hg/icedtea/raw-file/tip/patches/pr2126.patch
+ patch -Np1 < pr2126.patch
+ rm pr2126.patch
+else
+ patch -Np1 < $PR2126
+fi;
popd
-tar cJf ${REPO_NAME}-${VERSION}.tar.xz openjdk
+if [ "X$COMPRESSION" = "Xxz" ] ; then
+ tar --exclude-vcs -cJf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
+else
+ tar --exclude-vcs -czf ${FILE_NAME_ROOT}.tar.${COMPRESSION} openjdk
+fi
+mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
popd
-mv "${REPO_NAME}/${REPO_NAME}-${VERSION}.tar.xz" .
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7c8cbdb..6f0e44a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -116,12 +116,19 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 65
-%global buildver b17
-%global aarch64_updatever %{updatever}
-%global aarch64_buildver %{buildver}
-# priority must be 7 digits in total
-%global priority 18000%{updatever}
+# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
+%global project aarch64-port
+%global repo jdk8u60
+%global revision aarch64-jdk8u65-b17
+# 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
+%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
+# eg jdk8u60-b27 -> b27
+%global buildver %(VERSION=%{revision}; echo ${VERSION##*-})
+# priority must be 7 digits in total. The expression is workarounding tip
+%global priority %(TIP=18000%{updatever}; echo ${TIP/tip/99})
+
%global javaver 1.8.0
# parametrized macros are order-sensitive
@@ -690,7 +697,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 7.%{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
@@ -711,7 +718,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# aarch64-port now contains integration forest of both aarch64 and normal jdk
# ./generate_source_tarball.sh aarch64-port jdk8u60 aarch64-jdk8u65-b17
-Source0: jdk8u60-aarch64-jdk8u%{updatever}-%{buildver}.tar.xz
+Source0: %{project}-%{repo}-%{revision}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1151,7 +1158,7 @@ bash ../../configure \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
%ifarch %{aarch64}
-
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}" \
+ --with-user-release-suffix="aarch64-%{updatever}-%{buildver}" \
%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=$debugbuild \
@@ -1740,6 +1747,11 @@ end
%endif
%changelog
+Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
+- changed way of generating the sources. As result:
+- "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60)
+- used aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz as new sources
+
* Fri Nov 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-5.b17
- added missing md5sums
- moved to bundeld lcms
diff --git a/sources b/sources
index 719a609..0dd43a7 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-bfed7e2cf1b9a6718a2d91421c47e43b jdk8u60-aarch64-jdk8u65-b17.tar.xz
+f6ee06389f8ac0890ce5d003b2c0fb0a aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz
diff --git a/update_package.sh b/update_package.sh
new file mode 100755
index 0000000..d453e48
--- /dev/null
+++ b/update_package.sh
@@ -0,0 +1,136 @@
+#!/bin/bash -x
+# Generates the 'source tarball' for JDK 8 projects and update spec
infrastructure
+# By default, this script regenerate source as they are currently used.
+# so if the version of sources change, this file changes and is pushed
+#
+# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
+# PROJECT_NAME=jdk8u OR aarch64-port
+# REPO_NAME=jdk8u60 OR jdk8u60
+# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should
do the job there
+#
+# If you don't, default are used and so already uploaded tarball regenerated
+# They are used to create correct name and are used in construction of sources url
(unless REPO_ROOT is set)
+#
+# For other useful variables see generate_source_tarball.sh
+#
+# the used values are then substituted to spec and sources
+
+set -e
+
+if [ "x$PROJECT_NAME" = "x" ] ; then
+ PROJECT_NAME="aarch64-port"
+fi
+if [ "x$REPO_NAME" = "x" ] ; then
+ REPO_NAME="jdk8u60"
+fi
+if [ "x$VERSION" = "x" ] ; then
+ VERSION="aarch64-jdk8u65-b17"
+fi
+
+if [ "x$COMPRESSION" = "x" ] ; then
+# rhel 5 needs tar.gz
+ COMPRESSION=xz
+fi
+if [ "x$FILE_NAME_ROOT" = "x" ] ; then
+ FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
+fi
+if [ "x$PKG" = "x" ] ; then
+ URL=`cat .git/config | grep url`
+ PKG=${URL##*/}
+fi
+if [ "x$SPEC" = "x" ] ; then
+ SPEC=${PKG}.spec
+fi
+if [ "x$RELEASE" = "x" ] ; then
+ RELEASE=1
+fi
+
+FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
+
+if [ ! -f ${FILENAME} ] ; then
+echo "Generating ${FILENAME}"
+. ./generate_source_tarball.sh
+else
+echo "${FILENAME} already exists, using"
+fi
+
+
+echo "Touching spec: $SPEC"
+sed -i "s/^%global\s\+project.*/%global project ${PROJECT_NAME}/" $SPEC
+sed -i "s/^%global\s\+repo.*/%global repo ${REPO_NAME}/" $SPEC
+sed -i "s/^%global\s\+revision.*/%global revision ${VERSION}/" $SPEC
+# updated sources, resetting release
+sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC
+
+git --no-pager diff $SPEC
+
+#https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Bash
+function levenshtein {
+ if [ "$#" -ne "2" ]; then
+ echo "Usage: $0 word1 word2" >&2
+ elif [ "${#1}" -lt "${#2}" ]; then
+ levenshtein "$2" "$1"
+ else
+ local str1len=$((${#1}))
+ local str2len=$((${#2}))
+ local d i j
+ for i in $(seq 0 $(((str1len+1)*(str2len+1)))); do
+ d[i]=0
+ done
+ for i in $(seq 0 $((str1len))); do
+ d[$((i+0*str1len))]=$i
+ done
+ for j in $(seq 0 $((str2len))); do
+ d[$((0+j*(str1len+1)))]=$j
+ done
+
+ for j in $(seq 1 $((str2len))); do
+ for i in $(seq 1 $((str1len))); do
+ [ "${1:i-1:1}" = "${2:j-1:1}" ] && local cost=0 || local
cost=1
+ local del=$((d[(i-1)+str1len*j]+1))
+ local ins=$((d[i+str1len*(j-1)]+1))
+ local alt=$((d[(i-1)+str1len*(j-1)]+cost))
+ d[i+str1len*j]=$(echo -e "$del\n$ins\n$alt" | sort -n | head -1)
+ done
+ done
+ echo ${d[str1len+str1len*(str2len)]}
+ fi
+}
+
+# find the most similar sources name and replace it by newly generated one.
+echo "Old sources"
+cat sources
+a_sources=`cat sources | sed "s/.*\s\+//g"`
+winner=""
+winnerDistance=999999
+for x in $a_sources ; do
+ distance=`levenshtein $x ${FILENAME}`
+ if [ $distance -lt $winnerDistance ] ; then
+ winner=$x
+ winnerDistance=$distance
+ fi
+done
+sum=`md5sum ${FILENAME}`
+sed -i "s;.*$winner;$sum;" sources
+echo "New sources"
+cat sources
+a_sources=`cat sources | sed "s/.*\s\+//g"`
+echo " you can get inspired by following %changelog template:"
+user_name=`whoami`
+user_record=$(getent passwd $user_name)
+user_gecos_field=$(echo "$user_record" | cut -d ':' -f 5)
+user_full_name=$(echo "$user_gecos_field" | cut -d ',' -f 1)
+spec_date=`date +"%a %b %d %Y"`
+# See spec:
+revision_helper=`echo ${VERSION%-*}`
+updatever=`echo ${revision_helper##*u}`
+buildver=`echo ${VERSION##*-}`
+echo "$spec_date $user_full_name <$user_name(a)redhat.com> -
1:1.8.0.$updatever-$RELEASE.$buildver"
+echo "- updated to $VERSION (from $PROJECT_NAME/$REPO_NAME)"
+echo "- used $FILENAME as new sources"
+
+echo " execute:"
+echo "fedpkg/rhpkg new-sources "$a_sources
+echo " to upload sources"
+echo "you can verify by fedpkg/rhpkg prep --arch XXXX on all architectures: x86_64
i386 i586 i686 ppc ppc64 ppc64le s390 s390x aarch64 armv7hl"
+
commit caa6227325aeb9480b1d901c605189cd82b37354
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 27 14:27:03 2015 +0100
added missing md5sums, moved to bundeld lcms
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f4e250c..7c8cbdb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -181,7 +181,9 @@ if [ "$1" -gt 1 ]; then
# This is the md5sum of an unmodified java.security file
if [ "${sum}" = '1690ac33955594f71dc952c9e83fd396' -o \\
"${sum}" = 'b138695d0c0ea947e64a21a627d973ba' -o \\
- "${sum}" = 'd17958676bdb9f9d941c8a59655311fb' ]; then
+ "${sum}" = 'd17958676bdb9f9d941c8a59655311fb' -o \\
+ "${sum}" = '5463aef7dbf0bbcfe79e0336a7f92701' -o \\
+ "${sum}" = '400cc64d4dd31f36dc0cc2c701d603db' ]; then
if [ -f "${javasecurity}.rpmnew" ]; then
mv -f "${javasecurity}.rpmnew" "${javasecurity}"
fi
@@ -688,7 +690,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -1158,7 +1160,7 @@ bash ../../configure \
--with-libjpeg=system \
--with-giflib=system \
--with-libpng=system \
- --with-lcms=system \
+ --with-lcms=bundled \
--with-stdc++lib=dynamic \
--with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
@@ -1738,6 +1740,10 @@ end
%endif
%changelog
+* Fri Nov 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-5.b17
+- added missing md5sums
+- moved to bundeld lcms
+
* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-4.b17
- debug packages priority lowered by 1
commit 63060907c0f7f9e8256040a0fd759068db5e55e6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 25 14:04:25 2015 +0100
debug packages priority lowered by 1
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 147770c..f4e250c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -196,9 +196,14 @@ fi
%endif
%endif
+PRIORITY=%{priority}
+if [ "%1" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir %%1}/java %{priority} --family %{name} \\
+ --install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family %{name} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\
--slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
@@ -237,12 +242,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/jre-"$X" \\
- jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} --family %{name} \\
+ jre_"$X" %{_jvmdir}/%{jredir %%1} $PRIORITY --family %{name} \\
--slave %{_jvmjardir}/jre-"$X" \\
jre_"$X"_exports %{_jvmdir}/%{jredir %%1}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} --family %{name} \\
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY --family %{name} \\
--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -272,9 +277,15 @@ exit 0
}
%global post_devel() %{expand:
+
+PRIORITY=%{priority}
+if [ "%1" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir %%1}/javac %{priority} --family %{name}
\\
+ --install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY --family %{name} \\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
--slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
@@ -367,12 +378,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/java-"$X" \\
- java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} %{priority} --family %{name} \\
+ java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name} \\
--slave %{_jvmjardir}/java-"$X" \\
java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} %{priority} --family %{name} \\
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name} \\
--slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -401,9 +412,15 @@ exit 0
}
%global post_javadoc() %{expand:
+
+PRIORITY=%{priority}
+if [ "%1" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
- %{priority} --family %{name}
+ $PRIORITY --family %{name}
exit 0
}
@@ -671,7 +688,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1721,6 +1738,9 @@ end
%endif
%changelog
+* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-4.b17
+- debug packages priority lowered by 1
+
* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-3.b17
- depends on chkconfig >1.7 - added --family support
commit eb2bdf476fb4e3147337478129fda1c8a3c5ffc2
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 25 10:03:34 2015 +0100
depends on chkconfig >1.7 - added --family support
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3208009..147770c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -198,7 +198,7 @@ fi
ext=.gz
alternatives \\
- --install %{_bindir}/java java %{jrebindir %%1}/java %{priority} \\
+ --install %{_bindir}/java java %{jrebindir %%1}/java %{priority} --family %{name} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\
--slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
@@ -237,12 +237,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/jre-"$X" \\
- jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} \\
+ jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} --family %{name} \\
--slave %{_jvmjardir}/jre-"$X" \\
jre_"$X"_exports %{_jvmdir}/%{jredir %%1}
done
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} \\
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} --family %{name} \\
--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -274,7 +274,7 @@ exit 0
%global post_devel() %{expand:
ext=.gz
alternatives \\
- --install %{_bindir}/javac javac %{sdkbindir %%1}/javac %{priority} \\
+ --install %{_bindir}/javac javac %{sdkbindir %%1}/javac %{priority} --family %{name}
\\
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
--slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
@@ -367,12 +367,12 @@ alternatives \\
for X in %{origin} %{javaver} ; do
alternatives \\
--install %{_jvmdir}/java-"$X" \\
- java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} %{priority} \\
+ java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} %{priority} --family %{name} \\
--slave %{_jvmjardir}/java-"$X" \\
java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1}
done
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} %{priority} \\
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} %{priority} --family %{name} \\
--slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -403,7 +403,7 @@ exit 0
%global post_javadoc() %{expand:
alternatives \\
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
- %{priority}
+ %{priority} --family %{name}
exit 0
}
@@ -569,8 +569,12 @@ Requires: tzdata-java >= 2015d
Requires: lksctp-tools
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall tool alternatives.
Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
# Standard JPackage base provides.
Provides: jre-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
@@ -601,8 +605,12 @@ Requires: %{name}%1 = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall tool alternatives.
Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
# Standard JPackage devel provides.
Provides: java-sdk-%{javaver}-%{origin}%1 = %{epoch}:%{version}
@@ -629,8 +637,12 @@ Obsoletes: java-1.7.0-openjdk-demo%1
OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative.
Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
# Postun requires alternatives to uninstall javadoc alternative.
Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
# Standard JPackage javadoc provides.
Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
@@ -659,7 +671,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1709,6 +1721,9 @@ end
%endif
%changelog
+* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-3.b17
+- depends on chkconfig >1.7 - added --family support
+
* Fri Nov 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-2.b17
- added and applied patch605 soundFontPatch.patch as repalcement for removed sound font
links
- removed hardcoded soundfont links
commit 5ad9abd6efe56c29f8c89dc48a1e483356d19708
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 13 15:43:17 2015 +0100
added and applied patch605 soundFontPatch.patch as repalcement for removed sound font
links, removed hardcoded soundfont links
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 532003d..3208009 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -448,7 +448,6 @@ exit 0
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
-%{_jvmdir}/%{jredir %%1}/lib/audio/
%ifarch %{jit_arches}
%ifnarch %{power64}
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/server/classes.jsa
@@ -660,7 +659,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -756,6 +755,7 @@ Patch601: %{name}-rh1191652-root.patch
Patch602: %{name}-rh1191652-jdk.patch
Patch603: %{name}-rh1191652-hotspot-aarch64.patch
Patch604: aarch64-ifdefbugfix.patch
+Patch605: soundFontPatch.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1026,6 +1026,7 @@ sh %{SOURCE12}
%patch601
%patch602
%patch604
+%patch605
%patch504
%patch511
@@ -1212,11 +1213,6 @@ rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
-# Install symlink to default soundfont
-install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
-pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
-ln -s %{_datadir}/soundfonts/default.sf2
-popd
pushd %{buildoutputdir $suffix}/images/%{j2sdkimage}
@@ -1713,6 +1709,10 @@ end
%endif
%changelog
+* Fri Nov 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-2.b17
+- added and applied patch605 soundFontPatch.patch as repalcement for removed sound font
links
+- removed hardcoded soundfont links
+
* Thu Nov 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-1.b17
- updated to u65b17
diff --git a/soundFontPatch.patch b/soundFontPatch.patch
new file mode 100644
index 0000000..2009642
--- /dev/null
+++ b/soundFontPatch.patch
@@ -0,0 +1,53 @@
+# HG changeset patch
+# User omajid
+# Date 1445973555 14400
+# Node ID 3e006ea10d21a7fcf15725c51f2ab7ededce53ab
+# Parent dfeaf40df80032570558c031f37f6630dc729e3f
+8140620: Find and load default.sf2 as the default soundbank on Linux
+Reviewed-by: serb
+
++++ openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
+--- openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
+@@ -671,6 +671,40 @@
+ actions.add(new PrivilegedAction<InputStream>() {
+ public InputStream run() {
+ if (System.getProperties().getProperty("os.name")
++ .startsWith("Linux")) {
++
++ File[] systemSoundFontsDir = new File[] {
++ /* Arch, Fedora, Mageia */
++ new File("/usr/share/soundfonts/"),
++ new File("/usr/local/share/soundfonts/"),
++ /* Debian, Gentoo, OpenSUSE, Ubuntu */
++ new File("/usr/share/sounds/sf2/"),
++ new File("/usr/local/share/sounds/sf2/"),
++ };
++
++ /*
++ * Look for a default.sf2
++ */
++ for (File systemSoundFontDir : systemSoundFontsDir) {
++ if (systemSoundFontDir.exists()) {
++ File defaultSoundFont = new File(systemSoundFontDir,
"default.sf2");
++ if (defaultSoundFont.exists()) {
++ try {
++ return new FileInputStream(defaultSoundFont);
++ } catch (IOException e) {
++ // continue with lookup
++ }
++ }
++ }
++ }
++ }
++ return null;
++ }
++ });
++
++ actions.add(new PrivilegedAction<InputStream>() {
++ public InputStream run() {
++ if (System.getProperties().getProperty("os.name")
+ .startsWith("Windows")) {
+ File gm_dls = new File(System.getenv("SystemRoot")
+ + "\\system32\\drivers\\gm.dls");
+
+
commit bfb4c76e34d7938e55f3cdc24367c3381712d26b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Nov 12 13:41:14 2015 +0100
Updated to security u65
diff --git a/.gitignore b/.gitignore
index 77d9647..64328db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,3 +47,4 @@
/jdk8u60-jdk8u60-b27.tar.xz
/jdk8-aarch64-jdk8u60-b24.2.tar.xz
/jdk8u60-aarch64-jdk8u60-b28.tar.xz
+/jdk8u60-aarch64-jdk8u65-b17.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 94773ee..532003d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -116,8 +116,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 60
-%global buildver b28
+%global updatever 65
+%global buildver b17
%global aarch64_updatever %{updatever}
%global aarch64_buildver %{buildver}
# priority must be 7 digits in total
@@ -660,7 +660,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 17.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -680,7 +680,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# aarch64-port now contains integration forest of both aarch64 and normal jdk
-# ./generate_source_tarball.sh aarch64-port jdk8u60 aarch64-jdk8u60-b28
+# ./generate_source_tarball.sh aarch64-port jdk8u60 aarch64-jdk8u65-b17
Source0: jdk8u60-aarch64-jdk8u%{updatever}-%{buildver}.tar.xz
# Custom README for -src subpackage
@@ -1713,6 +1713,9 @@ end
%endif
%changelog
+* Thu Nov 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-1.b17
+- updated to u65b17
+
* Mon Nov 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-17.b28
- policytool manpage followed the binary from devel to jre
diff --git a/sources b/sources
index 9e54e85..719a609 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-f7f25b31a29e5230407b08a8f3f8ce1d jdk8u60-aarch64-jdk8u60-b28.tar.xz
+bfed7e2cf1b9a6718a2d91421c47e43b jdk8u60-aarch64-jdk8u65-b17.tar.xz
commit f05ea59da9da9c1f6d85765923669d6f515297a1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Nov 9 13:48:51 2015 +0100
policytool manpage followed the binary from devel to jre
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 784a6a4..94773ee 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -209,12 +209,12 @@ alternatives \\
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\
--slave %{_bindir}/servertool servertool %{jrebindir %%1}/servertool \\
--slave %{_bindir}/tnameserv tnameserv %{jrebindir %%1}/tnameserv \\
+ --slave %{_bindir}/policytool policytool %{jrebindir %%1}/policytool \\
--slave %{_bindir}/unpack200 unpack200 %{jrebindir %%1}/unpack200 \\
--slave %{_mandir}/man1/java.1$ext java.1$ext \\
%{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1$ext \\
- --slave %{_bindir}/policytool policytool %{jrebindir %%1}/policytool \\
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
@@ -229,6 +229,8 @@ alternatives \\
%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
+ %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext
@@ -349,8 +351,6 @@ alternatives \\
%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1$ext \\
- --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
- %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
@@ -446,6 +446,7 @@ exit 0
%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1*
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
%{_jvmdir}/%{jredir %%1}/lib/audio/
%ifarch %{jit_arches}
@@ -494,7 +495,6 @@ exit 0
%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1*
%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1*
-%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1*
%{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1*
%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1*
@@ -660,7 +660,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 16.%{buildver}%{?dist}
+Release: 17.%{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
@@ -1713,6 +1713,9 @@ end
%endif
%changelog
+* Mon Nov 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-17.b28
+- policytool manpage followed the binary from devel to jre
+
* Mon Nov 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-16.b28
added and applied patch604: aarch64-ifdefbugfix.patch to fix rhbz1276959
commit ebd5c0b82daee6a9e6d529ef175719ecbb59ed1f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Nov 2 16:20:17 2015 +0100
added and applied patch604: aarch64-ifdefbugfix.patch to fix rhbz1276959
diff --git a/aarch64-ifdefbugfix.patch b/aarch64-ifdefbugfix.patch
new file mode 100644
index 0000000..c2e05fc
--- /dev/null
+++ b/aarch64-ifdefbugfix.patch
@@ -0,0 +1,12 @@
+diff --git a/src/share/vm/interpreter/abstractInterpreter.hpp
b/src/share/vm/interpreter/abstractInterpreter.hpp
+--- openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
++++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp
+@@ -34,7 +34,7 @@
+ # include INTERP_MASM_MD_HPP
+ #elif defined TARGET_ARCH_x86
+ # include "interp_masm_x86.hpp"
+-#elif TARGET_ARCH_MODEL_aarch64
++#elif defined TARGET_ARCH_MODEL_aarch64
+ # include "interp_masm_aarch64.hpp"
+ #elif defined TARGET_ARCH_MODEL_sparc
+ # include "interp_masm_sparc.hpp"
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index db52658..784a6a4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -660,7 +660,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 15.%{buildver}%{?dist}
+Release: 16.%{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
@@ -755,6 +755,7 @@ Patch511: rh1214835.patch
Patch601: %{name}-rh1191652-root.patch
Patch602: %{name}-rh1191652-jdk.patch
Patch603: %{name}-rh1191652-hotspot-aarch64.patch
+Patch604: aarch64-ifdefbugfix.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -1024,7 +1025,7 @@ sh %{SOURCE12}
%patch603
%patch601
%patch602
-
+%patch604
%patch504
%patch511
@@ -1712,6 +1713,9 @@ end
%endif
%changelog
+* Mon Nov 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-16.b28
+added and applied patch604: aarch64-ifdefbugfix.patch to fix rhbz1276959
+
* Thu Oct 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-15.b28
- moved to single source integration forest
- removed patch patch9999 enableArm64.patch
commit 45afe24df1a748a8dfbe93449acf82b07be33a85
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 15 16:16:26 2015 +0200
Moved to single source from integration forest
diff --git a/.gitignore b/.gitignore
index 1526a7a..77d9647 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,4 @@
/jdk8u-arch64-jdk8u60-b24.tar.xz
/jdk8u60-jdk8u60-b27.tar.xz
/jdk8-aarch64-jdk8u60-b24.2.tar.xz
+/jdk8u60-aarch64-jdk8u60-b28.tar.xz
diff --git a/enableArm64.patch b/enableArm64.patch
deleted file mode 100644
index bb5863b..0000000
--- a/enableArm64.patch
+++ /dev/null
@@ -1,112 +0,0 @@
---- /dev/null
-+++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg
-@@ -0,0 +1,2 @@
-+-server KNOWN
-+-client IGNORE
---- jdk8/common/autoconf/generated-configure.sh
-+++ jdk8/common/autoconf/generated-configure.sh
-@@ -6731,8 +6731,9 @@
- # The aliases save the names the user supplied, while $host etc.
- # will get canonicalized.
- test -n "$target_alias" &&
-- test "$program_prefix$program_suffix$program_transform_name" = \
-- NONENONEs,x,x, &&
-+ test "$target_alias" != "$host_alias" &&
-+ test "$program_prefix$program_suffix$program_transform_name" = \
-+ NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
- # Figure out the build and target systems. # Note that in autoconf terminology,
"build" is obvious, but "target"
-@@ -7950,6 +7963,9 @@
- if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
- INCLUDE_SA=false
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-+ INCLUDE_SA=false
-+ fi
- if test "x$VAR_CPU" = xppc64 ; then
- INCLUDE_SA=false
- fi
-@@ -29957,6 +29973,9 @@
- s390)
- ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
- ;;
-+ aarch64)
-+ ZERO_ARCHFLAG=""
-+ ;;
- *)
- ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- esac
---- jdk8/common/autoconf/jdk-options.m4
-+++ jdk8/common/autoconf/jdk-options.m4
-@@ -117,11 +117,6 @@
- JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
- JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
-
-- if test "x$JVM_VARIANT_CLIENT" = xtrue; then
-- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
-- AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
-- fi
-- fi
- if test "x$JVM_VARIANT_KERNEL" = xtrue; then
- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
- AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
-@@ -159,6 +154,9 @@
- INCLUDE_SA=false
- fi
- if test "x$VAR_CPU" = xppc64 ; then
-+ INCLUDE_SA=false
-+ fi
-+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
- INCLUDE_SA=false
- fi
- if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-@@ -460,12 +458,6 @@
- AC_MSG_ERROR([Update version must have a value])
- elif test "x$with_update_version" != x; then
- JDK_UPDATE_VERSION="$with_update_version"
-- # On macosx 10.7, it's not possible to set --with-update-version=0X due
-- # to a bug in expr (which reduces it to just X). To work around this, we
-- # always add a 0 to one digit update versions.
-- if test "${#JDK_UPDATE_VERSION}" = "1"; then
-- JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}"
-- fi
- fi
-
- AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix],
---- jdk8/common/autoconf/toolchain.m4
-+++ jdk8/common/autoconf/toolchain.m4
-@@ -1158,6 +1158,9 @@
- s390)
- ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
- ;;
-+ aarch64)
-+ ZERO_ARCHFLAG=""
-+ ;;
- *)
- ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
- esac
---- jdk8/jdk/make/lib/SoundLibraries.gmk
-+++ jdk8/jdk/make/lib/SoundLibraries.gmk
-@@ -138,6 +138,10 @@
-
- ifeq ($(OPENJDK_TARGET_CPU), ppc64)
- LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
-+ endif
-+
-+ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
-+ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
- endif
- endif
-
---- jdk8/jdk/make/CompileJavaClasses.gmk
-+++ jdk8/jdk/make/CompileJavaClasses.gmk
-@@ -390,7 +390,7 @@
-
-
##########################################################################################
-
--all: $(BUILD_JDK) $(BUILD_SECURITY) $(COPY_EXTRA) \
-+all: $(BUILD_JDK) $(BUILD_SECURITY) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA)
\
- $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
- $(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
- $(BUILD_ACCESSBRIDGE_LEGACY)
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
b/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
index 2933063..865ecb3 100644
--- a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
+++ b/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
@@ -10,7 +10,7 @@ Summary: Use ppc64le as the arch directory on that platform and report
it in os.
--- openjdk/hotspot/make/defs.make.orig 2015-03-03 17:05:51.000000000 -0500
+++ openjdk/hotspot/make/defs.make 2015-03-03 19:18:20.000000000 -0500
@@ -319,6 +319,13 @@
- LIBARCH/arm = arm
+ LIBARCH/ppc64 = ppc64
LIBARCH/zero = $(ZERO_LIBARCH)
+ # Override LIBARCH for ppc64le
@@ -20,21 +20,6 @@ Summary: Use ppc64le as the arch directory on that platform and report
it in os.
+ endif
+ endif
+
- LP64_ARCH = sparcv9 amd64 ppc64 aarch64 ia64 zero
+ LP64_ARCH += sparcv9 amd64 ia64 ppc64 aarch64 zero
endif
-diff -r 01a0011cc101 -r 4fdaf786d977 src/os/linux/vm/os_linux.cpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 13:18:10 2015 +0000
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 16:05:34 2015 +0000
-@@ -305,7 +305,11 @@
- #elif defined(PPC32)
- static char cpu_arch[] = "ppc";
- #elif defined(PPC64)
-+#if defined(VM_LITTLE_ENDIAN)
-+static char cpu_arch[] = "ppc64le";
-+#else
- static char cpu_arch[] = "ppc64";
-+#endif
- #elif defined(SPARC)
- # ifdef _LP64
- static char cpu_arch[] = "sparcv9";
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot.patch
b/java-1.8.0-openjdk-rh1191652-hotspot.patch
deleted file mode 100644
index dd76f2d..0000000
--- a/java-1.8.0-openjdk-rh1191652-hotspot.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -r 9d6eb2757167 make/defs.make
---- openjdk/hotspot/make/defs.make Wed Feb 11 18:56:26 2015 -0800
-+++ openjdk/hotspot/make/defs.make Tue Feb 17 16:39:22 2015 +0000
-@@ -317,6 +317,13 @@
- LIBARCH/ppc64 = ppc64
- LIBARCH/zero = $(ZERO_LIBARCH)
-
-+ # Override LIBARCH for ppc64le
-+ ifeq ($(ARCH), ppc64)
-+ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
-+ LIBARCH = ppc64le
-+ endif
-+ endif
-+
- LP64_ARCH += sparcv9 amd64 ia64 ppc64 zero
- endif
-
\ No newline at end of file
diff --git a/java-1.8.0-openjdk-rh1191652-jdk.patch
b/java-1.8.0-openjdk-rh1191652-jdk.patch
index e32ffb6..b6fb673 100644
--- a/java-1.8.0-openjdk-rh1191652-jdk.patch
+++ b/java-1.8.0-openjdk-rh1191652-jdk.patch
@@ -15,9 +15,9 @@ diff -r 87c95759b92b src/share/native/com/sun/media/sound/SoundDefs.h
--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Feb 11 18:55:05 2015
-0800
+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Feb 17 18:25:01 2015
+0000
@@ -43,6 +43,8 @@
- #define X_ZERO 6
#define X_ARM 7
#define X_PPC 8
+ #define X_AARCH64 9
+#define X_PPC64 9
+#define X_PPC64LE 10
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b7f9913..db52658 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,10 +117,9 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 60
-%global buildver b27
-%global aarch64_updatever 60
-%global aarch64_buildver b24.2
-%global aarch64_changesetid aarch64-jdk8u%{aarch64_updatever}-%{aarch64_buildver}
+%global buildver b28
+%global aarch64_updatever %{updatever}
+%global aarch64_buildver %{buildver}
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -661,7 +660,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 14.%{buildver}%{?dist}
+Release: 15.%{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
@@ -680,10 +679,9 @@ License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with
exceptions and L
URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
-# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
-# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
-Source0: jdk8u60-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: jdk8-%{aarch64_changesetid}.tar.xz
+# aarch64-port now contains integration forest of both aarch64 and normal jdk
+# ./generate_source_tarball.sh aarch64-port jdk8u60 aarch64-jdk8u60-b28
+Source0: jdk8u60-aarch64-jdk8u%{updatever}-%{buildver}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -754,13 +752,10 @@ Patch504: rh1163501.patch
Patch511: rh1214835.patch
# RH1191652; fix name of ppc64le architecture
-Patch600: %{name}-rh1191652-hotspot.patch
Patch601: %{name}-rh1191652-root.patch
Patch602: %{name}-rh1191652-jdk.patch
Patch603: %{name}-rh1191652-hotspot-aarch64.patch
-Patch9999: enableArm64.patch
-
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -989,15 +984,6 @@ if [ $prioritylength -ne 7 ] ; then
exit 14
fi
# For old patches
-# Swap HotSpot for AArch64 port
-%ifarch %{aarch64}
-#pushd openjdk
-#rm -r hotspot
-# tmp - containing whole aarch64 forest
-rm -r openjdk
-tar xf %{SOURCE1}
-#popd
-%endif
ln -s openjdk jdk8
cp %{SOURCE2} .
@@ -1014,19 +1000,10 @@ cp %{SOURCE101} openjdk/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
-#pure aarch64 forest does not have them
-%ifnarch %{aarch64}
-# Add AArch64 support to configure & JDK build
-%patch9999
-%endif
-
%patch201
%patch202
%patch203
-%ifnarch %{aarch64}
-%endif
-
%patch1
%patch3
%patch4
@@ -1044,19 +1021,10 @@ sh %{SOURCE12}
# Zero PPC fixes.
%patch403
-# HotSpot ppc64le patch is different depending
-# on whether we are using 2.5 or 2.6 HotSpot.
-%ifarch %{aarch64}
%patch603
-%else
-%patch600
-%endif
-
-#pure aarch64 forest does not have them
-%ifnarch %{aarch64}
%patch601
%patch602
-%endif
+
%patch504
%patch511
@@ -1150,7 +1118,7 @@ bash ../../configure \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
%ifarch %{aarch64}
-
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}"
\
+
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}" \
%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=$debugbuild \
@@ -1744,6 +1712,11 @@ end
%endif
%changelog
+* Thu Oct 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-15.b28
+- moved to single source integration forest
+- removed patch patch9999 enableArm64.patch
+- removed patch patch600 %%{name}-rh1191652-hotspot.patch
+
* Thu Aug 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-14.b24
- updated aarch64 tarball to contain whole forest of latest
jdk8-aarch64-jdk8u60-b24.2.tar.xz
- using this forest instead of only hotspot
diff --git a/sources b/sources
index d502d0b..9e54e85 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-58a0f9a606680947dc10c9140f1966da jdk8-aarch64-jdk8u60-b24.2.tar.xz
-68efe6afc657ac8d066e0c4db1f16606 jdk8u60-jdk8u60-b27.tar.xz
+f7f25b31a29e5230407b08a8f3f8ce1d jdk8u60-aarch64-jdk8u60-b28.tar.xz
commit 8cd6f461c6a8895263c142e94a800f066c8aea2b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 27 14:45:41 2015 +0200
updated aarch64 tarball to contain whole forest of latest
jdk8-aarch64-jdk8u60-b24.2.tar.xz
- using this forest instead of only hotspot
- generate_source_tarball.sh - temporarily excluded repos="hotspot"
compression of download
- not only openjdk/hotspot is replaced, by wholeopenjdk
- ln -s openjdk jdk8 done after replacing of openjdk
- patches 9999 601 and 602 exclded for aarch64
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 58b3188..8330365 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -50,7 +50,9 @@ pushd openjdk
repos="corba hotspot jdk jaxws jaxp langtools nashorn"
if [ aarch64-port = $PROJECT_NAME ] ; then
-repos="hotspot"
+#tmp disable because of jdk8-aarch64-jdk8u60-b24.2
+echo NOT
+#repos="hotspot"
fi;
for subrepo in $repos
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7cc4151..b7f9913 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 14.%{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
@@ -989,14 +989,17 @@ if [ $prioritylength -ne 7 ] ; then
exit 14
fi
# For old patches
-ln -s openjdk jdk8
# Swap HotSpot for AArch64 port
%ifarch %{aarch64}
-pushd openjdk
-rm -r hotspot
+#pushd openjdk
+#rm -r hotspot
+# tmp - containing whole aarch64 forest
+rm -r openjdk
tar xf %{SOURCE1}
-popd
+#popd
%endif
+ln -s openjdk jdk8
+
cp %{SOURCE2} .
# replace outdated configure guess script
@@ -1011,12 +1014,16 @@ cp %{SOURCE101} openjdk/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
+#pure aarch64 forest does not have them
+%ifnarch %{aarch64}
# Add AArch64 support to configure & JDK build
%patch9999
+%endif
%patch201
%patch202
%patch203
+
%ifnarch %{aarch64}
%endif
@@ -1045,8 +1052,11 @@ sh %{SOURCE12}
%patch600
%endif
+#pure aarch64 forest does not have them
+%ifnarch %{aarch64}
%patch601
%patch602
+%endif
%patch504
%patch511
@@ -1734,6 +1744,14 @@ end
%endif
%changelog
+* Thu Aug 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-14.b24
+- updated aarch64 tarball to contain whole forest of latest
jdk8-aarch64-jdk8u60-b24.2.tar.xz
+- using this forest instead of only hotspot
+- generate_source_tarball.sh - temporarily excluded repos="hotspot" compression
of download
+- not only openjdk/hotspot is replaced, by wholeopenjdk
+- ln -s openjdk jdk8 done after replacing of openjdk
+- patches 9999 601 and 602 exclded for aarch64
+
* Wed Aug 26 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-13.b24
- updated aarch64 hotpost to latest jdk8-aarch64-jdk8u60-b24.2.tar.xz
diff --git a/sources b/sources
index 906b52c..d502d0b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-b7a02d707779bb05fcb65964befb414a jdk8-aarch64-jdk8u60-b24.2.tar.xz
+58a0f9a606680947dc10c9140f1966da jdk8-aarch64-jdk8u60-b24.2.tar.xz
68efe6afc657ac8d066e0c4db1f16606 jdk8u60-jdk8u60-b27.tar.xz
commit 5acccacd2616fbf1f3fbc2fdcbff6c6fbe561ed6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 26 08:07:33 2015 +0200
updated aarch64 hotpost to latest jdk8-aarch64-jdk8u60-b24.2.tar.xz
diff --git a/.gitignore b/.gitignore
index 7a34e54..1526a7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,4 @@
/jdk8u-jdk8u60-b24.tar.xz
/jdk8u-arch64-jdk8u60-b24.tar.xz
/jdk8u60-jdk8u60-b27.tar.xz
+/jdk8-aarch64-jdk8u60-b24.2.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index b59adaf..58b3188 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -8,6 +8,7 @@
# ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
+# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-jdk8u60-b24.2
# ./generate_source_tarball.sh jdk8u jdk8u60 jdk8u60-b27
# This script creates a single source tarball out of the repository
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index de08fe1..7cc4151 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -119,8 +119,8 @@
%global updatever 60
%global buildver b27
%global aarch64_updatever 60
-%global aarch64_buildver b24
-%global aarch64_changesetid arch64-jdk8u%{aarch64_updatever}-%{aarch64_buildver}
+%global aarch64_buildver b24.2
+%global aarch64_changesetid aarch64-jdk8u%{aarch64_updatever}-%{aarch64_buildver}
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -683,7 +683,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
Source0: jdk8u60-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: jdk8u-%{aarch64_changesetid}.tar.xz
+Source1: jdk8-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -1734,6 +1734,9 @@ end
%endif
%changelog
+* Wed Aug 26 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-13.b24
+- updated aarch64 hotpost to latest jdk8-aarch64-jdk8u60-b24.2.tar.xz
+
* Wed Aug 19 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-12.b24
- updated to freshly released jdk8u60-jdk8u60-b27
diff --git a/sources b/sources
index 45d5d1c..906b52c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-d34133825257f3eb4d5eb9b66da60c2e jdk8u-arch64-jdk8u60-b24.tar.xz
+b7a02d707779bb05fcb65964befb414a jdk8-aarch64-jdk8u60-b24.2.tar.xz
68efe6afc657ac8d066e0c4db1f16606 jdk8u60-jdk8u60-b27.tar.xz
commit a875ea48a1bc831c8b68dcf7e82a0c82501e28e8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 19 13:20:20 2015 +0200
updated to freshly released jdk8u60 - jdk8u60-b27
diff --git a/.gitignore b/.gitignore
index dd93632..7a34e54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,4 @@
/jdk8u-aarch64-jdk8u51-b16.tar.xz
/jdk8u-jdk8u60-b24.tar.xz
/jdk8u-arch64-jdk8u60-b24.tar.xz
+/jdk8u60-jdk8u60-b27.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index c13f5ae..b59adaf 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -8,7 +8,8 @@
# ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
-#
+# ./generate_source_tarball.sh jdk8u jdk8u60 jdk8u60-b27
+
# This script creates a single source tarball out of the repository
# based on the given tag and removes code not allowed in fedora. For
# consistency, the source tarball will always contain 'openjdk' as the top
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index caf35f0..de08fe1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,7 +117,7 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 60
-%global buildver b24
+%global buildver b27
%global aarch64_updatever 60
%global aarch64_buildver b24
%global aarch64_changesetid arch64-jdk8u%{aarch64_updatever}-%{aarch64_buildver}
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -682,7 +682,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
-Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
+Source0: jdk8u60-jdk8u%{updatever}-%{buildver}.tar.xz
Source1: jdk8u-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
@@ -1734,10 +1734,13 @@ end
%endif
%changelog
+* Wed Aug 19 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-12.b24
+- updated to freshly released jdk8u60-jdk8u60-b27
+
* Thu Aug 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-11.b24
- another touching attempt to polycies...
-* Mon Aug 04 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
+* Mon Aug 03 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
- arch64 updated to u60-b24 with hope to fix rhbz1249037
* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
diff --git a/sources b/sources
index 6602a16..45d5d1c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
d34133825257f3eb4d5eb9b66da60c2e jdk8u-arch64-jdk8u60-b24.tar.xz
-280ff4b4a324cea18d0670d66a32f9b8 jdk8u-jdk8u60-b24.tar.xz
+68efe6afc657ac8d066e0c4db1f16606 jdk8u60-jdk8u60-b27.tar.xz
commit d2c2de4938256152136a35d5f9eca5e29ccc62e8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 13 16:49:11 2015 +0200
another touching attempt to polycies...
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 005c8ef..caf35f0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -1734,6 +1734,9 @@ end
%endif
%changelog
+* Thu Aug 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-11.b24
+- another touching attempt to polycies...
+
* Mon Aug 04 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
- arch64 updated to u60-b24 with hope to fix rhbz1249037
diff --git a/repackReproduciblePolycies.sh b/repackReproduciblePolycies.sh
index 33a46b8..271cb74 100644
--- a/repackReproduciblePolycies.sh
+++ b/repackReproduciblePolycies.sh
@@ -7,7 +7,7 @@ for f in local_policy.jar US_export_policy.jar ; do
ORIG=$P/$f
echo "processing $f ($ORIG)"
if [ ! -f $ORIG ]; then
- echo "File not found!"
+ echo "File not found! $ORIG"
continue
fi
d=`mktemp -d`
@@ -22,13 +22,16 @@ NW=$d/$f
zip -rX $f *
popd
echo "replacing $ORIG"
+ touch -t 201401010000 $ORIG
md5sum $ORIG
sha256sum $ORIG
echo "by $NW"
md5sum $NW
sha256sum $NW
+ touch -t 201401010000 $NW
cp $NW $ORIG
md5sum $ORIG
sha256sum $ORIG
+ touch -t 201401010000 $ORIG
rm -rfv $d
done
commit c35257f26187cee272ba3b3804644f39c9b1aa35
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 6 15:03:07 2015 +0200
emvoed prelink completly
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8c678d1..005c8ef 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -796,12 +796,7 @@ BuildRequires: tzdata-java >= 2015d
# cacerts build requirement.
BuildRequires: openssl
-# execstack build requirement.
-# no prelink on ARM yet
-%ifnarch %{arm} %{aarch64} %{ppc64le}
-#prelink was "replaced" by execstack in f23+ However logs are same for
prleinked, execstacked or none at all builds
-BuildRequires: execstack
-%endif
+#prelink was removed from fedora
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
@@ -1741,7 +1736,6 @@ end
%changelog
* Mon Aug 04 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
- arch64 updated to u60-b24 with hope to fix rhbz1249037
-- prelink replaced by execstack sinc f23 (dont use at all?)
* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
- added one more md5sum test (thanx to Severin!)
commit d2f4b281913b21fe83f06ddf0dce08cdeac4cd37
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 4 19:23:54 2015 +0200
prelink replaced by execstack sinc f23 (dont use at all?)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7f1f62d..8c678d1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -799,7 +799,8 @@ BuildRequires: openssl
# execstack build requirement.
# no prelink on ARM yet
%ifnarch %{arm} %{aarch64} %{ppc64le}
-BuildRequires: prelink
+#prelink was "replaced" by execstack in f23+ However logs are same for
prleinked, execstacked or none at all builds
+BuildRequires: execstack
%endif
%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
@@ -1740,6 +1741,7 @@ end
%changelog
* Mon Aug 04 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
- arch64 updated to u60-b24 with hope to fix rhbz1249037
+- prelink replaced by execstack sinc f23 (dont use at all?)
* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
- added one more md5sum test (thanx to Severin!)
commit 651ca6e1556794159e88da27fb4ab8d62f15febe
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 4 18:35:58 2015 +0200
arch64 updated to u60-b24 with hope to fix rhbz1249037
diff --git a/.gitignore b/.gitignore
index 22a5ee0..dd93632 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,3 +43,4 @@
/jdk8u-jdk8u60-b16.tar.xz
/jdk8u-aarch64-jdk8u51-b16.tar.xz
/jdk8u-jdk8u60-b24.tar.xz
+/jdk8u-arch64-jdk8u60-b24.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c05ce7d..7f1f62d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -118,9 +118,9 @@
%global origin openjdk
%global updatever 60
%global buildver b24
-%global aarch64_updatever 51
-%global aarch64_buildver b16
-%global aarch64_changesetid aarch64-jdk8u51-b16
+%global aarch64_updatever 60
+%global aarch64_buildver b24
+%global aarch64_changesetid arch64-jdk8u%{aarch64_updatever}-%{aarch64_buildver}
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -1738,6 +1738,9 @@ end
%endif
%changelog
+* Mon Aug 04 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
+- arch64 updated to u60-b24 with hope to fix rhbz1249037
+
* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
- added one more md5sum test (thanx to Severin!)
- I guess one more missing
diff --git a/sources b/sources
index 5193681..6602a16 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-fbfc2b2a5a3bfda9851dd355388a8dd0 jdk8u-aarch64-jdk8u51-b16.tar.xz
+d34133825257f3eb4d5eb9b66da60c2e jdk8u-arch64-jdk8u60-b24.tar.xz
280ff4b4a324cea18d0670d66a32f9b8 jdk8u-jdk8u60-b24.tar.xz
commit 267064e8541645348d839877b7ae20d833ca5a67
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Jul 21 15:37:06 2015 +0200
Bumbed reelase to fix update path
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e529751..c05ce7d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -661,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 9.%{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
commit deb3d7b44af2c2f0c03051d6db34e8bd0fcff7e2
Author: Jiri <jvanek(a)redhat.com>
Date: Mon Jul 20 21:05:32 2015 +0200
Sync with f23 - security update to u60b23
diff --git a/.gitignore b/.gitignore
index 143e5f5..22a5ee0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,3 +41,5 @@
/jdk8u45-jdk8u45-b13.tar.xz
/jdk8u45-jdk8u45-b14.tar.xz
/jdk8u-jdk8u60-b16.tar.xz
+/jdk8u-aarch64-jdk8u51-b16.tar.xz
+/jdk8u-jdk8u60-b24.tar.xz
diff --git a/1208369_memory_leak_gcc5.patch b/1208369_memory_leak_gcc5.patch
deleted file mode 100644
index 6a24334..0000000
--- a/1208369_memory_leak_gcc5.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/src/share/vm/opto/type.cpp b/src/share/vm/opto/type.cpp
---- jdk8/hotspot/src/share/vm/opto/type.cpp
-+++ jdk8/hotspot/src/share/vm/opto/type.cpp
-@@ -1158,11 +1158,11 @@
- // Certain normalizations keep us sane when comparing types.
- // The 'SMALLINT' covers constants and also CC and its relatives.
- if (lo <= hi) {
-- if ((juint)(hi - lo) <= SMALLINT) w = Type::WidenMin;
-- if ((juint)(hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT
-+ if ((juint)hi - lo <= SMALLINT) w = Type::WidenMin;
-+ if ((juint)hi - lo >= max_juint) w = Type::WidenMax; // TypeInt::INT
- } else {
-- if ((juint)(lo - hi) <= SMALLINT) w = Type::WidenMin;
-- if ((juint)(lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
-+ if ((juint)lo - hi <= SMALLINT) w = Type::WidenMin;
-+ if ((juint)lo - hi >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
- }
- return w;
- }
-@@ -1416,11 +1416,11 @@
- // Certain normalizations keep us sane when comparing types.
- // The 'SMALLINT' covers constants.
- if (lo <= hi) {
-- if ((julong)(hi - lo) <= SMALLINT) w = Type::WidenMin;
-- if ((julong)(hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG
-+ if ((julong)hi - lo <= SMALLINT) w = Type::WidenMin;
-+ if ((julong)hi - lo >= max_julong) w = Type::WidenMax; // TypeLong::LONG
- } else {
-- if ((julong)(lo - hi) <= SMALLINT) w = Type::WidenMin;
-- if ((julong)(lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
-+ if ((julong)lo - hi <= SMALLINT) w = Type::WidenMin;
-+ if ((julong)lo - hi >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
- }
- return w;
- }
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 6011bbd..c13f5ae 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,5 +1,4 @@
#!/bin/bash
-
# Generates the 'source tarball' for JDK 8 projects.
#
# Usage: generate_source_tarball.sh project_name repo_name tag
@@ -12,7 +11,7 @@
#
# This script creates a single source tarball out of the repository
# based on the given tag and removes code not allowed in fedora. For
-# consistency, the source tarball will always contain 'jdk8' as the top
+# consistency, the source tarball will always contain 'openjdk' as the top
# level folder.
set -e
@@ -44,8 +43,8 @@ wget "${REPO_ROOT}/archive/${VERSION}.tar.gz"
tar xf "${VERSION}.tar.gz"
rm "${VERSION}.tar.gz"
-mv "${REPO_NAME}-${VERSION}" jdk8
-pushd jdk8
+mv "${REPO_NAME}-${VERSION}" openjdk
+pushd openjdk
repos="corba hotspot jdk jaxws jaxp langtools nashorn"
if [ aarch64-port = $PROJECT_NAME ] ; then
@@ -60,12 +59,19 @@ do
mv "${subrepo}-${VERSION}" "${subrepo}"
done
-if [ -e jdk ] ; then
- rm -vr jdk/src/share/native/sun/security/ec/impl
-fi
+echo "Removing EC source code we don't build"
+rm -vrf jdk/src/share/native/sun/security/ec/impl
+
+#get this file
http://icedtea.classpath.org/hg/icedtea/raw-file/tip/patches/pr2126.patch
(from
http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=8d2c9a898f50)
+#from most correct tag
+#and use it like below. Do not push it or publish it (see
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126)
+pwd
+echo "Syncing EC list with NSS"
+patch -Np1 < ../../pr2126.patch
+
popd
-tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
+tar cJf ${REPO_NAME}-${VERSION}.tar.xz openjdk
popd
diff --git a/gif4.1.patch b/gif4.1.patch
deleted file mode 100644
index e8a26c9..0000000
--- a/gif4.1.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
-@@ -296,7 +296,7 @@
- free(pBitmapBits);
- free(pOldBitmapBits);
-
-- DGifCloseFile(gif, NULL);
-+ DGifCloseFile(gif);
-
- return 1;
- }
-@@ -304,7 +304,7 @@
- int
- SplashDecodeGifStream(Splash * splash, SplashStream * stream)
- {
-- GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, NULL);
-+ GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc);
-
- if (!gif)
- return 0;
diff --git a/java-1.8.0-openjdk-linux-4.x.patch b/java-1.8.0-openjdk-linux-4.x.patch
deleted file mode 100644
index 291f7b4..0000000
--- a/java-1.8.0-openjdk-linux-4.x.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up jdk8/hotspot/make/linux/Makefile.linux4 jdk8/hotspot/make/linux/Makefile
---- jdk8/hotspot/make/linux/Makefile.linux4 2015-06-09 10:14:48.000000000 -0400
-+++ jdk8/hotspot/make/linux/Makefile 2015-06-09 10:14:54.000000000 -0400
-@@ -229,7 +229,7 @@ checks: check_os_version check_j2se_vers
- # Solaris 2.5.1, 2.6).
- # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
-
--SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
-+SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
- OS_VERSION := $(shell uname -r)
- EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
-
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
b/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
new file mode 100644
index 0000000..2933063
--- /dev/null
+++ b/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
@@ -0,0 +1,40 @@
+# HG changeset patch
+# User andrew
+# Date 1424102734 0
+# Mon Feb 16 16:05:34 2015 +0000
+# Node ID 4fdaf786d977aa77afdb68b8829579d31069e39c
+# Parent 01a0011cc101f3308c5876db8282c0fc5e3ba2e6
+PR2236: ppc64le should report its os.arch as ppc64le so tools can detect it
+Summary: Use ppc64le as the arch directory on that platform and report it in os.arch
+
+--- openjdk/hotspot/make/defs.make.orig 2015-03-03 17:05:51.000000000 -0500
++++ openjdk/hotspot/make/defs.make 2015-03-03 19:18:20.000000000 -0500
+@@ -319,6 +319,13 @@
+ LIBARCH/arm = arm
+ LIBARCH/zero = $(ZERO_LIBARCH)
+
++ # Override LIBARCH for ppc64le
++ ifeq ($(ARCH), ppc64)
++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
++ LIBARCH = ppc64le
++ endif
++ endif
++
+ LP64_ARCH = sparcv9 amd64 ppc64 aarch64 ia64 zero
+ endif
+
+diff -r 01a0011cc101 -r 4fdaf786d977 src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 13:18:10 2015 +0000
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Feb 16 16:05:34 2015 +0000
+@@ -305,7 +305,11 @@
+ #elif defined(PPC32)
+ static char cpu_arch[] = "ppc";
+ #elif defined(PPC64)
++#if defined(VM_LITTLE_ENDIAN)
++static char cpu_arch[] = "ppc64le";
++#else
+ static char cpu_arch[] = "ppc64";
++#endif
+ #elif defined(SPARC)
+ # ifdef _LP64
+ static char cpu_arch[] = "sparcv9";
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot.patch
b/java-1.8.0-openjdk-rh1191652-hotspot.patch
new file mode 100644
index 0000000..dd76f2d
--- /dev/null
+++ b/java-1.8.0-openjdk-rh1191652-hotspot.patch
@@ -0,0 +1,17 @@
+diff -r 9d6eb2757167 make/defs.make
+--- openjdk/hotspot/make/defs.make Wed Feb 11 18:56:26 2015 -0800
++++ openjdk/hotspot/make/defs.make Tue Feb 17 16:39:22 2015 +0000
+@@ -317,6 +317,13 @@
+ LIBARCH/ppc64 = ppc64
+ LIBARCH/zero = $(ZERO_LIBARCH)
+
++ # Override LIBARCH for ppc64le
++ ifeq ($(ARCH), ppc64)
++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
++ LIBARCH = ppc64le
++ endif
++ endif
++
+ LP64_ARCH += sparcv9 amd64 ia64 ppc64 zero
+ endif
+
\ No newline at end of file
diff --git a/java-1.8.0-openjdk-rh1191652-jdk.patch
b/java-1.8.0-openjdk-rh1191652-jdk.patch
new file mode 100644
index 0000000..e32ffb6
--- /dev/null
+++ b/java-1.8.0-openjdk-rh1191652-jdk.patch
@@ -0,0 +1,62 @@
+--- openjdk/jdk/make/lib/SoundLibraries.gmk.orig 2015-03-03 20:52:33.000000000 -0500
++++ openjdk/jdk/make/lib/SoundLibraries.gmk 2015-03-03 20:54:39.000000000 -0500
+@@ -140,6 +140,10 @@
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
+ endif
+
++ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
++ endif
++
+ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
+ endif
+diff -r 87c95759b92b src/share/native/com/sun/media/sound/SoundDefs.h
+--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Feb 11 18:55:05 2015
-0800
++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Feb 17 18:25:01 2015
+0000
+@@ -43,6 +43,8 @@
+ #define X_ZERO 6
+ #define X_ARM 7
+ #define X_PPC 8
++#define X_PPC64 9
++#define X_PPC64LE 10
+
+ // **********************************
+ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
+diff -r 87c95759b92b src/solaris/bin/ppc64le/jvm.cfg
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Tue Feb 17 18:25:01 2015 +0000
+@@ -0,0 +1,33 @@
++# Copyright (c) 2011, 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. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# 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.
++#
++# List of JVMs that can be used as an option to java, javac, etc.
++# Order is important -- first in this list is the default JVM.
++# NOTE that this both this file and its format are UNSUPPORTED and
++# WILL GO AWAY in a future release.
++#
++# You may also select a JVM in an arbitrary location with the
++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
++# and may not be available in a future release.
++#
++-server KNOWN
diff --git a/java-1.8.0-openjdk-rh1191652-root.patch
b/java-1.8.0-openjdk-rh1191652-root.patch
new file mode 100644
index 0000000..7483623
--- /dev/null
+++ b/java-1.8.0-openjdk-rh1191652-root.patch
@@ -0,0 +1,50 @@
+diff -r 590cc3ca1fec common/autoconf/hotspot-spec.gmk.in
+--- openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 11 12:18:34 2015 -0800
++++ openjdk///common/autoconf/hotspot-spec.gmk.in Wed Feb 18 12:10:19 2015 +0000
+@@ -71,6 +71,10 @@
+ LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
+ # Old name for OPENJDK_TARGET_CPU, uses i586 and amd64, instead of x86 and x86_64.
+ ARCH=$(OPENJDK_TARGET_CPU_LEGACY)
++# ppc64le uses the HotSpot ppc64 build
++ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
++ ARCH=ppc64
++endif
+ # Legacy setting for building for a 64 bit machine.
+ # If yes then this expands to _LP64:=1
+ @LP64@
+--- openjdk/common/autoconf/jdk-options.m4.orig 2015-03-03 20:13:00.000000000 -0500
++++ openjdk/common/autoconf/jdk-options.m4 2015-03-03 20:36:17.000000000 -0500
+@@ -153,7 +153,7 @@
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
+ INCLUDE_SA=false
+ fi
+- if test "x$VAR_CPU" = xppc64 ; then
++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
+ INCLUDE_SA=false
+ fi
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+diff -r 590cc3ca1fec common/autoconf/platform.m4
+--- openjdk///common/autoconf/platform.m4 Wed Feb 11 12:18:34 2015 -0800
++++ openjdk///common/autoconf/platform.m4 Wed Feb 18 12:10:19 2015 +0000
+@@ -61,7 +61,7 @@
+ VAR_CPU_ENDIAN=big
+ ;;
+ powerpc64le)
+- VAR_CPU=ppc64
++ VAR_CPU=ppc64le
+ VAR_CPU_ARCH=ppc
+ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
+diff -r 590cc3ca1fec common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4 Wed Feb 11 12:18:34 2015 -0800
++++ openjdk///common/autoconf/toolchain.m4 Wed Feb 18 12:10:19 2015 +0000
+@@ -1056,6 +1056,9 @@
+ else
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
++ fi
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
+ fi
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 29d116e..e529751 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,10 +117,10 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 60
-%global buildver b16
-%global aarch64_updatever 45
-%global aarch64_buildver b13
-%global aarch64_changesetid aarch64-jdk8u45-b13
+%global buildver b24
+%global aarch64_updatever 51
+%global aarch64_buildver b16
+%global aarch64_changesetid aarch64-jdk8u51-b16
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -130,7 +130,7 @@
#images stub
%global j2sdkimage j2sdk-image
# output dir stub
-%global buildoutputdir() %{expand:jdk8/build/jdk8.build%1}
+%global buildoutputdir() %{expand:openjdk/build/jdk8.build%1}
#we can copy the javadoc to not arched dir, or made it not noarch
%global uniquejavadocdir() %{expand:%{fullversion}%1}
#main id and dir of this jdk
@@ -171,6 +171,24 @@ exit 0
%global post_headless() %{expand:
# FIXME: identical binaries are copied, not linked. This needs to be
# fixed upstream.
+# The pretrans lua scriptlet prevents an unmodified java.security
+# from being replaced via an update. It gets created as
+# java.security.rpmnew instead. This invalidates the patch of
+# JDK-8061210 of the January 2015 CPU or JDK-8043201 of the
+# July 2015 CPU. We fix this via a post scriptlet which runs on updates.
+if [ "$1" -gt 1 ]; then
+ javasecurity="%{_jvmdir}/%{uniquesuffix}/jre/lib/security/java.security"
+ sum=$(md5sum "${javasecurity}" | cut -d' ' -f1)
+ # This is the md5sum of an unmodified java.security file
+ if [ "${sum}" = '1690ac33955594f71dc952c9e83fd396' -o \\
+ "${sum}" = 'b138695d0c0ea947e64a21a627d973ba' -o \\
+ "${sum}" = 'd17958676bdb9f9d941c8a59655311fb' ]; then
+ if [ -f "${javasecurity}.rpmnew" ]; then
+ mv -f "${javasecurity}.rpmnew" "${javasecurity}"
+ fi
+ fi
+fi
+
%ifarch %{jit_arches}
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
%ifnarch %{power64}
@@ -643,7 +661,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 3.%{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
@@ -665,7 +683,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1:
jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
+Source1: jdk8u-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -716,9 +734,6 @@ Patch13: libjpeg-turbo-1.4-compat.patch
# OpenJDK specific patches
#
-#
http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/471b684ff43e
-# allow build on Linux 4.x kernels
-Patch99: java-1.8.0-openjdk-linux-4.x.patch
# JVM heap size changes for s390 (thanks to aph)
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
@@ -732,11 +747,17 @@ Patch300: jstack-pr1845.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-Patch503: d318d83c4e74.patch
-# Patch for upstream JDK-8078666 (RHBZ#1208369)
-Patch505: 1208369_memory_leak_gcc5.patch
-Patch506: gif4.1.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
+Patch504: rh1163501.patch
+# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
(upstreaming post-CPU 2015/07)
+Patch511: rh1214835.patch
+
+# RH1191652; fix name of ppc64le architecture
+Patch600: %{name}-rh1191652-hotspot.patch
+Patch601: %{name}-rh1191652-root.patch
+Patch602: %{name}-rh1191652-jdk.patch
+Patch603: %{name}-rh1191652-hotspot-aarch64.patch
Patch9999: enableArm64.patch
@@ -971,9 +992,11 @@ if [ $prioritylength -ne 7 ] ; then
echo "priority must be 7 digits in total, violated"
exit 14
fi
-ln -s jdk8 openjdk
+# For old patches
+ln -s openjdk jdk8
+# Swap HotSpot for AArch64 port
%ifarch %{aarch64}
-pushd jdk8
+pushd openjdk
rm -r hotspot
tar xf %{SOURCE1}
popd
@@ -984,16 +1007,14 @@ cp %{SOURCE2} .
#
# the configure macro will do this too, but it also passes a few flags not
# supported by openjdk configure script
-cp %{SOURCE100} jdk8/common/autoconf/build-aux/
-cp %{SOURCE101} jdk8/common/autoconf/build-aux/
+cp %{SOURCE100} openjdk/common/autoconf/build-aux/
+cp %{SOURCE101} openjdk/common/autoconf/build-aux/
# OpenJDK patches
# Remove libraries that are linked
sh %{SOURCE12}
-%patch99
-
# Add AArch64 support to configure & JDK build
%patch9999
@@ -1020,9 +1041,19 @@ sh %{SOURCE12}
# Zero PPC fixes.
%patch403
-%patch503
-%patch505
-%patch506
+# HotSpot ppc64le patch is different depending
+# on whether we are using 2.5 or 2.6 HotSpot.
+%ifarch %{aarch64}
+%patch603
+%else
+%patch600
+%endif
+
+%patch601
+%patch602
+
+%patch504
+%patch511
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1090,7 +1121,7 @@ EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
export EXTRA_CFLAGS
-(cd jdk8/common/autoconf
+(cd openjdk/common/autoconf
bash ./autogen.sh
)
@@ -1319,7 +1350,7 @@ cp -a %{buildoutputdir $suffix}/docs
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavad
# Install icons and menu entries.
for s in 16 24 32 48 ; do
install -D -p -m 644 \
- jdk8/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png
done
@@ -1707,6 +1738,24 @@ end
%endif
%changelog
+* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
+- added one more md5sum test (thanx to Severin!)
+ - I guess one more missing
+- doubled slash in md5sum test in post
+
+* Thu Jul 16 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b24
+- updated to security u60-b24
+- moved to openjdk instead of jdk8 topdir in sources
+- removed upstreamed patch99 java-1.8.0-openjdk-linux-4.x.patch
+- removed upstreamed patch503 pr2444.patch
+- removed upstreamed patch505 1208369_memory_leak_gcc5.patch
+- removed upstreamed patch506: gif4.1.patch
+ - note: usptream version is suspicious
+ GIFLIB_MAJOR >= 5 SplashStreamGifInputFunc, NULL
+ ELSE SplashStreamGifInputFunc
+ - but the condition seems to be viceversa
+
+
* Mon Jun 22 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.60-7.b16
- Require javapackages-tools instead of jpackage-utils.
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
index 4bc071b..e549a9c 100644
--- a/removeSunEcProvider-RH1154143.patch
+++ b/removeSunEcProvider-RH1154143.patch
@@ -1,5 +1,6 @@
---- jdk8/jdk/src/share/lib/security/java.security-linux
-+++ jdk8/jdk/src/share/lib/security/java.security-linux
+diff -r 135101850ef1 src/share/lib/security/java.security-linux
+--- openjdk/jdk/src/share/lib/security/java.security-linux Wed Jun 03 20:23:19 2015
-0700
++++ openjdk/jdk/src/share/lib/security/java.security-linux Thu Jul 02 04:02:18 2015
+0100
@@ -67,13 +67,13 @@
#
security.provider.1=sun.security.provider.Sun
@@ -21,9 +22,12 @@
#
# Sun Provider SecureRandom seed source.
-@@ -504,4 +504,4 @@
+@@ -500,7 +500,7 @@
#
# Example:
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
--jdk.tls.disabledAlgorithms=SSLv3, RC4
-+jdk.tls.disabledAlgorithms=SSLv3,RC4,EC,ECDHE,ECDH
+-jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
++jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768, EC, ECDHE, ECDH
+
+ # Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
+ # processing in JSSE implementation.
diff --git a/rh1214835.patch b/rh1214835.patch
new file mode 100644
index 0000000..eba79a6
--- /dev/null
+++ b/rh1214835.patch
@@ -0,0 +1,20 @@
+# HG changeset patch
+# User andrew
+# Date 1429893959 -3600
+# Fri Apr 24 17:45:59 2015 +0100
+# Node ID 6e3f4784affc0de360d763ad69979690b2650a98
+# Parent 75acb9c0991bc118463debed137d38ce40358bc0
+4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
+
+diff -r 75acb9c0991b -r 6e3f4784affc src/share/demo/jvmti/hprof/hprof_init.c
+--- openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Thu Jun 04 18:00:35 2015 +0100
++++ openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Fri Apr 24 17:45:59 2015 +0100
+@@ -1361,7 +1361,7 @@
+ } rawMonitorExit(gdata->dump_lock);
+
+ /* Dump everything if we need to */
+- if (gdata->dump_on_exit && need_to_dump) {
++ if (gdata->dump_on_exit || need_to_dump) {
+
+ dump_all_data(env);
+ }
diff --git a/sources b/sources
index e5b3f4b..5193681 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-753feced879e36b1250fb37aa45cea75 jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
-033b0b67913cdd1981910a0ee19cfc74 jdk8u-jdk8u60-b16.tar.xz
+fbfc2b2a5a3bfda9851dd355388a8dd0 jdk8u-aarch64-jdk8u51-b16.tar.xz
+280ff4b4a324cea18d0670d66a32f9b8 jdk8u-jdk8u60-b24.tar.xz
commit dd0a8d38f7c8d3ad2143d0b0632e514100a2ce3c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Jul 15 15:05:36 2015 +0200
mv d318d83c4e74.patch rh1163501.patch
diff --git a/d318d83c4e74.patch b/rh1163501.patch
similarity index 100%
rename from d318d83c4e74.patch
rename to rh1163501.patch
commit 68abcee933f0c20855b019e6394d196c7e2166e7
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jun 22 15:59:07 2015 -0400
Require javapackages-tools
jpackage-utils was provided by javapackages-tools in older releases of
Fedora. Just require the main package directly, complying with the Java
packaging guidelines.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d8b3d35..29d116e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -545,8 +545,8 @@ Obsoletes: sinjdoc
%global java_headless_rpo() %{expand:
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
-# Require jpackage-utils for ownership of /usr/lib/jvm/
-Requires: jpackage-utils
+# Require javapackages-tools for ownership of /usr/lib/jvm/
+Requires: javapackages-tools
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java >= 2015d
# libsctp.so.1 is being `dlopen`ed on demand
@@ -643,7 +643,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -898,7 +898,7 @@ The OpenJDK source bundle %{for_debug}.
%package javadoc
Summary: OpenJDK API Documentation
Group: Documentation
-Requires: jpackage-utils
+Requires: javapackages-tools
BuildArch: noarch
%{java_javadoc_rpo %{nil}}
@@ -911,7 +911,7 @@ The OpenJDK API documentation.
%package javadoc-debug
Summary: OpenJDK API Documentation %{for_debug}
Group: Documentation
-Requires: jpackage-utils
+Requires: javapackages-tools
BuildArch: noarch
%{java_javadoc_rpo %{debug_suffix_unquoted}}
@@ -1707,6 +1707,9 @@ end
%endif
%changelog
+* Mon Jun 22 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.60-7.b16
+- Require javapackages-tools instead of jpackage-utils.
+
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.60-6.b16
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
commit 13a11abf7369d921903ac4b80b683927fee935f4
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Wed Jun 17 11:50:37 2015 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c8722f6..d8b3d35 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -643,7 +643,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1707,6 +1707,9 @@ end
%endif
%changelog
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.60-6.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
* Tue Jun 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.60-5.b16
- allow build on Linux 4.x kernel
- refresh s390 size_t patch
commit 3e03696ccfd8e26619ff3bcd6a4e3251f13026fa
Author: Dan Horák <dan(a)danny.cz>
Date: Wed Jun 10 08:45:56 2015 +0200
- allow build on Linux 4.x kernel
- refresh s390 size_t patch
diff --git a/java-1.8.0-openjdk-linux-4.x.patch b/java-1.8.0-openjdk-linux-4.x.patch
new file mode 100644
index 0000000..291f7b4
--- /dev/null
+++ b/java-1.8.0-openjdk-linux-4.x.patch
@@ -0,0 +1,12 @@
+diff -up jdk8/hotspot/make/linux/Makefile.linux4 jdk8/hotspot/make/linux/Makefile
+--- jdk8/hotspot/make/linux/Makefile.linux4 2015-06-09 10:14:48.000000000 -0400
++++ jdk8/hotspot/make/linux/Makefile 2015-06-09 10:14:54.000000000 -0400
+@@ -229,7 +229,7 @@ checks: check_os_version check_j2se_vers
+ # Solaris 2.5.1, 2.6).
+ # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
+
+-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
+ OS_VERSION := $(shell uname -r)
+ EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
+
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index eb6aea5..406372a 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -1,6 +1,6 @@
-diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-03-23
12:58:50.138672164 +0100
+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
if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
@@ -10,9 +10,9 @@ 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.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-03-23
12:58:50.141672172 +0100
+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
if (free_percentage < desired_free_percentage) {
size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
@@ -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() &&
-@@ -6874,7 +6874,7 @@ void CMSMarkStack::expand() {
+@@ -6873,7 +6873,7 @@ void CMSMarkStack::expand() {
return;
}
// Double capacity if possible
@@ -40,9 +40,9 @@ 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.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-03-23
12:58:50.143672177 +0100
+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
// of things to do) or totally (at the very end).
size_t target_size;
@@ -61,10 +61,10 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390
*hum_bytes -= bytes;
}
return bytes;
-diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-03-23
12:58:50.144672180 +0100
-@@ -1738,7 +1738,7 @@ HeapWord* G1CollectedHeap::expand_and_al
+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
verify_region_sets_optional();
@@ -73,9 +73,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390
ergo_verbose1(ErgoHeapSizing,
"attempt heap expansion",
ergo_format_reason("allocation request failed")
-diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-03-23
12:58:50.145672183 +0100
+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()
_cancel(false),
_empty(true),
@@ -85,9 +85,9 @@ 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.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-03-23
12:58:50.145672183 +0100
+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:
};
@@ -97,10 +97,10 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s
_lists = PaddedArray<G1StringDedupEntryFreeList,
mtGC>::create_unfreeable((uint)_nlists);
}
-diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-03-23
12:58:50.146672185 +0100
-@@ -147,7 +147,7 @@ void HeapRegion::setup_heap_region_size(
+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(
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,9 +109,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 jdk8
}
int region_size_log = log2_long((jlong) region_size);
-diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-03-23
12:58:50.146672185 +0100
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2015-05-19
12:16:26.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-06-09
10:21:39.000000000 -0400
@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
@@ -121,9 +121,21 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s39
}
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-03-23
12:58:50.146672185 +0100
+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
+ 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,
+- ParGCDesiredObjsFromOverflowList,
++ (size_t)ParGCDesiredObjsFromOverflowList,
+ 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
void PSParallelCompact::initialize_dead_wood_limiter()
{
@@ -135,21 +147,9 @@ 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/gc_implementation/parNew/parNewGeneration.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-03-23
12:58:50.147672188 +0100
-@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf
- 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,
-- ParGCDesiredObjsFromOverflowList,
-+ (size_t)ParGCDesiredObjsFromOverflowList,
- 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/memory/collectorPolicy.cpp.s390
jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-03-23 12:58:50.147672188
+0100
+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
uintx calculated_size = NewSize + OldSize;
double shrink_factor = (double) MaxHeapSize / calculated_size;
@@ -207,9 +207,9 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/
_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.s390
jdk8/hotspot/src/share/vm/memory/metaspace.cpp
---- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2015-02-04 21:14:39.000000000
+0100
-+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-03-23 12:58:50.147672188 +0100
+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() {
void MetaspaceGC::post_initialize() {
@@ -246,9 +246,9 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390
jdk8/hotspot/src/sh
_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.s390
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-03-23
12:58:50.148672191 +0100
+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
size_t init_sz = 0;
@@ -266,9 +266,9 @@ diff -up
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 jdk8/h
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.s390
jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2015-02-04
21:14:39.000000000 +0100
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-03-23 12:58:50.148672191
+0100
+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
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -287,9 +287,9 @@ diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390
jdk8/hotsp
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.s390
jdk8/hotspot/src/share/vm/runtime/arguments.cpp
---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2015-02-04 21:14:39.000000000
+0100
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-03-23 12:58:50.148672191 +0100
+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
// NewSize was set on the command line and it is larger than
// preferred_max_new_size.
@@ -319,3 +319,15 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390
jdk8/hotspot/src/s
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/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 564c802..c8722f6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -643,7 +643,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -716,6 +716,9 @@ Patch13: libjpeg-turbo-1.4-compat.patch
# OpenJDK specific patches
#
+#
http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/471b684ff43e
+# allow build on Linux 4.x kernels
+Patch99: java-1.8.0-openjdk-linux-4.x.patch
# JVM heap size changes for s390 (thanks to aph)
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
@@ -989,6 +992,8 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
+%patch99
+
# Add AArch64 support to configure & JDK build
%patch9999
@@ -1702,6 +1707,10 @@ end
%endif
%changelog
+* Tue Jun 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.60-5.b16
+- allow build on Linux 4.x kernel
+- refresh s390 size_t patch
+
* Fri Jun 05 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-4.b16
- added requires lksctp-tools for headless subpackage to make sun.nio.ch.sctp work
commit 9b9e825604ddd59cfbe6c03e25744bcdba1784a1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Jun 5 14:14:23 2015 +0200
added requires lksctp-tools
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a2979da..564c802 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -549,6 +549,8 @@ Requires: ca-certificates
Requires: jpackage-utils
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java >= 2015d
+# libsctp.so.1 is being `dlopen`ed on demand
+Requires: lksctp-tools
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -641,7 +643,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1700,6 +1702,9 @@ end
%endif
%changelog
+* Fri Jun 05 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-4.b16
+- added requires lksctp-tools for headless subpackage to make sun.nio.ch.sctp work
+
* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b16
- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
moved out of "if with_systemtap" block
commit eababc307eff6bf988db52f35c1c9695ac0bbc88
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue May 26 10:36:36 2015 +0200
Bumped release - rebuild by itself.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e14cd80..a2979da 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
commit 2ba872a5adcded815727f7339135b90c5f61d890
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon May 25 20:03:50 2015 +0200
Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
+ moved out of "if with_systemtap" block
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0e8ef76..e14cd80 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -1013,6 +1013,10 @@ sh %{SOURCE12}
# Zero PPC fixes.
%patch403
+%patch503
+%patch505
+%patch506
+
# Extract systemtap tapsets
%if %{with_systemtap}
tar xzf %{SOURCE8}
@@ -1021,9 +1025,6 @@ tar xzf %{SOURCE8}
cp -r tapset tapset%{debug_suffix}
%endif
-%patch503
-%patch505
-%patch506
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
@@ -1699,6 +1700,10 @@ end
%endif
%changelog
+* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b16
+- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
+ moved out of "if with_systemtap" block
+
* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-1.b16
- updated to u60b16
- deleted upstreamed patches:
@@ -1710,8 +1715,6 @@ end
patch400 ppc_stack_overflow_fix.patch
patch204 zero-interpreter-fix.patch
- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
-- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
- moved out of "if with_systemtap" block
* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
- updated to 8u45-b14 with hope to fix rhbz#1123870
commit 93a5265d080d37042f1d7451c583437ec8549f61
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon May 25 18:41:49 2015 +0200
Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
moved out of "if with_systemtap" block
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0a5db7a..0e8ef76 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -727,7 +727,6 @@ Patch300: jstack-pr1845.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-
Patch503: d318d83c4e74.patch
# Patch for upstream JDK-8078666 (RHBZ#1208369)
Patch505: 1208369_memory_leak_gcc5.patch
@@ -1016,19 +1015,15 @@ sh %{SOURCE12}
# Extract systemtap tapsets
%if %{with_systemtap}
-
tar xzf %{SOURCE8}
-
%patch300
-
-%patch503
-%patch505
-%patch506
-
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
+%patch503
+%patch505
+%patch506
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
@@ -1715,6 +1710,8 @@ end
patch400 ppc_stack_overflow_fix.patch
patch204 zero-interpreter-fix.patch
- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
+- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
+ moved out of "if with_systemtap" block
* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
- updated to 8u45-b14 with hope to fix rhbz#1123870
commit 615ee0d451b1ac69daaadac0fd1bfbd29ef1418a
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon May 25 15:04:32 2015 +0200
added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
diff --git a/gif4.1.patch b/gif4.1.patch
new file mode 100644
index 0000000..e8a26c9
--- /dev/null
+++ b/gif4.1.patch
@@ -0,0 +1,20 @@
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
+@@ -296,7 +296,7 @@
+ free(pBitmapBits);
+ free(pOldBitmapBits);
+
+- DGifCloseFile(gif, NULL);
++ DGifCloseFile(gif);
+
+ return 1;
+ }
+@@ -304,7 +304,7 @@
+ int
+ SplashDecodeGifStream(Splash * splash, SplashStream * stream)
+ {
+- GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, NULL);
++ GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc);
+
+ if (!gif)
+ return 0;
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ee6c459..0a5db7a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -731,6 +731,7 @@ Patch403: rhbz1206656_fix_current_stack_pointer.patch
Patch503: d318d83c4e74.patch
# Patch for upstream JDK-8078666 (RHBZ#1208369)
Patch505: 1208369_memory_leak_gcc5.patch
+Patch506: gif4.1.patch
Patch9999: enableArm64.patch
@@ -1022,6 +1023,7 @@ tar xzf %{SOURCE8}
%patch503
%patch505
+%patch506
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
@@ -1712,6 +1714,7 @@ end
patch401 fix_ZERO_ARCHDEF_ppc.patch
patch400 ppc_stack_overflow_fix.patch
patch204 zero-interpreter-fix.patch
+- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
- updated to 8u45-b14 with hope to fix rhbz#1123870
commit 0a6a4e3c41dd3164fc6fd08f3b87e8ffca7c4740
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon May 25 13:10:28 2015 +0200
updated to u60b16
- deleted upstreamed patches:
patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
patch502 1182694_javaApplicationMenuMisbehave.patch
patch504 1210739_dns_naming_ipv6_addresses.patch
patch402 atomic_linux_zero.inline.hpp.patch
patch401 fix_ZERO_ARCHDEF_ppc.patch
patch400 ppc_stack_overflow_fix.patch
patch204 zero-interpreter-fix.patch
diff --git a/.gitignore b/.gitignore
index fd340e8..143e5f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,4 @@
/jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
/jdk8u45-jdk8u45-b13.tar.xz
/jdk8u45-jdk8u45-b14.tar.xz
+/jdk8u-jdk8u60-b16.tar.xz
diff --git
a/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
b/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
deleted file mode 100644
index ab6c3b6..0000000
--- a/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-
-# HG changeset patch
-# User neugens
-# Date 1421686672 -3600
-# Node ID 868404fc8be0163f50c242f473ecfbe4eccfe519
-# Parent 36c8318010acb190176744eb0a67a321ae23e711
-8067364: Printing to Postscript doesn't support dieresis
-Summary: Fix regression caused by fix for 8023990
-Reviewed-by: bae, prr
-Contributed-by: neugens(a)redhat.com, philip.race(a)oracle.com
-
-diff -r 36c8318010ac -r 868404fc8be0
src/solaris/classes/sun/font/FcFontConfiguration.java
---- jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Tue Dec 16 19:46:22
2014 +0000
-+++ jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Mon Jan 19 17:57:52
2015 +0100
-@@ -180,7 +180,7 @@
- String[] componentFaceNames = cfi[idx].getComponentFaceNames();
- FontDescriptor[] ret = new FontDescriptor[componentFaceNames.length];
- for (int i = 0; i < componentFaceNames.length; i++) {
-- ret[i] = new FontDescriptor(componentFaceNames[i],
StandardCharsets.UTF_8.newEncoder(), new int[0]);
-+ ret[i] = new FontDescriptor(componentFaceNames[i],
StandardCharsets.ISO_8859_1.newEncoder(), new int[0]);
- }
-
- return ret;
-diff -r 36c8318010ac -r 868404fc8be0 test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ jdk8/jdk/test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java Mon Jan 19 17:57:52 2015
+0100
-@@ -0,0 +1,120 @@
-+/*
-+ * Copyright (c) 2014, 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. Oracle designates this
-+ * particular file as subject to the "Classpath" exception as provided
-+ * by Oracle in the LICENSE file that accompanied this code.
-+ *
-+ * 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.awt.Graphics;
-+import java.awt.GraphicsEnvironment;
-+import java.awt.print.PageFormat;
-+import java.awt.print.Printable;
-+import java.io.File;
-+import java.io.FileInputStream;
-+import java.io.FileOutputStream;
-+import java.io.IOException;
-+import java.nio.charset.StandardCharsets;
-+import javax.print.DocFlavor;
-+import javax.print.DocPrintJob;
-+import javax.print.SimpleDoc;
-+import javax.print.StreamPrintService;
-+import javax.print.StreamPrintServiceFactory;
-+import javax.print.attribute.HashDocAttributeSet;
-+import javax.print.attribute.HashPrintRequestAttributeSet;
-+import javax.print.event.PrintJobAdapter;
-+import javax.print.event.PrintJobEvent;
-+
-+/*
-+ * @test
-+ * @bug 8067364
-+ * @summary Printing to Postscript doesn't support dieresis
-+ * @build PrintSEUmlauts
-+ * @run main/othervm PrintSEUmlauts
-+ */
-+public class PrintSEUmlauts implements Printable {
-+
-+ public static void main(String[] args) throws Exception {
-+
-+ GraphicsEnvironment.getLocalGraphicsEnvironment();
-+
-+ DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
-+ String mime = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
-+
-+ StreamPrintServiceFactory[] factories =
-+ StreamPrintServiceFactory.
-+ lookupStreamPrintServiceFactories(flavor, mime);
-+ if (factories.length == 0) {
-+ System.out.println("No print service found.");
-+ return;
-+ }
-+
-+ FileOutputStream output = new FileOutputStream("out.ps");
-+ StreamPrintService service = factories[0].getPrintService(output);
-+
-+ SimpleDoc doc =
-+ new SimpleDoc(new PrintSEUmlauts(),
-+ DocFlavor.SERVICE_FORMATTED.PRINTABLE,
-+ new HashDocAttributeSet());
-+ DocPrintJob job = service.createPrintJob();
-+ job.addPrintJobListener(new PrintJobAdapter() {
-+ @Override
-+ public void printJobCompleted(PrintJobEvent pje) {
-+ testPrintAndExit();
-+ }
-+ });
-+
-+ job.print(doc, new HashPrintRequestAttributeSet());
-+ }
-+
-+ private static final boolean DEBUG = false;
-+ private static void testPrintAndExit() {
-+ String expected = "<e4> 7.44 100.0 100.0 S";
-+ String content = "";
-+
-+ File file = new File("out.ps");
-+ if (!DEBUG) {
-+ file.deleteOnExit();
-+ }
-+
-+ try (FileInputStream stream = new FileInputStream(file)) {
-+ byte[] data = new byte[(int) file.length()];
-+ stream.read(data);
-+ content = new String(data, StandardCharsets.ISO_8859_1);
-+ } catch (IOException ex) {
-+ ex.printStackTrace();
-+ }
-+
-+ if (!content.contains(expected)) {
-+ System.err.println("FAIL");
-+ if (DEBUG) {
-+ System.err.println("printing content");
-+ System.err.println(content);
-+ }
-+ throw new RuntimeException("Expected <e4> to represent
'ä' but not found!");
-+ }
-+ System.err.println("SUCCESS");
-+ }
-+
-+ public int print(Graphics g, PageFormat pf, int pg) {
-+ if (pg > 0) return NO_SUCH_PAGE;
-+ g.drawString("ä", 100, 100);
-+ return PAGE_EXISTS;
-+ }
-+}
-
diff --git a/1182694_javaApplicationMenuMisbehave.patch
b/1182694_javaApplicationMenuMisbehave.patch
deleted file mode 100644
index 55da997..0000000
--- a/1182694_javaApplicationMenuMisbehave.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-changeset: 10519:e1ca700aaa1f
-tag: tip
-user: neugens
-date: Fri Feb 27 15:50:03 2015 +0100
-summary: 8071705: Java application menu misbehaves when running multiple screen
stacked vertically
-
-diff --git jdk8/jdk/src/share/classes/javax/swing/JMenu.java
jdk8/jdk/src/share/classes/javax/swing/JMenu.java
---- jdk8/jdk/src/share/classes/javax/swing/JMenu.java
-+++ jdk8/jdk/src/share/classes/javax/swing/JMenu.java
-@@ -475,7 +475,8 @@
- }
- // Then the y:
- y = s.height + yOffset; // Prefer dropping down
-- if (position.y + y + pmSize.height >= screenBounds.height &&
-+ if (position.y + y + pmSize.height >= screenBounds.height
-+ + screenBounds.y &&
- // popup doesn't fit - place it wherever there's more room
- screenBounds.height - s.height < 2*(position.y
- - screenBounds.y)) {
-diff --git jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
-new file mode 100644
---- /dev/null
-+++ jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
-@@ -0,0 +1,207 @@
-+/*
-+ * Copyright (c) 2015, 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
-+ * @bug 8071705
-+ * @summary Java application menu misbehaves when running multiple screen stacked
vertically
-+ * @build bug8071705
-+ * @run main/othervm bug8071705
-+ */
-+
-+import java.awt.Dimension;
-+import java.awt.GraphicsConfiguration;
-+import java.awt.GraphicsDevice;
-+import java.awt.GraphicsEnvironment;
-+import java.awt.Point;
-+import java.awt.Rectangle;
-+import java.awt.Toolkit;
-+import java.awt.event.ComponentAdapter;
-+import java.awt.event.ComponentEvent;
-+import java.awt.event.KeyEvent;
-+import java.util.concurrent.CountDownLatch;
-+
-+import javax.swing.JFrame;
-+import javax.swing.JMenu;
-+import javax.swing.JMenuBar;
-+import javax.swing.JMenuItem;
-+import javax.swing.JPopupMenu;
-+import javax.swing.SwingUtilities;
-+import javax.swing.UIManager;
-+
-+public class bug8071705 {
-+
-+ public static void main(String[] args) throws Exception {
-+
-+ final CountDownLatch latch = new CountDownLatch(1);
-+ final boolean [] result = new boolean[1];
-+
-+ SwingUtilities.invokeLater(new Runnable() {
-+ @Override
-+ public void run() {
-+ JFrame frame = createGUI();
-+ GraphicsDevice[] devices = checkScreens();
-+
-+ // check if we have more than one and if they are stacked
-+ // vertically
-+ GraphicsDevice device = checkConfigs(devices);
-+ if (device == null) {
-+ // just pass the test
-+ frame.dispose();
-+ result[0] = true;
-+ latch.countDown();
-+ } else {
-+ FrameListener listener =
-+ new FrameListener(device, latch, result);
-+ frame.addComponentListener(listener);
-+ frame.setVisible(true);
-+ }
-+ }
-+ });
-+
-+ latch.await();
-+
-+ if (result[0] == false) {
-+ throw new RuntimeException("popup menu rendered in wrong
position");
-+ }
-+
-+ System.out.println("OK");
-+ }
-+
-+ private static GraphicsDevice[] checkScreens() {
-+ GraphicsEnvironment ge =
-+ GraphicsEnvironment.getLocalGraphicsEnvironment();
-+ return ge.getScreenDevices();
-+ }
-+
-+ private static JFrame createGUI() {
-+ JMenuBar menuBar = new JMenuBar();
-+ JMenu menu = new JMenu("Some menu");
-+ menuBar.add(menu);
-+
-+ for (int i = 0; i < 10; i++) {
-+ menu.add(new JMenuItem("Some menu #" + i));
-+ }
-+
-+ JFrame frame = new JFrame();
-+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-+ frame.setMinimumSize(new Dimension(200, 200));
-+ frame.setJMenuBar(menuBar);
-+ return frame;
-+ }
-+
-+ private static GraphicsDevice checkConfigs(GraphicsDevice[] devices) {
-+
-+ GraphicsDevice correctDevice = null;
-+ if (devices.length < 2) {
-+ return correctDevice;
-+ }
-+
-+ Toolkit toolkit = Toolkit.getDefaultToolkit();
-+ Rectangle screenBounds = new Rectangle(toolkit.getScreenSize());
-+ int halfScreen = screenBounds.height/2;
-+
-+ for(int i = 0; i < devices.length; i++) {
-+ if(devices[i].getType() == GraphicsDevice.TYPE_RASTER_SCREEN) {
-+ GraphicsConfiguration conf =
-+ devices[i].getDefaultConfiguration();
-+ Rectangle bounds = conf.getBounds();
-+ if (bounds.y >= halfScreen) {
-+ // found
-+ correctDevice = devices[i];
-+ break;
-+ }
-+ }
-+ }
-+ return correctDevice;
-+ }
-+
-+ private static class FrameListener extends ComponentAdapter {
-+
-+ private GraphicsDevice device;
-+ private CountDownLatch latch;
-+ private boolean [] result;
-+ public FrameListener(GraphicsDevice device,
-+ CountDownLatch latch,
-+ boolean [] result)
-+ {
-+ this.device = device;
-+ this.latch = latch;
-+ this.result = result;
-+ }
-+
-+ @Override
-+ public void componentShown(ComponentEvent e) {
-+ JFrame frame = (JFrame) e.getComponent();
-+
-+ runActualTest(device, latch, frame, result);
-+
-+ frame.setVisible(false);
-+ frame.dispose();
-+ latch.countDown();
-+ }
-+ }
-+
-+ private static Rectangle setLocation(JFrame frame, GraphicsDevice device) {
-+ GraphicsConfiguration conf = device.getDefaultConfiguration();
-+ Rectangle bounds = conf.getBounds();
-+
-+ // put just below half screen
-+ int x = bounds.x + bounds.width/2;
-+ int y = bounds.y + bounds.height/2;
-+ frame.setLocation(x, y);
-+
-+ return bounds;
-+ }
-+
-+ private static void runActualTest(GraphicsDevice device,
-+ CountDownLatch latch,
-+ JFrame frame,
-+ boolean [] result)
-+ {
-+ Rectangle screenBounds = setLocation(frame, device);
-+ JMenu menu = frame.getJMenuBar().getMenu(0);
-+ menu.doClick();
-+
-+ Point location = menu.getLocationOnScreen();
-+ JPopupMenu pm = menu.getPopupMenu();
-+ Dimension pmSize = pm.getSize();
-+
-+ int yOffset = UIManager.getInt("Menu.submenuPopupOffsetY");
-+ int height = location.y + yOffset + pmSize.height + menu.getHeight();
-+ int available = screenBounds.y + screenBounds.height - height;
-+ if (available > 0) {
-+ Point origin = pm.getLocationOnScreen();
-+ if (origin.y < location.y) {
-+ // growing upward, wrong!
-+ result[0] = false;
-+ } else {
-+ // growing downward, ok!
-+ result[0] = true;
-+ }
-+ } else {
-+ // there is no space, growing upward would be ok, so we pass
-+ result[0] = true;
-+ }
-+ }
-+}
-
diff --git a/1210739_dns_naming_ipv6_addresses.patch
b/1210739_dns_naming_ipv6_addresses.patch
deleted file mode 100644
index 8faa80f..0000000
--- a/1210739_dns_naming_ipv6_addresses.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-
-# HG changeset patch
-# User robm
-# Date 1430151427 -3600
-# Node ID b02550d62bdbaf61a258628b47acc3fc7982d7e5
-# Parent 70aaa6da3101e6c2feeabce3b36d50624ed918ad
-6991580: IPv6 Nameservers in resolv.conf throws NumberFormatException
-Reviewed-by: michaelm, andrew, alanb, rriggs
-Contributed-by: sgehwolf(a)redhat.com
-
-diff -r 70aaa6da3101 -r b02550d62bdb
src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
---- jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Sun Apr 19
10:31:06 2015 +0300
-+++ jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Mon Apr 27
17:17:07 2015 +0100
-@@ -85,6 +85,15 @@
- if (val.charAt(0) == '#' || val.charAt(0) == ';') {
- break;
- }
-+ if ("nameserver".equals(keyword)) {
-+ if (val.indexOf(':') >= 0 &&
-+ val.indexOf('.') < 0 && // skip for IPv4
literals with port
-+ val.indexOf('[') < 0 &&
-+ val.indexOf(']') < 0 ) {
-+ // IPv6 literal, in non-BSD-style.
-+ val = "[" + val + "]";
-+ }
-+ }
- ll.add(val);
- if (--maxvalues == 0) {
- break;
-diff -r 70aaa6da3101 -r b02550d62bdb
test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ jdk8/jdk/test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java Mon Apr 27
17:17:07 2015 +0100
-@@ -0,0 +1,104 @@
-+/*
-+ * Copyright (c) 2015, 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.
-+ */
-+
-+import java.lang.reflect.Field;
-+import java.util.Hashtable;
-+
-+import javax.naming.Context;
-+import javax.naming.NamingException;
-+import javax.naming.spi.NamingManager;
-+
-+import com.sun.jndi.dns.DnsContext;
-+
-+/**
-+ * @test
-+ * @bug 6991580
-+ * @summary IPv6 Nameservers in resolv.conf throws NumberFormatException
-+ * @run main/manual IPv6NameserverPlatformParsingTest
-+ *
-+ * In order to run this test be sure to place, for example, the following
-+ * snippet into your platform's {@code /etc/resolv.conf}:
-+ * <pre>
-+ * nameserver 127.0.0.1
-+ * nameserver 2001:4860:4860::8888
-+ * nameserver [::1]:5353
-+ * nameserver 127.0.0.1:5353
-+ * </pre>
-+ *
-+ * Then, run this test as manual jtreg test.
-+ *
-+ * @author Severin Gehwolf
-+ *
-+ */
-+public class IPv6NameserverPlatformParsingTest {
-+
-+ private static boolean foundIPv6 = false;
-+
-+ public static void main(String[] args) {
-+ Hashtable<String, String> env = new Hashtable<>();
-+ env.put(Context.INITIAL_CONTEXT_FACTORY,
com.sun.jndi.dns.DnsContextFactory.class.getName());
-+
-+ String[] servers;
-+ try {
-+ Context ctx = NamingManager.getInitialContext(env);
-+ if (!com.sun.jndi.dns.DnsContextFactory.platformServersAvailable()) {
-+ throw new RuntimeException("FAIL: no platform servers available,
test does not make sense");
-+ }
-+ DnsContext context = (DnsContext)ctx;
-+ servers = getServersFromContext(context);
-+ } catch (NamingException e) {
-+ throw new RuntimeException(e);
-+ }
-+ for (String server: servers) {
-+ System.out.println("DEBUG: 'nameserver = " + server +
"'");
-+ if (server.indexOf(':') >= 0 &&
server.indexOf('.') < 0) {
-+ System.out.println("DEBUG: ==> Found IPv6 address in servers
list: " + server);
-+ foundIPv6 = true;
-+ }
-+ }
-+ try {
-+ new com.sun.jndi.dns.DnsClient(servers, 100, 1);
-+ } catch (NumberFormatException e) {
-+ throw new RuntimeException("FAIL: Tried to parse non-[]-encapsulated
IPv6 address.", e);
-+ } catch (Exception e) {
-+ throw new RuntimeException("ERROR: Something unexpected
happened.");
-+ }
-+ if (!foundIPv6) {
-+ // This is a manual test, since it requires changing /etc/resolv.conf on
Linux/Unix
-+ // platforms. See comment as to how to run this test.
-+ throw new RuntimeException("ERROR: No IPv6 address returned from
platform.");
-+ }
-+ System.out.println("PASS: Found IPv6 address and DnsClient parsed it
correctly.");
-+ }
-+
-+ private static String[] getServersFromContext(DnsContext context) {
-+ try {
-+ Field serversField =
DnsContext.class.getDeclaredField("servers");
-+ serversField.setAccessible(true);
-+ return (String[])serversField.get(context);
-+ } catch (Exception e) {
-+ throw new RuntimeException(e);
-+ }
-+ }
-+
-+}
-
diff --git a/atomic_linux_zero.inline.hpp.patch b/atomic_linux_zero.inline.hpp.patch
deleted file mode 100644
index 78be93e..0000000
--- a/atomic_linux_zero.inline.hpp.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
---- jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
-+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
-@@ -222,31 +222,35 @@
-
- inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) {
- #ifdef ARM
-- return arm_lock_test_and_set(dest, exchange_value);
-+ jint result = arm_lock_test_and_set(dest, exchange_value);
- #else
- #ifdef M68K
-- return m68k_lock_test_and_set(dest, exchange_value);
-+ jint result = m68k_lock_test_and_set(dest, exchange_value);
- #else
- // __sync_lock_test_and_set is a bizarrely named atomic exchange
- // operation. Note that some platforms only support this with the
- // limitation that the only valid value to store is the immediate
- // constant 1. There is a test for this in JNI_CreateJavaVM().
-- return __sync_lock_test_and_set (dest, exchange_value);
-+ jint result = __sync_lock_test_and_set (dest, exchange_value);
-+ __sync_synchronize();
- #endif // M68K
- #endif // ARM
-+ return result;
- }
-
- inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value,
- volatile intptr_t* dest) {
- #ifdef ARM
-- return arm_lock_test_and_set(dest, exchange_value);
-+ intptr_t result = arm_lock_test_and_set(dest, exchange_value);
- #else
- #ifdef M68K
-- return m68k_lock_test_and_set(dest, exchange_value);
-+ intptr_t result = m68k_lock_test_and_set(dest, exchange_value);
- #else
-- return __sync_lock_test_and_set (dest, exchange_value);
-+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
-+ __sync_synchronize();
- #endif // M68K
- #endif // ARM
-+ return result;
- }
-
- inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) {
diff --git a/enableArm64.patch b/enableArm64.patch
index a62d224..bb5863b 100644
--- a/enableArm64.patch
+++ b/enableArm64.patch
@@ -17,32 +17,6 @@
program_prefix=${target_alias}-
# Figure out the build and target systems. # Note that in autoconf terminology,
"build" is obvious, but "target"
-@@ -6816,6 +6817,12 @@
- VAR_CPU=arm
- VAR_CPU_ARCH=arm
- VAR_CPU_BITS=32
-+ VAR_CPU_ENDIAN=little
-+ ;;
-+ aarch64)
-+ VAR_CPU=aarch64
-+ VAR_CPU_ARCH=aarch64
-+ VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=little
- ;;
- powerpc)
-@@ -6949,6 +6956,12 @@
- VAR_CPU_BITS=32
- VAR_CPU_ENDIAN=little
- ;;
-+ aarch64)
-+ VAR_CPU=aarch64
-+ VAR_CPU_ARCH=aarch64
-+ VAR_CPU_BITS=64
-+ VAR_CPU_ENDIAN=little
-+ ;;
- powerpc)
- VAR_CPU=ppc
- VAR_CPU_ARCH=ppc
@@ -7950,6 +7963,9 @@
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
@@ -86,7 +60,7 @@
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
INCLUDE_SA=false
fi
- AC_SUBST(INCLUDE_SA)
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
@@ -460,12 +458,6 @@
AC_MSG_ERROR([Update version must have a value])
elif test "x$with_update_version" != x; then
@@ -100,21 +74,6 @@
fi
AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix],
---- jdk8/common/autoconf/platform.m4
-+++ jdk8/common/autoconf/platform.m4
-@@ -46,6 +46,12 @@
- VAR_CPU=arm
- VAR_CPU_ARCH=arm
- VAR_CPU_BITS=32
-+ VAR_CPU_ENDIAN=little
-+ ;;
-+ aarch64)
-+ VAR_CPU=aarch64
-+ VAR_CPU_ARCH=aarch64
-+ VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=little
- ;;
- powerpc)
--- jdk8/common/autoconf/toolchain.m4
+++ jdk8/common/autoconf/toolchain.m4
@@ -1158,6 +1158,9 @@
diff --git a/fix_ZERO_ARCHDEF_ppc.patch b/fix_ZERO_ARCHDEF_ppc.patch
deleted file mode 100644
index e7724ae..0000000
--- a/fix_ZERO_ARCHDEF_ppc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
---- jdk8/common/autoconf/platform.m4
-+++ jdk8/common/autoconf/platform.m4
-@@ -367,7 +367,8 @@
-
- # ZERO_ARCHDEF is used to enable architecture-specific code
- case "${OPENJDK_TARGET_CPU}" in
-- ppc*) ZERO_ARCHDEF=PPC ;;
-+ ppc) ZERO_ARCHDEF=PPC32 ;;
-+ ppc64) ZERO_ARCHDEF=PPC64 ;;
- s390*) ZERO_ARCHDEF=S390 ;;
- sparc*) ZERO_ARCHDEF=SPARC ;;
- x86_64*) ZERO_ARCHDEF=AMD64 ;;
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 41ff95c..ee6c459 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -116,8 +116,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 45
-%global buildver b14
+%global updatever 60
+%global buildver b16
%global aarch64_updatever 45
%global aarch64_buildver b13
%global aarch64_changesetid aarch64-jdk8u45-b13
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 38.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -662,7 +662,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
-Source0: jdk8u45-jdk8u%{updatever}-%{buildver}.tar.xz
+Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
Source1:
jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
@@ -722,28 +722,13 @@ Patch102: %{name}-size_t.patch
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
-Patch204: zero-interpreter-fix.patch
Patch300: jstack-pr1845.patch
-# Fixed upstream. Can be removed with u60. See upstream bug:
-#
https://bugs.openjdk.java.net/browse/JDK-8064815
-Patch400: ppc_stack_overflow_fix.patch
-# Fixed upstream. Can be removed with u60. See upstream bug:
-#
https://bugs.openjdk.java.net/browse/JDK-8067330
-Patch401: fix_ZERO_ARCHDEF_ppc.patch
-# Fixed upstream. Can be removed with u60. See upstream bug:
-#
https://bugs.openjdk.java.net/browse/JDK-8067331
-Patch402: atomic_linux_zero.inline.hpp.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-#both upstreamed, will fly away in u60 (bug IDs are Red Hat bug IDs)
-Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
-Patch502: 1182694_javaApplicationMenuMisbehave.patch
Patch503: d318d83c4e74.patch
-# Patch for upstream JDK-6991580 (RHBZ#1210739). Can be removed with u60
-Patch504: 1210739_dns_naming_ipv6_addresses.patch
# Patch for upstream JDK-8078666 (RHBZ#1208369)
Patch505: 1208369_memory_leak_gcc5.patch
@@ -1009,7 +994,6 @@ sh %{SOURCE12}
%patch202
%patch203
%ifnarch %{aarch64}
-%patch204
%endif
%patch1
@@ -1027,9 +1011,6 @@ sh %{SOURCE12}
%endif
# Zero PPC fixes.
-%patch400
-%patch401
-%patch402
%patch403
# Extract systemtap tapsets
@@ -1039,10 +1020,7 @@ tar xzf %{SOURCE8}
%patch300
-%patch501
-%patch502
%patch503
-%patch504
%patch505
%if %{include_debug_build}
@@ -1724,6 +1702,17 @@ end
%endif
%changelog
+* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-1.b16
+- updated to u60b16
+- deleted upstreamed patches:
+ patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+ patch502 1182694_javaApplicationMenuMisbehave.patch
+ patch504 1210739_dns_naming_ipv6_addresses.patch
+ patch402 atomic_linux_zero.inline.hpp.patch
+ patch401 fix_ZERO_ARCHDEF_ppc.patch
+ patch400 ppc_stack_overflow_fix.patch
+ patch204 zero-interpreter-fix.patch
+
* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
- updated to 8u45-b14 with hope to fix rhbz#1123870
diff --git a/ppc_stack_overflow_fix.patch b/ppc_stack_overflow_fix.patch
deleted file mode 100644
index 754797a..0000000
--- a/ppc_stack_overflow_fix.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/src/cpu/zero/vm/stack_zero.hpp b/src/cpu/zero/vm/stack_zero.hpp
---- jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
-+++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
-@@ -99,7 +99,7 @@
- int shadow_pages_size() const {
- return _shadow_pages_size;
- }
-- int abi_stack_available(Thread *thread) const;
-+ ssize_t abi_stack_available(Thread *thread) const;
-
- public:
- void overflow_check(int required_words, TRAPS);
-diff --git a/src/cpu/zero/vm/stack_zero.inline.hpp
b/src/cpu/zero/vm/stack_zero.inline.hpp
---- jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
-+++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
-@@ -47,10 +47,11 @@
- // This method returns the amount of ABI stack available for us
- // to use under normal circumstances. Note that the returned
- // value can be negative.
--inline int ZeroStack::abi_stack_available(Thread *thread) const {
-- int stack_used = thread->stack_base() - (address) &stack_used;
-- int stack_free = thread->stack_size() - stack_used;
-- return stack_free - shadow_pages_size();
-+inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
-+ ssize_t stack_used = thread->stack_base() - (address) &stack_used
-+ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
-+ ssize_t stack_free = thread->stack_size() - stack_used;
-+ return stack_free;
- }
-
- #endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
-diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
---- jdk8/hotspot/src/os/linux/vm/os_linux.cpp
-+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -4700,6 +4700,13 @@
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
- (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
-+#ifdef ZERO
-+ // If this is Zero, allow at the very minimum one page each for the
-+ // Zero stack and the native stack. This won't make any difference
-+ // for 4k pages, but is significant for large pages.
-+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
-+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) *
Linux::page_size());
-+#endif
-
- size_t threadStackSizeInBytes = ThreadStackSize * K;
- if (threadStackSizeInBytes != 0 &&
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
index 9f8802d..4bc071b 100644
--- a/removeSunEcProvider-RH1154143.patch
+++ b/removeSunEcProvider-RH1154143.patch
@@ -25,5 +25,5 @@
#
# Example:
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
--jdk.tls.disabledAlgorithms=SSLv3
-+jdk.tls.disabledAlgorithms=SSLv3,EC,ECDHE,ECDH
+-jdk.tls.disabledAlgorithms=SSLv3, RC4
++jdk.tls.disabledAlgorithms=SSLv3,RC4,EC,ECDHE,ECDH
diff --git a/sources b/sources
index 830989a..e5b3f4b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
753feced879e36b1250fb37aa45cea75 jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
-7e90698699505d3879401534bc544395 jdk8u45-jdk8u45-b14.tar.xz
+033b0b67913cdd1981910a0ee19cfc74 jdk8u-jdk8u60-b16.tar.xz
diff --git a/zero-interpreter-fix.patch b/zero-interpreter-fix.patch
deleted file mode 100644
index 8fdbd90..0000000
--- a/zero-interpreter-fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1418632606 -3600
-# Node ID a733dad6fc1e2572ed227e898da35e0053cbb7c5
-# Parent db035d4ba1bd25ac8803bb2d177cb35681eb6907
-8067231: Zero builds fails after JDK-6898462
-Summary: Interpreter::remove_activation_entry() is not defined for the C++ interpreter
-Reviewed-by: roland, coleenp
-Contributed-by: Severin Gehwolf <sgehwolf(a)redhat.com>
-
---- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014
+0300
-+++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014
+0100
-@@ -394,7 +394,11 @@
- // during deoptimization so the interpreter needs to skip it when
- // the frame is popped.
- thread->set_do_not_unlock_if_synchronized(true);
-+#ifdef CC_INTERP
-+ return (address) -1;
-+#else
- return Interpreter::remove_activation_entry();
-+#endif
- }
-
- // Need to do this check first since when _do_not_unlock_if_synchronized
-
commit 1d4d7113c033b5bf775171b4a9d69c72e886a3eb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed May 13 19:17:24 2015 +0200
updated to 8u45-b14 with hope to fix rhbz#1123870
diff --git a/.gitignore b/.gitignore
index 3d3bb75..fd340e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,4 @@
/jdk8u-jdk8u31-b13.tar.xz
/jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
/jdk8u45-jdk8u45-b13.tar.xz
+/jdk8u45-jdk8u45-b14.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9bdb094..41ff95c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,7 +117,7 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 45
-%global buildver b13
+%global buildver b14
%global aarch64_updatever 45
%global aarch64_buildver b13
%global aarch64_changesetid aarch64-jdk8u45-b13
@@ -548,7 +548,7 @@ Requires: ca-certificates
# Require jpackage-utils for ownership of /usr/lib/jvm/
Requires: jpackage-utils
# Require zoneinfo data provided by tzdata-java subpackage.
-Requires: tzdata-java >= 2015d-2
+Requires: tzdata-java >= 2015d
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 37.%{buildver}%{?dist}
+Release: 38.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -781,7 +781,7 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-BuildRequires: tzdata-java >= 2015d-2
+BuildRequires: tzdata-java >= 2015d
# cacerts build requirement.
BuildRequires: openssl
@@ -1724,6 +1724,9 @@ end
%endif
%changelog
+* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
+- updated to 8u45-b14 with hope to fix rhbz#1123870
+
* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-37.b13
- added runtime requires for tzdata
- Remove reference to tz.properties which is no longer used (by gnu.andrew)
diff --git a/sources b/sources
index 313ebc1..830989a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
753feced879e36b1250fb37aa45cea75 jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
-44789f3467fc8df3c82946dd0db097a6 jdk8u45-jdk8u45-b13.tar.xz
+7e90698699505d3879401534bc544395 jdk8u45-jdk8u45-b14.tar.xz
commit 43fd471c423290f6689c6e74cd791efb8ff49f1d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed May 13 08:50:48 2015 +0200
Fixed changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a7b6b48..9bdb094 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1724,7 +1724,7 @@ end
%endif
%changelog
-* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-36.b13
+* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-37.b13
- added runtime requires for tzdata
- Remove reference to tz.properties which is no longer used (by gnu.andrew)
commit 708febf0ea2d9bc660dbe08fefb0da04db7287b2
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed May 13 08:34:49 2015 +0200
added runtime requires for tzdata
Remove reference to tz.properties which is no longer used (by gnu.andrew)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1c17ffd..a7b6b48 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -548,7 +548,7 @@ Requires: ca-certificates
# Require jpackage-utils for ownership of /usr/lib/jvm/
Requires: jpackage-utils
# Require zoneinfo data provided by tzdata-java subpackage.
-Requires: tzdata-java >= 2014f-1
+Requires: tzdata-java >= 2015d-2
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 36.%{buildver}%{?dist}
+Release: 37.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -781,7 +781,7 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-BuildRequires: tzdata-java >= 2014f-1
+BuildRequires: tzdata-java >= 2015d-2
# cacerts build requirement.
BuildRequires: openssl
@@ -1462,7 +1462,6 @@ local caredFiles = {"jre/lib/calendars.properties",
"jre/lib/net.properties",
"jre/lib/psfontj2d.properties",
"jre/lib/sound.properties",
- "jre/lib/tz.properties",
"jre/lib/deployment.properties",
"jre/lib/deployment.config",
"jre/lib/security/US_export_policy.jar",
@@ -1725,6 +1724,10 @@ end
%endif
%changelog
+* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-36.b13
+- added runtime requires for tzdata
+- Remove reference to tz.properties which is no longer used (by gnu.andrew)
+
* Wed Apr 29 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.45-36.b13
- Patch hotspot to not use undefined code rather than passing
-fno-tree-vrp via CFLAGS.
commit 10a02c49ddd8923bd0c7b884a3a3b50d64754217
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Wed Apr 29 18:40:21 2015 +0200
Add fixes for RHBZ#1208369 and RHBZ#1210739.
- Patch hotspot to not use undefined code rather than passing
-fno-tree-vrp via CFLAGS. This is an updated fix for RHBZ#1208369.
- Add upstream patch for DNS nameserver issue with IPv6 addresses.
Resolves: RHBZ#1210739
diff --git a/1208369_memory_leak_gcc5.patch b/1208369_memory_leak_gcc5.patch
new file mode 100644
index 0000000..6a24334
--- /dev/null
+++ b/1208369_memory_leak_gcc5.patch
@@ -0,0 +1,35 @@
+diff --git a/src/share/vm/opto/type.cpp b/src/share/vm/opto/type.cpp
+--- jdk8/hotspot/src/share/vm/opto/type.cpp
++++ jdk8/hotspot/src/share/vm/opto/type.cpp
+@@ -1158,11 +1158,11 @@
+ // Certain normalizations keep us sane when comparing types.
+ // The 'SMALLINT' covers constants and also CC and its relatives.
+ if (lo <= hi) {
+- if ((juint)(hi - lo) <= SMALLINT) w = Type::WidenMin;
+- if ((juint)(hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT
++ if ((juint)hi - lo <= SMALLINT) w = Type::WidenMin;
++ if ((juint)hi - lo >= max_juint) w = Type::WidenMax; // TypeInt::INT
+ } else {
+- if ((juint)(lo - hi) <= SMALLINT) w = Type::WidenMin;
+- if ((juint)(lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
++ if ((juint)lo - hi <= SMALLINT) w = Type::WidenMin;
++ if ((juint)lo - hi >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
+ }
+ return w;
+ }
+@@ -1416,11 +1416,11 @@
+ // Certain normalizations keep us sane when comparing types.
+ // The 'SMALLINT' covers constants.
+ if (lo <= hi) {
+- if ((julong)(hi - lo) <= SMALLINT) w = Type::WidenMin;
+- if ((julong)(hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG
++ if ((julong)hi - lo <= SMALLINT) w = Type::WidenMin;
++ if ((julong)hi - lo >= max_julong) w = Type::WidenMax; // TypeLong::LONG
+ } else {
+- if ((julong)(lo - hi) <= SMALLINT) w = Type::WidenMin;
+- if ((julong)(lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
++ if ((julong)lo - hi <= SMALLINT) w = Type::WidenMin;
++ if ((julong)lo - hi >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
+ }
+ return w;
+ }
diff --git a/1210739_dns_naming_ipv6_addresses.patch
b/1210739_dns_naming_ipv6_addresses.patch
new file mode 100644
index 0000000..8faa80f
--- /dev/null
+++ b/1210739_dns_naming_ipv6_addresses.patch
@@ -0,0 +1,138 @@
+
+# HG changeset patch
+# User robm
+# Date 1430151427 -3600
+# Node ID b02550d62bdbaf61a258628b47acc3fc7982d7e5
+# Parent 70aaa6da3101e6c2feeabce3b36d50624ed918ad
+6991580: IPv6 Nameservers in resolv.conf throws NumberFormatException
+Reviewed-by: michaelm, andrew, alanb, rriggs
+Contributed-by: sgehwolf(a)redhat.com
+
+diff -r 70aaa6da3101 -r b02550d62bdb
src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java
+--- jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Sun Apr 19
10:31:06 2015 +0300
++++ jdk8/jdk/src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java Mon Apr 27
17:17:07 2015 +0100
+@@ -85,6 +85,15 @@
+ if (val.charAt(0) == '#' || val.charAt(0) == ';') {
+ break;
+ }
++ if ("nameserver".equals(keyword)) {
++ if (val.indexOf(':') >= 0 &&
++ val.indexOf('.') < 0 && // skip for IPv4
literals with port
++ val.indexOf('[') < 0 &&
++ val.indexOf(']') < 0 ) {
++ // IPv6 literal, in non-BSD-style.
++ val = "[" + val + "]";
++ }
++ }
+ ll.add(val);
+ if (--maxvalues == 0) {
+ break;
+diff -r 70aaa6da3101 -r b02550d62bdb
test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ jdk8/jdk/test/com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java Mon Apr 27
17:17:07 2015 +0100
+@@ -0,0 +1,104 @@
++/*
++ * Copyright (c) 2015, 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.
++ */
++
++import java.lang.reflect.Field;
++import java.util.Hashtable;
++
++import javax.naming.Context;
++import javax.naming.NamingException;
++import javax.naming.spi.NamingManager;
++
++import com.sun.jndi.dns.DnsContext;
++
++/**
++ * @test
++ * @bug 6991580
++ * @summary IPv6 Nameservers in resolv.conf throws NumberFormatException
++ * @run main/manual IPv6NameserverPlatformParsingTest
++ *
++ * In order to run this test be sure to place, for example, the following
++ * snippet into your platform's {@code /etc/resolv.conf}:
++ * <pre>
++ * nameserver 127.0.0.1
++ * nameserver 2001:4860:4860::8888
++ * nameserver [::1]:5353
++ * nameserver 127.0.0.1:5353
++ * </pre>
++ *
++ * Then, run this test as manual jtreg test.
++ *
++ * @author Severin Gehwolf
++ *
++ */
++public class IPv6NameserverPlatformParsingTest {
++
++ private static boolean foundIPv6 = false;
++
++ public static void main(String[] args) {
++ Hashtable<String, String> env = new Hashtable<>();
++ env.put(Context.INITIAL_CONTEXT_FACTORY,
com.sun.jndi.dns.DnsContextFactory.class.getName());
++
++ String[] servers;
++ try {
++ Context ctx = NamingManager.getInitialContext(env);
++ if (!com.sun.jndi.dns.DnsContextFactory.platformServersAvailable()) {
++ throw new RuntimeException("FAIL: no platform servers available,
test does not make sense");
++ }
++ DnsContext context = (DnsContext)ctx;
++ servers = getServersFromContext(context);
++ } catch (NamingException e) {
++ throw new RuntimeException(e);
++ }
++ for (String server: servers) {
++ System.out.println("DEBUG: 'nameserver = " + server +
"'");
++ if (server.indexOf(':') >= 0 &&
server.indexOf('.') < 0) {
++ System.out.println("DEBUG: ==> Found IPv6 address in servers
list: " + server);
++ foundIPv6 = true;
++ }
++ }
++ try {
++ new com.sun.jndi.dns.DnsClient(servers, 100, 1);
++ } catch (NumberFormatException e) {
++ throw new RuntimeException("FAIL: Tried to parse non-[]-encapsulated
IPv6 address.", e);
++ } catch (Exception e) {
++ throw new RuntimeException("ERROR: Something unexpected
happened.");
++ }
++ if (!foundIPv6) {
++ // This is a manual test, since it requires changing /etc/resolv.conf on
Linux/Unix
++ // platforms. See comment as to how to run this test.
++ throw new RuntimeException("ERROR: No IPv6 address returned from
platform.");
++ }
++ System.out.println("PASS: Found IPv6 address and DnsClient parsed it
correctly.");
++ }
++
++ private static String[] getServersFromContext(DnsContext context) {
++ try {
++ Field serversField =
DnsContext.class.getDeclaredField("servers");
++ serversField.setAccessible(true);
++ return (String[])serversField.get(context);
++ } catch (Exception e) {
++ throw new RuntimeException(e);
++ }
++ }
++
++}
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 70847fb..1c17ffd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -641,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 35.%{buildver}%{?dist}
+Release: 36.%{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
@@ -726,13 +726,13 @@ Patch204: zero-interpreter-fix.patch
Patch300: jstack-pr1845.patch
-# Fixed in upstream 9. See upstream bug:
+# Fixed upstream. Can be removed with u60. See upstream bug:
#
https://bugs.openjdk.java.net/browse/JDK-8064815
Patch400: ppc_stack_overflow_fix.patch
-# Fixed in upstream 9. See upstream bug:
+# Fixed upstream. Can be removed with u60. See upstream bug:
#
https://bugs.openjdk.java.net/browse/JDK-8067330
Patch401: fix_ZERO_ARCHDEF_ppc.patch
-# Fixed in upstream 9. See upstream bug:
+# Fixed upstream. Can be removed with u60. See upstream bug:
#
https://bugs.openjdk.java.net/browse/JDK-8067331
Patch402: atomic_linux_zero.inline.hpp.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
@@ -742,6 +742,10 @@ Patch403: rhbz1206656_fix_current_stack_pointer.patch
Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
Patch502: 1182694_javaApplicationMenuMisbehave.patch
Patch503: d318d83c4e74.patch
+# Patch for upstream JDK-6991580 (RHBZ#1210739). Can be removed with u60
+Patch504: 1210739_dns_naming_ipv6_addresses.patch
+# Patch for upstream JDK-8078666 (RHBZ#1208369)
+Patch505: 1208369_memory_leak_gcc5.patch
Patch9999: enableArm64.patch
@@ -1023,7 +1027,6 @@ sh %{SOURCE12}
%endif
# Zero PPC fixes.
-# TODO: propose them upstream
%patch400
%patch401
%patch402
@@ -1039,6 +1042,8 @@ tar xzf %{SOURCE8}
%patch501
%patch502
%patch503
+%patch504
+%patch505
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
@@ -1091,8 +1096,7 @@ export CFLAGS="$CFLAGS -mieee"
EXTRA_CFLAGS="-fstack-protector-strong"
# Disable various optimizations to fix miscompliation. See:
# -
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-# -
https://bugzilla.redhat.com/show_bug.cgi?id=1208369
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -fno-tree-vrp"
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize"
EXTRA_CPP_FLAGS="-fno-devirtualize -fno-tree-vrp"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
@@ -1721,6 +1725,13 @@ end
%endif
%changelog
+* Wed Apr 29 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.45-36.b13
+- Patch hotspot to not use undefined code rather than passing
+ -fno-tree-vrp via CFLAGS.
+ Resolves: RHBZ#1208369
+- Add upstream patch for DNS nameserver issue with IPv6 addresses.
+ Resolves: RHBZ#1210739
+
* Wed Apr 29 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-35.b13
- Omit jsa files from power64 file list as well, as they are never generated
- moved to boot build by openjdk8
commit 04107ec89f1b43a0e1bfc336f7ada6de30a8964f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 29 16:56:46 2015 +0200
Mior sync with rhel7
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7f554b8..70847fb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -63,9 +63,12 @@
%ifarch ppc
%global archinstall ppc
%endif
-%ifarch %{power64}
+%ifarch %{ppc64be}
%global archinstall ppc64
%endif
+%ifarch %{ppc64le}
+%global archinstall ppc64le
+%endif
%ifarch %{ix86}
%global archinstall i386
%endif
@@ -169,7 +172,8 @@ exit 0
# FIXME: identical binaries are copied, not linked. This needs to be
# fixed upstream.
%ifarch %{jit_arches}
-%ifnarch %{ppc64le}
+# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
+%ifnarch %{power64}
#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
%{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
@@ -428,9 +432,11 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
%{_jvmdir}/%{jredir %%1}/lib/audio/
%ifarch %{jit_arches}
+%ifnarch %{power64}
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/server/classes.jsa
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/client/classes.jsa
%endif
+%endif
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/
}
@@ -635,7 +641,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 32.%{buildver}%{?dist}
+Release: 35.%{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
@@ -971,6 +977,7 @@ if [ $prioritylength -ne 7 ] ; then
echo "priority must be 7 digits in total, violated"
exit 14
fi
+ln -s jdk8 openjdk
%ifarch %{aarch64}
pushd jdk8
rm -r hotspot
@@ -1113,9 +1120,6 @@ pushd %{buildoutputdir $suffix}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
-%endif
-%ifarch %{ppc64le}
- --with-jvm-interpreter=cpp \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
@@ -1717,6 +1721,11 @@ end
%endif
%changelog
+* Wed Apr 29 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-35.b13
+- Omit jsa files from power64 file list as well, as they are never generated
+- moved to boot build by openjdk8
+- Use the template interpreter on ppc64le
+
* Fri Apr 10 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-31.b13
- repacked sources
commit 561a25ac780b6ee24370761de0609ab95e575571
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Apr 16 10:49:55 2015 +0200
Pleasen changelog enter the commit message for your changes. Lines starting
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c7c7fcb..7f554b8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1729,7 +1729,7 @@ end
- renamed remove-intree-libraries.sh -> java-1.8.0-openjdk-remove-intree-libraries.sh
- renamed to preven conflix with jdk7
-* Tue Apr 03 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
+* Fri Apr 03 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
- Add -fno-tree-vrp to flags to prevent hotspot miscompilation.
- Resolves: RHBZ#1208369
commit a63918ba3cdbc5d4c0baf87a5b1bc39360bd8980
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 15 17:17:20 2015 +0200
Bumped release, rebuilding by itself
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index eb82878..c7c7fcb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 31.%{buildver}%{?dist}
+Release: 32.%{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
commit 48c33d71e3283645838848b7437a69555290275c
Merge: f3b2292 9204002
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 15 09:13:36 2015 +0200
Merge branch 'master' of
ssh://pkgs.fedoraproject.org/java-1.8.0-openjdk
Conflicts:
java-1.8.0-openjdk.spec
commit f3b229270bc2d341da0047184cc0f908e43d91b8
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 15 09:11:21 2015 +0200
updated to security u45
- removed patch6: disable-doclint-by-default.patch
- added patch d318d83c4e74.patch
- added rhbz1206656_fix_current_stack_pointer.patch
- renamed PStack-808293.patch -> java-1.8.0-openjdk-PStack-808293.patch
- renamed remove-intree-libraries.sh ->
java-1.8.0-openjdk-remove-intree-libraries.sh
- renamed to preven conflix with jdk7
diff --git a/.gitignore b/.gitignore
index 3d21ae8..3d3bb75 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,11 +29,13 @@
/jdk8u-jdk8u40-b01.tar.xz
/jdk8u-jdk8u40-b02.tar.xz
/jdk8u-jdk8u20-b26.tar.xz
+/jdk8u-jdk8u25-b17.tar.xz
/aarch64-hotspot-jdk8u40-b02.tar.xz
/aarch64-hotspot-jdk8u40-b02-c6375c27cbfa.tar.xz
/aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
-/jdk8-jdk8u40-b12-aarch64.tar.xz
-/jdk8u-jdk8u40-b12.tar.xz
+/aarch64-hotspot-jdk8u40-b04-d0ea7bcfcd8c.tar.xz
/jdk8-jdk8u40-b12-aarch64-1263.tar.xz
-/jdk8u40-jdk8u40-b25.tar.xz
-/jdk8-jdk8u40-b25-aarch64-jdk8u40-b25.tar.xz
+/jdk8-jdk8u40-b12-aarch64-hs3135441ed942.tar.xz
+/jdk8u-jdk8u31-b13.tar.xz
+/jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
+/jdk8u45-jdk8u45-b13.tar.xz
diff --git a/d318d83c4e74.patch b/d318d83c4e74.patch
new file mode 100644
index 0000000..51cd4b9
--- /dev/null
+++ b/d318d83c4e74.patch
@@ -0,0 +1,114 @@
+--- 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 @@
+ /*
+ * 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 @@
+
+ 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)");
+ }
+
+ // 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 @@
+ /*
+ * 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 @@
+
+ private static void checkKeySize(int keysize)
+ throws InvalidAlgorithmParameterException {
+- 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");
+ }
+ }
+
+--- 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 @@
+ // 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
+- if ((keySize != 2048) &&
++ if ((keySize != 2048) && (keySize != 4096) &&
+ ((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");
+ }
+ }
+ }
+--- 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 @@
+ /*
+ * 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),
+- twenty48(2048);
++ twenty48(2048), forty96(4096);
+
+ private final int intSize;
+ private final BigInteger bigIntValue;
+@@ -130,6 +131,19 @@
+ kp = kpg.generateKeyPair();
+ checkKeyPair(kp, Sizes.twenty48, Sizes.five12);
+
++ kpg.initialize(Sizes.forty96.getIntSize());
++ kp = kpg.generateKeyPair();
++ checkKeyPair(kp, Sizes.forty96, Sizes.twenty48);
++
++ publicKey = (DHPublicKey)kp.getPublic();
++ p = publicKey.getParams().getP();
++ g = publicKey.getParams().getG();
++
++ // test w/ all values specified
++ kpg.initialize(new DHParameterSpec(p, g, Sizes.ten24.getIntSize()));
++ kp = kpg.generateKeyPair();
++ checkKeyPair(kp, Sizes.forty96, Sizes.ten24);
++
+ System.out.println("OK");
+ }
+
+
diff --git a/disable-doclint-by-default.patch b/disable-doclint-by-default.patch
deleted file mode 100644
index 11e7896..0000000
--- a/disable-doclint-by-default.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Disable doclint by default
-
-OpenJDK 8 adds and enables doclint by default. This catches issues in
-javadoc comments. It is too strict, breaks javadoc compilation and, in
-general, breaks the build for old code known to build with previous
-versions of OpenJDK.
-
-See:
http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
-See:
https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150...
-
-Author: Andrew John Hughes <ahughes(a)redhat.com>
-Author: Emmanuel Bourg <ebourg(a)apache.org>
---- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
-+++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
-@@ -811,10 +811,9 @@
- doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION :
DocLint.XMSGS_CUSTOM_PREFIX + opt);
- }
-
-- if (doclintOpts.isEmpty()) {
-- doclintOpts.add(DocLint.XMSGS_OPTION);
-- } else if (doclintOpts.size() == 1
-- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX +
"none")) {
-+ if (doclintOpts.isEmpty() ||
-+ (doclintOpts.size() == 1
-+ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX +
"none"))) {
- return;
- }
-
---- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java
-+++ jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java
-@@ -130,12 +130,12 @@
- };
-
- test(Collections.<String>emptyList(),
-- Main.Result.ERROR,
-- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A));
-+ Main.Result.OK,
-+ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
-
- test(Arrays.asList(rawDiags),
-- Main.Result.ERROR,
-- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12));
-+ Main.Result.OK,
-+ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
-
- test(Arrays.asList("-Xdoclint:none"),
- Main.Result.OK,
-@@ -158,8 +158,8 @@
- EnumSet.of(Message.DL_WRN12));
-
- test(Arrays.asList(rawDiags, "-private"),
-- Main.Result.ERROR,
-- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12));
-+ Main.Result.OK,
-+ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
-
- test(Arrays.asList(rawDiags, "-Xdoclint:syntax",
"-private"),
- Main.Result.ERROR,
diff --git a/PStack-808293.patch b/java-1.8.0-openjdk-PStack-808293.patch
similarity index 100%
rename from PStack-808293.patch
rename to java-1.8.0-openjdk-PStack-808293.patch
diff --git a/remove-intree-libraries.sh b/java-1.8.0-openjdk-remove-intree-libraries.sh
similarity index 100%
rename from remove-intree-libraries.sh
rename to java-1.8.0-openjdk-remove-intree-libraries.sh
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4183243..eb82878 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -113,11 +113,11 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 40
-%global buildver b25
-%global aarch64_updatever 40
-%global aarch64_buildver b25
-%global aarch64_changesetid aarch64-jdk8u40-b25
+%global updatever 45
+%global buildver b13
+%global aarch64_updatever 45
+%global aarch64_buildver b13
+%global aarch64_changesetid aarch64-jdk8u45-b13
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 27.%{buildver}%{?dist}
+Release: 31.%{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
@@ -645,6 +645,7 @@ Release: 27.%{buildver}%{?dist}
# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
+
Epoch: 1
Summary: OpenJDK Runtime Environment
Group: Development/Languages
@@ -655,7 +656,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
-Source0: jdk8u40-jdk8u%{updatever}-%{buildver}.tar.xz
+Source0: jdk8u45-jdk8u%{updatever}-%{buildver}.tar.xz
Source1:
jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
@@ -675,7 +676,7 @@ Source10: policytool.desktop.in
Source11: nss.cfg
# Removed libraries that we link instead
-Source12: remove-intree-libraries.sh
+Source12: %{name}-remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
@@ -694,11 +695,9 @@ Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
# RHBZ 808293
-Patch4: PStack-808293.patch
+Patch4: %{name}-PStack-808293.patch
# Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
-# Disable doclint for compatibility
-Patch6: disable-doclint-by-default.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
# Problem discovered with make 4.0
@@ -721,15 +720,22 @@ Patch204: zero-interpreter-fix.patch
Patch300: jstack-pr1845.patch
+# Fixed in upstream 9. See upstream bug:
+#
https://bugs.openjdk.java.net/browse/JDK-8064815
Patch400: ppc_stack_overflow_fix.patch
+# Fixed in upstream 9. See upstream bug:
+#
https://bugs.openjdk.java.net/browse/JDK-8067330
Patch401: fix_ZERO_ARCHDEF_ppc.patch
+# Fixed in upstream 9. See upstream bug:
+#
https://bugs.openjdk.java.net/browse/JDK-8067331
Patch402: atomic_linux_zero.inline.hpp.patch
# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
Patch403: rhbz1206656_fix_current_stack_pointer.patch
-#both upstreamed, will fly away in u60
+#both upstreamed, will fly away in u60 (bug IDs are Red Hat bug IDs)
Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
Patch502: 1182694_javaApplicationMenuMisbehave.patch
+Patch503: d318d83c4e74.patch
Patch9999: enableArm64.patch
@@ -985,9 +991,8 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
-%ifarch %{aarch64}
+# Add AArch64 support to configure & JDK build
%patch9999
-%endif
%patch201
%patch202
@@ -1000,7 +1005,6 @@ sh %{SOURCE12}
%patch3
%patch4
%patch5
-%patch6
%patch7
%patch12
%patch13
@@ -1027,6 +1031,7 @@ tar xzf %{SOURCE8}
%patch501
%patch502
+%patch503
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
@@ -1048,7 +1053,7 @@ for suffix in %{build_loop} ; do
done
done
# systemtap tapsets ends
-%endif
+%endif
# Prepare desktop files
for suffix in %{build_loop} ; do
@@ -1077,9 +1082,11 @@ export CFLAGS="$CFLAGS -mieee"
%endif
EXTRA_CFLAGS="-fstack-protector-strong"
-#see
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -Wno-return-local-addr"
-EXTRA_CPP_FLAGS="-fno-devirtualize -Wno-return-local-addr"
+# Disable various optimizations to fix miscompliation. See:
+# -
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
+# -
https://bugzilla.redhat.com/show_bug.cgi?id=1208369
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -fno-tree-vrp"
+EXTRA_CPP_FLAGS="-fno-devirtualize -fno-tree-vrp"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
@@ -1130,6 +1137,9 @@ bash ../../configure \
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-num-cores="$NUM_PROC"
+cat spec.gmk
+cat hotspot-spec.gmk
+
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
@@ -1706,8 +1716,23 @@ end
%{files_accessibility %{debug_suffix_unquoted}}
%endif
-
%changelog
+* Fri Apr 10 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-31.b13
+- repacked sources
+
+* Tue Apr 07 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-30.b13
+- updated to security u45
+- removed patch6: disable-doclint-by-default.patch
+- added patch d318d83c4e74.patch
+- added rhbz1206656_fix_current_stack_pointer.patch
+- renamed PStack-808293.patch -> java-1.8.0-openjdk-PStack-808293.patch
+- renamed remove-intree-libraries.sh -> java-1.8.0-openjdk-remove-intree-libraries.sh
+- renamed to preven conflix with jdk7
+
+* Tue Apr 03 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
+- Add -fno-tree-vrp to flags to prevent hotspot miscompilation.
+- Resolves: RHBZ#1208369
+
* Thu Apr 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-27.b25
- bumped release. Needed rebuild by itself on arm
diff --git a/sources b/sources
index 98f5734..313ebc1 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-3a7c67223ec3d78d5d36f3ead9d37718 jdk8u40-jdk8u40-b25.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-affef71503099bc136b7066f9aa083a8 jdk8-jdk8u40-b25-aarch64-jdk8u40-b25.tar.xz
+753feced879e36b1250fb37aa45cea75 jdk8-jdk8u45-b13-aarch64-jdk8u45-b13.tar.xz
+44789f3467fc8df3c82946dd0db097a6 jdk8u45-jdk8u45-b13.tar.xz
commit 9204002755f6e583e6d783be49337149d1c80304
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Apr 14 20:47:26 2015 -0400
Add -fno-tree-vrp to cflags to fix miscompilation
Resolves: RHBZ#120836
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4183243..52da0db 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1077,9 +1077,11 @@ export CFLAGS="$CFLAGS -mieee"
%endif
EXTRA_CFLAGS="-fstack-protector-strong"
-#see
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -Wno-return-local-addr"
-EXTRA_CPP_FLAGS="-fno-devirtualize -Wno-return-local-addr"
+# Disable various optimizations to fix miscompliation. See:
+# -
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
+# -
https://bugzilla.redhat.com/show_bug.cgi?id=1208369
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -fno-tree-vrp"
+EXTRA_CPP_FLAGS="-fno-devirtualize -fno-tree-vrp"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
@@ -1708,6 +1710,10 @@ end
%changelog
+* Tue Apr 14 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
+- Add -fno-tree-vrp to flags to prevent hotspot miscompilation.
+- Resolves: RHBZ#1208369
+
* Thu Apr 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-27.b25
- bumped release. Needed rebuild by itself on arm
commit 63b333f1af45531230039ade82df2b3b17f8edaf
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Apr 2 09:33:46 2015 +0200
bumped release. Needed rebuild by itself on arm
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bdd19f2..4183243 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 26.%{buildver}%{?dist}
+Release: 27.%{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
@@ -1708,6 +1708,9 @@ end
%changelog
+* Thu Apr 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-27.b25
+- bumped release. Needed rebuild by itself on arm
+
* Tue Mar 31 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-26.b25
- Make Zero build-able on ARM32.
Resolves: RHBZ#1206656
commit c03c9ca31b784825581a489ea30544d5f0f56181
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Apr 1 16:51:17 2015 +0200
Added rhbz1206656_fix_current_stack_pointer.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 748a8ed..bdd19f2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 25.%{buildver}%{?dist}
+Release: 26.%{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
@@ -724,6 +724,8 @@ Patch300: jstack-pr1845.patch
Patch400: ppc_stack_overflow_fix.patch
Patch401: fix_ZERO_ARCHDEF_ppc.patch
Patch402: atomic_linux_zero.inline.hpp.patch
+# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656
+Patch403: rhbz1206656_fix_current_stack_pointer.patch
#both upstreamed, will fly away in u60
Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
@@ -1014,6 +1016,7 @@ sh %{SOURCE12}
%patch400
%patch401
%patch402
+%patch403
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -1705,6 +1708,10 @@ end
%changelog
+* Tue Mar 31 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-26.b25
+- Make Zero build-able on ARM32.
+ Resolves: RHBZ#1206656
+
* Fri Mar 27 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-25.b25
- refresh s390 patches
diff --git a/rhbz1206656_fix_current_stack_pointer.patch
b/rhbz1206656_fix_current_stack_pointer.patch
new file mode 100644
index 0000000..dbefaef
--- /dev/null
+++ b/rhbz1206656_fix_current_stack_pointer.patch
@@ -0,0 +1,14 @@
+diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -55,8 +55,8 @@
+ #include "utilities/vmError.hpp"
+
+ address os::current_stack_pointer() {
+- address dummy = (address) &dummy;
+- return dummy;
++ // return the address of the current function
++ return (address)__builtin_frame_address(0);
+ }
+
+ frame os::get_sender_for_C_frame(frame* fr) {
commit 81de33fb364278946a8dcb24d50858e936494369
Author: Dan Horák <dan(a)danny.cz>
Date: Fri Mar 27 14:34:42 2015 +0100
- refresh s390 patches
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 6a24ccc..eb6aea5 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -1,6 +1,6 @@
diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-01-09
15:57:32.423809100 -0500
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-03-23
12:58:50.138672164 +0100
@@ -2659,7 +2659,7 @@ void CFLS_LAB::get_from_global_pool(size
if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
@@ -11,9 +11,9 @@ 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.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-01-09
15:57:32.423809100 -0500
-@@ -951,7 +951,7 @@ void ConcurrentMarkSweepGeneration::comp
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-03-23
12:58:50.141672172 +0100
+@@ -957,7 +957,7 @@ void ConcurrentMarkSweepGeneration::comp
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: ");
-@@ -6569,7 +6569,7 @@ void CMSCollector::reset(bool asynch) {
+@@ -6575,7 +6575,7 @@ void CMSCollector::reset(bool asynch) {
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() &&
-@@ -6868,7 +6868,7 @@ void CMSMarkStack::expand() {
+@@ -6874,7 +6874,7 @@ void CMSMarkStack::expand() {
return;
}
// Double capacity if possible
@@ -41,9 +41,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurr
// 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.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-01-09
15:57:32.423809100 -0500
-@@ -3891,7 +3891,7 @@ void CMTask::drain_local_queue(bool part
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-03-23
12:58:50.143672177 +0100
+@@ -3902,7 +3902,7 @@ void CMTask::drain_local_queue(bool part
// 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.s390
} else {
target_size = 0;
}
-@@ -4717,7 +4717,7 @@ size_t G1PrintRegionLivenessInfoClosure:
+@@ -4728,7 +4728,7 @@ size_t G1PrintRegionLivenessInfoClosure:
// The > 0 check is to deal with the prev and next live bytes which
// could be 0.
if (*hum_bytes > 0) {
@@ -62,9 +62,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390
}
return bytes;
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-01-09
15:57:32.423809100 -0500
-@@ -1737,7 +1737,7 @@ HeapWord* G1CollectedHeap::expand_and_al
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-03-23
12:58:50.144672180 +0100
+@@ -1738,7 +1738,7 @@ HeapWord* G1CollectedHeap::expand_and_al
verify_region_sets_optional();
@@ -74,8 +74,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390
"attempt heap expansion",
ergo_format_reason("allocation request failed")
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-01-09
16:12:23.063809100 -0500
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-01-09
16:13:02.213809100 -0500
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-03-23
12:58:50.145672183 +0100
@@ -38,7 +38,7 @@ G1StringDedupQueue::G1StringDedupQueue()
_cancel(false),
_empty(true),
@@ -86,8 +86,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s
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.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-01-09
16:13:29.713809100 -0500
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-01-09
16:13:57.713809100 -0500
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-03-23
12:58:50.145672183 +0100
@@ -110,7 +110,7 @@ public:
};
@@ -98,8 +98,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s
}
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-01-09
16:14:57.193809100 -0500
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-01-09
16:15:41.163809100 -0500
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-03-23
12:58:50.146672185 +0100
@@ -147,7 +147,7 @@ void HeapRegion::setup_heap_region_size(
if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
@@ -110,8 +110,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 jdk8
int region_size_log = log2_long((jlong) region_size);
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-01-09
16:16:27.533809100 -0500
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-03-23
12:58:50.146672185 +0100
@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
@@ -122,8 +122,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s39
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-01-09
15:57:32.423809100 -0500
+---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-03-23
12:58:50.146672185 +0100
@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_space
void PSParallelCompact::initialize_dead_wood_limiter()
{
@@ -136,8 +136,8 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallel
DEBUG_ONLY(_dwl_initialized = true;)
_dwl_adjustment = normal_distribution(1.0);
diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-01-09
15:57:32.423809100 -0500
+---
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-03-23
12:58:50.147672188 +0100
@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf
const size_t num_overflow_elems = of_stack->size();
const size_t space_available = queue->max_elems() - queue->size();
@@ -148,9 +148,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
// Transfer the most recent num_take_elems from the overflow
// stack to our work queue.
diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-09 16:05:36.093809100
-0500
-@@ -389,7 +389,7 @@ void TwoGenerationCollectorPolicy::initi
+--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-03-23 12:58:50.147672188
+0100
+@@ -385,7 +385,7 @@ void TwoGenerationCollectorPolicy::initi
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);
@@ -159,7 +159,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/
_initial_gen0_size = NewSize;
// OldSize is already aligned because above we aligned MaxHeapSize to
-@@ -437,7 +437,7 @@ void GenCollectorPolicy::initialize_size
+@@ -433,7 +433,7 @@ void GenCollectorPolicy::initialize_size
// yield a size that is too small) and bound it by MaxNewSize above.
// Ergonomics plays here by previously calculating the desired
// NewSize and MaxNewSize.
@@ -168,7 +168,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/
}
assert(max_new_size > 0, "All paths should set max_new_size");
-@@ -459,24 +459,23 @@ void GenCollectorPolicy::initialize_size
+@@ -455,24 +455,23 @@ void GenCollectorPolicy::initialize_size
// lower limit.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
@@ -198,7 +198,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/
assert(_min_gen0_size > 0, "Sanity check");
_initial_gen0_size = desired_new_size;
-@@ -577,7 +576,7 @@ void TwoGenerationCollectorPolicy::initi
+@@ -573,7 +572,7 @@ void TwoGenerationCollectorPolicy::initi
} else {
// It's been explicitly set on the command line. Use the
// OldSize and then determine the consequences.
@@ -208,8 +208,8 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/
// If the user has explicitly set an OldSize that is inconsistent
diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390
jdk8/hotspot/src/share/vm/memory/metaspace.cpp
---- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2014-10-23 18:32:14.000000000
-0400
-+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-01-09 16:18:54.233809100 -0500
+--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2015-02-04 21:14:39.000000000
+0100
++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-03-23 12:58:50.147672188 +0100
@@ -1455,7 +1455,7 @@ void MetaspaceGC::initialize() {
void MetaspaceGC::post_initialize() {
@@ -237,7 +237,7 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390
jdk8/hotspot/src/sh
if (PrintGCDetails && Verbose) {
gclog_or_tty->print_cr(" "
" maximum_free_percentage: %6.2f"
-@@ -3235,7 +3235,7 @@ void Metaspace::global_initialize() {
+@@ -3245,7 +3245,7 @@ void Metaspace::global_initialize() {
// 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,
@@ -247,20 +247,28 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390
jdk8/hotspot/src/sh
// 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.s390
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-01-09
15:57:32.423809100 -0500
-@@ -238,7 +238,7 @@ size_t ThreadLocalAllocBuffer::initial_d
- size_t init_sz;
+--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-03-23
12:58:50.148672191 +0100
+@@ -238,13 +238,13 @@ size_t ThreadLocalAllocBuffer::initial_d
+ size_t init_sz = 0;
if (TLABSize > 0) {
-- init_sz = MIN2(TLABSize / HeapWordSize, max_size());
-+ init_sz = MIN2((size_t)(TLABSize / HeapWordSize), max_size());
- } else if (global_stats() == NULL) {
- // Startup issue - main thread initialized before heap initialized.
- init_sz = min_size();
+- init_sz = TLABSize / HeapWordSize;
++ init_sz = (size_t)(TLABSize / HeapWordSize);
+ } else if (global_stats() != NULL) {
+ // Initial size is a function of the average number of allocating threads.
+ unsigned nof_threads = global_stats()->allocating_threads_avg();
+
+- init_sz = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
+- (nof_threads * target_refills());
++ init_sz = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize)
/
++ (nof_threads * target_refills()));
+ 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.s390
jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2014-10-23
18:32:14.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-01-09 15:57:32.423809100
-0500
+--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2015-02-04
21:14:39.000000000 +0100
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-03-23 12:58:50.148672191
+0100
@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -280,9 +288,9 @@ diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390
jdk8/hotsp
T* const base = (T*)a->base();
T* const beg = base + beg_index;
diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390
jdk8/hotspot/src/share/vm/runtime/arguments.cpp
---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2014-10-23 18:32:14.000000000
-0400
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-01-09 15:57:32.423809100 -0500
-@@ -1250,7 +1250,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2015-02-04 21:14:39.000000000
+0100
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-03-23 12:58:50.148672191 +0100
+@@ -1277,7 +1277,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// 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
@@ -291,7 +299,7 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390
jdk8/hotspot/src/s
} else {
FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
}
-@@ -1275,8 +1275,8 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1302,8 +1302,8 @@ void Arguments::set_cms_and_parnew_gc_fl
// Unless explicitly requested otherwise, make young gen
// at least min_new, and at most preferred_max_new_size.
if (FLAG_IS_DEFAULT(NewSize)) {
@@ -302,7 +310,7 @@ diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390
jdk8/hotspot/src/s
if (PrintGCDetails && Verbose) {
// Too early to use gclog_or_tty
tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1286,7 +1286,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1313,7 +1313,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 107fc8c..748a8ed 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 24.%{buildver}%{?dist}
+Release: 25.%{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
@@ -1705,6 +1705,9 @@ end
%changelog
+* Fri Mar 27 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-25.b25
+- refresh s390 patches
+
* Fri Mar 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-24.b25
- added patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
- added patch502 1182694_javaApplicationMenuMisbehave.patch
commit 9710a8e4f5f22fc9ae63ecf55afe0ccf32414944
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Mar 27 13:04:20 2015 +0100
Sync with f21
diff --git
a/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
b/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
new file mode 100644
index 0000000..ab6c3b6
--- /dev/null
+++ b/1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
@@ -0,0 +1,148 @@
+
+# HG changeset patch
+# User neugens
+# Date 1421686672 -3600
+# Node ID 868404fc8be0163f50c242f473ecfbe4eccfe519
+# Parent 36c8318010acb190176744eb0a67a321ae23e711
+8067364: Printing to Postscript doesn't support dieresis
+Summary: Fix regression caused by fix for 8023990
+Reviewed-by: bae, prr
+Contributed-by: neugens(a)redhat.com, philip.race(a)oracle.com
+
+diff -r 36c8318010ac -r 868404fc8be0
src/solaris/classes/sun/font/FcFontConfiguration.java
+--- jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Tue Dec 16 19:46:22
2014 +0000
++++ jdk8/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Mon Jan 19 17:57:52
2015 +0100
+@@ -180,7 +180,7 @@
+ String[] componentFaceNames = cfi[idx].getComponentFaceNames();
+ FontDescriptor[] ret = new FontDescriptor[componentFaceNames.length];
+ for (int i = 0; i < componentFaceNames.length; i++) {
+- ret[i] = new FontDescriptor(componentFaceNames[i],
StandardCharsets.UTF_8.newEncoder(), new int[0]);
++ ret[i] = new FontDescriptor(componentFaceNames[i],
StandardCharsets.ISO_8859_1.newEncoder(), new int[0]);
+ }
+
+ return ret;
+diff -r 36c8318010ac -r 868404fc8be0 test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ jdk8/jdk/test/javax/print/PrintSEUmlauts/PrintSEUmlauts.java Mon Jan 19 17:57:52 2015
+0100
+@@ -0,0 +1,120 @@
++/*
++ * Copyright (c) 2014, 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. Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * 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.awt.Graphics;
++import java.awt.GraphicsEnvironment;
++import java.awt.print.PageFormat;
++import java.awt.print.Printable;
++import java.io.File;
++import java.io.FileInputStream;
++import java.io.FileOutputStream;
++import java.io.IOException;
++import java.nio.charset.StandardCharsets;
++import javax.print.DocFlavor;
++import javax.print.DocPrintJob;
++import javax.print.SimpleDoc;
++import javax.print.StreamPrintService;
++import javax.print.StreamPrintServiceFactory;
++import javax.print.attribute.HashDocAttributeSet;
++import javax.print.attribute.HashPrintRequestAttributeSet;
++import javax.print.event.PrintJobAdapter;
++import javax.print.event.PrintJobEvent;
++
++/*
++ * @test
++ * @bug 8067364
++ * @summary Printing to Postscript doesn't support dieresis
++ * @build PrintSEUmlauts
++ * @run main/othervm PrintSEUmlauts
++ */
++public class PrintSEUmlauts implements Printable {
++
++ public static void main(String[] args) throws Exception {
++
++ GraphicsEnvironment.getLocalGraphicsEnvironment();
++
++ DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
++ String mime = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
++
++ StreamPrintServiceFactory[] factories =
++ StreamPrintServiceFactory.
++ lookupStreamPrintServiceFactories(flavor, mime);
++ if (factories.length == 0) {
++ System.out.println("No print service found.");
++ return;
++ }
++
++ FileOutputStream output = new FileOutputStream("out.ps");
++ StreamPrintService service = factories[0].getPrintService(output);
++
++ SimpleDoc doc =
++ new SimpleDoc(new PrintSEUmlauts(),
++ DocFlavor.SERVICE_FORMATTED.PRINTABLE,
++ new HashDocAttributeSet());
++ DocPrintJob job = service.createPrintJob();
++ job.addPrintJobListener(new PrintJobAdapter() {
++ @Override
++ public void printJobCompleted(PrintJobEvent pje) {
++ testPrintAndExit();
++ }
++ });
++
++ job.print(doc, new HashPrintRequestAttributeSet());
++ }
++
++ private static final boolean DEBUG = false;
++ private static void testPrintAndExit() {
++ String expected = "<e4> 7.44 100.0 100.0 S";
++ String content = "";
++
++ File file = new File("out.ps");
++ if (!DEBUG) {
++ file.deleteOnExit();
++ }
++
++ try (FileInputStream stream = new FileInputStream(file)) {
++ byte[] data = new byte[(int) file.length()];
++ stream.read(data);
++ content = new String(data, StandardCharsets.ISO_8859_1);
++ } catch (IOException ex) {
++ ex.printStackTrace();
++ }
++
++ if (!content.contains(expected)) {
++ System.err.println("FAIL");
++ if (DEBUG) {
++ System.err.println("printing content");
++ System.err.println(content);
++ }
++ throw new RuntimeException("Expected <e4> to represent
'ä' but not found!");
++ }
++ System.err.println("SUCCESS");
++ }
++
++ public int print(Graphics g, PageFormat pf, int pg) {
++ if (pg > 0) return NO_SUCH_PAGE;
++ g.drawString("ä", 100, 100);
++ return PAGE_EXISTS;
++ }
++}
+
diff --git a/1182694_javaApplicationMenuMisbehave.patch
b/1182694_javaApplicationMenuMisbehave.patch
new file mode 100644
index 0000000..55da997
--- /dev/null
+++ b/1182694_javaApplicationMenuMisbehave.patch
@@ -0,0 +1,232 @@
+changeset: 10519:e1ca700aaa1f
+tag: tip
+user: neugens
+date: Fri Feb 27 15:50:03 2015 +0100
+summary: 8071705: Java application menu misbehaves when running multiple screen
stacked vertically
+
+diff --git jdk8/jdk/src/share/classes/javax/swing/JMenu.java
jdk8/jdk/src/share/classes/javax/swing/JMenu.java
+--- jdk8/jdk/src/share/classes/javax/swing/JMenu.java
++++ jdk8/jdk/src/share/classes/javax/swing/JMenu.java
+@@ -475,7 +475,8 @@
+ }
+ // Then the y:
+ y = s.height + yOffset; // Prefer dropping down
+- if (position.y + y + pmSize.height >= screenBounds.height &&
++ if (position.y + y + pmSize.height >= screenBounds.height
++ + screenBounds.y &&
+ // popup doesn't fit - place it wherever there's more room
+ screenBounds.height - s.height < 2*(position.y
+ - screenBounds.y)) {
+diff --git jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
+new file mode 100644
+--- /dev/null
++++ jdk8/jdk/test/javax/swing/JMenu/8071705/bug8071705.java
+@@ -0,0 +1,207 @@
++/*
++ * Copyright (c) 2015, 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
++ * @bug 8071705
++ * @summary Java application menu misbehaves when running multiple screen stacked
vertically
++ * @build bug8071705
++ * @run main/othervm bug8071705
++ */
++
++import java.awt.Dimension;
++import java.awt.GraphicsConfiguration;
++import java.awt.GraphicsDevice;
++import java.awt.GraphicsEnvironment;
++import java.awt.Point;
++import java.awt.Rectangle;
++import java.awt.Toolkit;
++import java.awt.event.ComponentAdapter;
++import java.awt.event.ComponentEvent;
++import java.awt.event.KeyEvent;
++import java.util.concurrent.CountDownLatch;
++
++import javax.swing.JFrame;
++import javax.swing.JMenu;
++import javax.swing.JMenuBar;
++import javax.swing.JMenuItem;
++import javax.swing.JPopupMenu;
++import javax.swing.SwingUtilities;
++import javax.swing.UIManager;
++
++public class bug8071705 {
++
++ public static void main(String[] args) throws Exception {
++
++ final CountDownLatch latch = new CountDownLatch(1);
++ final boolean [] result = new boolean[1];
++
++ SwingUtilities.invokeLater(new Runnable() {
++ @Override
++ public void run() {
++ JFrame frame = createGUI();
++ GraphicsDevice[] devices = checkScreens();
++
++ // check if we have more than one and if they are stacked
++ // vertically
++ GraphicsDevice device = checkConfigs(devices);
++ if (device == null) {
++ // just pass the test
++ frame.dispose();
++ result[0] = true;
++ latch.countDown();
++ } else {
++ FrameListener listener =
++ new FrameListener(device, latch, result);
++ frame.addComponentListener(listener);
++ frame.setVisible(true);
++ }
++ }
++ });
++
++ latch.await();
++
++ if (result[0] == false) {
++ throw new RuntimeException("popup menu rendered in wrong
position");
++ }
++
++ System.out.println("OK");
++ }
++
++ private static GraphicsDevice[] checkScreens() {
++ GraphicsEnvironment ge =
++ GraphicsEnvironment.getLocalGraphicsEnvironment();
++ return ge.getScreenDevices();
++ }
++
++ private static JFrame createGUI() {
++ JMenuBar menuBar = new JMenuBar();
++ JMenu menu = new JMenu("Some menu");
++ menuBar.add(menu);
++
++ for (int i = 0; i < 10; i++) {
++ menu.add(new JMenuItem("Some menu #" + i));
++ }
++
++ JFrame frame = new JFrame();
++ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
++ frame.setMinimumSize(new Dimension(200, 200));
++ frame.setJMenuBar(menuBar);
++ return frame;
++ }
++
++ private static GraphicsDevice checkConfigs(GraphicsDevice[] devices) {
++
++ GraphicsDevice correctDevice = null;
++ if (devices.length < 2) {
++ return correctDevice;
++ }
++
++ Toolkit toolkit = Toolkit.getDefaultToolkit();
++ Rectangle screenBounds = new Rectangle(toolkit.getScreenSize());
++ int halfScreen = screenBounds.height/2;
++
++ for(int i = 0; i < devices.length; i++) {
++ if(devices[i].getType() == GraphicsDevice.TYPE_RASTER_SCREEN) {
++ GraphicsConfiguration conf =
++ devices[i].getDefaultConfiguration();
++ Rectangle bounds = conf.getBounds();
++ if (bounds.y >= halfScreen) {
++ // found
++ correctDevice = devices[i];
++ break;
++ }
++ }
++ }
++ return correctDevice;
++ }
++
++ private static class FrameListener extends ComponentAdapter {
++
++ private GraphicsDevice device;
++ private CountDownLatch latch;
++ private boolean [] result;
++ public FrameListener(GraphicsDevice device,
++ CountDownLatch latch,
++ boolean [] result)
++ {
++ this.device = device;
++ this.latch = latch;
++ this.result = result;
++ }
++
++ @Override
++ public void componentShown(ComponentEvent e) {
++ JFrame frame = (JFrame) e.getComponent();
++
++ runActualTest(device, latch, frame, result);
++
++ frame.setVisible(false);
++ frame.dispose();
++ latch.countDown();
++ }
++ }
++
++ private static Rectangle setLocation(JFrame frame, GraphicsDevice device) {
++ GraphicsConfiguration conf = device.getDefaultConfiguration();
++ Rectangle bounds = conf.getBounds();
++
++ // put just below half screen
++ int x = bounds.x + bounds.width/2;
++ int y = bounds.y + bounds.height/2;
++ frame.setLocation(x, y);
++
++ return bounds;
++ }
++
++ private static void runActualTest(GraphicsDevice device,
++ CountDownLatch latch,
++ JFrame frame,
++ boolean [] result)
++ {
++ Rectangle screenBounds = setLocation(frame, device);
++ JMenu menu = frame.getJMenuBar().getMenu(0);
++ menu.doClick();
++
++ Point location = menu.getLocationOnScreen();
++ JPopupMenu pm = menu.getPopupMenu();
++ Dimension pmSize = pm.getSize();
++
++ int yOffset = UIManager.getInt("Menu.submenuPopupOffsetY");
++ int height = location.y + yOffset + pmSize.height + menu.getHeight();
++ int available = screenBounds.y + screenBounds.height - height;
++ if (available > 0) {
++ Point origin = pm.getLocationOnScreen();
++ if (origin.y < location.y) {
++ // growing upward, wrong!
++ result[0] = false;
++ } else {
++ // growing downward, ok!
++ result[0] = true;
++ }
++ } else {
++ // there is no space, growing upward would be ok, so we pass
++ result[0] = true;
++ }
++ }
++}
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index da3b4f9..107fc8c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 23.%{buildver}%{?dist}
+Release: 24.%{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
@@ -725,6 +725,11 @@ Patch400: ppc_stack_overflow_fix.patch
Patch401: fix_ZERO_ARCHDEF_ppc.patch
Patch402: atomic_linux_zero.inline.hpp.patch
+#both upstreamed, will fly away in u60
+Patch501: 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+Patch502: 1182694_javaApplicationMenuMisbehave.patch
+
+
Patch9999: enableArm64.patch
BuildRequires: autoconf
@@ -1017,6 +1022,9 @@ tar xzf %{SOURCE8}
%patch300
+%patch501
+%patch502
+
%if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
@@ -1697,6 +1705,11 @@ end
%changelog
+* Fri Mar 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-24.b25
+- added patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+- added patch502 1182694_javaApplicationMenuMisbehave.patch
+- both upstreamed, will be gone with u60
+
* Wed Mar 25 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-23.b25
- Disable various EC algorithms in configuration
commit ef7c54f52808190ccfb56eac404c4729dbc985c8
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Mar 25 14:59:21 2015 -0400
Disable various EC algorithms in configuration
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5c2f414..da3b4f9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -635,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 22.%{buildver}%{?dist}
+Release: 23.%{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
@@ -1697,6 +1697,9 @@ end
%changelog
+* Wed Mar 25 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-23.b25
+- Disable various EC algorithms in configuration
+
* Mon Mar 23 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-22.b25
- sytemtap made working for dual package
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
index 8b9ced9..9f8802d 100644
--- a/removeSunEcProvider-RH1154143.patch
+++ b/removeSunEcProvider-RH1154143.patch
@@ -21,3 +21,9 @@
#
# Sun Provider SecureRandom seed source.
+@@ -504,4 +504,4 @@
+ #
+ # Example:
+ # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
+-jdk.tls.disabledAlgorithms=SSLv3
++jdk.tls.disabledAlgorithms=SSLv3,EC,ECDHE,ECDH
commit 5d5c27d8d3cebb9e510b3c8b4d3dda37c02649e7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Mar 24 11:32:25 2015 +0100
Fixed systemtap
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 091919c..5c2f414 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -443,15 +443,9 @@ exit 0
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
-%if %{with_systemtap}
-%dir %{_jvmdir}/%{sdkdir %%1}/tapset
-%endif
%{_jvmdir}/%{sdkdir %%1}/bin/*
%{_jvmdir}/%{sdkdir %%1}/include/*
%{_jvmdir}/%{sdkdir %%1}/lib/*
-%if %{with_systemtap}
-%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
-%endif
%{_jvmjardir}/%{sdkdir %%1}
%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
@@ -485,7 +479,11 @@ exit 0
%{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1*
%{_mandir}/man1/xjc-%{uniquesuffix %%1}.1*
%if %{with_systemtap}
-%{tapsetroot}
+%dir %{tapsetroot}
+%dir %{tapsetdir}
+%{tapsetdir}/*%{version}-%{release}.%{_arch}%1.stp
+%dir %{_jvmdir}/%{sdkdir %%1}/tapset
+%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
%endif
}
@@ -637,7 +635,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 21.%{buildver}%{?dist}
+Release: 22.%{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
@@ -1219,10 +1217,16 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir
$suffix}/lib/%{archinstall}/client/
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset
# note, that uniquesuffix is in BUILD dir in this case
cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
+ tapsetFiles=`ls *.stp`
+ popd
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir $suffix}/tapset %{tapsetdir})
- ln -sf $RELATIVE/*.stp .
+ for name in $tapsetFiles ; do
+ targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
+ ln -sf $RELATIVE/$name $targetName
+ done
popd
%endif
@@ -1693,6 +1697,9 @@ end
%changelog
+* Mon Mar 23 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-22.b25
+- sytemtap made working for dual package
+
* Tue Mar 03 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-21.b25
- Added compiler no-warn-
commit 1c1ddd0dee4d903fde45318db9cdf86947158eb6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Mar 5 11:19:56 2015 +0100
Updated aarch64 sources to latest release
diff --git a/.gitignore b/.gitignore
index 0417c60..3d21ae8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@
/jdk8u-jdk8u40-b12.tar.xz
/jdk8-jdk8u40-b12-aarch64-1263.tar.xz
/jdk8u40-jdk8u40-b25.tar.xz
+/jdk8-jdk8u40-b25-aarch64-jdk8u40-b25.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0c06e47..091919c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -116,8 +116,8 @@
%global updatever 40
%global buildver b25
%global aarch64_updatever 40
-%global aarch64_buildver b12
-%global aarch64_changesetid aarch64-1263
+%global aarch64_buildver b25
+%global aarch64_changesetid aarch64-jdk8u40-b25
# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
diff --git a/sources b/sources
index 7675598..98f5734 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
3a7c67223ec3d78d5d36f3ead9d37718 jdk8u40-jdk8u40-b25.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-f3ac4f72d7563cbba4f25751056a9bc3 jdk8-jdk8u40-b12-aarch64-1263.tar.xz
+affef71503099bc136b7066f9aa083a8 jdk8-jdk8u40-b25-aarch64-jdk8u40-b25.tar.xz
commit 512fa6a17f51e71bffbef2bc651225c405c54360
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Mar 4 13:18:24 2015 +0100
Fixed Changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1aa3aec..0c06e47 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1693,6 +1693,9 @@ end
%changelog
+* Tue Mar 03 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-21.b25
+- Added compiler no-warn-
+
* Fri Feb 20 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
- Fix zero interpreter build.
commit 076fbbddc576dc3286a1e0c1aa336b3afe4f35c5
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Feb 20 15:34:10 2015 -0500
Fix zero interpreter
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a017c7f..1aa3aec 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -719,6 +719,7 @@ Patch102: %{name}-size_t.patch
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
+Patch204: zero-interpreter-fix.patch
Patch300: jstack-pr1845.patch
@@ -986,6 +987,9 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
+%ifnarch %{aarch64}
+%patch204
+%endif
%patch1
%patch3
@@ -1689,6 +1693,9 @@ end
%changelog
+* Fri Feb 20 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
+- Fix zero interpreter build.
+
* Thu Feb 12 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
- Fix building with gcc 5 by ignoring return-local-addr warning
- Include additional debugging info for java class files and test that they are
diff --git a/zero-interpreter-fix.patch b/zero-interpreter-fix.patch
new file mode 100644
index 0000000..8fdbd90
--- /dev/null
+++ b/zero-interpreter-fix.patch
@@ -0,0 +1,25 @@
+# HG changeset patch
+# User roland
+# Date 1418632606 -3600
+# Node ID a733dad6fc1e2572ed227e898da35e0053cbb7c5
+# Parent db035d4ba1bd25ac8803bb2d177cb35681eb6907
+8067231: Zero builds fails after JDK-6898462
+Summary: Interpreter::remove_activation_entry() is not defined for the C++ interpreter
+Reviewed-by: roland, coleenp
+Contributed-by: Severin Gehwolf <sgehwolf(a)redhat.com>
+
+--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014
+0300
++++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014
+0100
+@@ -394,7 +394,11 @@
+ // during deoptimization so the interpreter needs to skip it when
+ // the frame is popped.
+ thread->set_do_not_unlock_if_synchronized(true);
++#ifdef CC_INTERP
++ return (address) -1;
++#else
+ return Interpreter::remove_activation_entry();
++#endif
+ }
+
+ // Need to do this check first since when _do_not_unlock_if_synchronized
+
commit 593443de0c4785797d61e833f29eb25f05592d9e
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 13 14:35:25 2015 +0100
Fixed damngling symlink of jre exports
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d3a75b4..a017c7f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -216,7 +216,7 @@ for X in %{origin} %{javaver} ; do
--install %{_jvmdir}/jre-"$X" \\
jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} \\
--slave %{_jvmjardir}/jre-"$X" \\
- jre_"$X"_exports %{_jvmjardir}/%{jredir %%1}
+ jre_"$X"_exports %{_jvmdir}/%{jredir %%1}
done
update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} \\
commit cd57c6ee3fff443c3e4167d31a6be378a58472e6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 13 10:13:16 2015 +0100
Added explaining URLs to repack policies script and to priority check.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e8c842f..d3a75b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -953,6 +953,7 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ]
; then
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}`
if [ $prioritylength -ne 7 ] ; then
echo "priority must be 7 digits in total, violated"
diff --git a/repackReproduciblePolycies.sh b/repackReproduciblePolycies.sh
index 12b5ff6..33a46b8 100644
--- a/repackReproduciblePolycies.sh
+++ b/repackReproduciblePolycies.sh
@@ -1,4 +1,5 @@
#!/bin/sh
+#
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
commit 09b6d319b8135ea2839dfd1ab5614d713dcb3661
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Feb 13 10:02:55 2015 +0100
policytool moved to Settings
diff --git a/policytool.desktop.in b/policytool.desktop.in
index 53362af..d38b42d 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -6,5 +6,5 @@ Icon=java-1.8.0
Terminal=false
Type=Application
StartupWMClass=sun-security-tools-PolicyTool
-Categories=Java;
+Categories=Settings;Java;
Version=1.0
commit 9f31375ff638192c9bdd1a42efb8e1d6968af044
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 12 12:39:12 2015 -0500
Fix build and add more debug info
Fix building with gcc 5 by ignoring return-local-addr warning. The
warning only occurs on non-JIT architectures and is safe to ignore.
Otherwise -Werror causes the build to fail.
Include additional debugging information for java class files such as
local variables. Run tests during the build to make sure that
information is present in the final jars.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4567541..e8c842f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -637,7 +637,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 20.%{buildver}%{?dist}
+Release: 21.%{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
@@ -1064,8 +1064,8 @@ export CFLAGS="$CFLAGS -mieee"
EXTRA_CFLAGS="-fstack-protector-strong"
#see
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
-EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize"
-EXTRA_CPP_FLAGS="-fno-devirtualize"
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize -Wno-return-local-addr"
+EXTRA_CPP_FLAGS="-fno-devirtualize -Wno-return-local-addr"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
@@ -1123,6 +1123,7 @@ bash ../../configure \
make \
DEBUG_BINARIES=true \
+ JAVAC_FLAGS=-g \
STRIP_POLICY=no_strip \
POST_STRIP_CMD="" \
LOG=trace \
@@ -1170,7 +1171,17 @@ if [ -f "$ZERO_JVM" ] ; then
fi
# Check src.zip has all sources. See RHBZ#1130490
-jar -tf $JAVA_HOME/src.zip | grep Unsafe
+jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
+
+# Check class files include useful debugging information
+$JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
+$JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable
+$JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
+
+# Check generated class files include useful debugging information
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
#build cycles
done
@@ -1677,6 +1688,11 @@ end
%changelog
+* Thu Feb 12 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
+- Fix building with gcc 5 by ignoring return-local-addr warning
+- Include additional debugging info for java class files and test that they are
+ present
+
* Thu Feb 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-20.b25
- bumped to b25
- removed upstreamed patch11 hotspot-build-j-directive.patch
commit fb001ce997e7fc95c1eeca02d3ed004dc59035a1
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Feb 12 17:25:47 2015 +0100
policies repacked to stop spamming yum update, added mehanism to force priority size
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index da19277..4567541 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -118,7 +118,7 @@
%global aarch64_updatever 40
%global aarch64_buildver b12
%global aarch64_changesetid aarch64-1263
-# priority must be 6 digits in total
+# priority must be 7 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -682,6 +682,8 @@ Source12: remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
+Source20: repackReproduciblePolycies.sh
+
# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
@@ -951,6 +953,11 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ]
; then
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
+prioritylength=`expr length %{priority}`
+if [ $prioritylength -ne 7 ] ; then
+ echo "priority must be 7 digits in total, violated"
+ exit 14
+fi
%ifarch %{aarch64}
pushd jdk8
rm -r hotspot
@@ -1373,6 +1380,8 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
echo "" >> accessibility.properties
popd
+bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix} %{javaver}
+
# end, dual install
done
@@ -1671,6 +1680,9 @@ end
* Thu Feb 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-20.b25
- bumped to b25
- removed upstreamed patch11 hotspot-build-j-directive.patch
+- policies repacked to stop spamming yum update
+- added and used source20 repackReproduciblePolycies.sh
+- added mehanism to force priority size
* Fri Jan 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-19.b12
- refresh s390 patches
diff --git a/repackReproduciblePolycies.sh b/repackReproduciblePolycies.sh
new file mode 100644
index 0000000..12b5ff6
--- /dev/null
+++ b/repackReproduciblePolycies.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+M=META-INF/MANIFEST.MF
+#P=/usr/lib/jvm/java/jre/lib/security
+P=$1/lib/security
+for f in local_policy.jar US_export_policy.jar ; do
+ORIG=$P/$f
+echo "processing $f ($ORIG)"
+if [ ! -f $ORIG ]; then
+ echo "File not found!"
+ continue
+fi
+d=`mktemp -d`
+NW=$d/$f
+ pushd $d
+ jar xf $ORIG
+ cat $M
+# sed -i "s/Created-By.*/Created-By: 1.7.0/g" $M
+ sed -i "s/Created-By.*/Created-By: $2/g" $M
+ cat $M
+ find . -exec touch -t 201401010000 {} +
+ zip -rX $f *
+ popd
+ echo "replacing $ORIG"
+ md5sum $ORIG
+ sha256sum $ORIG
+ echo "by $NW"
+ md5sum $NW
+ sha256sum $NW
+ cp $NW $ORIG
+ md5sum $ORIG
+ sha256sum $ORIG
+ rm -rfv $d
+done
commit e31ecfddc324d06528f331938efbe4282276ad4c
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Feb 12 15:40:20 2015 +0100
Updated to b25
diff --git a/.gitignore b/.gitignore
index 23fda4c..0417c60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,4 @@
/jdk8-jdk8u40-b12-aarch64.tar.xz
/jdk8u-jdk8u40-b12.tar.xz
/jdk8-jdk8u40-b12-aarch64-1263.tar.xz
+/jdk8u40-jdk8u40-b25.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 72914fe..6011bbd 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -5,6 +5,7 @@
# Usage: generate_source_tarball.sh project_name repo_name tag
#
# Examples:
+# sh generate_source_tarball.sh jdk8u jdk8u40 jdk8u40-b25
# ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
diff --git a/hotspot-build-j-directive.patch b/hotspot-build-j-directive.patch
deleted file mode 100644
index 0ab9d60..0000000
--- a/hotspot-build-j-directive.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1398183426 -3600
-# Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38
-# Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01
-Don't substitute 'j' for '-j' inside -I directives
-
---- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100
-+++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100
-@@ -64,7 +64,7 @@
- echo "$MFLAGS" \
- | sed '
- s/^-/ -/
-- s/ -\([^ ][^ ]*\)j/ -\1 -j/
-+ s/ -\([^ I][^ ]*\)j/ -\1 -j/
- s/ -j[0-9][0-9]*/ -j/
- s/ -j\([^ ]\)/ -j -\1/
- s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 17c8e7f..da19277 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -114,7 +114,7 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 40
-%global buildver b12
+%global buildver b25
%global aarch64_updatever 40
%global aarch64_buildver b12
%global aarch64_changesetid aarch64-1263
@@ -637,7 +637,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 19.%{buildver}%{?dist}
+Release: 20.%{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
@@ -657,7 +657,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
-Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
+Source0: jdk8u40-jdk8u%{updatever}-%{buildver}.tar.xz
Source1:
jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
@@ -702,7 +702,6 @@ Patch6: disable-doclint-by-default.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
# Problem discovered with make 4.0
-Patch11: hotspot-build-j-directive.patch
Patch12: removeSunEcProvider-RH1154143.patch
Patch13: libjpeg-turbo-1.4-compat.patch
@@ -986,7 +985,6 @@ sh %{SOURCE12}
%patch5
%patch6
%patch7
-%patch11
%patch12
%patch13
@@ -1670,6 +1668,10 @@ end
%changelog
+* Thu Feb 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-20.b25
+- bumped to b25
+- removed upstreamed patch11 hotspot-build-j-directive.patch
+
* Fri Jan 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-19.b12
- refresh s390 patches
diff --git a/sources b/sources
index 647b374..7675598 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-130887ef910f2bcdb0a1759e3e42d9ed jdk8u-jdk8u40-b12.tar.xz
+3a7c67223ec3d78d5d36f3ead9d37718 jdk8u40-jdk8u40-b25.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
f3ac4f72d7563cbba4f25751056a9bc3 jdk8-jdk8u40-b12-aarch64-1263.tar.xz
commit 0c8dc1f91b2883451e12cbd71d4e5a991eb38201
Author: Dan Horák <dan(a)danny.cz>
Date: Fri Jan 9 18:52:29 2015 -0500
- refresh s390 patches
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
index af6063d..9e2b5b8 100644
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ b/java-1.8.0-openjdk-s390-java-opts.patch
@@ -1,19 +1,27 @@
diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4
---- jdk8/common/autoconf/boot-jdk.m4.s390 2014-03-11 16:01:27.000000000 -0400
-+++ jdk8/common/autoconf/boot-jdk.m4 2014-05-21 11:50:36.507890197 -0400
-@@ -315,12 +315,12 @@
- fi
+--- jdk8/common/autoconf/boot-jdk.m4.s390 2014-10-28 13:10:36.000000000 -0400
++++ jdk8/common/autoconf/boot-jdk.m4 2015-01-09 15:49:45.443809100 -0500
+@@ -319,21 +319,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
+ AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
- # Minimum amount of heap memory.
-- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA])
-+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA])
- if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test
"x$OPENJDK_TARGET_CPU" = "xppc64" ; then
- # Why does macosx need more heap? Its the huge JDK batch.
- ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA])
- else
-- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA])
-+ ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA])
- fi
- # When is adding -client something that speeds up the JVM?
- # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA])
-
+ # Starting amount of heap memory.
+- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
++ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
+
+ # Maximum amount of heap memory.
+ # Maximum stack size.
+- if test "x$BUILD_NUM_BITS" = x32; then
+- JVM_MAX_HEAP=1100M
++ JVM_MAX_HEAP=768M
+ STACK_SIZE=768
+- else
+- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
+- # pointers are used. Apparently, we need to increase the heap and stack
+- # space for the jvm. More specifically, when running javac to build huge
+- # jdk batch
+- JVM_MAX_HEAP=1600M
+- STACK_SIZE=1536
+- fi
+ ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA])
+ ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
+ ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA])
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 5f39fcf..6a24ccc 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/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 2014-03-11
16:02:13.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-05-16
13:09:21.350132543 -0400
-@@ -2660,7 +2660,7 @@ void CFLS_LAB::get_from_global_pool(size
+diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -2659,7 +2659,7 @@ void CFLS_LAB::get_from_global_pool(size
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 2014-03-11
16:02:13.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-05-16
13:09:21.350132543 -0400
-@@ -949,7 +949,7 @@ void ConcurrentMarkSweepGeneration::comp
+diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -951,7 +951,7 @@ void ConcurrentMarkSweepGeneration::comp
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: ");
-@@ -6555,7 +6555,7 @@ void CMSCollector::reset(bool asynch) {
+@@ -6569,7 +6569,7 @@ void CMSCollector::reset(bool asynch) {
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() &&
-@@ -6854,7 +6854,7 @@ void CMSMarkStack::expand() {
+@@ -6868,7 +6868,7 @@ void CMSMarkStack::expand() {
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 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-05-16
13:09:21.350132543 -0400
-@@ -3745,7 +3745,7 @@ void CMTask::drain_local_queue(bool part
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -3891,7 +3891,7 @@ void CMTask::drain_local_queue(bool part
// 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;
}
-@@ -4583,7 +4583,7 @@ size_t G1PrintRegionLivenessInfoClosure:
+@@ -4717,7 +4717,7 @@ size_t G1PrintRegionLivenessInfoClosure:
// 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 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -1742,7 +1742,7 @@ HeapWord* G1CollectedHeap::expand_and_al
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -1737,7 +1737,7 @@ HeapWord* G1CollectedHeap::expand_and_al
verify_region_sets_optional();
@@ -73,34 +73,58 @@ 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/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 2014-05-16
13:35:15.150132543 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-05-16
13:35:48.090132543 -0400
-@@ -158,7 +158,7 @@ void HeapRegion::setup_heap_region_size(
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp.s390 2015-01-09
16:12:23.063809100 -0500
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2015-01-09
16:13:02.213809100 -0500
+@@ -38,7 +38,7 @@ G1StringDedupQueue::G1StringDedupQueue()
+ _cancel(false),
+ _empty(true),
+ _dropped(0) {
+- _nqueues = MAX2(ParallelGCThreads, (size_t)1);
++ _nqueues = MAX2(ParallelGCThreads, (uintx)1);
+ _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.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp.s390 2015-01-09
16:13:29.713809100 -0500
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2015-01-09
16:13:57.713809100 -0500
+@@ -110,7 +110,7 @@ public:
+ };
+
+ G1StringDedupEntryCache::G1StringDedupEntryCache() {
+- _nlists = MAX2(ParallelGCThreads, (size_t)1);
++ _nlists = MAX2(ParallelGCThreads, (uintx)1);
+ _lists = PaddedArray<G1StringDedupEntryFreeList,
mtGC>::create_unfreeable((uint)_nlists);
+ }
+
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp.s390 2015-01-09
16:14:57.193809100 -0500
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2015-01-09
16:15:41.163809100 -0500
+@@ -147,7 +147,7 @@ void HeapRegion::setup_heap_region_size(
if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
- region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER,
-- (uintx) MIN_REGION_SIZE);
-+ (size_t) MIN_REGION_SIZE);
+ region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(),
+- (uintx) HeapRegionBounds::min_size());
++ HeapRegionBounds::min_size());
}
int region_size_log = log2_long((jlong) region_size);
-diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -845,7 +845,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2015-01-09
16:16:27.533809100 -0500
+@@ -833,7 +833,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
uint HeapRegionRemSet::num_par_rem_sets() {
- return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(uint)ParallelGCThreads);
-+ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(size_t)ParallelGCThreads);
++ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
ParallelGCThreads);
}
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-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 2014-03-11
16:02:13.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -909,8 +909,8 @@ void PSParallelCompact::initialize_space
+diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -910,8 +910,8 @@ void PSParallelCompact::initialize_space
void PSParallelCompact::initialize_dead_wood_limiter()
{
const size_t max = 100;
@@ -111,10 +135,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/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 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -192,7 +192,7 @@ bool ParScanThreadState::take_from_overf
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -194,7 +194,7 @@ bool ParScanThreadState::take_from_overf
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,
@@ -123,10 +147,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/memory/collectorPolicy.cpp.size_t
jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-05-16 13:31:55.620132543
-0400
-@@ -389,7 +389,7 @@
+diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390
jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-09 16:05:36.093809100
-0500
+@@ -389,7 +389,7 @@ void TwoGenerationCollectorPolicy::initi
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);
@@ -135,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
-@@ -437,7 +437,7 @@
+@@ -437,7 +437,7 @@ void GenCollectorPolicy::initialize_size
// yield a size that is too small) and bound it by MaxNewSize above.
// Ergonomics plays here by previously calculating the desired
// NewSize and MaxNewSize.
@@ -144,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");
-@@ -459,7 +459,7 @@
+@@ -459,24 +459,23 @@ void GenCollectorPolicy::initialize_size
// lower limit.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
@@ -153,7 +177,15 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t
jdk8/hotspo
} else if (FLAG_IS_ERGO(NewSize)) {
// If NewSize is set ergonomically, we should use it as a lower
// limit, but use NewRatio to calculate the initial size.
-@@ -473,10 +473,9 @@
+ _min_gen0_size = NewSize;
+ desired_new_size =
+- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
+- max_new_size = MAX2(max_new_size, NewSize);
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);
++ max_new_size = MAX2(max_new_size, (size_t)NewSize);
+ } else {
+ // For the case where NewSize is the default, use NewRatio
+ // to size the minimum and initial generation sizes.
// Use the default NewSize as the floor for these values. If
// NewRatio is overly large, the resulting sizes can be too
// small.
@@ -166,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;
-@@ -577,7 +576,7 @@
+@@ -577,7 +576,7 @@ void TwoGenerationCollectorPolicy::initi
} else {
// It's been explicitly set on the command line. Use the
// OldSize and then determine the consequences.
@@ -175,10 +207,19 @@ 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 2014-05-16 13:40:21.870132543
-0400
-+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-05-16 13:44:26.930132543 -0400
-@@ -1424,7 +1424,7 @@ void MetaspaceGC::compute_new_size() {
+diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390
jdk8/hotspot/src/share/vm/memory/metaspace.cpp
+--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.s390 2014-10-23 18:32:14.000000000
-0400
++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2015-01-09 16:18:54.233809100 -0500
+@@ -1455,7 +1455,7 @@ void MetaspaceGC::initialize() {
+
+ void MetaspaceGC::post_initialize() {
+ // Reset the high-water mark once the VM initialization is done.
+- _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), MetaspaceSize);
++ _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), (size_t)MetaspaceSize);
+ }
+
+ bool MetaspaceGC::can_expand(size_t word_size, bool is_class) {
+@@ -1515,7 +1515,7 @@ void MetaspaceGC::compute_new_size() {
(size_t)MIN2(min_tmp, double(max_uintx));
// Don't shrink less than the initial generation size
minimum_desired_capacity = MAX2(minimum_desired_capacity,
@@ -187,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: ");
-@@ -1477,7 +1477,7 @@ void MetaspaceGC::compute_new_size() {
+@@ -1573,7 +1573,7 @@ void MetaspaceGC::compute_new_size() {
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,
@@ -196,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"
-@@ -3110,7 +3110,7 @@ void Metaspace::global_initialize() {
+@@ -3235,7 +3235,7 @@ void Metaspace::global_initialize() {
// 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,
@@ -205,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 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -232,7 +232,7 @@ size_t ThreadLocalAllocBuffer::initial_d
+diff -up jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2015-01-09
15:57:32.423809100 -0500
+@@ -238,7 +238,7 @@ size_t ThreadLocalAllocBuffer::initial_d
size_t init_sz;
if (TLABSize > 0) {
@@ -217,9 +258,9 @@ diff -up
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t jdk8
} else if (global_stats() == NULL) {
// Startup issue - main thread initialized before heap initialized.
init_sz = min_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 2014-03-11
16:02:13.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-05-16 13:09:21.360132543
-0400
+diff -up jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390
jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.s390 2014-10-23
18:32:14.000000000 -0400
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2015-01-09 15:57:32.423809100
-0500
@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -238,10 +279,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 2014-03-11 16:02:13.000000000
-0400
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-05-16 13:26:32.310132543 -0400
-@@ -1240,7 +1240,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+diff -up jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390
jdk8/hotspot/src/share/vm/runtime/arguments.cpp
+--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.s390 2014-10-23 18:32:14.000000000
-0400
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2015-01-09 15:57:32.423809100 -0500
+@@ -1250,7 +1250,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// 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
@@ -250,7 +291,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);
}
-@@ -1265,8 +1265,8 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1275,8 +1275,8 @@ void Arguments::set_cms_and_parnew_gc_fl
// Unless explicitly requested otherwise, make young gen
// at least min_new, and at most preferred_max_new_size.
if (FLAG_IS_DEFAULT(NewSize)) {
@@ -261,7 +302,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);
-@@ -1276,7 +1276,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1286,7 +1286,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 65551b5..17c8e7f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -637,7 +637,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 18.%{buildver}%{?dist}
+Release: 19.%{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
@@ -1670,6 +1670,9 @@ end
%changelog
+* Fri Jan 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-19.b12
+- refresh s390 patches
+
* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-18.b12
- updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz
commit 2a6942c8787a27da01eb2da50f2757dd9482f3a0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Dec 12 17:55:02 2014 +0100
updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz
diff --git a/.gitignore b/.gitignore
index 83c95ba..23fda4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,3 +34,4 @@
/aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
/jdk8-jdk8u40-b12-aarch64.tar.xz
/jdk8u-jdk8u40-b12.tar.xz
+/jdk8-jdk8u40-b12-aarch64-1263.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 68e724f..65551b5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,7 +117,7 @@
%global buildver b12
%global aarch64_updatever 40
%global aarch64_buildver b12
-%global aarch64_changesetid aarch64
+%global aarch64_changesetid aarch64-1263
# priority must be 6 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -637,7 +637,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 17.%{buildver}%{?dist}
+Release: 18.%{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
@@ -1670,6 +1670,9 @@ end
%changelog
+* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-18.b12
+- updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz
+
* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-17.b12
- obsoleted gcj and sindoc. rh1149674 and rh1149675
- removed backup/restore on images and docs in favor of reconfigure in different
directory
diff --git a/sources b/sources
index 4f03f59..647b374 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
130887ef910f2bcdb0a1759e3e42d9ed jdk8u-jdk8u40-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-569aec261b39eff9e282792fb35cfb57 jdk8-jdk8u40-b12-aarch64.tar.xz
+f3ac4f72d7563cbba4f25751056a9bc3 jdk8-jdk8u40-b12-aarch64-1263.tar.xz
commit db0292d93bb8f9a293a47f89efa8d72fcec9bb8b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 7 14:47:04 2014 +0100
- removed backup/restore on images and docs in favor of reconfigure in different
directory
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b20c931..68e724f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -97,7 +97,6 @@
%endif
-%global buildoutputdir jdk8/build/jdk8.build
%ifarch %{jit_arches}
%global with_systemtap 1
@@ -126,7 +125,9 @@
# parametrized macros are order-sensitive
%global fullversion %{name}-%{version}-%{release}
#images stub
-%global j2sdkimage() %{expand:j2sdk-image%1}
+%global j2sdkimage j2sdk-image
+# output dir stub
+%global buildoutputdir() %{expand:jdk8/build/jdk8.build%1}
#we can copy the javadoc to not arched dir, or made it not noarch
%global uniquejavadocdir() %{expand:%{fullversion}%1}
#main id and dir of this jdk
@@ -398,9 +399,9 @@ exit 0
%global files_jre_headless() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/THIRD_PARTY_README
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}
%{_jvmdir}/%{jrelnk %%1}
%{_jvmjardir}/%{jrelnk %%1}
@@ -436,9 +437,9 @@ exit 0
%global files_devel() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/LICENSE
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/THIRD_PARTY_README
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/LICENSE
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
@@ -490,7 +491,7 @@ exit 0
%global files_demo() %{expand:
%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
%global files_src() %{expand:
@@ -502,7 +503,7 @@ exit 0
%global files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir %%1}
-%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
+%doc %{buildoutputdir %%1}/images/%{j2sdkimage}/jre/LICENSE
}
%global files_accessibility() %{expand:
@@ -1073,9 +1074,6 @@ export EXTRA_CFLAGS
bash ./autogen.sh
)
-# backup of normal image for case of dual build on
-normalBuildStore=`mktemp -d`
-
for suffix in %{build_loop} ; do
if [ "$suffix" = "%{debug_suffix}" ] ; then
debugbuild=%{debugbuild_parameter}
@@ -1083,8 +1081,8 @@ else
debugbuild=%{normalbuild_parameter}
fi
-mkdir -p %{buildoutputdir}
-pushd %{buildoutputdir}
+mkdir -p %{buildoutputdir $suffix}
+pushd %{buildoutputdir $suffix}
bash ../../configure \
%ifnarch %{jit_arches}
@@ -1128,17 +1126,17 @@ make \
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
-find images/%{j2sdkimage ""} -iname '*.jar' -exec chmod ugo+r {} \;
-chmod ugo+r images/%{j2sdkimage ""}/lib/ct.sym
+find images/%{j2sdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+chmod ugo+r images/%{j2sdkimage}/lib/ct.sym
# remove redundant *diz and *debuginfo files
-find images/%{j2sdkimage ""} -iname '*.diz' -exec rm {} \;
-find images/%{j2sdkimage ""} -iname '*.debuginfo' -exec rm {} \;
+find images/%{j2sdkimage} -iname '*.diz' -exec rm {} \;
+find images/%{j2sdkimage} -iname '*.debuginfo' -exec rm {} \;
popd >& /dev/null
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/%{j2sdkimage ""}
+export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{j2sdkimage}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
@@ -1169,29 +1167,6 @@ fi
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep Unsafe
-pushd %{buildoutputdir}
-#note, that order is normal_suffix debug_suffix (in case of both enabled)
-if [ "$suffix" = "%{debug_suffix}" ] ; then
-# debug build passed, mv it to j2sdk-image-%%{debug_suffix}
- mv images/%{j2sdkimage ""} images/%{j2sdkimage %{debug_suffix_unquoted}}
-# same with docs
- mv docs docs$suffix
-fi
-if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1 ] ; then
- if [ "$suffix" = "%{normal_suffix}" ] ; then
-# normal build just passed, and debug one is going to run. backup image and docs
- mv images/%{j2sdkimage ""} $normalBuildStore
- mv docs $normalBuildStore
- make clean
- fi
- if [ "$suffix" = "%{debug_suffix}" ] ; then
-# debug build just passed, restore normal backups (see that debug one already renamed)
- mv $normalBuildStore/%{j2sdkimage ""} images/
- mv $normalBuildStore/docs .
- fi
-fi
-popd
-
#build cycles
done
@@ -1206,7 +1181,7 @@ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
ln -s %{_datadir}/soundfonts/default.sf2
popd
-pushd %{buildoutputdir}/images/%{j2sdkimage $suffix}
+pushd %{buildoutputdir $suffix}/images/%{j2sdkimage}
#install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/
@@ -1302,7 +1277,7 @@ popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir}/docs$suffix $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
$suffix}
+cp -a %{buildoutputdir $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
$suffix}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
@@ -1697,6 +1672,7 @@ end
%changelog
* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-17.b12
- obsoleted gcj and sindoc. rh1149674 and rh1149675
+- removed backup/restore on images and docs in favor of reconfigure in different
directory
* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-16.b12
- updated both noral and aarch64 tarballs to u40b12
commit 4754647055b157759cf69f83ba0147d7006e274f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Nov 7 12:15:14 2014 +0100
obsoleted gcj and sindoc. rh1149674 and rh1149675
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 103830c..b20c931 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -533,6 +533,8 @@ Provides: java%1 = %{epoch}:%{javaver}
Provides: java-fonts%1 = %{epoch}:%{version}
Obsoletes: java-1.7.0-openjdk%1
+Obsoletes: java-1.5.0-gcj%1
+Obsoletes: sinjdoc
}
%global java_headless_rpo() %{expand:
@@ -589,6 +591,7 @@ Provides: java-devel-%{origin}%1 = %{epoch}:%{version}
Provides: java-devel%1 = %{epoch}:%{javaver}
Obsoletes: java-1.7.0-openjdk-devel%1
+Obsoletes: java-1.5.0-gcj-devel%1
}
@@ -633,7 +636,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 16.%{buildver}%{?dist}
+Release: 17.%{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
@@ -1692,6 +1695,9 @@ end
%changelog
+* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-17.b12
+- obsoleted gcj and sindoc. rh1149674 and rh1149675
+
* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-16.b12
- updated both noral and aarch64 tarballs to u40b12
commit 7f389a67e8fe45361ef3f9c84371cb8ffc899539
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 5 17:56:31 2014 +0100
Added changelog entry
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 53c1c95..103830c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -633,7 +633,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 15.%{buildver}%{?dist}
+Release: 16.%{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
@@ -1692,6 +1692,9 @@ end
%changelog
+* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-16.b12
+- updated both noral and aarch64 tarballs to u40b12
+
* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-15.b02
- enabled debug packages
- removed all provides duplicating package name
commit ae692c751394c51009e6c240b49edebfca03fa00
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 5 17:27:30 2014 +0100
Updated mian sources to u40b12
diff --git a/.gitignore b/.gitignore
index d6e37f6..83c95ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@
/aarch64-hotspot-jdk8u40-b02-c6375c27cbfa.tar.xz
/aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
/jdk8-jdk8u40-b12-aarch64.tar.xz
+/jdk8u-jdk8u40-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 95b5701..53c1c95 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -115,7 +115,7 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 40
-%global buildver b02
+%global buildver b12
%global aarch64_updatever 40
%global aarch64_buildver b12
%global aarch64_changesetid aarch64
diff --git a/sources b/sources
index 6cd89b4..4f03f59 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-78d96904ad6d9a7cee76849b0e49b6f0 jdk8u-jdk8u40-b02.tar.xz
+130887ef910f2bcdb0a1759e3e42d9ed jdk8u-jdk8u40-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
569aec261b39eff9e282792fb35cfb57 jdk8-jdk8u40-b12-aarch64.tar.xz
commit 26b1c68622a5d1fbf4b1f1cdc0809b15b1820098
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 5 16:56:02 2014 +0100
Updated aarch64 hotpost srctarball to latest tag u40b12-aarch64
diff --git a/.gitignore b/.gitignore
index f03e270..d6e37f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,4 @@
/aarch64-hotspot-jdk8u40-b02.tar.xz
/aarch64-hotspot-jdk8u40-b02-c6375c27cbfa.tar.xz
/aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
+/jdk8-jdk8u40-b12-aarch64.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 4673921..72914fe 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -46,7 +46,12 @@ rm "${VERSION}.tar.gz"
mv "${REPO_NAME}-${VERSION}" jdk8
pushd jdk8
-for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+repos="corba hotspot jdk jaxws jaxp langtools nashorn"
+if [ aarch64-port = $PROJECT_NAME ] ; then
+repos="hotspot"
+fi;
+
+for subrepo in $repos
do
wget "${REPO_ROOT}/${subrepo}/archive/${VERSION}.tar.gz"
tar xf "${VERSION}.tar.gz"
@@ -54,8 +59,9 @@ do
mv "${subrepo}-${VERSION}" "${subrepo}"
done
-rm -vr jdk/src/share/native/sun/security/ec/impl
-
+if [ -e jdk ] ; then
+ rm -vr jdk/src/share/native/sun/security/ec/impl
+fi
popd
tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e3a4e8d..95b5701 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -117,8 +117,8 @@
%global updatever 40
%global buildver b02
%global aarch64_updatever 40
-%global aarch64_buildver b04
-%global aarch64_changesetid a6df78e590bb
+%global aarch64_buildver b12
+%global aarch64_changesetid aarch64
# priority must be 6 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -654,7 +654,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1:
aarch64-hotspot-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
+Source1:
jdk8-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -944,7 +944,7 @@ else
exit 12
fi
if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
- echo "you have disabled both include_debug_build and enclude_debug_build. no
go."
+ echo "you have disabled both include_debug_build and include_debug_build. no
go."
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
diff --git a/sources b/sources
index fe8a12d..6cd89b4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
78d96904ad6d9a7cee76849b0e49b6f0 jdk8u-jdk8u40-b02.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-8a9d561065f55762cafd9f475b26cf68 aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
+569aec261b39eff9e282792fb35cfb57 jdk8-jdk8u40-b12-aarch64.tar.xz
commit 808e2ebe0d8043313b2865b801e57aed569f0b4b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Nov 5 15:17:44 2014 +0100
Fixed wrong restrore of docs, put all commnets fro files inside files section
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3ce0def..e3a4e8d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1184,7 +1184,7 @@ if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1
] ; then
if [ "$suffix" = "%{debug_suffix}" ] ; then
# debug build just passed, restore normal backups (see that debug one already renamed)
mv $normalBuildStore/%{j2sdkimage ""} images/
- mv $normalBuildStore/docs images/
+ mv $normalBuildStore/docs .
fi
fi
popd
@@ -1635,21 +1635,20 @@ end
%{postun_javadoc %{debug_suffix_unquoted}}
%endif
-# main package builds always
%if %{include_normal_build}
%files -f %{name}.files
+# main package builds always
%{files_jre %{nil}}
%else
-# placeholder
%files
-
+# placeholder
%endif
%if %{include_normal_build}
+%files headless -f %{name}.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 headless -f %{name}.files-headless
%{files_jre_headless %{nil}}
%files devel
@@ -1696,6 +1695,8 @@ end
* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-15.b02
- enabled debug packages
- removed all provides duplicating package name
+- comments about files moved inside files section (to prevent different javadoc postuns)
+ - see (RH1160693)
* Fri Oct 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-13.b02
- Build against libjpeg-turbo-1.4
commit 97dad04f69d07668a8d6903aca7572fab1a89283
Author: Jiri <jvanek(a)redhat.com>
Date: Wed Nov 5 08:51:05 2014 +0100
Duplicating docs build. Trying to woarkaround koji rpmdiff S.5.... mismatch POSTUN
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ff010d9..3ce0def 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1171,16 +1171,20 @@ pushd %{buildoutputdir}
if [ "$suffix" = "%{debug_suffix}" ] ; then
# debug build passed, mv it to j2sdk-image-%%{debug_suffix}
mv images/%{j2sdkimage ""} images/%{j2sdkimage %{debug_suffix_unquoted}}
+# same with docs
+ mv docs docs$suffix
fi
if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1 ] ; then
if [ "$suffix" = "%{normal_suffix}" ] ; then
-# normal build just passed, and debug one is going to run
+# normal build just passed, and debug one is going to run. backup image and docs
mv images/%{j2sdkimage ""} $normalBuildStore
+ mv docs $normalBuildStore
make clean
fi
if [ "$suffix" = "%{debug_suffix}" ] ; then
-# debug build just passed, restore normal one (see that debug one already renamed)
+# debug build just passed, restore normal backups (see that debug one already renamed)
mv $normalBuildStore/%{j2sdkimage ""} images/
+ mv $normalBuildStore/docs images/
fi
fi
popd
@@ -1295,7 +1299,7 @@ popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix}
+cp -a %{buildoutputdir}/docs$suffix $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
$suffix}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
commit d206016bba6c55b7c3cf1f33a102faad628b05b4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Nov 4 16:56:56 2014 +0100
uniquejavadocdir changed to parametrised macro. All calls updated
Without this, both debug and normal javadoc were going to same directory. Although
build passed, rpmlint in result packages after run fails with ...S. failure
"mischamsch" but it measn that fiels are going to same directory, but are not
identical (differetn timestamp in our case)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4c4b42d..ff010d9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -127,10 +127,10 @@
%global fullversion %{name}-%{version}-%{release}
#images stub
%global j2sdkimage() %{expand:j2sdk-image%1}
+#we can copy the javadoc to not arched dir, or made it not noarch
+%global uniquejavadocdir() %{expand:%{fullversion}%1}
#main id and dir of this jdk
%global uniquesuffix() %{expand:%{fullversion}.%{_arch}%1}
-#we can copy the javadoc to not arched dir, or made it not noarch
-%global uniquejavadocdir %{fullversion}
# Standard JPackage directories and symbolic links.
%global sdkdir() %{expand:%{uniquesuffix %%1}}
@@ -380,13 +380,13 @@ exit 0
%global post_javadoc() %{expand:
alternatives \\
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \\
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
%{priority}
exit 0
}
%global postun_javadoc() %{expand:
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api
+ alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api
exit 0
}
@@ -501,7 +501,7 @@ exit 0
%global files_javadoc() %{expand:
%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir}
+%doc %{_javadocdir}/%{uniquejavadocdir %%1}
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
}
@@ -1295,7 +1295,7 @@ popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir}
+cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
commit 73bf527b6e73798108011f6eb9a90dedd209f1df
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Nov 3 18:06:32 2014 +0100
Included filelistings and scriplets for debug builds. Minor Fixes. Enabled debugbuild
on intel
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c2a829d..4c4b42d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -22,7 +22,7 @@
# by default we build debug build during main build only on intel arches
%ifarch %{ix86} x86_64
-%global include_debug_build 0
+%global include_debug_build 1
%else
%global include_debug_build 0
%endif
@@ -392,7 +392,7 @@ exit 0
%global files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
-%{_datadir}/applications/*policytool.desktop
+%{_datadir}/applications/*policytool%1.desktop
}
@@ -452,7 +452,7 @@ exit 0
%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
%endif
%{_jvmjardir}/%{sdkdir %%1}
-%{_datadir}/applications/*jconsole.desktop
+%{_datadir}/applications/*jconsole%1.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
%{_mandir}/man1/idlj-%{uniquesuffix %%1}.1*
@@ -533,7 +533,6 @@ Provides: java%1 = %{epoch}:%{javaver}
Provides: java-fonts%1 = %{epoch}:%{version}
Obsoletes: java-1.7.0-openjdk%1
-Provides: java-1.8.0-openjdk%1 = %{epoch}:%{version}-%{release}
}
%global java_headless_rpo() %{expand:
@@ -569,7 +568,6 @@ Provides: jdbc-stdext%1 = 4.1
Provides: java-sasl%1 = %{epoch}:%{version}
Obsoletes: java-1.7.0-openjdk-headless%1
-Provides: java-1.8.0-openjdk-headless%1 = %{epoch}:%{version}-%{release}
}
%global java_devel_rpo() %{expand:
@@ -591,7 +589,6 @@ Provides: java-devel-%{origin}%1 = %{epoch}:%{version}
Provides: java-devel%1 = %{epoch}:%{javaver}
Obsoletes: java-1.7.0-openjdk-devel%1
-Provides: java-1.8.0-openjdk-devel%1 = %{epoch}:%{version}-%{release}
}
@@ -600,7 +597,6 @@ Requires: %{name}%1 = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-demo%1
-Provides: java-1.8.0-openjdk-demo%1 = %{epoch}:%{version}-%{release}
}
%global java_javadoc_rpo() %{expand:
@@ -615,7 +611,6 @@ Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-javadoc%1
-Provides: java-1.8.0-openjdk-javadoc%1 = %{epoch}:%{version}-%{release}
}
@@ -623,7 +618,6 @@ Provides: java-1.8.0-openjdk-javadoc%1 =
%{epoch}:%{version}-%{release}
Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-src%1
-Provides: java-1.8.0-openjdk-src%1 = %{epoch}:%{version}-%{release}
}
%global java_accessibility_rpo() %{expand:
@@ -632,7 +626,6 @@ Requires: %{name}%1 = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-accessibility%1
-Provides: java-1.8.0-openjdk-accessibility%1 = %{epoch}:%{version}-%{release}
}
# Prevent brp-java-repack-jars from being run.
@@ -640,7 +633,7 @@ Provides: java-1.8.0-openjdk-accessibility%1 =
%{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 14.%{buildver}%{?dist}
+Release: 15.%{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
@@ -1177,7 +1170,7 @@ pushd %{buildoutputdir}
#note, that order is normal_suffix debug_suffix (in case of both enabled)
if [ "$suffix" = "%{debug_suffix}" ] ; then
# debug build passed, mv it to j2sdk-image-%%{debug_suffix}
- mv images/%{j2sdkimage ""} images/%{j2sdkimage debug}
+ mv images/%{j2sdkimage ""} images/%{j2sdkimage %{debug_suffix_unquoted}}
fi
if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1 ] ; then
if [ "$suffix" = "%{normal_suffix}" ] ; then
@@ -1403,6 +1396,7 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
# end, dual install
done
+%if %{include_normal_build}
# intentioanlly only for non-debug
%pretrans headless -p <lua>
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
@@ -1574,12 +1568,9 @@ for i,file in pairs(caredFiles) do
end
end
-
%post
%{post_script %{nil}}
-
-
%post headless
%{post_headless %{nil}}
@@ -1589,7 +1580,6 @@ end
%postun headless
%{postun_headless %{nil}}
-
%posttrans
%{posttrans_script %{nil}}
@@ -1602,17 +1592,57 @@ end
%posttrans devel
%{posttrans_devel %{nil}}
-
%post javadoc
%{post_javadoc %{nil}}
%postun javadoc
%{postun_javadoc %{nil}}
+%endif
+
+%if %{include_debug_build}
+%post debug
+%{post_script %{debug_suffix_unquoted}}
+
+%post headless-debug
+%{post_headless %{debug_suffix_unquoted}}
+
+%postun debug
+%{postun_script %{debug_suffix_unquoted}}
+
+%postun headless-debug
+%{postun_headless %{debug_suffix_unquoted}}
+
+%posttrans debug
+%{posttrans_script %{debug_suffix_unquoted}}
+
+%post devel-debug
+%{post_devel %{debug_suffix_unquoted}}
+
+%postun devel-debug
+%{postun_devel %{debug_suffix_unquoted}}
+
+%posttrans devel-debug
+%{posttrans_devel %{debug_suffix_unquoted}}
+
+%post javadoc-debug
+%{post_javadoc %{debug_suffix_unquoted}}
+%postun javadoc-debug
+%{postun_javadoc %{debug_suffix_unquoted}}
+%endif
+# main package builds always
+%if %{include_normal_build}
%files -f %{name}.files
%{files_jre %{nil}}
+%else
+# placeholder
+%files
+
+%endif
+
+%if %{include_normal_build}
# 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 headless -f %{name}.files-headless
@@ -1632,8 +1662,37 @@ end
%files accessibility
%{files_accessibility %{nil}}
+%endif
+
+%if %{include_debug_build}
+%files debug -f %{name}.files-debug
+%{files_jre %{debug_suffix_unquoted}}
+
+%files headless-debug -f %{name}.files-headless-debug
+%{files_jre_headless %{debug_suffix_unquoted}}
+
+%files devel-debug
+%{files_devel %{debug_suffix_unquoted}}
+
+%files demo-debug -f %{name}-demo.files-debug
+%{files_demo %{debug_suffix_unquoted}}
+
+%files src-debug
+%{files_src %{debug_suffix_unquoted}}
+
+%files javadoc-debug
+%{files_javadoc %{debug_suffix_unquoted}}
+
+%files accessibility-debug
+%{files_accessibility %{debug_suffix_unquoted}}
+%endif
+
%changelog
+* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-15.b02
+- enabled debug packages
+- removed all provides duplicating package name
+
* Fri Oct 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-13.b02
- Build against libjpeg-turbo-1.4
commit 1f8ac3b35bb52cc1f5538969cf5ec5455e4132ae
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Nov 3 15:01:53 2014 +0100
All rpovides/requires moved to parametrized macros. Declared debug packages
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3ec6b55..c2a829d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,4 +1,5 @@
# note, parametrised macros are order-senisitve (unlike not-parametrized) even with
normal macros
+# also necessary when passing it as parameter other macros. If not macro, then it is
considered as switch
%global debug_suffix_unquoted -debug
# quoted one for shell operations
%global debug_suffix "%{debug_suffix_unquoted}"
@@ -7,6 +8,9 @@
#if you wont only debug build, but providing java, build only normal build, but set
normalbuild_parameter
%global debugbuild_parameter slowdebug
%global normalbuild_parameter release
+%global debug_warning This package have full debug on. Install only in need, and remove
asap.
+%global debug_on with full debug on
+%global for_debug for packages with debug on
# by default we build normal build always.
%global include_normal_build 1
@@ -150,6 +154,7 @@
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif
+# not-duplicated scriplets for normal/debug packages
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
%global post_script() %{expand:
@@ -506,12 +511,136 @@ exit 0
%{_jvmdir}/%{jredir %%1}/lib/accessibility.properties
}
+# not-duplicated requires/provides/obsolate for normal/debug packages
+%global java_rpo() %{expand:
+Requires: fontconfig
+Requires: xorg-x11-fonts-Type1
+
+# Requires rest of java
+Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+
+
+# Standard JPackage base provides.
+Provides: jre-%{javaver}-%{origin}%1 = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}%1 = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}%1 = %{epoch}:%{version}-%{release}
+Provides: jre = %{javaver}%1
+Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release}
+Provides: java%1 = %{epoch}:%{javaver}
+# Standard JPackage extensions provides.
+Provides: java-fonts%1 = %{epoch}:%{version}
+
+Obsoletes: java-1.7.0-openjdk%1
+Provides: java-1.8.0-openjdk%1 = %{epoch}:%{version}-%{release}
+}
+
+%global java_headless_rpo() %{expand:
+# Require /etc/pki/java/cacerts.
+Requires: ca-certificates
+# Require jpackage-utils for ownership of /usr/lib/jvm/
+Requires: jpackage-utils
+# Require zoneinfo data provided by tzdata-java subpackage.
+Requires: tzdata-java >= 2014f-1
+# Post requires alternatives to install tool alternatives.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall tool alternatives.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage base provides.
+Provides: jre-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
+Provides: jre-headless%1 = %{epoch}:%{javaver}
+Provides: java-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
+Provides: java-headless%1 = %{epoch}:%{javaver}
+# Standard JPackage extensions provides.
+Provides: jndi%1 = %{epoch}:%{version}
+Provides: jndi-ldap%1 = %{epoch}:%{version}
+Provides: jndi-cos%1 = %{epoch}:%{version}
+Provides: jndi-rmi%1 = %{epoch}:%{version}
+Provides: jndi-dns%1 = %{epoch}:%{version}
+Provides: jaas%1 = %{epoch}:%{version}
+Provides: jsse%1 = %{epoch}:%{version}
+Provides: jce%1 = %{epoch}:%{version}
+Provides: jdbc-stdext%1 = 4.1
+Provides: java-sasl%1 = %{epoch}:%{version}
+
+Obsoletes: java-1.7.0-openjdk-headless%1
+Provides: java-1.8.0-openjdk-headless%1 = %{epoch}:%{version}-%{release}
+}
+
+%global java_devel_rpo() %{expand:
+# Require base package.
+Requires: %{name}%1 = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install tool alternatives.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall tool alternatives.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage devel provides.
+Provides: java-sdk-%{javaver}-%{origin}%1 = %{epoch}:%{version}
+Provides: java-sdk-%{javaver}%1 = %{epoch}:%{version}
+Provides: java-sdk-%{origin}%1 = %{epoch}:%{version}
+Provides: java-sdk%1 = %{epoch}:%{javaver}
+Provides: java-%{javaver}-devel%1 = %{epoch}:%{version}
+Provides: java-devel-%{origin}%1 = %{epoch}:%{version}
+Provides: java-devel%1 = %{epoch}:%{javaver}
+
+Obsoletes: java-1.7.0-openjdk-devel%1
+Provides: java-1.8.0-openjdk-devel%1 = %{epoch}:%{version}-%{release}
+}
+
+
+%global java_demo_rpo() %{expand:
+Requires: %{name}%1 = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+
+Obsoletes: java-1.7.0-openjdk-demo%1
+Provides: java-1.8.0-openjdk-demo%1 = %{epoch}:%{version}-%{release}
+}
+
+%global java_javadoc_rpo() %{expand:
+OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install javadoc alternative.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall javadoc alternative.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage javadoc provides.
+Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release}
+
+Obsoletes: java-1.7.0-openjdk-javadoc%1
+Provides: java-1.8.0-openjdk-javadoc%1 = %{epoch}:%{version}-%{release}
+
+}
+
+%global java_src_rpo() %{expand:
+Requires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+
+Obsoletes: java-1.7.0-openjdk-src%1
+Provides: java-1.8.0-openjdk-src%1 = %{epoch}:%{version}-%{release}
+}
+
+%global java_accessibility_rpo() %{expand:
+Requires: java-atk-wrapper
+Requires: %{name}%1 = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
+
+Obsoletes: java-1.7.0-openjdk-accessibility%1
+Provides: java-1.8.0-openjdk-accessibility%1 = %{epoch}:%{version}-%{release}
+}
+
# Prevent brp-java-repack-jars from being run.
%global __jar_repack 0
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 14.%{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
@@ -645,154 +774,147 @@ BuildRequires: prelink
BuildRequires: systemtap-sdt-devel
%endif
-Requires: fontconfig
-Requires: xorg-x11-fonts-Type1
-# Requires rest of java
-Requires: %{name}-headless = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
+# this is built always, also during debug-only build
+# when it is built in debug-only, then this package is just placeholder
+%{java_rpo %{nil}}
+%description
+The OpenJDK runtime environment.
-# Standard JPackage base provides.
-Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: jre = %{javaver}
-Provides: java-%{origin} = %{epoch}:%{version}-%{release}
-Provides: java = %{epoch}:%{javaver}
-# Standard JPackage extensions provides.
-Provides: java-fonts = %{epoch}:%{version}
-
-Obsoletes: java-1.7.0-openjdk
-Provides: java-1.8.0-openjdk = %{epoch}:%{version}-%{release}
+%if %{include_debug_build}
+%package debug
+Summary: OpenJDK Runtime Environment %{debug_on}
+Group: Development/Languages
-%description
+%{java_rpo %{debug_suffix_unquoted}}
+%description debug
The OpenJDK runtime environment.
+%{debug_warning}
+%endif
+%if %{include_normal_build}
%package headless
Summary: OpenJDK Runtime Environment
Group: Development/Languages
-# Require /etc/pki/java/cacerts.
-Requires: ca-certificates
-# Require jpackage-utils for ownership of /usr/lib/jvm/
-Requires: jpackage-utils
-# Require zoneinfo data provided by tzdata-java subpackage.
-Requires: tzdata-java >= 2014f-1
-# Post requires alternatives to install tool alternatives.
-Requires(post): %{_sbindir}/alternatives
-# Postun requires alternatives to uninstall tool alternatives.
-Requires(postun): %{_sbindir}/alternatives
-
-# Standard JPackage base provides.
-Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release}
-Provides: jre-headless = %{epoch}:%{javaver}
-Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: java-headless = %{epoch}:%{javaver}
-# Standard JPackage extensions provides.
-Provides: jndi = %{epoch}:%{version}
-Provides: jndi-ldap = %{epoch}:%{version}
-Provides: jndi-cos = %{epoch}:%{version}
-Provides: jndi-rmi = %{epoch}:%{version}
-Provides: jndi-dns = %{epoch}:%{version}
-Provides: jaas = %{epoch}:%{version}
-Provides: jsse = %{epoch}:%{version}
-Provides: jce = %{epoch}:%{version}
-Provides: jdbc-stdext = 4.1
-Provides: java-sasl = %{epoch}:%{version}
-
-Obsoletes: java-1.7.0-openjdk-headless
-Provides: java-1.8.0-openjdk-headless = %{epoch}:%{version}-%{release}
+%{java_headless_rpo %{nil}}
%description headless
The OpenJDK runtime environment without audio and video support.
+%endif
+%if %{include_debug_build}
+%package headless-debug
+Summary: OpenJDK Runtime Environment %{debug_on}
+Group: Development/Languages
+
+%{java_headless_rpo %{debug_suffix_unquoted}}
+
+%description headless-debug
+The OpenJDK runtime environment without audio and video support.
+%{debug_warning}
+%endif
+
+%if %{include_normal_build}
%package devel
Summary: OpenJDK Development Environment
Group: Development/Tools
-# Require base package.
-Requires: %{name} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install tool alternatives.
-Requires(post): %{_sbindir}/alternatives
-# Postun requires alternatives to uninstall tool alternatives.
-Requires(postun): %{_sbindir}/alternatives
+%{java_devel_rpo %{nil}}
-# Standard JPackage devel provides.
-Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
-Provides: java-sdk-%{javaver} = %{epoch}:%{version}
-Provides: java-sdk-%{origin} = %{epoch}:%{version}
-Provides: java-sdk = %{epoch}:%{javaver}
-Provides: java-%{javaver}-devel = %{epoch}:%{version}
-Provides: java-devel-%{origin} = %{epoch}:%{version}
-Provides: java-devel = %{epoch}:%{javaver}
+%description devel
+The OpenJDK development tools.
+%endif
+
+%if %{include_debug_build}
+%package devel-debug
+Summary: OpenJDK Development Environment %{debug_on}
+Group: Development/Tools
-Obsoletes: java-1.7.0-openjdk-devel
-Provides: java-1.8.0-openjdk-devel = %{epoch}:%{version}-%{release}
+%{java_devel_rpo %{debug_suffix_unquoted}}
-%description devel
+%description devel-debug
The OpenJDK development tools.
+%{debug_warning}
+%endif
+%if %{include_normal_build}
%package demo
Summary: OpenJDK Demos
Group: Development/Languages
-Requires: %{name} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-
-Obsoletes: java-1.7.0-openjdk-demo
-Provides: java-1.8.0-openjdk-demo = %{epoch}:%{version}-%{release}
+%{java_demo_rpo %{nil}}
%description demo
The OpenJDK demos.
+%endif
+
+%if %{include_debug_build}
+%package demo-debug
+Summary: OpenJDK Demos %{debug_on}
+Group: Development/Languages
+
+%{java_demo_rpo %{debug_suffix_unquoted}}
+
+%description demo-debug
+The OpenJDK demos.
+%{debug_warning}
+%endif
+%if %{include_normal_build}
%package src
Summary: OpenJDK Source Bundle
Group: Development/Languages
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-Obsoletes: java-1.7.0-openjdk-src
-Provides: java-1.8.0-openjdk-src = %{epoch}:%{version}-%{release}
+%{java_src_rpo %{nil}}
%description src
The OpenJDK source bundle.
+%endif
+
+%if %{include_debug_build}
+%package src-debug
+Summary: OpenJDK Source Bundle %{for_debug}
+Group: Development/Languages
+%{java_src_rpo %{debug_suffix_unquoted}}
+
+%description src-debug
+The OpenJDK source bundle %{for_debug}.
+%endif
+
+%if %{include_normal_build}
%package javadoc
Summary: OpenJDK API Documentation
Group: Documentation
Requires: jpackage-utils
BuildArch: noarch
-OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-# Post requires alternatives to install javadoc alternative.
-Requires(post): %{_sbindir}/alternatives
-# Postun requires alternatives to uninstall javadoc alternative.
-Requires(postun): %{_sbindir}/alternatives
-
-# Standard JPackage javadoc provides.
-Provides: java-javadoc = %{epoch}:%{version}-%{release}
-Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
-
-Obsoletes: java-1.7.0-openjdk-javadoc
-Provides: java-1.8.0-openjdk-javadoc = %{epoch}:%{version}-%{release}
+%{java_javadoc_rpo %{nil}}
%description javadoc
The OpenJDK API documentation.
+%endif
+
+%if %{include_debug_build}
+%package javadoc-debug
+Summary: OpenJDK API Documentation %{for_debug}
+Group: Documentation
+Requires: jpackage-utils
+BuildArch: noarch
+
+%{java_javadoc_rpo %{debug_suffix_unquoted}}
+%description javadoc-debug
+The OpenJDK API documentation %{for_debug}.
+%endif
+
+%if %{include_normal_build}
%package accessibility
Summary: OpenJDK accessibility connector
-Requires: java-atk-wrapper
-Requires: %{name} = %{epoch}:%{version}-%{release}
-OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-accessibility
-Provides: java-1.8.0-openjdk-accessibility = %{epoch}:%{version}-%{release}
+%{java_accessibility_rpo %{nil}}
%description accessibility
Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows
@@ -803,7 +925,17 @@ Please note, the java-atk-wrapper is still in beta, and OpenJDK
itself is still
being tuned to be working with accessibility features. There are known issues
with accessibility on, so please do not install this package unless you really
need to.
+%endif
+%if %{include_debug_build}
+%package accessibility-debug
+Summary: OpenJDK accessibility connector %{for_debug}
+
+%{java_accessibility_rpo %{debug_suffix_unquoted}}
+
+%description accessibility-debug
+See normal java-%{version}-openjdk-accessibility description.
+%endif
%prep
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
@@ -1271,7 +1403,7 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
# end, dual install
done
-# iintentioanlly only for non-debug
+# intentioanlly only for non-debug
%pretrans headless -p <lua>
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
commit 4207bc838ae6653a5cf39d9a2d7ce12b8edcd330
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Oct 31 19:37:33 2014 -0400
Fix building against libjpeg-turbo 1.4 beta
It removed the FAR macro which was causing the build to fail.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4cd9202..3ec6b55 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -578,6 +578,7 @@ Patch7: include-all-srcs.patch
# Problem discovered with make 4.0
Patch11: hotspot-build-j-directive.patch
Patch12: removeSunEcProvider-RH1154143.patch
+Patch13: libjpeg-turbo-1.4-compat.patch
#
# OpenJDK specific patches
@@ -858,6 +859,7 @@ sh %{SOURCE12}
%patch7
%patch11
%patch12
+%patch13
# s390 build fixes
%ifarch s390
@@ -1500,6 +1502,9 @@ end
%{files_accessibility %{nil}}
%changelog
+* Fri Oct 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-13.b02
+- Build against libjpeg-turbo-1.4
+
* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-13.b02
- preparing for parallel debug+normal build
- files and scripelts moved to extendable macros as first step to dual build
diff --git a/libjpeg-turbo-1.4-compat.patch b/libjpeg-turbo-1.4-compat.patch
new file mode 100644
index 0000000..26ffc7b
--- /dev/null
+++ b/libjpeg-turbo-1.4-compat.patch
@@ -0,0 +1,33 @@
+Remove uses of FAR in jpeg code
+
+Upstream libjpeg-trubo removed the (empty) FAR macro:
+http://sourceforge.net/p/libjpeg-turbo/code/1312/
+
+Adjust our code to not use the undefined FAR macro anymore.
+
+diff --git a/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
b/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+@@ -1385,7 +1385,7 @@
+ /* and fill it in */
+ dst_ptr = icc_data;
+ for (seq_no = first; seq_no < last; seq_no++) {
+- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
++ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
+ unsigned int length =
+ icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;
+
+diff --git a/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
b/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
+--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
+@@ -41,9 +41,8 @@
+ #include "jni.h"
+ #include "jni_util.h"
+
+-/* undo "system_boolean" hack and undef FAR since we don't use it anyway
*/
++/* undo "system_boolean" hack since we don't use it anyway */
+ #undef boolean
+-#undef FAR
+ #include <jpeglib.h>
+ #include "jerror.h"
+
commit 3f33df5ba3272297dfbad377f29f1f7e530e0cf0
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 31 13:26:49 2014 +0100
All scripts moved to parametrized macros
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dbdaa58..4cd9202 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,13 @@
-#note, parametrised macros are order-senisitve (unlike not-parametrized)
-%global debug_suffix "-debug"
+# note, parametrised macros are order-senisitve (unlike not-parametrized) even with
normal macros
+%global debug_suffix_unquoted -debug
+# quoted one for shell operations
+%global debug_suffix "%{debug_suffix_unquoted}"
%global normal_suffix ""
+#if you wont only debug build, but providing java, build only normal build, but set
normalbuild_parameter
+%global debugbuild_parameter slowdebug
+%global normalbuild_parameter release
+
# by default we build normal build always.
%global include_normal_build 1
%if %{include_normal_build}
@@ -12,7 +18,7 @@
# by default we build debug build during main build only on intel arches
%ifarch %{ix86} x86_64
-%global include_debug_build 1
+%global include_debug_build 0
%else
%global include_debug_build 0
%endif
@@ -42,7 +48,7 @@
# Always set this so the nss.cfg file is not broken
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
-#fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
+# fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
%global _privatelibs libmawt[.]so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
@@ -144,6 +150,241 @@
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif
+%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+
+%global post_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+exit 0
+}
+
+
+%global post_headless() %{expand:
+# FIXME: identical binaries are copied, not linked. This needs to be
+# fixed upstream.
+%ifarch %{jit_arches}
+%ifnarch %{ppc64le}
+#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+%{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null
+%endif
+%endif
+
+ext=.gz
+alternatives \\
+ --install %{_bindir}/java java %{jrebindir %%1}/java %{priority} \\
+ --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir %%1} \\
+ --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk %%1} \\
+ --slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
+ --slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\
+ --slave %{_bindir}/orbd orbd %{jrebindir %%1}/orbd \\
+ --slave %{_bindir}/pack200 pack200 %{jrebindir %%1}/pack200 \\
+ --slave %{_bindir}/rmid rmid %{jrebindir %%1}/rmid \\
+ --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\
+ --slave %{_bindir}/servertool servertool %{jrebindir %%1}/servertool \\
+ --slave %{_bindir}/tnameserv tnameserv %{jrebindir %%1}/tnameserv \\
+ --slave %{_bindir}/unpack200 unpack200 %{jrebindir %%1}/unpack200 \\
+ --slave %{_mandir}/man1/java.1$ext java.1$ext \\
+ %{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
+ %{_mandir}/man1/jjs-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_bindir}/policytool policytool %{jrebindir %%1}/policytool \\
+ --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
+ %{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
+ %{_mandir}/man1/orbd-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
+ %{_mandir}/man1/pack200-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
+ %{_mandir}/man1/rmid-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
+ %{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
+ %{_mandir}/man1/servertool-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
+ %{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
+ %{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives \\
+ --install %{_jvmdir}/jre-"$X" \\
+ jre_"$X" %{_jvmdir}/%{jredir %%1} %{priority} \\
+ --slave %{_jvmjardir}/jre-"$X" \\
+ jre_"$X"_exports %{_jvmjardir}/%{jredir %%1}
+done
+
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} %{priority} \\
+--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir %%1}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+exit 0
+}
+
+%global postun_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ %{update_desktop_icons}
+fi
+exit 0
+}
+
+
+%global postun_headless() %{expand:
+ alternatives --remove java %{jrebindir %%1}/java
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir %%1}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir %%1}
+ alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1}
+}
+
+%global posttrans_script() %{expand:
+%{update_desktop_icons}
+}
+
+%global post_devel() %{expand:
+ext=.gz
+alternatives \\
+ --install %{_bindir}/javac javac %{sdkbindir %%1}/javac %{priority} \\
+ --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
+ --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir %%1} \\
+ --slave %{_bindir}/appletviewer appletviewer %{sdkbindir %%1}/appletviewer \\
+ --slave %{_bindir}/extcheck extcheck %{sdkbindir %%1}/extcheck \\
+ --slave %{_bindir}/idlj idlj %{sdkbindir %%1}/idlj \\
+ --slave %{_bindir}/jar jar %{sdkbindir %%1}/jar \\
+ --slave %{_bindir}/jarsigner jarsigner %{sdkbindir %%1}/jarsigner \\
+ --slave %{_bindir}/javadoc javadoc %{sdkbindir %%1}/javadoc \\
+ --slave %{_bindir}/javah javah %{sdkbindir %%1}/javah \\
+ --slave %{_bindir}/javap javap %{sdkbindir %%1}/javap \\
+ --slave %{_bindir}/jcmd jcmd %{sdkbindir %%1}/jcmd \\
+ --slave %{_bindir}/jconsole jconsole %{sdkbindir %%1}/jconsole \\
+ --slave %{_bindir}/jdb jdb %{sdkbindir %%1}/jdb \\
+ --slave %{_bindir}/jdeps jdeps %{sdkbindir %%1}/jdeps \\
+ --slave %{_bindir}/jhat jhat %{sdkbindir %%1}/jhat \\
+ --slave %{_bindir}/jinfo jinfo %{sdkbindir %%1}/jinfo \\
+ --slave %{_bindir}/jmap jmap %{sdkbindir %%1}/jmap \\
+ --slave %{_bindir}/jps jps %{sdkbindir %%1}/jps \\
+ --slave %{_bindir}/jrunscript jrunscript %{sdkbindir %%1}/jrunscript \\
+ --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir %%1}/jsadebugd \\
+ --slave %{_bindir}/jstack jstack %{sdkbindir %%1}/jstack \\
+ --slave %{_bindir}/jstat jstat %{sdkbindir %%1}/jstat \\
+ --slave %{_bindir}/jstatd jstatd %{sdkbindir %%1}/jstatd \\
+ --slave %{_bindir}/native2ascii native2ascii %{sdkbindir %%1}/native2ascii \\
+ --slave %{_bindir}/rmic rmic %{sdkbindir %%1}/rmic \\
+ --slave %{_bindir}/schemagen schemagen %{sdkbindir %%1}/schemagen \\
+ --slave %{_bindir}/serialver serialver %{sdkbindir %%1}/serialver \\
+ --slave %{_bindir}/wsgen wsgen %{sdkbindir %%1}/wsgen \\
+ --slave %{_bindir}/wsimport wsimport %{sdkbindir %%1}/wsimport \\
+ --slave %{_bindir}/xjc xjc %{sdkbindir %%1}/xjc \\
+ --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
+ %{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
+ %{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
+ %{_mandir}/man1/idlj-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
+ %{_mandir}/man1/jar-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
+ %{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
+ %{_mandir}/man1/javac-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
+ %{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
+ %{_mandir}/man1/javah-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
+ %{_mandir}/man1/javap-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
+ %{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
+ %{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
+ %{_mandir}/man1/jdb-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
+ %{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
+ %{_mandir}/man1/jhat-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
+ %{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
+ %{_mandir}/man1/jmap-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
+ %{_mandir}/man1/jps-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
+ %{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
+ %{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
+ %{_mandir}/man1/jstack-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
+ %{_mandir}/man1/jstat-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
+ %{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
+ %{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
+ %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
+ %{_mandir}/man1/rmic-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
+ %{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
+ %{_mandir}/man1/serialver-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
+ %{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
+ %{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1$ext \\
+ --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
+ %{_mandir}/man1/xjc-%{uniquesuffix %%1}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives \\
+ --install %{_jvmdir}/java-"$X" \\
+ java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} %{priority} \\
+ --slave %{_jvmjardir}/java-"$X" \\
+ java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir %%1}
+done
+
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} %{priority} \\
+--slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir %%1}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+exit 0
+}
+
+%global postun_devel() %{expand:
+ alternatives --remove javac %{sdkbindir %%1}/javac
+ alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir %%1}
+ alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir %%1}
+ alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ %{update_desktop_icons}
+fi
+exit 0
+}
+
+%global posttrans_devel() %{expand:
+%{update_desktop_icons}
+}
+
+%global post_javadoc() %{expand:
+alternatives \\
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \\
+ %{priority}
+exit 0
+}
+
+%global postun_javadoc() %{expand:
+ alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api
+exit 0
+}
+
%global files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_datadir}/applications/*policytool.desktop
@@ -155,7 +396,7 @@
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir}
+%dir %{_jvmdir}/%{sdkdir %%1}
%{_jvmdir}/%{jrelnk %%1}
%{_jvmjardir}/%{jrelnk %%1}
%{_jvmprivdir}/*
@@ -270,7 +511,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -707,9 +948,9 @@ normalBuildStore=`mktemp -d`
for suffix in %{build_loop} ; do
if [ "$suffix" = "%{debug_suffix}" ] ; then
-debugbuild=slowdebug
+debugbuild=%{debugbuild_parameter}
else
-debugbuild=release
+debugbuild=%{normalbuild_parameter}
fi
mkdir -p %{buildoutputdir}
@@ -1028,13 +1269,14 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
# end, dual install
done
+# iintentioanlly only for non-debug
%pretrans headless -p <lua>
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
local posix = require "posix"
-local currentjvm = "%{uniquesuffix \"\"}"
-local jvmdir = "%{_jvmdir \"\"}"
+local currentjvm = "%{uniquesuffix %{nil}}"
+local jvmdir = "%{_jvmdir %{nil}}"
local jvmDestdir = jvmdir
local origname = "%{name}"
local origjavaver = "%{javaver}"
@@ -1200,236 +1442,38 @@ end
%post
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-exit 0
-
-
-# FIXME: identical binaries are copied, not linked. This needs to be
-# fixed upstream.
-%post headless
-%ifarch %{jit_arches}
-%ifnarch %{ppc64le}
-#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
-%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null
-%endif
-%endif
-
-ext=.gz
-alternatives \
- --install %{_bindir}/java java %{jrebindir}/java %{priority} \
- --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \
- --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
- --slave %{_bindir}/jjs jjs %{jrebindir}/jjs \
- --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
- --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
- --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
- --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \
- --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \
- --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \
- --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
- --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
- --slave %{_mandir}/man1/java.1$ext java.1$ext \
- %{_mandir}/man1/java-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \
- %{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \
- --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \
- --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
- %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
- %{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
- %{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
- %{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
- %{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
- %{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
- %{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
- %{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext
-
-for X in %{origin} %{javaver} ; do
- alternatives \
- --install %{_jvmdir}/jre-"$X" \
- jre_"$X" %{_jvmdir}/%{jredir} %{priority} \
- --slave %{_jvmjardir}/jre-"$X" \
- jre_"$X"_exports %{_jvmjardir}/%{jredir}
-done
-
-update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
---slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir}
+%{post_script %{nil}}
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-exit 0
+%post headless
+%{post_headless %{nil}}
%postun
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-
-if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
-fi
-
-exit 0
-
+%{postun_script %{nil}}
%postun headless
- alternatives --remove java %{jrebindir}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir}
- alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk}
+%{postun_headless %{nil}}
%posttrans
-/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%{posttrans_script %{nil}}
%post devel
-ext=.gz
-alternatives \
- --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
- --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \
- --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \
- --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
- --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
- --slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \
- --slave %{_bindir}/jar jar %{sdkbindir}/jar \
- --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \
- --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \
- --slave %{_bindir}/javah javah %{sdkbindir}/javah \
- --slave %{_bindir}/javap javap %{sdkbindir}/javap \
- --slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \
- --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
- --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
- --slave %{_bindir}/jdeps jdeps %{sdkbindir}/jdeps \
- --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
- --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
- --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
- --slave %{_bindir}/jps jps %{sdkbindir}/jps \
- --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \
- --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \
- --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \
- --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
- --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \
- --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
- --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
- --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
- --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
- --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \
- --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
- --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
- --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
- %{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
- %{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \
- %{_mandir}/man1/idlj-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jar.1$ext jar.1$ext \
- %{_mandir}/man1/jar-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
- %{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/javac.1$ext javac.1$ext \
- %{_mandir}/man1/javac-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
- %{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/javah.1$ext javah.1$ext \
- %{_mandir}/man1/javah-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/javap.1$ext javap.1$ext \
- %{_mandir}/man1/javap-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \
- %{_mandir}/man1/jcmd-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
- %{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
- %{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \
- %{_mandir}/man1/jdeps-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
- %{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
- %{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \
- %{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jps.1$ext jps.1$ext \
- %{_mandir}/man1/jps-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
- %{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
- %{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \
- %{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \
- %{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \
- %{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
- %{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
- %{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
- %{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
- %{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
- %{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
- %{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
- %{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \
- --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
- %{_mandir}/man1/xjc-%{uniquesuffix}.1$ext
-
-for X in %{origin} %{javaver} ; do
- alternatives \
- --install %{_jvmdir}/java-"$X" \
- java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \
- --slave %{_jvmjardir}/java-"$X" \
- java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir}
-done
-
-update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \
---slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir}
-
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
-
-exit 0
+%{post_devel %{nil}}
%postun devel
- alternatives --remove javac %{sdkbindir}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir}
- alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir}
-
-update-desktop-database %{_datadir}/applications &> /dev/null || :
-
-if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
-fi
-
-exit 0
+%{postun_devel %{nil}}
%posttrans devel
-/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+%{posttrans_devel %{nil}}
%post javadoc
-alternatives \
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \
- %{priority}
-
-exit 0
+%{post_javadoc %{nil}}
%postun javadoc
- alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api
-
-exit 0
+%{postun_javadoc %{nil}}
%files -f %{name}.files
@@ -1456,6 +1500,12 @@ exit 0
%{files_accessibility %{nil}}
%changelog
+* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-13.b02
+- preparing for parallel debug+normal build
+- files and scripelts moved to extendable macros as first step to dual build
+- install and build may be done in loop for both release and slowdebug
+- debugbuild off untill its completed
+
* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-12.b02
- added patch12,removeSunEcProvider-RH1154143
- xdump excluded from ppc64le (rh1156151)
commit cc7ef6b6fd249bbe357485581a822a17fc2aaca4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 30 16:24:52 2014 +0100
Included first part for dual build. Right nw the package will build, In case of
include_debug_build 0, but the scriplets will be wrong. Work in rpogress.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4c6077b..dbdaa58 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,5 +1,33 @@
-# If debug is 1, OpenJDK is built with all debug info present.
-%global debug 0
+#note, parametrised macros are order-senisitve (unlike not-parametrized)
+%global debug_suffix "-debug"
+%global normal_suffix ""
+
+# by default we build normal build always.
+%global include_normal_build 1
+%if %{include_normal_build}
+%global build_loop1 %{normal_suffix}
+%else
+%global build_loop1 %{nil}
+%endif
+
+# by default we build debug build during main build only on intel arches
+%ifarch %{ix86} x86_64
+%global include_debug_build 1
+%else
+%global include_debug_build 0
+%endif
+
+%if %{include_debug_build}
+%global build_loop2 %{debug_suffix}
+%else
+%global build_loop2 %{nil}
+%endif
+
+# if you disable both builds, then build fails
+%global build_loop %{build_loop1} %{build_loop2}
+# note, that order normal_suffix debug_suffix, in case of both enabled,
+# is expected in one single case at the end of build
+
%global aarch64 aarch64 arm64 armv8
# sometimes we need to distinguish big and little endian PPC64
@@ -58,11 +86,6 @@
%global archinstall %{_arch}
%endif
-%if %{debug}
-%global debugbuild slowdebug
-%else
-%global debugbuild release
-%endif
%global buildoutputdir jdk8/build/jdk8.build
@@ -90,21 +113,24 @@
%global priority 18000%{updatever}
%global javaver 1.8.0
-# Standard JPackage directories and symbolic links.
-%global sdkdir %{uniquesuffix}
-%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}
-
-%global jredir %{sdkdir}/jre
-%global sdkbindir %{_jvmdir}/%{sdkdir}/bin
-%global jrebindir %{_jvmdir}/%{jredir}/bin
-%global jvmjardir %{_jvmjardir}/%{uniquesuffix}
-
+# parametrized macros are order-sensitive
%global fullversion %{name}-%{version}-%{release}
-
-%global uniquesuffix %{fullversion}.%{_arch}
+#images stub
+%global j2sdkimage() %{expand:j2sdk-image%1}
+#main id and dir of this jdk
+%global uniquesuffix() %{expand:%{fullversion}.%{_arch}%1}
#we can copy the javadoc to not arched dir, or made it not noarch
%global uniquejavadocdir %{fullversion}
+# Standard JPackage directories and symbolic links.
+%global sdkdir() %{expand:%{uniquesuffix %%1}}
+%global jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1}
+
+%global jredir() %{expand:%{sdkdir %%1}/jre}
+%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
+%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin}
+%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}}
+
%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir,
@@ -118,6 +144,127 @@
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif
+%global files_jre() %{expand:
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
+%{_datadir}/applications/*policytool.desktop
+}
+
+
+%global files_jre_headless() %{expand:
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir}
+%{_jvmdir}/%{jrelnk %%1}
+%{_jvmjardir}/%{jrelnk %%1}
+%{_jvmprivdir}/*
+%{jvmjardir %%1}
+%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
+%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
+%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/orbd-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/pack200-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
+%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir %%1}/lib/audio/
+%ifarch %{jit_arches}
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/server/classes.jsa
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir
%%1}/lib/%{archinstall}/client/classes.jsa
+%endif
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/
+}
+
+%global files_devel() %{expand:
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/LICENSE
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir %%1}/bin
+%dir %{_jvmdir}/%{sdkdir %%1}/include
+%dir %{_jvmdir}/%{sdkdir %%1}/lib
+%if %{with_systemtap}
+%dir %{_jvmdir}/%{sdkdir %%1}/tapset
+%endif
+%{_jvmdir}/%{sdkdir %%1}/bin/*
+%{_jvmdir}/%{sdkdir %%1}/include/*
+%{_jvmdir}/%{sdkdir %%1}/lib/*
+%if %{with_systemtap}
+%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
+%endif
+%{_jvmjardir}/%{sdkdir %%1}
+%{_datadir}/applications/*jconsole.desktop
+%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/idlj-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jar-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/javac-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/javah-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/javap-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jdb-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jhat-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jmap-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jps-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jstack-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1*
+%{_mandir}/man1/xjc-%{uniquesuffix %%1}.1*
+%if %{with_systemtap}
+%{tapsetroot}
+%endif
+}
+
+%global files_demo() %{expand:
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
+}
+
+%global files_src() %{expand:
+%defattr(-,root,root,-)
+%doc README.src
+%{_jvmdir}/%{sdkdir %%1}/src.zip
+}
+
+%global files_javadoc() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir}
+%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
+}
+
+%global files_accessibility() %{expand:
+%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libatk-wrapper.so
+%{_jvmdir}/%{jredir %%1}/lib/ext/java-atk-wrapper.jar
+%{_jvmdir}/%{jredir %%1}/lib/accessibility.properties
+}
+
# Prevent brp-java-repack-jars from being run.
%global __jar_repack 0
@@ -417,7 +564,23 @@ need to.
%prep
-%setup -q -c -n %{uniquesuffix} -T -a 0
+if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
+ echo "include_normal_build is %{include_normal_build}"
+else
+ echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for
yes or 0 for no"
+ exit 11
+fi
+if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then
+ echo "include_debug_build is %{include_debug_build}"
+else
+ echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes
or 0 for no"
+ exit 12
+fi
+if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
+ echo "you have disabled both include_debug_build and enclude_debug_build. no
go."
+ exit 13
+fi
+%setup -q -c -n %{uniquesuffix ""} -T -a 0
%ifarch %{aarch64}
pushd jdk8
rm -r hotspot
@@ -474,29 +637,39 @@ tar xzf %{SOURCE8}
%patch300
-for file in tapset/*.in; do
+%if %{include_debug_build}
+cp -r tapset tapset%{debug_suffix}
+%endif
+
+for suffix in %{build_loop} ; do
+ for file in "tapset"$suffix/*.in; do
OUTPUT_FILE=`echo $file | sed -e
s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
- sed -e
s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g
$file > $file.1
+ sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
- sed -e
s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g
$file.1 > $OUTPUT_FILE
+ sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
%else
sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
%endif
- sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE
+ sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g $OUTPUT_FILE
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
-
+ done
done
-
-%endif
+# systemtap tapsets ends
+%endif
# Prepare desktop files
+for suffix in %{build_loop} ; do
for file in %{SOURCE9} %{SOURCE10} ; do
- OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
- sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE
- sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE
- sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE
+ FILE=`basename $file | sed -e s:\.in$::g`
+ EXT="${FILE##*.}"
+ NAME="${FILE%.*}"
+ OUTPUT_FILE=$NAME$suffix.$EXT
+ sed -e s:#JAVA_HOME#:%{sdkbindir $suffix}:g $file > $OUTPUT_FILE
+ sed -i -e s:#JRE_HOME#:%{jrebindir $suffix}:g $OUTPUT_FILE
+ sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}$suffix:g $OUTPUT_FILE
+done
done
%build
@@ -529,8 +702,17 @@ export EXTRA_CFLAGS
bash ./autogen.sh
)
-mkdir -p %{buildoutputdir}
+# backup of normal image for case of dual build on
+normalBuildStore=`mktemp -d`
+
+for suffix in %{build_loop} ; do
+if [ "$suffix" = "%{debug_suffix}" ] ; then
+debugbuild=slowdebug
+else
+debugbuild=release
+fi
+mkdir -p %{buildoutputdir}
pushd %{buildoutputdir}
bash ../../configure \
@@ -548,7 +730,7 @@ bash ../../configure \
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}"
\
%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
- --with-debug-level=%{debugbuild} \
+ --with-debug-level=$debugbuild \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
@@ -575,17 +757,17 @@ make \
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
-find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \;
-chmod ugo+r images/j2sdk-image/lib/ct.sym
+find images/%{j2sdkimage ""} -iname '*.jar' -exec chmod ugo+r {} \;
+chmod ugo+r images/%{j2sdkimage ""}/lib/ct.sym
# remove redundant *diz and *debuginfo files
-find images/j2sdk-image -iname '*.diz' -exec rm {} \;
-find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \;
+find images/%{j2sdkimage ""} -iname '*.diz' -exec rm {} \;
+find images/%{j2sdkimage ""} -iname '*.debuginfo' -exec rm {} \;
popd >& /dev/null
# Install nss.cfg right away as we will be using the JRE above
-export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
+export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/%{j2sdkimage ""}
# Install nss.cfg right away as we will be using the JRE above
install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
@@ -616,51 +798,75 @@ fi
# Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep Unsafe
+pushd %{buildoutputdir}
+#note, that order is normal_suffix debug_suffix (in case of both enabled)
+if [ "$suffix" = "%{debug_suffix}" ] ; then
+# debug build passed, mv it to j2sdk-image-%%{debug_suffix}
+ mv images/%{j2sdkimage ""} images/%{j2sdkimage debug}
+fi
+if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1 ] ; then
+ if [ "$suffix" = "%{normal_suffix}" ] ; then
+# normal build just passed, and debug one is going to run
+ mv images/%{j2sdkimage ""} $normalBuildStore
+ make clean
+ fi
+ if [ "$suffix" = "%{debug_suffix}" ] ; then
+# debug build just passed, restore normal one (see that debug one already renamed)
+ mv $normalBuildStore/%{j2sdkimage ""} images/
+ fi
+fi
+popd
+
+#build cycles
+done
+
%install
rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm*
+for suffix in %{build_loop} ; do
# Install symlink to default soundfont
-install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
-pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
+install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
+pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
ln -s %{_datadir}/soundfonts/default.sf2
popd
-pushd %{buildoutputdir}/images/j2sdk-image
+pushd %{buildoutputdir}/images/%{j2sdkimage $suffix}
#install jsa directories so we can owe them
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
-mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/client/
# Install main files.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
- cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
- cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
+ cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
+ cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
%if %{with_systemtap}
# Install systemtap support files.
- install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
- cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
+ install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset
+ # note, that uniquesuffix is in BUILD dir in this case
+ cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir $suffix}/tapset %{tapsetdir})
ln -sf $RELATIVE/*.stp .
popd
%endif
# Install cacerts symlink.
- rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts
- pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security
+ rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security
RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
- %{_jvmdir}/%{jredir}/lib/security)
+ %{_jvmdir}/%{jredir $suffix}/lib/security)
ln -sf $RELATIVE/cacerts .
popd
# Install extension symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir}
- pushd $RPM_BUILD_ROOT%{jvmjardir}
- RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir})
+ install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix}
+ pushd $RPM_BUILD_ROOT%{jvmjardir $suffix}
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir $suffix}/lib %{jvmjardir $suffix})
ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
ln -sf $RELATIVE/jce.jar jce-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
@@ -682,15 +888,15 @@ mkdir -p
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
popd
# Install JCE policy symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix $suffix}/jce/vanilla
# Install versioned symlinks.
pushd $RPM_BUILD_ROOT%{_jvmdir}
- ln -sf %{jredir} %{jrelnk}
+ ln -sf %{jredir $suffix} %{jrelnk $suffix}
popd
pushd $RPM_BUILD_ROOT%{_jvmjardir}
- ln -sf %{sdkdir} %{jrelnk}
+ ln -sf %{sdkdir $suffix} %{jrelnk $suffix}
popd
# Remove javaws man page
@@ -704,14 +910,17 @@ mkdir -p
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
- $manpage .1)-%{uniquesuffix}.1
+ $manpage .1)-%{uniquesuffix $suffix}.1
done
# Install demos and samples.
- cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+ cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
mkdir -p sample/rmi
- mv bin/java-rmi.cgi sample/rmi
- cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+ if [ ! -e sample/rmi/java-rmi.cgi ] ; then
+ # hack to allow --short-circuit on install
+ mv bin/java-rmi.cgi sample/rmi
+ fi
+ cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
popd
@@ -729,8 +938,8 @@ done
# Install desktop files.
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
-for e in jconsole policytool ; do
- desktop-file-install --vendor=%{uniquesuffix} --mode=644 \
+for e in jconsole$suffix policytool$suffix ; do
+ desktop-file-install --vendor=%{uniquesuffix $suffix} --mode=644 \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
done
@@ -739,26 +948,26 @@ done
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
# Find JRE directories.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
+find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type d \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \
- > %{name}.files-headless
+ > %{name}.files-headless"$suffix"
# Find JRE files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
+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
+ > %{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}/jre/lib/%{archinstall}/libjsoundalsa.so
-%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so
-%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so
-%{_jvmdir}/%{uniquesuffix}/jre/bin/policytool"
+"%{_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`
+ALL=`cat %{name}.files.all"$suffix"`
for file in $ALL ; do
INLCUDE="NO" ;
for blacklist in $NOT_HEADLESS ; do
@@ -770,59 +979,62 @@ for file in $ALL ; do
fi;
done
if [ "x$INLCUDE" = "xNO" ]; then
- echo "$file" >> %{name}.files-headless
+ echo "$file" >> %{name}.files-headless"$suffix"
else
- echo "$file" >> %{name}.files
+ echo "$file" >> %{name}.files"$suffix"
fi
done
# Find demo directories.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
+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
+ > %{name}-demo.files"$suffix"
# FIXME: remove SONAME entries from demo DSOs. See
#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
# Find non-documentation demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
-type f -o -type l | sort \
| grep -v README \
| sed 's|'$RPM_BUILD_ROOT'||' \
- >> %{name}-demo.files
+ >> %{name}-demo.files"$suffix"
# Find documentation demo files.
-find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
- $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
-type f -o -type l | sort \
| grep README \
| sed 's|'$RPM_BUILD_ROOT'||' \
| sed 's|^|%doc |' \
- >> %{name}-demo.files
+ >> %{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}/lib/%{archinstall}
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}
ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/ext
ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
popd
- pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/
echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
echo "" >> accessibility.properties
echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >>
accessibility.properties
echo "" >> accessibility.properties
popd
+# end, dual install
+done
+
%pretrans headless -p <lua>
-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
local posix = require "posix"
-local currentjvm = "%{uniquesuffix}"
-local jvmdir = "%{_jvmdir}"
+local currentjvm = "%{uniquesuffix \"\"}"
+local jvmdir = "%{_jvmdir \"\"}"
local jvmDestdir = jvmdir
local origname = "%{name}"
local origjavaver = "%{javaver}"
@@ -1221,120 +1433,27 @@ exit 0
%files -f %{name}.files
-%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
-%{_datadir}/applications/*policytool.desktop
+%{files_jre %{nil}}
# 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 headless -f %{name}.files-headless
-%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
-%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir}
-%{_jvmdir}/%{jrelnk}
-%{_jvmjardir}/%{jrelnk}
-%{_jvmprivdir}/*
-%{jvmjardir}
-%dir %{_jvmdir}/%{jredir}/lib/security
-%{_jvmdir}/%{jredir}/lib/security/cacerts
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties
-%{_mandir}/man1/java-%{uniquesuffix}.1*
-%{_mandir}/man1/jjs-%{uniquesuffix}.1*
-%{_mandir}/man1/keytool-%{uniquesuffix}.1*
-%{_mandir}/man1/orbd-%{uniquesuffix}.1*
-%{_mandir}/man1/pack200-%{uniquesuffix}.1*
-%{_mandir}/man1/rmid-%{uniquesuffix}.1*
-%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1*
-%{_mandir}/man1/servertool-%{uniquesuffix}.1*
-%{_mandir}/man1/tnameserv-%{uniquesuffix}.1*
-%{_mandir}/man1/unpack200-%{uniquesuffix}.1*
-%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg
-%{_jvmdir}/%{jredir}/lib/audio/
-%ifarch %{jit_arches}
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa
-%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa
-%endif
-
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
+%{files_jre_headless %{nil}}
%files devel
-%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/j2sdk-image/ASSEMBLY_EXCEPTION
-%doc %{buildoutputdir}/images/j2sdk-image/LICENSE
-%doc %{buildoutputdir}/images/j2sdk-image/THIRD_PARTY_README
-%dir %{_jvmdir}/%{sdkdir}/bin
-%dir %{_jvmdir}/%{sdkdir}/include
-%dir %{_jvmdir}/%{sdkdir}/lib
-%if %{with_systemtap}
-%dir %{_jvmdir}/%{sdkdir}/tapset
-%endif
-%{_jvmdir}/%{sdkdir}/bin/*
-%{_jvmdir}/%{sdkdir}/include/*
-%{_jvmdir}/%{sdkdir}/lib/*
-%if %{with_systemtap}
-%{_jvmdir}/%{sdkdir}/tapset/*.stp
-%endif
-%{_jvmjardir}/%{sdkdir}
-%{_datadir}/applications/*jconsole.desktop
-%{_mandir}/man1/appletviewer-%{uniquesuffix}.1*
-%{_mandir}/man1/extcheck-%{uniquesuffix}.1*
-%{_mandir}/man1/idlj-%{uniquesuffix}.1*
-%{_mandir}/man1/jar-%{uniquesuffix}.1*
-%{_mandir}/man1/jarsigner-%{uniquesuffix}.1*
-%{_mandir}/man1/javac-%{uniquesuffix}.1*
-%{_mandir}/man1/javadoc-%{uniquesuffix}.1*
-%{_mandir}/man1/javah-%{uniquesuffix}.1*
-%{_mandir}/man1/javap-%{uniquesuffix}.1*
-%{_mandir}/man1/jconsole-%{uniquesuffix}.1*
-%{_mandir}/man1/jcmd-%{uniquesuffix}.1*
-%{_mandir}/man1/jdb-%{uniquesuffix}.1*
-%{_mandir}/man1/jdeps-%{uniquesuffix}.1*
-%{_mandir}/man1/jhat-%{uniquesuffix}.1*
-%{_mandir}/man1/jinfo-%{uniquesuffix}.1*
-%{_mandir}/man1/jmap-%{uniquesuffix}.1*
-%{_mandir}/man1/jps-%{uniquesuffix}.1*
-%{_mandir}/man1/jrunscript-%{uniquesuffix}.1*
-%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1*
-%{_mandir}/man1/jstack-%{uniquesuffix}.1*
-%{_mandir}/man1/jstat-%{uniquesuffix}.1*
-%{_mandir}/man1/jstatd-%{uniquesuffix}.1*
-%{_mandir}/man1/native2ascii-%{uniquesuffix}.1*
-%{_mandir}/man1/policytool-%{uniquesuffix}.1*
-%{_mandir}/man1/rmic-%{uniquesuffix}.1*
-%{_mandir}/man1/schemagen-%{uniquesuffix}.1*
-%{_mandir}/man1/serialver-%{uniquesuffix}.1*
-%{_mandir}/man1/wsgen-%{uniquesuffix}.1*
-%{_mandir}/man1/wsimport-%{uniquesuffix}.1*
-%{_mandir}/man1/xjc-%{uniquesuffix}.1*
-%if %{with_systemtap}
-%{tapsetroot}
-%endif
+%{files_devel %{nil}}
%files demo -f %{name}-demo.files
-%defattr(-,root,root,-)
-%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+%{files_demo %{nil}}
%files src
-%defattr(-,root,root,-)
-%doc README.src
-%{_jvmdir}/%{sdkdir}/src.zip
+%{files_src %{nil}}
%files javadoc
-%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{uniquejavadocdir}
-%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+%{files_javadoc %{nil}}
%files accessibility
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
-%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
-%{_jvmdir}/%{jredir}/lib/accessibility.properties
+%{files_accessibility %{nil}}
%changelog
* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-12.b02
commit c02b4497695c1ed0a3c24ff2c7d1d0dd42c73190
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 24 13:48:54 2014 +0200
- added patch12,removeSunEcProvider-RH1154143
- xdump excluded from ppc64le (rh1156151)
- Add check for src.zip completeness. See RH1130490 (by sgehwolf(a)redhat.com)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6480ae3..4c6077b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -123,7 +123,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -189,6 +189,7 @@ Patch6: disable-doclint-by-default.patch
Patch7: include-all-srcs.patch
# Problem discovered with make 4.0
Patch11: hotspot-build-j-directive.patch
+Patch12: removeSunEcProvider-RH1154143.patch
#
# OpenJDK specific patches
@@ -452,6 +453,7 @@ sh %{SOURCE12}
%patch6
%patch7
%patch11
+%patch12
# s390 build fixes
%ifarch s390
@@ -611,6 +613,9 @@ if [ -f "$ZERO_JVM" ] ; then
nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
fi
+# Check src.zip has all sources. See RHBZ#1130490
+jar -tf $JAVA_HOME/src.zip | grep Unsafe
+
%install
rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm*
@@ -992,9 +997,11 @@ exit 0
# fixed upstream.
%post headless
%ifarch %{jit_arches}
+%ifnarch %{ppc64le}
#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
+%endif
ext=.gz
alternatives \
@@ -1330,7 +1337,13 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-11.b26
+* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-12.b02
+- added patch12,removeSunEcProvider-RH1154143
+- xdump excluded from ppc64le (rh1156151)
+- Add check for src.zip completeness. See RH1130490 (by sgehwolf(a)redhat.com)
+- Resolves: rhbz#1125260
+
+* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-11.b02
- fixing flags usages (thanx to jerboaa!)
* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-10.b26
diff --git a/removeSunEcProvider-RH1154143.patch b/removeSunEcProvider-RH1154143.patch
new file mode 100644
index 0000000..8b9ced9
--- /dev/null
+++ b/removeSunEcProvider-RH1154143.patch
@@ -0,0 +1,23 @@
+--- jdk8/jdk/src/share/lib/security/java.security-linux
++++ jdk8/jdk/src/share/lib/security/java.security-linux
+@@ -67,13 +67,13 @@
+ #
+ security.provider.1=sun.security.provider.Sun
+ security.provider.2=sun.security.rsa.SunRsaSign
+-security.provider.3=sun.security.ec.SunEC
+-security.provider.4=com.sun.net.ssl.internal.ssl.Provider
+-security.provider.5=com.sun.crypto.provider.SunJCE
+-security.provider.6=sun.security.jgss.SunProvider
+-security.provider.7=com.sun.security.sasl.Provider
+-security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
+-security.provider.9=sun.security.smartcardio.SunPCSC
++security.provider.3=com.sun.net.ssl.internal.ssl.Provider
++security.provider.4=com.sun.crypto.provider.SunJCE
++security.provider.5=sun.security.jgss.SunProvider
++security.provider.6=com.sun.security.sasl.Provider
++security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
++security.provider.8=sun.security.smartcardio.SunPCSC
++
+
+ #
+ # Sun Provider SecureRandom seed source.
commit 33767a37b3e447320731662a3c3e4979ad4aceea
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 25 17:05:13 2014 +0200
second fix to flags
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4a8e014..6480ae3 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -123,7 +123,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -513,6 +513,7 @@ export CFLAGS="$CFLAGS -mieee"
EXTRA_CFLAGS="-fstack-protector-strong"
#see
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize"
+EXTRA_CPP_FLAGS="-fno-devirtualize"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
@@ -553,7 +554,7 @@ bash ../../configure \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
- --with-extra-cxxflags="-fno-devirtualize" \
+ --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-num-cores="$NUM_PROC"
@@ -1329,6 +1330,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-11.b26
+- fixing flags usages (thanx to jerboaa!)
+
* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-10.b26
- sync with rhel7
commit 0d059ac1e064eaa1d5b61da72d059884992c46ad
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 25 17:01:58 2014 +0200
Fixing flags
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ac5c83c..4a8e014 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -511,10 +511,14 @@ export CFLAGS="$CFLAGS -mieee"
%endif
EXTRA_CFLAGS="-fstack-protector-strong"
+#see
https://bugzilla.redhat.com/show_bug.cgi?id=1120792
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-devirtualize"
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
# otherwise generate wrong code producing segfaults.
%ifarch %{power64} ppc
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-tree-vectorize"
+# fix rpmlint warnings
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
export EXTRA_CFLAGS
@@ -549,7 +553,6 @@ bash ../../configure \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
- --with-extra-cflags="-fno-devirtualize" \
--with-extra-cxxflags="-fno-devirtualize" \
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-num-cores="$NUM_PROC"
commit d90461242163fc1aa9cc8c4a024c94e3601d1821
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 25 12:16:24 2014 +0200
sync with rhel7
diff --git a/1015432.patch b/1015432.patch
deleted file mode 100644
index c8323e8..0000000
--- a/1015432.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12 2013 -0700
-+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33 2013 +0000
-@@ -4797,9 +4797,19 @@
- // size. Add a page for compiler2 recursion in main thread.
- // Add in 2*BytesPerWord times page size to account for VM stack during
- // class initialization depending on 32 or 64 bit VM.
-+
-+
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
-- (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
-+ (2*BytesPerWord COMPILER2_PRESENT(+1))
-+ *
-+#ifdef PPC
-+ NOT_ZERO ( Linux::vm_default_page_size() )
-+ ZERO_ONLY ( Linux::page_size() )
-+#else
-+ ( Linux::vm_default_page_size() )
-+#endif
-+ );
-
- size_t threadStackSizeInBytes = ThreadStackSize * K;
- if (threadStackSizeInBytes != 0 &&
diff --git a/atomic_linux_zero.inline.hpp.patch b/atomic_linux_zero.inline.hpp.patch
new file mode 100644
index 0000000..78be93e
--- /dev/null
+++ b/atomic_linux_zero.inline.hpp.patch
@@ -0,0 +1,45 @@
+diff --git a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+--- jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+@@ -222,31 +222,35 @@
+
+ inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) {
+ #ifdef ARM
+- return arm_lock_test_and_set(dest, exchange_value);
++ jint result = arm_lock_test_and_set(dest, exchange_value);
+ #else
+ #ifdef M68K
+- return m68k_lock_test_and_set(dest, exchange_value);
++ jint result = m68k_lock_test_and_set(dest, exchange_value);
+ #else
+ // __sync_lock_test_and_set is a bizarrely named atomic exchange
+ // operation. Note that some platforms only support this with the
+ // limitation that the only valid value to store is the immediate
+ // constant 1. There is a test for this in JNI_CreateJavaVM().
+- return __sync_lock_test_and_set (dest, exchange_value);
++ jint result = __sync_lock_test_and_set (dest, exchange_value);
++ __sync_synchronize();
+ #endif // M68K
+ #endif // ARM
++ return result;
+ }
+
+ inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value,
+ volatile intptr_t* dest) {
+ #ifdef ARM
+- return arm_lock_test_and_set(dest, exchange_value);
++ intptr_t result = arm_lock_test_and_set(dest, exchange_value);
+ #else
+ #ifdef M68K
+- return m68k_lock_test_and_set(dest, exchange_value);
++ intptr_t result = m68k_lock_test_and_set(dest, exchange_value);
+ #else
+- return __sync_lock_test_and_set (dest, exchange_value);
++ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
++ __sync_synchronize();
+ #endif // M68K
+ #endif // ARM
++ return result;
+ }
+
+ inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) {
diff --git a/fix_ZERO_ARCHDEF_ppc.patch b/fix_ZERO_ARCHDEF_ppc.patch
new file mode 100644
index 0000000..e7724ae
--- /dev/null
+++ b/fix_ZERO_ARCHDEF_ppc.patch
@@ -0,0 +1,13 @@
+diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
+--- jdk8/common/autoconf/platform.m4
++++ jdk8/common/autoconf/platform.m4
+@@ -367,7 +367,8 @@
+
+ # ZERO_ARCHDEF is used to enable architecture-specific code
+ case "${OPENJDK_TARGET_CPU}" in
+- ppc*) ZERO_ARCHDEF=PPC ;;
++ ppc) ZERO_ARCHDEF=PPC32 ;;
++ ppc64) ZERO_ARCHDEF=PPC64 ;;
+ s390*) ZERO_ARCHDEF=S390 ;;
+ sparc*) ZERO_ARCHDEF=SPARC ;;
+ x86_64*) ZERO_ARCHDEF=AMD64 ;;
diff --git a/java-1.8.0-openjdk-ppc-zero-hotspot.patch
b/java-1.8.0-openjdk-ppc-zero-hotspot.patch
deleted file mode 100644
index ddadce8..0000000
--- a/java-1.8.0-openjdk-ppc-zero-hotspot.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64
jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
---- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 2013-02-22
19:02:06.000000000 +0100
-+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2013-04-18
16:21:24.897403406 +0200
-@@ -32,11 +32,11 @@
- //
-
- define_pd_global(bool, DontYieldALot, false);
--define_pd_global(intx, ThreadStackSize, 1536);
-+define_pd_global(intx, ThreadStackSize, 1664);
- #ifdef _LP64
--define_pd_global(intx, VMThreadStackSize, 1024);
-+define_pd_global(intx, VMThreadStackSize, 1664);
- #else
--define_pd_global(intx, VMThreadStackSize, 512);
-+define_pd_global(intx, VMThreadStackSize, 1152);
- #endif // _LP64
- define_pd_global(intx, CompilerThreadStackSize, 0);
- define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 287ccca..ac5c83c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -123,7 +123,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -177,8 +177,6 @@ Source101: config.sub
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
-# RHBZ 1015432
-Patch2: 1015432.patch
# Restrict access to java-atk-wrapper classes
Patch3: java-atk-wrapper-security.patch
# RHBZ 808293
@@ -195,23 +193,22 @@ Patch11: hotspot-build-j-directive.patch
#
# OpenJDK specific patches
#
-Patch666: stackoverflow-ppc32_64-20140828.patch
-
# JVM heap size changes for s390 (thanks to aph)
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
Patch102: %{name}-size_t.patch
-# Patch for PPC/PPC64
-Patch103: %{name}-ppc-zero-hotspot.patch
-
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch300: jstack-pr1845.patch
+Patch400: ppc_stack_overflow_fix.patch
+Patch401: fix_ZERO_ARCHDEF_ppc.patch
+Patch402: atomic_linux_zero.inline.hpp.patch
+
Patch9999: enableArm64.patch
BuildRequires: autoconf
@@ -444,16 +441,11 @@ sh %{SOURCE12}
%patch9999
%endif
-%ifnarch %{aarch64}
-%patch666
-%endif
-
%patch201
%patch202
%patch203
%patch1
-#%%patch2
%patch3
%patch4
%patch5
@@ -467,10 +459,11 @@ sh %{SOURCE12}
%patch102
%endif
-%ifarch ppc %{power64}
-# PPC fixes
-%patch103
-%endif
+# Zero PPC fixes.
+# TODO: propose them upstream
+%patch400
+%patch401
+%patch402
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -517,7 +510,13 @@ export ARCH_DATA_MODEL=64
export CFLAGS="$CFLAGS -mieee"
%endif
-export CFLAGS="$CFLAGS -fstack-protector-strong"
+EXTRA_CFLAGS="-fstack-protector-strong"
+# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
+# otherwise generate wrong code producing segfaults.
+%ifarch %{power64} ppc
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-tree-vectorize"
+%endif
+export EXTRA_CFLAGS
(cd jdk8/common/autoconf
bash ./autogen.sh
@@ -550,9 +549,10 @@ bash ../../configure \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
- --with-num-cores="$NUM_PROC" \
--with-extra-cflags="-fno-devirtualize" \
- --with-extra-cxxflags="-fno-devirtualize"
+ --with-extra-cxxflags="-fno-devirtualize" \
+ --with-extra-cflags="$EXTRA_CFLAGS" \
+ --with-num-cores="$NUM_PROC"
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
@@ -1326,6 +1326,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-10.b26
+- sync with rhel7
+
* Wed Sep 17 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-9.b26
- Remove LIBDIR and funny definition of _libdir.
- Fix rpmlint warnings about macros in comments.
diff --git a/ppc_stack_overflow_fix.patch b/ppc_stack_overflow_fix.patch
new file mode 100644
index 0000000..754797a
--- /dev/null
+++ b/ppc_stack_overflow_fix.patch
@@ -0,0 +1,48 @@
+diff --git a/src/cpu/zero/vm/stack_zero.hpp b/src/cpu/zero/vm/stack_zero.hpp
+--- jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
++++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
+@@ -99,7 +99,7 @@
+ int shadow_pages_size() const {
+ return _shadow_pages_size;
+ }
+- int abi_stack_available(Thread *thread) const;
++ ssize_t abi_stack_available(Thread *thread) const;
+
+ public:
+ void overflow_check(int required_words, TRAPS);
+diff --git a/src/cpu/zero/vm/stack_zero.inline.hpp
b/src/cpu/zero/vm/stack_zero.inline.hpp
+--- jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
++++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
+@@ -47,10 +47,11 @@
+ // This method returns the amount of ABI stack available for us
+ // to use under normal circumstances. Note that the returned
+ // value can be negative.
+-inline int ZeroStack::abi_stack_available(Thread *thread) const {
+- int stack_used = thread->stack_base() - (address) &stack_used;
+- int stack_free = thread->stack_size() - stack_used;
+- return stack_free - shadow_pages_size();
++inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
++ ssize_t stack_used = thread->stack_base() - (address) &stack_used
++ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
++ ssize_t stack_free = thread->stack_size() - stack_used;
++ return stack_free;
+ }
+
+ #endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
+diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
+--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp
++++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -4700,6 +4700,13 @@
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
+ (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
++#ifdef ZERO
++ // If this is Zero, allow at the very minimum one page each for the
++ // Zero stack and the native stack. This won't make any difference
++ // for 4k pages, but is significant for large pages.
++ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
++ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) *
Linux::page_size());
++#endif
+
+ size_t threadStackSizeInBytes = ThreadStackSize * K;
+ if (threadStackSizeInBytes != 0 &&
diff --git a/stackoverflow-ppc32_64-20140828.patch
b/stackoverflow-ppc32_64-20140828.patch
deleted file mode 100644
index cdd2265..0000000
--- a/stackoverflow-ppc32_64-20140828.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -r f0d8ef4d9f93 src/os/linux/vm/os_linux.cpp
---- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Aug 13 15:49:58 2014 +0100
-+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Aug 28 09:51:18 2014 +0000
-@@ -4843,6 +4843,7 @@
-
- pthread_mutex_init(&dl_mutex, NULL);
-
-+NOT_ZERO (
- // If the pagesize of the VM is greater than 8K determine the appropriate
- // number of initial guard pages. The user can change this with the
- // command line arguments, if needed.
-@@ -4851,6 +4852,7 @@
- StackRedPages = 1;
- StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()),
vm_page_size()) / vm_page_size();
- }
-+ )
- }
-
- // To install functions for atexit system call
-@@ -4903,10 +4905,16 @@
- // size. Add a page for compiler2 recursion in main thread.
- // Add in 2*BytesPerWord times page size to account for VM stack during
- // class initialization depending on 32 or 64 bit VM.
-+NOT_ZERO (
- os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
- (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
- (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
--
-+ )
-+ZERO_ONLY (
-+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
-+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
-+ 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
-+ )
- size_t threadStackSizeInBytes = ThreadStackSize * K;
- if (threadStackSizeInBytes != 0 &&
- threadStackSizeInBytes < os::Linux::min_stack_allowed) {
commit c2cceb304c1d33301fa088e5ede69a16c7342a60
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Sep 17 16:08:30 2014 -0400
Fix rpmlint warnings
- Use the standard _libdir macro instead of re-defining _libdir (and
not using it). Remove unused LIBDIR macro.
- Use %% to escape macros in comments. Macros in comments are
evaluated too and may lead to surprises if they contain a new
line.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6d3138e..287ccca 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -78,16 +78,6 @@
%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0],
$ARGV[1])'
%global abs2rel %{__perl} -e %{script}
-# Hard-code libdir on 64-bit architectures to make the 64-bit JDK
-# simply be another alternative.
-%global LIBDIR %{_libdir}
-#backuped original one
-%ifarch %{multilib_arches}
-%global syslibdir %{_prefix}/lib64
-%global _libdir %{_prefix}/lib
-%else
-%global syslibdir %{_libdir}
-%endif
# Standard JPackage naming and versioning defines.
%global origin openjdk
@@ -133,7 +123,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -151,8 +141,8 @@ License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with
exceptions and L
URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
-# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
-# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
+# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%%{updatever}-%%{buildver}
+# ./generate_source_tarball.sh aarch64-port jdk8 %%{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
Source1:
aarch64-hotspot-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
@@ -463,7 +453,7 @@ sh %{SOURCE12}
%patch203
%patch1
-#%patch2
+#%%patch2
%patch3
%patch4
%patch5
@@ -749,7 +739,7 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'||' \
%{name}.files.all
-#split %{name}.files to
%{name}.files-headless and %{name}.files
+#split %%{name}.files to %%{name}.files-headless and %%{name}.files
#see
https://bugzilla.redhat.com/show_bug.cgi?id=875408
NOT_HEADLESS=\
"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so
@@ -758,7 +748,7 @@ NOT_HEADLESS=\
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so
%{_jvmdir}/%{uniquesuffix}/jre/bin/policytool"
-#filter %{name}.files from %{name}.files.all to %{name}.files-headless
+#filter %%{name}.files from %%{name}.files.all to %%{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
INLCUDE="NO" ;
@@ -805,10 +795,10 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
# 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}/lib/%{archinstall}
- ln -s %{syslibdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
+ ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
popd
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext
- ln -s %{syslibdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
+ ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
popd
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/
echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
@@ -1336,6 +1326,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Sep 17 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-9.b26
+- Remove LIBDIR and funny definition of _libdir.
+- Fix rpmlint warnings about macros in comments.
+
* Thu Sep 11 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-8.b26
- fixed headless to become headless again
- jre/bin/policytool added to not headless exclude list
@@ -1576,7 +1570,7 @@ exit 0
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Aug 02 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.15.b89
-- Added a missing includes patch (#302/%{name}-arm64-missing-includes.patch)
+- Added a missing includes patch (#302/%%{name}-arm64-missing-includes.patch)
- Added --disable-precompiled-headers for arm64 build
* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
commit 166338985640665e59a06f0fc1d62489aeb38ac9
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 11 15:40:02 2014 +0200
fixed headless to become headless again
jre/bin/policytool added to not headless exclude list
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5984aa6..6d3138e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -133,7 +133,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -756,7 +756,8 @@ NOT_HEADLESS=\
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so"
+%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so
+%{_jvmdir}/%{uniquesuffix}/jre/bin/policytool"
#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
@@ -1335,6 +1336,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Sep 11 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-8.b26
+- fixed headless to become headless again
+ - jre/bin/policytool added to not headless exclude list
+
* Wed Sep 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-7.b26
- Update aarch64 hotspot to latest upstream version
commit 75c2db9e804d26ee478435a2ca5460730be2c744
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 11 10:23:23 2014 +0200
Update aarch64 hotspot to latest upstream version
diff --git a/.gitignore b/.gitignore
index e1af081..f03e270 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,5 @@
/jdk8u-jdk8u40-b02.tar.xz
/jdk8u-jdk8u20-b26.tar.xz
/aarch64-hotspot-jdk8u40-b02.tar.xz
+/aarch64-hotspot-jdk8u40-b02-c6375c27cbfa.tar.xz
+/aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 298295b..5984aa6 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -94,7 +94,8 @@
%global updatever 40
%global buildver b02
%global aarch64_updatever 40
-%global aarch64_buildver b02
+%global aarch64_buildver b04
+%global aarch64_changesetid a6df78e590bb
# priority must be 6 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -132,7 +133,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -153,7 +154,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: aarch64-hotspot-jdk8u%{aarch64_updatever}-%{aarch64_buildver}.tar.xz
+Source1:
aarch64-hotspot-jdk8u%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -548,7 +549,7 @@ bash ../../configure \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
%ifarch %{aarch64}
-
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}" \
+
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}"
\
%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@@ -1334,6 +1335,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Sep 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-7.b26
+- Update aarch64 hotspot to latest upstream version
+
* Fri Sep 05 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-6.b26
- Use %%{power64} instead of %%{ppc64}.
diff --git a/sources b/sources
index 36415f0..fe8a12d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
78d96904ad6d9a7cee76849b0e49b6f0 jdk8u-jdk8u40-b02.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-7dcced61a647aec777d6567d6d7070da aarch64-hotspot-jdk8u40-b02.tar.xz
+8a9d561065f55762cafd9f475b26cf68 aarch64-hotspot-jdk8u40-b04-a6df78e590bb.tar.xz
commit 3dff916b8b4af26de7ee24759ae61c498095c5c4
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Sep 5 17:17:41 2014 -0400
Use %{power64} instead of %{ppc64}
This fixes and uses the jit on ppc64 - be and le.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d82723c..298295b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -6,7 +6,7 @@
%global ppc64le ppc64le
%global ppc64be ppc64 ppc64p7
%global multilib_arches %{power64} sparc64 x86_64
-%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{ppc64}
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -28,9 +28,6 @@
%ifarch %{power64}
%global archinstall ppc64
%endif
-%ifarch %{ppc64le}
-%global archinstall ppc64
-%endif
%ifarch %{ix86}
%global archinstall i386
%endif
@@ -135,7 +132,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -1337,7 +1334,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Thu Sep 04 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-5.b26
+* Fri Sep 05 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-6.b26
+- Use %%{power64} instead of %%{ppc64}.
+
+* Thu Sep 04 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-5.b26
- Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK
- commented out patch2 (obsolated by 666)
- all ppc64 added to jitarches
commit 65d16c993c87b5cc9c4cc9b9637d17ed65770e95
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Sep 5 14:56:19 2014 +0200
- Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK
- commented out patch2 (obsolated by 666)
- all ppc64 added to jitarches
- Use the cpp interpreter on ppc64le.
diff --git a/.gitignore b/.gitignore
index 63edfc2..e1af081 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,4 @@
/jdk8u-jdk8u40-b01.tar.xz
/jdk8u-jdk8u40-b02.tar.xz
/jdk8u-jdk8u20-b26.tar.xz
+/aarch64-hotspot-jdk8u40-b02.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fb88e49..d82723c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,14 +1,12 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global aarch64_hg_tag 992
-
%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} %{ppc64le}
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{ppc64}
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -98,8 +96,8 @@
%global origin openjdk
%global updatever 40
%global buildver b02
-%global aarch64_updatever 0
-%global aarch64_buildver b128
+%global aarch64_updatever 40
+%global aarch64_buildver b02
# priority must be 6 digits in total
%global priority 18000%{updatever}
%global javaver 1.8.0
@@ -137,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 5.%{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
@@ -158,7 +156,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
+Source1: aarch64-hotspot-jdk8u%{aarch64_updatever}-%{aarch64_buildver}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -209,6 +207,7 @@ Patch11: hotspot-build-j-directive.patch
#
# OpenJDK specific patches
#
+Patch666: stackoverflow-ppc32_64-20140828.patch
# JVM heap size changes for s390 (thanks to aph)
@@ -457,12 +456,16 @@ sh %{SOURCE12}
%patch9999
%endif
+%ifnarch %{aarch64}
+%patch666
+%endif
+
%patch201
%patch202
%patch203
%patch1
-%patch2
+#%patch2
%patch3
%patch4
%patch5
@@ -539,15 +542,16 @@ pushd %{buildoutputdir}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
+%endif
+%ifarch %{ppc64le}
+ --with-jvm-interpreter=cpp \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
-%ifnarch %{aarch64}
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
-%else
- --with-build-number=%{aarch64_buildver} \
- --with-user-release-suffix="aarch64-%{aarch64_hg_tag}" \
+%ifarch %{aarch64}
+
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}" \
%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@@ -1333,6 +1337,14 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Sep 04 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-5.b26
+- Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK
+- commented out patch2 (obsolated by 666)
+- all ppc64 added to jitarches
+
+* Thu Sep 04 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-4.b26
+- Use the cpp interpreter on ppc64le.
+
* Wed Sep 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-3.b26
- fixed RH1136544, orriginal issue, state of pc64le jit remians mistery
diff --git a/sources b/sources
index c32111d..36415f0 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
78d96904ad6d9a7cee76849b0e49b6f0 jdk8u-jdk8u40-b02.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-8c0436da8098f15c7bda2fa4f927e525 aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
+7dcced61a647aec777d6567d6d7070da aarch64-hotspot-jdk8u40-b02.tar.xz
diff --git a/stackoverflow-ppc32_64-20140828.patch
b/stackoverflow-ppc32_64-20140828.patch
new file mode 100644
index 0000000..cdd2265
--- /dev/null
+++ b/stackoverflow-ppc32_64-20140828.patch
@@ -0,0 +1,37 @@
+diff -r f0d8ef4d9f93 src/os/linux/vm/os_linux.cpp
+--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Aug 13 15:49:58 2014 +0100
++++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Aug 28 09:51:18 2014 +0000
+@@ -4843,6 +4843,7 @@
+
+ pthread_mutex_init(&dl_mutex, NULL);
+
++NOT_ZERO (
+ // If the pagesize of the VM is greater than 8K determine the appropriate
+ // number of initial guard pages. The user can change this with the
+ // command line arguments, if needed.
+@@ -4851,6 +4852,7 @@
+ StackRedPages = 1;
+ StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()),
vm_page_size()) / vm_page_size();
+ }
++ )
+ }
+
+ // To install functions for atexit system call
+@@ -4903,10 +4905,16 @@
+ // size. Add a page for compiler2 recursion in main thread.
+ // Add in 2*BytesPerWord times page size to account for VM stack during
+ // class initialization depending on 32 or 64 bit VM.
++NOT_ZERO (
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
+ (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
+-
++ )
++ZERO_ONLY (
++ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
++ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
++ 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
++ )
+ size_t threadStackSizeInBytes = ThreadStackSize * K;
+ if (threadStackSizeInBytes != 0 &&
+ threadStackSizeInBytes < os::Linux::min_stack_allowed) {
commit e56ea6838bf3fae7cbbb227f4b141a7271ddc53f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Sep 4 10:10:36 2014 +0200
ppc64le archinstal moved to ppc, ppc64le put to jitarches
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2e2b832..fb88e49 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -8,7 +8,7 @@
%global ppc64le ppc64le
%global ppc64be ppc64 ppc64p7
%global multilib_arches %{power64} sparc64 x86_64
-%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{ppc64le}
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
@@ -31,7 +31,7 @@
%global archinstall ppc64
%endif
%ifarch %{ppc64le}
-%global archinstall ppc64le
+%global archinstall ppc64
%endif
%ifarch %{ix86}
%global archinstall i386
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -1333,6 +1333,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Sep 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-3.b26
+- fixed RH1136544, orriginal issue, state of pc64le jit remians mistery
+
* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-2.b26
- requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1
- see RH1130800#c5
commit ac0d9480b7113e609b9747a3a3842a88d2bb9e84
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Sep 2 08:34:42 2014 +0200
requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1
- see RH1130800#c5
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ded7080..2e2b832 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -258,7 +258,7 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
-BuildRequires: %{_datadir}/javazi-1.8/tzdb.dat
+BuildRequires: tzdata-java >= 2014f-1
# cacerts build requirement.
BuildRequires: openssl
@@ -305,8 +305,7 @@ Requires: ca-certificates
# Require jpackage-utils for ownership of /usr/lib/jvm/
Requires: jpackage-utils
# Require zoneinfo data provided by tzdata-java subpackage.
-Requires: tzdata-java
-Requires: %{_datadir}/javazi-1.8/tzdb.dat
+Requires: tzdata-java >= 2014f-1
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -1334,7 +1333,11 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Thu Aug 28 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-2.b26
+- requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1
+- see RH1130800#c5
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
- adapted aarch64 patch
- removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
commit 08de02315583936ee59e3bb46aa405e81d5c5aa6
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Aug 29 14:48:12 2014 +0200
Minor changelog fixes
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f9d4cd9..ded7080 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1335,7 +1335,6 @@ exit 0
%changelog
* Thu Aug 28 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
-- updated to u20-b26
- adapted aarch64 patch
- removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
@@ -1350,7 +1349,7 @@ exit 0
- removed patch8 set-active-window.patch
- removed patch9 javadoc-error-jdk-8029145.patch
- removed patch10 javadoc-error-jdk-8037484.patch
-- remopved patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
+- removed patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
* Tue Aug 19 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-19.b12
- fixed desktop icons
commit 993453919f554e370356c2dc313816ea4e699c14
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 28 18:31:43 2014 +0200
More tunning for s390/s390x patch
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index a9f8a7f..5f39fcf 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -97,18 +97,6 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.siz
}
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-05-16
13:09:21.360132543 -0400
-@@ -68,7 +68,7 @@ ParMarkBitMap::initialize(MemRegion cove
- if (_virtual_space != NULL &&
_virtual_space->expand_by(_reserved_byte_size)) {
- _region_start = covered_region.start();
- _region_size = covered_region.word_size();
-- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr();
-+ BitMap::bm_word_t* map =
(BitMap::bm_word_t*)_virtual_space->reserved_low_addr();
- _beg_bits.set_map(map);
- _beg_bits.set_size(bits / 2);
- _end_bits.set_map(map + words / 2);
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 2014-03-11
16:02:13.000000000 -0400
+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-05-16
13:09:21.360132543 -0400
@@ -282,12 +270,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);
-@@ -1397,7 +1397,7 @@ bool verify_object_alignment() {
- return true;
- }
-
--uintx Arguments::max_heap_for_compressed_oops() {
-+size_t Arguments::max_heap_for_compressed_oops() {
- // Avoid sign flip.
- assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page
size");
- // We need to fit both the NULL page and the heap into the memory budget, while
commit cf544ea5850cee501ea628114f77f7b67e723d5d
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 28 18:13:56 2014 +0200
Updated to u40-b02, adapted seconadry-arches patches
diff --git a/.gitignore b/.gitignore
index 66459fe..63edfc2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,5 @@
/aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
/jdk8u-jdk8u20-b23.tar.xz
/jdk8u-jdk8u40-b01.tar.xz
+/jdk8u-jdk8u40-b02.tar.xz
+/jdk8u-jdk8u20-b26.tar.xz
diff --git a/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
b/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
deleted file mode 100644
index 8da775d..0000000
--- a/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From ebf2be47870510a6348db5fe3419578ec6fea877 Mon Sep 17 00:00:00 2001
-From: Brent Baude <baude(a)us.ibm.com>
-Date: Thu, 24 Apr 2014 09:32:36 -0500
-Subject: [PATCH] PPC64LE arch support in openjdk-1.8
-
----
- jdk8/common/autoconf/platform.m4 | 6 ++++++
- jdk8/hotspot/src/os/linux/vm/os_linux.cpp | 2 ++
- 2 files changed, 8 insertions(+)
-
-diff --git a/jdk8/common/autoconf/platform.m4 b/jdk8/common/autoconf/platform.m4
-index 757bf22..2506fc8 100644
---- a/jdk8/common/autoconf/platform.m4
-+++ b/jdk8/common/autoconf/platform.m4
-@@ -60,6 +60,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
- VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=big
- ;;
-+ powerpc64le)
-+ VAR_CPU=ppc64le
-+ VAR_CPU_ARCH=ppc
-+ VAR_CPU_BITS=64
-+ VAR_CPU_ENDIAN=little
-+ ;;
- s390)
- VAR_CPU=s390
- VAR_CPU_ARCH=s390
-diff --git a/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
b/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
-index 68314bb..5885d10 100644
---- a/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
-+++ b/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -1978,6 +1978,8 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
- static Elf32_Half running_arch_code=EM_SPARC;
- #elif (defined __powerpc64__)
- static Elf32_Half running_arch_code=EM_PPC64;
-+ #elif (defined __powerpc64le__)
-+ static Elf32_Half running_arch_code=EM_PPC64LE;
- #elif (defined __powerpc__)
- static Elf32_Half running_arch_code=EM_PPC;
- #elif (defined ARM)
---
-1.9.0
-
diff --git a/enableArm64.patch b/enableArm64.patch
index e5c3824..a62d224 100644
--- a/enableArm64.patch
+++ b/enableArm64.patch
@@ -5,7 +5,7 @@
+-client IGNORE
--- jdk8/common/autoconf/generated-configure.sh
+++ jdk8/common/autoconf/generated-configure.sh
-@@ -6728,8 +6728,9 @@
+@@ -6731,8 +6731,9 @@
# The aliases save the names the user supplied, while $host etc.
# will get canonicalized.
test -n "$target_alias" &&
@@ -17,7 +17,7 @@
program_prefix=${target_alias}-
# Figure out the build and target systems. # Note that in autoconf terminology,
"build" is obvious, but "target"
-@@ -6808,6 +6809,12 @@
+@@ -6816,6 +6817,12 @@
VAR_CPU=arm
VAR_CPU_ARCH=arm
VAR_CPU_BITS=32
@@ -30,7 +30,7 @@
VAR_CPU_ENDIAN=little
;;
powerpc)
-@@ -6930,6 +6937,12 @@
+@@ -6949,6 +6956,12 @@
VAR_CPU_BITS=32
VAR_CPU_ENDIAN=little
;;
@@ -43,31 +43,31 @@
powerpc)
VAR_CPU=ppc
VAR_CPU_ARCH=ppc
-@@ -7889,6 +7902,9 @@
+@@ -7950,6 +7963,9 @@
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
INCLUDE_SA=false
fi
- if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
-+ INCLUDE_SA=false
-+ fi
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++ INCLUDE_SA=false
++ fi
+ if test "x$VAR_CPU" = xppc64 ; then
INCLUDE_SA=false
fi
-
-@@ -29737,6 +29753,9 @@
- case "${OPENJDK_TARGET_CPU}" in
+@@ -29957,6 +29973,9 @@
s390)
- ZERO_ARCHFLAG="-m31"
-+ ;;
+ ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
+ ;;
+ aarch64)
+ ZERO_ARCHFLAG=""
- ;;
++ ;;
*)
- ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
+ esac
--- jdk8/common/autoconf/jdk-options.m4
+++ jdk8/common/autoconf/jdk-options.m4
-@@ -88,11 +88,6 @@
- JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
+@@ -117,11 +117,6 @@
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+ JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
- if test "x$JVM_VARIANT_CLIENT" = xtrue; then
- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
@@ -77,17 +77,17 @@
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
-@@ -126,6 +121,9 @@
+@@ -159,6 +154,9 @@
INCLUDE_SA=false
fi
- if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
+ if test "x$VAR_CPU" = xppc64 ; then
+ INCLUDE_SA=false
+ fi
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
INCLUDE_SA=false
fi
AC_SUBST(INCLUDE_SA)
-@@ -423,12 +421,6 @@
+@@ -460,12 +458,6 @@
AC_MSG_ERROR([Update version must have a value])
elif test "x$with_update_version" != x; then
JDK_UPDATE_VERSION="$with_update_version"
@@ -117,22 +117,22 @@
powerpc)
--- jdk8/common/autoconf/toolchain.m4
+++ jdk8/common/autoconf/toolchain.m4
-@@ -1078,6 +1078,9 @@
+@@ -1158,6 +1158,9 @@
s390)
- ZERO_ARCHFLAG="-m31"
+ ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
;;
+ aarch64)
+ ZERO_ARCHFLAG=""
+ ;;
*)
- ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
esac
--- jdk8/jdk/make/lib/SoundLibraries.gmk
+++ jdk8/jdk/make/lib/SoundLibraries.gmk
-@@ -130,6 +130,10 @@
+@@ -138,6 +138,10 @@
- ifeq ($(OPENJDK_TARGET_CPU), ppc)
- LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC
+ ifeq ($(OPENJDK_TARGET_CPU), ppc64)
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
+ endif
+
+ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
index 79108b8..af6063d 100644
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ b/java-1.8.0-openjdk-s390-java-opts.patch
@@ -1,13 +1,13 @@
diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4
--- jdk8/common/autoconf/boot-jdk.m4.s390 2014-03-11 16:01:27.000000000 -0400
+++ jdk8/common/autoconf/boot-jdk.m4 2014-05-21 11:50:36.507890197 -0400
-@@ -315,12 +315,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
+@@ -315,12 +315,12 @@
fi
# Minimum amount of heap memory.
- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA])
+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA])
- if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+ if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test
"x$OPENJDK_TARGET_CPU" = "xppc64" ; then
# Why does macosx need more heap? Its the huge JDK batch.
ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA])
else
@@ -16,3 +16,4 @@ diff -up jdk8/common/autoconf/boot-jdk.m4.s390
jdk8/common/autoconf/boot-jdk.m4
fi
# When is adding -client something that speeds up the JVM?
# ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA])
+
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 2976f5d..a9f8a7f 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -91,9 +91,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.siz
@@ -845,7 +845,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
- int HeapRegionRemSet::num_par_rem_sets() {
-- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
ParallelGCThreads);
-+ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(size_t)ParallelGCThreads);
+ uint HeapRegionRemSet::num_par_rem_sets() {
+- return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(uint)ParallelGCThreads);
++ return MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(size_t)ParallelGCThreads);
}
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
@@ -138,7 +138,7 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
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 2014-03-11
16:02:13.000000000 -0400
+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-05-16 13:31:55.620132543
-0400
-@@ -386,7 +386,7 @@ void TwoGenerationCollectorPolicy::initi
+@@ -389,7 +389,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 +147,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
-@@ -434,7 +434,7 @@ void GenCollectorPolicy::initialize_size
+@@ -437,7 +437,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,15 +156,16 @@ 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");
-@@ -461,16 +461,16 @@ void GenCollectorPolicy::initialize_size
- // generally small compared to the NewRatio calculation.
+@@ -459,7 +459,7 @@
+ // lower limit.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
- max_new_size = MAX2(max_new_size, NewSize);
+ max_new_size = MAX2(max_new_size, (size_t)NewSize);
- } else {
- // For the case where NewSize is the default, use NewRatio
- // to size the minimum and initial generation sizes.
+ } else if (FLAG_IS_ERGO(NewSize)) {
+ // If NewSize is set ergonomically, we should use it as a lower
+ // limit, but use NewRatio to calculate the initial size.
+@@ -473,10 +473,9 @@
// Use the default NewSize as the floor for these values. If
// NewRatio is overly large, the resulting sizes can be too
// small.
@@ -172,11 +173,12 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t
jdk8/hotspo
+ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
(size_t)NewSize);
desired_new_size =
- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
-+ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);
- }
+- }
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); }
assert(_min_gen0_size > 0, "Sanity check");
-@@ -572,7 +572,7 @@ void TwoGenerationCollectorPolicy::initi
+ _initial_gen0_size = desired_new_size;
+@@ -577,7 +576,7 @@
} else {
// It's been explicitly set on the command line. Use the
// OldSize and then determine the consequences.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 364d411..f9d4cd9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -97,7 +97,7 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global updatever 40
-%global buildver b01
+%global buildver b02
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
@@ -225,7 +225,6 @@ Patch203: system-lcms.patch
Patch300: jstack-pr1845.patch
-Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
Patch9999: enableArm64.patch
BuildRequires: autoconf
@@ -481,7 +480,6 @@ sh %{SOURCE12}
%ifarch ppc %{power64}
# PPC fixes
%patch103
-%patch999 -p1
%endif
# Extract systemtap tapsets
@@ -1336,6 +1334,15 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Aug 28 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
+- updated to u20-b26
+- adapted aarch64 patch
+- removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
+- updated to u40-b02
+- adapted aarch64 patches
+
* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b01
- updated to u40-b01
- adapted java-1.8.0-openjdk-accessible-toolkit.patch
diff --git a/sources b/sources
index 71244e6..c32111d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-35130478f55ef3b57381486f0053d61d jdk8u-jdk8u40-b01.tar.xz
+78d96904ad6d9a7cee76849b0e49b6f0 jdk8u-jdk8u40-b02.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
8c0436da8098f15c7bda2fa4f927e525 aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
commit 44396cf66a787520d18cc04801cf6082d1e08744
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 27 15:28:10 2014 +0200
updated to u40-b01, remved applet-hole
- adapted java-1.8.0-openjdk-accessible-toolkit.patch
- adapted system-lcms.patch
- removed patch8 set-active-window.patch
- removed patch9 javadoc-error-jdk-8029145.patch
- removed patch10 javadoc-error-jdk-8037484.patch
- remopved patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
diff --git a/.gitignore b/.gitignore
index 606b199..66459fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,5 @@
/jdk8u-jdk8u5-b13.tar.xz
/jdk8u-jdk8u11-b12.tar.xz
/aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
+/jdk8u-jdk8u20-b23.tar.xz
+/jdk8u-jdk8u40-b01.tar.xz
diff --git a/applet-hole.patch b/applet-hole.patch
deleted file mode 100644
index 6f163e9..0000000
--- a/applet-hole.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
---- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
-+++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
-@@ -68,7 +68,7 @@
- /**
- * The applet (if loaded).
- */
-- Applet applet;
-+ protected Applet applet;
-
- /**
- * Applet will allow initialization. Should be
-@@ -162,7 +162,8 @@
- * Creates a thread to run the applet. This method is called
- * each time an applet is loaded and reloaded.
- */
-- synchronized void createAppletThread() {
-+ //Overridden by NetxPanel.
-+ protected synchronized void createAppletThread() {
- // Create a thread group for the applet, and start a new
- // thread to load the applet.
- String nm = "applet-" + getCode();
-@@ -306,7 +307,7 @@
- /**
- * Get an event from the queue.
- */
-- synchronized AppletEvent getNextEvent() throws InterruptedException {
-+ protected synchronized AppletEvent getNextEvent() throws InterruptedException {
- while (queue == null || queue.isEmpty()) {
- wait();
- }
-@@ -692,7 +693,8 @@
- * applet event processing so that it can be gracefully interrupted from
- * things like HotJava.
- */
-- private void runLoader() {
-+ //Overridden by NetxPanel.
-+ protected void runLoader() {
- if (status != APPLET_DISPOSE) {
- showAppletStatus("notdisposed");
- return;
-diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
---- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
-+++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
-@@ -42,25 +42,25 @@
- *
- * @author Arthur van Hoff
- */
--class AppletViewerPanel extends AppletPanel {
-+public class AppletViewerPanel extends AppletPanel {
-
- /* Are we debugging? */
-- static boolean debug = false;
-+ protected static boolean debug = false;
-
- /**
- * The document url.
- */
-- URL documentURL;
-+ protected URL documentURL;
-
- /**
- * The base url.
- */
-- URL baseURL;
-+ protected URL baseURL;
-
- /**
- * The attributes of the applet.
- */
-- Hashtable atts;
-+ protected Hashtable<String,String> atts;
-
- /*
- * JDK 1.1 serialVersionUID
-@@ -70,7 +70,7 @@
- /**
- * Construct an applet viewer and start the applet.
- */
-- AppletViewerPanel(URL documentURL, Hashtable atts) {
-+ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
- this.documentURL = documentURL;
- this.atts = atts;
-
-@@ -106,7 +106,7 @@
- * Get an applet parameter.
- */
- public String getParameter(String name) {
-- return (String)atts.get(name.toLowerCase());
-+ return atts.get(name.toLowerCase());
- }
-
- /**
-@@ -202,12 +202,12 @@
- return (AppletContext)getParent();
- }
-
-- static void debug(String s) {
-+ protected static void debug(String s) {
- if(debug)
- System.err.println("AppletViewerPanel:::" + s);
- }
-
-- static void debug(String s, Throwable t) {
-+ protected static void debug(String s, Throwable t) {
- if(debug) {
- t.printStackTrace();
- debug(s);
diff --git a/generate_tarballs.sh b/generate_tarballs.sh
index 577e98b..0c5930d 100755
--- a/generate_tarballs.sh
+++ b/generate_tarballs.sh
@@ -9,8 +9,9 @@ rm -f icedtea7.tar.gz
pushd icedtea7-${VERSION}
# desktop files
-mv jconsole.desktop ../jconsole.desktop.in
-mv policytool.desktop ../policytool.desktop.in
+#mv jconsole.desktop ../jconsole.desktop.in
+#mv policytool.desktop ../policytool.desktop.in
+# Icons were generally cloned fromicedtea, but now are mucvh more specific
# tapsets
mv tapset/hotspot{,-1.8.0}.stp.in || exit 1
diff --git a/java-1.8.0-openjdk-accessible-toolkit.patch
b/java-1.8.0-openjdk-accessible-toolkit.patch
index c177305..bddd702 100644
--- a/java-1.8.0-openjdk-accessible-toolkit.patch
+++ b/java-1.8.0-openjdk-accessible-toolkit.patch
@@ -1,16 +1,16 @@
diff -uNr openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java
jdk8/jdk/src/share/classes/java/awt/Toolkit.java
--- openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23
11:59:47.000000000 -0500
+++ jdk8/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23 12:05:20.000000000 -0500
-@@ -871,7 +871,11 @@
- return null;
- }
- });
-- loadAssistiveTechnologies();
-+ try {
-+ loadAssistiveTechnologies();
-+ } catch ( AWTError error) {
-+ // ignore silently
-+ }
- } finally {
- // Make sure to always re-enable the JIT.
- java.lang.Compiler.enable();
+@@ -883,7 +883,11 @@
+ return null;
+ }
+ });
+- loadAssistiveTechnologies();
++ try {
++ loadAssistiveTechnologies();
++ } catch ( AWTError error) {
++ // ignore silently
++ }
+ }
+ return toolkit;
+ }
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4fa32af..364d411 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -96,8 +96,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 11
-%global buildver b12
+%global updatever 40
+%global buildver b01
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 19.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -203,12 +203,6 @@ Patch5: multiple-pkcs11-library-init.patch
Patch6: disable-doclint-by-default.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
-# Fix window activation in gnome-shell
-Patch8: set-active-window.patch
-# Fix javadoc. Backport from upstream.
-Patch9: javadoc-error-jdk-8029145.patch
-# More javadoc. Backport from upstream.
-Patch10: javadoc-error-jdk-8037484.patch
# Problem discovered with make 4.0
Patch11: hotspot-build-j-directive.patch
@@ -216,8 +210,6 @@ Patch11: hotspot-build-j-directive.patch
# OpenJDK specific patches
#
-# Allow icedtea-web to build
-Patch99: applet-hole.patch
# JVM heap size changes for s390 (thanks to aph)
Patch100: %{name}-s390-java-opts.patch
@@ -471,7 +463,6 @@ sh %{SOURCE12}
%patch202
%patch203
-
%patch1
%patch2
%patch3
@@ -479,13 +470,8 @@ sh %{SOURCE12}
%patch5
%patch6
%patch7
-%patch8
-%patch9
-%patch10
%patch11
-%patch99
-
# s390 build fixes
%ifarch s390
%patch100
@@ -1350,6 +1336,15 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b01
+- updated to u40-b01
+- adapted java-1.8.0-openjdk-accessible-toolkit.patch
+- adapted system-lcms.patch
+- removed patch8 set-active-window.patch
+- removed patch9 javadoc-error-jdk-8029145.patch
+- removed patch10 javadoc-error-jdk-8037484.patch
+- remopved patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
+
* Tue Aug 19 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-19.b12
- fixed desktop icons
- Icon set to java-1.8.0
diff --git a/javadoc-error-jdk-8029145.patch b/javadoc-error-jdk-8029145.patch
deleted file mode 100644
index 4749ca1..0000000
--- a/javadoc-error-jdk-8029145.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-# HG changeset patch
-# User ksrini
-# Date 1392427687 28800
-# Node ID 4c09a8dd09b37f17f186e575978e0dc5de6c84d3
-# Parent 37cf13ea5cf99b04638660d6c91038f2ce210885
-8029145: javadoc fails with java.lang.IllegalStateException: endPosTable already set
-Reviewed-by: jjg
-
-diff -r 37cf13ea5cf9 -r 4c09a8dd09b3
src/share/classes/com/sun/tools/javadoc/JavadocTool.java
---- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Thu Feb 13
14:58:10 2014 +0100
-+++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Fri Feb 14
17:28:07 2014 -0800
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2001, 2014, 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
-@@ -30,6 +30,7 @@
- import java.util.Collection;
- import java.util.EnumSet;
- import java.util.HashMap;
-+import java.util.HashSet;
- import java.util.Map;
- import java.util.Set;
- import javax.tools.JavaFileManager.Location;
-@@ -238,10 +239,13 @@
- files = lb.toList();
- }
-
-+ Set<JavaFileObject> ufiles = new HashSet<>();
- for (JavaFileObject fo : files) {
-- // messager.notice("main.Loading_source_file", fn);
-- trees.append(parse(fo));
-- hasFiles = true;
-+ if (ufiles.add(fo)) { // ignore duplicates
-+ // messager.notice("main.Loading_source_file", fn);
-+ trees.append(parse(fo));
-+ hasFiles = true;
-+ }
- }
-
- if (!hasFiles) {
-diff -r 37cf13ea5cf9 -r 4c09a8dd09b3 test/tools/javadoc/parser/7091528/T7091528.java
---- jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Thu Feb 13 14:58:10
2014 +0100
-+++ jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Fri Feb 14 17:28:07
2014 -0800
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2009, 2014, 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
-@@ -23,8 +23,8 @@
-
- /**
- * @test
-- * @bug 7091528
-- * @summary javadoc attempts to parse .class files
-+ * @bug 7091528 8029145
-+ * @summary ensures javadoc parses unique source files and ignores all class files
- * @compile p/C1.java p/q/C2.java
- * @run main T7091528
- */
-@@ -37,17 +37,22 @@
- public static void main(String... args) {
- new T7091528().run();
- }
--
- void run() {
- File testSrc = new File(System.getProperty("test.src"));
- File testClasses = new File(System.getProperty("test.classes"));
-- String[] args = {
-- "-d", ".",
-+ // 7091528, tests if class files are being ignored
-+ runTest("-d", ".",
- "-sourcepath", testClasses + File.pathSeparator + testSrc,
- "-subpackages",
-- "p"
-- };
-+ "p");
-+ // 8029145, tests if unique source files are parsed
-+ runTest("-d", ".",
-+ "-sourcepath", testSrc.getAbsolutePath(),
-+ "-subpackages",
-+ "p:p.q");
-
-+ }
-+ void runTest(String... args) {
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
- String doclet = com.sun.tools.doclets.standard.Standard.class.getName();
-
diff --git a/javadoc-error-jdk-8037484.patch b/javadoc-error-jdk-8037484.patch
deleted file mode 100644
index 7f8cc09..0000000
--- a/javadoc-error-jdk-8037484.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-# HG changeset patch
-# User ksrini
-# Date 1397697348 25200
-# Node ID 6acecb34d1bc345579b4ddb8c38ddbe7df27ca2c
-# Parent 3d8d9f0df99909403f5edfeb33804f704d228f0f
-8037484: [javadoc] fails with java.lang.IllegalStateException: endPosTable already set
-Reviewed-by: jjg
-
-diff -r 3d8d9f0df999 -r 6acecb34d1bc
src/share/classes/com/sun/tools/javadoc/JavadocTool.java
---- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Wed Apr 16
18:36:43 2014 -0700
-+++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Wed Apr 16
18:15:48 2014 -0700
-@@ -68,6 +68,7 @@
- final Messager messager;
- final JavadocClassReader javadocReader;
- final JavadocEnter javadocEnter;
-+ final Set<JavaFileObject> uniquefiles;
-
- /**
- * Construct a new JavaCompiler processor, using appropriately
-@@ -78,6 +79,7 @@
- messager = Messager.instance0(context);
- javadocReader = JavadocClassReader.instance0(context);
- javadocEnter = JavadocEnter.instance0(context);
-+ uniquefiles = new HashSet<>();
- }
-
- /**
-@@ -148,9 +150,7 @@
- String name = it.head;
- if (!docClasses && fm != null &&
name.endsWith(".java") && new File(name).exists()) {
- JavaFileObject fo = fm.getJavaFileObjects(name).iterator().next();
-- docenv.notice("main.Loading_source_file", name);
-- JCCompilationUnit tree = parse(fo);
-- classTrees.append(tree);
-+ parse(fo, classTrees, true);
- } else if (isValidPackageName(name)) {
- names = names.append(name);
- } else if (name.endsWith(".java")) {
-@@ -163,9 +163,7 @@
- }
- }
- for (JavaFileObject fo: fileObjects) {
-- docenv.notice("main.Loading_source_file", fo.getName());
-- JCCompilationUnit tree = parse(fo);
-- classTrees.append(tree);
-+ parse(fo, classTrees, true);
- }
-
- if (!docClasses) {
-@@ -213,7 +211,7 @@
- * .java files found in such a directory to args.
- */
- private void parsePackageClasses(String name,
-- Iterable<JavaFileObject> files,
-+ List<JavaFileObject> files,
- ListBuffer<JCCompilationUnit> trees,
- List<String> excludedPackages)
- throws IOException {
-@@ -221,7 +219,6 @@
- return;
- }
-
-- boolean hasFiles = false;
- docenv.notice("main.Loading_source_files_for_package", name);
-
- if (files == null) {
-@@ -238,19 +235,22 @@
- }
- files = lb.toList();
- }
-+ if (files.nonEmpty()) {
-+ for (JavaFileObject fo : files) {
-+ parse(fo, trees, false);
-+ }
-+ } else {
-+ messager.warning(Messager.NOPOS,
"main.no_source_files_for_package",
-+ name.replace(File.separatorChar, '.'));
-+ }
-+ }
-
-- Set<JavaFileObject> ufiles = new HashSet<>();
-- for (JavaFileObject fo : files) {
-- if (ufiles.add(fo)) { // ignore duplicates
-- // messager.notice("main.Loading_source_file", fn);
-- trees.append(parse(fo));
-- hasFiles = true;
-- }
-- }
--
-- if (!hasFiles) {
-- messager.warning(Messager.NOPOS,
"main.no_source_files_for_package",
-- name.replace(File.separatorChar, '.'));
-+ private void parse(JavaFileObject fo, ListBuffer<JCCompilationUnit> trees,
-+ boolean trace) {
-+ if (uniquefiles.add(fo)) { // ignore duplicates
-+ if (trace)
-+ docenv.notice("main.Loading_source_file", fo.getName());
-+ trees.append(parse(fo));
- }
- }
-
-diff -r 3d8d9f0df999 -r 6acecb34d1bc test/tools/javadoc/parser/7091528/T7091528.java
---- jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Wed Apr 16 18:36:43
2014 -0700
-+++ jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Wed Apr 16 18:15:48
2014 -0700
-@@ -23,7 +23,7 @@
-
- /**
- * @test
-- * @bug 7091528 8029145
-+ * @bug 7091528 8029145 8037484
- * @summary ensures javadoc parses unique source files and ignores all class files
- * @compile p/C1.java p/q/C2.java
- * @run main T7091528
-@@ -50,6 +50,16 @@
- "-sourcepath", testSrc.getAbsolutePath(),
- "-subpackages",
- "p:p.q");
-+ File testPkgDir = new File(testSrc, "p");
-+ File testFile = new File(testPkgDir, "C3.java");
-+ runTest("-d", ".",
-+ "-sourcepath", testSrc.getAbsolutePath(),
-+ testFile.getAbsolutePath(),
-+ "p");
-+ runTest("-d", ".",
-+ "-classpath", testSrc.getAbsolutePath(),
-+ testFile.getAbsolutePath(),
-+ "p");
-
- }
- void runTest(String... args) {
-@@ -65,7 +75,7 @@
- }
-
- if (rc != 0)
-- System.err.println("javadoc failed: exit code = " + rc);
-+ throw new Error("javadoc failed: exit code = " + rc);
-
- if (out.matches("(?s).*p/[^ ]+\\.class.*"))
- throw new Error("reading .class files");
-diff -r 3d8d9f0df999 -r 6acecb34d1bc test/tools/javadoc/parser/7091528/p/C3.java
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ jdk8/langtools/test/tools/javadoc/parser/7091528/p/C3.java Wed Apr 16 18:15:48 2014
-0700
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (c) 2014, 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.
-+ */
-+
-+
-+/** This is class C3, and no package for me please */
-+public class C3 {}
-+
-
diff --git a/set-active-window.patch b/set-active-window.patch
deleted file mode 100644
index 923b9f2..0000000
--- a/set-active-window.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-# HG changeset patch
-# User azvegint
-# Date 1395070254 -14400
-# Mon Mar 17 19:30:54 2014 +0400
-# Node ID 6406059d2620c8241f6e04398ee0c4591e8820ac
-# Parent 37099d54a1483fffb9e51552cfda8ac956bd97ee
-8012224: AWT_TopLevels/TopLevelEvents/Automated/WindowIconifyDeiconifyEventsTest02 fails
on Ubuntu 12.04 Unity shell
-Reviewed-by: anthony, serb
-
-diff --git jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
---- jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
-+++ jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
-@@ -284,6 +284,11 @@
- if (stateLog.isLoggable(PlatformLogger.Level.FINER)) {
- stateLog.finer("DeIconifying " + this);
- }
-+
-+ XNETProtocol net_protocol = XWM.getWM().getNETProtocol();
-+ if (net_protocol != null) {
-+ net_protocol.setActiveWindow(this);
-+ }
- xSetVisible(true);
- }
- }
-diff --git jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
---- jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
-+++ jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
-@@ -213,7 +213,7 @@
- * If window is showing then it uses ClientMessage, otherwise adjusts NET_WM_STATE
list
- * @param window Window which NET_WM_STATE property is being modified
- * @param state State atom to be set/reset
-- * @param reset Indicates operation, 'set' if false, 'reset' if
true
-+ * @param set Indicates operation, 'set' if false, 'reset' if true
- */
- private void setStateHelper(XWindowPeer window, XAtom state, boolean set) {
- if (log.isLoggable(PlatformLogger.Level.FINER)) {
-@@ -249,6 +249,7 @@
- XAtom XA_UTF8_STRING = XAtom.get("UTF8_STRING"); /* like STRING but
encoding is UTF-8 */
- XAtom XA_NET_SUPPORTING_WM_CHECK = XAtom.get("_NET_SUPPORTING_WM_CHECK");
- XAtom XA_NET_SUPPORTED = XAtom.get("_NET_SUPPORTED"); /* list of
protocols (property of root) */
-+ XAtom XA_NET_ACTIVE_WINDOW = XAtom.get("_NET_ACTIVE_WINDOW");
- XAtom XA_NET_WM_NAME = XAtom.get("_NET_WM_NAME"); /* window property */
- XAtom XA_NET_WM_STATE = XAtom.get("_NET_WM_STATE");/* both window property
and request */
-
-@@ -325,6 +326,32 @@
- return res;
- }
-
-+ public void setActiveWindow(XWindow window) {
-+ if (!active() || !checkProtocol(XA_NET_SUPPORTED, XA_NET_ACTIVE_WINDOW)) {
-+ return;
-+ }
-+
-+ XClientMessageEvent msg = new XClientMessageEvent();
-+ msg.zero();
-+ msg.set_type(XConstants.ClientMessage);
-+ msg.set_message_type(XA_NET_ACTIVE_WINDOW.getAtom());
-+ msg.set_display(XToolkit.getDisplay());
-+ msg.set_window(window.getWindow());
-+ msg.set_format(32);
-+ msg.set_data(0, 1);
-+ msg.set_data(1, XToolkit.getCurrentServerTime());
-+ msg.set_data(2, 0);
-+
-+ XToolkit.awtLock();
-+ try {
-+ XlibWrapper.XSendEvent(XToolkit.getDisplay(),
XToolkit.getDefaultRootWindow(), false,
-+ XConstants.SubstructureRedirectMask |
XConstants.SubstructureNotifyMask, msg.getPData());
-+ } finally {
-+ XToolkit.awtUnlock();
-+ msg.dispose();
-+ }
-+ }
-+
- boolean isWMName(String name) {
- if (!active()) {
- return false;
diff --git a/sources b/sources
index 9a44096..71244e6 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-84eed2615ebcf518ad92c88c280ede9e jdk8u-jdk8u11-b12.tar.xz
+35130478f55ef3b57381486f0053d61d jdk8u-jdk8u40-b01.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
8c0436da8098f15c7bda2fa4f927e525 aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
diff --git a/system-lcms.patch b/system-lcms.patch
index f8430f3..c098f3a 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -62,12 +62,13 @@ diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk
jdk8/jdk/make/lib/Awt2dLibraries.
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
LANG := C, \
-@@ -680,18 +680,18 @@
+@@ -680,19 +680,19 @@
LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
+ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
+ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
RC_FLAGS := $(RC_FLAGS) \
- -D "JDK_FNAME=lcms.dll" \
commit 05f34c8de3e959de1396d96f6d09c35fa8cff209
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 19 12:57:55 2014 +0200
fixed desktop icons
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e620f09..4fa32af 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 18.%{buildver}%{?dist}
+Release: 19.%{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
@@ -1350,6 +1350,11 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Aug 19 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-19.b12
+- fixed desktop icons
+- Icon set to java-1.8.0
+- Development removed from policy tool
+
* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
- fixed jstack
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index 407fd8f..a096349 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -2,7 +2,7 @@
Name=OpenJDK 8 Monitoring & Management Console #ARCH#
Comment=Monitor and manage OpenJDK applications for #ARCH#
Exec=#JAVA_HOME#/jconsole
-Icon=java
+Icon=java-1.8.0
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
diff --git a/policytool.desktop.in b/policytool.desktop.in
index 24d7958..53362af 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -2,9 +2,9 @@
Name=OpenJDK 8 Policy Tool #ARCH#
Comment=Manage OpenJDK policy files #ARCH#
Exec=#JRE_HOME#/policytool
-Icon=java
+Icon=java-1.8.0
Terminal=false
Type=Application
StartupWMClass=sun-security-tools-PolicyTool
-Categories=Development;Java;
+Categories=Java;
Version=1.0
commit 74ec5a089bb6ebd7372c6c5633109838bf1087bc
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 18 17:25:11 2014 +0200
Fixed changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 51dc334..e620f09 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1350,7 +1350,7 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
+* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
- fixed jstack
* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-17.b12
commit 7b389be841e24fe4fac846ca3dbf5791c6a61609
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 18 17:23:13 2014 +0200
fixed jstack
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index fd4965e..51dc334 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 17.%{buildver}%{?dist}
+Release: 18.%{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
@@ -231,6 +231,8 @@ Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
+Patch300: jstack-pr1845.patch
+
Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
Patch9999: enableArm64.patch
@@ -501,6 +503,8 @@ sh %{SOURCE12}
tar xzf %{SOURCE8}
+%patch300
+
for file in tapset/*.in; do
OUTPUT_FILE=`echo $file | sed -e
s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
@@ -1346,6 +1350,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
+- fixed jstack
+
* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-17.b12
- added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
- restriction of tzdata provider, so we will be aware of another possible failure
diff --git a/jstack-pr1845.patch b/jstack-pr1845.patch
new file mode 100644
index 0000000..5d036ba
--- /dev/null
+++ b/jstack-pr1845.patch
@@ -0,0 +1,274 @@
+diff -r c728621e76f2 tapset/jstack.stp.in
+--- tapset/jstack-1.8.0.stp.in Mon Jun 02 18:41:24 2014 +0100
++++ tapset/jstack-1.8.0.stp.in Sat Jun 14 00:21:14 2014 +0900
+@@ -45,11 +45,7 @@
+ semantic error: failed to retrieve location attribute for local
+ */
+
+-global Universe_methodKlassObj;
+-global Universe_collectedHeap;
+-global HeapWordSize;
+ global CodeCache_heap;
+-global NarrowOopStruct;
+
+ global sp_register;
+ global fp_register;
+@@ -57,9 +53,8 @@
+ global ptr_size;
+ global ptr_mask;
+
+-global constantPoolOopDesc_size;
++global constantPool_size;
+ global HeapBlock_Header_size;
+-global oopDesc_size;
+
+ global vm_inited;
+
+@@ -67,26 +62,6 @@
+ in a bare function and vm_init_end seems a good place to use. */
+ probe hotspot.vm_init_end
+ {
+- // The parent/type oop for a methodOop.
+- Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8"
+- %? @var("_methodKlassObj(a)universe.cpp")
+- %: $_methodKlassObj %);
+-
+- /**
+- * The Universe class holds some of the interesting statics for
+- * introspection into HotSpot. The CollectedHeap
+- * (Universe::_collectedHeap) is an abstraction of a java heap for Hotspot
+- * it contains a _reserved MemRegion which represents a contigous
+- * region of the address space consisting of HeapWords (which just
+- * have one field member char *i).
+- *
+- * Note that we access it through its "short name" _collectedHeap.
+- */
+- Universe_collectedHeap[pid()] = %( systemtap_v >= "1.8"
+- %? @var("_collectedHeap(a)universe.cpp")
+- %: $_collectedHeap %);
+- HeapWordSize[pid()] = $HeapWordSize;
+-
+ /**
+ * The CodeCache class contains the static CodeHeap _heap that
+ * is malloced at the start of the vm run and holds all generated
+@@ -107,17 +82,6 @@
+ %? @var("_heap(a)codeCache.cpp")
+ %: $_heap %);
+
+- /**
+- * Does target process use CompressedOops ?
+- */
+- NarrowOopStruct[pid()] = 0;
+- %( systemtap_v >= "1.8"
+- %? if (@var("UseCompressedOops(a)globals.cpp"))
+- NarrowOopStruct[pid()] = &@var("_narrow_oop(a)universe.cpp");
+- %: if($UseCompressedOops)
+- NarrowOopStruct[pid()] = $_narrow_oop;
+- %)
+-
+ // Should really check arch of user space (for 32bit jvm on 64bit kernel).
+ %( arch == "i386" %?
+ sp_register = "esp";
+@@ -136,22 +100,17 @@
+
+ // Pretend we have an array at address zero and take address of second
+ // element and we have the size.
+- constantPoolOopDesc_size = &@cast(0, "constantPoolOopDesc")[1];
++ constantPool_size = &@cast(0, "ConstantPool")[1];
+
+ // Really should get from dwarf: @size("HeapBlock::Header"),
@size("oopDesc")
+ HeapBlock_Header_size = 2 * ptr_size;
+- oopDesc_size = 2 * ptr_size;
+
+ vm_inited[pid()] = 1;
+ }
+
+ probe hotspot.vm_shutdown
+ {
+- delete(Universe_methodKlassObj[pid()]);
+- delete(Universe_collectedHeap[pid()]);
+- delete(HeapWordSize[pid()]);
+ delete(CodeCache_heap[pid()]);
+- delete(NarrowOopStruct[pid()]);
+ delete(vm_inited[pid()]);
+ }
+
+@@ -262,15 +221,7 @@
+ return frame;
+ }
+
+- // Extract heap and code bounds.
+- heap_start = @cast(Universe_collectedHeap[pid()],
+- "CollectedHeap",
+- "@ABS_SERVER_LIBJVM_SO@")->_reserved->_start;
+- heap_size = HeapWordSize[pid()] * @cast(Universe_collectedHeap[pid()],
+- "CollectedHeap",
+-
"@ABS_SERVER_LIBJVM_SO@")->_reserved->_word_size;
+- heap_end = heap_start + heap_size;
+-
++ // Extract code bounds.
+ CodeCache_low = @cast(CodeCache_heap[pid()], "CodeHeap",
+ "@ABS_SERVER_LIBJVM_SO@")->_memory->_low;
+ CodeCache_high = @cast(CodeCache_heap[pid()], "CodeHeap",
+@@ -351,105 +302,69 @@
+ // For the interpreter (and other code blobs) it is on the
+ // stack relative to the frame pointer.
+ if (blob_name == "nmethod")
+- methodOopPtr = @cast(blob, "nmethod",
++ methodPtr = @cast(blob, "nmethod",
+ "@ABS_SERVER_LIBJVM_SO@")->_method
+ else
+- methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask
+-
+- // Start optimistic. A methodOop is only valid if it was
+- // heap allocated. And if the "type class" oop equals the
+- // Universe::methodKlassObj.
+- if (heap_start > methodOopPtr || methodOopPtr >= heap_end)
+- isMethodOop = 0
+- else
+- {
+- if (NarrowOopStruct[pid()])
+- {
+- methodOopKlass = @cast(methodOopPtr, "methodOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_metadata->_compressed_klass;
+- methodOopKlass = (@cast(NarrowOopStruct[pid()],
+- "NarrowOopStruct",
+-
"@ABS_SERVER_LIBJVM_SO@")->_base
+- + (methodOopKlass
+- << @cast(NarrowOopStruct[pid()],
+- "NarrowOopStruct",
+-
"@ABS_SERVER_LIBJVM_SO@")->_shift));
+- }
+- else
+- methodOopKlass = @cast(methodOopPtr, "methodOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass;
++ methodPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask
+
+- isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]);
+- }
++ // The java class is the holder of the constants (strings)
++ // that describe the method and signature. This constant pool
++ // contains symbolic information that describe the properties
++ // of the class. The indexes for methods and signaturates in
++ // the constant pool are Symbols that contain utf8
++ // strings (plus lenghts). (We could also sanity check that
++ // the tag value is correct [CONSTANT_String = 8]).
++ // Note that the class name uses '/' instead of '.' as
++ // package name separator and that the method signature is
++ // encoded as a method descriptor string. Both of which we
++ // don't demangle here.
++ constMethod = @cast(methodPtr, "Method",
++
"@ABS_SERVER_LIBJVM_SO@")->_constMethod;
++ constantPool = @cast(constMethod, "ConstMethod",
++
"@ABS_SERVER_LIBJVM_SO@")->_constants;
++ constantPool_base = constantPool + constantPool_size;
++
++ klass = @cast(constantPool, "ConstantPool",
++ "@ABS_SERVER_LIBJVM_SO@")->_pool_holder;
++ klassSymbol = @cast(klass, "Klass",
++ "@ABS_SERVER_LIBJVM_SO@")->_name;
++ klassName = &@cast(klassSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
++ klassLength = @cast(klassSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_length;
++
++ methodIndex = @cast(constMethod, "ConstMethod",
++ "@ABS_SERVER_LIBJVM_SO@")->_name_index;
++ methodSymbol = user_long(constantPool_base + (methodIndex * ptr_size));
++ methodName = &@cast(methodSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
++ methodLength = @cast(methodSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_length;
+
+- if (isMethodOop)
++ if (log_sig)
+ {
+- // The java class is the holder of the constants (strings)
+- // that describe the method and signature. This constant pool
+- // contains symbolic information that describe the properties
+- // of the class. The indexes for methods and signaturates in
+- // the constant pool are Symbols that contain utf8
+- // strings (plus lenghts). (We could also sanity check that
+- // the tag value is correct [CONSTANT_String = 8]).
+- // Note that the class name uses '/' instead of '.'
as
+- // package name separator and that the method signature is
+- // encoded as a method descriptor string. Both of which we
+- // don't demangle here.
+- constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_constants;
+- constantPoolOop_base = constantPoolOopDesc +
constantPoolOopDesc_size;
+-
+- klassPtr = @cast(constantPoolOopDesc,
"constantPoolOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_pool_holder;
+- klassSymbol = @cast(klassPtr + oopDesc_size, "Klass",
+- "@ABS_SERVER_LIBJVM_SO@")->_name;
+- klassName = &@cast(klassSymbol, "Symbol",
+- "@ABS_SERVER_LIBJVM_SO@")->_body[0];
+- klassLength = @cast(klassSymbol, "Symbol",
+- "@ABS_SERVER_LIBJVM_SO@")->_length;
+-
+- methodIndex = @cast(methodOopPtr, "methodOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index;
+- methodOopDesc = user_long(constantPoolOop_base + (methodIndex *
ptr_size)) - 1;
+- methodName = &@cast(methodOopDesc, "Symbol",
+- "@ABS_SERVER_LIBJVM_SO@")->_body[0];
+- methodLength = @cast(methodOopDesc, "Symbol",
+- "@ABS_SERVER_LIBJVM_SO@")->_length;
+-
+- if (log_sig)
+- {
+- sigIndex = @cast(methodOopPtr, "methodOopDesc",
+-
"@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index;
+- sigOopDesc = user_long(constantPoolOop_base
+- + (sigIndex * ptr_size)) - 1;
+- sigName = &@cast(sigOopDesc, "Symbol",
+-
"@ABS_SERVER_LIBJVM_SO@")->_body[0];
+- sigLength = @cast(sigOopDesc, "Symbol",
+-
"@ABS_SERVER_LIBJVM_SO@")->_length;
+- sig = user_string_n(sigName, sigLength);
+- }
+- else
+- sig = "";
+-
+- code_name = (log_native
+- ? sprintf("<%s@0x%x>",
+- str_replace(blob_name, " ",
"_"), pc)
+- : "");
+-
+- frame = sprintf("%s.%s%s%s",
+- user_string_n(klassName, klassLength),
+- user_string_n(methodName, methodLength),
+- sig, code_name);
++ sigIndex = @cast(constMethod, "ConstMethod",
++
"@ABS_SERVER_LIBJVM_SO@")->_signature_index;
++ sigSymbol = user_long(constantPool_base
++ + (sigIndex * ptr_size));
++ sigName = &@cast(sigSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_body[0];
++ sigLength = @cast(sigSymbol, "Symbol",
++ "@ABS_SERVER_LIBJVM_SO@")->_length;
++ sig = user_string_n(sigName, sigLength);
+ }
+ else
+- {
+- // This is probably just an internal function, not a java
+- // method, just print the blob_name and continue.
+- // fp is probably still trusted.
+- if (log_native)
+- frame = sprintf("<%s@0x%x>",
+- str_replace(blob_name, " ",
"_"), pc);
+- }
++ sig = "";
++
++ code_name = (log_native
++ ? sprintf("<%s@0x%x>",
++ str_replace(blob_name, " ",
"_"), pc)
++ : "");
++
++ frame = sprintf("%s.%s%s%s",
++ user_string_n(klassName, klassLength),
++ user_string_n(methodName, methodLength),
++ sig, code_name);
+
+ // We cannot trust the frame pointer of compiled methods.
+ // The server (c2) jit compiler uses the fp register.
commit 776412191e7b6fd717feabb585499beeed772fe7
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 18 14:35:33 2014 +0200
Fixed changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c4dc63e..fd4965e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1346,7 +1346,7 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-16.b12
+* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-17.b12
- added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
- restriction of tzdata provider, so we will be aware of another possible failure
commit 5f1e030fba646f57e4b44468654bdcab1e2ae9f3
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Mon Aug 18 14:29:02 2014 +0200
added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 01ba143..c4dc63e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 16.%{buildver}%{?dist}
+Release: 17.%{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
@@ -265,6 +265,7 @@ BuildRequires: java-1.8.0-openjdk-devel
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif
+BuildRequires: %{_datadir}/javazi-1.8/tzdb.dat
# cacerts build requirement.
BuildRequires: openssl
@@ -312,6 +313,7 @@ Requires: ca-certificates
Requires: jpackage-utils
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java
+Requires: %{_datadir}/javazi-1.8/tzdb.dat
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -1344,6 +1346,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-16.b12
+- added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
+- restriction of tzdata provider, so we will be aware of another possible failure
+
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
commit b9f8635bca846609fb00519659ae758c66cc33e2
Author: Peter Robinson <pbrobinson(a)fedoraproject.org>
Date: Sat Aug 16 22:12:06 2014 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5058e69..01ba143 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 15.%{buildver}%{?dist}
+Release: 16.%{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
@@ -1344,6 +1344,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-15.b12
- fixed provides/obsolates
commit 587d58b9f7d84c9200468c6b7f39d45311aeab2a
Merge: 01fa07c b0d513f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 14 19:00:42 2014 +0200
Merge remote-tracking branch 'origin/f21'
commit b0d513fffbc87d27ab11cf694c189bbf17617329
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 14 18:55:54 2014 +0200
Fixed provides obsolates
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 03fde83..5058e69 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 14.%{buildver}%{?dist}
+Release: 15.%{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
@@ -296,8 +296,8 @@ Provides: java = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: java-fonts = %{epoch}:%{version}
-Obsoletes: java-1.7.0-openjdk <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk
+Provides: java-1.8.0-openjdk = %{epoch}:%{version}-%{release}
%description
The OpenJDK runtime environment.
@@ -337,8 +337,8 @@ Provides: jce = %{epoch}:%{version}
Provides: jdbc-stdext = 4.1
Provides: java-sasl = %{epoch}:%{version}
-Obsoletes: java-1.7.0-openjdk-headless <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-headless = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-headless
+Provides: java-1.8.0-openjdk-headless = %{epoch}:%{version}-%{release}
%description headless
The OpenJDK runtime environment without audio and video support.
@@ -364,8 +364,8 @@ Provides: java-%{javaver}-devel = %{epoch}:%{version}
Provides: java-devel-%{origin} = %{epoch}:%{version}
Provides: java-devel = %{epoch}:%{javaver}
-Obsoletes: java-1.7.0-openjdk-devel <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-devel = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-devel
+Provides: java-1.8.0-openjdk-devel = %{epoch}:%{version}-%{release}
%description devel
The OpenJDK development tools.
@@ -377,8 +377,8 @@ Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-demo <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-demo = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-demo
+Provides: java-1.8.0-openjdk-demo = %{epoch}:%{version}-%{release}
%description demo
The OpenJDK demos.
@@ -389,8 +389,8 @@ Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-src <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-src = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-src
+Provides: java-1.8.0-openjdk-src = %{epoch}:%{version}-%{release}
%description src
The OpenJDK source bundle.
@@ -411,8 +411,8 @@ Requires(postun): %{_sbindir}/alternatives
Provides: java-javadoc = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-javadoc <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-javadoc = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-javadoc
+Provides: java-1.8.0-openjdk-javadoc = %{epoch}:%{version}-%{release}
%description javadoc
The OpenJDK API documentation.
@@ -423,8 +423,8 @@ Requires: java-atk-wrapper
Requires: %{name} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
-Obsoletes: java-1.7.0-openjdk-accessibility <= 1:1.7.0.60-2.5.0.2
-Provides: java-1.7.0-openjdk-accessibility = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-accessibility
+Provides: java-1.8.0-openjdk-accessibility = %{epoch}:%{version}-%{release}
%description accessibility
Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows
@@ -1344,6 +1344,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-15.b12
+- fixed provides/obsolates
+
* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-14.b12
- forced to build in fully versioned dir
commit 01fa07cbb9fa8702cf46db4efb2b26eb25cb9be0
Merge: b2143c6 34d1813
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Aug 14 16:13:05 2014 +0200
Merge remote-tracking branch 'origin/f21'
commit 34d18138bdaf082a8ceb4fc8aab228760826cc1f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 13 12:56:44 2014 +0200
forced to build in fully versioned dir
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e099822..03fde83 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 14.%{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
@@ -438,7 +438,7 @@ need to.
%prep
-%setup -q -c -n %{name} -T -a 0
+%setup -q -c -n %{uniquesuffix} -T -a 0
%ifarch %{aarch64}
pushd jdk8
rm -r hotspot
@@ -766,7 +766,7 @@ NOT_HEADLESS=\
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so"
-#filter %{name}.files from %{name}.files.all to %{name}.files-headless
+#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
INLCUDE="NO" ;
@@ -1344,6 +1344,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-14.b12
+- forced to build in fully versioned dir
+
* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-13.b12
- fixing tapset to support multipleinstalls
- added more config/norepalce
commit 2a29878ccee895e77c7afb0a5ed96e56c7c4deaa
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Aug 13 12:36:48 2014 +0200
fixing tapset to support multipleinstalls, added more config/norepalce, policitool
moved to jre
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f25acb9..e099822 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 13.%{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
@@ -501,7 +501,7 @@ tar xzf %{SOURCE8}
for file in tapset/*.in; do
- OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
+ OUTPUT_FILE=`echo $file | sed -e
s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
sed -e
s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g
$file > $file.1
# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
@@ -520,6 +520,7 @@ done
for file in %{SOURCE9} %{SOURCE10} ; do
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE
+ sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE
sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE
done
@@ -650,7 +651,7 @@ mkdir -p
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
%if %{with_systemtap}
# Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
- cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
+ cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
@@ -1027,6 +1028,7 @@ alternatives \
%{_mandir}/man1/java-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \
%{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \
+ --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
%{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
@@ -1110,7 +1112,6 @@ alternatives \
--slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
--slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \
--slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
- --slave %{_bindir}/policytool policytool %{sdkbindir}/policytool \
--slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
--slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
--slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
@@ -1228,6 +1229,7 @@ exit 0
%files -f %{name}.files
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
+%{_datadir}/applications/*policytool.desktop
# 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
@@ -1243,6 +1245,8 @@ exit 0
%{jvmjardir}
%dir %{_jvmdir}/%{jredir}/lib/security
%{_jvmdir}/%{jredir}/lib/security/cacerts
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
@@ -1258,13 +1262,12 @@ exit 0
%{_mandir}/man1/tnameserv-%{uniquesuffix}.1*
%{_mandir}/man1/unpack200-%{uniquesuffix}.1*
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir}/lib/audio/
%ifarch %{jit_arches}
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa
%endif
-%{_jvmdir}/%{jredir}/lib/audio/
-%{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
-%{_jvmdir}/%{jredir}/lib/security/local_policy.jar
+
%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
@@ -1287,7 +1290,6 @@ exit 0
%endif
%{_jvmjardir}/%{sdkdir}
%{_datadir}/applications/*jconsole.desktop
-%{_datadir}/applications/*policytool.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix}.1*
%{_mandir}/man1/extcheck-%{uniquesuffix}.1*
%{_mandir}/man1/idlj-%{uniquesuffix}.1*
@@ -1342,6 +1344,11 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-13.b12
+- fixing tapset to support multipleinstalls
+- added more config/norepalce
+- policitool moved to jre
+
* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-12.b12
- bumped release to build by previous release.
- forcing rebuild by jdk8
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index 4f3edda..407fd8f 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=OpenJDK 8 Monitoring & Management Console #ARCH#
Comment=Monitor and manage OpenJDK applications for #ARCH#
-Exec=#JAVA_HOME#/bin/jconsole
+Exec=#JAVA_HOME#/jconsole
Icon=java
Terminal=false
Type=Application
diff --git a/policytool.desktop.in b/policytool.desktop.in
index 1ffe2d9..24d7958 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=OpenJDK 8 Policy Tool #ARCH#
Comment=Manage OpenJDK policy files #ARCH#
-Exec=#JAVA_HOME#/bin/policytool
+Exec=#JRE_HOME#/policytool
Icon=java
Terminal=false
Type=Application
commit db534fa543b71304b6f665aa2776df0e4f19dd45
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 12 12:38:04 2014 +0200
bumped release to build by previous release, forcing rebuild by jdk8, uncommenting
forgotten comment on tzdb link
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8073469..f25acb9 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -137,7 +137,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -260,7 +260,7 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
#BuildRequires: redhat-lsb
BuildRequires: zip
-BuildRequires: java-1.7.0-openjdk-devel
+BuildRequires: java-1.8.0-openjdk-devel
# Zero-assembler build requirement.
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
@@ -604,8 +604,8 @@ install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
# Use system-wide tzdata
-#rm $JAVA_HOME/jre/lib/tzdb.dat
-#ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+rm $JAVA_HOME/jre/lib/tzdb.dat
+ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -1342,6 +1342,11 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-12.b12
+- bumped release to build by previous release.
+- forcing rebuild by jdk8
+- uncommenting forgotten comment on tzdb link
+
* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-11.b12
- backporting old fixes:
- get rid of jre-abrt, uniquesuffix, parallel install, jsa files,
commit f2604780e727165d10f7c3c2d3190b5257a72f34
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 12 10:22:25 2014 +0200
- backporting old fixes
- get rid of jre-abrt, uniquesuffix, parallel install, jsa files,
config(norepalce) bug, -fstack-protector-strong, OrderWithRequires,
nss config, multilib arches, provides/requires excludes
- some additional cosmetic changes
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e9afc12..8073469 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -4,14 +4,12 @@
%global aarch64_hg_tag 992
%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}
-# sometimes we need to distinguish big and little endian PPC64
-# taken from the openjdk-1.7 spec
-%global ppc64le ppc64le
-%global ppc64be ppc64 ppc64p7
-
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
#looks liekopenjdk RPM specific bug
@@ -606,8 +604,8 @@ install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
# Use system-wide tzdata
-rm $JAVA_HOME/jre/lib/tzdb.dat
-ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+#rm $JAVA_HOME/jre/lib/tzdb.dat
+#ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -652,7 +650,7 @@ mkdir -p
$RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
%if %{with_systemtap}
# Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
- cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
+ cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
@@ -753,20 +751,20 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \
- > %{name}.files.headless
+ > %{name}.files-headless
# Find JRE files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'||' \
- >> %{name}.files.all
+ > %{name}.files.all
#split %{name}.files to %{name}.files-headless and %{name}.files
#see
https://bugzilla.redhat.com/show_bug.cgi?id=875408
NOT_HEADLESS=\
-"%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjsoundalsa.so
-%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libpulse-java.so
-%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjawt.so"
+"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so
+%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so"
#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
@@ -1344,6 +1342,13 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-11.b12
+- backporting old fixes:
+- get rid of jre-abrt, uniquesuffix, parallel install, jsa files,
+ config(norepalce) bug, -fstack-protector-strong, OrderWithRequires,
+ nss config, multilib arches, provides/requires excludes
+- some additional cosmetic changes
+
* Tue Jul 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.11-8.b12
- Modify aarch64-specific jvm.cfg to list server vm first
commit b5340fbdd89ce5df4faec5aecffe2ccdd319f2fb
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Aug 5 17:06:43 2014 +0200
break package.
The jdk8 packages have been left out of minor bugfixes which meat 7. This must be
fixed before f21 release. Some work done now, but more awaiting. Pushing for today
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ef77a0b..e9afc12 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -4,7 +4,7 @@
%global aarch64_hg_tag 992
%global aarch64 aarch64 arm64 armv8
-%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
+%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
# sometimes we need to distinguish big and little endian PPC64
@@ -12,6 +12,17 @@
%global ppc64le ppc64le
%global ppc64be ppc64 ppc64p7
+# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
+# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
+#looks liekopenjdk RPM specific bug
+# Always set this so the nss.cfg file is not broken
+%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
+
+#fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349
+%global _privatelibs libmawt[.]so.*
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
%ifarch x86_64
%global archinstall amd64
%endif
@@ -81,10 +92,8 @@
%ifarch %{multilib_arches}
%global syslibdir %{_prefix}/lib64
%global _libdir %{_prefix}/lib
-%global archname %{name}.%{_arch}
%else
%global syslibdir %{_libdir}
-%global archname %{name}
%endif
# Standard JPackage naming and versioning defines.
@@ -98,24 +107,19 @@
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
-# Make 64-bit JDKs just another alternative on 64-bit architectures.
-%ifarch %{multilib_arches}
-%global sdklnk java-%{javaver}-%{origin}.%{_arch}
-%global jrelnk jre-%{javaver}-%{origin}.%{_arch}
-%global sdkdir %{name}-%{version}.%{_arch}
-%else
-%global sdklnk java-%{javaver}-%{origin}
-%global jrelnk jre-%{javaver}-%{origin}
-%global sdkdir %{name}-%{version}
-%endif
+%global sdkdir %{uniquesuffix}
+%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}
+
%global jredir %{sdkdir}/jre
-%global sdkbindir %{_jvmdir}/%{sdklnk}/bin
-%global jrebindir %{_jvmdir}/%{jrelnk}/bin
-%ifarch %{multilib_arches}
-%global jvmjardir %{_jvmjardir}/%{name}-%{version}.%{_arch}
-%else
-%global jvmjardir %{_jvmjardir}/%{name}-%{version}
-%endif
+%global sdkbindir %{_jvmdir}/%{sdkdir}/bin
+%global jrebindir %{_jvmdir}/%{jredir}/bin
+%global jvmjardir %{_jvmjardir}/%{uniquesuffix}
+
+%global fullversion %{name}-%{version}-%{release}
+
+%global uniquesuffix %{fullversion}.%{_arch}
+#we can copy the javadoc to not arched dir, or made it not noarch
+%global uniquejavadocdir %{fullversion}
%if %{with_systemtap}
# Where to install systemtap tapset (links)
@@ -135,7 +139,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 10.%{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
@@ -161,8 +165,6 @@ Source1:
aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar
# Custom README for -src subpackage
Source2: README.src
-Source3: java-abrt-launcher.in
-
# Use 'generate_tarballs.sh' to generate the following tarballs
# They are based on code contained in the IcedTea7 project.
@@ -254,11 +256,13 @@ BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
+# Requirements for setting up the nss.cfg
+BuildRequires: nss-devel
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
#BuildRequires: redhat-lsb
BuildRequires: zip
-BuildRequires: java-1.8.0-openjdk-devel
+BuildRequires: java-1.7.0-openjdk-devel
# Zero-assembler build requirement.
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
@@ -280,6 +284,8 @@ Requires: xorg-x11-fonts-Type1
# Requires rest of java
Requires: %{name}-headless = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
+
# Standard JPackage base provides.
Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -298,7 +304,6 @@ Provides: java-1.7.0-openjdk = %{epoch}:%{version}-%{release}
%description
The OpenJDK runtime environment.
-
%package headless
Summary: OpenJDK Runtime Environment
Group: Development/Languages
@@ -319,7 +324,7 @@ Provides: jre-%{javaver}-%{origin}-headless =
%{epoch}:%{version}-%{release}
Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release}
-Provides: jre-headless = %{javaver}
+Provides: jre-headless = %{epoch}:%{javaver}
Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release}
Provides: java-headless = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
@@ -340,13 +345,13 @@ Provides: java-1.7.0-openjdk-headless =
%{epoch}:%{version}-%{release}
%description headless
The OpenJDK runtime environment without audio and video support.
-
%package devel
Summary: OpenJDK Development Environment
Group: Development/Tools
# Require base package.
Requires: %{name} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall tool alternatives.
@@ -372,6 +377,7 @@ Summary: OpenJDK Demos
Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-demo <= 1:1.7.0.60-2.5.0.2
Provides: java-1.7.0-openjdk-demo = %{epoch}:%{version}-%{release}
@@ -397,6 +403,7 @@ Group: Documentation
Requires: jpackage-utils
BuildArch: noarch
+OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
# Post requires alternatives to install javadoc alternative.
Requires(post): %{_sbindir}/alternatives
# Postun requires alternatives to uninstall javadoc alternative.
@@ -412,11 +419,11 @@ Provides: java-1.7.0-openjdk-javadoc =
%{epoch}:%{version}-%{release}
%description javadoc
The OpenJDK API documentation.
-
%package accessibility
Summary: OpenJDK accessibility connector
Requires: java-atk-wrapper
Requires: %{name} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
Obsoletes: java-1.7.0-openjdk-accessibility <= 1:1.7.0.60-2.5.0.2
Provides: java-1.7.0-openjdk-accessibility = %{epoch}:%{version}-%{release}
@@ -498,7 +505,7 @@ for file in tapset/*.in; do
OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
sed -e
s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g
$file > $file.1
-# TODO find out which architectures other than ix86 have a client vm
+# TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86}
sed -e
s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g
$file.1 > $OUTPUT_FILE
%else
@@ -514,8 +521,8 @@ done
# Prepare desktop files
for file in %{SOURCE9} %{SOURCE10} ; do
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
- sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE
- sed -i -e s:@VERSION@:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE
+ sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE
+ sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE
done
%build
@@ -524,13 +531,15 @@ export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null
|| :`
export NUM_PROC=${NUM_PROC:-1}
# Build IcedTea and OpenJDK.
-%ifarch s390x sparc64 alpha %{power64}
+%ifarch s390x sparc64 alpha %{power64} %{aarch64}
export ARCH_DATA_MODEL=64
%endif
%ifarch alpha
export CFLAGS="$CFLAGS -mieee"
%endif
+export CFLAGS="$CFLAGS -fstack-protector-strong"
+
(cd jdk8/common/autoconf
bash ./autogen.sh
)
@@ -589,12 +598,12 @@ find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \;
popd >& /dev/null
+# Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
-# Install java-abrt-luncher
-mv $JAVA_HOME/jre/bin/java $JAVA_HOME/jre/bin/java-abrt
-cat %{SOURCE3} | sed -e s:@JAVA_PATH@:%{_jvmdir}/%{jredir}/bin/java-abrt:g -e
s:@LIB_DIR@:%{LIBDIR}/libabrt-java-connector.so:g > $JAVA_HOME/jre/bin/java
-chmod 755 $JAVA_HOME/jre/bin/java
+# Install nss.cfg right away as we will be using the JRE above
+install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
+
# Use system-wide tzdata
rm $JAVA_HOME/jre/lib/tzdb.dat
@@ -630,6 +639,10 @@ popd
pushd %{buildoutputdir}/images/j2sdk-image
+#install jsa directories so we can owe them
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
+
# Install main files.
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
@@ -639,7 +652,7 @@ pushd %{buildoutputdir}/images/j2sdk-image
%if %{with_systemtap}
# Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
- cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
+ cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
@@ -680,17 +693,15 @@ pushd %{buildoutputdir}/images/j2sdk-image
popd
# Install JCE policy symlinks.
- install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{archname}/jce/vanilla
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla
- # Install versionless symlinks.
+ # Install versioned symlinks.
pushd $RPM_BUILD_ROOT%{_jvmdir}
ln -sf %{jredir} %{jrelnk}
- ln -sf %{sdkdir} %{sdklnk}
popd
pushd $RPM_BUILD_ROOT%{_jvmjardir}
ln -sf %{sdkdir} %{jrelnk}
- ln -sf %{sdkdir} %{sdklnk}
popd
# Remove javaws man page
@@ -704,7 +715,7 @@ pushd %{buildoutputdir}/images/j2sdk-image
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
- $manpage .1)-%{name}.1
+ $manpage .1)-%{uniquesuffix}.1
done
# Install demos and samples.
@@ -716,13 +727,9 @@ pushd %{buildoutputdir}/images/j2sdk-image
popd
-# Install nss.cfg
-install -m 644 %{SOURCE11} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/
-
-
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
-cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
@@ -734,10 +741,14 @@ done
# Install desktop files.
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
for e in jconsole policytool ; do
- desktop-file-install --vendor=%{name} --mode=644 \
+ desktop-file-install --vendor=%{uniquesuffix} --mode=644 \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
done
+# Install /etc/.java/.systemPrefs/ directory
+# 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} -type d \
| grep -v jre/lib/security \
@@ -751,24 +762,24 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
#split %{name}.files to %{name}.files-headless and %{name}.files
#see
https://bugzilla.redhat.com/show_bug.cgi?id=875408
NOT_HEADLESS=\
-"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/libpulse-java.so
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so"
+"%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libpulse-java.so
+%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjawt.so"
#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
-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
+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" ;
+ l=`expr length "$blacklist"` || :
+ if [ $q -eq $l ]; then
+ INLCUDE="YES" ;
fi;
done
-if [ "x$INLCUDE" = "xNO" ]; then
+if [ "x$INLCUDE" = "xNO" ]; then
echo "$file" >> %{name}.files-headless
else
echo "$file" >> %{name}.files
@@ -815,18 +826,195 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
echo "" >> accessibility.properties
popd
-%post
+%pretrans headless -p <lua>
+-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+
+local posix = require "posix"
+
+local currentjvm = "%{uniquesuffix}"
+local jvmdir = "%{_jvmdir}"
+local jvmDestdir = jvmdir
+local origname = "%{name}"
+local origjavaver = "%{javaver}"
+--trasnform substitute names to lua patterns
+--all percentages must be doubled for case of RPM escapingg
+local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"),
"%%.", "%%%%.")
+local javaver = string.gsub(origjavaver, "%%.", "%%%%.")
+local arch ="%{_arch}"
+local debug = false;
+
+local jvms = { }
+
+local caredFiles = {"jre/lib/calendars.properties",
+ "jre/lib/content-types.properties",
+ "jre/lib/flavormap.properties",
+ "jre/lib/logging.properties",
+ "jre/lib/net.properties",
+ "jre/lib/psfontj2d.properties",
+ "jre/lib/sound.properties",
+ "jre/lib/tz.properties",
+ "jre/lib/deployment.properties",
+ "jre/lib/deployment.config",
+ "jre/lib/security/US_export_policy.jar",
+ "jre/lib/security/java.policy",
+ "jre/lib/security/java.security",
+ "jre/lib/security/local_policy.jar",
+ "jre/lib/security/nss.cfg,",
+ "jre/lib/ext"}
+
+function splitToTable(source, pattern)
+ local i1 = string.gmatch(source, pattern)
+ local l1 = {}
+ for i in i1 do
+ table.insert(l1, i)
+ end
+ return l1
+end
+
+if (debug) then
+ print("started")
+end;
+
+foundJvms = posix.dir(jvmdir);
+if (foundJvms == nil) then
+ if (debug) then
+ print("no, or nothing in "..jvmdir.." exit")
+ end;
+ return
+end
+
+if (debug) then
+ print("found "..#foundJvms.."jvms")
+end;
+
+for i,p in pairs(foundJvms) do
+-- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command
+--all percentages must be doubled for case of RPM escapingg
+ if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then
+ if (debug) then
+ print("matched: "..p)
+ end;
+ if (currentjvm == p) then
+ if (debug) then
+ print("this jdk is already installed. exiting lua script")
+ end;
+ return
+ end ;
+ table.insert(jvms, p)
+ else
+ if (debug) then
+ print("NOT matched: "..p)
+ end;
+ end
+end
+
+if (#jvms <=0) then
+ if (debug) then
+ print("no matching jdk in "..jvmdir.." exit")
+ end;
+ return
+end;
+
+if (debug) then
+ print("matched "..#jvms.." jdk in "..jvmdir)
+end;
+
+--full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64
+table.sort(jvms , function(a,b)
+-- version-sort
+-- split on non word: . -
+ local l1 = splitToTable(a, "[^%.-]+")
+ local l2 = splitToTable(b, "[^%.-]+")
+ for x = 1, math.min(#l1, #l2) do
+ local l1x = tonumber(l1[x])
+ local l2x = tonumber(l2[x])
+ if (l1x ~= nil and l2x ~= nil)then
+--if hunks are numbers, go with them
+ if (l1x < l2x) then return true; end
+ if (l1x > l2x) then return false; end
+ else
+ if (l1[x] < l2[x]) then return true; end
+ if (l1[x] > l2[x]) then return false; end
+ end
+-- if hunks are equals then move to another pair of hunks
+ end
+return a<b
+
+end)
+
+if (debug) then
+ print("sorted lsit of jvms")
+ for i,file in pairs(jvms) do
+ print(file)
+ end
+end
+
+latestjvm = jvms[#jvms]
+
+
+for i,file in pairs(caredFiles) do
+ local SOURCE=jvmdir.."/"..latestjvm.."/"..file
+ local DEST=jvmDestdir.."/"..currentjvm.."/"..file
+ if (debug) then
+ print("going to copy "..SOURCE)
+ print("to "..DEST)
+ end;
+ local stat1 = posix.stat(SOURCE, "type");
+ if (stat1 ~= nil) then
+ if (debug) then
+ print(SOURCE.." exists")
+ end;
+ local s = ""
+ local dirs = splitToTable(DEST, "[^/]+")
+ for i,d in pairs(dirs) do
+ if (i == #dirs) then
+ break
+ end
+ s = s.."/"..d
+ local stat2 = posix.stat(s, "type");
+ if (stat2 == nil) then
+ if (debug) then
+ print(s.." does not exists, creating")
+ end;
+ posix.mkdir(s)
+ else
+ if (debug) then
+ print(s.." exists,not creating")
+ end;
+ end
+ end
+-- Copy with -a to keep everything intact
+ local exe = "cp".." -ar "..SOURCE.." "..DEST
+ if (debug) then
+ print("executing "..exe)
+ end;
+ os.execute(exe)
+ else
+ if (debug) then
+ print(SOURCE.." does not exists")
+ end;
+ end
+end
+
+
+%post
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
exit 0
+
# FIXME: identical binaries are copied, not linked. This needs to be
# fixed upstream.
%post headless
+%ifarch %{jit_arches}
+#see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null
+%endif
+
ext=.gz
alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
- --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
+ --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
--slave %{_bindir}/jjs jjs %{jrebindir}/jjs \
--slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
@@ -838,37 +1026,36 @@ alternatives \
--slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
--slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
--slave %{_mandir}/man1/java.1$ext java.1$ext \
- %{_mandir}/man1/java-%{name}.1$ext \
+ %{_mandir}/man1/java-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \
- %{_mandir}/man1/jjs-%{name}.1$ext \
+ %{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
- %{_mandir}/man1/keytool-%{name}.1$ext \
+ %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
- %{_mandir}/man1/orbd-%{name}.1$ext \
+ %{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
- %{_mandir}/man1/pack200-%{name}.1$ext \
+ %{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
- %{_mandir}/man1/rmid-%{name}.1$ext \
+ %{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
- %{_mandir}/man1/rmiregistry-%{name}.1$ext \
+ %{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
- %{_mandir}/man1/servertool-%{name}.1$ext \
+ %{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
- %{_mandir}/man1/tnameserv-%{name}.1$ext \
+ %{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
- %{_mandir}/man1/unpack200-%{name}.1$ext
-
-alternatives \
- --install %{_jvmdir}/jre-%{origin} \
- jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
- --slave %{_jvmjardir}/jre-%{origin} \
- jre_%{origin}_exports %{_jvmjardir}/%{jrelnk}
+ %{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives \
+ --install %{_jvmdir}/jre-"$X" \
+ jre_"$X" %{_jvmdir}/%{jredir} %{priority} \
+ --slave %{_jvmjardir}/jre-"$X" \
+ jre_"$X"_exports %{_jvmjardir}/%{jredir}
+done
-alternatives \
- --install %{_jvmdir}/jre-%{javaver} \
- jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
- --slave %{_jvmjardir}/jre-%{javaver} \
- jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
+--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports
%{jvmjardir}
update-desktop-database %{_datadir}/applications &> /dev/null || :
@@ -886,13 +1073,13 @@ fi
exit 0
+
%postun headless
-if [ $1 -eq 0 ]
-then
alternatives --remove java %{jrebindir}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
-fi
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir}
+ alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk}
+
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
@@ -901,8 +1088,8 @@ fi
ext=.gz
alternatives \
--install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
- --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
- --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdklnk} \
+ --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \
+ --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
--slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
--slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \
@@ -933,77 +1120,76 @@ alternatives \
--slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
--slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
--slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
- %{_mandir}/man1/appletviewer-%{name}.1$ext \
+ %{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
- %{_mandir}/man1/extcheck-%{name}.1$ext \
+ %{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \
- %{_mandir}/man1/idlj-%{name}.1$ext \
+ %{_mandir}/man1/idlj-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jar.1$ext jar.1$ext \
- %{_mandir}/man1/jar-%{name}.1$ext \
+ %{_mandir}/man1/jar-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
- %{_mandir}/man1/jarsigner-%{name}.1$ext \
+ %{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/javac.1$ext javac.1$ext \
- %{_mandir}/man1/javac-%{name}.1$ext \
+ %{_mandir}/man1/javac-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
- %{_mandir}/man1/javadoc-%{name}.1$ext \
+ %{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/javah.1$ext javah.1$ext \
- %{_mandir}/man1/javah-%{name}.1$ext \
+ %{_mandir}/man1/javah-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/javap.1$ext javap.1$ext \
- %{_mandir}/man1/javap-%{name}.1$ext \
+ %{_mandir}/man1/javap-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \
- %{_mandir}/man1/jcmd-%{name}.1$ext \
+ %{_mandir}/man1/jcmd-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
- %{_mandir}/man1/jconsole-%{name}.1$ext \
+ %{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
- %{_mandir}/man1/jdb-%{name}.1$ext \
+ %{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \
- %{_mandir}/man1/jdeps-%{name}.1$ext \
+ %{_mandir}/man1/jdeps-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
- %{_mandir}/man1/jhat-%{name}.1$ext \
+ %{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
- %{_mandir}/man1/jinfo-%{name}.1$ext \
+ %{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \
- %{_mandir}/man1/jmap-%{name}.1$ext \
+ %{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jps.1$ext jps.1$ext \
- %{_mandir}/man1/jps-%{name}.1$ext \
+ %{_mandir}/man1/jps-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
- %{_mandir}/man1/jrunscript-%{name}.1$ext \
+ %{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
- %{_mandir}/man1/jsadebugd-%{name}.1$ext \
+ %{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \
- %{_mandir}/man1/jstack-%{name}.1$ext \
+ %{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \
- %{_mandir}/man1/jstat-%{name}.1$ext \
+ %{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \
- %{_mandir}/man1/jstatd-%{name}.1$ext \
+ %{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
- %{_mandir}/man1/native2ascii-%{name}.1$ext \
+ %{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
- %{_mandir}/man1/policytool-%{name}.1$ext \
+ %{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
- %{_mandir}/man1/rmic-%{name}.1$ext \
+ %{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
- %{_mandir}/man1/schemagen-%{name}.1$ext \
+ %{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
- %{_mandir}/man1/serialver-%{name}.1$ext \
+ %{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
- %{_mandir}/man1/wsgen-%{name}.1$ext \
+ %{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
- %{_mandir}/man1/wsimport-%{name}.1$ext \
+ %{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
- %{_mandir}/man1/xjc-%{name}.1$ext
+ %{_mandir}/man1/xjc-%{uniquesuffix}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives \
+ --install %{_jvmdir}/java-"$X" \
+ java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \
+ --slave %{_jvmjardir}/java-"$X" \
+ java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir}
+done
-alternatives \
- --install %{_jvmdir}/java-%{origin} \
- java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \
- --slave %{_jvmjardir}/java-%{origin} \
- java_sdk_%{origin}_exports %{_jvmjardir}/%{sdklnk}
-
-alternatives \
- --install %{_jvmdir}/java-%{javaver} \
- java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
- --slave %{_jvmjardir}/java-%{javaver} \
- java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \
+--slave %{_jvmjardir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir}
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -1011,38 +1197,33 @@ update-desktop-database %{_datadir}/applications &>
/dev/null || :
exit 0
%postun devel
-if [ $1 -eq 0 ]
-then
alternatives --remove javac %{sdkbindir}/javac
- alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
- alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
-fi
+ alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir}
+ alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir}
+ alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir}
update-desktop-database %{_datadir}/applications &> /dev/null || :
if [ $1 -eq 0 ] ; then
- /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
- /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
-
exit 0
-%posttrans devel
+%posttrans devel
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
%post javadoc
alternatives \
- --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{name}/api \
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \
%{priority}
exit 0
%postun javadoc
-if [ $1 -eq 0 ]
-then
- alternatives --remove javadocdir %{_javadocdir}/%{name}/api
-fi
+ alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api
exit 0
@@ -1050,13 +1231,13 @@ exit 0
%files -f %{name}.files
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
-
-%files headless -f %{name}.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 headless -f %{name}.files-headless
%defattr(-,root,root,-)
%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README
-
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
@@ -1067,20 +1248,27 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
-%{_mandir}/man1/java-%{name}.1*
-%{_mandir}/man1/jjs-%{name}.1*
-%{_mandir}/man1/keytool-%{name}.1*
-%{_mandir}/man1/orbd-%{name}.1*
-%{_mandir}/man1/pack200-%{name}.1*
-%{_mandir}/man1/rmid-%{name}.1*
-%{_mandir}/man1/rmiregistry-%{name}.1*
-%{_mandir}/man1/servertool-%{name}.1*
-%{_mandir}/man1/tnameserv-%{name}.1*
-%{_mandir}/man1/unpack200-%{name}.1*
-%{_jvmdir}/%{jredir}/lib/security/nss.cfg
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties
+%{_mandir}/man1/java-%{uniquesuffix}.1*
+%{_mandir}/man1/jjs-%{uniquesuffix}.1*
+%{_mandir}/man1/keytool-%{uniquesuffix}.1*
+%{_mandir}/man1/orbd-%{uniquesuffix}.1*
+%{_mandir}/man1/pack200-%{uniquesuffix}.1*
+%{_mandir}/man1/rmid-%{uniquesuffix}.1*
+%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1*
+%{_mandir}/man1/servertool-%{uniquesuffix}.1*
+%{_mandir}/man1/tnameserv-%{uniquesuffix}.1*
+%{_mandir}/man1/unpack200-%{uniquesuffix}.1*
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg
+%ifarch %{jit_arches}
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa
+%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa
+%endif
%{_jvmdir}/%{jredir}/lib/audio/
%{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
%{_jvmdir}/%{jredir}/lib/security/local_policy.jar
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
%files devel
%defattr(-,root,root,-)
@@ -1099,40 +1287,39 @@ exit 0
%if %{with_systemtap}
%{_jvmdir}/%{sdkdir}/tapset/*.stp
%endif
-%{_jvmdir}/%{sdklnk}
-%{_jvmjardir}/%{sdklnk}
+%{_jvmjardir}/%{sdkdir}
%{_datadir}/applications/*jconsole.desktop
%{_datadir}/applications/*policytool.desktop
-%{_mandir}/man1/appletviewer-%{name}.1*
-%{_mandir}/man1/extcheck-%{name}.1*
-%{_mandir}/man1/idlj-%{name}.1*
-%{_mandir}/man1/jar-%{name}.1*
-%{_mandir}/man1/jarsigner-%{name}.1*
-%{_mandir}/man1/javac-%{name}.1*
-%{_mandir}/man1/javadoc-%{name}.1*
-%{_mandir}/man1/javah-%{name}.1*
-%{_mandir}/man1/javap-%{name}.1*
-%{_mandir}/man1/jconsole-%{name}.1*
-%{_mandir}/man1/jcmd-%{name}.1*
-%{_mandir}/man1/jdb-%{name}.1*
-%{_mandir}/man1/jdeps-%{name}.1*
-%{_mandir}/man1/jhat-%{name}.1*
-%{_mandir}/man1/jinfo-%{name}.1*
-%{_mandir}/man1/jmap-%{name}.1*
-%{_mandir}/man1/jps-%{name}.1*
-%{_mandir}/man1/jrunscript-%{name}.1*
-%{_mandir}/man1/jsadebugd-%{name}.1*
-%{_mandir}/man1/jstack-%{name}.1*
-%{_mandir}/man1/jstat-%{name}.1*
-%{_mandir}/man1/jstatd-%{name}.1*
-%{_mandir}/man1/native2ascii-%{name}.1*
-%{_mandir}/man1/policytool-%{name}.1*
-%{_mandir}/man1/rmic-%{name}.1*
-%{_mandir}/man1/schemagen-%{name}.1*
-%{_mandir}/man1/serialver-%{name}.1*
-%{_mandir}/man1/wsgen-%{name}.1*
-%{_mandir}/man1/wsimport-%{name}.1*
-%{_mandir}/man1/xjc-%{name}.1*
+%{_mandir}/man1/appletviewer-%{uniquesuffix}.1*
+%{_mandir}/man1/extcheck-%{uniquesuffix}.1*
+%{_mandir}/man1/idlj-%{uniquesuffix}.1*
+%{_mandir}/man1/jar-%{uniquesuffix}.1*
+%{_mandir}/man1/jarsigner-%{uniquesuffix}.1*
+%{_mandir}/man1/javac-%{uniquesuffix}.1*
+%{_mandir}/man1/javadoc-%{uniquesuffix}.1*
+%{_mandir}/man1/javah-%{uniquesuffix}.1*
+%{_mandir}/man1/javap-%{uniquesuffix}.1*
+%{_mandir}/man1/jconsole-%{uniquesuffix}.1*
+%{_mandir}/man1/jcmd-%{uniquesuffix}.1*
+%{_mandir}/man1/jdb-%{uniquesuffix}.1*
+%{_mandir}/man1/jdeps-%{uniquesuffix}.1*
+%{_mandir}/man1/jhat-%{uniquesuffix}.1*
+%{_mandir}/man1/jinfo-%{uniquesuffix}.1*
+%{_mandir}/man1/jmap-%{uniquesuffix}.1*
+%{_mandir}/man1/jps-%{uniquesuffix}.1*
+%{_mandir}/man1/jrunscript-%{uniquesuffix}.1*
+%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1*
+%{_mandir}/man1/jstack-%{uniquesuffix}.1*
+%{_mandir}/man1/jstat-%{uniquesuffix}.1*
+%{_mandir}/man1/jstatd-%{uniquesuffix}.1*
+%{_mandir}/man1/native2ascii-%{uniquesuffix}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix}.1*
+%{_mandir}/man1/rmic-%{uniquesuffix}.1*
+%{_mandir}/man1/schemagen-%{uniquesuffix}.1*
+%{_mandir}/man1/serialver-%{uniquesuffix}.1*
+%{_mandir}/man1/wsgen-%{uniquesuffix}.1*
+%{_mandir}/man1/wsimport-%{uniquesuffix}.1*
+%{_mandir}/man1/xjc-%{uniquesuffix}.1*
%if %{with_systemtap}
%{tapsetroot}
%endif
@@ -1148,7 +1335,7 @@ exit 0
%files javadoc
%defattr(-,root,root,-)
-%doc %{_javadocdir}/%{name}
+%doc %{_javadocdir}/%{uniquejavadocdir}
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%files accessibility
diff --git a/java-abrt-launcher.in b/java-abrt-launcher.in
deleted file mode 100644
index d2a7485..0000000
--- a/java-abrt-launcher.in
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-if [ -e @LIB_DIR@ ] ; then
- exec -a java @JAVA_PATH@ -agentpath:@LIB_DIR@=abrt=on "$@"
-else
- exec -a java @JAVA_PATH@ "$@"
-fi
-
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
index 2a3bbdb..4f3edda 100644
--- a/jconsole.desktop.in
+++ b/jconsole.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
-Name=OpenJDK 8 Monitoring & Management Console
-Comment=Monitor and manage OpenJDK applications for @VERSION@
-Exec=@JAVA_HOME@/bin/jconsole
+Name=OpenJDK 8 Monitoring & Management Console #ARCH#
+Comment=Monitor and manage OpenJDK applications for #ARCH#
+Exec=#JAVA_HOME#/bin/jconsole
Icon=java
Terminal=false
Type=Application
diff --git a/nss.cfg b/nss.cfg
index c510dd0..377a39c 100644
--- a/nss.cfg
+++ b/nss.cfg
@@ -1,4 +1,5 @@
name = NSS
-nssLibraryDirectory =
+nssLibraryDirectory = @NSS_LIBDIR@
nssDbMode = noDb
attributes = compatibility
+handleStartupErrors = ignoreMultipleInitialisation
diff --git a/policytool.desktop.in b/policytool.desktop.in
index 0c2f454..1ffe2d9 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
-Name=OpenJDK 8 Policy Tool
-Comment=Manage OpenJDK policy files (@VERSION@)
-Exec=@JAVA_HOME@/bin/policytool
+Name=OpenJDK 8 Policy Tool #ARCH#
+Comment=Manage OpenJDK policy files #ARCH#
+Exec=#JAVA_HOME#/bin/policytool
Icon=java
Terminal=false
Type=Application
commit b2143c60e8a58090de6a05034a9b09312c7b9479
Merge: 9072f47 b0f0942
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Jul 22 15:01:29 2014 -0400
Merge branch 'f21'
Conflicts:
enableArm64.patch
java-1.8.0-openjdk.spec
commit b0f0942875e6ccab624f3906aa8b5d6557055165
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Jul 22 14:58:17 2014 -0400
Bump NVR for previous fix
Also update the rpm changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8e20894..ef77a0b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -1157,6 +1157,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.11-8.b12
+- Modify aarch64-specific jvm.cfg to list server vm first
+
* Mon Jul 21 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-7.b12
- removed legacy aarch64 switches
- --with-jvm-variants=client and --disable-precompiled-headers
commit 2d6cb44c828a16ba5663d90ad062c7aaf70ca2f1
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Jul 22 11:20:29 2014 -0400
aarch64: change order of VMs in jvm.cfg
diff --git a/enableArm64.patch b/enableArm64.patch
index 6955860..e5c3824 100644
--- a/enableArm64.patch
+++ b/enableArm64.patch
@@ -1,8 +1,8 @@
--- /dev/null
+++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg
@@ -0,0 +1,2 @@
-+-client IGNORE
+-server KNOWN
++-client IGNORE
--- jdk8/common/autoconf/generated-configure.sh
+++ jdk8/common/autoconf/generated-configure.sh
@@ -6728,8 +6728,9 @@
commit 0423ff31b5de69e3f1ef89c55249bc418e4e17d5
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Mon Jul 21 11:49:55 2014 +0200
Tuned arm64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 33ca5ff..8e20894 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -542,10 +542,6 @@ pushd %{buildoutputdir}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
-%endif
-%ifarch %{aarch64}
- --with-jvm-variants=client \
- --disable-precompiled-headers \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
@@ -1161,6 +1157,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Jul 21 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-7.b12
+- removed legacy aarch64 switches
+ - --with-jvm-variants=client and --disable-precompiled-headers
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
- added patch patch9999 enableArm64.patch to enable new hotspot
commit 9072f47c1ac4d1e1b19ed7bf317a38d1125577a5
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Mon Jul 21 11:49:05 2014 +0200
Tuned aarch64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 33ca5ff..8e20894 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -542,10 +542,6 @@ pushd %{buildoutputdir}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
-%endif
-%ifarch %{aarch64}
- --with-jvm-variants=client \
- --disable-precompiled-headers \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
@@ -1161,6 +1157,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Jul 21 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-7.b12
+- removed legacy aarch64 switches
+ - --with-jvm-variants=client and --disable-precompiled-headers
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
- added patch patch9999 enableArm64.patch to enable new hotspot
commit b1ddbec1755d5b85df90e253ddf9fc1724a85a7b
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Jul 18 17:28:35 2014 +0200
enabled aarch
diff --git a/enableArm64.patch b/enableArm64.patch
new file mode 100644
index 0000000..6955860
--- /dev/null
+++ b/enableArm64.patch
@@ -0,0 +1,153 @@
+--- /dev/null
++++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg
+@@ -0,0 +1,2 @@
++-client IGNORE
++-server KNOWN
+--- jdk8/common/autoconf/generated-configure.sh
++++ jdk8/common/autoconf/generated-configure.sh
+@@ -6728,8 +6728,9 @@
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ test -n "$target_alias" &&
+- test "$program_prefix$program_suffix$program_transform_name" = \
+- NONENONEs,x,x, &&
++ test "$target_alias" != "$host_alias" &&
++ test "$program_prefix$program_suffix$program_transform_name" = \
++ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ # Figure out the build and target systems. # Note that in autoconf terminology,
"build" is obvious, but "target"
+@@ -6808,6 +6809,12 @@
+ VAR_CPU=arm
+ VAR_CPU_ARCH=arm
+ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
+ ;;
+ powerpc)
+@@ -6930,6 +6937,12 @@
+ VAR_CPU_BITS=32
+ VAR_CPU_ENDIAN=little
+ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ ;;
+ powerpc)
+ VAR_CPU=ppc
+ VAR_CPU_ARCH=ppc
+@@ -7889,6 +7902,9 @@
+ INCLUDE_SA=false
+ fi
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
++ INCLUDE_SA=false
++ fi
++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+ INCLUDE_SA=false
+ fi
+
+@@ -29737,6 +29753,9 @@
+ case "${OPENJDK_TARGET_CPU}" in
+ s390)
+ ZERO_ARCHFLAG="-m31"
++ ;;
++ aarch64)
++ ZERO_ARCHFLAG=""
+ ;;
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+--- jdk8/common/autoconf/jdk-options.m4
++++ jdk8/common/autoconf/jdk-options.m4
+@@ -88,11 +88,6 @@
+ JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
+ JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+
+- if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+- AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
+- fi
+- fi
+ if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+ if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+ AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
+@@ -126,6 +121,9 @@
+ INCLUDE_SA=false
+ fi
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
++ INCLUDE_SA=false
++ fi
++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+ INCLUDE_SA=false
+ fi
+ AC_SUBST(INCLUDE_SA)
+@@ -423,12 +421,6 @@
+ AC_MSG_ERROR([Update version must have a value])
+ elif test "x$with_update_version" != x; then
+ JDK_UPDATE_VERSION="$with_update_version"
+- # On macosx 10.7, it's not possible to set --with-update-version=0X due
+- # to a bug in expr (which reduces it to just X). To work around this, we
+- # always add a 0 to one digit update versions.
+- if test "${#JDK_UPDATE_VERSION}" = "1"; then
+- JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}"
+- fi
+ fi
+
+ AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix],
+--- jdk8/common/autoconf/platform.m4
++++ jdk8/common/autoconf/platform.m4
+@@ -46,6 +46,12 @@
+ VAR_CPU=arm
+ VAR_CPU_ARCH=arm
+ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
+ ;;
+ powerpc)
+--- jdk8/common/autoconf/toolchain.m4
++++ jdk8/common/autoconf/toolchain.m4
+@@ -1078,6 +1078,9 @@
+ s390)
+ ZERO_ARCHFLAG="-m31"
+ ;;
++ aarch64)
++ ZERO_ARCHFLAG=""
++ ;;
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ esac
+--- jdk8/jdk/make/lib/SoundLibraries.gmk
++++ jdk8/jdk/make/lib/SoundLibraries.gmk
+@@ -130,6 +130,10 @@
+
+ ifeq ($(OPENJDK_TARGET_CPU), ppc)
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC
++ endif
++
++ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
+ endif
+ endif
+
+--- jdk8/jdk/make/CompileJavaClasses.gmk
++++ jdk8/jdk/make/CompileJavaClasses.gmk
+@@ -390,7 +390,7 @@
+
+
##########################################################################################
+
+-all: $(BUILD_JDK) $(BUILD_SECURITY) $(COPY_EXTRA) \
++all: $(BUILD_JDK) $(BUILD_SECURITY) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA)
\
+ $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
+ $(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
+ $(BUILD_ACCESSBRIDGE_LEGACY)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index eda7d86..33ca5ff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -231,7 +231,8 @@ Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
-Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+Patch9999: enableArm64.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -453,6 +454,10 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
+%ifarch %{aarch64}
+%patch9999
+%endif
+
%patch201
%patch202
%patch203
@@ -1156,6 +1161,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
+- added patch patch9999 enableArm64.patch to enable new hotspot
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
commit 20a4f668337299740ef9cc6c2b7c05b8653bd35f
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Jul 18 17:26:47 2014 +0200
minor tuning of patch
diff --git a/enableArm64.patch b/enableArm64.patch
index 927d6b3..6955860 100644
--- a/enableArm64.patch
+++ b/enableArm64.patch
@@ -1,9 +1,8 @@
--- /dev/null
+++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg
-@@ -0,0 +1,3 @@
-+-client IF_SERVER_CLASS -server
+@@ -0,0 +1,2 @@
++-client IGNORE
+-server KNOWN
-+-minimal KNOWN
--- jdk8/common/autoconf/generated-configure.sh
+++ jdk8/common/autoconf/generated-configure.sh
@@ -6728,8 +6728,9 @@
commit 8d522b5b0dd3f96223b9939e97d5d9cf8fa9170f
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Jul 18 16:24:15 2014 +0200
added patch patch9999 enableArm64.patch to enable new hotspot
diff --git a/enableArm64.patch b/enableArm64.patch
new file mode 100644
index 0000000..927d6b3
--- /dev/null
+++ b/enableArm64.patch
@@ -0,0 +1,154 @@
+--- /dev/null
++++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg
+@@ -0,0 +1,3 @@
++-client IF_SERVER_CLASS -server
++-server KNOWN
++-minimal KNOWN
+--- jdk8/common/autoconf/generated-configure.sh
++++ jdk8/common/autoconf/generated-configure.sh
+@@ -6728,8 +6728,9 @@
+ # The aliases save the names the user supplied, while $host etc.
+ # will get canonicalized.
+ test -n "$target_alias" &&
+- test "$program_prefix$program_suffix$program_transform_name" = \
+- NONENONEs,x,x, &&
++ test "$target_alias" != "$host_alias" &&
++ test "$program_prefix$program_suffix$program_transform_name" = \
++ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ # Figure out the build and target systems. # Note that in autoconf terminology,
"build" is obvious, but "target"
+@@ -6808,6 +6809,12 @@
+ VAR_CPU=arm
+ VAR_CPU_ARCH=arm
+ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
+ ;;
+ powerpc)
+@@ -6930,6 +6937,12 @@
+ VAR_CPU_BITS=32
+ VAR_CPU_ENDIAN=little
+ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ ;;
+ powerpc)
+ VAR_CPU=ppc
+ VAR_CPU_ARCH=ppc
+@@ -7889,6 +7902,9 @@
+ INCLUDE_SA=false
+ fi
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
++ INCLUDE_SA=false
++ fi
++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+ INCLUDE_SA=false
+ fi
+
+@@ -29737,6 +29753,9 @@
+ case "${OPENJDK_TARGET_CPU}" in
+ s390)
+ ZERO_ARCHFLAG="-m31"
++ ;;
++ aarch64)
++ ZERO_ARCHFLAG=""
+ ;;
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+--- jdk8/common/autoconf/jdk-options.m4
++++ jdk8/common/autoconf/jdk-options.m4
+@@ -88,11 +88,6 @@
+ JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
+ JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e
'/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+
+- if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+- AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
+- fi
+- fi
+ if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+ if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+ AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
+@@ -126,6 +121,9 @@
+ INCLUDE_SA=false
+ fi
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
++ INCLUDE_SA=false
++ fi
++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+ INCLUDE_SA=false
+ fi
+ AC_SUBST(INCLUDE_SA)
+@@ -423,12 +421,6 @@
+ AC_MSG_ERROR([Update version must have a value])
+ elif test "x$with_update_version" != x; then
+ JDK_UPDATE_VERSION="$with_update_version"
+- # On macosx 10.7, it's not possible to set --with-update-version=0X due
+- # to a bug in expr (which reduces it to just X). To work around this, we
+- # always add a 0 to one digit update versions.
+- if test "${#JDK_UPDATE_VERSION}" = "1"; then
+- JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}"
+- fi
+ fi
+
+ AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix],
+--- jdk8/common/autoconf/platform.m4
++++ jdk8/common/autoconf/platform.m4
+@@ -46,6 +46,12 @@
+ VAR_CPU=arm
+ VAR_CPU_ARCH=arm
+ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
++ aarch64)
++ VAR_CPU=aarch64
++ VAR_CPU_ARCH=aarch64
++ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
+ ;;
+ powerpc)
+--- jdk8/common/autoconf/toolchain.m4
++++ jdk8/common/autoconf/toolchain.m4
+@@ -1078,6 +1078,9 @@
+ s390)
+ ZERO_ARCHFLAG="-m31"
+ ;;
++ aarch64)
++ ZERO_ARCHFLAG=""
++ ;;
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ esac
+--- jdk8/jdk/make/lib/SoundLibraries.gmk
++++ jdk8/jdk/make/lib/SoundLibraries.gmk
+@@ -130,6 +130,10 @@
+
+ ifeq ($(OPENJDK_TARGET_CPU), ppc)
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC
++ endif
++
++ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
+ endif
+ endif
+
+--- jdk8/jdk/make/CompileJavaClasses.gmk
++++ jdk8/jdk/make/CompileJavaClasses.gmk
+@@ -390,7 +390,7 @@
+
+
##########################################################################################
+
+-all: $(BUILD_JDK) $(BUILD_SECURITY) $(COPY_EXTRA) \
++all: $(BUILD_JDK) $(BUILD_SECURITY) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA)
\
+ $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
+ $(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
+ $(BUILD_ACCESSBRIDGE_LEGACY)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index eda7d86..33ca5ff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -231,7 +231,8 @@ Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
-Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+Patch9999: enableArm64.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -453,6 +454,10 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
+%ifarch %{aarch64}
+%patch9999
+%endif
+
%patch201
%patch202
%patch203
@@ -1156,6 +1161,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
+- added patch patch9999 enableArm64.patch to enable new hotspot
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
commit f61c74f9582cdd1df9c43e3ed756e0ad24816588
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Jul 17 16:42:32 2014 +0200
Sync with f21
diff --git a/.gitignore b/.gitignore
index ebfcb6f..606b199 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
/aarch64-port-jdk8-b128-aarch64-992.tar.xz
/jdk8u-jdk8u5-b13.tar.xz
/jdk8u-jdk8u11-b12.tar.xz
+/aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ef04f1e..eda7d86 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -156,7 +156,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: aarch64-port-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
+Source1: aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -267,7 +267,7 @@ BuildRequires: libffi-devel
BuildRequires: openssl
# execstack build requirement.
# no prelink on ARM yet
-%ifnarch %{arm} %{aarch64} ppc64le
+%ifnarch %{arm} %{aarch64} %{ppc64le}
BuildRequires: prelink
%endif
%if %{with_systemtap}
@@ -432,13 +432,13 @@ need to.
%prep
+%setup -q -c -n %{name} -T -a 0
%ifarch %{aarch64}
-%global source_num 1
-%else
-%global source_num 0
+pushd jdk8
+rm -r hotspot
+tar xf %{SOURCE1}
+popd
%endif
-
-%setup -q -c -n %{name} -T -a %{source_num}
cp %{SOURCE2} .
# replace outdated configure guess script
@@ -1156,6 +1156,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
+- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
- updated to security u11b12
diff --git a/sources b/sources
index 70accbc..9a44096 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
84eed2615ebcf518ad92c88c280ede9e jdk8u-jdk8u11-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
+8c0436da8098f15c7bda2fa4f927e525 aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
commit 8ca747031c12ca4843e791873408f3b5a03187cb
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Jul 17 16:38:10 2014 +0200
Repalcing hardcoded ppc64le by macro
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0535e3e..eda7d86 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -267,7 +267,7 @@ BuildRequires: libffi-devel
BuildRequires: openssl
# execstack build requirement.
# no prelink on ARM yet
-%ifnarch %{arm} %{aarch64} ppc64le
+%ifnarch %{arm} %{aarch64} %{ppc64le}
BuildRequires: prelink
%endif
%if %{with_systemtap}
commit 7ddb2ab59622c6e414dc7406c0b2af2d6c9087a2
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Jul 17 16:20:55 2014 +0200
Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
diff --git a/.gitignore b/.gitignore
index ebfcb6f..606b199 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
/aarch64-port-jdk8-b128-aarch64-992.tar.xz
/jdk8u-jdk8u5-b13.tar.xz
/jdk8u-jdk8u11-b12.tar.xz
+/aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ef04f1e..0535e3e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -156,7 +156,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
-Source1: aarch64-port-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
+Source1: aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -432,13 +432,13 @@ need to.
%prep
+%setup -q -c -n %{name} -T -a 0
%ifarch %{aarch64}
-%global source_num 1
-%else
-%global source_num 0
+pushd jdk8
+rm -r hotspot
+tar xf %{SOURCE1}
+popd
%endif
-
-%setup -q -c -n %{name} -T -a %{source_num}
cp %{SOURCE2} .
# replace outdated configure guess script
@@ -1156,6 +1156,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
+- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
+
* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
- updated to security u11b12
diff --git a/sources b/sources
index 70accbc..9a44096 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
84eed2615ebcf518ad92c88c280ede9e jdk8u-jdk8u11-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
+8c0436da8098f15c7bda2fa4f927e525 aarch64-hotspot-jdk8-b128-aarch64-992.tar.xz
commit 34afc8e87b4b3f90144e33b3a4b6f4bc16f296e6
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Jul 16 08:44:45 2014 +0200
updated to security u11b12
diff --git a/.gitignore b/.gitignore
index 7b825f4..ebfcb6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@
/aarch64-port-rc4.tar.xz
/aarch64-port-jdk8-b128-aarch64-992.tar.xz
/jdk8u-jdk8u5-b13.tar.xz
+/jdk8u-jdk8u11-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 70573b4..ef04f1e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -89,8 +89,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 5
-%global buildver b13
+%global updatever 11
+%global buildver b12
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1156,6 +1156,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
+- updated to security u11b12
+
* Tue Jun 24 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-13.b13
- Obsolete java-1.7.0-openjdk
diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch
index 8ef9a48..7d6f314 100644
--- a/java-atk-wrapper-security.patch
+++ b/java-atk-wrapper-security.patch
@@ -1,28 +1,25 @@
--- jdk8/jdk/src/share/lib/security/java.security-linux.orig
+++ jdk8/jdk/src/share/lib/security/java.security-linux
-@@ -154,9 +154,11 @@
- org.jcp.xml.dsig.internal.,\
+@@ -211,7 +211,9 @@
jdk.internal.,\
jdk.nashorn.internal.,\
-- jdk.nashorn.tools.
-+ jdk.nashorn.tools,\
+ jdk.nashorn.tools.,\
+- com.sun.activation.registries.
++ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
-
#
# List of comma-separated packages that start with or equal this string
- # will cause a security exception to be thrown when
-@@ -192,9 +194,11 @@
- org.jcp.xml.dsig.internal.,\
+@@ -258,7 +260,9 @@
jdk.internal.,\
jdk.nashorn.internal.,\
-- jdk.nashorn.tools.
-+ jdk.nashorn.tools.,\
+ jdk.nashorn.tools.,\
+- com.sun.activation.registries.
++ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
-
#
# Determines whether this properties file can be appended to
- # or overridden on the command line via -Djava.security.properties
+
diff --git a/sources b/sources
index ebf2fe3..70accbc 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-05eaf803e52ffeba351f3701556e5132 jdk8u-jdk8u5-b13.tar.xz
+84eed2615ebcf518ad92c88c280ede9e jdk8u-jdk8u11-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
commit 9ba92118ecab2f05c567cfadac3db4362b3230b7
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Jul 16 08:42:16 2014 +0200
- updated to security u11b12
diff --git a/.gitignore b/.gitignore
index 7b825f4..ebfcb6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@
/aarch64-port-rc4.tar.xz
/aarch64-port-jdk8-b128-aarch64-992.tar.xz
/jdk8u-jdk8u5-b13.tar.xz
+/jdk8u-jdk8u11-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 70573b4..ef04f1e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -89,8 +89,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 5
-%global buildver b13
+%global updatever 11
+%global buildver b12
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 13.%{buildver}%{?dist}
+Release: 4.%{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
@@ -1156,6 +1156,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
+- updated to security u11b12
+
* Tue Jun 24 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-13.b13
- Obsolete java-1.7.0-openjdk
diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch
index 8ef9a48..7d6f314 100644
--- a/java-atk-wrapper-security.patch
+++ b/java-atk-wrapper-security.patch
@@ -1,28 +1,25 @@
--- jdk8/jdk/src/share/lib/security/java.security-linux.orig
+++ jdk8/jdk/src/share/lib/security/java.security-linux
-@@ -154,9 +154,11 @@
- org.jcp.xml.dsig.internal.,\
+@@ -211,7 +211,9 @@
jdk.internal.,\
jdk.nashorn.internal.,\
-- jdk.nashorn.tools.
-+ jdk.nashorn.tools,\
+ jdk.nashorn.tools.,\
+- com.sun.activation.registries.
++ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
-
#
# List of comma-separated packages that start with or equal this string
- # will cause a security exception to be thrown when
-@@ -192,9 +194,11 @@
- org.jcp.xml.dsig.internal.,\
+@@ -258,7 +260,9 @@
jdk.internal.,\
jdk.nashorn.internal.,\
-- jdk.nashorn.tools.
-+ jdk.nashorn.tools.,\
+ jdk.nashorn.tools.,\
+- com.sun.activation.registries.
++ com.sun.activation.registries.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
-
#
# Determines whether this properties file can be appended to
- # or overridden on the command line via -Djava.security.properties
+
diff --git a/sources b/sources
index ebf2fe3..70accbc 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-05eaf803e52ffeba351f3701556e5132 jdk8u-jdk8u5-b13.tar.xz
+84eed2615ebcf518ad92c88c280ede9e jdk8u-jdk8u11-b12.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
commit c4c291bc455ab1ee99460d9fd5cc524526da6f29
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Jun 24 13:18:14 2014 -0400
Obsolete java-1.7.0-openjdk
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d79e9af..70573b4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 12.%{buildver}%{?dist}
+Release: 13.%{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
@@ -291,6 +291,9 @@ Provides: java = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: java-fonts = %{epoch}:%{version}
+Obsoletes: java-1.7.0-openjdk <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk = %{epoch}:%{version}-%{release}
+
%description
The OpenJDK runtime environment.
@@ -330,6 +333,9 @@ Provides: jce = %{epoch}:%{version}
Provides: jdbc-stdext = 4.1
Provides: java-sasl = %{epoch}:%{version}
+Obsoletes: java-1.7.0-openjdk-headless <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-headless = %{epoch}:%{version}-%{release}
+
%description headless
The OpenJDK runtime environment without audio and video support.
@@ -354,6 +360,8 @@ Provides: java-%{javaver}-devel = %{epoch}:%{version}
Provides: java-devel-%{origin} = %{epoch}:%{version}
Provides: java-devel = %{epoch}:%{javaver}
+Obsoletes: java-1.7.0-openjdk-devel <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-devel = %{epoch}:%{version}-%{release}
%description devel
The OpenJDK development tools.
@@ -364,6 +372,9 @@ Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-demo <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-demo = %{epoch}:%{version}-%{release}
+
%description demo
The OpenJDK demos.
@@ -373,6 +384,9 @@ Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-src <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-src = %{epoch}:%{version}-%{release}
+
%description src
The OpenJDK source bundle.
@@ -391,6 +405,9 @@ Requires(postun): %{_sbindir}/alternatives
Provides: java-javadoc = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-javadoc <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-javadoc = %{epoch}:%{version}-%{release}
+
%description javadoc
The OpenJDK API documentation.
@@ -400,6 +417,9 @@ Summary: OpenJDK accessibility connector
Requires: java-atk-wrapper
Requires: %{name} = %{epoch}:%{version}-%{release}
+Obsoletes: java-1.7.0-openjdk-accessibility <= 1:1.7.0.60-2.5.0.2
+Provides: java-1.7.0-openjdk-accessibility = %{epoch}:%{version}-%{release}
+
%description accessibility
Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows
compatible at-spi2 based accessibility programs to work for AWT and Swing-based
@@ -1136,6 +1156,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Jun 24 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-13.b13
+- Obsolete java-1.7.0-openjdk
+
* Wed Jun 18 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-12.b13
- Use system tzdata from tzdata-java
commit 6911b5f4d37bd872fc0b23a260bc88889c750e71
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Jun 18 18:14:55 2014 -0400
Use system tzdata from tzdata-java
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 58d4418..d79e9af 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 11.%{buildver}%{?dist}
+Release: 12.%{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
@@ -575,9 +575,9 @@ mv $JAVA_HOME/jre/bin/java $JAVA_HOME/jre/bin/java-abrt
cat %{SOURCE3} | sed -e s:@JAVA_PATH@:%{_jvmdir}/%{jredir}/bin/java-abrt:g -e
s:@LIB_DIR@:%{LIBDIR}/libabrt-java-connector.so:g > $JAVA_HOME/jre/bin/java
chmod 755 $JAVA_HOME/jre/bin/java
-
-# Copy tz.properties
-echo "sun.zoneinfo.dir=/usr/share/javazi" >>
$JAVA_HOME/jre/lib/tz.properties
+# Use system-wide tzdata
+rm $JAVA_HOME/jre/lib/tzdb.dat
+ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE13}
@@ -1136,6 +1136,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Jun 18 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-12.b13
+- Use system tzdata from tzdata-java
+
* Thu Jun 12 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
- Add patch from IcedTea to handle -j and -I correctly
commit 87ae8e7a61762f57fcccb196fa8cb85758e0c97e
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Jun 12 11:53:16 2014 -0400
Add patch to handle -j and -I correctly
This is a fix for build-breakage seen with make 4.0
diff --git a/hotspot-build-j-directive.patch b/hotspot-build-j-directive.patch
new file mode 100644
index 0000000..0ab9d60
--- /dev/null
+++ b/hotspot-build-j-directive.patch
@@ -0,0 +1,19 @@
+# HG changeset patch
+# User andrew
+# Date 1398183426 -3600
+# Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38
+# Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01
+Don't substitute 'j' for '-j' inside -I directives
+
+--- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100
++++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100
+@@ -64,7 +64,7 @@
+ echo "$MFLAGS" \
+ | sed '
+ s/^-/ -/
+- s/ -\([^ ][^ ]*\)j/ -\1 -j/
++ s/ -\([^ I][^ ]*\)j/ -\1 -j/
+ s/ -j[0-9][0-9]*/ -j/
+ s/ -j\([^ ]\)/ -j -\1/
+ s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 4c20843..58d4418 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -209,6 +209,8 @@ Patch8: set-active-window.patch
Patch9: javadoc-error-jdk-8029145.patch
# More javadoc. Backport from upstream.
Patch10: javadoc-error-jdk-8037484.patch
+# Problem discovered with make 4.0
+Patch11: hotspot-build-j-directive.patch
#
# OpenJDK specific patches
@@ -446,6 +448,7 @@ sh %{SOURCE12}
%patch8
%patch9
%patch10
+%patch11
%patch99
@@ -1133,6 +1136,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Jun 12 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
+- Add patch from IcedTea to handle -j and -I correctly
+
* Wed Jun 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
- Backport javadoc fixes from upstream
- Related: rhbz#1107273
commit e9e0f6d58e80af2f04ab00c7f37c9a86ecfef187
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Jun 11 15:45:41 2014 -0400
Backport javadoc fixes from upstream
Fixes issue seen in RHBZ 1107273
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5fc01c2..4c20843 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 10.%{buildver}%{?dist}
+Release: 11.%{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
@@ -205,6 +205,10 @@ Patch6: disable-doclint-by-default.patch
Patch7: include-all-srcs.patch
# Fix window activation in gnome-shell
Patch8: set-active-window.patch
+# Fix javadoc. Backport from upstream.
+Patch9: javadoc-error-jdk-8029145.patch
+# More javadoc. Backport from upstream.
+Patch10: javadoc-error-jdk-8037484.patch
#
# OpenJDK specific patches
@@ -440,6 +444,8 @@ sh %{SOURCE12}
%patch6
%patch7
%patch8
+%patch9
+%patch10
%patch99
@@ -1127,6 +1133,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Jun 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
+- Backport javadoc fixes from upstream
+- Related: rhbz#1107273
+
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.5-10.b13
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
diff --git a/javadoc-error-jdk-8029145.patch b/javadoc-error-jdk-8029145.patch
new file mode 100644
index 0000000..4749ca1
--- /dev/null
+++ b/javadoc-error-jdk-8029145.patch
@@ -0,0 +1,93 @@
+# HG changeset patch
+# User ksrini
+# Date 1392427687 28800
+# Node ID 4c09a8dd09b37f17f186e575978e0dc5de6c84d3
+# Parent 37cf13ea5cf99b04638660d6c91038f2ce210885
+8029145: javadoc fails with java.lang.IllegalStateException: endPosTable already set
+Reviewed-by: jjg
+
+diff -r 37cf13ea5cf9 -r 4c09a8dd09b3
src/share/classes/com/sun/tools/javadoc/JavadocTool.java
+--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Thu Feb 13
14:58:10 2014 +0100
++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Fri Feb 14
17:28:07 2014 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2001, 2014, 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
+@@ -30,6 +30,7 @@
+ import java.util.Collection;
+ import java.util.EnumSet;
+ import java.util.HashMap;
++import java.util.HashSet;
+ import java.util.Map;
+ import java.util.Set;
+ import javax.tools.JavaFileManager.Location;
+@@ -238,10 +239,13 @@
+ files = lb.toList();
+ }
+
++ Set<JavaFileObject> ufiles = new HashSet<>();
+ for (JavaFileObject fo : files) {
+- // messager.notice("main.Loading_source_file", fn);
+- trees.append(parse(fo));
+- hasFiles = true;
++ if (ufiles.add(fo)) { // ignore duplicates
++ // messager.notice("main.Loading_source_file", fn);
++ trees.append(parse(fo));
++ hasFiles = true;
++ }
+ }
+
+ if (!hasFiles) {
+diff -r 37cf13ea5cf9 -r 4c09a8dd09b3 test/tools/javadoc/parser/7091528/T7091528.java
+--- jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Thu Feb 13 14:58:10
2014 +0100
++++ jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Fri Feb 14 17:28:07
2014 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2009, 2014, 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
+@@ -23,8 +23,8 @@
+
+ /**
+ * @test
+- * @bug 7091528
+- * @summary javadoc attempts to parse .class files
++ * @bug 7091528 8029145
++ * @summary ensures javadoc parses unique source files and ignores all class files
+ * @compile p/C1.java p/q/C2.java
+ * @run main T7091528
+ */
+@@ -37,17 +37,22 @@
+ public static void main(String... args) {
+ new T7091528().run();
+ }
+-
+ void run() {
+ File testSrc = new File(System.getProperty("test.src"));
+ File testClasses = new File(System.getProperty("test.classes"));
+- String[] args = {
+- "-d", ".",
++ // 7091528, tests if class files are being ignored
++ runTest("-d", ".",
+ "-sourcepath", testClasses + File.pathSeparator + testSrc,
+ "-subpackages",
+- "p"
+- };
++ "p");
++ // 8029145, tests if unique source files are parsed
++ runTest("-d", ".",
++ "-sourcepath", testSrc.getAbsolutePath(),
++ "-subpackages",
++ "p:p.q");
+
++ }
++ void runTest(String... args) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ String doclet = com.sun.tools.doclets.standard.Standard.class.getName();
+
diff --git a/javadoc-error-jdk-8037484.patch b/javadoc-error-jdk-8037484.patch
new file mode 100644
index 0000000..7f8cc09
--- /dev/null
+++ b/javadoc-error-jdk-8037484.patch
@@ -0,0 +1,171 @@
+# HG changeset patch
+# User ksrini
+# Date 1397697348 25200
+# Node ID 6acecb34d1bc345579b4ddb8c38ddbe7df27ca2c
+# Parent 3d8d9f0df99909403f5edfeb33804f704d228f0f
+8037484: [javadoc] fails with java.lang.IllegalStateException: endPosTable already set
+Reviewed-by: jjg
+
+diff -r 3d8d9f0df999 -r 6acecb34d1bc
src/share/classes/com/sun/tools/javadoc/JavadocTool.java
+--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Wed Apr 16
18:36:43 2014 -0700
++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/JavadocTool.java Wed Apr 16
18:15:48 2014 -0700
+@@ -68,6 +68,7 @@
+ final Messager messager;
+ final JavadocClassReader javadocReader;
+ final JavadocEnter javadocEnter;
++ final Set<JavaFileObject> uniquefiles;
+
+ /**
+ * Construct a new JavaCompiler processor, using appropriately
+@@ -78,6 +79,7 @@
+ messager = Messager.instance0(context);
+ javadocReader = JavadocClassReader.instance0(context);
+ javadocEnter = JavadocEnter.instance0(context);
++ uniquefiles = new HashSet<>();
+ }
+
+ /**
+@@ -148,9 +150,7 @@
+ String name = it.head;
+ if (!docClasses && fm != null &&
name.endsWith(".java") && new File(name).exists()) {
+ JavaFileObject fo = fm.getJavaFileObjects(name).iterator().next();
+- docenv.notice("main.Loading_source_file", name);
+- JCCompilationUnit tree = parse(fo);
+- classTrees.append(tree);
++ parse(fo, classTrees, true);
+ } else if (isValidPackageName(name)) {
+ names = names.append(name);
+ } else if (name.endsWith(".java")) {
+@@ -163,9 +163,7 @@
+ }
+ }
+ for (JavaFileObject fo: fileObjects) {
+- docenv.notice("main.Loading_source_file", fo.getName());
+- JCCompilationUnit tree = parse(fo);
+- classTrees.append(tree);
++ parse(fo, classTrees, true);
+ }
+
+ if (!docClasses) {
+@@ -213,7 +211,7 @@
+ * .java files found in such a directory to args.
+ */
+ private void parsePackageClasses(String name,
+- Iterable<JavaFileObject> files,
++ List<JavaFileObject> files,
+ ListBuffer<JCCompilationUnit> trees,
+ List<String> excludedPackages)
+ throws IOException {
+@@ -221,7 +219,6 @@
+ return;
+ }
+
+- boolean hasFiles = false;
+ docenv.notice("main.Loading_source_files_for_package", name);
+
+ if (files == null) {
+@@ -238,19 +235,22 @@
+ }
+ files = lb.toList();
+ }
++ if (files.nonEmpty()) {
++ for (JavaFileObject fo : files) {
++ parse(fo, trees, false);
++ }
++ } else {
++ messager.warning(Messager.NOPOS,
"main.no_source_files_for_package",
++ name.replace(File.separatorChar, '.'));
++ }
++ }
+
+- Set<JavaFileObject> ufiles = new HashSet<>();
+- for (JavaFileObject fo : files) {
+- if (ufiles.add(fo)) { // ignore duplicates
+- // messager.notice("main.Loading_source_file", fn);
+- trees.append(parse(fo));
+- hasFiles = true;
+- }
+- }
+-
+- if (!hasFiles) {
+- messager.warning(Messager.NOPOS,
"main.no_source_files_for_package",
+- name.replace(File.separatorChar, '.'));
++ private void parse(JavaFileObject fo, ListBuffer<JCCompilationUnit> trees,
++ boolean trace) {
++ if (uniquefiles.add(fo)) { // ignore duplicates
++ if (trace)
++ docenv.notice("main.Loading_source_file", fo.getName());
++ trees.append(parse(fo));
+ }
+ }
+
+diff -r 3d8d9f0df999 -r 6acecb34d1bc test/tools/javadoc/parser/7091528/T7091528.java
+--- jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Wed Apr 16 18:36:43
2014 -0700
++++ jdk8/langtools/test/tools/javadoc/parser/7091528/T7091528.java Wed Apr 16 18:15:48
2014 -0700
+@@ -23,7 +23,7 @@
+
+ /**
+ * @test
+- * @bug 7091528 8029145
++ * @bug 7091528 8029145 8037484
+ * @summary ensures javadoc parses unique source files and ignores all class files
+ * @compile p/C1.java p/q/C2.java
+ * @run main T7091528
+@@ -50,6 +50,16 @@
+ "-sourcepath", testSrc.getAbsolutePath(),
+ "-subpackages",
+ "p:p.q");
++ File testPkgDir = new File(testSrc, "p");
++ File testFile = new File(testPkgDir, "C3.java");
++ runTest("-d", ".",
++ "-sourcepath", testSrc.getAbsolutePath(),
++ testFile.getAbsolutePath(),
++ "p");
++ runTest("-d", ".",
++ "-classpath", testSrc.getAbsolutePath(),
++ testFile.getAbsolutePath(),
++ "p");
+
+ }
+ void runTest(String... args) {
+@@ -65,7 +75,7 @@
+ }
+
+ if (rc != 0)
+- System.err.println("javadoc failed: exit code = " + rc);
++ throw new Error("javadoc failed: exit code = " + rc);
+
+ if (out.matches("(?s).*p/[^ ]+\\.class.*"))
+ throw new Error("reading .class files");
+diff -r 3d8d9f0df999 -r 6acecb34d1bc test/tools/javadoc/parser/7091528/p/C3.java
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ jdk8/langtools/test/tools/javadoc/parser/7091528/p/C3.java Wed Apr 16 18:15:48 2014
-0700
+@@ -0,0 +1,27 @@
++/*
++ * Copyright (c) 2014, 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.
++ */
++
++
++/** This is class C3, and no package for me please */
++public class C3 {}
++
+
commit 9a96c8a8d09eb9ab02af1526fac88d384813fee0
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Sat Jun 7 18:24:15 2014 -0500
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f321e53..5fc01c2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 9.%{buildver}%{?dist}
+Release: 10.%{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
@@ -1127,6 +1127,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.5-10.b13
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
* Mon Jun 02 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-9.b13
- Build with OpenJDK 8
commit 629f89ddf32da90c942405f360a14e4c2fc951d8
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jun 2 10:36:15 2014 -0400
Build with OpenJDK 8
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0aa1945..f321e53 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 8.%{buildver}%{?dist}
+Release: 9.%{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
@@ -251,8 +251,7 @@ BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
#BuildRequires: redhat-lsb
BuildRequires: zip
-# OpenJDK X officially requires OpenJDK (X-1) to build
-BuildRequires: java-1.7.0-openjdk-devel
+BuildRequires: java-1.8.0-openjdk-devel
# Zero-assembler build requirement.
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
@@ -1128,6 +1127,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Jun 02 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-9.b13
+- Build with OpenJDK 8
+
* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-8.b13
- Backport fix for JDK-8012224
commit fc1e586a196e83dcb67bf513649fcf2499e36330
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed May 28 19:48:35 2014 -0400
Fix window activation in gnome-shell
Backport fix for JDK-8012224
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d2656ff..0aa1945 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 7.%{buildver}%{?dist}
+Release: 8.%{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
@@ -203,6 +203,8 @@ Patch5: multiple-pkcs11-library-init.patch
Patch6: disable-doclint-by-default.patch
# Include all sources in src.zip
Patch7: include-all-srcs.patch
+# Fix window activation in gnome-shell
+Patch8: set-active-window.patch
#
# OpenJDK specific patches
@@ -438,6 +440,7 @@ sh %{SOURCE12}
%patch5
%patch6
%patch7
+%patch8
%patch99
@@ -1125,6 +1128,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-8.b13
+- Backport fix for JDK-8012224
+
* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-7.b13
- Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly
- Resolves rhbz#1101394
diff --git a/set-active-window.patch b/set-active-window.patch
new file mode 100644
index 0000000..923b9f2
--- /dev/null
+++ b/set-active-window.patch
@@ -0,0 +1,77 @@
+# HG changeset patch
+# User azvegint
+# Date 1395070254 -14400
+# Mon Mar 17 19:30:54 2014 +0400
+# Node ID 6406059d2620c8241f6e04398ee0c4591e8820ac
+# Parent 37099d54a1483fffb9e51552cfda8ac956bd97ee
+8012224: AWT_TopLevels/TopLevelEvents/Automated/WindowIconifyDeiconifyEventsTest02 fails
on Ubuntu 12.04 Unity shell
+Reviewed-by: anthony, serb
+
+diff --git jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
+--- jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
++++ jdk8/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
+@@ -284,6 +284,11 @@
+ if (stateLog.isLoggable(PlatformLogger.Level.FINER)) {
+ stateLog.finer("DeIconifying " + this);
+ }
++
++ XNETProtocol net_protocol = XWM.getWM().getNETProtocol();
++ if (net_protocol != null) {
++ net_protocol.setActiveWindow(this);
++ }
+ xSetVisible(true);
+ }
+ }
+diff --git jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
+--- jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
++++ jdk8/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
+@@ -213,7 +213,7 @@
+ * If window is showing then it uses ClientMessage, otherwise adjusts NET_WM_STATE
list
+ * @param window Window which NET_WM_STATE property is being modified
+ * @param state State atom to be set/reset
+- * @param reset Indicates operation, 'set' if false, 'reset' if
true
++ * @param set Indicates operation, 'set' if false, 'reset' if true
+ */
+ private void setStateHelper(XWindowPeer window, XAtom state, boolean set) {
+ if (log.isLoggable(PlatformLogger.Level.FINER)) {
+@@ -249,6 +249,7 @@
+ XAtom XA_UTF8_STRING = XAtom.get("UTF8_STRING"); /* like STRING but
encoding is UTF-8 */
+ XAtom XA_NET_SUPPORTING_WM_CHECK = XAtom.get("_NET_SUPPORTING_WM_CHECK");
+ XAtom XA_NET_SUPPORTED = XAtom.get("_NET_SUPPORTED"); /* list of
protocols (property of root) */
++ XAtom XA_NET_ACTIVE_WINDOW = XAtom.get("_NET_ACTIVE_WINDOW");
+ XAtom XA_NET_WM_NAME = XAtom.get("_NET_WM_NAME"); /* window property */
+ XAtom XA_NET_WM_STATE = XAtom.get("_NET_WM_STATE");/* both window property
and request */
+
+@@ -325,6 +326,32 @@
+ return res;
+ }
+
++ public void setActiveWindow(XWindow window) {
++ if (!active() || !checkProtocol(XA_NET_SUPPORTED, XA_NET_ACTIVE_WINDOW)) {
++ return;
++ }
++
++ XClientMessageEvent msg = new XClientMessageEvent();
++ msg.zero();
++ msg.set_type(XConstants.ClientMessage);
++ msg.set_message_type(XA_NET_ACTIVE_WINDOW.getAtom());
++ msg.set_display(XToolkit.getDisplay());
++ msg.set_window(window.getWindow());
++ msg.set_format(32);
++ msg.set_data(0, 1);
++ msg.set_data(1, XToolkit.getCurrentServerTime());
++ msg.set_data(2, 0);
++
++ XToolkit.awtLock();
++ try {
++ XlibWrapper.XSendEvent(XToolkit.getDisplay(),
XToolkit.getDefaultRootWindow(), false,
++ XConstants.SubstructureRedirectMask |
XConstants.SubstructureNotifyMask, msg.getPData());
++ } finally {
++ XToolkit.awtUnlock();
++ msg.dispose();
++ }
++ }
++
+ boolean isWMName(String name) {
+ if (!active()) {
+ return false;
commit afcdce9e6cd8483b1bad65c4e76cf537165a7ed1
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed May 28 15:37:03 2014 -0400
Require fontconfig explicitly
Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly.
fontconfig is used to render fonts. The minimal fonts ensure some fonts
can always be rendered even in minimal installs.
Resolves rhbz#1101394
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b890302..d2656ff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 6.%{buildver}%{?dist}
+Release: 7.%{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
@@ -267,6 +267,9 @@ BuildRequires: prelink
BuildRequires: systemtap-sdt-devel
%endif
+Requires: fontconfig
+Requires: xorg-x11-fonts-Type1
+
# Requires rest of java
Requires: %{name}-headless = %{epoch}:%{version}-%{release}
@@ -1122,6 +1125,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-7.b13
+- Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly
+- Resolves rhbz#1101394
+
* Fri May 23 2014 Dan Horák <dan[at]danny.cz> - 1:1.8.0.5-6.b13
- Enable build on s390/s390x
commit 5fc2f2aab4de0fccf82d27f3c19e7e5d1dbe4dcb
Author: Dan Horák <dan(a)danny.cz>
Date: Fri May 23 08:56:40 2014 +0200
- Enable build on s390/s390x
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
new file mode 100644
index 0000000..79108b8
--- /dev/null
+++ b/java-1.8.0-openjdk-s390-java-opts.patch
@@ -0,0 +1,18 @@
+diff -up jdk8/common/autoconf/boot-jdk.m4.s390 jdk8/common/autoconf/boot-jdk.m4
+--- jdk8/common/autoconf/boot-jdk.m4.s390 2014-03-11 16:01:27.000000000 -0400
++++ jdk8/common/autoconf/boot-jdk.m4 2014-05-21 11:50:36.507890197 -0400
+@@ -315,12 +315,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_AR
+ fi
+
+ # Minimum amount of heap memory.
+- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA])
++ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA])
+ if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+ # Why does macosx need more heap? Its the huge JDK batch.
+ ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA])
+ else
+- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA])
++ ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA])
+ fi
+ # When is adding -client something that speeds up the JVM?
+ # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA])
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9ee1c4b..b890302 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 5.%{buildver}%{?dist}
+Release: 6.%{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
@@ -211,6 +211,8 @@ Patch7: include-all-srcs.patch
# Allow icedtea-web to build
Patch99: applet-hole.patch
+# JVM heap size changes for s390 (thanks to aph)
+Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
Patch102: %{name}-size_t.patch
@@ -436,8 +438,9 @@ sh %{SOURCE12}
%patch99
-# Type fixes for s390
-%ifarch s390 s390x
+# s390 build fixes
+%ifarch s390
+%patch100
%patch102
%endif
@@ -1119,6 +1122,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Fri May 23 2014 Dan Horák <dan[at]danny.cz> - 1:1.8.0.5-6.b13
+- Enable build on s390/s390x
+
* Tue May 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
- Only check for debug symbols in libjvm if it exists.
commit ea67b678817d2248f4d8a00e11fc90b8a870b6cb
Author: Dan Horák <dan(a)danny.cz>
Date: Wed May 21 15:40:27 2014 +0200
refresh the size_t patch
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index b9bf179..2976f5d 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/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 2013-04-23
12:27:07.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2013-04-30
11:16:52.049921392 -0400
-@@ -2667,7 +2667,7 @@ void CFLS_LAB::get_from_global_pool(size
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-05-16
13:09:21.350132543 -0400
+@@ -2660,7 +2660,7 @@ void CFLS_LAB::get_from_global_pool(size
if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
n_blks += CMSOldPLABReactivityFactor*multiple*n_blks;
@@ -11,9 +11,9 @@ 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 2013-05-03
10:55:50.185800229 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-05-03
10:58:09.035801583 -0400
-@@ -950,7 +950,7 @@ void ConcurrentMarkSweepGeneration::comp
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-05-16
13:09:21.350132543 -0400
+@@ -949,7 +949,7 @@ void ConcurrentMarkSweepGeneration::comp
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: ");
-@@ -6334,7 +6334,7 @@ void CMSCollector::reset(bool asynch) {
+@@ -6555,7 +6555,7 @@ void CMSCollector::reset(bool asynch) {
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() &&
-@@ -6631,7 +6631,7 @@ void CMSMarkStack::expand() {
+@@ -6854,7 +6854,7 @@ void CMSMarkStack::expand() {
return;
}
// Double capacity if possible
@@ -41,9 +41,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurr
// 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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-04-30
11:16:52.049921392 -0400
-@@ -3735,7 +3735,7 @@ void CMTask::drain_local_queue(bool part
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-05-16
13:09:21.350132543 -0400
+@@ -3745,7 +3745,7 @@ void CMTask::drain_local_queue(bool part
// 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;
}
-@@ -4566,7 +4566,7 @@ size_t G1PrintRegionLivenessInfoClosure:
+@@ -4583,7 +4583,7 @@ size_t G1PrintRegionLivenessInfoClosure:
// The > 0 check is to deal with the prev and next live bytes which
// could be 0.
if (*hum_bytes > 0) {
@@ -62,9 +62,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_
}
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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2013-04-30
11:16:52.059921393 -0400
-@@ -1735,7 +1735,7 @@ HeapWord* G1CollectedHeap::expand_and_al
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-05-16
13:09:21.360132543 -0400
+@@ -1742,7 +1742,7 @@ HeapWord* G1CollectedHeap::expand_and_al
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/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 2014-05-16
13:35:15.150132543 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-05-16
13:35:48.090132543 -0400
+@@ -158,7 +158,7 @@ void HeapRegion::setup_heap_region_size(
+ if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
+ size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
+ region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER,
+- (uintx) MIN_REGION_SIZE);
++ (size_t) MIN_REGION_SIZE);
+ }
+
+ int region_size_log = log2_long((jlong) region_size);
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2013-04-30
11:16:52.059921393 -0400
-@@ -840,7 +840,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2014-05-16
13:09:21.360132543 -0400
+@@ -845,7 +845,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
int HeapRegionRemSet::num_par_rem_sets() {
@@ -86,10 +98,10 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.siz
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2013-04-30
11:16:52.069921394 -0400
-@@ -69,7 +69,7 @@ ParMarkBitMap::initialize(MemRegion cove
- if (_virtual_space != NULL && _virtual_space->expand_by(bytes)) {
+---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-05-16
13:09:21.360132543 -0400
+@@ -68,7 +68,7 @@ ParMarkBitMap::initialize(MemRegion cove
+ if (_virtual_space != NULL &&
_virtual_space->expand_by(_reserved_byte_size)) {
_region_start = covered_region.start();
_region_size = covered_region.word_size();
- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr();
@@ -98,9 +110,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBit
_beg_bits.set_size(bits / 2);
_end_bits.set_map(map + words / 2);
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 2013-05-03
11:19:28.625892027 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-05-03
11:20:15.915892352 -0400
-@@ -874,8 +874,8 @@ void PSParallelCompact::initialize_space
+---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-05-16
13:09:21.360132543 -0400
+@@ -909,8 +909,8 @@ void PSParallelCompact::initialize_space
void PSParallelCompact::initialize_dead_wood_limiter()
{
const size_t max = 100;
@@ -112,9 +124,9 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallel
DEBUG_ONLY(_dwl_initialized = true;)
_dwl_adjustment = normal_distribution(1.0);
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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-30
11:16:52.069921394 -0400
-@@ -188,7 +188,7 @@ bool ParScanThreadState::take_from_overf
+---
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-05-16
13:09:21.360132543 -0400
+@@ -192,7 +192,7 @@ bool ParScanThreadState::take_from_overf
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,
@@ -124,9 +136,18 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
// Transfer the most recent num_take_elems from the overflow
// stack to our work queue.
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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2013-05-03 10:53:48.105793292
-0400
-@@ -313,7 +313,7 @@ void GenCollectorPolicy::initialize_size
+--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-05-16 13:31:55.620132543
-0400
+@@ -386,7 +386,7 @@ void TwoGenerationCollectorPolicy::initi
+ 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);
+- FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
smaller_new_size));
++ FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
(size_t)smaller_new_size));
+ _initial_gen0_size = NewSize;
+
+ // OldSize is already aligned because above we aligned MaxHeapSize to
+@@ -434,7 +434,7 @@ void GenCollectorPolicy::initialize_size
// yield a size that is too small) and bound it by MaxNewSize above.
// Ergonomics plays here by previously calculating the desired
// NewSize and MaxNewSize.
@@ -135,7 +156,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");
-@@ -340,7 +340,7 @@ void GenCollectorPolicy::initialize_size
+@@ -461,16 +461,16 @@ void GenCollectorPolicy::initialize_size
// generally small compared to the NewRatio calculation.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
@@ -144,63 +165,30 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t
jdk8/hotspo
} else {
// For the case where NewSize is the default, use NewRatio
// to size the minimum and initial generation sizes.
-@@ -348,10 +348,10 @@ void GenCollectorPolicy::initialize_size
+ // Use the default NewSize as the floor for these values. If
// NewRatio is overly large, the resulting sizes can be too
// small.
- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
-- NewSize);
-+ (size_t)NewSize);
+- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize);
++ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
(size_t)NewSize);
desired_new_size =
- MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()),
-- NewSize);
-+ (size_t)NewSize);
+- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);
}
assert(_min_gen0_size > 0, "Sanity check");
-@@ -407,14 +407,14 @@ bool TwoGenerationCollectorPolicy::adjus
- // Adjust gen0 down to accommodate min_gen1_size
- *gen0_size_ptr = heap_size - min_gen1_size;
- *gen0_size_ptr =
-- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
-+ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
- min_alignment());
- assert(*gen0_size_ptr > 0, "Min gen0 is too large");
- result = true;
- } else {
- *gen1_size_ptr = heap_size - *gen0_size_ptr;
- *gen1_size_ptr =
-- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()),
-+ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()),
- min_alignment());
- }
- }
-@@ -438,7 +438,7 @@ void TwoGenerationCollectorPolicy::initi
- // for setting the gen1 maximum.
- _max_gen1_size = max_heap_byte_size() - _max_gen0_size;
- _max_gen1_size =
-- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()),
-+ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()),
- min_alignment());
- // If no explicit command line flag has been set for the
- // gen1 size, use what is left for gen1.
-@@ -452,11 +452,11 @@ void TwoGenerationCollectorPolicy::initi
- "gen0 has an unexpected minimum size");
- set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
- set_min_gen1_size(
-- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()),
-+ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()),
- min_alignment()));
- set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size());
- set_initial_gen1_size(
-- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()),
-+ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()),
- min_alignment()));
-
+@@ -572,7 +572,7 @@ void TwoGenerationCollectorPolicy::initi
} else {
+ // It's been explicitly set on the command line. Use the
+ // OldSize and then determine the consequences.
+- _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size);
++ _min_gen1_size = MIN2((size_t)OldSize, _min_heap_byte_size - _min_gen0_size);
+ _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 2013-05-03 11:11:20.095867337
-0400
-+++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2013-05-03 11:13:54.945868245 -0400
-@@ -1164,7 +1164,7 @@ void MetaspaceGC::compute_new_size() {
+--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t 2014-05-16 13:40:21.870132543
-0400
++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-05-16 13:44:26.930132543 -0400
+@@ -1424,7 +1424,7 @@ void MetaspaceGC::compute_new_size() {
(size_t)MIN2(min_tmp, double(max_uintx));
// Don't shrink less than the initial generation size
minimum_desired_capacity = MAX2(minimum_desired_capacity,
@@ -208,28 +196,28 @@ diff -up jdk8/hotspot/src/share/vm/memory/metaspace.cpp.size_t
jdk8/hotspot/src/
+ (size_t)MetaspaceSize);
if (PrintGCDetails && Verbose) {
- const double free_percentage = ((double)free_after_gc) / capacity_until_GC;
-@@ -1228,7 +1228,7 @@ void MetaspaceGC::compute_new_size() {
+ gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: ");
+@@ -1477,7 +1477,7 @@ void MetaspaceGC::compute_new_size() {
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,
- MetaspaceSize);
+ (size_t)MetaspaceSize);
- if (PrintGC && Verbose) {
+ if (PrintGCDetails && Verbose) {
gclog_or_tty->print_cr(" "
" maximum_free_percentage: %6.2f"
-@@ -2557,7 +2557,7 @@ void Metaspace::global_initialize() {
+@@ -3110,7 +3110,7 @@ void Metaspace::global_initialize() {
// 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,
-- (ClassMetaspaceSize/BytesPerWord)*2);
-+ (size_t)(ClassMetaspaceSize/BytesPerWord)*2);
+- (CompressedClassSpaceSize/BytesPerWord)*2);
++
(size_t)(CompressedClassSpaceSize/BytesPerWord)*2);
_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 2013-05-03
11:25:27.655916636 -0400
-+++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2013-05-03
11:26:02.815916940 -0400
+--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-05-16
13:09:21.360132543 -0400
@@ -232,7 +232,7 @@ size_t ThreadLocalAllocBuffer::initial_d
size_t init_sz;
@@ -240,8 +228,8 @@ diff -up
jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.size_t jdk8
// Startup issue - main thread initialized before heap initialized.
init_sz = min_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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2013-04-30 11:16:52.069921394
-0400
+--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t 2014-03-11
16:02:13.000000000 -0400
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-05-16 13:09:21.360132543
-0400
@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -261,9 +249,9 @@ diff -up
jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t jdk8/hot
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 2013-04-23 12:27:07.000000000
-0400
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2013-05-03 10:46:37.745763150 -0400
-@@ -1197,7 +1197,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp.size_t 2014-03-11 16:02:13.000000000
-0400
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-05-16 13:26:32.310132543 -0400
+@@ -1240,7 +1240,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// 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
@@ -272,7 +260,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);
}
-@@ -1222,8 +1222,8 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1265,8 +1265,8 @@ void Arguments::set_cms_and_parnew_gc_fl
// Unless explicitly requested otherwise, make young gen
// at least min_new, and at most preferred_max_new_size.
if (FLAG_IS_DEFAULT(NewSize)) {
@@ -283,7 +271,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);
-@@ -1233,7 +1233,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+@@ -1276,7 +1276,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
@@ -292,3 +280,12 @@ 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);
+@@ -1397,7 +1397,7 @@ bool verify_object_alignment() {
+ return true;
+ }
+
+-uintx Arguments::max_heap_for_compressed_oops() {
++size_t Arguments::max_heap_for_compressed_oops() {
+ // Avoid sign flip.
+ assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page
size");
+ // We need to fit both the NULL page and the heap into the memory budget, while
commit 6363900efebd374a208deeadbaa09f79a48fc907
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue May 20 13:05:35 2014 -0400
Fix date in changelog
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7dbaf65..9ee1c4b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1119,7 +1119,7 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
-* Tue May 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
+* Tue May 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
- Only check for debug symbols in libjvm if it exists.
* Fri May 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
commit f29294388ccc0dbacf0ae84d1b4045d119ccbd7b
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue May 20 13:01:56 2014 -0400
Only check for debug symbols in libjvm if it exist
Look for known variants of libjvm and look for debuginfo in those
shared objects only if they exist.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ea0b26e..7dbaf65 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 4.%{buildver}%{?dist}
+Release: 5.%{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
@@ -567,7 +567,18 @@ $JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
# Check debug symbols are present and can identify code
-nm -aCl $JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so | grep javaCalls.cpp
+SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
+if [ -f "$SERVER_JVM" ] ; then
+ nm -aCl "$SERVER_JVM" | grep javaCalls.cpp
+fi
+CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
+if [ -f "$CLIENT_JVM" ] ; then
+ nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp
+fi
+ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
+if [ -f "$ZERO_JVM" ] ; then
+ nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
+fi
%install
rm -rf $RPM_BUILD_ROOT
@@ -1108,6 +1119,12 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue May 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
+- Only check for debug symbols in libjvm if it exists.
+
+* Fri May 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
+- Include all sources in src.zip
+
* Mon Apr 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
- Check for debug symbols in libjvm.so
commit 866fc806cae6cde4d4aa398db58852c4d358aad5
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri May 16 15:21:05 2014 -0400
Include all sources in src.zip
Don't filter resources to include in src.zip. Include all known (sub)
packages in the src.zip.
diff --git a/include-all-srcs.patch b/include-all-srcs.patch
new file mode 100644
index 0000000..41b1ea2
--- /dev/null
+++ b/include-all-srcs.patch
@@ -0,0 +1,54 @@
+--- jdk8/jdk/make/CreateJars.gmk
++++ jdk8/jdk/make/CreateJars.gmk
+@@ -569,38 +569,12 @@
+
##########################################################################################
+
+ SRC_ZIP_INCLUDES = \
+- com/sun/corba \
+- com/sun/image/codec/jpeg \
+- com/sun/imageio \
+- com/sun/java_cup \
+- com/sun/javadoc \
+- com/sun/java/swing \
+- com/sun/jmx \
+- com/sun/naming \
+- com/sun/org/apache \
+- com/sun/security/auth \
+- com/sun/security/jgss \
+- com/sun/source \
++ com \
+ java \
+- javax/accessibility \
+- javax/annotation \
+- javax/imageio \
+- javax/lang \
+- javax/management \
+- javax/naming \
+- javax/print \
+- javax/rmi \
+- javax/script \
+- javax/security \
+- javax/sound \
+- javax/sql \
+- javax/swing \
+- javax/tools \
+- javax/xml \
+- org/ietf \
+- org/omg \
+- org/w3c/dom \
+- org/xml/sax \
++ javax \
++ jdk \
++ org \
++ sun \
+ #
+
+ SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
+@@ -632,7 +606,6 @@
+ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
+ SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
+ INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
+- EXCLUDES := javax/swing/beaninfo, \
+ SUFFIXES := .java .c .h, \
+ ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
+ EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b43ea1b..ea0b26e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -201,6 +201,8 @@ Patch4: PStack-808293.patch
Patch5: multiple-pkcs11-library-init.patch
# Disable doclint for compatibility
Patch6: disable-doclint-by-default.patch
+# Include all sources in src.zip
+Patch7: include-all-srcs.patch
#
# OpenJDK specific patches
@@ -430,6 +432,7 @@ sh %{SOURCE12}
%patch4
%patch5
%patch6
+%patch7
%patch99
commit 97b07b05f6aa26ea389f8a50222e8fd586b873ac
Author: Dan Horák <dan(a)danny.cz>
Date: Fri May 16 11:16:26 2014 +0200
drop upstreamed s390 patches
diff --git a/java-1.8.0-openjdk-bitmap.patch b/java-1.8.0-openjdk-bitmap.patch
deleted file mode 100644
index 1b8cc6f..0000000
--- a/java-1.8.0-openjdk-bitmap.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp.s390
openjdk/hotspot/src/share/vm/utilities/bitMap.inline.hpp
---- jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp.s390 2012-02-10
08:30:46.378435291 -0500
-+++ jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp 2012-02-10 08:47:27.478427892
-0500
-@@ -52,16 +52,16 @@ inline void BitMap::clear_bit(idx_t bit)
-
- inline bool BitMap::par_set_bit(idx_t bit) {
- verify_index(bit);
-- volatile idx_t* const addr = word_addr(bit);
-- const idx_t mask = bit_mask(bit);
-- idx_t old_val = *addr;
-+ volatile bm_word_t* const addr = word_addr(bit);
-+ const bm_word_t mask = bit_mask(bit);
-+ bm_word_t old_val = *addr;
-
- do {
-- const idx_t new_val = old_val | mask;
-+ const bm_word_t new_val = old_val | mask;
- if (new_val == old_val) {
- return false; // Someone else beat us to it.
- }
-- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val,
-+ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val,
- (volatile void*) addr,
- (void*) old_val);
- if (cur_val == old_val) {
-@@ -73,16 +73,16 @@ inline bool BitMap::par_set_bit(idx_t bi
-
- inline bool BitMap::par_clear_bit(idx_t bit) {
- verify_index(bit);
-- volatile idx_t* const addr = word_addr(bit);
-- const idx_t mask = ~bit_mask(bit);
-- idx_t old_val = *addr;
-+ volatile bm_word_t* const addr = word_addr(bit);
-+ const bm_word_t mask = ~bit_mask(bit);
-+ bm_word_t old_val = *addr;
-
- do {
-- const idx_t new_val = old_val & mask;
-+ const bm_word_t new_val = old_val & mask;
- if (new_val == old_val) {
- return false; // Someone else beat us to it.
- }
-- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val,
-+ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val,
- (volatile void*) addr,
- (void*) old_val);
- if (cur_val == old_val) {
diff --git a/java-1.8.0-openjdk-s390.patch b/java-1.8.0-openjdk-s390.patch
deleted file mode 100644
index 29ad02f..0000000
--- a/java-1.8.0-openjdk-s390.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up jdk8/common/autoconf/platform.m4.s390 jdk8/common/autoconf/platform.m4
---- jdk8/common/autoconf/platform.m4.s390 2013-04-30 07:30:55.368691627 -0400
-+++ jdk8/common/autoconf/platform.m4 2013-04-30 07:31:51.168692356 -0400
-@@ -60,6 +60,18 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
- VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=big
- ;;
-+ s390)
-+ VAR_CPU=s390
-+ VAR_CPU_ARCH=s390
-+ VAR_CPU_BITS=32
-+ VAR_CPU_ENDIAN=big
-+ ;;
-+ s390x)
-+ VAR_CPU=s390x
-+ VAR_CPU_ARCH=s390x
-+ VAR_CPU_BITS=64
-+ VAR_CPU_ENDIAN=big
-+ ;;
- sparc)
- VAR_CPU=sparc
- VAR_CPU_ARCH=sparc
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3d7dc69..b43ea1b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -209,10 +209,7 @@ Patch6: disable-doclint-by-default.patch
# Allow icedtea-web to build
Patch99: applet-hole.patch
-# Recognize s390/s390x
-Patch100: %{name}-s390.patch
# Type fixing for s390
-Patch101: %{name}-bitmap.patch
Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
@@ -438,8 +435,6 @@ sh %{SOURCE12}
# Type fixes for s390
%ifarch s390 s390x
-%patch100
-%patch101
%patch102
%endif
commit 1eb264ecfc87196ef2ff5cef555b33361cfcea53
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Apr 28 16:46:56 2014 -0400
Remove leftover patch
diff --git a/revert-8035283.patch b/revert-8035283.patch
deleted file mode 100644
index 1774b29..0000000
--- a/revert-8035283.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git jdk8/hotspot/src/share/vm/opto/output.cpp
jdk8/hotspot/src/share/vm/opto/output.cpp
---- jdk8/hotspot/src/share/vm/opto/output.cpp
-+++ jdk8/hotspot/src/share/vm/opto/output.cpp
-@@ -344,11 +344,6 @@
- uint* jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks);
- uint* jmp_size = NEW_RESOURCE_ARRAY(uint,nblocks);
- int* jmp_nidx = NEW_RESOURCE_ARRAY(int ,nblocks);
--
-- // Collect worst case block paddings
-- int* block_worst_case_pad = NEW_RESOURCE_ARRAY(int, nblocks);
-- memset(block_worst_case_pad, 0, nblocks * sizeof(int));
--
- DEBUG_ONLY( uint *jmp_target = NEW_RESOURCE_ARRAY(uint,nblocks); )
- DEBUG_ONLY( uint *jmp_rule = NEW_RESOURCE_ARRAY(uint,nblocks); )
-
-@@ -465,7 +460,6 @@
- last_avoid_back_to_back_adr += max_loop_pad;
- }
- blk_size += max_loop_pad;
-- block_worst_case_pad[i + 1] = max_loop_pad;
- }
- }
-
-@@ -505,16 +499,9 @@
- if (bnum > i) { // adjust following block's offset
- offset -= adjust_block_start;
- }
--
-- // This block can be a loop header, account for the padding
-- // in the previous block.
-- int block_padding = block_worst_case_pad[i];
-- assert(i == 0 || block_padding == 0 || br_offs >= block_padding, "Should
have at least a padding on top");
- // In the following code a nop could be inserted before
- // the branch which will increase the backward distance.
-- bool needs_padding = ((uint)(br_offs - block_padding) ==
last_may_be_short_branch_adr);
-- assert(!needs_padding || jmp_offset[i] == 0, "padding only branches at the
beginning of block");
--
-+ bool needs_padding = ((uint)br_offs == last_may_be_short_branch_adr);
- if (needs_padding && offset <= 0)
- offset -= nop_size;
-
commit 8f540da22d89bb66cd99aca6141547a67235dfe4
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Apr 28 16:42:01 2014 -0400
Fix tests when doclint is disabled by default
Include original author and the author of test-fixes patch.
diff --git a/disable-doclint-by-default.patch b/disable-doclint-by-default.patch
index 8f08850..11e7896 100644
--- a/disable-doclint-by-default.patch
+++ b/disable-doclint-by-default.patch
@@ -8,9 +8,10 @@ versions of OpenJDK.
See:
http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
See:
https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150...
-diff -r 9d81ae1c417a jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
---- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Thu Feb 06
17:35:47 2014 -0800
-+++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Mon Feb 24
19:44:12 2014 +0000
+Author: Andrew John Hughes <ahughes(a)redhat.com>
+Author: Emmanuel Bourg <ebourg(a)apache.org>
+--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
@@ -811,10 +811,9 @@
doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION :
DocLint.XMSGS_CUSTOM_PREFIX + opt);
}
@@ -25,3 +26,33 @@ diff -r 9d81ae1c417a
jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocE
return;
}
+--- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java
++++ jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java
+@@ -130,12 +130,12 @@
+ };
+
+ test(Collections.<String>emptyList(),
+- Main.Result.ERROR,
+- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A));
++ Main.Result.OK,
++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+
+ test(Arrays.asList(rawDiags),
+- Main.Result.ERROR,
+- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12));
++ Main.Result.OK,
++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+
+ test(Arrays.asList("-Xdoclint:none"),
+ Main.Result.OK,
+@@ -158,8 +158,8 @@
+ EnumSet.of(Message.DL_WRN12));
+
+ test(Arrays.asList(rawDiags, "-private"),
+- Main.Result.ERROR,
+- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12));
++ Main.Result.OK,
++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+
+ test(Arrays.asList(rawDiags, "-Xdoclint:syntax",
"-private"),
+ Main.Result.ERROR,
commit de413ea85171a1f0a628bf57d61034eb37d7caae
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Apr 28 16:32:36 2014 -0400
Check debug symbols are present in libjvm.so
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6600852..3d7dc69 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -135,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 3.%{buildver}%{?dist}
+Release: 4.%{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
@@ -227,6 +227,7 @@ Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
+BuildRequires: binutils
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: fontconfig
@@ -567,6 +568,9 @@ echo "sun.zoneinfo.dir=/usr/share/javazi" >>
$JAVA_HOME/jre/lib/tz.properties
$JAVA_HOME/bin/javac -d . %{SOURCE13}
$JAVA_HOME/bin/java TestCryptoLevel
+# Check debug symbols are present and can identify code
+nm -aCl $JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so | grep javaCalls.cpp
+
%install
rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm*
@@ -1106,6 +1110,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Apr 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
+- Check for debug symbols in libjvm.so
+
* Thu Apr 24 2014 Brent Baude <baude(a)us.ibm.com> - 1:1.8.0.5-3.b13
- Add ppc64le support, bz# 1088344
commit 11f112680aa80f021811107aea9e909ab63f87fa
Author: Brent Baude <baude(a)us.ibm.com>
Date: Thu Apr 24 09:40:41 2014 -0500
ppc64le enablement, bz 1088344
Signed-off-by: Mikolaj Izdebski <mizdebsk(a)redhat.com>
diff --git a/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
b/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
new file mode 100644
index 0000000..8da775d
--- /dev/null
+++ b/0001-PPC64LE-arch-support-in-openjdk-1.8.patch
@@ -0,0 +1,43 @@
+From ebf2be47870510a6348db5fe3419578ec6fea877 Mon Sep 17 00:00:00 2001
+From: Brent Baude <baude(a)us.ibm.com>
+Date: Thu, 24 Apr 2014 09:32:36 -0500
+Subject: [PATCH] PPC64LE arch support in openjdk-1.8
+
+---
+ jdk8/common/autoconf/platform.m4 | 6 ++++++
+ jdk8/hotspot/src/os/linux/vm/os_linux.cpp | 2 ++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/jdk8/common/autoconf/platform.m4 b/jdk8/common/autoconf/platform.m4
+index 757bf22..2506fc8 100644
+--- a/jdk8/common/autoconf/platform.m4
++++ b/jdk8/common/autoconf/platform.m4
+@@ -60,6 +60,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
+ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=big
+ ;;
++ powerpc64le)
++ VAR_CPU=ppc64le
++ VAR_CPU_ARCH=ppc
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ ;;
+ s390)
+ VAR_CPU=s390
+ VAR_CPU_ARCH=s390
+diff --git a/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
b/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
+index 68314bb..5885d10 100644
+--- a/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/jdk8/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1978,6 +1978,8 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
+ static Elf32_Half running_arch_code=EM_SPARC;
+ #elif (defined __powerpc64__)
+ static Elf32_Half running_arch_code=EM_PPC64;
++ #elif (defined __powerpc64le__)
++ static Elf32_Half running_arch_code=EM_PPC64LE;
+ #elif (defined __powerpc__)
+ static Elf32_Half running_arch_code=EM_PPC;
+ #elif (defined ARM)
+--
+1.9.0
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9bbb1eb..6600852 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -7,6 +7,10 @@
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+# sometimes we need to distinguish big and little endian PPC64
+# taken from the openjdk-1.7 spec
+%global ppc64le ppc64le
+%global ppc64be ppc64 ppc64p7
%ifarch x86_64
%global archinstall amd64
@@ -17,6 +21,9 @@
%ifarch %{power64}
%global archinstall ppc64
%endif
+%ifarch %{ppc64le}
+%global archinstall ppc64le
+%endif
%ifarch %{ix86}
%global archinstall i386
%endif
@@ -128,7 +135,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 3.%{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
@@ -215,6 +222,8 @@ Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
+Patch999: 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -249,7 +258,7 @@ BuildRequires: libffi-devel
BuildRequires: openssl
# execstack build requirement.
# no prelink on ARM yet
-%ifnarch %{arm} %{aarch64}
+%ifnarch %{arm} %{aarch64} ppc64le
BuildRequires: prelink
%endif
%if %{with_systemtap}
@@ -436,6 +445,7 @@ sh %{SOURCE12}
%ifarch ppc %{power64}
# PPC fixes
%patch103
+%patch999 -p1
%endif
# Extract systemtap tapsets
@@ -1096,6 +1106,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Apr 24 2014 Brent Baude <baude(a)us.ibm.com> - 1:1.8.0.5-3.b13
+- Add ppc64le support, bz# 1088344
+
* Wed Apr 23 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-2.b13
- Build with -fno-devirtualize
- Don't strip debuginfo from files
commit 367c18c5157020a8fd985c1c694dd158052f8c21
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Apr 23 14:31:02 2014 -0400
Build with -fno-devirtualize
Adjust commands to (not) strip debuginfo
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3765996..9bbb1eb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -128,7 +128,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.%{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
@@ -226,10 +226,8 @@ BuildRequires: giflib-devel
BuildRequires: gcc-c++
BuildRequires: gtk2-devel
BuildRequires: lcms2-devel
-BuildRequires: libasan
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
-BuildRequires: libubsan
BuildRequires: libxslt
BuildRequires: libX11-devel
BuildRequires: libXi-devel
@@ -517,8 +515,8 @@ bash ../../configure \
--with-lcms=system \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC" \
- --with-extra-cflags="-fsanitize=undefined" \
- --with-extra-cxxflags="-fsanitize=undefined"
+ --with-extra-cflags="-fno-devirtualize" \
+ --with-extra-cxxflags="-fno-devirtualize"
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
@@ -526,11 +524,9 @@ bash ../../configure \
# ignore all the other logic about which debug options and just do '-g'.
make \
- SCTP_WERROR= \
DEBUG_BINARIES=true \
- FULL_DEBUG_SYMBOLS=0 \
- STRIP_POLICY=none \
- ALT_OBJCOPY=/does_not_exist \
+ STRIP_POLICY=no_strip \
+ POST_STRIP_CMD="" \
LOG=trace \
all
@@ -1100,6 +1096,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Apr 23 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-2.b13
+- Build with -fno-devirtualize
+- Don't strip debuginfo from files
+
* Wed Apr 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
- Instrument build with various sanitizers.
commit 3b634ba64ea6645e466d6092d60f8b9a03e419b8
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Apr 16 12:53:26 2014 -0400
Instrument with -fsanitize=undefined
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6156abd..3765996 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -517,8 +517,8 @@ bash ../../configure \
--with-lcms=system \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC" \
- --with-extra-cflags="-fsanitize=address -fsanitize=undefined" \
- --with-extra-cxxflags="-fsanitize=address -fsanitize=undefined" \
+ --with-extra-cflags="-fsanitize=undefined" \
+ --with-extra-cxxflags="-fsanitize=undefined"
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
commit bb689e55b2efa0bbd18c24cfedc86c68c488174c
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Apr 16 12:33:40 2014 -0400
Enable sanitiziers to diagnose runtime crashes
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f97ba86..6156abd 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -211,9 +211,6 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
-# Revert an upstream commit; possibly causes a jit crash
-Patch104: revert-8035283.patch
-
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
@@ -229,8 +226,10 @@ BuildRequires: giflib-devel
BuildRequires: gcc-c++
BuildRequires: gtk2-devel
BuildRequires: lcms2-devel
+BuildRequires: libasan
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
+BuildRequires: libubsan
BuildRequires: libxslt
BuildRequires: libX11-devel
BuildRequires: libXi-devel
@@ -428,7 +427,6 @@ sh %{SOURCE12}
%patch6
%patch99
-%patch104
# Type fixes for s390
%ifarch s390 s390x
@@ -503,6 +501,7 @@ bash ../../configure \
--disable-zip-debug-info \
--with-milestone="fcs" \
%ifnarch %{aarch64}
+ --with-update-version=%{updatever} \
--with-build-number=%{buildver} \
%else
--with-build-number=%{aarch64_buildver} \
@@ -517,7 +516,9 @@ bash ../../configure \
--with-libpng=system \
--with-lcms=system \
--with-stdc++lib=dynamic \
- --with-num-cores="$NUM_PROC"
+ --with-num-cores="$NUM_PROC" \
+ --with-extra-cflags="-fsanitize=address -fsanitize=undefined" \
+ --with-extra-cxxflags="-fsanitize=address -fsanitize=undefined" \
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
# disables FDS for all build configs and reverts to pre-FDS make logic.
@@ -1100,7 +1101,7 @@ exit 0
%changelog
* Wed Apr 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
-- Revert upstream patch for S8035283. Possibly causes a crash on i686.
+- Instrument build with various sanitizers.
* Tue Apr 15 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
- Update to the latest security release: OpenJDK8 u5 b13
commit 952f6b3ed1fca02944be260ece517a5db94d2ef3
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Apr 16 10:21:21 2014 -0400
Revert upstream fix for S8035283
This fix is was not included in the icedtea 7 patches, and possibly
causes a crash on i686.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5d60bc0..f97ba86 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -211,6 +211,9 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
+# Revert an upstream commit; possibly causes a jit crash
+Patch104: revert-8035283.patch
+
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
@@ -425,6 +428,7 @@ sh %{SOURCE12}
%patch6
%patch99
+%patch104
# Type fixes for s390
%ifarch s390 s390x
@@ -1095,6 +1099,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Wed Apr 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
+- Revert upstream patch for S8035283. Possibly causes a crash on i686.
+
* Tue Apr 15 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
- Update to the latest security release: OpenJDK8 u5 b13
diff --git a/revert-8035283.patch b/revert-8035283.patch
new file mode 100644
index 0000000..1774b29
--- /dev/null
+++ b/revert-8035283.patch
@@ -0,0 +1,41 @@
+diff --git jdk8/hotspot/src/share/vm/opto/output.cpp
jdk8/hotspot/src/share/vm/opto/output.cpp
+--- jdk8/hotspot/src/share/vm/opto/output.cpp
++++ jdk8/hotspot/src/share/vm/opto/output.cpp
+@@ -344,11 +344,6 @@
+ uint* jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks);
+ uint* jmp_size = NEW_RESOURCE_ARRAY(uint,nblocks);
+ int* jmp_nidx = NEW_RESOURCE_ARRAY(int ,nblocks);
+-
+- // Collect worst case block paddings
+- int* block_worst_case_pad = NEW_RESOURCE_ARRAY(int, nblocks);
+- memset(block_worst_case_pad, 0, nblocks * sizeof(int));
+-
+ DEBUG_ONLY( uint *jmp_target = NEW_RESOURCE_ARRAY(uint,nblocks); )
+ DEBUG_ONLY( uint *jmp_rule = NEW_RESOURCE_ARRAY(uint,nblocks); )
+
+@@ -465,7 +460,6 @@
+ last_avoid_back_to_back_adr += max_loop_pad;
+ }
+ blk_size += max_loop_pad;
+- block_worst_case_pad[i + 1] = max_loop_pad;
+ }
+ }
+
+@@ -505,16 +499,9 @@
+ if (bnum > i) { // adjust following block's offset
+ offset -= adjust_block_start;
+ }
+-
+- // This block can be a loop header, account for the padding
+- // in the previous block.
+- int block_padding = block_worst_case_pad[i];
+- assert(i == 0 || block_padding == 0 || br_offs >= block_padding, "Should
have at least a padding on top");
+ // In the following code a nop could be inserted before
+ // the branch which will increase the backward distance.
+- bool needs_padding = ((uint)(br_offs - block_padding) ==
last_may_be_short_branch_adr);
+- assert(!needs_padding || jmp_offset[i] == 0, "padding only branches at the
beginning of block");
+-
++ bool needs_padding = ((uint)br_offs == last_may_be_short_branch_adr);
+ if (needs_padding && offset <= 0)
+ offset -= nop_size;
+
commit 485496c9b66dc1bba4451cad1817d53896466d43
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Apr 15 21:35:05 2014 -0400
Update to the 2014-04-15 security release
Update to OpenJDK8 u5 b13 tag, which corresponds to the Java
2014-04-15 security update.
diff --git a/.gitignore b/.gitignore
index b93d099..7b825f4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
/jdk8-jdk8-b132.tar.xz
/aarch64-port-rc4.tar.xz
/aarch64-port-jdk8-b128-aarch64-992.tar.xz
+/jdk8u-jdk8u5-b13.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 0811a86..4673921 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -2,21 +2,29 @@
# Generates the 'source tarball' for JDK 8 projects.
#
-# Usage: generate_source_tarball.sh repo_name tag
+# Usage: generate_source_tarball.sh project_name repo_name tag
#
# Examples:
-# ./generate_source_tarball.sh jdk8 jdk8-b79
-# ./generate_source_tarball.sh aarch64-port aarch64-${DATE}
+# ./generate_source_tarball.sh jdk8 jdk8 jdk8-b79
+# ./generate_source_tarball.sh jdk8u jdk8u jdk8u5-b13
+# ./generate_source_tarball.sh aarch64-port jdk8 aarch64-${DATE}
#
# This script creates a single source tarball out of the repository
-# based on the given tag and removes code not allowed in fedora.
+# based on the given tag and removes code not allowed in fedora. For
+# consistency, the source tarball will always contain 'jdk8' as the top
+# level folder.
set -e
-REPO_NAME="$1"
-VERSION="$2"
-JDK8_URL=http://hg.openjdk.java.net
+PROJECT_NAME="$1"
+REPO_NAME="$2"
+VERSION="$3"
+OPENJDK_URL=http://hg.openjdk.java.net
+if [[ "${PROJECT_NAME}" = "" ]] ; then
+ echo "No repository specified."
+ exit -1
+fi
if [[ "${REPO_NAME}" = "" ]] ; then
echo "No repository specified."
exit -1
@@ -29,13 +37,13 @@ fi
mkdir "${REPO_NAME}"
pushd "${REPO_NAME}"
-REPO_ROOT="${JDK8_URL}/${REPO_NAME}/jdk8"
+REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
wget "${REPO_ROOT}/archive/${VERSION}.tar.gz"
tar xf "${VERSION}.tar.gz"
rm "${VERSION}.tar.gz"
-mv "jdk8-${VERSION}" jdk8
+mv "${REPO_NAME}-${VERSION}" jdk8
pushd jdk8
for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e2ded41..5d60bc0 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,8 +1,6 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b132
-%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag 992
%global aarch64 aarch64 arm64 armv8
@@ -84,8 +82,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global updatever 0
-%global buildver %{jdk8_version}
+%global updatever 5
+%global buildver b13
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
@@ -130,7 +128,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 2.%{buildver}%{?dist}
+Release: 1.%{buildver}%{?dist}
# java-1.5.0-ibm from
jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@@ -148,9 +146,9 @@ License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with
exceptions and L
URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. To regenerate, use
-# ./generate_source_tarball.sh jdk8 %{hg_tag}
-# ./generate_source_tarball.sh aarch64-port %{aarch64_hg_tag}
-Source0: jdk8-%{hg_tag}.tar.xz
+# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver}
+# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag}
+Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz
Source1: aarch64-port-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
@@ -1097,6 +1095,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Apr 15 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
+- Update to the latest security release: OpenJDK8 u5 b13
+
* Fri Mar 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-2.b132
- Include version information in desktop files
- Move desktop files from tarball to top level source
diff --git a/sources b/sources
index 6b19003..ebf2fe3 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-84ef926a9a445a79ce6c5dd4d4d5143f jdk8-jdk8-b132.tar.xz
+05eaf803e52ffeba351f3701556e5132 jdk8u-jdk8u5-b13.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
commit 669d38757124999f6f5f6a1d06c11285c6ef602f
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Mar 28 17:25:38 2014 -0400
Drop desktop-files.tar.gz from sources
diff --git a/sources b/sources
index ce3290f..6b19003 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,3 @@
-e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
84ef926a9a445a79ce6c5dd4d4d5143f jdk8-jdk8-b132.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
commit 0ccb6d06e966d1d4970d46ad28a7e3ad524e4c9f
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Mar 27 17:09:04 2014 -0400
Include version information in desktop files
Move desktop files from tarball to top level source
diff --git a/generate_tarballs.sh b/generate_tarballs.sh
index 1a7229b..577e98b 100755
--- a/generate_tarballs.sh
+++ b/generate_tarballs.sh
@@ -9,8 +9,8 @@ rm -f icedtea7.tar.gz
pushd icedtea7-${VERSION}
# desktop files
-tar cvzf desktop-files.tar.gz jconsole.desktop policytool.desktop
-mv desktop-files.tar.gz ../
+mv jconsole.desktop ../jconsole.desktop.in
+mv policytool.desktop ../policytool.desktop.in
# tapsets
mv tapset/hotspot{,-1.8.0}.stp.in || exit 1
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 569fe62..e2ded41 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -130,7 +130,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 1.0.%{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
@@ -163,11 +163,13 @@ Source3: java-abrt-launcher.in
# Systemtap tapsets. Zipped up to keep it small.
Source8: systemtap-tapset.tar.gz
-# .desktop files. Zipped up to keep it small.
-Source9: desktop-files.tar.gz
+
+# Desktop files. Adapated from IcedTea.
+Source9: jconsole.desktop.in
+Source10: policytool.desktop.in
# nss configuration file
-Source10: nss.cfg
+Source11: nss.cfg
# Removed libraries that we link instead
Source12: remove-intree-libraries.sh
@@ -460,8 +462,12 @@ done
%endif
-# Extract desktop files
-tar xzf %{SOURCE9}
+# Prepare desktop files
+for file in %{SOURCE9} %{SOURCE10} ; do
+ OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
+ sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE
+ sed -i -e s:@VERSION@:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE
+done
%build
# How many cpu's do we have?
@@ -651,7 +657,7 @@ popd
# Install nss.cfg
-install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/
+install -m 644 %{SOURCE11} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/
# Install Javadoc documentation.
@@ -1091,6 +1097,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Fri Mar 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-2.b132
+- Include version information in desktop files
+- Move desktop files from tarball to top level source
+
* Tue Mar 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-1.0.b132
- Switch from java8- style provides to java- style
- Bump priority to reflect java version
diff --git a/jconsole.desktop.in b/jconsole.desktop.in
new file mode 100644
index 0000000..2a3bbdb
--- /dev/null
+++ b/jconsole.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK 8 Monitoring & Management Console
+Comment=Monitor and manage OpenJDK applications for @VERSION@
+Exec=@JAVA_HOME@/bin/jconsole
+Icon=java
+Terminal=false
+Type=Application
+StartupWMClass=sun-tools-jconsole-JConsole
+Categories=Development;Monitor;Java;
+Version=1.0
diff --git a/policytool.desktop.in b/policytool.desktop.in
new file mode 100644
index 0000000..0c2f454
--- /dev/null
+++ b/policytool.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK 8 Policy Tool
+Comment=Manage OpenJDK policy files (@VERSION@)
+Exec=@JAVA_HOME@/bin/policytool
+Icon=java
+Terminal=false
+Type=Application
+StartupWMClass=sun-security-tools-PolicyTool
+Categories=Development;Java;
+Version=1.0
commit 9d015e7b3c294bcc2e67ce2e362339eb761c14ad
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Mar 25 14:34:04 2014 -0400
Switch from java8- style provides to java- style
Also fix alternatives priority. Promote this to a proper Java package.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0384b9b..569fe62 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -5,9 +5,9 @@
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag 992
-%global aarch64 aarch64 arm64 armv8
+%global aarch64 aarch64 arm64 armv8
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
-%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
%ifarch x86_64
@@ -89,7 +89,7 @@
%global aarch64_updatever 0
%global aarch64_buildver b128
# priority must be 6 digits in total
-%global priority 000000
+%global priority 18000%{updatever}
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
@@ -130,7 +130,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 0.35.%{buildver}%{?dist}
+Release: 1.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
@@ -260,15 +260,15 @@ BuildRequires: systemtap-sdt-devel
Requires: %{name}-headless = %{epoch}:%{version}-%{release}
# Standard JPackage base provides.
-Provides: jre8-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre8-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre8-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: java8-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: jre8 = %{javaver}
-Provides: java8-%{origin} = %{epoch}:%{version}-%{release}
-Provides: java8 = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: jre = %{javaver}
+Provides: java-%{origin} = %{epoch}:%{version}-%{release}
+Provides: java = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
-Provides: java8-fonts = %{epoch}:%{version}
+Provides: java-fonts = %{epoch}:%{version}
%description
The OpenJDK runtime environment.
@@ -290,24 +290,24 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage base provides.
-Provides: jre8-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: jre8-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: jre8-%{javaver}-headless = %{epoch}:%{version}-%{release}
-Provides: java8-%{javaver}-headless = %{epoch}:%{version}-%{release}
-Provides: jre8-headless = %{javaver}
-Provides: java8-%{origin}-headless = %{epoch}:%{version}-%{release}
-Provides: java8-headless = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release}
+Provides: jre-headless = %{javaver}
+Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: java-headless = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
-Provides: jndi8 = %{epoch}:%{version}
-Provides: jndi8-ldap = %{epoch}:%{version}
-Provides: jndi8-cos = %{epoch}:%{version}
-Provides: jndi8-rmi = %{epoch}:%{version}
-Provides: jndi8-dns = %{epoch}:%{version}
-Provides: jaas8 = %{epoch}:%{version}
-Provides: jsse8 = %{epoch}:%{version}
-Provides: jce8 = %{epoch}:%{version}
-Provides: jdbc8-stdext = 4.1
-Provides: java8-sasl = %{epoch}:%{version}
+Provides: jndi = %{epoch}:%{version}
+Provides: jndi-ldap = %{epoch}:%{version}
+Provides: jndi-cos = %{epoch}:%{version}
+Provides: jndi-rmi = %{epoch}:%{version}
+Provides: jndi-dns = %{epoch}:%{version}
+Provides: jaas = %{epoch}:%{version}
+Provides: jsse = %{epoch}:%{version}
+Provides: jce = %{epoch}:%{version}
+Provides: jdbc-stdext = 4.1
+Provides: java-sasl = %{epoch}:%{version}
%description headless
The OpenJDK runtime environment without audio and video support.
@@ -325,13 +325,13 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage devel provides.
-Provides: java8-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
-Provides: java8-sdk-%{javaver} = %{epoch}:%{version}
-Provides: java8-sdk-%{origin} = %{epoch}:%{version}
-Provides: java8-sdk = %{epoch}:%{javaver}
-Provides: java8-%{javaver}-devel = %{epoch}:%{version}
-Provides: java8-devel-%{origin} = %{epoch}:%{version}
-Provides: java8-devel = %{epoch}:%{javaver}
+Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
+Provides: java-sdk-%{javaver} = %{epoch}:%{version}
+Provides: java-sdk-%{origin} = %{epoch}:%{version}
+Provides: java-sdk = %{epoch}:%{javaver}
+Provides: java-%{javaver}-devel = %{epoch}:%{version}
+Provides: java-devel-%{origin} = %{epoch}:%{version}
+Provides: java-devel = %{epoch}:%{javaver}
%description devel
@@ -367,8 +367,8 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage javadoc provides.
-Provides: java8-javadoc = %{epoch}:%{version}-%{release}
-Provides: java8-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
+Provides: java-javadoc = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
%description javadoc
The OpenJDK API documentation.
@@ -1091,6 +1091,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Mar 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-1.0.b132
+- Switch from java8- style provides to java- style
+- Bump priority to reflect java version
+
* Fri Mar 21 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.35.b132
- Disable doclint for compatiblity
- Patch contributed by Andrew John Hughes
commit 88a34023d2374a929884cac7ba66e26d2ff3ca37
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Mar 21 16:03:29 2014 -0400
Disable doclint by default
diff --git a/disable-doclint-by-default.patch b/disable-doclint-by-default.patch
new file mode 100644
index 0000000..8f08850
--- /dev/null
+++ b/disable-doclint-by-default.patch
@@ -0,0 +1,27 @@
+Disable doclint by default
+
+OpenJDK 8 adds and enables doclint by default. This catches issues in
+javadoc comments. It is too strict, breaks javadoc compilation and, in
+general, breaks the build for old code known to build with previous
+versions of OpenJDK.
+
+See:
http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
+See:
https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150...
+
+diff -r 9d81ae1c417a jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Thu Feb 06
17:35:47 2014 -0800
++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java Mon Feb 24
19:44:12 2014 +0000
+@@ -811,10 +811,9 @@
+ doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION :
DocLint.XMSGS_CUSTOM_PREFIX + opt);
+ }
+
+- if (doclintOpts.isEmpty()) {
+- doclintOpts.add(DocLint.XMSGS_OPTION);
+- } else if (doclintOpts.size() == 1
+- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX +
"none")) {
++ if (doclintOpts.isEmpty() ||
++ (doclintOpts.size() == 1
++ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX +
"none"))) {
+ return;
+ }
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0e28b28..0384b9b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -130,7 +130,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 0.34.%{buildver}%{?dist}
+Release: 0.35.%{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
@@ -192,6 +192,8 @@ Patch3: java-atk-wrapper-security.patch
Patch4: PStack-808293.patch
# Allow multiple initialization of PKCS11 libraries
Patch5: multiple-pkcs11-library-init.patch
+# Disable doclint for compatibility
+Patch6: disable-doclint-by-default.patch
#
# OpenJDK specific patches
@@ -420,6 +422,7 @@ sh %{SOURCE12}
%patch3
%patch4
%patch5
+%patch6
%patch99
@@ -1088,6 +1091,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Fri Mar 21 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.35.b132
+- Disable doclint for compatiblity
+- Patch contributed by Andrew John Hughes
+
* Tue Mar 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.34.b132
- Include jdeps and jjs for aarch64. These are present in b128.
commit 4616e9cf28b826efb272e5558bd6f0ad8838fbbf
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Mar 11 07:58:47 2014 -0400
Include jdeps and jjs for aarch64
These are present in b128 and make aarch64 fail to build if not
packagaged.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2d532ba..0e28b28 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -130,7 +130,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 0.33.%{buildver}%{?dist}
+Release: 0.34.%{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
@@ -759,9 +759,7 @@ alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
-%ifnarch %{aarch64}
--slave %{_bindir}/jjs jjs %{jrebindir}/jjs \
-%endif
--slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
--slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
--slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
@@ -772,10 +770,8 @@ alternatives \
--slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
--slave %{_mandir}/man1/java.1$ext java.1$ext \
%{_mandir}/man1/java-%{name}.1$ext \
-%ifnarch %{aarch64}
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \
%{_mandir}/man1/jjs-%{name}.1$ext \
-%endif
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
%{_mandir}/man1/keytool-%{name}.1$ext \
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
@@ -849,9 +845,7 @@ alternatives \
--slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \
--slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
--slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
-%ifnarch %{aarch64}
--slave %{_bindir}/jdeps jdeps %{sdkbindir}/jdeps \
-%endif
--slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
--slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
--slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
@@ -893,10 +887,8 @@ alternatives \
%{_mandir}/man1/jconsole-%{name}.1$ext \
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
%{_mandir}/man1/jdb-%{name}.1$ext \
-%ifnarch %{aarch64}
--slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \
%{_mandir}/man1/jdeps-%{name}.1$ext \
-%endif
--slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
%{_mandir}/man1/jhat-%{name}.1$ext \
--slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
@@ -1007,9 +999,7 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
%{_mandir}/man1/java-%{name}.1*
-%ifnarch %{aarch64}
%{_mandir}/man1/jjs-%{name}.1*
-%endif
%{_mandir}/man1/keytool-%{name}.1*
%{_mandir}/man1/orbd-%{name}.1*
%{_mandir}/man1/pack200-%{name}.1*
@@ -1056,9 +1046,7 @@ exit 0
%{_mandir}/man1/jconsole-%{name}.1*
%{_mandir}/man1/jcmd-%{name}.1*
%{_mandir}/man1/jdb-%{name}.1*
-%ifnarch %{aarch64}
%{_mandir}/man1/jdeps-%{name}.1*
-%endif
%{_mandir}/man1/jhat-%{name}.1*
%{_mandir}/man1/jinfo-%{name}.1*
%{_mandir}/man1/jmap-%{name}.1*
@@ -1100,6 +1088,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Mar 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.34.b132
+- Include jdeps and jjs for aarch64. These are present in b128.
+
* Mon Mar 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.33.b132
- Update aarch64 tarball to the latest upstream release
commit 7a17734025b85dc16a2536aab37bb87970e7c1a4
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Mar 10 18:34:11 2014 -0400
Update to latest aarch64 release
diff --git a/.gitignore b/.gitignore
index c39bfac..b93d099 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@
/jdk8-jdk8-b129.tar.xz
/jdk8-jdk8-b132.tar.xz
/aarch64-port-rc4.tar.xz
+/aarch64-port-jdk8-b128-aarch64-992.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e7e698b..2d532ba 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -3,7 +3,7 @@
%global jdk8_version b132
%global hg_tag jdk8-%{jdk8_version}
-%global aarch64_hg_tag rc4
+%global aarch64_hg_tag 992
%global aarch64 aarch64 arm64 armv8
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
@@ -86,6 +86,8 @@
%global origin openjdk
%global updatever 0
%global buildver %{jdk8_version}
+%global aarch64_updatever 0
+%global aarch64_buildver b128
# priority must be 6 digits in total
%global priority 000000
%global javaver 1.8.0
@@ -128,7 +130,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
-Release: 0.32.%{buildver}%{?dist}
+Release: 0.33.%{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
@@ -149,7 +151,7 @@ URL:
http://openjdk.java.net/
# ./generate_source_tarball.sh jdk8 %{hg_tag}
# ./generate_source_tarball.sh aarch64-port %{aarch64_hg_tag}
Source0: jdk8-%{hg_tag}.tar.xz
-Source1: aarch64-port-%{aarch64_hg_tag}.tar.xz
+Source1: aarch64-port-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -489,7 +491,12 @@ bash ../../configure \
%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
+%ifnarch %{aarch64}
--with-build-number=%{buildver} \
+%else
+ --with-build-number=%{aarch64_buildver} \
+ --with-user-release-suffix="aarch64-%{aarch64_hg_tag}" \
+%endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
--enable-unlimited-crypto \
@@ -1093,6 +1100,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Mar 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.33.b132
+- Update aarch64 tarball to the latest upstream release
+
* Fri Mar 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.32.b132
- Fix `java -version` output
diff --git a/sources b/sources
index e9389ed..ce3290f 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
84ef926a9a445a79ce6c5dd4d4d5143f jdk8-jdk8-b132.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-8f359f63b6b09ecfaa40259427f133ad aarch64-port-rc4.tar.xz
+944bc1bc5b3a23ab7748bcf3230f5afc aarch64-port-jdk8-b128-aarch64-992.tar.xz
commit aa0731582e2068db5b8c640d0a46884833b9c4e6
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Mar 7 17:20:05 2014 -0500
Fix output of `java -version`
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d2decef..e7e698b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -84,9 +84,10 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
-%global buildver 0
+%global updatever 0
+%global buildver %{jdk8_version}
# priority must be 6 digits in total
-%global priority 00000%{buildver}
+%global priority 000000
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
@@ -126,8 +127,8 @@
%global __jar_repack 0
Name: java-%{javaver}-%{origin}
-Version: %{javaver}.%{buildver}
-Release: 0.31.%{jdk8_version}%{?dist}
+Version: %{javaver}.%{updatever}
+Release: 0.32.%{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
@@ -487,6 +488,7 @@ bash ../../configure \
--disable-precompiled-headers \
%endif
--disable-zip-debug-info \
+ --with-milestone="fcs" \
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@@ -1091,6 +1093,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Fri Mar 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.32.b132
+- Fix `java -version` output
+
* Fri Mar 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.31.b132
- updated to rc4 aarch64 tarball
- outdated removed: patch2031 system-lcmsAARCH64.patch patch2011
system-libjpeg-aarch64.patch
commit ab894d1fd505be5884c07c8b59f2e9bb34ad78aa
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Mar 7 13:03:43 2014 -0500
Delete obsolete script
diff --git a/generate_source_tarball_from-repo.sh b/generate_source_tarball_from-repo.sh
deleted file mode 100755
index b6b1d9c..0000000
--- a/generate_source_tarball_from-repo.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-set -e
-
-VERSION=$1
-JDK8_URL=http://hg.openjdk.java.net
-
-if test "x${VERSION}" = "x"; then
- echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
- exit -1;
-fi
-
-#for REPO_NAME in jdk8 aarch64-port
-for REPO_NAME in aarch64-port
-do
- mkdir ${REPO_NAME}
- pushd ${REPO_NAME}
-
- REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
-
- if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
- # aarch64-port does not tag trees
- # FIXME make this clone reproducible
- hg clone ${REPO_ROOT} -r ${VERSION}
- else
- hg clone ${REPO_ROOT} -r ${VERSION}
- fi
- pushd jdk8
-
-# for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
-# it looks like commons have been added as separate repo for jdk8
-# but not yet for aarch64-port
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
- do
- if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
- # aarch64-port does not tag trees
- # FIXME make this clone reproducible
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
- else
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
- fi
- done
- rm -rvf jdk/src/share/native/sun/security/ec/impl || echo ok
-
- popd
-
- find jdk8 -type d -name ".hg" -exec rm -rf '{}' \; || echo ok
- tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
-
- popd
-done
-
commit 74b310a808bd1e8b94caefdb36a5216bef5a5215
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Mar 7 15:46:09 2014 +0100
Updated aarch64 tarball to rc4
diff --git a/.gitignore b/.gitignore
index 44a7984..c39bfac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@
/jdk8-jdk8-b126.tar.xz
/jdk8-jdk8-b129.tar.xz
/jdk8-jdk8-b132.tar.xz
+/aarch64-port-rc4.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a5c6cd2..d2decef 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -3,7 +3,7 @@
%global jdk8_version b132
%global hg_tag jdk8-%{jdk8_version}
-%global aarch64_hg_tag preview_rc2
+%global aarch64_hg_tag rc4
%global aarch64 aarch64 arm64 armv8
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
@@ -127,7 +127,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.30.%{jdk8_version}%{?dist}
+Release: 0.31.%{jdk8_version}%{?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
@@ -207,12 +207,8 @@ Patch102: %{name}-size_t.patch
Patch103: %{name}-ppc-zero-hotspot.patch
Patch201: system-libjpeg.patch
-Patch2011: system-libjpeg-aarch64.patch
Patch202: system-libpng.patch
-Patch2021: system-libpng-aarch64.patch
Patch203: system-lcms.patch
-Patch2031: system-lcmsAARCH64.patch
-
BuildRequires: autoconf
BuildRequires: automake
@@ -411,15 +407,9 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# Remove libraries that are linked
sh %{SOURCE12}
-%ifarch %{aarch64}
-%patch2011
-%patch2021
-%patch2031
-%else
%patch201
%patch202
%patch203
-%endif
%patch1
@@ -1101,6 +1091,11 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Fri Mar 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.31.b132
+- updated to rc4 aarch64 tarball
+- outdated removed: patch2031 system-lcmsAARCH64.patch patch2011
system-libjpeg-aarch64.patch
+ patch2021 system-libpng-aarch64.patch
+
* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.30.b132
- Update to b132
diff --git a/sources b/sources
index 4338110..e9389ed 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
84ef926a9a445a79ce6c5dd4d4d5143f jdk8-jdk8-b132.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
+8f359f63b6b09ecfaa40259427f133ad aarch64-port-rc4.tar.xz
diff --git a/system-lcmsAARCH64.patch b/system-lcmsAARCH64.patch
deleted file mode 100644
index 697299a..0000000
--- a/system-lcmsAARCH64.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -607,6 +607,46 @@
-
- ###############################################################################
- #
-+# Check for the lcms2 library
-+#
-+
-+AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
-+ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
-+ [ LCMS_FOUND=yes ],
-+ [ LCMS_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which lcms to use])
-+
-+DEFAULT_LCMS=bundled
-+
-+#
-+# If user didn't specify, use DEFAULT_LCMS
-+#
-+if test "x${with_lcms}" = "x"; then
-+ with_lcms=${DEFAULT_LCMS}
-+fi
-+
-+if test "x${with_lcms}" = "xbundled"; then
-+ USE_EXTERNAL_LCMS=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_lcms}" = "xsystem"; then
-+ if test "x${LCMS_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LCMS=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
-+fi
-+
-+AC_SUBST(USE_EXTERNAL_LCMS)
-+
-+###############################################################################
-+#
- # Check for the zlib library
- #
-
-diff -up ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav
./jdk8/jdk/makefiles/CompileNativeLibraries.gmk
---- ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav 2013-08-13 12:37:05.000000000
-0400
-+++ ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk 2013-08-13 14:31:24.000000000 -0400
-@@ -1236,8 +1236,8 @@
-
##########################################################################################
-
- # TODO: Update awt lib path when awt is converted
-- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
-- LIBRARY:=lcms,\
-+ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
-+ LIBRARY:=javalcms,\
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
- SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
- LANG:=C,\
-@@ -1255,18 +1255,18 @@
- LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
- LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
- LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
-- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
-+ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=lcms.dll" \
-- -D "JDK_INTERNAL_NAME=lcms" \
-+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=javalcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
-- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
--
-- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
-+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-+
-+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
-
-
##########################################################################################
-
-diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
---- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-@@ -207,7 +207,7 @@
- * disposer frameworks
- */
- System.loadLibrary("awt");
-- System.loadLibrary("lcms");
-+ System.loadLibrary("javalcms");
- return null;
- }
- });
diff --git a/system-libjpeg-aarch64.patch b/system-libjpeg-aarch64.patch
deleted file mode 100644
index f44d891..0000000
--- a/system-libjpeg-aarch64.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -487,11 +487,40 @@
- # Check for the jpeg library
- #
-
--USE_EXTERNAL_LIBJPEG=true
--AC_CHECK_LIB(jpeg, main, [],
-- [ USE_EXTERNAL_LIBJPEG=false
-- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
-- ])
-+AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
-+ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
-+ [ LIBJPEG_FOUND=yes ],
-+ [ LIBJPEG_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which libjpeg to use])
-+
-+# default is bundled
-+DEFAULT_LIBJPEG=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_LIBJPEG
-+#
-+if test "x${with_libjpeg}" = "x"; then
-+ with_libjpeg=${DEFAULT_LIBJPEG}
-+fi
-+
-+if test "x${with_libjpeg}" = "xbundled"; then
-+ USE_EXTERNAL_LIBJPEG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libjpeg}" = "xsystem"; then
-+ if test "x${LIBJPEG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBJPEG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
-+fi
-+
- AC_SUBST(USE_EXTERNAL_LIBJPEG)
-
- ###############################################################################
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1249,17 +1249,17 @@
-
##########################################################################################
-
- ifdef OPENJDK
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
-+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
- else
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
-+
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-+
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
- endif
-
--BUILD_LIBJPEG_REORDER:=
-+BUILD_LIBJAVAJPEG_REORDER:=
- ifeq ($(OPENJDK_TARGET_OS), solaris)
- ifneq ($(OPENJDK_TARGET_CPU), x86_64)
--
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
-+
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
- endif
- endif
-
-@@ -1274,37 +1274,37 @@
- # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
- # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
- # ifeq ($(CC_43_OR_NEWER),1)
--# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
-+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
- # endif
- #endif
-
--$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
-- LIBRARY:=jpeg, \
-+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
-+ LIBRARY:=javajpeg, \
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
-- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
-+ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
- LANG:=C,\
- OPTIMIZATION:=HIGHEST, \
- CFLAGS:=$(CFLAGS_JDKLIB) \
-- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
-+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
-- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
-- LDFLAGS:=$(LDFLAGS_JDKLIB) \
-+ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
-+ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
- LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=jpeg.dll" \
-- -D "JDK_INTERNAL_NAME=jpeg" \
-+ -D "JDK_FNAME=javajpeg.dll" \
-+ -D "JDK_INTERNAL_NAME=javajpeg" \
- -D "JDK_FTYPE=0x2L",\
-- REORDER:=$(BUILD_LIBJPEG_REORDER),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
-+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
--$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
--
--BUILD_LIBRARIES += $(BUILD_LIBJPEG)
-+$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-+
-+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
-
-
##########################################################################################
-
-@@ -2441,7 +2441,7 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation
- else ifneq ($(OPENJDK_TARGET_OS), windows)
-- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
-+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
- else # OPENJDK_TARGET_OS
- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
- endif # OPENJDK_TARGET_OS
-@@ -2457,7 +2457,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-@@ -89,7 +89,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-@@ -179,7 +179,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
---- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-@@ -56,7 +56,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-@@ -25,7 +25,6 @@
-
- #include "splashscreen_impl.h"
-
--#include "jinclude.h"
- #include "jpeglib.h"
- #include "jerror.h"
-
-@@ -107,11 +106,11 @@
- if (cinfo->src == NULL) { /* first time for this JPEG object? */
- cinfo->src = (struct jpeg_source_mgr *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
-+ JPOOL_PERMANENT, sizeof(stream_source_mgr));
- src = (stream_src_ptr) cinfo->src;
- src->buffer = (JOCTET *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
-+ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
- }
-
- src = (stream_src_ptr) cinfo->src;
diff --git a/system-libpng-aarch64.patch b/system-libpng-aarch64.patch
deleted file mode 100644
index 0fceb6b..0000000
--- a/system-libpng-aarch64.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -566,6 +566,47 @@
-
- ###############################################################################
- #
-+# Check for the png library
-+#
-+
-+AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
-+ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(png, png_sig_cmp,
-+ [ LIBPNG_FOUND=yes ],
-+ [ LIBPNG_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which libpng to use])
-+
-+# default is bundled
-+DEFAULT_LIBPNG=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_LIBPNG
-+#
-+if test "x${with_libpng}" = "x"; then
-+ with_libpng=${DEFAULT_libpng}
-+fi
-+
-+
-+if test "x${with_libpng}" = "xbundled"; then
-+ USE_EXTERNAL_LIBPNG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libpng}" = "xsystem"; then
-+ if test "x${LIBPNG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBPNG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
-+fi
-+AC_SUBST(USE_EXTERNAL_LIBPNG)
-+
-+###############################################################################
-+#
- # Check for the zlib library
- #
-
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -2386,7 +2386,6 @@
- ifndef BUILD_HEADLESS_ONLY
- LIBSPLASHSCREEN_DIRS:=\
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
-- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
- $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
-
- ifeq ($(USE_EXTERNAL_LIBGIF),true)
-@@ -2457,7 +2456,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-@@ -25,7 +25,7 @@
-
- #include "splashscreen_impl.h"
-
--#include "../libpng/png.h"
-+#include <png.h>
-
- #include <setjmp.h>
-
commit 8d666083352918d9ae65d94a48c02185acfca384
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Mar 6 19:07:22 2014 -0500
Update to jdk8-b132
diff --git a/.gitignore b/.gitignore
index 7c310af..44a7984 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@
/jdk8-jdk8-b123.tar.xz
/jdk8-jdk8-b126.tar.xz
/jdk8-jdk8-b129.tar.xz
+/jdk8-jdk8-b132.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1abc651..a5c6cd2 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b129
+%global jdk8_version b132
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag preview_rc2
@@ -127,7 +127,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.29.%{jdk8_version}%{?dist}
+Release: 0.30.%{jdk8_version}%{?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
@@ -1101,6 +1101,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.30.b132
+- Update to b132
+
* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.29.b129
- Fix typo in STRIP_POLICY
diff --git a/sources b/sources
index 9e5bd4d..4338110 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-6f0c07695969a843b30d929f92f7145d jdk8-jdk8-b129.tar.xz
+84ef926a9a445a79ce6c5dd4d4d5143f jdk8-jdk8-b132.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit 76ce841c80b6013314df260694db31088321bd2b
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Mar 6 13:18:45 2014 -0500
Fix typo in STRIP_POLICY
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 241f56f..1abc651 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -127,7 +127,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.28.%{jdk8_version}%{?dist}
+Release: 0.29.%{jdk8_version}%{?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
@@ -518,7 +518,7 @@ make \
SCTP_WERROR= \
DEBUG_BINARIES=true \
FULL_DEBUG_SYMBOLS=0 \
- STRIP_POLICY=non \
+ STRIP_POLICY=none \
ALT_OBJCOPY=/does_not_exist \
LOG=trace \
all
@@ -1101,6 +1101,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.29.b129
+- Fix typo in STRIP_POLICY
+
* Mon Mar 03 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.28.b129
- Remove redundant debuginfo files
- Generate complete debug information for libjvm
commit 1734315551d634b7467f28788d90595b467ea5eb
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Mar 3 13:49:27 2014 -0500
Generate complete debug information for libjvm
And dont include separate .debuginfo files.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 23cbd0a..241f56f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -127,7 +127,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.27.%{jdk8_version}%{?dist}
+Release: 0.28.%{jdk8_version}%{?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
@@ -509,7 +509,19 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC"
-make SCTP_WERROR= DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
+# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
+# disables FDS for all build configs and reverts to pre-FDS make logic.
+# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
+# ignore all the other logic about which debug options and just do '-g'.
+
+make \
+ SCTP_WERROR= \
+ DEBUG_BINARIES=true \
+ FULL_DEBUG_SYMBOLS=0 \
+ STRIP_POLICY=non \
+ ALT_OBJCOPY=/does_not_exist \
+ LOG=trace \
+ all
# the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler):
@@ -517,6 +529,10 @@ make SCTP_WERROR= DEBUG_BINARIES=true DISABLE_INTREE_EC=true
LOG=trace all
find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \;
chmod ugo+r images/j2sdk-image/lib/ct.sym
+# remove redundant *diz and *debuginfo files
+find images/j2sdk-image -iname '*.diz' -exec rm {} \;
+find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \;
+
popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
@@ -1085,6 +1101,10 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Mon Mar 03 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.28.b129
+- Remove redundant debuginfo files
+- Generate complete debug information for libjvm
+
* Tue Feb 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.27.b129
- Fix non-headless libraries
commit 62d17a6f924860d1c5a0aceb9f681233284f34e1
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Feb 25 11:08:51 2014 -0500
Fix non-headless libraries
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7a9cd1d..23cbd0a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -127,7 +127,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.26.%{jdk8_version}%{?dist}
+Release: 0.27.%{jdk8_version}%{?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
@@ -670,7 +670,8 @@ NOT_HEADLESS=\
"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libpulse-java.so
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so
-%{_jvmdir}/%{jredir}/lib/%{archinstall}/xawt/libmawt.so"
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so"
#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
@@ -1084,6 +1085,12 @@ exit 0
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog
+* Tue Feb 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.27.b129
+- Fix non-headless libraries
+
+* Tue Feb 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Fix incorrect Requires
+
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Add -headless subpackage based on java-1.7.0-openjdk
- Add abrt connector support
commit 6e150bad0887f03c6ec3ffeff699e4045e8d0038
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Feb 25 13:01:18 2014 +0100
Fixed typo on requires for headless subpackage (illegal colon moved to dash)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b7fa545..7a9cd1d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -256,7 +256,7 @@ BuildRequires: systemtap-sdt-devel
%endif
# Requires rest of java
-Requires: %{name}-headless = %{epoch}:%{version}:%{release}
+Requires: %{name}-headless = %{epoch}:%{version}-%{release}
# Standard JPackage base provides.
Provides: jre8-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
commit 6e4fd3e3839d165496592fc59daf7d87f3f8f681
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 13 17:23:59 2014 -0500
Add -accessiblity subpackage
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f05a50c..b7fa545 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -372,6 +372,23 @@ Provides: java8-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
%description javadoc
The OpenJDK API documentation.
+
+%package accessibility
+Summary: OpenJDK accessibility connector
+Requires: java-atk-wrapper
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description accessibility
+Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows
+compatible at-spi2 based accessibility programs to work for AWT and Swing-based
+programs.
+
+Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still
+being tuned to be working with accessibility features. There are known issues
+with accessibility on, so please do not install this package unless you really
+need to.
+
+
%prep
%ifarch %{aarch64}
%global source_num 1
@@ -697,6 +714,22 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
| sed 's|^|%doc |' \
> %{name}-demo.files
+# 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}/lib/%{archinstall}
+ ln -s %{syslibdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
+ popd
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext
+ ln -s %{syslibdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
+ popd
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/
+ echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
+ echo "" >> accessibility.properties
+ echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >>
accessibility.properties
+ echo "" >> accessibility.properties
+ popd
+
%post
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -1045,10 +1078,16 @@ exit 0
%doc %{_javadocdir}/%{name}
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+%files accessibility
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
+%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
+%{_jvmdir}/%{jredir}/lib/accessibility.properties
+
%changelog
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Add -headless subpackage based on java-1.7.0-openjdk
- Add abrt connector support
+- Add -accessibility subpackage
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Update to b129.
commit 27e287da74dbcd6a56f2f71a3833c36e50a98a97
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 13 16:44:28 2014 -0500
Add abrt support
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1eebb4b..f05a50c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,6 +71,8 @@
# Hard-code libdir on 64-bit architectures to make the 64-bit JDK
# simply be another alternative.
+%global LIBDIR %{_libdir}
+#backuped original one
%ifarch %{multilib_arches}
%global syslibdir %{_prefix}/lib64
%global _libdir %{_prefix}/lib
@@ -151,6 +153,8 @@ Source1: aarch64-port-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
Source2: README.src
+Source3: java-abrt-launcher.in
+
# Use 'generate_tarballs.sh' to generate the following tarballs
# They are based on code contained in the IcedTea7 project.
@@ -500,6 +504,12 @@ popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
+# Install java-abrt-luncher
+mv $JAVA_HOME/jre/bin/java $JAVA_HOME/jre/bin/java-abrt
+cat %{SOURCE3} | sed -e s:@JAVA_PATH@:%{_jvmdir}/%{jredir}/bin/java-abrt:g -e
s:@LIB_DIR@:%{LIBDIR}/libabrt-java-connector.so:g > $JAVA_HOME/jre/bin/java
+chmod 755 $JAVA_HOME/jre/bin/java
+
+
# Copy tz.properties
echo "sun.zoneinfo.dir=/usr/share/javazi" >>
$JAVA_HOME/jre/lib/tz.properties
@@ -1038,6 +1048,7 @@ exit 0
%changelog
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Add -headless subpackage based on java-1.7.0-openjdk
+- Add abrt connector support
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Update to b129.
diff --git a/java-abrt-launcher.in b/java-abrt-launcher.in
new file mode 100644
index 0000000..d2a7485
--- /dev/null
+++ b/java-abrt-launcher.in
@@ -0,0 +1,7 @@
+#!/bin/bash
+if [ -e @LIB_DIR@ ] ; then
+ exec -a java @JAVA_PATH@ -agentpath:@LIB_DIR@=abrt=on "$@"
+else
+ exec -a java @JAVA_PATH@ "$@"
+fi
+
commit c9dc16a53cbb514e08f79ae3ef498420901e74e7
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 13 14:48:48 2014 -0500
Add -headless subpackge
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a3a8033..1eebb4b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -251,6 +251,28 @@ BuildRequires: prelink
BuildRequires: systemtap-sdt-devel
%endif
+# Requires rest of java
+Requires: %{name}-headless = %{epoch}:%{version}:%{release}
+
+# Standard JPackage base provides.
+Provides: jre8-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre8-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre8-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: java8-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: jre8 = %{javaver}
+Provides: java8-%{origin} = %{epoch}:%{version}-%{release}
+Provides: java8 = %{epoch}:%{javaver}
+# Standard JPackage extensions provides.
+Provides: java8-fonts = %{epoch}:%{version}
+
+%description
+The OpenJDK runtime environment.
+
+
+%package headless
+Summary: OpenJDK Runtime Environment
+Group: Development/Languages
+
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
# Require jpackage-utils for ownership of /usr/lib/jvm/
@@ -263,13 +285,13 @@ Requires(post): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/alternatives
# Standard JPackage base provides.
-Provides: jre8-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre8-%{origin} = %{epoch}:%{version}-%{release}
-Provides: jre8-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: java8-%{javaver} = %{epoch}:%{version}-%{release}
-Provides: jre8 = %{javaver}
-Provides: java8-%{origin} = %{epoch}:%{version}-%{release}
-Provides: java8 = %{epoch}:%{javaver}
+Provides: jre8-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: jre8-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: jre8-%{javaver}-headless = %{epoch}:%{version}-%{release}
+Provides: java8-%{javaver}-headless = %{epoch}:%{version}-%{release}
+Provides: jre8-headless = %{javaver}
+Provides: java8-%{origin}-headless = %{epoch}:%{version}-%{release}
+Provides: java8-headless = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: jndi8 = %{epoch}:%{version}
Provides: jndi8-ldap = %{epoch}:%{version}
@@ -281,10 +303,10 @@ Provides: jsse8 = %{epoch}:%{version}
Provides: jce8 = %{epoch}:%{version}
Provides: jdbc8-stdext = 4.1
Provides: java8-sasl = %{epoch}:%{version}
-Provides: java8-fonts = %{epoch}:%{version}
-%description
-The OpenJDK runtime environment.
+%description headless
+The OpenJDK runtime environment without audio and video support.
+
%package devel
Summary: OpenJDK Development Environment
@@ -609,12 +631,37 @@ done
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \
- > %{name}.files
+ > %{name}.files.headless
# Find JRE files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
| grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'||' \
- >> %{name}.files
+ >> %{name}.files.all
+#split %{name}.files to %{name}.files-headless and %{name}.files
+#see
https://bugzilla.redhat.com/show_bug.cgi?id=875408
+NOT_HEADLESS=\
+"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/libpulse-java.so
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{jredir}/lib/%{archinstall}/xawt/libmawt.so"
+#filter %{name}.files from %{name}.files.all to %{name}.files-headless
+ALL=`cat %{name}.files.all`
+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
+else
+ echo "$file" >> %{name}.files
+fi
+done
# Find demo directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
@@ -640,9 +687,14 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
| sed 's|^|%doc |' \
> %{name}-demo.files
+%post
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+exit 0
+
# FIXME: identical binaries are copied, not linked. This needs to be
# fixed upstream.
-%post
+%post headless
ext=.gz
alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
@@ -701,13 +753,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null
|| :
exit 0
%postun
-if [ $1 -eq 0 ]
-then
- alternatives --remove java %{jrebindir}/java
- alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
- alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
-fi
-
update-desktop-database %{_datadir}/applications &> /dev/null || :
if [ $1 -eq 0 ] ; then
@@ -717,6 +762,14 @@ fi
exit 0
+%postun headless
+if [ $1 -eq 0 ]
+then
+ alternatives --remove java %{jrebindir}/java
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
+fi
+
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
@@ -832,6 +885,9 @@ alternatives \
--slave %{_jvmjardir}/java-%{javaver} \
java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
exit 0
%postun devel
@@ -842,8 +898,19 @@ then
alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+
+
exit 0
+%posttrans devel
+/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
%post javadoc
alternatives \
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{name}/api \
@@ -861,6 +928,10 @@ exit 0
%files -f %{name}.files
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
+
+
+%files headless -f %{name}.files-headless
%defattr(-,root,root,-)
%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
@@ -876,7 +947,6 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
-%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_mandir}/man1/java-%{name}.1*
%ifnarch %{aarch64}
%{_mandir}/man1/jjs-%{name}.1*
@@ -966,6 +1036,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Add -headless subpackage based on java-1.7.0-openjdk
+
* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
- Update to b129.
commit c1e7d5afb28514a4e8132297d6a9d89ad9411375
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 13 11:21:21 2014 -0500
Update to jdk8 b129
diff --git a/.gitignore b/.gitignore
index 33514ed..7c310af 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@
/jdk8-jdk8-b115.tar.xz
/jdk8-jdk8-b123.tar.xz
/jdk8-jdk8-b126.tar.xz
+/jdk8-jdk8-b129.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e4c5029..a3a8033 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b126
+%global jdk8_version b129
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag preview_rc2
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.25.%{jdk8_version}%{?dist}
+Release: 0.26.%{jdk8_version}%{?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
@@ -966,8 +966,11 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Update to b129.
+
* Fri Feb 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.25.b126
-- Update to Reference Implement release.
+- Update to candidate Reference Implementation release.
* Fri Jan 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.24.b123
- Forward port more patches from java-1.7.0-openjdk
diff --git a/sources b/sources
index 42266d6..9e5bd4d 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-ecd1ce1d835b3f35614f63b8d90f430f jdk8-jdk8-b126.tar.xz
+6f0c07695969a843b30d929f92f7145d jdk8-jdk8-b129.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit 125f5e2ed2459bf67649110acc495ac5f4f3c2c2
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Feb 7 10:21:13 2014 -0500
Update to jdk8 b126
diff --git a/.gitignore b/.gitignore
index 2f71b6e..33514ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,4 @@
/aarch64-port-preview_rc2.tar.xz
/jdk8-jdk8-b115.tar.xz
/jdk8-jdk8-b123.tar.xz
+/jdk8-jdk8-b126.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9f2712c..e4c5029 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b123
+%global jdk8_version b126
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag preview_rc2
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.24.%{jdk8_version}%{?dist}
+Release: 0.25.%{jdk8_version}%{?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
@@ -648,6 +648,9 @@ alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
+%ifnarch %{aarch64}
+ --slave %{_bindir}/jjs jjs %{jrebindir}/jjs \
+%endif
--slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
--slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
--slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
@@ -658,6 +661,10 @@ alternatives \
--slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
--slave %{_mandir}/man1/java.1$ext java.1$ext \
%{_mandir}/man1/java-%{name}.1$ext \
+%ifnarch %{aarch64}
+ --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \
+ %{_mandir}/man1/jjs-%{name}.1$ext \
+%endif
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
%{_mandir}/man1/keytool-%{name}.1$ext \
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
@@ -730,6 +737,9 @@ alternatives \
--slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \
--slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
--slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
+%ifnarch %{aarch64}
+ --slave %{_bindir}/jdeps jdeps %{sdkbindir}/jdeps \
+%endif
--slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
--slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
--slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
@@ -771,6 +781,10 @@ alternatives \
%{_mandir}/man1/jconsole-%{name}.1$ext \
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
%{_mandir}/man1/jdb-%{name}.1$ext \
+%ifnarch %{aarch64}
+ --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \
+ %{_mandir}/man1/jdeps-%{name}.1$ext \
+%endif
--slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
%{_mandir}/man1/jhat-%{name}.1$ext \
--slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
@@ -864,6 +878,9 @@ exit 0
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_mandir}/man1/java-%{name}.1*
+%ifnarch %{aarch64}
+%{_mandir}/man1/jjs-%{name}.1*
+%endif
%{_mandir}/man1/keytool-%{name}.1*
%{_mandir}/man1/orbd-%{name}.1*
%{_mandir}/man1/pack200-%{name}.1*
@@ -910,6 +927,9 @@ exit 0
%{_mandir}/man1/jconsole-%{name}.1*
%{_mandir}/man1/jcmd-%{name}.1*
%{_mandir}/man1/jdb-%{name}.1*
+%ifnarch %{aarch64}
+%{_mandir}/man1/jdeps-%{name}.1*
+%endif
%{_mandir}/man1/jhat-%{name}.1*
%{_mandir}/man1/jinfo-%{name}.1*
%{_mandir}/man1/jmap-%{name}.1*
@@ -946,6 +966,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Fri Feb 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.25.b126
+- Update to Reference Implement release.
+
* Fri Jan 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.24.b123
- Forward port more patches from java-1.7.0-openjdk
diff --git a/sources b/sources
index aac8928..42266d6 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-2967a43e2ad3370965739d9588ddc1e5 jdk8-jdk8-b123.tar.xz
+ecd1ce1d835b3f35614f63b8d90f430f jdk8-jdk8-b126.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit 79ae09789c785f4a12e0616c479bd1c7ee32b053
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Feb 6 17:50:52 2014 -0500
Fix comments
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 17471ef..9f2712c 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -168,7 +168,7 @@ Source12: remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
-
+# New versions of config files with aarch64 support. This is not upstream yet.
Source100: config.guess
Source101: config.sub
@@ -356,15 +356,16 @@ The OpenJDK API documentation.
%setup -q -c -n %{name} -T -a %{source_num}
cp %{SOURCE2} .
-#repalce outdated configure guess script
+# replace outdated configure guess script
+#
+# the configure macro will do this too, but it also passes a few flags not
+# supported by openjdk configure script
cp %{SOURCE100} jdk8/common/autoconf/build-aux/
cp %{SOURCE101} jdk8/common/autoconf/build-aux/
# OpenJDK patches
# Remove libraries that are linked
-# disabled until 8 has all system library fixes upstream
-
sh %{SOURCE12}
%ifarch %{aarch64}
commit dfc56372e30fa9dc5d2e84f51b8358a6189baaca
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jan 31 17:34:04 2014 -0500
Add more patches from java-1.7.0-openjdk
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cf7e2ef..17471ef 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.23.%{jdk8_version}%{?dist}
+Release: 0.24.%{jdk8_version}%{?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
@@ -183,6 +183,8 @@ Patch2: 1015432.patch
Patch3: java-atk-wrapper-security.patch
# RHBZ 808293
Patch4: PStack-808293.patch
+# Allow multiple initialization of PKCS11 libraries
+Patch5: multiple-pkcs11-library-init.patch
#
# OpenJDK specific patches
@@ -380,6 +382,7 @@ sh %{SOURCE12}
%patch2
%patch3
%patch4
+%patch5
%patch99
@@ -942,6 +945,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Fri Jan 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.24.b123
+- Forward port more patches from java-1.7.0-openjdk
+
* Mon Jan 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.23.b123
- Update to jdk8-b123
diff --git a/multiple-pkcs11-library-init.patch b/multiple-pkcs11-library-init.patch
new file mode 100644
index 0000000..f1e8bc2
--- /dev/null
+++ b/multiple-pkcs11-library-init.patch
@@ -0,0 +1,74 @@
+# HG changeset patch
+# User andrew
+# Date 1352129932 0
+# Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a
+# Parent 1406789608b76d0906881979335d685855f44190
+Allow multiple PKCS11 library initialisation to be a non-critical error.
+
+diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/Config.java
+--- jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Tue Oct 30 13:05:14 2012
+0000
++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Nov 05 15:38:52 2012
+0000
+@@ -52,6 +52,7 @@
+ static final int ERR_HALT = 1;
+ static final int ERR_IGNORE_ALL = 2;
+ static final int ERR_IGNORE_LIB = 3;
++ static final int ERR_IGNORE_MULTI_INIT = 4;
+
+ // same as allowSingleThreadedModules but controlled via a system property
+ // and applied to all providers. if set to false, no SunPKCS11 instances
+@@ -980,6 +981,8 @@
+ handleStartupErrors = ERR_IGNORE_LIB;
+ } else if (val.equals("halt")) {
+ handleStartupErrors = ERR_HALT;
++ } else if (val.equals("ignoreMultipleInitialisation")) {
++ handleStartupErrors = ERR_IGNORE_MULTI_INIT;
+ } else {
+ throw excToken("Invalid value for handleStartupErrors:");
+ }
+diff -r 1406789608b7 -r e9c857dcb964
src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Tue Oct 30 13:05:14
2012 +0000
++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Nov 05 15:38:52
2012 +0000
+@@ -168,26 +168,37 @@
+ String nssLibraryDirectory = config.getNssLibraryDirectory();
+ String nssSecmodDirectory = config.getNssSecmodDirectory();
+ boolean nssOptimizeSpace = config.getNssOptimizeSpace();
++ int errorHandling = config.getHandleStartupErrors();
+
+ if (secmod.isInitialized()) {
+ if (nssSecmodDirectory != null) {
+ String s = secmod.getConfigDir();
+ if ((s != null) &&
+ (s.equals(nssSecmodDirectory) == false)) {
+- throw new ProviderException("Secmod directory "
+- + nssSecmodDirectory
+- + " invalid, NSS already initialized with "
+- + s);
++ String msg = "Secmod directory " +
nssSecmodDirectory
++ + " invalid, NSS already initialized with " +
s;
++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
++ errorHandling == Config.ERR_IGNORE_ALL) {
++ throw new UnsupportedOperationException(msg);
++ } else {
++ throw new ProviderException(msg);
++ }
+ }
+ }
+ if (nssLibraryDirectory != null) {
+ String s = secmod.getLibDir();
+ if ((s != null) &&
+ (s.equals(nssLibraryDirectory) == false)) {
+- throw new ProviderException("NSS library directory
"
++ String msg = "NSS library directory "
+ + nssLibraryDirectory
+ + " invalid, NSS already initialized with "
+- + s);
++ + s;
++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
++ errorHandling == Config.ERR_IGNORE_ALL) {
++ throw new UnsupportedOperationException(msg);
++ } else {
++ throw new ProviderException(msg);
++ }
+ }
+ }
+ } else {
commit 47360e10b1a5eaa56a511defb312c3cb3feed206
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jan 24 13:44:52 2014 -0500
Allow icedtea-web to build
diff --git a/applet-hole.patch b/applet-hole.patch
new file mode 100644
index 0000000..6f163e9
--- /dev/null
+++ b/applet-hole.patch
@@ -0,0 +1,108 @@
+diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
+--- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
++++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
+@@ -68,7 +68,7 @@
+ /**
+ * The applet (if loaded).
+ */
+- Applet applet;
++ protected Applet applet;
+
+ /**
+ * Applet will allow initialization. Should be
+@@ -162,7 +162,8 @@
+ * Creates a thread to run the applet. This method is called
+ * each time an applet is loaded and reloaded.
+ */
+- synchronized void createAppletThread() {
++ //Overridden by NetxPanel.
++ protected synchronized void createAppletThread() {
+ // Create a thread group for the applet, and start a new
+ // thread to load the applet.
+ String nm = "applet-" + getCode();
+@@ -306,7 +307,7 @@
+ /**
+ * Get an event from the queue.
+ */
+- synchronized AppletEvent getNextEvent() throws InterruptedException {
++ protected synchronized AppletEvent getNextEvent() throws InterruptedException {
+ while (queue == null || queue.isEmpty()) {
+ wait();
+ }
+@@ -692,7 +693,8 @@
+ * applet event processing so that it can be gracefully interrupted from
+ * things like HotJava.
+ */
+- private void runLoader() {
++ //Overridden by NetxPanel.
++ protected void runLoader() {
+ if (status != APPLET_DISPOSE) {
+ showAppletStatus("notdisposed");
+ return;
+diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+--- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
++++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+@@ -42,25 +42,25 @@
+ *
+ * @author Arthur van Hoff
+ */
+-class AppletViewerPanel extends AppletPanel {
++public class AppletViewerPanel extends AppletPanel {
+
+ /* Are we debugging? */
+- static boolean debug = false;
++ protected static boolean debug = false;
+
+ /**
+ * The document url.
+ */
+- URL documentURL;
++ protected URL documentURL;
+
+ /**
+ * The base url.
+ */
+- URL baseURL;
++ protected URL baseURL;
+
+ /**
+ * The attributes of the applet.
+ */
+- Hashtable atts;
++ protected Hashtable<String,String> atts;
+
+ /*
+ * JDK 1.1 serialVersionUID
+@@ -70,7 +70,7 @@
+ /**
+ * Construct an applet viewer and start the applet.
+ */
+- AppletViewerPanel(URL documentURL, Hashtable atts) {
++ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
+ this.documentURL = documentURL;
+ this.atts = atts;
+
+@@ -106,7 +106,7 @@
+ * Get an applet parameter.
+ */
+ public String getParameter(String name) {
+- return (String)atts.get(name.toLowerCase());
++ return atts.get(name.toLowerCase());
+ }
+
+ /**
+@@ -202,12 +202,12 @@
+ return (AppletContext)getParent();
+ }
+
+- static void debug(String s) {
++ protected static void debug(String s) {
+ if(debug)
+ System.err.println("AppletViewerPanel:::" + s);
+ }
+
+- static void debug(String s, Throwable t) {
++ protected static void debug(String s, Throwable t) {
+ if(debug) {
+ t.printStackTrace();
+ debug(s);
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 34e0737..cf7e2ef 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -188,6 +188,9 @@ Patch4: PStack-808293.patch
# OpenJDK specific patches
#
+# Allow icedtea-web to build
+Patch99: applet-hole.patch
+
# Recognize s390/s390x
Patch100: %{name}-s390.patch
# Type fixing for s390
@@ -204,6 +207,7 @@ Patch2021: system-libpng-aarch64.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
+
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -377,6 +381,8 @@ sh %{SOURCE12}
%patch3
%patch4
+%patch99
+
# Type fixes for s390
%ifarch s390 s390x
%patch100
commit af5a48d4a72c431e7d549bb8280f6ccc2ded5012
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri Jan 24 13:38:19 2014 -0500
Adapt more patches from java-1.7.0-openjdk
diff --git a/1015432.patch b/1015432.patch
new file mode 100644
index 0000000..c8323e8
--- /dev/null
+++ b/1015432.patch
@@ -0,0 +1,23 @@
+--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12 2013 -0700
++++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33 2013 +0000
+@@ -4797,9 +4797,19 @@
+ // size. Add a page for compiler2 recursion in main thread.
+ // Add in 2*BytesPerWord times page size to account for VM stack during
+ // class initialization depending on 32 or 64 bit VM.
++
++
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages) *
Linux::page_size() +
+- (2*BytesPerWord COMPILER2_PRESENT(+1)) *
Linux::vm_default_page_size());
++ (2*BytesPerWord COMPILER2_PRESENT(+1))
++ *
++#ifdef PPC
++ NOT_ZERO ( Linux::vm_default_page_size() )
++ ZERO_ONLY ( Linux::page_size() )
++#else
++ ( Linux::vm_default_page_size() )
++#endif
++ );
+
+ size_t threadStackSizeInBytes = ThreadStackSize * K;
+ if (threadStackSizeInBytes != 0 &&
diff --git a/PStack-808293.patch b/PStack-808293.patch
new file mode 100644
index 0000000..eb8b8a0
--- /dev/null
+++ b/PStack-808293.patch
@@ -0,0 +1,40 @@
+--- jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06
02:26:33.322164601 +0200
++++ jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06
02:26:57.958514071 +0200
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2012, 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
+@@ -84,7 +85,8 @@
+ out.print("----------------- ");
+ out.print(th);
+ out.println(" -----------------");
+- while (f != null) {
++ int maxStack = 256;
++ while (f != null && maxStack-- > 0) {
+ ClosestSymbol sym = f.closestSymbolToPC();
+ Address pc = f.pc();
+ out.print(pc + "\t");
+@@ -158,10 +160,19 @@
+ }
+ }
+ }
++ Address oldPC = f.pc();
++ Address oldFP = f.localVariableBase();
+ f = f.sender(th);
++ if (f != null
++ && oldPC.equals(f.pc())
++ && oldFP.equals(f.localVariableBase())) {
++ // We didn't make any progress
++ f = null;
++ }
+ }
+ } catch (Exception exp) {
+- exp.printStackTrace();
++ // exp.printStackTrace();
++ out.println("bad stack: " + exp);
+ // continue, may be we can do a better job for other threads
+ }
+ if (concurrentLocks) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9b8aaf7..34e0737 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -168,6 +168,7 @@ Source12: remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
+
Source100: config.guess
Source101: config.sub
@@ -176,6 +177,13 @@ Source101: config.sub
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
+# RHBZ 1015432
+Patch2: 1015432.patch
+# Restrict access to java-atk-wrapper classes
+Patch3: java-atk-wrapper-security.patch
+# RHBZ 808293
+Patch4: PStack-808293.patch
+
#
# OpenJDK specific patches
#
@@ -365,6 +373,9 @@ sh %{SOURCE12}
%patch1
+%patch2
+%patch3
+%patch4
# Type fixes for s390
%ifarch s390 s390x
diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch
new file mode 100644
index 0000000..8ef9a48
--- /dev/null
+++ b/java-atk-wrapper-security.patch
@@ -0,0 +1,28 @@
+--- jdk8/jdk/src/share/lib/security/java.security-linux.orig
++++ jdk8/jdk/src/share/lib/security/java.security-linux
+@@ -154,9 +154,11 @@
+ org.jcp.xml.dsig.internal.,\
+ jdk.internal.,\
+ jdk.nashorn.internal.,\
+- jdk.nashorn.tools.
++ jdk.nashorn.tools,\
++ org.GNOME.Accessibility.,\
++ org.GNOME.Bonobo.
+
+
+ #
+ # List of comma-separated packages that start with or equal this string
+ # will cause a security exception to be thrown when
+@@ -192,9 +194,11 @@
+ org.jcp.xml.dsig.internal.,\
+ jdk.internal.,\
+ jdk.nashorn.internal.,\
+- jdk.nashorn.tools.
++ jdk.nashorn.tools.,\
++ org.GNOME.Accessibility.,\
++ org.GNOME.Bonobo.
+
+
+ #
+ # Determines whether this properties file can be appended to
+ # or overridden on the command line via -Djava.security.properties
commit 3bdbf7ef350bfd6ca1a12e688b13a2d41777c42e
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jan 20 14:04:25 2014 -0500
Update to jdk8-b123
diff --git a/.gitignore b/.gitignore
index 3a50d6f..2f71b6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@
/jdk8-jdk8-b106.tar.xz
/aarch64-port-preview_rc2.tar.xz
/jdk8-jdk8-b115.tar.xz
+/jdk8-jdk8-b123.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 67d470d..9b8aaf7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b115
+%global jdk8_version b123
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag preview_rc2
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.22.%{jdk8_version}%{?dist}
+Release: 0.23.%{jdk8_version}%{?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
@@ -925,6 +925,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jan 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.23.b123
+- Update to jdk8-b123
+
* Thu Nov 14 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.22.b115
- Update to jdk8-b115
diff --git a/sources b/sources
index eaaa138..aac8928 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-ca794304b9da75aa68c5a5b9eba0e510 jdk8-jdk8-b115.tar.xz
+2967a43e2ad3370965739d9588ddc1e5 jdk8-jdk8-b123.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
diff --git a/system-lcms.patch b/system-lcms.patch
index 6ecef63..f8430f3 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -48,9 +48,9 @@ diff -ruN jdk8/common/autoconf/libraries.m4
jdk8/common/autoconf/libraries.m4
# Check for the png library
#
-diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
---- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
-+++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
+diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
@@ -661,8 +661,8 @@
##########################################################################################
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
index 8a3ef59..fa01115 100644
--- a/system-libjpeg.patch
+++ b/system-libjpeg.patch
@@ -48,20 +48,20 @@ diff -ruN jdk8/common/autoconf/libraries.m4
jdk8/common/autoconf/libraries.m4
###############################################################################
#
# Check for the gif library
-diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
---- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-10-31 19:44:18.000000000 -0400
-+++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 21:56:01.020796703 -0500
+diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-10-31 19:44:18.000000000 -0400
++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 21:56:01.020796703 -0500
@@ -696,17 +696,17 @@
##########################################################################################
ifdef OPENJDK
-- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
-+ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
else
-- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
- BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
- BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
-+ BUILD_LIBJAVAJPEG_MAPFILE :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
+ BUILD_LIBJAVAJPEG_CLOSED_SRC :=
$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
endif
@@ -70,8 +70,8 @@ diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2d
+BUILD_LIBJAVAJPEG_REORDER :=
ifeq ($(OPENJDK_TARGET_OS), solaris)
ifneq ($(OPENJDK_TARGET_CPU), x86_64)
-- BUILD_LIBJPEG_REORDER :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
-+ BUILD_LIBJAVAJPEG_REORDER :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+- BUILD_LIBJPEG_REORDER :=
$(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++ BUILD_LIBJAVAJPEG_REORDER :=
$(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
endif
endif
@@ -155,7 +155,7 @@ diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2d
- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
+ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
+ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
- MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
diff --git a/system-libpng.patch b/system-libpng.patch
index f7578be..53661d8 100644
--- a/system-libpng.patch
+++ b/system-libpng.patch
@@ -60,9 +60,9 @@ diff -ruN jdk8/common/autoconf/spec.gmk.in
jdk8/common/autoconf/spec.gmk.in
USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
-diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
---- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 20:08:01.845065585 -0500
-+++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 20:14:10.791982343 -0500
+diff -ruN jdk8/jdk/make/lib/Awt2dLibraries.gmk jdk8/jdk/make/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 20:08:01.845065585 -0500
++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2013-11-14 20:14:10.791982343 -0500
@@ -1183,7 +1183,6 @@
ifndef BUILD_HEADLESS_ONLY
@@ -91,7 +91,7 @@ diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2d
CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
+ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \
- MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) \
commit 4a0a4c1bc134289257f5559b846783a5be79ea8b
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Nov 14 23:17:13 2013 -0500
Update sources for b115
diff --git a/.gitignore b/.gitignore
index ed7492c..3a50d6f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
/aarch64-port-aarch64-20130813.tar.xz
/jdk8-jdk8-b106.tar.xz
/aarch64-port-preview_rc2.tar.xz
+/jdk8-jdk8-b115.tar.xz
diff --git a/sources b/sources
index 1f409fd..eaaa138 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
+ca794304b9da75aa68c5a5b9eba0e510 jdk8-jdk8-b115.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit 717abd3e4d8cca133bb33212d61a32ed75b96221
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Nov 14 23:01:02 2013 -0500
Fix patches for aarch64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 78a79e8..67d470d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -190,7 +190,9 @@ Patch102: %{name}-size_t.patch
Patch103: %{name}-ppc-zero-hotspot.patch
Patch201: system-libjpeg.patch
+Patch2011: system-libjpeg-aarch64.patch
Patch202: system-libpng.patch
+Patch2021: system-libpng-aarch64.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
@@ -351,12 +353,13 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
sh %{SOURCE12}
-%patch201
-%patch202
-
%ifarch %{aarch64}
+%patch2011
+%patch2021
%patch2031
%else
+%patch201
+%patch202
%patch203
%endif
diff --git a/system-libjpeg-aarch64.patch b/system-libjpeg-aarch64.patch
new file mode 100644
index 0000000..f44d891
--- /dev/null
+++ b/system-libjpeg-aarch64.patch
@@ -0,0 +1,207 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -487,11 +487,40 @@
+ # Check for the jpeg library
+ #
+
+-USE_EXTERNAL_LIBJPEG=true
+-AC_CHECK_LIB(jpeg, main, [],
+- [ USE_EXTERNAL_LIBJPEG=false
+- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+- ])
++AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
++ [ LIBJPEG_FOUND=yes ],
++ [ LIBJPEG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libjpeg to use])
++
++# default is bundled
++DEFAULT_LIBJPEG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBJPEG
++#
++if test "x${with_libjpeg}" = "x"; then
++ with_libjpeg=${DEFAULT_LIBJPEG}
++fi
++
++if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libjpeg}" = "xsystem"; then
++ if test "x${LIBJPEG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBJPEG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
++ fi
++else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
++fi
++
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+ ###############################################################################
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1249,17 +1249,17 @@
+
##########################################################################################
+
+ ifdef OPENJDK
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+ else
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
++
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+ endif
+
+-BUILD_LIBJPEG_REORDER:=
++BUILD_LIBJAVAJPEG_REORDER:=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
+ endif
+
+@@ -1274,37 +1274,37 @@
+ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ # ifeq ($(CC_43_OR_NEWER),1)
+-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ # endif
+ #endif
+
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
+- LIBRARY:=jpeg, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
++ LIBRARY:=javajpeg, \
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
++ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+ LANG:=C,\
+ OPTIMIZATION:=HIGHEST, \
+ CFLAGS:=$(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS:=$(LDFLAGS_JDKLIB) \
++ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
+ LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=jpeg.dll" \
+- -D "JDK_INTERNAL_NAME=jpeg" \
++ -D "JDK_FNAME=javajpeg.dll" \
++ -D "JDK_INTERNAL_NAME=javajpeg" \
+ -D "JDK_FTYPE=0x2L",\
+- REORDER:=$(BUILD_LIBJPEG_REORDER),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
++ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+-
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
++
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+
+
##########################################################################################
+
+@@ -2441,7 +2441,7 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation
+ else ifneq ($(OPENJDK_TARGET_OS), windows)
+- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
++ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
+ else # OPENJDK_TARGET_OS
+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
+ endif # OPENJDK_TARGET_OS
+@@ -2457,7 +2457,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -179,7 +179,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+@@ -25,7 +25,6 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "jinclude.h"
+ #include "jpeglib.h"
+ #include "jerror.h"
+
+@@ -107,11 +106,11 @@
+ if (cinfo->src == NULL) { /* first time for this JPEG object? */
+ cinfo->src = (struct jpeg_source_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
++ JPOOL_PERMANENT, sizeof(stream_source_mgr));
+ src = (stream_src_ptr) cinfo->src;
+ src->buffer = (JOCTET *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
+ }
+
+ src = (stream_src_ptr) cinfo->src;
diff --git a/system-libpng-aarch64.patch b/system-libpng-aarch64.patch
new file mode 100644
index 0000000..0fceb6b
--- /dev/null
+++ b/system-libpng-aarch64.patch
@@ -0,0 +1,83 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -566,6 +566,47 @@
+
+ ###############################################################################
+ #
++# Check for the png library
++#
++
++AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
++ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(png, png_sig_cmp,
++ [ LIBPNG_FOUND=yes ],
++ [ LIBPNG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libpng to use])
++
++# default is bundled
++DEFAULT_LIBPNG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBPNG
++#
++if test "x${with_libpng}" = "x"; then
++ with_libpng=${DEFAULT_libpng}
++fi
++
++
++if test "x${with_libpng}" = "xbundled"; then
++ USE_EXTERNAL_LIBPNG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libpng}" = "xsystem"; then
++ if test "x${LIBPNG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBPNG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
++fi
++AC_SUBST(USE_EXTERNAL_LIBPNG)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -2386,7 +2386,6 @@
+ ifndef BUILD_HEADLESS_ONLY
+ LIBSPLASHSCREEN_DIRS:=\
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
+ ifeq ($(USE_EXTERNAL_LIBGIF),true)
+@@ -2457,7 +2456,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+@@ -25,7 +25,7 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "../libpng/png.h"
++#include <png.h>
+
+ #include <setjmp.h>
+
commit e5a9e1aaac86d1be094a940e73416a5179c6ce30
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Nov 14 22:50:07 2013 -0500
Fix changelog entries
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 80ac3d8..78a79e8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -922,14 +922,14 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
-* Tue Nov 14 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.22.b115
+* Thu Nov 14 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.22.b115
- Update to jdk8-b115
-* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com - 1:1.8.0.0-0.21.b106
+* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.21.b106
- added jre/lib/security/blacklisted.certs for aarch64
- updated to preview_rc2 aarch64 tarball
-* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.20.b106
+* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.20.b106
- Fix paths in tapsets to work on non-x86_64
- Use system libjpeg
commit 582db12172f6a2d6894652c3bd0df1ee2109ae34
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Nov 14 22:45:09 2013 -0500
Update to jdk8-b115
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0ea0674..80ac3d8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b106
+%global jdk8_version b115
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag preview_rc2
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.21.%{jdk8_version}%{?dist}
+Release: 0.22.%{jdk8_version}%{?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
@@ -837,9 +837,7 @@ exit 0
%{_jvmdir}/%{jredir}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
-%ifarch %{aarch64}
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
-%endif
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_mandir}/man1/java-%{name}.1*
%{_mandir}/man1/keytool-%{name}.1*
@@ -924,6 +922,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Nov 14 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.22.b115
+- Update to jdk8-b115
+
* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com - 1:1.8.0.0-0.21.b106
- added jre/lib/security/blacklisted.certs for aarch64
- updated to preview_rc2 aarch64 tarball
diff --git a/system-lcms.patch b/system-lcms.patch
index 3509903..6ecef63 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -1,96 +1,96 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -607,6 +607,46 @@
+diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4 2013-11-14 22:04:38.039440136 -0500
++++ jdk8/common/autoconf/libraries.m4 2013-11-14 22:05:11.474356424 -0500
+@@ -676,6 +676,46 @@
- ###############################################################################
- #
-+# Check for the lcms2 library
-+#
+ ###############################################################################
+ #
++ # Check for the lcms2 library
++ #
+
-+AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
-+ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
+
-+AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
-+ [ LCMS_FOUND=yes ],
-+ [ LCMS_FOUND=no ])
++ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++ [ LCMS_FOUND=yes ],
++ [ LCMS_FOUND=no ])
+
-+AC_MSG_CHECKING([for which lcms to use])
++ AC_MSG_CHECKING([for which lcms to use])
+
-+DEFAULT_LCMS=bundled
++ DEFAULT_LCMS=bundled
+
-+#
-+# If user didn't specify, use DEFAULT_LCMS
-+#
-+if test "x${with_lcms}" = "x"; then
-+ with_lcms=${DEFAULT_LCMS}
-+fi
++ #
++ # If user didn't specify, use DEFAULT_LCMS
++ #
++ if test "x${with_lcms}" = "x"; then
++ with_lcms=${DEFAULT_LCMS}
++ fi
+
-+if test "x${with_lcms}" = "xbundled"; then
-+ USE_EXTERNAL_LCMS=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_lcms}" = "xsystem"; then
-+ if test "x${LCMS_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LCMS=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
-+fi
++ if test "x${with_lcms}" = "xbundled"; then
++ USE_EXTERNAL_LCMS=false
++ AC_MSG_RESULT([bundled])
++ elif test "x${with_lcms}" = "xsystem"; then
++ if test "x${LCMS_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LCMS=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++ fi
++ else
++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
++ fi
+
-+AC_SUBST(USE_EXTERNAL_LCMS)
++ AC_SUBST(USE_EXTERNAL_LCMS)
+
-+###############################################################################
-+#
- # Check for the zlib library
- #
++ ###############################################################################
++ #
+ # Check for the png library
+ #
-diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1214,8 +1214,8 @@
+diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 22:04:38.040440133 -0500
++++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 22:05:11.475356411 -0500
+@@ -661,8 +661,8 @@
##########################################################################################
- # TODO: Update awt lib path when awt is converted
-- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
-- LIBRARY:=lcms,\
-+ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
-+ LIBRARY:=javalcms,\
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
- SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
- LANG:=C,\
-@@ -1233,18 +1233,18 @@
- LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
- LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
- LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
-- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
-+ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=lcms.dll" \
-- -D "JDK_INTERNAL_NAME=lcms" \
-+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=libjavalcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+ # TODO: Update awt lib path when awt is converted
+-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
+- LIBRARY := lcms, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \
++ LIBRARY := javalcms, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+ SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
+ LANG := C, \
+@@ -680,18 +680,18 @@
+ LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
+ LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
+ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
+- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
++ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+- -D "JDK_FNAME=lcms.dll" \
+- -D "JDK_INTERNAL_NAME=lcms" \
++ -D "JDK_FNAME=javalcms.dll" \
++ -D "JDK_INTERNAL_NAME=javalcms" \
+ -D "JDK_FTYPE=0x2L", \
+- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
-- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
--
-- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
-+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-+
-+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
+-BUILD_LIBRARIES += $(BUILD_LIBLCMS)
++BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
+
+-$(BUILD_LIBLCMS): $(BUILD_LIBAWT)
++$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT)
##########################################################################################
-diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
---- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-@@ -164,7 +164,7 @@
+diff -ruN jdk8/jdk/src/share/classes/sun/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2013-10-31
19:44:18.000000000 -0400
++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2013-11-14
22:05:11.476356403 -0500
+@@ -207,7 +207,7 @@
* disposer frameworks
*/
System.loadLibrary("awt");
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
index f44d891..8a3ef59 100644
--- a/system-libjpeg.patch
+++ b/system-libjpeg.patch
@@ -1,152 +1,172 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -487,11 +487,40 @@
- # Check for the jpeg library
- #
-
--USE_EXTERNAL_LIBJPEG=true
--AC_CHECK_LIB(jpeg, main, [],
-- [ USE_EXTERNAL_LIBJPEG=false
-- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
-- ])
-+AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
-+ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
+diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4 2013-10-31 19:24:33.000000000 -0400
++++ jdk8/common/autoconf/libraries.m4 2013-11-14 21:55:20.249903347 -0500
+@@ -601,12 +601,42 @@
+ #
+
+ USE_EXTERNAL_LIBJPEG=true
+- AC_CHECK_LIB(jpeg, main, [],
+- [ USE_EXTERNAL_LIBJPEG=false
+- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+- ])
++ AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
+
-+AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
-+ [ LIBJPEG_FOUND=yes ],
-+ [ LIBJPEG_FOUND=no ])
++ AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
++ [ LIBJPEG_FOUND=yes ],
++ [ LIBJPEG_FOUND=no ])
+
-+AC_MSG_CHECKING([for which libjpeg to use])
++ AC_MSG_CHECKING([for which libjpeg to use])
+
-+# default is bundled
-+DEFAULT_LIBJPEG=bundled
++ # default is bundled
++ DEFAULT_LIBJPEG=bundled
+
-+#
-+# if user didn't specify, use DEFAULT_LIBJPEG
-+#
-+if test "x${with_libjpeg}" = "x"; then
-+ with_libjpeg=${DEFAULT_LIBJPEG}
-+fi
++ #
++ # if user didn't specify, use DEFAULT_LIBJPEG
++ #
++ if test "x${with_libjpeg}" = "x"; then
++ with_libjpeg=${DEFAULT_LIBJPEG}
++ fi
+
-+if test "x${with_libjpeg}" = "xbundled"; then
-+ USE_EXTERNAL_LIBJPEG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libjpeg}" = "xsystem"; then
-+ if test "x${LIBJPEG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBJPEG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
-+fi
++ if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ AC_MSG_RESULT([bundled])
++ elif test "x${with_libjpeg}" = "xsystem"; then
++ if test "x${LIBJPEG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBJPEG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
++ fi
++ else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
++ fi
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+
- AC_SUBST(USE_EXTERNAL_LIBJPEG)
-
- ###############################################################################
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1249,17 +1249,17 @@
+ ###############################################################################
+ #
+ # Check for the gif library
+diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-10-31 19:44:18.000000000 -0400
++++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 21:56:01.020796703 -0500
+@@ -696,17 +696,17 @@
##########################################################################################
ifdef OPENJDK
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
-+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
else
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
-+
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-+
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+- BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
++ BUILD_LIBJAVAJPEG_MAPFILE :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++ BUILD_LIBJAVAJPEG_CLOSED_SRC :=
$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
endif
--BUILD_LIBJPEG_REORDER:=
-+BUILD_LIBJAVAJPEG_REORDER:=
+-BUILD_LIBJPEG_REORDER :=
++BUILD_LIBJAVAJPEG_REORDER :=
ifeq ($(OPENJDK_TARGET_OS), solaris)
- ifneq ($(OPENJDK_TARGET_CPU), x86_64)
--
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
-+
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
- endif
+ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+- BUILD_LIBJPEG_REORDER :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++ BUILD_LIBJAVAJPEG_REORDER :=
$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
endif
-@@ -1274,37 +1274,37 @@
- # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
- # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
- # ifeq ($(CC_43_OR_NEWER),1)
--# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
-+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
- # endif
+@@ -721,37 +721,37 @@
+ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ # ifeq ($(CC_43_OR_NEWER), 1)
+-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ # endif
#endif
--$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
-- LIBRARY:=jpeg, \
-+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
-+ LIBRARY:=javajpeg, \
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
-- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
-+ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
- LANG:=C,\
- OPTIMIZATION:=HIGHEST, \
- CFLAGS:=$(CFLAGS_JDKLIB) \
-- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
-+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
-- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
-- LDFLAGS:=$(LDFLAGS_JDKLIB) \
-+ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
-+ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
- LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=jpeg.dll" \
-- -D "JDK_INTERNAL_NAME=jpeg" \
-+ -D "JDK_FNAME=javajpeg.dll" \
-+ -D "JDK_INTERNAL_NAME=javajpeg" \
- -D "JDK_FTYPE=0x2L",\
-- REORDER:=$(BUILD_LIBJPEG_REORDER),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
-+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
--$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
--
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
+- LIBRARY := jpeg, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
++ LIBRARY := javajpeg, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
++ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
+ LANG := C, \
+ OPTIMIZATION := HIGHEST, \
+ CFLAGS := $(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
+- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS := $(LDFLAGS_JDKLIB) \
++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS := $(LDFLAGS_JDKLIB) -ljpeg \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
+ LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+- -D "JDK_FNAME=jpeg.dll" \
+- -D "JDK_INTERNAL_NAME=jpeg" \
++ -D "JDK_FNAME=javajpeg.dll" \
++ -D "JDK_INTERNAL_NAME=javajpeg" \
+ -D "JDK_FTYPE=0x2L", \
+- REORDER := $(BUILD_LIBJPEG_REORDER), \
+- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
++ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavajpeg, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+
+-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
+
-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
-+$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-+
+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
##########################################################################################
-@@ -2441,7 +2441,7 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation
- else ifneq ($(OPENJDK_TARGET_OS), windows)
-- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
-+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
- else # OPENJDK_TARGET_OS
- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
- endif # OPENJDK_TARGET_OS
-@@ -2457,7 +2457,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -1183,7 +1183,6 @@
+
+ ifndef BUILD_HEADLESS_ONLY
+ LIBSPLASHSCREEN_DIRS := \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
+@@ -1194,6 +1193,13 @@
+ GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
+ endif
+
++ ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++ LIBJPEG_LDFLAGS := -ljpeg
++ else
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/jpeg
++ endif
++
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ LIBSPLASHSCREEN_DIRS +=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+ else
+@@ -1256,11 +1262,13 @@
+ EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
+ LANG := C, \
+ OPTIMIZATION := LOW, \
+- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
+ MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) \
++ $(LIBZ) $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
+ LDFLAGS_SUFFIX_solaris := -lc, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+diff -ruN jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+---
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2013-10-31
19:44:18.000000000 -0400
++++
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2013-11-14
21:55:20.250903340 -0500
@@ -89,7 +89,7 @@
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<Void>() {
@@ -156,9 +176,9 @@ diff --git
a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
return null;
}
});
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+diff -ruN jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+---
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2013-10-31
19:44:18.000000000 -0400
++++
jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2013-11-14
21:55:20.250903340 -0500
@@ -179,7 +179,7 @@
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<Void>() {
@@ -168,9 +188,9 @@ diff --git
a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
return null;
}
});
-diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
---- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+diff -ruN jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2013-10-31
19:44:18.000000000 -0400
++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2013-11-14
21:55:20.251903376 -0500
@@ -56,7 +56,7 @@
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<Void>() {
@@ -180,9 +200,9 @@ diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/c
return null;
}
});
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+diff -ruN jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2013-10-31
19:44:18.000000000 -0400
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2013-11-14
21:55:20.251903376 -0500
@@ -25,7 +25,6 @@
#include "splashscreen_impl.h"
diff --git a/system-libpng.patch b/system-libpng.patch
index 0fceb6b..f7578be 100644
--- a/system-libpng.patch
+++ b/system-libpng.patch
@@ -1,83 +1,115 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -566,6 +566,47 @@
+diff -ruN jdk8/common/autoconf/libraries.m4 jdk8/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4 2013-11-14 20:08:01.845065585 -0500
++++ jdk8/common/autoconf/libraries.m4 2013-11-14 20:10:56.186553066 -0500
+@@ -676,6 +676,47 @@
- ###############################################################################
- #
-+# Check for the png library
-+#
+ ###############################################################################
+ #
++ # Check for the png library
++ #
+
-+AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
-+ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++ AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
++ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
+
-+AC_CHECK_LIB(png, png_sig_cmp,
-+ [ LIBPNG_FOUND=yes ],
-+ [ LIBPNG_FOUND=no ])
++ AC_CHECK_LIB(png, png_sig_cmp,
++ [ LIBPNG_FOUND=yes ],
++ [ LIBPNG_FOUND=no ])
+
-+AC_MSG_CHECKING([for which libpng to use])
++ AC_MSG_CHECKING([for which libpng to use])
+
-+# default is bundled
-+DEFAULT_LIBPNG=bundled
++ # default is bundled
++ DEFAULT_LIBPNG=bundled
+
-+#
-+# if user didn't specify, use DEFAULT_LIBPNG
-+#
-+if test "x${with_libpng}" = "x"; then
-+ with_libpng=${DEFAULT_libpng}
-+fi
++ #
++ # if user didn't specify, use DEFAULT_LIBPNG
++ #
++ if test "x${with_libpng}" = "x"; then
++ with_libpng=${DEFAULT_libpng}
++ fi
+
+
-+if test "x${with_libpng}" = "xbundled"; then
-+ USE_EXTERNAL_LIBPNG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libpng}" = "xsystem"; then
-+ if test "x${LIBPNG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBPNG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
-+fi
-+AC_SUBST(USE_EXTERNAL_LIBPNG)
++ if test "x${with_libpng}" = "xbundled"; then
++ USE_EXTERNAL_LIBPNG=false
++ AC_MSG_RESULT([bundled])
++ elif test "x${with_libpng}" = "xsystem"; then
++ if test "x${LIBPNG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBPNG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
++ fi
++ else
++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
++ fi
++ AC_SUBST(USE_EXTERNAL_LIBPNG)
+
-+###############################################################################
-+#
- # Check for the zlib library
- #
++ ###############################################################################
++ #
+ # Check for the zlib library
+ #
+
+diff -ruN jdk8/common/autoconf/spec.gmk.in jdk8/common/autoconf/spec.gmk.in
+--- jdk8/common/autoconf/spec.gmk.in 2013-10-31 19:24:33.000000000 -0400
++++ jdk8/common/autoconf/spec.gmk.in 2013-11-14 21:10:56.365976518 -0500
+@@ -548,6 +548,7 @@
+ ENABLE_JFR=@ENABLE_JFR@
+ ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
+ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
++USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
+ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
+ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
+ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
+diff -ruN jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk
+--- jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 20:08:01.845065585 -0500
++++ jdk8/jdk/makefiles/lib/Awt2dLibraries.gmk 2013-11-14 20:14:10.791982343 -0500
+@@ -1183,7 +1183,6 @@
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -2386,7 +2386,6 @@
ifndef BUILD_HEADLESS_ONLY
- LIBSPLASHSCREEN_DIRS:=\
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
-- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
- $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+ LIBSPLASHSCREEN_DIRS := \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
+ ifeq ($(USE_EXTERNAL_LIBGIF), true)
+@@ -1200,6 +1199,13 @@
+ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/jpeg
+ endif
- ifeq ($(USE_EXTERNAL_LIBGIF),true)
-@@ -2457,7 +2456,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-@@ -25,7 +25,7 @@
++ ifeq ($(USE_EXTERNAL_LIBPNG), true)
++ LIBPNG_LDFLAGS := -lpng
++ else
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng
++ LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng
++ endif
++
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ LIBSPLASHSCREEN_DIRS +=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+ else
+@@ -1263,12 +1269,12 @@
+ LANG := C, \
+ OPTIMIZATION := LOW, \
+ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
+- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \
+ MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) \
+- $(LIBZ) $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
++ $(LIBZ) $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \
+ LDFLAGS_SUFFIX_solaris := -lc, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+diff -ruN jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2013-10-31
19:44:18.000000000 -0400
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2013-11-14
20:14:41.363892797 -0500
+@@ -25,8 +25,7 @@
#include "splashscreen_impl.h"
-#include "../libpng/png.h"
+-
+#include <png.h>
-
#include <setjmp.h>
+ #define SIG_BYTES 8
commit f2b10f14455a53c964c5ca605b90f223a0915d48
Merge: aad0c99 785cee5
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Oct 30 17:41:02 2013 +0100
Merge remote-tracking branch 'origin/f20'
commit 785cee5d000d4af2426812a18244e7145a3aed60
Merge: d3d6322 eda9cd6
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Oct 30 17:27:34 2013 +0100
Merge remote-tracking branch 'origin/f19' into f20
commit eda9cd6d763b33fc163fcd0e0822283cd6e1aa1e
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Oct 30 17:17:19 2013 +0100
Removed typo caused by lagging system :-/
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f2df364..0ea0674 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,4 +1,4 @@
-r# If debug is 1, OpenJDK is built with all debug info present.
+# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
%global jdk8_version b106
commit 16e7f00745d6f66ed9140f7295533f7bd520b3b4
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Oct 30 17:14:31 2013 +0100
tuning of aarch64 build
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index ea32837..f2df364 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,4 +1,4 @@
-# If debug is 1, OpenJDK is built with all debug info present.
+r# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
%global jdk8_version b106
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.20.%{jdk8_version}%{?dist}
+Release: 0.21.%{jdk8_version}%{?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
@@ -837,6 +837,9 @@ exit 0
%{_jvmdir}/%{jredir}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
+%ifarch %{aarch64}
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
+%endif
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_mandir}/man1/java-%{name}.1*
%{_mandir}/man1/keytool-%{name}.1*
@@ -921,6 +924,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com - 1:1.8.0.0-0.21.b106
+- added jre/lib/security/blacklisted.certs for aarch64
+- updated to preview_rc2 aarch64 tarball
+
* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.20.b106
- Fix paths in tapsets to work on non-x86_64
- Use system libjpeg
diff --git a/sources b/sources
index 8d08960..1f409fd 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-1a073fb6d15514894fe04ab796667c1e aarch64-port-preview_rc2.tar.xz
+daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit ef6467e535c709efbf59d345c33889b9d7f22fb5
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 17:11:19 2013 +0200
updated new sources
commit aad0c99aca062470d1b7c52d52c74c246c010593
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 17:07:33 2013 +0200
Uplaoded new sources
diff --git a/sources b/sources
index 8d08960..1f409fd 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-1a073fb6d15514894fe04ab796667c1e aarch64-port-preview_rc2.tar.xz
+daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit d3d6322cfdc69108518a13832c9d7430240983a5
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 17:06:57 2013 +0200
uploaded new sources
diff --git a/sources b/sources
index 8d08960..1f409fd 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-1a073fb6d15514894fe04ab796667c1e aarch64-port-preview_rc2.tar.xz
+daab71dd66c2057f3e1a6b77d4d94425 aarch64-port-preview_rc2.tar.xz
commit 4b0ca623883d71bf1aae5a3c376a11d5f6cb49d2
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 17:02:46 2013 +0200
Uploaded new sources
commit 85d51fcaf068fedd8f540fddcf903441b343ba0f
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 16:47:43 2013 +0200
Uploaded correct sources
commit bfb56cf9736833ef94d939f4942f9c67c6d0152e
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 16:14:34 2013 +0200
Fixed version cloning for generate_source_tarball_from-repo.sh
diff --git a/generate_source_tarball_from-repo.sh b/generate_source_tarball_from-repo.sh
index dd5f7cb..b6b1d9c 100755
--- a/generate_source_tarball_from-repo.sh
+++ b/generate_source_tarball_from-repo.sh
@@ -35,7 +35,7 @@ do
if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
# aarch64-port does not tag trees
# FIXME make this clone reproducible
- hg clone ${REPO_ROOT}/${subrepo}
+ hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
else
hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
fi
commit 5c3bc17371da75341fae0f2e590e225b0a833e84
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Thu Oct 24 10:44:25 2013 +0200
Adapted system-lcmsAARCH64.patch to new source tarball
diff --git a/system-lcmsAARCH64.patch b/system-lcmsAARCH64.patch
index 17c2c28..697299a 100644
--- a/system-lcmsAARCH64.patch
+++ b/system-lcmsAARCH64.patch
@@ -51,9 +51,9 @@ diff --git a/common/autoconf/libraries.m4
b/common/autoconf/libraries.m4
diff -up ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav
./jdk8/jdk/makefiles/CompileNativeLibraries.gmk
--- ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav 2013-08-13 12:37:05.000000000
-0400
+++ ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk 2013-08-13 14:31:24.000000000 -0400
-@@ -1224,8 +1224,8 @@ BUILD_LIBRARIES += $(BUILD_LIBJSDT)
+@@ -1236,8 +1236,8 @@
+
##########################################################################################
- ifdef OPENJDK
# TODO: Update awt lib path when awt is converted
- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
- LIBRARY:=lcms,\
@@ -62,7 +62,7 @@ diff -up ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav
./jdk8/jdk/makefile
OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
LANG:=C,\
-@@ -1243,18 +1243,18 @@ ifdef OPENJDK
+@@ -1255,18 +1255,18 @@
LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
@@ -79,22 +79,23 @@ diff -up ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav
./jdk8/jdk/makefile
DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
-+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-
+-
- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
++ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
++
+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
- endif
##########################################################################################
+
diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-@@ -157,7 +157,7 @@
- * disposer frameworks
- */
- System.loadLibrary("awt");
-- System.loadLibrary("lcms");
-+ System.loadLibrary("javalcms");
- return null;
- }
- }
+@@ -207,7 +207,7 @@
+ * disposer frameworks
+ */
+ System.loadLibrary("awt");
+- System.loadLibrary("lcms");
++ System.loadLibrary("javalcms");
+ return null;
+ }
+ });
commit 2ec23655d537ba8d4ef8abd1640e6bc735036377
Author: Jiri Vanek work <jvanek(a)judovana.home>
Date: Tue Oct 22 17:39:47 2013 +0200
Added scritp to generate sources from repo
diff --git a/generate_source_tarball_from-repo.sh b/generate_source_tarball_from-repo.sh
new file mode 100755
index 0000000..dd5f7cb
--- /dev/null
+++ b/generate_source_tarball_from-repo.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+set -e
+
+VERSION=$1
+JDK8_URL=http://hg.openjdk.java.net
+
+if test "x${VERSION}" = "x"; then
+ echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
+ exit -1;
+fi
+
+#for REPO_NAME in jdk8 aarch64-port
+for REPO_NAME in aarch64-port
+do
+ mkdir ${REPO_NAME}
+ pushd ${REPO_NAME}
+
+ REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
+
+ if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
+ # aarch64-port does not tag trees
+ # FIXME make this clone reproducible
+ hg clone ${REPO_ROOT} -r ${VERSION}
+ else
+ hg clone ${REPO_ROOT} -r ${VERSION}
+ fi
+ pushd jdk8
+
+# for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
+# it looks like commons have been added as separate repo for jdk8
+# but not yet for aarch64-port
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+ do
+ if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
+ # aarch64-port does not tag trees
+ # FIXME make this clone reproducible
+ hg clone ${REPO_ROOT}/${subrepo}
+ else
+ hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
+ fi
+ done
+ rm -rvf jdk/src/share/native/sun/security/ec/impl || echo ok
+
+ popd
+
+ find jdk8 -type d -name ".hg" -exec rm -rf '{}' \; || echo ok
+ tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
+
+ popd
+done
+
commit 501b0f695dd410a7dcc7e6e07fb3318c0ec4533f
Author: Jiri Vanek work <jvanek(a)judovana.home>
Date: Tue Oct 22 17:38:32 2013 +0200
Updated aarch64 sources
diff --git a/.gitignore b/.gitignore
index 95622b5..ed7492c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@
/jdk8-b89x.tar.xz
/aarch64-port-aarch64-20130813.tar.xz
/jdk8-jdk8-b106.tar.xz
+/aarch64-port-preview_rc2.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b1da59d..ea32837 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -3,7 +3,7 @@
%global jdk8_version b106
%global hg_tag jdk8-%{jdk8_version}
-%global aarch64_hg_tag aarch64-20130813
+%global aarch64_hg_tag preview_rc2
%global aarch64 aarch64 arm64 armv8
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
diff --git a/sources b/sources
index 2636f6f..8d08960 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-100508e1b8fa8653525e0454f29a9fd8 aarch64-port-aarch64-20130813.tar.xz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
+1a073fb6d15514894fe04ab796667c1e aarch64-port-preview_rc2.tar.xz
commit 98cf8149460f6b804858a1ff0cd594912d608c67
Author: Omair Majid <omajid(a)redhat.com>
Date: Sun Oct 6 13:56:28 2013 -0400
Use system libjpeg
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d77ac4d..b1da59d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -435,6 +435,7 @@ bash ../../configure \
--with-debug-level=%{debugbuild} \
--enable-unlimited-crypto \
--with-zlib=system \
+ --with-libjpeg=system \
--with-giflib=system \
--with-libpng=system \
--with-lcms=system \
@@ -922,6 +923,7 @@ exit 0
%changelog
* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.20.b106
- Fix paths in tapsets to work on non-x86_64
+- Use system libjpeg
* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.19.b106
- Fix with_systemtap conditionals
commit 3f612fdffcf8807914a69df7acf5eddca31e1aa7
Author: Omair Majid <omajid(a)redhat.com>
Date: Sun Oct 6 13:46:24 2013 -0400
Fix paths in tapsets to work on x86_64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1bc374a..d77ac4d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.19.%{jdk8_version}%{?dist}
+Release: 0.20.%{jdk8_version}%{?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
@@ -383,8 +383,13 @@ tar xzf %{SOURCE8}
for file in tapset/*.in; do
OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
- sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/amd64/server/libjvm.so:g
$file > $OUTPUT_FILE
- sed -i -e '/@ABS_CLIENT_LIBJVM_SO@/d' $OUTPUT_FILE
+ sed -e
s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g
$file > $file.1
+# TODO find out which architectures other than ix86 have a client vm
+%ifarch %{ix86}
+ sed -e
s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g
$file.1 > $OUTPUT_FILE
+%else
+ sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
+%endif
sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
@@ -915,6 +920,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com - 1:1.8.0.0-0.20.b106
+- Fix paths in tapsets to work on non-x86_64
+
* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.19.b106
- Fix with_systemtap conditionals
commit 0a505a76dc9be96151bd816ecd4f53283867c7c5
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Sep 5 17:56:26 2013 -0400
Fix definition of with_systemtap
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8cef5ca..1bc374a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -59,6 +59,8 @@
%ifarch %{jit_arches}
%global with_systemtap 1
+%else
+%global with_systemtap 0
%endif
# Convert an absolute path to a relative path. Each symbolic link is
commit 0d82563a9c8366849e7ebb3415f6d214515a7a07
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Sep 5 17:11:50 2013 -0400
Fix with_systemtap conditionals
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 31f8431..8cef5ca 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -59,8 +59,6 @@
%ifarch %{jit_arches}
%global with_systemtap 1
-%else
-%global with_systemtap 0
%endif
# Convert an absolute path to a relative path. Each symbolic link is
@@ -107,7 +105,7 @@
%global jvmjardir %{_jvmjardir}/%{name}-%{version}
%endif
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir,
# but currently systemtap doesn't support that, so we have to
@@ -125,7 +123,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.18.%{jdk8_version}%{?dist}
+Release: 0.19.%{jdk8_version}%{?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
@@ -231,7 +229,7 @@ BuildRequires: openssl
%ifnarch %{arm} %{aarch64}
BuildRequires: prelink
%endif
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
@@ -473,7 +471,7 @@ pushd %{buildoutputdir}/images/j2sdk-image
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
# Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
@@ -854,13 +852,13 @@ exit 0
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
%dir %{_jvmdir}/%{sdkdir}/tapset
%endif
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
%{_jvmdir}/%{sdkdir}/tapset/*.stp
%endif
%{_jvmdir}/%{sdklnk}
@@ -896,7 +894,7 @@ exit 0
%{_mandir}/man1/wsgen-%{name}.1*
%{_mandir}/man1/wsimport-%{name}.1*
%{_mandir}/man1/xjc-%{name}.1*
-%ifarch %{with_systemtap}
+%if %{with_systemtap}
%{tapsetroot}
%endif
@@ -915,6 +913,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.19.b106
+- Fix with_systemtap conditionals
+
* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.18.b106
- Update to jdk8-b106
commit f05b6fef2ffc794756d0572855543e3bb7e410f3
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Sep 5 14:19:24 2013 -0400
Update to jdk8-b106
diff --git a/.gitignore b/.gitignore
index 679746e..95622b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@
/aarch64-port-b89x.tar.xz
/jdk8-b89x.tar.xz
/aarch64-port-aarch64-20130813.tar.xz
+/jdk8-jdk8-b106.tar.xz
diff --git a/fix-jvm-cfg.patch b/fix-jvm-cfg.patch
deleted file mode 100644
index d07a44c..0000000
--- a/fix-jvm-cfg.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- openjdk/jdk/makefiles/CopyFiles.gmk.orig 2013-08-06 12:47:30.000000000 -0400
-+++ openjdk/jdk/makefiles/CopyFiles.gmk 2013-08-06 13:19:21.000000000 -0400
-@@ -302,7 +302,7 @@
- # The main problem is deciding whether to use aliases for the VMs that are not
- # present and the current position is that we add aliases for client and server, but
- # not for minimal.
-- # To do: should this also support, -zero and -zeroshark?
-+ # To do: should this also support -zeroshark?
-
- CLIENT_AND_SERVER := $(and $(findstring true,$(JVM_VARIANT_SERVER)),$(findstring
true,$(JVM_VARIANT_CLIENT)))
-
-@@ -335,6 +335,11 @@
- $(PRINTF) "-minimal KNOWN\n">>$(@)
- $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@)
- $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@)
-+ else
-+ ifeq ($(JVM_VARIANT_ZERO),true)
-+ $(PRINTF) "-server KNOWN\n">>$(@)
-+ $(PRINTF) "-client IGNORED\n">>$(@)
-+ endif
- endif
- endif
- endif
-@@ -346,6 +351,8 @@
- $(call install-file)
- endif
-
-+
-+
- COPY_FILES += $(JVMCFG)
-
-
##########################################################################################
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 38bb86b..0811a86 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,51 +1,57 @@
#!/bin/bash
+# Generates the 'source tarball' for JDK 8 projects.
+#
+# Usage: generate_source_tarball.sh repo_name tag
+#
+# Examples:
+# ./generate_source_tarball.sh jdk8 jdk8-b79
+# ./generate_source_tarball.sh aarch64-port aarch64-${DATE}
+#
+# This script creates a single source tarball out of the repository
+# based on the given tag and removes code not allowed in fedora.
+
set -e
-VERSION=$1
+REPO_NAME="$1"
+VERSION="$2"
JDK8_URL=http://hg.openjdk.java.net
-if test "x${VERSION}" = "x"; then
- echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
+if [[ "${REPO_NAME}" = "" ]] ; then
+ echo "No repository specified."
+ exit -1
+fi
+if [[ "${VERSION}" = "" ]]; then
+ echo "No version/tag specified."
exit -1;
fi
-#for REPO_NAME in jdk8 aarch64-port
-for REPO_NAME in aarch64-port
+mkdir "${REPO_NAME}"
+pushd "${REPO_NAME}"
+
+REPO_ROOT="${JDK8_URL}/${REPO_NAME}/jdk8"
+
+wget "${REPO_ROOT}/archive/${VERSION}.tar.gz"
+tar xf "${VERSION}.tar.gz"
+rm "${VERSION}.tar.gz"
+
+mv "jdk8-${VERSION}" jdk8
+pushd jdk8
+
+for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
do
- mkdir ${REPO_NAME}
- pushd ${REPO_NAME}
-
- REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
-
- if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
- # aarch64-port does not tag trees
- # FIXME make this clone reproducible
- hg clone ${REPO_ROOT} -r ${VERSION}
- else
- hg clone ${REPO_ROOT} -r ${VERSION}
- fi
- pushd jdk8
-
-# for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
-# it looks like commons have been added as separate repo for jdk8
-# but not yet for aarch64-port
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
- do
- if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
- # aarch64-port does not tag trees
- # FIXME make this clone reproducible
- hg clone ${REPO_ROOT}/${subrepo}
- else
- hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
- fi
- done
- rm -rvf jdk/src/share/native/sun/security/ec/impl || echo ok
-
- popd
-
- find jdk8 -type d -name ".hg" -exec rm -rf '{}' \; || echo ok
- tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
-
- popd
+ wget "${REPO_ROOT}/${subrepo}/archive/${VERSION}.tar.gz"
+ tar xf "${VERSION}.tar.gz"
+ rm "${VERSION}.tar.gz"
+ mv "${subrepo}-${VERSION}" "${subrepo}"
done
+
+rm -vr jdk/src/share/native/sun/security/ec/impl
+
+popd
+
+tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
+
+popd
+
+mv "${REPO_NAME}/${REPO_NAME}-${VERSION}.tar.xz" .
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1d9bd5e..31f8431 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b89x
+%global jdk8_version b106
%global hg_tag jdk8-%{jdk8_version}
%global aarch64_hg_tag aarch64-20130813
@@ -125,7 +125,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.17.%{jdk8_version}%{?dist}
+Release: 0.18.%{jdk8_version}%{?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
@@ -142,11 +142,10 @@ Group: Development/Languages
License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and
LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
URL:
http://openjdk.java.net/
-# Source from upstrem OpenJDK8 project. Use
-# './generate_source_tarball.sh %{hg_tag|aarch64_hg_tag}' to generate.
-# The script clones repositories of jdk8 and aarch64-port and removes
-# code not allowed in Fedora.
-Source0: jdk8-%{jdk8_version}.tar.xz
+# Source from upstrem OpenJDK8 project. To regenerate, use
+# ./generate_source_tarball.sh jdk8 %{hg_tag}
+# ./generate_source_tarball.sh aarch64-port %{aarch64_hg_tag}
+Source0: jdk8-%{hg_tag}.tar.xz
Source1: aarch64-port-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
@@ -195,8 +194,6 @@ Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
-Patch301: fix-jvm-cfg.patch
-
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -378,14 +375,6 @@ sh %{SOURCE12}
%patch103
%endif
-%ifnarch %{aarch64}
-
-pushd jdk8
-%patch301 -p1
-popd
-
-%endif
-
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -926,6 +915,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.18.b106
+- Update to jdk8-b106
+
* Tue Aug 13 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.17.b89x
- Updated aarch64 to latest head
- Dropped upstreamed patches
diff --git a/sources b/sources
index 02bcff5..2636f6f 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-ba47bbce1edaf42bda8dc4557962babc jdk8-b89x.tar.xz
100508e1b8fa8653525e0454f29a9fd8 aarch64-port-aarch64-20130813.tar.xz
+e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
+f9b9b585a6dcd059dfe53f5e762dcccd jdk8-jdk8-b106.tar.xz
+94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
commit e17b405c540c4edbe34168d278cf9ba053d6f210
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Sep 4 18:50:05 2013 -0400
Remove unused variables
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2744e66..1d9bd5e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -11,59 +11,41 @@
%ifarch x86_64
-%global archbuild amd64
%global archinstall amd64
%endif
%ifarch ppc
-%global archbuild ppc
%global archinstall ppc
-%global archdef PPC
%endif
%ifarch %{power64}
-%global archbuild ppc64
%global archinstall ppc64
-%global archdef PPC
%endif
%ifarch %{ix86}
-%global archbuild i586
%global archinstall i386
%endif
%ifarch ia64
-%global archbuild ia64
%global archinstall ia64
%endif
%ifarch s390
-%global archbuild s390
%global archinstall s390
-%global archdef S390
%endif
%ifarch s390x
-%global archbuild s390x
%global archinstall s390x
-%global archdef S390
%endif
%ifarch %{arm}
-%global archbuild arm
%global archinstall arm
-%global archdef ARM
%endif
%ifarch %{aarch64}
-%global archbuild aarch64
%global archinstall aarch64
-%global archdef AARCH64
%endif
# 32 bit sparc, optimized for v9
%ifarch sparcv9
-%global archbuild sparc
%global archinstall sparc
%endif
# 64 bit sparc
%ifarch sparc64
-%global archbuild sparcv9
%global archinstall sparcv9
%endif
%ifnarch %{jit_arches}
-%global archbuild %{_arch}
%global archinstall %{_arch}
%endif
commit dd1af83bd911ffd754db9f75214f0056701d9e42
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Aug 29 22:11:50 2013 -0400
Use %{with_systemtap} instead of %{jit_arches}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8029308..2744e66 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -125,7 +125,7 @@
%global jvmjardir %{_jvmjardir}/%{name}-%{version}
%endif
-%ifarch %{jit_arches}
+%ifarch %{with_systemtap}
# Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir,
# but currently systemtap doesn't support that, so we have to
@@ -252,8 +252,7 @@ BuildRequires: openssl
%ifnarch %{arm} %{aarch64}
BuildRequires: prelink
%endif
-%ifarch %{jit_arches}
-#systemtap build requirement.
+%ifarch %{with_systemtap}
BuildRequires: systemtap-sdt-devel
%endif
@@ -503,7 +502,7 @@ pushd %{buildoutputdir}/images/j2sdk-image
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
-%ifarch %{jit_arches}
+%ifarch %{with_systemtap}
# Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
@@ -884,13 +883,13 @@ exit 0
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
-%ifarch %{jit_arches}
+%ifarch %{with_systemtap}
%dir %{_jvmdir}/%{sdkdir}/tapset
%endif
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
-%ifarch %{jit_arches}
+%ifarch %{with_systemtap}
%{_jvmdir}/%{sdkdir}/tapset/*.stp
%endif
%{_jvmdir}/%{sdklnk}
@@ -926,7 +925,7 @@ exit 0
%{_mandir}/man1/wsgen-%{name}.1*
%{_mandir}/man1/wsimport-%{name}.1*
%{_mandir}/man1/xjc-%{name}.1*
-%ifarch %{jit_arches}
+%ifarch %{with_systemtap}
%{tapsetroot}
%endif
commit 7df9b6632cecad661d9006f8a99994f5eca2e128
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Aug 29 22:00:30 2013 -0400
Drop wget from BuildRequires
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 112c495..8029308 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -235,7 +235,6 @@ BuildRequires: libXinerama-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
BuildRequires: pkgconfig
-BuildRequires: wget
BuildRequires: xorg-x11-proto-devel
#BuildRequires: redhat-lsb
BuildRequires: zip
commit 08f77c93b0d0c3e841ca74871239cbdd5257049e
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Aug 28 17:22:06 2013 -0400
Remove dropped patches
diff --git a/73799ba02d7f.patch b/73799ba02d7f.patch
deleted file mode 100644
index 42741fb..0000000
--- a/73799ba02d7f.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-# HG changeset patch
-# User omajid
-# Date 1375731499 14400
-# Mon Aug 05 15:38:19 2013 -0400
-# Node ID 73799ba02d7f778dac525f812faec98558e7db46
-# Parent e0ca97a8cb360c6c6a9c0de687494360835abd94
-Backout 6e01a92ab2e4
-
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- openjdk/jdk/makefiles/CompileNativeLibraries.gmk
-+++ openjdk/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -257,7 +257,7 @@
- -D "JDK_FTYPE=0x2L",\
- REORDER:=$(LIBJAVA_REORDER), \
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJAVA)
-
-@@ -308,7 +308,7 @@
- -D "JDK_INTERNAL_NAME=mlib_image" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
-
-@@ -739,7 +739,7 @@
- -D "JDK_INTERNAL_NAME=awt" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
-
-@@ -956,7 +956,7 @@
- -D "JDK_INTERNAL_NAME=zip" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
-
-@@ -986,7 +986,7 @@
- -D "JDK_FNAME=unpack.dll" \
- -D "JDK_INTERNAL_NAME=unpack" \
- -D "JDK_FTYPE=0x2L",\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
-
-@@ -1100,7 +1100,7 @@
- -D "JDK_INTERNAL_NAME=dt_shmem" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
-
-@@ -1134,7 +1134,7 @@
- -D "JDK_INTERNAL_NAME=jdwp" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
-
-@@ -1175,7 +1175,7 @@
- -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
-
-@@ -1241,7 +1241,7 @@
- -D "JDK_INTERNAL_NAME=libjavalcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-
-@@ -1302,7 +1302,7 @@
- -D "JDK_FTYPE=0x2L",\
- REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-
-@@ -1379,7 +1379,7 @@
- -D "JDK_INTERNAL_NAME=fontmanager" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
-
-@@ -1436,7 +1436,7 @@
- -D "JDK_INTERNAL_NAME=t2k" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- # t2k is linked against fontmanager
- $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
-@@ -1474,7 +1474,7 @@
- -D "JDK_INTERNAL_NAME=jawt" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
-
-@@ -1830,7 +1830,7 @@
- -D "JDK_INTERNAL_NAME=net" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
-
-@@ -1967,7 +1967,7 @@
- -D "JDK_INTERNAL_NAME=nio" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBNIO)
-
-@@ -2128,7 +2128,7 @@
- -D "JDK_INTERNAL_NAME=jli" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJLI)
-
-@@ -2194,7 +2194,7 @@
- -D "JDK_INTERNAL_NAME=jfr" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJFR)
-
-@@ -2246,7 +2246,7 @@
- -D "JDK_INTERNAL_NAME=kcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
-
-@@ -2464,7 +2464,7 @@
- -D "JDK_INTERNAL_NAME=splashscreen" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
-
-@@ -2506,7 +2506,7 @@
- -D "JDK_INTERNAL_NAME=dcpr" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
-
-@@ -2540,7 +2540,7 @@
- -D "JDK_INTERNAL_NAME=j2pcsc" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
-
-@@ -2603,7 +2603,7 @@
- -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBKRB5)
- endif
-@@ -2629,7 +2629,7 @@
- -D "JDK_INTERNAL_NAME=sunmscapi" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
- endif
-@@ -2661,7 +2661,7 @@
- -D "JDK_INTERNAL_NAME=j2pkcs11" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
-
-@@ -2707,7 +2707,7 @@
- -D "JDK_INTERNAL_NAME=sunec" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
- endif
-@@ -2855,7 +2855,7 @@
- -D "JDK_INTERNAL_NAME=jsound" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
-
-@@ -2923,7 +2923,7 @@
- -D "JDK_INTERNAL_NAME=jsoundds" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
-- DEBUG_SYMBOLS:=true))
-+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
- $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
-
diff --git a/8011366-jdk.patch b/8011366-jdk.patch
deleted file mode 100644
index f3647f0..0000000
--- a/8011366-jdk.patch
+++ /dev/null
@@ -1,470 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1367683497 -3600
-# Sat May 04 17:04:57 2013 +0100
-# Node ID 88125d32eb06dd38c4ca3752c7e8143e477df58e
-# Parent 8dbb4b159e04de3c447c9242c70505e71f8624c7
-8011366: Enable debug info on all libraries for OpenJDK builds
-Summary: The build should not be turning off debugging if it has been requested.
-Reviewed-by: erikj, dholmes
-
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- openjdk/jdk/makefiles/CompileNativeLibraries.gmk
-+++ openjdk/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -63,7 +63,12 @@
- # Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
- # not on other platforms.
- ifeq ($(OPENJDK_TARGET_OS), windows)
-- WINDOWS_ONLY := true
-+ DEBUG_ALL_BINARIES := true
-+endif
-+
-+# Build everything with debugging on OpenJDK
-+ifdef OPENJDK
-+ DEBUG_ALL_BINARIES := true
- endif
-
- #
-@@ -91,7 +96,8 @@
- -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
- CFLAGS_windows_debug:=-DLOGGING,\
- ARFLAGS:=$(ARFLAGS),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- else
-
-@@ -105,7 +111,8 @@
- CFLAGS:=$(CFLAGS_JDKLIB) \
- -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
- LDFLAGS:=-nostdlib -r -arch x86_64,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBFDLIBM :=
$(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
- $(BUILD_LIBFDLIBM) : $(BUILD_LIBFDLIBM_MAC)
-@@ -257,7 +264,7 @@
- -D "JDK_FTYPE=0x2L",\
- REORDER:=$(LIBJAVA_REORDER), \
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJAVA)
-
-@@ -308,7 +315,7 @@
- -D "JDK_INTERNAL_NAME=mlib_image" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
-
-@@ -431,7 +438,8 @@
- $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_SUFFIX_solaris:=-lc,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
-
-@@ -739,7 +747,7 @@
- -D "JDK_INTERNAL_NAME=awt" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
-
-@@ -895,7 +903,8 @@
- -D "JDK_FNAME=xawt.dll" \
- -D "JDK_INTERNAL_NAME=xawt" \
- -D "JDK_FTYPE=0x2L",\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBAWT_XAWT) : $(BUILD_LIBJAVA)
-
-@@ -956,7 +965,7 @@
- -D "JDK_INTERNAL_NAME=zip" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
-
-@@ -986,7 +995,7 @@
- -D "JDK_FNAME=unpack.dll" \
- -D "JDK_INTERNAL_NAME=unpack" \
- -D "JDK_FTYPE=0x2L",\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
-
-@@ -1100,7 +1109,7 @@
- -D "JDK_INTERNAL_NAME=dt_shmem" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
-
-@@ -1134,7 +1143,7 @@
- -D "JDK_INTERNAL_NAME=jdwp" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
-
-@@ -1175,7 +1184,7 @@
- -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
-
-@@ -1240,7 +1249,7 @@
- -D "JDK_INTERNAL_NAME=libjavalcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-
-@@ -1300,7 +1309,7 @@
- -D "JDK_FTYPE=0x2L",\
- REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-
-@@ -1377,7 +1386,7 @@
- -D "JDK_INTERNAL_NAME=fontmanager" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
-
-@@ -1434,7 +1443,7 @@
- -D "JDK_INTERNAL_NAME=t2k" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- # t2k is linked against fontmanager
- $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
-@@ -1472,7 +1481,7 @@
- -D "JDK_INTERNAL_NAME=jawt" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
-
-@@ -1521,7 +1530,8 @@
- LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
- LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
- -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- ifndef BUILD_HEADLESS_ONLY
- $(BUILD_LIBJAWT) : $(BUILD_LIBAWT_XAWT)
-@@ -1828,7 +1838,7 @@
- -D "JDK_INTERNAL_NAME=net" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
-
-@@ -1965,7 +1975,7 @@
- -D "JDK_INTERNAL_NAME=nio" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBNIO)
-
-@@ -2002,7 +2012,8 @@
- LDFLAGS_SUFFIX_posix:=-lnio -lnet,\
- LDFLAGS_SUFFIX_solaris:=-lsocket -ljava -ljvm -lc,\
- LDFLAGS_SUFFIX_macosx:=-ljava -ljvm,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSCTP)
-
-@@ -2126,7 +2137,7 @@
- -D "JDK_INTERNAL_NAME=jli" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJLI)
-
-@@ -2143,7 +2154,8 @@
- OPTIMIZATION:=HIGH, \
- CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
- ARFLAGS:=$(ARFLAGS),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
-
-@@ -2161,7 +2173,8 @@
- OPTIMIZATION:=HIGH, \
- CFLAGS:=$(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS),\
- LDFLAGS:=-nostdlib -r,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
- $(call install-file)
-@@ -2192,7 +2205,7 @@
- -D "JDK_INTERNAL_NAME=jfr" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJFR)
-
-@@ -2244,7 +2257,7 @@
- -D "JDK_INTERNAL_NAME=kcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
-
-@@ -2279,7 +2292,8 @@
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_SUFFIX:=-L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR)
-R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
-
-@@ -2369,7 +2383,8 @@
- LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
- LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
- LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT)
-
-@@ -2462,7 +2477,7 @@
- -D "JDK_INTERNAL_NAME=splashscreen" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
-
-@@ -2504,7 +2519,7 @@
- -D "JDK_INTERNAL_NAME=dcpr" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
-
-@@ -2538,7 +2553,7 @@
- -D "JDK_INTERNAL_NAME=j2pcsc" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
-
-@@ -2561,7 +2576,8 @@
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_SUFFIX:=$(LIBDL),\
- LDFLAGS_SUFFIX_solaris:=-lc,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJ2GSS)
- endif
-@@ -2601,7 +2617,7 @@
- -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBKRB5)
- endif
-@@ -2627,7 +2643,7 @@
- -D "JDK_INTERNAL_NAME=sunmscapi" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
- endif
-@@ -2659,7 +2675,7 @@
- -D "JDK_INTERNAL_NAME=j2pkcs11" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
-
-@@ -2705,7 +2721,7 @@
- -D "JDK_INTERNAL_NAME=sunec" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
- endif
-@@ -2849,7 +2865,7 @@
- -D "JDK_INTERNAL_NAME=jsound" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
-
-@@ -2884,7 +2900,8 @@
- LDFLAGS:=$(LDFLAGS_JDKLIB)\
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_SUFFIX:=-lasound -ljava -ljvm,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJSOUNDALSA) : $(BUILD_LIBJAVA)
-
-@@ -2917,7 +2934,7 @@
- -D "JDK_INTERNAL_NAME=jsoundds" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
-- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
-
-@@ -2942,7 +2959,8 @@
- LDFLAGS:=$(LDFLAGS_JDKLIB),\
- LDFLAGS_SUFFIX:=$(LIBDL),\
- LDFLAGS_SUFFIX_solaris:=-lc,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBJ2UCRYPTO) : $(BUILD_LIBJAVA)
-
-@@ -2972,7 +2990,8 @@
- -F/System/Library/Frameworks/JavaVM.framework/Frameworks
\
- -framework JavaNativeFoundation \
- $(LDFLAGS_JDKLIB_SUFFIX),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(BUILD_LIBAPPLESCRIPTENGINE) : $(BUILD_LIBJAVA)
-
-@@ -3011,7 +3030,8 @@
- -framework OpenGL \
- -framework IOSurface \
- -framework QuartzCore, \
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
-
-@@ -3051,7 +3071,8 @@
- -framework Security \
- -framework SystemConfiguration \
- $(LDFLAGS_JDKLIB_SUFFIX), \
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBOSX)
-
-@@ -3184,7 +3205,8 @@
- -framework JavaRuntimeSupport \
- -framework OpenGL \
- -framework QuartzCore -ljava,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
-
-@@ -3224,7 +3246,8 @@
- -framework JavaNativeFoundation \
- -framework JavaRuntimeSupport \
- -ljava -ljvm,\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
-
-@@ -3264,7 +3287,8 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation \
- -lffi, \
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
- LIBRARY:=JObjC,\
-@@ -3288,7 +3312,8 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation \
- -lffi, \
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64))
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
-+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
- $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX):
$(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
- $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
diff --git a/8015087-jdk.patch b/8015087-jdk.patch
deleted file mode 100644
index 8bdef7b..0000000
--- a/8015087-jdk.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1369226882 -3600
-# Wed May 22 13:48:02 2013 +0100
-# Node ID f559fadbf49130bcb703fa7af38070a74887a6f5
-# Parent b61632814be29cb9cf7fb5fe817a6e45c5729835
-8015087: Provide debugging information for programs
-Summary: Add missing debug info to unpack200 and jexec
-Reviewed-by: erikj
-
-diff --git a/makefiles/CompileLaunchers.gmk b/makefiles/CompileLaunchers.gmk
---- openjdk/jdk/makefiles/CompileLaunchers.gmk
-+++ openjdk/jdk/makefiles/CompileLaunchers.gmk
-@@ -472,6 +472,7 @@
- -D "JDK_FNAME=unpack200.exe" \
- -D "JDK_INTERNAL_NAME=unpack200" \
- -D "JDK_FTYPE=0x1L",\
-+ DEBUG_SYMBOLS:=true,\
- MANIFEST:=$(JDK_TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest))
-
- ifeq ($(OPENJDK_TARGET_OS),windows)
-@@ -555,6 +556,7 @@
- $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/jexec_obj,\
- OUTPUT_DIR:=$(BUILD_JEXEC_DST_DIR),\
-+ DEBUG_SYMBOLS:=true,\
- PROGRAM:=jexec))
-
- BUILD_LAUNCHERS += $(BUILD_JEXEC)
diff --git a/8015087-root.patch b/8015087-root.patch
deleted file mode 100644
index f2fb8b4..0000000
--- a/8015087-root.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1369226952 -3600
-# Wed May 22 13:49:12 2013 +0100
-# Node ID cb51fb4789ac0b8be4056482077ddfb8f3bd3805
-# Parent e83abb0a04ab6ad0ea32e0fcdb2d1e74df858687
-8015087: Provide debugging information for programs
-Summary: Enable debugging info on programs in OpenJDK builds
-Reviewed-by: erikj
-
-diff --git a/common/makefiles/NativeCompilation.gmk
b/common/makefiles/NativeCompilation.gmk
---- openjdk/common/makefiles/NativeCompilation.gmk
-+++ openjdk/common/makefiles/NativeCompilation.gmk
-@@ -321,11 +321,17 @@
-
- ifneq (,$$($1_DEBUG_SYMBOLS))
- ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
-- # Programs don't get the debug symbols added in the old build. It's
not clear if
-- # this is intentional.
-- ifeq ($$($1_PROGRAM),)
-+ ifdef OPENJDK
-+ # Always add debug symbols
- $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
- $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
-+ else
-+ # Programs don't get the debug symbols added in the old build.
It's not clear if
-+ # this is intentional.
-+ ifeq ($$($1_PROGRAM),)
-+ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
-+ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
-+ endif
- endif
- endif
- endif
commit c92f8ee4542cab7b3011a9306f9705fd9fecb3fe
Author: Deepak Bhole <dbhole(a)redhat.com>
Date: Tue Aug 13 15:25:49 2013 -0400
Updated aarch64 to latest head
Dropped upstreamed patches
Updated generate_source_tarball.sh to use tagged aarch64 code
diff --git a/.gitignore b/.gitignore
index bb7eb40..679746e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/aarch64-port-b89.tar.xz
/aarch64-port-b89x.tar.xz
/jdk8-b89x.tar.xz
+/aarch64-port-aarch64-20130813.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index a9c70bd..38bb86b 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -21,7 +21,7 @@ do
if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
# aarch64-port does not tag trees
# FIXME make this clone reproducible
- hg clone ${REPO_ROOT}
+ hg clone ${REPO_ROOT} -r ${VERSION}
else
hg clone ${REPO_ROOT} -r ${VERSION}
fi
@@ -45,7 +45,7 @@ do
popd
find jdk8 -type d -name ".hg" -exec rm -rf '{}' \; || echo ok
- tar cJf ${REPO_NAME}-b${VERSION}.tar.xz jdk8
+ tar cJf ${REPO_NAME}-${VERSION}.tar.xz jdk8
popd
done
diff --git a/java-1.8.0-openjdk-arm64-missing-includes.patch
b/java-1.8.0-openjdk-arm64-missing-includes.patch
deleted file mode 100644
index e65184f..0000000
--- a/java-1.8.0-openjdk-arm64-missing-includes.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-# HG changeset patch
-# User aph
-# Date 1375434503 -3600
-# Node ID d9d274bdde7a71eb642ce320e7557d70eea7cee9
-# Parent c1cd345fa3810a1d0e58cec9b31419025fb44ae0
-Add a couple of missing #includes.
-
-diff -r c1cd345fa381 -r d9d274bdde7a src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
---- a/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Mon Jul 29 18:31:19 2013 +0100
-+++ b/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Fri Aug 02 10:08:23 2013 +0100
-@@ -26,10 +26,11 @@
-
- #include "precompiled.hpp"
- #include "asm/assembler.hpp"
-+#include "c1/c1_CodeStubs.hpp"
- #include "c1/c1_Defs.hpp"
- #include "c1/c1_MacroAssembler.hpp"
- #include "c1/c1_Runtime1.hpp"
--#include "c1/c1_CodeStubs.hpp"
-+#include "compiler/disassembler.hpp"
- #include "interpreter/interpreter.hpp"
- #include "nativeInst_aarch64.hpp"
- #include "oops/compiledICHolder.hpp"
-@@ -38,6 +39,7 @@
- #include "register_aarch64.hpp"
- #include "runtime/sharedRuntime.hpp"
- #include "runtime/signature.hpp"
-+#include "runtime/vframe.hpp"
- #include "runtime/vframeArray.hpp"
- #include "vmreg_aarch64.inline.hpp"
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f979e1f..112c495 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -3,6 +3,7 @@
%global jdk8_version b89x
%global hg_tag jdk8-%{jdk8_version}
+%global aarch64_hg_tag aarch64-20130813
%global aarch64 aarch64 arm64 armv8
%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
@@ -142,7 +143,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.16.%{jdk8_version}%{?dist}
+Release: 0.17.%{jdk8_version}%{?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
@@ -159,11 +160,12 @@ Group: Development/Languages
License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and
LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
URL:
http://openjdk.java.net/
-# Source from upstrem OpenJDK8 project. Use
-# './generate_source_tarball.sh %{hg_tag}' to generate. The script clones
-# repositories of jdk8 and aarch64-port and removes code not allowed in Fedora.
+# Source from upstrem OpenJDK8 project. Use
+# './generate_source_tarball.sh %{hg_tag|aarch64_hg_tag}' to generate.
+# The script clones repositories of jdk8 and aarch64-port and removes
+# code not allowed in Fedora.
Source0: jdk8-%{jdk8_version}.tar.xz
-Source1: aarch64-port-%{jdk8_version}.tar.xz
+Source1: aarch64-port-%{aarch64_hg_tag}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -207,25 +209,11 @@ Patch102: %{name}-size_t.patch
Patch103: %{name}-ppc-zero-hotspot.patch
Patch201: system-libjpeg.patch
-Patch2011: system-libjpegAARCH64.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
-Patch301: removeMswitchesFromx11.patch
-Patch302: %{name}-arm64-missing-includes.patch
-Patch310: fix-jvm-cfg.patch
-
-# To apply 8011366-jdk.patch below, aarch64-port-custom changes need to be rolled back
-Patch303: 73799ba02d7f.patch
-# These patches are already upstream but not included in the port yet
-#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/f559fadbf491
-Patch304: 8015087-jdk.patch
-#
http://hg.openjdk.java.net/jdk8/build/rev/cb51fb4789ac
-Patch305: 8015087-root.patch
-#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/88125d32eb06
-Patch306: 8011366-jdk.patch
-
+Patch301: fix-jvm-cfg.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -386,12 +374,7 @@ cp %{SOURCE101} jdk8/common/autoconf/build-aux/
sh %{SOURCE12}
-%ifarch %{aarch64}
-%patch2011
-%else
%patch201
-%endif
-
%patch202
%ifarch %{aarch64}
@@ -415,24 +398,10 @@ sh %{SOURCE12}
%patch103
%endif
-%ifarch %{aarch64}
-%patch301
-
-pushd jdk8/hotspot >& /dev/null
-%patch302 -p1
-popd >& /dev/null
+%ifnarch %{aarch64}
pushd jdk8
-%patch303 -p1
-%patch304 -p1
-%patch305 -p1
-%patch306 -p1
-popd
-
-%else
-
-pushd jdk8
-%patch310 -p1
+%patch301 -p1
popd
%endif
@@ -977,6 +946,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Aug 13 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.17.b89x
+- Updated aarch64 to latest head
+- Dropped upstreamed patches
+
* Wed Aug 07 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
- The zero fix only applies on b89 tarball
diff --git a/removeMswitchesFromx11.patch b/removeMswitchesFromx11.patch
deleted file mode 100644
index 7f3bcb7..0000000
--- a/removeMswitchesFromx11.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -r b28c6241e16e -r 3c777c472368 makefiles/GensrcX11Wrappers.gmk
---- jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Tue Jul 09 16:04:18 2013 +0100
-+++ jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Thu Jul 25 11:32:02 2013 +0100
-@@ -89,7 +89,7 @@
- # Compile the C code into an executable.
- $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
- $(MKDIR) -p $(@D)
-- (cd $(@D) && $(CC) -m$* -o $@ $< \
-+ (cd $(@D) && $(CC) -o $@ $< \
- $(X_CFLAGS) \
- $(X_LIBS) \
- -I$(JDK_OUTPUTDIR)/include \
diff --git a/sources b/sources
index 2d439d4..02bcff5 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
ba47bbce1edaf42bda8dc4557962babc jdk8-b89x.tar.xz
-475e23a72041086c23b541d5563e28fe aarch64-port-b89x.tar.xz
+100508e1b8fa8653525e0454f29a9fd8 aarch64-port-aarch64-20130813.tar.xz
diff --git a/system-lcmsAARCH64.patch b/system-lcmsAARCH64.patch
index f0b6057..17c2c28 100644
--- a/system-lcmsAARCH64.patch
+++ b/system-lcmsAARCH64.patch
@@ -48,10 +48,10 @@ diff --git a/common/autoconf/libraries.m4
b/common/autoconf/libraries.m4
# Check for the zlib library
#
-diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1215,8 +1215,8 @@
+diff -up ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav
./jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+--- ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk.sav 2013-08-13 12:37:05.000000000
-0400
++++ ./jdk8/jdk/makefiles/CompileNativeLibraries.gmk 2013-08-13 14:31:24.000000000 -0400
+@@ -1224,8 +1224,8 @@ BUILD_LIBRARIES += $(BUILD_LIBJSDT)
ifdef OPENJDK
# TODO: Update awt lib path when awt is converted
@@ -62,7 +62,7 @@ diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/Comp
OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
LANG:=C,\
-@@ -1234,18 +1234,18 @@
+@@ -1243,18 +1243,18 @@ ifdef OPENJDK
LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
@@ -73,16 +73,15 @@ diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/Comp
- -D "JDK_FNAME=lcms.dll" \
- -D "JDK_INTERNAL_NAME=lcms" \
+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=libjavalcms" \
++ -D "JDK_INTERNAL_NAME=javalcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=true))
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
--
-- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-+
+
+- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
endif
diff --git a/system-libjpegAARCH64.patch b/system-libjpegAARCH64.patch
deleted file mode 100644
index 63bd56c..0000000
--- a/system-libjpegAARCH64.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -487,11 +487,40 @@
- # Check for the jpeg library
- #
-
--USE_EXTERNAL_LIBJPEG=true
--AC_CHECK_LIB(jpeg, main, [],
-- [ USE_EXTERNAL_LIBJPEG=false
-- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
-- ])
-+AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
-+ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
-+ [ LIBJPEG_FOUND=yes ],
-+ [ LIBJPEG_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which libjpeg to use])
-+
-+# default is bundled
-+DEFAULT_LIBJPEG=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_LIBJPEG
-+#
-+if test "x${with_libjpeg}" = "x"; then
-+ with_libjpeg=${DEFAULT_LIBJPEG}
-+fi
-+
-+if test "x${with_libjpeg}" = "xbundled"; then
-+ USE_EXTERNAL_LIBJPEG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libjpeg}" = "xsystem"; then
-+ if test "x${LIBJPEG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBJPEG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
-+fi
-+
- AC_SUBST(USE_EXTERNAL_LIBJPEG)
-
- ###############################################################################
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1249,17 +1249,17 @@
-
##########################################################################################
-
- ifdef OPENJDK
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
-+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
- else
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
-+
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-+
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
- endif
-
--BUILD_LIBJPEG_REORDER:=
-+BUILD_LIBJAVAJPEG_REORDER:=
- ifeq ($(OPENJDK_TARGET_OS), solaris)
- ifneq ($(OPENJDK_TARGET_CPU), x86_64)
--
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
-+
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
- endif
- endif
-
-@@ -1274,37 +1274,37 @@
- # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
- # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
- # ifeq ($(CC_43_OR_NEWER),1)
--# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
-+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
- # endif
- #endif
-
--$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
-- LIBRARY:=jpeg, \
-+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
-+ LIBRARY:=javajpeg, \
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
-- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
-+ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
- LANG:=C,\
- OPTIMIZATION:=HIGHEST, \
- CFLAGS:=$(CFLAGS_JDKLIB) \
-- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
-+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
-- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
-- LDFLAGS:=$(LDFLAGS_JDKLIB) \
-+ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
-+ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
- LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=jpeg.dll" \
-- -D "JDK_INTERNAL_NAME=jpeg" \
-+ -D "JDK_FNAME=javajpeg.dll" \
-+ -D "JDK_INTERNAL_NAME=javajpeg" \
- -D "JDK_FTYPE=0x2L",\
-- REORDER:=$(BUILD_LIBJPEG_REORDER),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
-+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=true))
-
--$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
--
--BUILD_LIBRARIES += $(BUILD_LIBJPEG)
-+$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-+
-+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
-
-
##########################################################################################
-
-@@ -2441,7 +2441,7 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation
- else ifneq ($(OPENJDK_TARGET_OS), windows)
-- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
-+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
- else # OPENJDK_TARGET_OS
- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
- endif # OPENJDK_TARGET_OS
-@@ -2457,7 +2457,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-@@ -89,7 +89,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-@@ -179,7 +179,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
---- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-@@ -56,7 +56,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-@@ -25,7 +25,6 @@
-
- #include "splashscreen_impl.h"
-
--#include "jinclude.h"
- #include "jpeglib.h"
- #include "jerror.h"
-
-@@ -107,11 +106,11 @@
- if (cinfo->src == NULL) { /* first time for this JPEG object? */
- cinfo->src = (struct jpeg_source_mgr *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
-+ JPOOL_PERMANENT, sizeof(stream_source_mgr));
- src = (stream_src_ptr) cinfo->src;
- src->buffer = (JOCTET *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
-+ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
- }
-
- src = (stream_src_ptr) cinfo->src;
commit 2d787f6b9c45c3320e91aa35ef8a772a11337a60
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Aug 7 10:11:20 2013 -0400
Make zero jvm.cfg changes conditional on b89 tarball
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8532306..f979e1f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -400,9 +400,6 @@ sh %{SOURCE12}
%patch203
%endif
-pushd jdk8
-%patch310 -p1
-popd
%patch1
@@ -432,6 +429,12 @@ pushd jdk8
%patch306 -p1
popd
+%else
+
+pushd jdk8
+%patch310 -p1
+popd
+
%endif
# Extract systemtap tapsets
@@ -974,6 +977,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Wed Aug 07 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- The zero fix only applies on b89 tarball
+
* Tue Aug 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
- Add patch to fix zero on 32-bit build
commit 5a7106153327c0702c2ad2b82a93bb4754e8584e
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Aug 7 00:22:24 2013 -0400
Create jvm.cfg for zero on 32-bit architectures
diff --git a/fix-jvm-cfg.patch b/fix-jvm-cfg.patch
new file mode 100644
index 0000000..d07a44c
--- /dev/null
+++ b/fix-jvm-cfg.patch
@@ -0,0 +1,32 @@
+--- openjdk/jdk/makefiles/CopyFiles.gmk.orig 2013-08-06 12:47:30.000000000 -0400
++++ openjdk/jdk/makefiles/CopyFiles.gmk 2013-08-06 13:19:21.000000000 -0400
+@@ -302,7 +302,7 @@
+ # The main problem is deciding whether to use aliases for the VMs that are not
+ # present and the current position is that we add aliases for client and server, but
+ # not for minimal.
+- # To do: should this also support, -zero and -zeroshark?
++ # To do: should this also support -zeroshark?
+
+ CLIENT_AND_SERVER := $(and $(findstring true,$(JVM_VARIANT_SERVER)),$(findstring
true,$(JVM_VARIANT_CLIENT)))
+
+@@ -335,6 +335,11 @@
+ $(PRINTF) "-minimal KNOWN\n">>$(@)
+ $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@)
+ $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@)
++ else
++ ifeq ($(JVM_VARIANT_ZERO),true)
++ $(PRINTF) "-server KNOWN\n">>$(@)
++ $(PRINTF) "-client IGNORED\n">>$(@)
++ endif
+ endif
+ endif
+ endif
+@@ -346,6 +351,8 @@
+ $(call install-file)
+ endif
+
++
++
+ COPY_FILES += $(JVMCFG)
+
+
##########################################################################################
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f0d0780..8532306 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -214,6 +214,7 @@ Patch2031: system-lcmsAARCH64.patch
Patch301: removeMswitchesFromx11.patch
Patch302: %{name}-arm64-missing-includes.patch
+Patch310: fix-jvm-cfg.patch
# To apply 8011366-jdk.patch below, aarch64-port-custom changes need to be rolled back
Patch303: 73799ba02d7f.patch
@@ -399,6 +400,9 @@ sh %{SOURCE12}
%patch203
%endif
+pushd jdk8
+%patch310 -p1
+popd
%patch1
@@ -970,6 +974,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Aug 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- Add patch to fix zero on 32-bit build
+
* Mon Aug 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
- Added additional build fixes for aarch64
commit 7b61113351d79ba6f1dd02b1c7bc87432701c641
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Aug 6 16:17:11 2013 -0400
Roll back aarch64-port-specific changes and use upstream jdk8 ones
diff --git a/73799ba02d7f.patch b/73799ba02d7f.patch
new file mode 100644
index 0000000..42741fb
--- /dev/null
+++ b/73799ba02d7f.patch
@@ -0,0 +1,254 @@
+# HG changeset patch
+# User omajid
+# Date 1375731499 14400
+# Mon Aug 05 15:38:19 2013 -0400
+# Node ID 73799ba02d7f778dac525f812faec98558e7db46
+# Parent e0ca97a8cb360c6c6a9c0de687494360835abd94
+Backout 6e01a92ab2e4
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- openjdk/jdk/makefiles/CompileNativeLibraries.gmk
++++ openjdk/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -257,7 +257,7 @@
+ -D "JDK_FTYPE=0x2L",\
+ REORDER:=$(LIBJAVA_REORDER), \
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJAVA)
+
+@@ -308,7 +308,7 @@
+ -D "JDK_INTERNAL_NAME=mlib_image" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
+
+@@ -739,7 +739,7 @@
+ -D "JDK_INTERNAL_NAME=awt" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
+
+@@ -956,7 +956,7 @@
+ -D "JDK_INTERNAL_NAME=zip" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
+
+@@ -986,7 +986,7 @@
+ -D "JDK_FNAME=unpack.dll" \
+ -D "JDK_INTERNAL_NAME=unpack" \
+ -D "JDK_FTYPE=0x2L",\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
+
+@@ -1100,7 +1100,7 @@
+ -D "JDK_INTERNAL_NAME=dt_shmem" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
+
+@@ -1134,7 +1134,7 @@
+ -D "JDK_INTERNAL_NAME=jdwp" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
+
+@@ -1175,7 +1175,7 @@
+ -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
+
+@@ -1241,7 +1241,7 @@
+ -D "JDK_INTERNAL_NAME=libjavalcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
+
+@@ -1302,7 +1302,7 @@
+ -D "JDK_FTYPE=0x2L",\
+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
+
+@@ -1379,7 +1379,7 @@
+ -D "JDK_INTERNAL_NAME=fontmanager" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
+
+@@ -1436,7 +1436,7 @@
+ -D "JDK_INTERNAL_NAME=t2k" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ # t2k is linked against fontmanager
+ $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
+@@ -1474,7 +1474,7 @@
+ -D "JDK_INTERNAL_NAME=jawt" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
+
+@@ -1830,7 +1830,7 @@
+ -D "JDK_INTERNAL_NAME=net" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
+
+@@ -1967,7 +1967,7 @@
+ -D "JDK_INTERNAL_NAME=nio" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBNIO)
+
+@@ -2128,7 +2128,7 @@
+ -D "JDK_INTERNAL_NAME=jli" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJLI)
+
+@@ -2194,7 +2194,7 @@
+ -D "JDK_INTERNAL_NAME=jfr" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJFR)
+
+@@ -2246,7 +2246,7 @@
+ -D "JDK_INTERNAL_NAME=kcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
+
+@@ -2464,7 +2464,7 @@
+ -D "JDK_INTERNAL_NAME=splashscreen" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
+
+@@ -2506,7 +2506,7 @@
+ -D "JDK_INTERNAL_NAME=dcpr" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
+
+@@ -2540,7 +2540,7 @@
+ -D "JDK_INTERNAL_NAME=j2pcsc" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
+
+@@ -2603,7 +2603,7 @@
+ -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBKRB5)
+ endif
+@@ -2629,7 +2629,7 @@
+ -D "JDK_INTERNAL_NAME=sunmscapi" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
+ endif
+@@ -2661,7 +2661,7 @@
+ -D "JDK_INTERNAL_NAME=j2pkcs11" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
+
+@@ -2707,7 +2707,7 @@
+ -D "JDK_INTERNAL_NAME=sunec" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
+ endif
+@@ -2855,7 +2855,7 @@
+ -D "JDK_INTERNAL_NAME=jsound" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
+
+@@ -2923,7 +2923,7 @@
+ -D "JDK_INTERNAL_NAME=jsoundds" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
+- DEBUG_SYMBOLS:=true))
++ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+ $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
+
diff --git a/8011366-jdk.patch b/8011366-jdk.patch
index b46e3e3..f3647f0 100644
--- a/8011366-jdk.patch
+++ b/8011366-jdk.patch
@@ -138,22 +138,22 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
$(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
@@ -1240,7 +1249,7 @@
- -D "JDK_INTERNAL_NAME=lcms" \
+ -D "JDK_INTERNAL_NAME=libjavalcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
@@ -1300,7 +1309,7 @@
-D "JDK_FTYPE=0x2L",\
- REORDER:=$(BUILD_LIBJPEG_REORDER),\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
- $(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+ $(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
@@ -1377,7 +1386,7 @@
-D "JDK_INTERNAL_NAME=fontmanager" \
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1fd30c5..f0d0780 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -215,13 +215,15 @@ Patch2031: system-lcmsAARCH64.patch
Patch301: removeMswitchesFromx11.patch
Patch302: %{name}-arm64-missing-includes.patch
+# To apply 8011366-jdk.patch below, aarch64-port-custom changes need to be rolled back
+Patch303: 73799ba02d7f.patch
# These patches are already upstream but not included in the port yet
-#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/88125d32eb06
-Patch303: 8011366-jdk.patch
#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/f559fadbf491
Patch304: 8015087-jdk.patch
#
http://hg.openjdk.java.net/jdk8/build/rev/cb51fb4789ac
Patch305: 8015087-root.patch
+#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/88125d32eb06
+Patch306: 8011366-jdk.patch
BuildRequires: autoconf
@@ -423,6 +425,7 @@ pushd jdk8
%patch303 -p1
%patch304 -p1
%patch305 -p1
+%patch306 -p1
popd
%endif
commit ec16abc6619c7c12c16170ca170518f2ddd86479
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Aug 5 11:01:50 2013 -0400
Fix path in patch
diff --git a/8011366-root.patch b/8011366-jdk.patch
similarity index 99%
rename from 8011366-root.patch
rename to 8011366-jdk.patch
index 4d63ff9..b46e3e3 100644
--- a/8011366-root.patch
+++ b/8011366-jdk.patch
@@ -9,8 +9,8 @@ Summary: The build should not be turning off debugging if it has been
requested.
Reviewed-by: erikj, dholmes
diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- openjdk/makefiles/CompileNativeLibraries.gmk
-+++ openjdk/makefiles/CompileNativeLibraries.gmk
+--- openjdk/jdk/makefiles/CompileNativeLibraries.gmk
++++ openjdk/jdk/makefiles/CompileNativeLibraries.gmk
@@ -63,7 +63,12 @@
# Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
# not on other platforms.
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 25dc736..1fd30c5 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -217,7 +217,7 @@ Patch302: %{name}-arm64-missing-includes.patch
# These patches are already upstream but not included in the port yet
#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/88125d32eb06
-Patch303: 8011366-root.patch
+Patch303: 8011366-jdk.patch
#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/f559fadbf491
Patch304: 8015087-jdk.patch
#
http://hg.openjdk.java.net/jdk8/build/rev/cb51fb4789ac
commit f9aa0aa4f87bcaad7a210066f51339a02746ab6d
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Aug 5 02:54:29 2013 -0400
Add additional build fixes for aarch64
diff --git a/8011366-root.patch b/8011366-root.patch
new file mode 100644
index 0000000..4d63ff9
--- /dev/null
+++ b/8011366-root.patch
@@ -0,0 +1,470 @@
+# HG changeset patch
+# User andrew
+# Date 1367683497 -3600
+# Sat May 04 17:04:57 2013 +0100
+# Node ID 88125d32eb06dd38c4ca3752c7e8143e477df58e
+# Parent 8dbb4b159e04de3c447c9242c70505e71f8624c7
+8011366: Enable debug info on all libraries for OpenJDK builds
+Summary: The build should not be turning off debugging if it has been requested.
+Reviewed-by: erikj, dholmes
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- openjdk/makefiles/CompileNativeLibraries.gmk
++++ openjdk/makefiles/CompileNativeLibraries.gmk
+@@ -63,7 +63,12 @@
+ # Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but
+ # not on other platforms.
+ ifeq ($(OPENJDK_TARGET_OS), windows)
+- WINDOWS_ONLY := true
++ DEBUG_ALL_BINARIES := true
++endif
++
++# Build everything with debugging on OpenJDK
++ifdef OPENJDK
++ DEBUG_ALL_BINARIES := true
+ endif
+
+ #
+@@ -91,7 +96,8 @@
+ -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
+ CFLAGS_windows_debug:=-DLOGGING,\
+ ARFLAGS:=$(ARFLAGS),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ else
+
+@@ -105,7 +111,8 @@
+ CFLAGS:=$(CFLAGS_JDKLIB) \
+ -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
+ LDFLAGS:=-nostdlib -r -arch x86_64,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBFDLIBM :=
$(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
+ $(BUILD_LIBFDLIBM) : $(BUILD_LIBFDLIBM_MAC)
+@@ -257,7 +264,7 @@
+ -D "JDK_FTYPE=0x2L",\
+ REORDER:=$(LIBJAVA_REORDER), \
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjava,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJAVA)
+
+@@ -308,7 +315,7 @@
+ -D "JDK_INTERNAL_NAME=mlib_image" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBMLIB_IMAGE) : $(BUILD_LIBJAVA)
+
+@@ -431,7 +438,8 @@
+ $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libmlib_image_v,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA)
+
+@@ -739,7 +747,7 @@
+ -D "JDK_INTERNAL_NAME=awt" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBAWT) : $(BUILD_LIBJAVA)
+
+@@ -895,7 +903,8 @@
+ -D "JDK_FNAME=xawt.dll" \
+ -D "JDK_INTERNAL_NAME=xawt" \
+ -D "JDK_FTYPE=0x2L",\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_xawt,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBAWT_XAWT) : $(BUILD_LIBJAVA)
+
+@@ -956,7 +965,7 @@
+ -D "JDK_INTERNAL_NAME=zip" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libzip,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBZIP) : $(BUILD_LIBJAVA)
+
+@@ -986,7 +995,7 @@
+ -D "JDK_FNAME=unpack.dll" \
+ -D "JDK_INTERNAL_NAME=unpack" \
+ -D "JDK_FTYPE=0x2L",\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBUNPACK) : $(BUILD_LIBJAVA)
+
+@@ -1100,7 +1109,7 @@
+ -D "JDK_INTERNAL_NAME=dt_shmem" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdt_shmem,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
+
+@@ -1134,7 +1143,7 @@
+ -D "JDK_INTERNAL_NAME=jdwp" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjdwp,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJDWP) : $(BUILD_LIBJAVA)
+
+@@ -1175,7 +1184,7 @@
+ -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjaas,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJAAS) : $(BUILD_LIBJAVA)
+
+@@ -1240,7 +1249,7 @@
+ -D "JDK_INTERNAL_NAME=lcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+
+@@ -1300,7 +1309,7 @@
+ -D "JDK_FTYPE=0x2L",\
+ REORDER:=$(BUILD_LIBJPEG_REORDER),\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+
+@@ -1377,7 +1386,7 @@
+ -D "JDK_INTERNAL_NAME=fontmanager" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
+
+@@ -1434,7 +1443,7 @@
+ -D "JDK_INTERNAL_NAME=t2k" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libt2k,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ # t2k is linked against fontmanager
+ $(BUILD_LIBT2K) : $(BUILD_LIBFONTMANAGER)
+@@ -1472,7 +1481,7 @@
+ -D "JDK_INTERNAL_NAME=jawt" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJAWT) : $(BUILD_LIBAWT)
+
+@@ -1521,7 +1530,8 @@
+ LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
+ LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
+ -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ ifndef BUILD_HEADLESS_ONLY
+ $(BUILD_LIBJAWT) : $(BUILD_LIBAWT_XAWT)
+@@ -1828,7 +1838,7 @@
+ -D "JDK_INTERNAL_NAME=net" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnet,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBNET) : $(BUILD_LIBJAVA)
+
+@@ -1965,7 +1975,7 @@
+ -D "JDK_INTERNAL_NAME=nio" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libnio,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBNIO)
+
+@@ -2002,7 +2012,8 @@
+ LDFLAGS_SUFFIX_posix:=-lnio -lnet,\
+ LDFLAGS_SUFFIX_solaris:=-lsocket -ljava -ljvm -lc,\
+ LDFLAGS_SUFFIX_macosx:=-ljava -ljvm,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsctp,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSCTP)
+
+@@ -2126,7 +2137,7 @@
+ -D "JDK_INTERNAL_NAME=jli" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJLI)
+
+@@ -2143,7 +2154,8 @@
+ OPTIMIZATION:=HIGH, \
+ CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
+ ARFLAGS:=$(ARFLAGS),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
+
+@@ -2161,7 +2173,8 @@
+ OPTIMIZATION:=HIGH, \
+ CFLAGS:=$(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS),\
+ LDFLAGS:=-nostdlib -r,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
+ $(call install-file)
+@@ -2192,7 +2205,7 @@
+ -D "JDK_INTERNAL_NAME=jfr" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjfr,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJFR)
+
+@@ -2244,7 +2257,7 @@
+ -D "JDK_INTERNAL_NAME=kcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkcms,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBKCMS) : $(BUILD_LIBJAVA)
+
+@@ -2279,7 +2292,8 @@
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_SUFFIX:=-L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR)
-R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunwjdga,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA)
+
+@@ -2369,7 +2383,8 @@
+ LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
+ LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
+ LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_headless,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBAWT_HEADLESS) : $(BUILD_LIBAWT)
+
+@@ -2462,7 +2477,7 @@
+ -D "JDK_INTERNAL_NAME=splashscreen" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsplashscreen,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(LIBSPLASHSCREEN)
+
+@@ -2504,7 +2519,7 @@
+ -D "JDK_INTERNAL_NAME=dcpr" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libdcpr,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBDCPR) : $(BUILD_LIBJAVA)
+
+@@ -2538,7 +2553,7 @@
+ -D "JDK_INTERNAL_NAME=j2pcsc" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pcsc,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC)
+
+@@ -2561,7 +2576,8 @@
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_SUFFIX:=$(LIBDL),\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2gss,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJ2GSS)
+ endif
+@@ -2601,7 +2617,7 @@
+ -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libkrb5,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBKRB5)
+ endif
+@@ -2627,7 +2643,7 @@
+ -D "JDK_INTERNAL_NAME=sunmscapi" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunmscapi,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI)
+ endif
+@@ -2659,7 +2675,7 @@
+ -D "JDK_INTERNAL_NAME=j2pkcs11" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2pkcs11,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11)
+
+@@ -2705,7 +2721,7 @@
+ -D "JDK_INTERNAL_NAME=sunec" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libsunec,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBSUNEC)
+ endif
+@@ -2849,7 +2865,7 @@
+ -D "JDK_INTERNAL_NAME=jsound" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsound,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJSOUND) : $(BUILD_LIBJAVA)
+
+@@ -2884,7 +2900,8 @@
+ LDFLAGS:=$(LDFLAGS_JDKLIB)\
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_SUFFIX:=-lasound -ljava -ljvm,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundalsa,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJSOUNDALSA) : $(BUILD_LIBJAVA)
+
+@@ -2917,7 +2934,7 @@
+ -D "JDK_INTERNAL_NAME=jsoundds" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjsoundds,\
+- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJSOUNDDS) : $(BUILD_LIBJAVA)
+
+@@ -2942,7 +2959,8 @@
+ LDFLAGS:=$(LDFLAGS_JDKLIB),\
+ LDFLAGS_SUFFIX:=$(LIBDL),\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libj2ucrypto,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBJ2UCRYPTO) : $(BUILD_LIBJAVA)
+
+@@ -2972,7 +2990,8 @@
+ -F/System/Library/Frameworks/JavaVM.framework/Frameworks
\
+ -framework JavaNativeFoundation \
+ $(LDFLAGS_JDKLIB_SUFFIX),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libAppleScriptEngine,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(BUILD_LIBAPPLESCRIPTENGINE) : $(BUILD_LIBJAVA)
+
+@@ -3011,7 +3030,8 @@
+ -framework OpenGL \
+ -framework IOSurface \
+ -framework QuartzCore, \
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxapp,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
+
+@@ -3051,7 +3071,8 @@
+ -framework Security \
+ -framework SystemConfiguration \
+ $(LDFLAGS_JDKLIB_SUFFIX), \
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosx,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBOSX)
+
+@@ -3184,7 +3205,8 @@
+ -framework JavaRuntimeSupport \
+ -framework OpenGL \
+ -framework QuartzCore -ljava,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libawt_lwawt,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT)
+
+@@ -3224,7 +3246,8 @@
+ -framework JavaNativeFoundation \
+ -framework JavaRuntimeSupport \
+ -ljava -ljvm,\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libosxui,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ BUILD_LIBRARIES += $(BUILD_LIBOSXUI)
+
+@@ -3264,7 +3287,8 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation \
+ -lffi, \
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc32,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64,\
+ LIBRARY:=JObjC,\
+@@ -3288,7 +3312,8 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation \
+ -lffi, \
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64))
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjobjc64,\
++ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+ $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX):
$(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
+ $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64)
diff --git a/8015087-jdk.patch b/8015087-jdk.patch
new file mode 100644
index 0000000..8bdef7b
--- /dev/null
+++ b/8015087-jdk.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# User andrew
+# Date 1369226882 -3600
+# Wed May 22 13:48:02 2013 +0100
+# Node ID f559fadbf49130bcb703fa7af38070a74887a6f5
+# Parent b61632814be29cb9cf7fb5fe817a6e45c5729835
+8015087: Provide debugging information for programs
+Summary: Add missing debug info to unpack200 and jexec
+Reviewed-by: erikj
+
+diff --git a/makefiles/CompileLaunchers.gmk b/makefiles/CompileLaunchers.gmk
+--- openjdk/jdk/makefiles/CompileLaunchers.gmk
++++ openjdk/jdk/makefiles/CompileLaunchers.gmk
+@@ -472,6 +472,7 @@
+ -D "JDK_FNAME=unpack200.exe" \
+ -D "JDK_INTERNAL_NAME=unpack200" \
+ -D "JDK_FTYPE=0x1L",\
++ DEBUG_SYMBOLS:=true,\
+ MANIFEST:=$(JDK_TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest))
+
+ ifeq ($(OPENJDK_TARGET_OS),windows)
+@@ -555,6 +556,7 @@
+ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/jexec_obj,\
+ OUTPUT_DIR:=$(BUILD_JEXEC_DST_DIR),\
++ DEBUG_SYMBOLS:=true,\
+ PROGRAM:=jexec))
+
+ BUILD_LAUNCHERS += $(BUILD_JEXEC)
diff --git a/8015087-root.patch b/8015087-root.patch
new file mode 100644
index 0000000..f2fb8b4
--- /dev/null
+++ b/8015087-root.patch
@@ -0,0 +1,34 @@
+# HG changeset patch
+# User andrew
+# Date 1369226952 -3600
+# Wed May 22 13:49:12 2013 +0100
+# Node ID cb51fb4789ac0b8be4056482077ddfb8f3bd3805
+# Parent e83abb0a04ab6ad0ea32e0fcdb2d1e74df858687
+8015087: Provide debugging information for programs
+Summary: Enable debugging info on programs in OpenJDK builds
+Reviewed-by: erikj
+
+diff --git a/common/makefiles/NativeCompilation.gmk
b/common/makefiles/NativeCompilation.gmk
+--- openjdk/common/makefiles/NativeCompilation.gmk
++++ openjdk/common/makefiles/NativeCompilation.gmk
+@@ -321,11 +321,17 @@
+
+ ifneq (,$$($1_DEBUG_SYMBOLS))
+ ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
+- # Programs don't get the debug symbols added in the old build. It's
not clear if
+- # this is intentional.
+- ifeq ($$($1_PROGRAM),)
++ ifdef OPENJDK
++ # Always add debug symbols
+ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
+ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
++ else
++ # Programs don't get the debug symbols added in the old build.
It's not clear if
++ # this is intentional.
++ ifeq ($$($1_PROGRAM),)
++ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
++ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
++ endif
+ endif
+ endif
+ endif
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a336554..25dc736 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -215,6 +215,15 @@ Patch2031: system-lcmsAARCH64.patch
Patch301: removeMswitchesFromx11.patch
Patch302: %{name}-arm64-missing-includes.patch
+# These patches are already upstream but not included in the port yet
+#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/88125d32eb06
+Patch303: 8011366-root.patch
+#
http://hg.openjdk.java.net/jdk8/build/jdk/rev/f559fadbf491
+Patch304: 8015087-jdk.patch
+#
http://hg.openjdk.java.net/jdk8/build/rev/cb51fb4789ac
+Patch305: 8015087-root.patch
+
+
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -410,6 +419,12 @@ pushd jdk8/hotspot >& /dev/null
%patch302 -p1
popd >& /dev/null
+pushd jdk8
+%patch303 -p1
+%patch304 -p1
+%patch305 -p1
+popd
+
%endif
# Extract systemtap tapsets
@@ -461,6 +476,7 @@ bash ../../configure \
--with-jvm-variants=client \
--disable-precompiled-headers \
%endif
+ --disable-zip-debug-info \
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@@ -951,6 +967,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Aug 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- Added additional build fixes for aarch64
+
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.0-0.16.b89x
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
commit 4c3b526060411a719e9c719218523d9cd3159bbb
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Sat Aug 3 15:26:00 2013 -0500
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1efc99e..a336554 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.15.%{jdk8_version}%{?dist}
+Release: 0.16.%{jdk8_version}%{?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
@@ -951,6 +951,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.0-0.16.b89x
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
* Fri Aug 02 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.15.b89
- Added a missing includes patch (#302/%{name}-arm64-missing-includes.patch)
- Added --disable-precompiled-headers for arm64 build
commit 01ea0513115a141b0540784a2cb94bdcbcf4c86c
Author: Deepak Bhole <dbhole(a)redhat.com>
Date: Fri Aug 2 11:55:04 2013 -0400
Added a missing includes patch (#302/%{name}-arm64-missing-includes.patch)
Added --disable-precompiled-headers for arm64 build
diff --git a/java-1.8.0-openjdk-arm64-missing-includes.patch
b/java-1.8.0-openjdk-arm64-missing-includes.patch
new file mode 100644
index 0000000..e65184f
--- /dev/null
+++ b/java-1.8.0-openjdk-arm64-missing-includes.patch
@@ -0,0 +1,31 @@
+# HG changeset patch
+# User aph
+# Date 1375434503 -3600
+# Node ID d9d274bdde7a71eb642ce320e7557d70eea7cee9
+# Parent c1cd345fa3810a1d0e58cec9b31419025fb44ae0
+Add a couple of missing #includes.
+
+diff -r c1cd345fa381 -r d9d274bdde7a src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
+--- a/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Mon Jul 29 18:31:19 2013 +0100
++++ b/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Fri Aug 02 10:08:23 2013 +0100
+@@ -26,10 +26,11 @@
+
+ #include "precompiled.hpp"
+ #include "asm/assembler.hpp"
++#include "c1/c1_CodeStubs.hpp"
+ #include "c1/c1_Defs.hpp"
+ #include "c1/c1_MacroAssembler.hpp"
+ #include "c1/c1_Runtime1.hpp"
+-#include "c1/c1_CodeStubs.hpp"
++#include "compiler/disassembler.hpp"
+ #include "interpreter/interpreter.hpp"
+ #include "nativeInst_aarch64.hpp"
+ #include "oops/compiledICHolder.hpp"
+@@ -38,6 +39,7 @@
+ #include "register_aarch64.hpp"
+ #include "runtime/sharedRuntime.hpp"
+ #include "runtime/signature.hpp"
++#include "runtime/vframe.hpp"
+ #include "runtime/vframeArray.hpp"
+ #include "vmreg_aarch64.inline.hpp"
+
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8e28965..1efc99e 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.14.%{jdk8_version}%{?dist}
+Release: 0.15.%{jdk8_version}%{?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
@@ -213,6 +213,7 @@ Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
Patch301: removeMswitchesFromx11.patch
+Patch302: %{name}-arm64-missing-includes.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -404,6 +405,11 @@ sh %{SOURCE12}
%ifarch %{aarch64}
%patch301
+
+pushd jdk8/hotspot >& /dev/null
+%patch302 -p1
+popd >& /dev/null
+
%endif
# Extract systemtap tapsets
@@ -453,6 +459,7 @@ bash ../../configure \
%endif
%ifarch %{aarch64}
--with-jvm-variants=client \
+ --disable-precompiled-headers \
%endif
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
@@ -944,6 +951,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Fri Aug 02 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.15.b89
+- Added a missing includes patch (#302/%{name}-arm64-missing-includes.patch)
+- Added --disable-precompiled-headers for arm64 build
+
* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
- added patch 301 - removeMswitchesFromx11.patch
commit 3202076b0093070f3a84197878c45f80f33c68a2
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 30 15:39:14 2013 +0200
removed patch 300 - removeM64switches.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 66cb10d..8e28965 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -212,9 +212,6 @@ Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
-#created by removing all -m64 switches from makefiles
-#find java-1.8.0-openjdk/jdk8/ -not -name "*.java" -type f -exec sed -i
"s/\\-m64/ /g" '{}' \;
-Patch300: removeM64switches.patch
Patch301: removeMswitchesFromx11.patch
BuildRequires: autoconf
@@ -406,7 +403,6 @@ sh %{SOURCE12}
%endif
%ifarch %{aarch64}
-%patch300
%patch301
%endif
@@ -949,10 +945,8 @@ exit 0
%changelog
* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
-- added patch 300 - removeM64switches.patch
- added patch 301 - removeMswitchesFromx11.patch
-
* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
- added new aarch64 tarball
diff --git a/removeM64switches.patch b/removeM64switches.patch
deleted file mode 100644
index aafca53..0000000
--- a/removeM64switches.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -urN jdk8/hotspot/make/bsd/makefiles/gcc.make
jdk8/hotspot/make/bsd/makefiles/gcc.make
---- jdk8/hotspot/make/bsd/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/bsd/makefiles/gcc.make 2013-07-29 19:56:54.217369655 +0200
-@@ -125,10 +125,10 @@
-
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
- ARCHFLAG/i486 = -m32 -march=i586
--ARCHFLAG/amd64 = -m64
-+ARCHFLAG/amd64 =
- ARCHFLAG/ia64 =
- ARCHFLAG/sparc = -m32 -mcpu=v9
--ARCHFLAG/sparcv9 = -m64 -mcpu=v9
-+ARCHFLAG/sparcv9 = -mcpu=v9
- ARCHFLAG/zero = $(ZERO_ARCHFLAG)
-
- # Darwin-specific build flags
-diff -urN jdk8/hotspot/make/bsd/makefiles/sparcv9.make
jdk8/hotspot/make/bsd/makefiles/sparcv9.make
---- jdk8/hotspot/make/bsd/makefiles/sparcv9.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/bsd/makefiles/sparcv9.make 2013-07-29 19:56:54.230369493 +0200
-@@ -21,7 +21,7 @@
- # questions.
- #
-
--# gcc 4.0 miscompiles this code in -m64
-+# gcc 4.0 miscompiles this code in
- OPT_CFLAGS/macro.o = -O0
-
- CFLAGS += -D_LP64=1
-diff -urN jdk8/hotspot/make/bsd/makefiles/sparcWorks.make
jdk8/hotspot/make/bsd/makefiles/sparcWorks.make
---- jdk8/hotspot/make/bsd/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/bsd/makefiles/sparcWorks.make 2013-07-29 19:56:54.187370032 +0200
-@@ -37,7 +37,7 @@
-
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
- ARCHFLAG/i486 = -m32
--ARCHFLAG/amd64 = -m64
-+ARCHFLAG/amd64 =
-
- CFLAGS += $(ARCHFLAG)
- AOUT_FLAGS += $(ARCHFLAG)
-diff -urN jdk8/hotspot/make/linux/makefiles/gcc.make
jdk8/hotspot/make/linux/makefiles/gcc.make
---- jdk8/hotspot/make/linux/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/linux/makefiles/gcc.make 2013-07-29 19:56:54.372367708 +0200
-@@ -92,11 +92,11 @@
-
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
- ARCHFLAG/i486 = -m32 -march=i586
--ARCHFLAG/amd64 = -m64
-+ARCHFLAG/amd64 =
- ARCHFLAG/aarch64 =
- ARCHFLAG/ia64 =
- ARCHFLAG/sparc = -m32 -mcpu=v9
--ARCHFLAG/sparcv9 = -m64 -mcpu=v9
-+ARCHFLAG/sparcv9 = -mcpu=v9
- ARCHFLAG/arm = -fsigned-char
- ARCHFLAG/zero = $(ZERO_ARCHFLAG)
- ifndef E500V2
-diff -urN jdk8/hotspot/make/linux/makefiles/sparcv9.make
jdk8/hotspot/make/linux/makefiles/sparcv9.make
---- jdk8/hotspot/make/linux/makefiles/sparcv9.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/linux/makefiles/sparcv9.make 2013-07-29 19:56:54.389367494 +0200
-@@ -21,7 +21,7 @@
- # questions.
- #
-
--# gcc 4.0 miscompiles this code in -m64
-+# gcc 4.0 miscompiles this code in
- OPT_CFLAGS/macro.o = -O0
-
- CFLAGS += -D_LP64=1
-diff -urN jdk8/hotspot/make/linux/makefiles/sparcWorks.make
jdk8/hotspot/make/linux/makefiles/sparcWorks.make
---- jdk8/hotspot/make/linux/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000
+0200
-+++ jdk8/hotspot/make/linux/makefiles/sparcWorks.make 2013-07-29 19:56:54.350367983
+0200
-@@ -37,7 +37,7 @@
-
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
- ARCHFLAG/i486 = -m32
--ARCHFLAG/amd64 = -m64
-+ARCHFLAG/amd64 =
-
- CFLAGS += $(ARCHFLAG)
- AOUT_FLAGS += $(ARCHFLAG)
-diff -urN jdk8/hotspot/make/solaris/makefiles/gcc.make
jdk8/hotspot/make/solaris/makefiles/gcc.make
---- jdk8/hotspot/make/solaris/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/make/solaris/makefiles/gcc.make 2013-07-29 19:56:53.855374206 +0200
-@@ -79,9 +79,9 @@
- ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
-
- ARCHFLAG/sparc = -m32 -mcpu=v9
--ARCHFLAG/sparcv9 = -m64 -mcpu=v9
-+ARCHFLAG/sparcv9 = -mcpu=v9
- ARCHFLAG/i486 = -m32 -march=i586
--ARCHFLAG/amd64 = -m64 -march=k8
-+ARCHFLAG/amd64 = -march=k8
-
-
- # Optional sub-directory in /usr/lib where BUILDARCH libraries are kept.
-diff -urN jdk8/hotspot/make/solaris/makefiles/sparcWorks.make
jdk8/hotspot/make/solaris/makefiles/sparcWorks.make
---- jdk8/hotspot/make/solaris/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000
+0200
-+++ jdk8/hotspot/make/solaris/makefiles/sparcWorks.make 2013-07-29 19:56:53.833374483
+0200
-@@ -109,11 +109,11 @@
- ARCHFLAG_OLD/sparc = -xarch=v8plus
- ARCHFLAG_NEW/sparc = -m32 -xarch=sparc
- ARCHFLAG_OLD/sparcv9 = -xarch=v9
--ARCHFLAG_NEW/sparcv9 = -m64 -xarch=sparc
-+ARCHFLAG_NEW/sparcv9 = -xarch=sparc
- ARCHFLAG_OLD/i486 =
- ARCHFLAG_NEW/i486 = -m32
- ARCHFLAG_OLD/amd64 = -xarch=amd64
--ARCHFLAG_NEW/amd64 = -m64
-+ARCHFLAG_NEW/amd64 =
-
- # Select the ARCHFLAGs and other SS12 (5.9) options
- ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
-diff -urN jdk8/hotspot/src/share/tools/hsdis/Makefile
jdk8/hotspot/src/share/tools/hsdis/Makefile
---- jdk8/hotspot/src/share/tools/hsdis/Makefile 2013-07-26 14:47:20.000000000 +0200
-+++ jdk8/hotspot/src/share/tools/hsdis/Makefile 2013-07-29 19:56:46.286469350 +0200
-@@ -45,7 +45,7 @@
- endif
- endif
- CFLAGS/sparcv9 += -xarch=v9
--CFLAGS/amd64 += -m64
-+CFLAGS/amd64 +=
- CFLAGS += $(CFLAGS/$(ARCH))
- DLDFLAGS += -G
- LDFLAGS += -ldl
-@@ -77,8 +77,8 @@
- CFLAGS+= -DTARGET_ARCH_aarch64
- endif
- ifdef LP64
--CFLAGS/sparcv9 += -m64
--CFLAGS/amd64 += -m64
-+CFLAGS/sparcv9 +=
-+CFLAGS/amd64 +=
- else
- ARCH=$(ARCH1:amd64=i386)
- CFLAGS/i386 += -m32
-@@ -102,8 +102,8 @@
- ARCH1=$(CPU:x86_64=amd64)
- ARCH=$(ARCH1:i686=i386)
- ifdef LP64
--CFLAGS/sparcv9 += -m64
--CFLAGS/amd64 += -m64
-+CFLAGS/sparcv9 +=
-+CFLAGS/amd64 +=
- else
- ARCH=$(ARCH1:amd64=i386)
- CFLAGS/i386 += -m32
-diff -urN jdk8/hotspot/test/runtime/6929067/Test6929067.sh
jdk8/hotspot/test/runtime/6929067/Test6929067.sh
---- jdk8/hotspot/test/runtime/6929067/Test6929067.sh 2013-07-26 14:47:21.000000000 +0200
-+++ jdk8/hotspot/test/runtime/6929067/Test6929067.sh 2013-07-29 19:56:54.452366701 +0200
-@@ -43,7 +43,7 @@
- grep "64-Bit" vm_version.out > ${NULL}
- if [ "$?" = "0" ]
- then
-- COMP_FLAG="-m64"
-+ COMP_FLAG=" "
- else
- COMP_FLAG="-m32"
- fi
-diff -urN jdk8/jdk/make/common/Defs-linux.gmk jdk8/jdk/make/common/Defs-linux.gmk
---- jdk8/jdk/make/common/Defs-linux.gmk 2013-07-26 14:58:06.000000000 +0200
-+++ jdk8/jdk/make/common/Defs-linux.gmk 2013-07-29 19:57:12.975133862 +0200
-@@ -190,8 +190,8 @@
- CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
- CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
- CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
--CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
--LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
-+CFLAGS_REQUIRED_sparcv9 += -mcpu=v9
-+LDFLAGS_COMMON_sparcv9 += -mcpu=v9
- CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
- LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
- CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
-diff -urN jdk8/jdk/make/common/Defs-macosx.gmk jdk8/jdk/make/common/Defs-macosx.gmk
---- jdk8/jdk/make/common/Defs-macosx.gmk 2013-07-26 14:58:06.000000000 +0200
-+++ jdk8/jdk/make/common/Defs-macosx.gmk 2013-07-29 19:57:13.085132479 +0200
-@@ -113,13 +113,13 @@
- # We need this frame pointer to make it easy to walk the stacks.
- # This should be the default on X86, but ia64, and x86_64
- # may not have this as the default.
--CFLAGS_REQUIRED_x86_64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
--LDFLAGS_COMMON_x86_64 += -m64
-+CFLAGS_REQUIRED_x86_64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
-+LDFLAGS_COMMON_x86_64 +=
- CFLAGS_REQUIRED_i586 += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
- LDFLAGS_COMMON_i586 += -m32
--CFLAGS_REQUIRED_ia64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
--CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
--LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
-+CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
-+CFLAGS_REQUIRED_sparcv9 += -mcpu=v9
-+LDFLAGS_COMMON_sparcv9 += -mcpu=v9
- CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
- LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
- CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
-diff -urN jdk8/jdk/make/common/shared/Compiler-sun.gmk
jdk8/jdk/make/common/shared/Compiler-sun.gmk
---- jdk8/jdk/make/common/shared/Compiler-sun.gmk 2013-07-26 14:58:06.000000000 +0200
-+++ jdk8/jdk/make/common/shared/Compiler-sun.gmk 2013-07-29 19:57:13.041133032 +0200
-@@ -86,12 +86,12 @@
- XARCH_OPTION_OLD/32 =
- XARCH_OPTION_OLD/64 =
- XARCH_OPTION_NEW/32 = -m32
--XARCH_OPTION_NEW/64 = -m64
-+XARCH_OPTION_NEW/64 =
- # Lint options are slightly different
- LINT_XARCH_OPTION_OLD/32 =
- LINT_XARCH_OPTION_OLD/64 =
- LINT_XARCH_OPTION_NEW/32 = -m32
--LINT_XARCH_OPTION_NEW/64 = -m64
-+LINT_XARCH_OPTION_NEW/64 =
- ifeq ($(ARCH_FAMILY), sparc)
- ifdef VIS_NEEDED
- XARCH_OPTION_OLD/32 += -xarch=v8plusa
-diff -urN jdk8/jdk/make/sun/xawt/Makefile jdk8/jdk/make/sun/xawt/Makefile
---- jdk8/jdk/make/sun/xawt/Makefile 2013-07-26 14:58:07.000000000 +0200
-+++ jdk8/jdk/make/sun/xawt/Makefile 2013-07-29 19:57:13.978121255 +0200
-@@ -233,7 +233,7 @@
- SIZERS_C = $(SIZER_64_C)
- SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
- ifdef CROSS_COMPILE_ARCH
--CFLAGS_64 = -m64
-+CFLAGS_64 =
- endif
- endif # 32
- endif # !macosx
commit eccd4352ff0fb53b6849c9a13b61d26f02287040
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 30 15:24:22 2013 +0200
added patch 301 - removeMswitchesFromx11.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 7e2a5a1..66cb10d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -215,6 +215,7 @@ Patch2031: system-lcmsAARCH64.patch
#created by removing all -m64 switches from makefiles
#find java-1.8.0-openjdk/jdk8/ -not -name "*.java" -type f -exec sed -i
"s/\\-m64/ /g" '{}' \;
Patch300: removeM64switches.patch
+Patch301: removeMswitchesFromx11.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -406,6 +407,7 @@ sh %{SOURCE12}
%ifarch %{aarch64}
%patch300
+%patch301
%endif
# Extract systemtap tapsets
@@ -947,7 +949,9 @@ exit 0
%changelog
* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
-- added patch 300 - removeM64switches.patch to attempt anbuild
+- added patch 300 - removeM64switches.patch
+- added patch 301 - removeMswitchesFromx11.patch
+
* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
- added new aarch64 tarball
diff --git a/removeMswitchesFromx11.patch b/removeMswitchesFromx11.patch
new file mode 100644
index 0000000..7f3bcb7
--- /dev/null
+++ b/removeMswitchesFromx11.patch
@@ -0,0 +1,12 @@
+diff -r b28c6241e16e -r 3c777c472368 makefiles/GensrcX11Wrappers.gmk
+--- jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Tue Jul 09 16:04:18 2013 +0100
++++ jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Thu Jul 25 11:32:02 2013 +0100
+@@ -89,7 +89,7 @@
+ # Compile the C code into an executable.
+ $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
+ $(MKDIR) -p $(@D)
+- (cd $(@D) && $(CC) -m$* -o $@ $< \
++ (cd $(@D) && $(CC) -o $@ $< \
+ $(X_CFLAGS) \
+ $(X_LIBS) \
+ -I$(JDK_OUTPUTDIR)/include \
commit 60d345fc917205260d412d51a5a788f28eb2d6d2
Author: Jiri Vanek work <jvanek(a)judovana.home>
Date: Mon Jul 29 20:10:17 2013 +0200
Attemtp to remove all -m64 switches from makefiles
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f55e394..7e2a5a1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.13.%{jdk8_version}%{?dist}
+Release: 0.14.%{jdk8_version}%{?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
@@ -212,6 +212,10 @@ Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch2031: system-lcmsAARCH64.patch
+#created by removing all -m64 switches from makefiles
+#find java-1.8.0-openjdk/jdk8/ -not -name "*.java" -type f -exec sed -i
"s/\\-m64/ /g" '{}' \;
+Patch300: removeM64switches.patch
+
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -400,6 +404,10 @@ sh %{SOURCE12}
%patch103
%endif
+%ifarch %{aarch64}
+%patch300
+%endif
+
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -938,6 +946,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
+- added patch 300 - removeM64switches.patch to attempt anbuild
+
* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
- added new aarch64 tarball
diff --git a/removeM64switches.patch b/removeM64switches.patch
new file mode 100644
index 0000000..aafca53
--- /dev/null
+++ b/removeM64switches.patch
@@ -0,0 +1,225 @@
+diff -urN jdk8/hotspot/make/bsd/makefiles/gcc.make
jdk8/hotspot/make/bsd/makefiles/gcc.make
+--- jdk8/hotspot/make/bsd/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/bsd/makefiles/gcc.make 2013-07-29 19:56:54.217369655 +0200
+@@ -125,10 +125,10 @@
+
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+ ARCHFLAG/i486 = -m32 -march=i586
+-ARCHFLAG/amd64 = -m64
++ARCHFLAG/amd64 =
+ ARCHFLAG/ia64 =
+ ARCHFLAG/sparc = -m32 -mcpu=v9
+-ARCHFLAG/sparcv9 = -m64 -mcpu=v9
++ARCHFLAG/sparcv9 = -mcpu=v9
+ ARCHFLAG/zero = $(ZERO_ARCHFLAG)
+
+ # Darwin-specific build flags
+diff -urN jdk8/hotspot/make/bsd/makefiles/sparcv9.make
jdk8/hotspot/make/bsd/makefiles/sparcv9.make
+--- jdk8/hotspot/make/bsd/makefiles/sparcv9.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/bsd/makefiles/sparcv9.make 2013-07-29 19:56:54.230369493 +0200
+@@ -21,7 +21,7 @@
+ # questions.
+ #
+
+-# gcc 4.0 miscompiles this code in -m64
++# gcc 4.0 miscompiles this code in
+ OPT_CFLAGS/macro.o = -O0
+
+ CFLAGS += -D_LP64=1
+diff -urN jdk8/hotspot/make/bsd/makefiles/sparcWorks.make
jdk8/hotspot/make/bsd/makefiles/sparcWorks.make
+--- jdk8/hotspot/make/bsd/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/bsd/makefiles/sparcWorks.make 2013-07-29 19:56:54.187370032 +0200
+@@ -37,7 +37,7 @@
+
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+ ARCHFLAG/i486 = -m32
+-ARCHFLAG/amd64 = -m64
++ARCHFLAG/amd64 =
+
+ CFLAGS += $(ARCHFLAG)
+ AOUT_FLAGS += $(ARCHFLAG)
+diff -urN jdk8/hotspot/make/linux/makefiles/gcc.make
jdk8/hotspot/make/linux/makefiles/gcc.make
+--- jdk8/hotspot/make/linux/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/linux/makefiles/gcc.make 2013-07-29 19:56:54.372367708 +0200
+@@ -92,11 +92,11 @@
+
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+ ARCHFLAG/i486 = -m32 -march=i586
+-ARCHFLAG/amd64 = -m64
++ARCHFLAG/amd64 =
+ ARCHFLAG/aarch64 =
+ ARCHFLAG/ia64 =
+ ARCHFLAG/sparc = -m32 -mcpu=v9
+-ARCHFLAG/sparcv9 = -m64 -mcpu=v9
++ARCHFLAG/sparcv9 = -mcpu=v9
+ ARCHFLAG/arm = -fsigned-char
+ ARCHFLAG/zero = $(ZERO_ARCHFLAG)
+ ifndef E500V2
+diff -urN jdk8/hotspot/make/linux/makefiles/sparcv9.make
jdk8/hotspot/make/linux/makefiles/sparcv9.make
+--- jdk8/hotspot/make/linux/makefiles/sparcv9.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/linux/makefiles/sparcv9.make 2013-07-29 19:56:54.389367494 +0200
+@@ -21,7 +21,7 @@
+ # questions.
+ #
+
+-# gcc 4.0 miscompiles this code in -m64
++# gcc 4.0 miscompiles this code in
+ OPT_CFLAGS/macro.o = -O0
+
+ CFLAGS += -D_LP64=1
+diff -urN jdk8/hotspot/make/linux/makefiles/sparcWorks.make
jdk8/hotspot/make/linux/makefiles/sparcWorks.make
+--- jdk8/hotspot/make/linux/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000
+0200
++++ jdk8/hotspot/make/linux/makefiles/sparcWorks.make 2013-07-29 19:56:54.350367983
+0200
+@@ -37,7 +37,7 @@
+
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+ ARCHFLAG/i486 = -m32
+-ARCHFLAG/amd64 = -m64
++ARCHFLAG/amd64 =
+
+ CFLAGS += $(ARCHFLAG)
+ AOUT_FLAGS += $(ARCHFLAG)
+diff -urN jdk8/hotspot/make/solaris/makefiles/gcc.make
jdk8/hotspot/make/solaris/makefiles/gcc.make
+--- jdk8/hotspot/make/solaris/makefiles/gcc.make 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/make/solaris/makefiles/gcc.make 2013-07-29 19:56:53.855374206 +0200
+@@ -79,9 +79,9 @@
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+
+ ARCHFLAG/sparc = -m32 -mcpu=v9
+-ARCHFLAG/sparcv9 = -m64 -mcpu=v9
++ARCHFLAG/sparcv9 = -mcpu=v9
+ ARCHFLAG/i486 = -m32 -march=i586
+-ARCHFLAG/amd64 = -m64 -march=k8
++ARCHFLAG/amd64 = -march=k8
+
+
+ # Optional sub-directory in /usr/lib where BUILDARCH libraries are kept.
+diff -urN jdk8/hotspot/make/solaris/makefiles/sparcWorks.make
jdk8/hotspot/make/solaris/makefiles/sparcWorks.make
+--- jdk8/hotspot/make/solaris/makefiles/sparcWorks.make 2013-07-26 14:47:20.000000000
+0200
++++ jdk8/hotspot/make/solaris/makefiles/sparcWorks.make 2013-07-29 19:56:53.833374483
+0200
+@@ -109,11 +109,11 @@
+ ARCHFLAG_OLD/sparc = -xarch=v8plus
+ ARCHFLAG_NEW/sparc = -m32 -xarch=sparc
+ ARCHFLAG_OLD/sparcv9 = -xarch=v9
+-ARCHFLAG_NEW/sparcv9 = -m64 -xarch=sparc
++ARCHFLAG_NEW/sparcv9 = -xarch=sparc
+ ARCHFLAG_OLD/i486 =
+ ARCHFLAG_NEW/i486 = -m32
+ ARCHFLAG_OLD/amd64 = -xarch=amd64
+-ARCHFLAG_NEW/amd64 = -m64
++ARCHFLAG_NEW/amd64 =
+
+ # Select the ARCHFLAGs and other SS12 (5.9) options
+ ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
+diff -urN jdk8/hotspot/src/share/tools/hsdis/Makefile
jdk8/hotspot/src/share/tools/hsdis/Makefile
+--- jdk8/hotspot/src/share/tools/hsdis/Makefile 2013-07-26 14:47:20.000000000 +0200
++++ jdk8/hotspot/src/share/tools/hsdis/Makefile 2013-07-29 19:56:46.286469350 +0200
+@@ -45,7 +45,7 @@
+ endif
+ endif
+ CFLAGS/sparcv9 += -xarch=v9
+-CFLAGS/amd64 += -m64
++CFLAGS/amd64 +=
+ CFLAGS += $(CFLAGS/$(ARCH))
+ DLDFLAGS += -G
+ LDFLAGS += -ldl
+@@ -77,8 +77,8 @@
+ CFLAGS+= -DTARGET_ARCH_aarch64
+ endif
+ ifdef LP64
+-CFLAGS/sparcv9 += -m64
+-CFLAGS/amd64 += -m64
++CFLAGS/sparcv9 +=
++CFLAGS/amd64 +=
+ else
+ ARCH=$(ARCH1:amd64=i386)
+ CFLAGS/i386 += -m32
+@@ -102,8 +102,8 @@
+ ARCH1=$(CPU:x86_64=amd64)
+ ARCH=$(ARCH1:i686=i386)
+ ifdef LP64
+-CFLAGS/sparcv9 += -m64
+-CFLAGS/amd64 += -m64
++CFLAGS/sparcv9 +=
++CFLAGS/amd64 +=
+ else
+ ARCH=$(ARCH1:amd64=i386)
+ CFLAGS/i386 += -m32
+diff -urN jdk8/hotspot/test/runtime/6929067/Test6929067.sh
jdk8/hotspot/test/runtime/6929067/Test6929067.sh
+--- jdk8/hotspot/test/runtime/6929067/Test6929067.sh 2013-07-26 14:47:21.000000000 +0200
++++ jdk8/hotspot/test/runtime/6929067/Test6929067.sh 2013-07-29 19:56:54.452366701 +0200
+@@ -43,7 +43,7 @@
+ grep "64-Bit" vm_version.out > ${NULL}
+ if [ "$?" = "0" ]
+ then
+- COMP_FLAG="-m64"
++ COMP_FLAG=" "
+ else
+ COMP_FLAG="-m32"
+ fi
+diff -urN jdk8/jdk/make/common/Defs-linux.gmk jdk8/jdk/make/common/Defs-linux.gmk
+--- jdk8/jdk/make/common/Defs-linux.gmk 2013-07-26 14:58:06.000000000 +0200
++++ jdk8/jdk/make/common/Defs-linux.gmk 2013-07-29 19:57:12.975133862 +0200
+@@ -190,8 +190,8 @@
+ CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+ CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+ CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+-CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
+-LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
++CFLAGS_REQUIRED_sparcv9 += -mcpu=v9
++LDFLAGS_COMMON_sparcv9 += -mcpu=v9
+ CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
+ LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
+ CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
+diff -urN jdk8/jdk/make/common/Defs-macosx.gmk jdk8/jdk/make/common/Defs-macosx.gmk
+--- jdk8/jdk/make/common/Defs-macosx.gmk 2013-07-26 14:58:06.000000000 +0200
++++ jdk8/jdk/make/common/Defs-macosx.gmk 2013-07-29 19:57:13.085132479 +0200
+@@ -113,13 +113,13 @@
+ # We need this frame pointer to make it easy to walk the stacks.
+ # This should be the default on X86, but ia64, and x86_64
+ # may not have this as the default.
+-CFLAGS_REQUIRED_x86_64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+-LDFLAGS_COMMON_x86_64 += -m64
++CFLAGS_REQUIRED_x86_64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
++LDFLAGS_COMMON_x86_64 +=
+ CFLAGS_REQUIRED_i586 += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+ LDFLAGS_COMMON_i586 += -m32
+-CFLAGS_REQUIRED_ia64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+-CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
+-LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
++CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
++CFLAGS_REQUIRED_sparcv9 += -mcpu=v9
++LDFLAGS_COMMON_sparcv9 += -mcpu=v9
+ CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
+ LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
+ CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
+diff -urN jdk8/jdk/make/common/shared/Compiler-sun.gmk
jdk8/jdk/make/common/shared/Compiler-sun.gmk
+--- jdk8/jdk/make/common/shared/Compiler-sun.gmk 2013-07-26 14:58:06.000000000 +0200
++++ jdk8/jdk/make/common/shared/Compiler-sun.gmk 2013-07-29 19:57:13.041133032 +0200
+@@ -86,12 +86,12 @@
+ XARCH_OPTION_OLD/32 =
+ XARCH_OPTION_OLD/64 =
+ XARCH_OPTION_NEW/32 = -m32
+-XARCH_OPTION_NEW/64 = -m64
++XARCH_OPTION_NEW/64 =
+ # Lint options are slightly different
+ LINT_XARCH_OPTION_OLD/32 =
+ LINT_XARCH_OPTION_OLD/64 =
+ LINT_XARCH_OPTION_NEW/32 = -m32
+-LINT_XARCH_OPTION_NEW/64 = -m64
++LINT_XARCH_OPTION_NEW/64 =
+ ifeq ($(ARCH_FAMILY), sparc)
+ ifdef VIS_NEEDED
+ XARCH_OPTION_OLD/32 += -xarch=v8plusa
+diff -urN jdk8/jdk/make/sun/xawt/Makefile jdk8/jdk/make/sun/xawt/Makefile
+--- jdk8/jdk/make/sun/xawt/Makefile 2013-07-26 14:58:07.000000000 +0200
++++ jdk8/jdk/make/sun/xawt/Makefile 2013-07-29 19:57:13.978121255 +0200
+@@ -233,7 +233,7 @@
+ SIZERS_C = $(SIZER_64_C)
+ SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
+ ifdef CROSS_COMPILE_ARCH
+-CFLAGS_64 = -m64
++CFLAGS_64 =
+ endif
+ endif # 32
+ endif # !macosx
commit e5db05e54e9d87dee6a45390be815a2ac62e715a
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Jul 26 15:59:46 2013 +0200
Updated to patched aarch64 sources. Not sure if it builds
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 9eaec2d..f55e394 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.12.%{jdk8_version}%{?dist}
+Release: 0.13.%{jdk8_version}%{?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
@@ -938,7 +938,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
-* Fri Jul 25 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.12.b89
+* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
+- added new aarch64 tarball
+
+* Thu Jul 25 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.12.b89
- ifarchaarch64 then --with-jvm-variants=client
* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
diff --git a/sources b/sources
index fb91165..2d439d4 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-14dd0d9212080a28fc2ebdf1722aa607 aarch64-port-b89x.tar.xz
ba47bbce1edaf42bda8dc4557962babc jdk8-b89x.tar.xz
+475e23a72041086c23b541d5563e28fe aarch64-port-b89x.tar.xz
commit a19e9f6301e531e3a771932435ba2c0bc6ef1ab4
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Fri Jul 26 14:50:22 2013 +0200
Aarch64 compilable configuration v1
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index de2696d..a9c70bd 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -10,7 +10,8 @@ if test "x${VERSION}" = "x"; then
exit -1;
fi
-for REPO_NAME in jdk8 aarch64-port
+#for REPO_NAME in jdk8 aarch64-port
+for REPO_NAME in aarch64-port
do
mkdir ${REPO_NAME}
pushd ${REPO_NAME}
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 368e107..9eaec2d 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.11.%{jdk8_version}%{?dist}
+Release: 0.12.%{jdk8_version}%{?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
@@ -444,6 +444,9 @@ pushd %{buildoutputdir}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
+%endif
+%ifarch %{aarch64}
+ --with-jvm-variants=client \
%endif
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
@@ -935,6 +938,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Fri Jul 25 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.12.b89
+- ifarchaarch64 then --with-jvm-variants=client
+
* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
- prelink dependence excluded also for aaech64
- arm64 added to jitarches
commit 9b793e15b6cc86c9cf46c62a98538b874bde92c4
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Wed Jul 24 12:33:57 2013 +0200
Updated to build aarch64 as jit arch, minor tweeks
diff --git a/config.guess b/config.guess
new file mode 100644
index 0000000..b79252d
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1558 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2013 Free Software Foundation, Inc.
+
+timestamp='2013-06-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <
http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
+#
+# You can get the latest version of this script from:
+#
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.gu...
+#
+# Please send patches with a ChangeLog entry to config-patches(a)gnu.org.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches(a)gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2013 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null)
&& exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2
13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null`
&& test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077
&& mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo
"Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit
1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi(a)noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\)
processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee(a)wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}')
2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over
"FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'`
&&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX
'
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1
}'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1;
then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) &&
HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e
's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr
'[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e
's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo
"${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2`
in
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 |
4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 |
S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' <
/etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' <
/etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel(a)ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes(a)openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf(a)swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green(a)stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green(a)stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e
's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+esac
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be
changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p')
2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy`
&&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.gu...
+and
+
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.su...
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches(a)gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.sub b/config.sub
new file mode 100644
index 0000000..8b612ab
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1788 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2013 Free Software Foundation, Inc.
+
+timestamp='2013-04-24'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <
http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches with a ChangeLog entry to config-patches(a)gnu.org.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+#
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.su...
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches(a)gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2013 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray | -microblaze*)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | epiphany \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
+ | ns16k | ns32k \
+ | open8 \
+ | or1k | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | rl78 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle |
sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized
1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | aarch64-* | aarch64_be-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-*
\
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 |
hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ msys)
+ basic_machine=i386-pc
+ os=-msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized
1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or1k-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 94e3e7b..368e107 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -4,10 +4,10 @@
%global jdk8_version b89x
%global hg_tag jdk8-%{jdk8_version}
-%global multilib_arches %{power64} sparc64 x86_64
+%global aarch64 aarch64 arm64 armv8
+%global multilib_arches %{power64} sparc64 x86_64 %{aarch64}
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
-%global jit_arches %{ix86} x86_64 sparcv9 sparc64
-%global aarch64 aarch64 arm64 armv8
%ifarch x86_64
%global archbuild amd64
@@ -142,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.10.%{jdk8_version}%{?dist}
+Release: 0.11.%{jdk8_version}%{?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
@@ -185,6 +185,9 @@ Source12: remove-intree-libraries.sh
# Ensure we aren't using the limited crypto policy
Source13: TestCryptoLevel.java
+Source100: config.guess
+Source101: config.sub
+
# RPM/distribution specific patches
# Ignore AWTError when assistive technologies are loaded
@@ -204,8 +207,10 @@ Patch102: %{name}-size_t.patch
Patch103: %{name}-ppc-zero-hotspot.patch
Patch201: system-libjpeg.patch
+Patch2011: system-libjpegAARCH64.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
+Patch2031: system-lcmsAARCH64.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -215,6 +220,7 @@ BuildRequires: desktop-file-utils
BuildRequires: fontconfig
BuildRequires: freetype-devel
BuildRequires: giflib-devel
+BuildRequires: gcc-c++
BuildRequires: gtk2-devel
BuildRequires: lcms2-devel
BuildRequires: libjpeg-devel
@@ -345,7 +351,7 @@ Provides: java8-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
The OpenJDK API documentation.
%prep
-%ifarch %{arm64}
+%ifarch %{aarch64}
%global source_num 1
%else
%global source_num 0
@@ -354,15 +360,31 @@ The OpenJDK API documentation.
%setup -q -c -n %{name} -T -a %{source_num}
cp %{SOURCE2} .
+#repalce outdated configure guess script
+cp %{SOURCE100} jdk8/common/autoconf/build-aux/
+cp %{SOURCE101} jdk8/common/autoconf/build-aux/
+
# OpenJDK patches
# Remove libraries that are linked
# disabled until 8 has all system library fixes upstream
+
sh %{SOURCE12}
+%ifarch %{aarch64}
+%patch2011
+%else
%patch201
+%endif
+
%patch202
+
+%ifarch %{aarch64}
+%patch2031
+%else
%patch203
+%endif
+
%patch1
@@ -915,6 +937,12 @@ exit 0
%changelog
* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
- prelink dependence excluded also for aaech64
+- arm64 added to jitarches
+- added source100 config.guess to repalce the outdated one in-tree
+- added source101 config.sub to repalce the outdated one in-tree
+- added patch2011 system-libjpegAARCH64.patch (as aarch64-port is little bit diferent)
+- added patch2031 system-lcmsAARCH64.patch (as aarch64-port is little bit diferent)
+- added gcc-c++ build depndece so builddep will result to better situation
* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
- moved to latest working osurces
diff --git a/system-lcmsAARCH64.patch b/system-lcmsAARCH64.patch
new file mode 100644
index 0000000..f0b6057
--- /dev/null
+++ b/system-lcmsAARCH64.patch
@@ -0,0 +1,101 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -607,6 +607,46 @@
+
+ ###############################################################################
+ #
++# Check for the lcms2 library
++#
++
++AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++ [ LCMS_FOUND=yes ],
++ [ LCMS_FOUND=no ])
++
++AC_MSG_CHECKING([for which lcms to use])
++
++DEFAULT_LCMS=bundled
++
++#
++# If user didn't specify, use DEFAULT_LCMS
++#
++if test "x${with_lcms}" = "x"; then
++ with_lcms=${DEFAULT_LCMS}
++fi
++
++if test "x${with_lcms}" = "xbundled"; then
++ USE_EXTERNAL_LCMS=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_lcms}" = "xsystem"; then
++ if test "x${LCMS_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LCMS=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
++fi
++
++AC_SUBST(USE_EXTERNAL_LCMS)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1215,8 +1215,8 @@
+
+ ifdef OPENJDK
+ # TODO: Update awt lib path when awt is converted
+- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
+- LIBRARY:=lcms,\
++ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
++ LIBRARY:=javalcms,\
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+ SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
+ LANG:=C,\
+@@ -1234,18 +1234,18 @@
+ LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
+ LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
+ LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
+- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
++ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=lcms.dll" \
+- -D "JDK_INTERNAL_NAME=lcms" \
++ -D "JDK_FNAME=javalcms.dll" \
++ -D "JDK_INTERNAL_NAME=libjavalcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
+ DEBUG_SYMBOLS:=true))
+
+- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+-
+- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
++ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
++
++ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
+ endif
+
+
##########################################################################################
+diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+@@ -157,7 +157,7 @@
+ * disposer frameworks
+ */
+ System.loadLibrary("awt");
+- System.loadLibrary("lcms");
++ System.loadLibrary("javalcms");
+ return null;
+ }
+ }
diff --git a/system-libjpegAARCH64.patch b/system-libjpegAARCH64.patch
new file mode 100644
index 0000000..63bd56c
--- /dev/null
+++ b/system-libjpegAARCH64.patch
@@ -0,0 +1,207 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -487,11 +487,40 @@
+ # Check for the jpeg library
+ #
+
+-USE_EXTERNAL_LIBJPEG=true
+-AC_CHECK_LIB(jpeg, main, [],
+- [ USE_EXTERNAL_LIBJPEG=false
+- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+- ])
++AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
++ [ LIBJPEG_FOUND=yes ],
++ [ LIBJPEG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libjpeg to use])
++
++# default is bundled
++DEFAULT_LIBJPEG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBJPEG
++#
++if test "x${with_libjpeg}" = "x"; then
++ with_libjpeg=${DEFAULT_LIBJPEG}
++fi
++
++if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libjpeg}" = "xsystem"; then
++ if test "x${LIBJPEG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBJPEG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
++ fi
++else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
++fi
++
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+ ###############################################################################
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1249,17 +1249,17 @@
+
##########################################################################################
+
+ ifdef OPENJDK
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+ else
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
++
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+ endif
+
+-BUILD_LIBJPEG_REORDER:=
++BUILD_LIBJAVAJPEG_REORDER:=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
+ endif
+
+@@ -1274,37 +1274,37 @@
+ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ # ifeq ($(CC_43_OR_NEWER),1)
+-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ # endif
+ #endif
+
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
+- LIBRARY:=jpeg, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
++ LIBRARY:=javajpeg, \
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
++ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+ LANG:=C,\
+ OPTIMIZATION:=HIGHEST, \
+ CFLAGS:=$(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS:=$(LDFLAGS_JDKLIB) \
++ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
+ LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=jpeg.dll" \
+- -D "JDK_INTERNAL_NAME=jpeg" \
++ -D "JDK_FNAME=javajpeg.dll" \
++ -D "JDK_INTERNAL_NAME=javajpeg" \
+ -D "JDK_FTYPE=0x2L",\
+- REORDER:=$(BUILD_LIBJPEG_REORDER),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
++ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
+ DEBUG_SYMBOLS:=true))
+
+-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+-
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
++
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+
+
##########################################################################################
+
+@@ -2441,7 +2441,7 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation
+ else ifneq ($(OPENJDK_TARGET_OS), windows)
+- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
++ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
+ else # OPENJDK_TARGET_OS
+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
+ endif # OPENJDK_TARGET_OS
+@@ -2457,7 +2457,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -179,7 +179,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+@@ -25,7 +25,6 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "jinclude.h"
+ #include "jpeglib.h"
+ #include "jerror.h"
+
+@@ -107,11 +106,11 @@
+ if (cinfo->src == NULL) { /* first time for this JPEG object? */
+ cinfo->src = (struct jpeg_source_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
++ JPOOL_PERMANENT, sizeof(stream_source_mgr));
+ src = (stream_src_ptr) cinfo->src;
+ src->buffer = (JOCTET *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
+ }
+
+ src = (stream_src_ptr) cinfo->src;
commit 0d8c4a6acbcce954e531a0206bf78a73e170feed
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 13:43:24 2013 +0200
prelink excluded also for aarch64
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index b86c558..94e3e7b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -241,7 +241,7 @@ BuildRequires: libffi-devel
BuildRequires: openssl
# execstack build requirement.
# no prelink on ARM yet
-%ifnarch %{arm}
+%ifnarch %{arm} %{aarch64}
BuildRequires: prelink
%endif
%ifarch %{jit_arches}
@@ -913,6 +913,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
+- prelink dependence excluded also for aaech64
+
* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
- moved to latest working osurces
commit 1ee6bb6eb989308ce7163a42e9d5dab7e3e620e6
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 12:35:30 2013 +0200
Moved to latest working sources
It looks like common repo have diverged from customs and especially is different from
aarch64-port
diff --git a/.gitignore b/.gitignore
index 362fb1d..bb7eb40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@
/java-1.8.0-openjdk-aarch64-port-b01-internal.tar.xz
/java-1.8.0-openjdk-jdk8-b01-internal.tar.xz
/aarch64-port-b89.tar.xz
+/aarch64-port-b89x.tar.xz
+/jdk8-b89x.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 66df0b7..de2696d 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -26,7 +26,10 @@ do
fi
pushd jdk8
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
+# for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
+# it looks like commons have been added as separate repo for jdk8
+# but not yet for aarch64-port
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
do
if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
# aarch64-port does not tag trees
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6786798..b86c558 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b89
+%global jdk8_version b89x
%global hg_tag jdk8-%{jdk8_version}
%global multilib_arches %{power64} sparc64 x86_64
@@ -913,6 +913,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
+- moved to latest working osurces
+
* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
- Moved to hg clone for generating sources.
diff --git a/sources b/sources
index b025a74..fb91165 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-e7342fa14dbd25b751309d703fa08f90 aarch64-port-b89.tar.xz
-225cb0f1e87a57f7a1a69d19297981e3 jdk8-b89.tar.xz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
+14dd0d9212080a28fc2ebdf1722aa607 aarch64-port-b89x.tar.xz
+ba47bbce1edaf42bda8dc4557962babc jdk8-b89x.tar.xz
commit 8c391a6d258bf7b80dd3327035a29d570b2076d1
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 11:56:16 2013 +0200
Reverted previous harsh rmeoval
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 7d10cc7..66df0b7 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -26,7 +26,7 @@ do
fi
pushd jdk8
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn common
do
if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
# aarch64-port does not tag trees
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2b93a83..6786798 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -203,6 +203,10 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
+Patch201: system-libjpeg.patch
+Patch202: system-libpng.patch
+Patch203: system-lcms.patch
+
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -356,6 +360,10 @@ cp %{SOURCE2} .
# disabled until 8 has all system library fixes upstream
sh %{SOURCE12}
+%patch201
+%patch202
+%patch203
+
%patch1
# Type fixes for s390
@@ -905,13 +913,6 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
-* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
-- removed upstreamed :
- - patch201 system-libjpeg.patch
- - patch202 system-libpng.patch
- - patch203 system-lcms.patch
-
-
* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
- Moved to hg clone for generating sources.
diff --git a/system-lcms.patch b/system-lcms.patch
new file mode 100644
index 0000000..3509903
--- /dev/null
+++ b/system-lcms.patch
@@ -0,0 +1,101 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -607,6 +607,46 @@
+
+ ###############################################################################
+ #
++# Check for the lcms2 library
++#
++
++AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++ [ LCMS_FOUND=yes ],
++ [ LCMS_FOUND=no ])
++
++AC_MSG_CHECKING([for which lcms to use])
++
++DEFAULT_LCMS=bundled
++
++#
++# If user didn't specify, use DEFAULT_LCMS
++#
++if test "x${with_lcms}" = "x"; then
++ with_lcms=${DEFAULT_LCMS}
++fi
++
++if test "x${with_lcms}" = "xbundled"; then
++ USE_EXTERNAL_LCMS=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_lcms}" = "xsystem"; then
++ if test "x${LCMS_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LCMS=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
++fi
++
++AC_SUBST(USE_EXTERNAL_LCMS)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1214,8 +1214,8 @@
+
##########################################################################################
+
+ # TODO: Update awt lib path when awt is converted
+- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
+- LIBRARY:=lcms,\
++ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
++ LIBRARY:=javalcms,\
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+ SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
+ LANG:=C,\
+@@ -1233,18 +1233,18 @@
+ LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
+ LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
+ LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
+- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
++ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=lcms.dll" \
+- -D "JDK_INTERNAL_NAME=lcms" \
++ -D "JDK_FNAME=javalcms.dll" \
++ -D "JDK_INTERNAL_NAME=libjavalcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+-
+- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
++ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
++
++ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
+
+
##########################################################################################
+
+diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+@@ -164,7 +164,7 @@
+ * disposer frameworks
+ */
+ System.loadLibrary("awt");
+- System.loadLibrary("lcms");
++ System.loadLibrary("javalcms");
+ return null;
+ }
+ });
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
new file mode 100644
index 0000000..f44d891
--- /dev/null
+++ b/system-libjpeg.patch
@@ -0,0 +1,207 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -487,11 +487,40 @@
+ # Check for the jpeg library
+ #
+
+-USE_EXTERNAL_LIBJPEG=true
+-AC_CHECK_LIB(jpeg, main, [],
+- [ USE_EXTERNAL_LIBJPEG=false
+- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+- ])
++AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
++ [ LIBJPEG_FOUND=yes ],
++ [ LIBJPEG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libjpeg to use])
++
++# default is bundled
++DEFAULT_LIBJPEG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBJPEG
++#
++if test "x${with_libjpeg}" = "x"; then
++ with_libjpeg=${DEFAULT_LIBJPEG}
++fi
++
++if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libjpeg}" = "xsystem"; then
++ if test "x${LIBJPEG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBJPEG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
++ fi
++else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
++fi
++
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+ ###############################################################################
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1249,17 +1249,17 @@
+
##########################################################################################
+
+ ifdef OPENJDK
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+ else
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
++
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+ endif
+
+-BUILD_LIBJPEG_REORDER:=
++BUILD_LIBJAVAJPEG_REORDER:=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
+ endif
+
+@@ -1274,37 +1274,37 @@
+ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ # ifeq ($(CC_43_OR_NEWER),1)
+-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ # endif
+ #endif
+
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
+- LIBRARY:=jpeg, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
++ LIBRARY:=javajpeg, \
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
++ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+ LANG:=C,\
+ OPTIMIZATION:=HIGHEST, \
+ CFLAGS:=$(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS:=$(LDFLAGS_JDKLIB) \
++ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
+ LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=jpeg.dll" \
+- -D "JDK_INTERNAL_NAME=jpeg" \
++ -D "JDK_FNAME=javajpeg.dll" \
++ -D "JDK_INTERNAL_NAME=javajpeg" \
+ -D "JDK_FTYPE=0x2L",\
+- REORDER:=$(BUILD_LIBJPEG_REORDER),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
++ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
+
+-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+-
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
++
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+
+
##########################################################################################
+
+@@ -2441,7 +2441,7 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation
+ else ifneq ($(OPENJDK_TARGET_OS), windows)
+- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
++ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
+ else # OPENJDK_TARGET_OS
+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
+ endif # OPENJDK_TARGET_OS
+@@ -2457,7 +2457,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -179,7 +179,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+@@ -25,7 +25,6 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "jinclude.h"
+ #include "jpeglib.h"
+ #include "jerror.h"
+
+@@ -107,11 +106,11 @@
+ if (cinfo->src == NULL) { /* first time for this JPEG object? */
+ cinfo->src = (struct jpeg_source_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
++ JPOOL_PERMANENT, sizeof(stream_source_mgr));
+ src = (stream_src_ptr) cinfo->src;
+ src->buffer = (JOCTET *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
+ }
+
+ src = (stream_src_ptr) cinfo->src;
diff --git a/system-libpng.patch b/system-libpng.patch
new file mode 100644
index 0000000..0fceb6b
--- /dev/null
+++ b/system-libpng.patch
@@ -0,0 +1,83 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -566,6 +566,47 @@
+
+ ###############################################################################
+ #
++# Check for the png library
++#
++
++AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
++ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(png, png_sig_cmp,
++ [ LIBPNG_FOUND=yes ],
++ [ LIBPNG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libpng to use])
++
++# default is bundled
++DEFAULT_LIBPNG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBPNG
++#
++if test "x${with_libpng}" = "x"; then
++ with_libpng=${DEFAULT_libpng}
++fi
++
++
++if test "x${with_libpng}" = "xbundled"; then
++ USE_EXTERNAL_LIBPNG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libpng}" = "xsystem"; then
++ if test "x${LIBPNG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBPNG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
++fi
++AC_SUBST(USE_EXTERNAL_LIBPNG)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -2386,7 +2386,6 @@
+ ifndef BUILD_HEADLESS_ONLY
+ LIBSPLASHSCREEN_DIRS:=\
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
+ ifeq ($(USE_EXTERNAL_LIBGIF),true)
+@@ -2457,7 +2456,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+@@ -25,7 +25,7 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "../libpng/png.h"
++#include <png.h>
+
+ #include <setjmp.h>
+
commit 05f6963f71140e6b7e52f823ff123f1e8b484d8e
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 11:34:11 2013 +0200
- removed upstreamed: patch201 system-libjpeg.patch, patch202 system-libpng.patch,
patch203 system-lcms.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 6786798..2b93a83 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -203,10 +203,6 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
-Patch201: system-libjpeg.patch
-Patch202: system-libpng.patch
-Patch203: system-lcms.patch
-
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: alsa-lib-devel
@@ -360,10 +356,6 @@ cp %{SOURCE2} .
# disabled until 8 has all system library fixes upstream
sh %{SOURCE12}
-%patch201
-%patch202
-%patch203
-
%patch1
# Type fixes for s390
@@ -913,6 +905,13 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
+- removed upstreamed :
+ - patch201 system-libjpeg.patch
+ - patch202 system-libpng.patch
+ - patch203 system-lcms.patch
+
+
* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
- Moved to hg clone for generating sources.
diff --git a/system-lcms.patch b/system-lcms.patch
deleted file mode 100644
index 3509903..0000000
--- a/system-lcms.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -607,6 +607,46 @@
-
- ###############################################################################
- #
-+# Check for the lcms2 library
-+#
-+
-+AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
-+ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
-+ [ LCMS_FOUND=yes ],
-+ [ LCMS_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which lcms to use])
-+
-+DEFAULT_LCMS=bundled
-+
-+#
-+# If user didn't specify, use DEFAULT_LCMS
-+#
-+if test "x${with_lcms}" = "x"; then
-+ with_lcms=${DEFAULT_LCMS}
-+fi
-+
-+if test "x${with_lcms}" = "xbundled"; then
-+ USE_EXTERNAL_LCMS=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_lcms}" = "xsystem"; then
-+ if test "x${LCMS_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LCMS=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
-+fi
-+
-+AC_SUBST(USE_EXTERNAL_LCMS)
-+
-+###############################################################################
-+#
- # Check for the zlib library
- #
-
-diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1214,8 +1214,8 @@
-
##########################################################################################
-
- # TODO: Update awt lib path when awt is converted
-- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
-- LIBRARY:=lcms,\
-+ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
-+ LIBRARY:=javalcms,\
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
- SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
- LANG:=C,\
-@@ -1233,18 +1233,18 @@
- LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
- LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
- LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
-- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
-+ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=lcms.dll" \
-- -D "JDK_INTERNAL_NAME=lcms" \
-+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=libjavalcms" \
- -D "JDK_FTYPE=0x2L",\
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
-- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
--
-- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
-+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
-+
-+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
-
-
##########################################################################################
-
-diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
---- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-@@ -164,7 +164,7 @@
- * disposer frameworks
- */
- System.loadLibrary("awt");
-- System.loadLibrary("lcms");
-+ System.loadLibrary("javalcms");
- return null;
- }
- });
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
deleted file mode 100644
index f44d891..0000000
--- a/system-libjpeg.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -487,11 +487,40 @@
- # Check for the jpeg library
- #
-
--USE_EXTERNAL_LIBJPEG=true
--AC_CHECK_LIB(jpeg, main, [],
-- [ USE_EXTERNAL_LIBJPEG=false
-- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
-- ])
-+AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
-+ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
-+ [ LIBJPEG_FOUND=yes ],
-+ [ LIBJPEG_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which libjpeg to use])
-+
-+# default is bundled
-+DEFAULT_LIBJPEG=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_LIBJPEG
-+#
-+if test "x${with_libjpeg}" = "x"; then
-+ with_libjpeg=${DEFAULT_LIBJPEG}
-+fi
-+
-+if test "x${with_libjpeg}" = "xbundled"; then
-+ USE_EXTERNAL_LIBJPEG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libjpeg}" = "xsystem"; then
-+ if test "x${LIBJPEG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBJPEG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
-+fi
-+
- AC_SUBST(USE_EXTERNAL_LIBJPEG)
-
- ###############################################################################
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1249,17 +1249,17 @@
-
##########################################################################################
-
- ifdef OPENJDK
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
-+ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
- else
-- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
-+
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
-+
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
-+ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
- endif
-
--BUILD_LIBJPEG_REORDER:=
-+BUILD_LIBJAVAJPEG_REORDER:=
- ifeq ($(OPENJDK_TARGET_OS), solaris)
- ifneq ($(OPENJDK_TARGET_CPU), x86_64)
--
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
-+
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
- endif
- endif
-
-@@ -1274,37 +1274,37 @@
- # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
- # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
- # ifeq ($(CC_43_OR_NEWER),1)
--# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
-+# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
- # endif
- #endif
-
--$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
-- LIBRARY:=jpeg, \
-+$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
-+ LIBRARY:=javajpeg, \
- OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
-- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
-+ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
- LANG:=C,\
- OPTIMIZATION:=HIGHEST, \
- CFLAGS:=$(CFLAGS_JDKLIB) \
-- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
-+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
-- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
-- LDFLAGS:=$(LDFLAGS_JDKLIB) \
-+ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
-+ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
- LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
- LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-- -D "JDK_FNAME=jpeg.dll" \
-- -D "JDK_INTERNAL_NAME=jpeg" \
-+ -D "JDK_FNAME=javajpeg.dll" \
-+ -D "JDK_INTERNAL_NAME=javajpeg" \
- -D "JDK_FTYPE=0x2L",\
-- REORDER:=$(BUILD_LIBJPEG_REORDER),\
-- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
-+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
-+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-
--$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
--
--BUILD_LIBRARIES += $(BUILD_LIBJPEG)
-+$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
-+
-+BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
-
-
##########################################################################################
-
-@@ -2441,7 +2441,7 @@
-
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
- -framework JavaNativeFoundation
- else ifneq ($(OPENJDK_TARGET_OS), windows)
-- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
-+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
- else # OPENJDK_TARGET_OS
- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
- endif # OPENJDK_TARGET_OS
-@@ -2457,7 +2457,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
-@@ -89,7 +89,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
---- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
-@@ -179,7 +179,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
---- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
-@@ -56,7 +56,7 @@
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
-- System.loadLibrary("jpeg");
-+ System.loadLibrary("javajpeg");
- return null;
- }
- });
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
-@@ -25,7 +25,6 @@
-
- #include "splashscreen_impl.h"
-
--#include "jinclude.h"
- #include "jpeglib.h"
- #include "jerror.h"
-
-@@ -107,11 +106,11 @@
- if (cinfo->src == NULL) { /* first time for this JPEG object? */
- cinfo->src = (struct jpeg_source_mgr *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
-+ JPOOL_PERMANENT, sizeof(stream_source_mgr));
- src = (stream_src_ptr) cinfo->src;
- src->buffer = (JOCTET *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
-- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
-+ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
- }
-
- src = (stream_src_ptr) cinfo->src;
diff --git a/system-libpng.patch b/system-libpng.patch
deleted file mode 100644
index 0fceb6b..0000000
--- a/system-libpng.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -566,6 +566,47 @@
-
- ###############################################################################
- #
-+# Check for the png library
-+#
-+
-+AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
-+ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(png, png_sig_cmp,
-+ [ LIBPNG_FOUND=yes ],
-+ [ LIBPNG_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which libpng to use])
-+
-+# default is bundled
-+DEFAULT_LIBPNG=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_LIBPNG
-+#
-+if test "x${with_libpng}" = "x"; then
-+ with_libpng=${DEFAULT_libpng}
-+fi
-+
-+
-+if test "x${with_libpng}" = "xbundled"; then
-+ USE_EXTERNAL_LIBPNG=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_libpng}" = "xsystem"; then
-+ if test "x${LIBPNG_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBPNG=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
-+fi
-+AC_SUBST(USE_EXTERNAL_LIBPNG)
-+
-+###############################################################################
-+#
- # Check for the zlib library
- #
-
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -2386,7 +2386,6 @@
- ifndef BUILD_HEADLESS_ONLY
- LIBSPLASHSCREEN_DIRS:=\
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
-- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
- $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
-
- ifeq ($(USE_EXTERNAL_LIBGIF),true)
-@@ -2457,7 +2456,7 @@
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
-@@ -25,7 +25,7 @@
-
- #include "splashscreen_impl.h"
-
--#include "../libpng/png.h"
-+#include <png.h>
-
- #include <setjmp.h>
-
commit fb76864c6dcb6da12704b01e5dbe61d20c1afc79
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 11:04:46 2013 +0200
Adapted to this new sources
diff --git a/.gitignore b/.gitignore
index fb5e47a..362fb1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@
/jdk8-b01-internal.tar.xz
/java-1.8.0-openjdk-aarch64-port-b01-internal.tar.xz
/java-1.8.0-openjdk-jdk8-b01-internal.tar.xz
+/aarch64-port-b89.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index cd5b878..6786798 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -913,7 +913,7 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
-* Mon Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
+* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
- Moved to hg clone for generating sources.
* Sun Jul 21 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.9.b89
diff --git a/sources b/sources
index 13c7cf7..b025a74 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-225cb0f1e87a57f7a1a69d19297981e3 jdk8-b89.tar.xz
+e7342fa14dbd25b751309d703fa08f90 aarch64-port-b89.tar.xz
225cb0f1e87a57f7a1a69d19297981e3 jdk8-b89.tar.xz
+94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
+e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
commit e19dadab5a2731d7e662e4eeb62589049375d5b0
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Tue Jul 23 10:59:21 2013 +0200
Pushed changes of Omair Majid which improved handling of sources
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index e8a4f0c..7d10cc7 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,34 +1,47 @@
#!/bin/bash
-#VERSION=$1
-VERSION=01-internal
+set -e
+
+VERSION=$1
JDK8_URL=http://hg.openjdk.java.net
if test "x${VERSION}" = "x"; then
- echo "No version specified. A version XYZ will be used as'jdk8-bXYZ"
+ echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
exit -1;
fi
for REPO_NAME in jdk8 aarch64-port
- do
- mkdir ${REPO_NAME}
- pushd ${REPO_NAME}
-
- REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
-
- hg clone ${REPO_ROOT}
- pushd jdk8
-
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
- do
- hg clone ${REPO_ROOT}/${subrepo}
- done
- rm -rvf jdk/src/share//native/sun/security/ec/impl
-
- popd
-
- find jdk8 -name ".hg" -exec rm -rf '{}' \;
- tar cJf java-1.8.0-openjdk-${REPO_NAME}-b${VERSION}.tar.xz jdk8
-
- popd
+do
+ mkdir ${REPO_NAME}
+ pushd ${REPO_NAME}
+
+ REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
+
+ if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
+ # aarch64-port does not tag trees
+ # FIXME make this clone reproducible
+ hg clone ${REPO_ROOT}
+ else
+ hg clone ${REPO_ROOT} -r ${VERSION}
+ fi
+ pushd jdk8
+
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+ do
+ if [[ "$REPO_NAME" == "aarch64-port" ]] ; then
+ # aarch64-port does not tag trees
+ # FIXME make this clone reproducible
+ hg clone ${REPO_ROOT}/${subrepo}
+ else
+ hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION}
+ fi
+ done
+ rm -rvf jdk/src/share/native/sun/security/ec/impl || echo ok
+
+ popd
+
+ find jdk8 -type d -name ".hg" -exec rm -rf '{}' \; || echo ok
+ tar cJf ${REPO_NAME}-b${VERSION}.tar.xz jdk8
+
+ popd
done
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 1f3fbdf..cd5b878 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,14 +1,13 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_build b01
-%global jdk8_version %{jdk8_build}-internal
+%global jdk8_version b89
%global hg_tag jdk8-%{jdk8_version}
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64
-%global aarch64 aarch64 arm64 armv8
+%global aarch64 aarch64 arm64 armv8
%ifarch x86_64
%global archbuild amd64
@@ -143,7 +142,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.10.%{jdk8_build}%{?dist}
+Release: 0.10.%{jdk8_version}%{?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
@@ -161,10 +160,10 @@ License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with
exceptions and L
URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. Use
-# './generate_source_tarball.sh %{jdk8_version}' to generate. The script clone
+# './generate_source_tarball.sh %{hg_tag}' to generate. The script clones
# repositories of jdk8 and aarch64-port and removes code not allowed in Fedora.
-Source0: java-1.8.0-openjdk-jdk8-%{jdk8_version}.tar.xz
-Source1: java-1.8.0-openjdk-aarch64-port-%{jdk8_version}.tar.xz
+Source0: jdk8-%{jdk8_version}.tar.xz
+Source1: aarch64-port-%{jdk8_version}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -914,6 +913,12 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
+- Moved to hg clone for generating sources.
+
+* Sun Jul 21 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- added aarch 64 tarball, proposed usage of clone instead of tarballs
+
* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
- Switch to xz for compression
- Fixes RHBZ#979823
diff --git a/sources b/sources
index 7ae08dc..13c7cf7 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-14dd0d9212080a28fc2ebdf1722aa607 java-1.8.0-openjdk-aarch64-port-b01-internal.tar.xz
-ba47bbce1edaf42bda8dc4557962babc java-1.8.0-openjdk-jdk8-b01-internal.tar.xz
+225cb0f1e87a57f7a1a69d19297981e3 jdk8-b89.tar.xz
+225cb0f1e87a57f7a1a69d19297981e3 jdk8-b89.tar.xz
commit b78bd3d2b632fbc57a72a3e8280b59ed55091392
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Mon Jul 22 16:58:50 2013 +0200
removed two typos
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index d727325..1f3fbdf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -8,8 +8,8 @@
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64
-%global aarch64 aarch64 arm64 armv8
-8
+%global aarch64 aarch64 arm64 armv8
+
%ifarch x86_64
%global archbuild amd64
%global archinstall amd64
@@ -27,7 +27,7 @@
%ifarch %{ix86}
%global archbuild i586
%global archinstall i386
-%endifbzz
+%endif
%ifarch ia64
%global archbuild ia64
%global archinstall ia64
commit b8315753813fd2f010ceb25098e35ee6721178a0
Author: Jiri Vanek <jvanek(a)jvanek.redhat>
Date: Mon Jul 22 16:56:52 2013 +0200
Added more aarch64 possible namings
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 82e53ad..d727325 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -8,8 +8,8 @@
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64
-%global aarch64 aarch64
-
+%global aarch64 aarch64 arm64 armv8
+8
%ifarch x86_64
%global archbuild amd64
%global archinstall amd64
@@ -27,7 +27,7 @@
%ifarch %{ix86}
%global archbuild i586
%global archinstall i386
-%endif
+%endifbzz
%ifarch ia64
%global archbuild ia64
%global archinstall ia64
commit 2acb4a2da3d5b3770dc56cd70a13289987945fe2
Author: Jiri Vanek work <jvanek(a)judovana.home>
Date: Sun Jul 21 19:35:12 2013 +0200
updated to new sources without eliptic cryptography
diff --git a/.gitignore b/.gitignore
index 523bd9d..fb5e47a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,5 @@
/jdk8-b89.tar.xz
/jdk8-arm64-b01-internal.tar.xz
/jdk8-b01-internal.tar.xz
+/java-1.8.0-openjdk-aarch64-port-b01-internal.tar.xz
+/java-1.8.0-openjdk-jdk8-b01-internal.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index fef96bf..e8a4f0c 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,33 +1,34 @@
#!/bin/bash
-set -e
-
-VERSION=$1
-REV=$2
-JDK8_URL=http://hg.openjdk.java.net/jdk8/jdk8
+#VERSION=$1
+VERSION=01-internal
+JDK8_URL=http://hg.openjdk.java.net
if test "x${VERSION}" = "x"; then
- echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
+ echo "No version specified. A version XYZ will be used as'jdk8-bXYZ"
exit -1;
fi
-wget -O root.tar.gz ${JDK8_URL}/archive/${VERSION}.tar.gz
-tar xzf root.tar.gz
-rm -f root.tar.gz
-mv jdk8-${VERSION} jdk8
-rm -f jdk8/.hg*
-pushd jdk8
-
-for repos in corba jaxp jaxws langtools hotspot jdk nashorn
-do
- wget -O $repos.tar.gz ${JDK8_URL}/${repos}/archive/${VERSION}.tar.gz
- tar xzf $repos.tar.gz
- rm -f $repos.tar.gz
- mv $repos-${VERSION} $repos
- rm -f $repos/.hg*
-done
+for REPO_NAME in jdk8 aarch64-port
+ do
+ mkdir ${REPO_NAME}
+ pushd ${REPO_NAME}
+
+ REPO_ROOT=${JDK8_URL}/${REPO_NAME}/jdk8
+
+ hg clone ${REPO_ROOT}
+ pushd jdk8
-rm -rvf jdk/src/share//native/sun/security/ec/impl
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+ do
+ hg clone ${REPO_ROOT}/${subrepo}
+ done
+ rm -rvf jdk/src/share//native/sun/security/ec/impl
-popd
-tar cJf ${VERSION}.tar.xz jdk8
+ popd
+
+ find jdk8 -name ".hg" -exec rm -rf '{}' \;
+ tar cJf java-1.8.0-openjdk-${REPO_NAME}-b${VERSION}.tar.xz jdk8
+
+ popd
+done
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 408d87f..82e53ad 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,12 +1,14 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b89
+%global jdk8_build b01
+%global jdk8_version %{jdk8_build}-internal
%global hg_tag jdk8-%{jdk8_version}
%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64
+%global aarch64 aarch64
%ifarch x86_64
%global archbuild amd64
@@ -45,6 +47,11 @@
%global archinstall arm
%global archdef ARM
%endif
+%ifarch %{aarch64}
+%global archbuild aarch64
+%global archinstall aarch64
+%global archdef AARCH64
+%endif
# 32 bit sparc, optimized for v9
%ifarch sparcv9
%global archbuild sparc
@@ -136,7 +143,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.9.%{jdk8_version}%{?dist}
+Release: 0.10.%{jdk8_build}%{?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
@@ -154,9 +161,10 @@ License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with
exceptions and L
URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. Use
-# './generate_source_tarball.sh %{hg_tag}' to generate. The script merges
-# multiple tarballs into one and removes code not allowed in Fedora.
-Source0: jdk8-%{jdk8_version}.tar.xz
+# './generate_source_tarball.sh %{jdk8_version}' to generate. The script clone
+# repositories of jdk8 and aarch64-port and removes code not allowed in Fedora.
+Source0: java-1.8.0-openjdk-jdk8-%{jdk8_version}.tar.xz
+Source1: java-1.8.0-openjdk-aarch64-port-%{jdk8_version}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -338,8 +346,13 @@ Provides: java8-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
The OpenJDK API documentation.
%prep
+%ifarch %{arm64}
+%global source_num 1
+%else
+%global source_num 0
+%endif
-%setup -q -c -n %{name} -T -a 0
+%setup -q -c -n %{name} -T -a %{source_num}
cp %{SOURCE2} .
# OpenJDK patches
diff --git a/sources b/sources
index f2be2d0..7ae08dc 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-9e1d97e36105a6769735e6a157f7bb53 jdk8-arm64-b01-internal.tar.xz
-95b94860ae0f13b1ab7548de850dc141 jdk8-b01-internal.tar.xz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
+14dd0d9212080a28fc2ebdf1722aa607 java-1.8.0-openjdk-aarch64-port-b01-internal.tar.xz
+ba47bbce1edaf42bda8dc4557962babc java-1.8.0-openjdk-jdk8-b01-internal.tar.xz
commit aa7e55308fd27ce214375d9834f7213938c0e190
Author: Jiri Vanek work <jvanek(a)judovana.home>
Date: Sun Jul 21 17:14:32 2013 +0200
Uploaded new, not testedm sources (includig arm64)
diff --git a/.gitignore b/.gitignore
index 5cfc416..523bd9d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,5 @@
/jdk8-b87.tar.gz
/jdk8-b89.tar.gz
/jdk8-b89.tar.xz
+/jdk8-arm64-b01-internal.tar.xz
+/jdk8-b01-internal.tar.xz
diff --git a/sources b/sources
index 5a67ccd..f2be2d0 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
+9e1d97e36105a6769735e6a157f7bb53 jdk8-arm64-b01-internal.tar.xz
+95b94860ae0f13b1ab7548de850dc141 jdk8-b01-internal.tar.xz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-9655fdece7079e5df0f242e7dabd30a2 jdk8-b89.tar.xz
commit 0d017efdbec7f92bf8b7aaf54beb66d635966658
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jul 15 15:07:29 2013 -0400
Compress tarball with xz
Fixes RHBZ#979823
diff --git a/.gitignore b/.gitignore
index f3870b6..5cfc416 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/systemtap-tapset.tar.gz
/jdk8-b87.tar.gz
/jdk8-b89.tar.gz
+/jdk8-b89.tar.xz
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 7e0509f..fef96bf 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -1,5 +1,7 @@
#!/bin/bash
+set -e
+
VERSION=$1
REV=$2
JDK8_URL=http://hg.openjdk.java.net/jdk8/jdk8
@@ -28,4 +30,4 @@ done
rm -rvf jdk/src/share//native/sun/security/ec/impl
popd
-tar czf ${VERSION}.tar.gz jdk8
+tar cJf ${VERSION}.tar.xz jdk8
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 448af6f..408d87f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -156,7 +156,7 @@ URL:
http://openjdk.java.net/
# Source from upstrem OpenJDK8 project. Use
# './generate_source_tarball.sh %{hg_tag}' to generate. The script merges
# multiple tarballs into one and removes code not allowed in Fedora.
-Source0: jdk8-%{jdk8_version}.tar.gz
+Source0: jdk8-%{jdk8_version}.tar.xz
# Custom README for -src subpackage
Source2: README.src
@@ -901,6 +901,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- Switch to xz for compression
+- Fixes RHBZ#979823
+
* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
- Priority should be 0 until openjdk8 is released by upstream
- Fixes RHBZ#964409
diff --git a/sources b/sources
index 8b31db4..5a67ccd 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
-37ab913f14f25f0e8c5e07adeaeb2f34 jdk8-b89.tar.gz
+9655fdece7079e5df0f242e7dabd30a2 jdk8-b89.tar.xz
commit 31ecb322f97084d8ec2be89b9108e7e16c67e3b1
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jul 15 14:23:37 2013 -0400
Set priority to 0
Priority should be 0 as long as openjdk8 is not released upstream.
Fixes RHBZ#964409
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8c86eff..448af6f 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -95,7 +95,7 @@
%global origin openjdk
%global buildver 0
# priority must be 6 digits in total
-%global priority 18000%{buildver}
+%global priority 00000%{buildver}
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.8.%{jdk8_version}%{?dist}
+Release: 0.9.%{jdk8_version}%{?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
@@ -901,6 +901,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- Priority should be 0 until openjdk8 is released by upstream
+- Fixes RHBZ#964409
+
* Mon Jun 3 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.8.b89
- Fix incorrect permissions on ct.sym
commit 8620224607e3f5b33082bd4325ed55ca15ccec20
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Jun 3 16:15:55 2013 -0400
Fix permissions on ct.sym
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 0ec09f7..8c86eff 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.7.%{jdk8_version}%{?dist}
+Release: 0.8.%{jdk8_version}%{?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
@@ -425,7 +425,10 @@ bash ../../configure \
make SCTP_WERROR= DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
# the build (erroneously) removes read permissions from some jars
+# this is a regression in OpenJDK 7 (our compiler):
+#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \;
+chmod ugo+r images/j2sdk-image/lib/ct.sym
popd >& /dev/null
@@ -898,6 +901,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon Jun 3 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.8.b89
+- Fix incorrect permissions on ct.sym
+
* Mon May 20 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.7.b89
- Fix incorrect permissions on jars
commit a3cfe1d0eb62ce22f8d47ce3ad61fa41b68a262a
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon May 20 23:37:10 2013 -0400
Fix incorrect permissions on jars
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index e42a7ba..0ec09f7 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.6.%{jdk8_version}%{?dist}
+Release: 0.7.%{jdk8_version}%{?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
@@ -424,6 +424,9 @@ bash ../../configure \
make SCTP_WERROR= DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
+# the build (erroneously) removes read permissions from some jars
+find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \;
+
popd >& /dev/null
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
@@ -895,6 +898,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Mon May 20 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.7.b89
+- Fix incorrect permissions on jars
+
* Fri May 10 2013 Adam Williamson <awilliam(a)redhat.com>
- update scriptlets to follow current guidelines for updating icon cache
commit 0bc19c90ca1ac61c52a519cad60b39dc3f1d0c8c
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon May 13 13:11:48 2013 -0400
Update to b89
diff --git a/.gitignore b/.gitignore
index bf58a30..f3870b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/jdk8-b79.tar.gz
/systemtap-tapset.tar.gz
/jdk8-b87.tar.gz
+/jdk8-b89.tar.gz
diff --git a/fix-zero-build-on-arm.patch b/fix-zero-build-on-arm.patch
deleted file mode 100644
index fbdd47d..0000000
--- a/fix-zero-build-on-arm.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-# HG changeset patch
-# User omajid
-# Date 1367253270 14400
-# Node ID 1dfcc874461e8348a1066c360d1c33db72cebf55
-# Parent b9415faa7066a4d3b16d466556d5428446918d95
-8013480: fix zero build on arm
-Reviewed-by: erikj
-
---- jdk8/common/autoconf/platform.m4 Tue Apr 23 09:26:43 2013 -0700
-+++ jdk8/common/autoconf/platform.m4 Mon Apr 29 12:34:30 2013 -0400
-@@ -342,6 +342,7 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
- *)
- ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
- esac
-+ PLATFORM_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [],
[ZERO_ARCHFLAG=""])
- AC_SUBST(ZERO_ARCHFLAG)
-
- # ZERO_ARCHDEF is used to enable architecture-specific code
-@@ -417,6 +418,51 @@ AC_SUBST(OS_VERSION_MICRO)
- AC_SUBST(OS_VERSION_MICRO)
- ])
-
-+# PLATFORM_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
-+# [RUN-IF-FALSE])
-+# ------------------------------------------------------------
-+# Check that the c and c++ compilers support an argument
-+AC_DEFUN([PLATFORM_COMPILER_CHECK_ARGUMENTS],
-+[
-+ AC_MSG_CHECKING([if compiler supports "$1"])
-+ supports=yes
-+
-+ saved_cflags="$CFLAGS"
-+ CFLAGS="$CFLAGS $1"
-+ AC_LANG_PUSH([C])
-+ AC_COMPILE_IFELSE([
-+ AC_LANG_SOURCE([[int i;]])
-+ ], [], [supports=no])
-+ AC_LANG_POP([C])
-+ CFLAGS="$saved_cflags"
-+
-+ saved_cxxflags="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAG $1"
-+ AC_LANG_PUSH([C++])
-+ AC_COMPILE_IFELSE([
-+ AC_LANG_SOURCE([[int i;]])
-+ ], [], [supports=no])
-+ AC_LANG_POP([C++])
-+ CXXFLAGS="$saved_cxxflags"
-+
-+ AC_MSG_RESULT([$supports])
-+ if test "x$supports" = "xyes" ; then
-+ m4_ifval([$2], [$2], [:])
-+ else
-+ m4_ifval([$3], [$3], [:])
-+ fi
-+])
-+
-+# Check that the compiler supports -mX flags
-+# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
-+AC_DEFUN([PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS],
-+[
-+ PLATFORM_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}],
-+ [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
-+ [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
-+ AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
-+])
-+
- # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
- # Add -mX to various FLAGS variables.
- AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
-@@ -444,6 +490,9 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TA
- # (The JVM can use 32 or 64 bit Java pointers but that decision
- # is made at runtime.)
- #
-+
-+PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
-+
- if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- # Always specify -m flags on Solaris
- PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
---- jdk8/common/autoconf/spec.gmk.in Tue Apr 23 09:26:43 2013 -0700
-+++ jdk8/common/autoconf/spec.gmk.in Mon Apr 29 12:34:30 2013 -0400
-@@ -300,6 +300,8 @@ MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
- # CC is gcc and others behaving reasonably similar.
- # CL is cl.exe only.
- COMPILER_TYPE:=@COMPILER_TYPE@
-+
-+COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@
-
- CC_OUT_OPTION:=@CC_OUT_OPTION@
- EXE_OUT_OPTION:=@EXE_OUT_OPTION@
-
-
---- jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Tue Apr 23 18:25:52 2013 -0700
-+++ jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Mon Apr 29 12:34:53 2013 -0400
-@@ -86,10 +86,15 @@ ifneq ($(COMPILE_TYPE),cross)
- $(MKDIR) -p $(@D)
- $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
-
-+ # use -m32/-m64 only if the compiler supports it
-+ ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG),true)
-+ MEMORY_MODEL_FLAG="-m$*"
-+ endif
-+
- # Compile the C code into an executable.
- $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
- $(MKDIR) -p $(@D)
-- (cd $(@D) && $(CC) -m$* -o $@ $< \
-+ (cd $(@D) && $(CC) $(MEMORY_MODEL_FLAG) -o $@ $< \
- $(X_CFLAGS) \
- $(X_LIBS) \
- -I$(JDK_OUTPUTDIR)/include \
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8e0469a..e42a7ba 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b87
+%global jdk8_version b89
%global hg_tag jdk8-%{jdk8_version}
%global multilib_arches %{power64} sparc64 x86_64
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.5.%{jdk8_version}%{?dist}
+Release: 0.6.%{jdk8_version}%{?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
@@ -196,9 +196,6 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
-# Patch for arm
-Patch104: fix-zero-build-on-arm.patch
-
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
@@ -369,8 +366,6 @@ sh %{SOURCE12}
%patch103
%endif
-%patch104
-
# Extract systemtap tapsets
%if %{with_systemtap}
diff --git a/sources b/sources
index 0fe71d5..8b31db4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-dec2a6b00beb0c6565d5d93e55316093 jdk8-b87.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
+37ab913f14f25f0e8c5e07adeaeb2f34 jdk8-b89.tar.gz
diff --git a/system-lcms.patch b/system-lcms.patch
index 59ee908..3509903 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -76,7 +76,7 @@ diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/Comp
+ -D "JDK_INTERNAL_NAME=libjavalcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
-
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
index d1c5989..f44d891 100644
--- a/system-libjpeg.patch
+++ b/system-libjpeg.patch
@@ -115,7 +115,7 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
+ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
- DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+ DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
-
commit af21f272dbdf6a1b448b326261cc7a09c182b4fa
Author: Omair Majid <omajid(a)redhat.com>
Date: Fri May 10 17:50:13 2013 -0400
Dont create class-rewriter tarball
The class-rewriter stuff was used for rhino and removed completely for a
recent version of Java 8. There's no need to create that rewriter
tarball now.
diff --git a/generate_tarballs.sh b/generate_tarballs.sh
index 819e70c..1a7229b 100755
--- a/generate_tarballs.sh
+++ b/generate_tarballs.sh
@@ -8,10 +8,6 @@ tar xzf icedtea7.tar.gz
rm -f icedtea7.tar.gz
pushd icedtea7-${VERSION}
-# rewriter
-tar cvzf class-rewriter.tar.gz rewriter
-mv class-rewriter.tar.gz ../
-
# desktop files
tar cvzf desktop-files.tar.gz jconsole.desktop policytool.desktop
mv desktop-files.tar.gz ../
commit 675137bf6b40fed7e2c335949ab6ab67feb69aaa
Author: Adam Williamson <awilliam(a)redhat.com>
Date: Fri May 10 14:41:39 2013 -0700
update scriptlets to follow current guidelines for updating icon cache
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index bcb2bea..8e0469a 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -644,10 +644,7 @@ alternatives \
update-desktop-database %{_datadir}/applications &> /dev/null || :
-touch --no-create %{_datadir}/icons/hicolor
-if [ -x %{_bindir}/gtk-update-icon-cache ] ; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
-fi
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
exit 0
@@ -661,13 +658,16 @@ fi
update-desktop-database %{_datadir}/applications &> /dev/null || :
-touch --no-create %{_datadir}/icons/hicolor
-if [ -x %{_bindir}/gtk-update-icon-cache ] ; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
exit 0
+%posttrans
+/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
%post devel
ext=.gz
alternatives \
@@ -900,6 +900,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Fri May 10 2013 Adam Williamson <awilliam(a)redhat.com>
+- update scriptlets to follow current guidelines for updating icon cache
+
* Tue Apr 30 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.5.b87
- Update to b87
- Remove all rhino support; use nashorn instead
commit 6962f7455e086d8f653e6e96169b0a34a13c6ad2
Author: Dan Horák <dan(a)danny.cz>
Date: Fri May 3 17:30:33 2013 +0200
refresh the size_t patch
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 98c5e2e..b9bf179 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -1,6 +1,6 @@
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 2013-04-23
12:27:07.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2013-04-30
06:14:21.908623274 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2013-04-30
11:16:52.049921392 -0400
@@ -2667,7 +2667,7 @@ void CFLS_LAB::get_from_global_pool(size
if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
@@ -10,9 +10,39 @@ 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 2013-05-03
10:55:50.185800229 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-05-03
10:58:09.035801583 -0400
+@@ -950,7 +950,7 @@ void ConcurrentMarkSweepGeneration::comp
+ 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");
+- size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
++ size_t expand_bytes = MAX2(desired_capacity - capacity(),
(size_t)MinHeapDeltaBytes);
+ if (PrintGCDetails && Verbose) {
+ size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
+ gclog_or_tty->print_cr("\nFrom compute_new_size: ");
+@@ -6334,7 +6334,7 @@ void CMSCollector::reset(bool asynch) {
+ HeapWord* curAddr = _markBitMap.startWord();
+ while (curAddr < _markBitMap.endWord()) {
+ size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr);
+- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
++ MemRegion chunk(curAddr, MIN2((size_t)CMSBitMapYieldQuantum, remaining));
+ _markBitMap.clear_large_range(chunk);
+ if (ConcurrentMarkSweepThread::should_yield() &&
+ !foregroundGCIsActive() &&
+@@ -6631,7 +6631,7 @@ void CMSMarkStack::expand() {
+ return;
+ }
+ // Double capacity if possible
+- size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
++ size_t new_capacity = MIN2(_capacity*2, (size_t)MarkStackSizeMax);
+ // 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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-04-30
06:14:21.918623275 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-04-30
11:16:52.049921392 -0400
@@ -3735,7 +3735,7 @@ void CMTask::drain_local_queue(bool part
// of things to do) or totally (at the very end).
size_t target_size;
@@ -33,7 +63,7 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.size_
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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2013-04-30
06:14:21.918623275 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2013-04-30
11:16:52.059921393 -0400
@@ -1735,7 +1735,7 @@ HeapWord* G1CollectedHeap::expand_and_al
verify_region_sets_optional();
@@ -45,7 +75,7 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.size
ergo_format_reason("allocation request failed")
diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2013-04-30
06:14:21.928623276 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2013-04-30
11:16:52.059921393 -0400
@@ -840,7 +840,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
@@ -57,7 +87,7 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.siz
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
-+++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2013-04-30
06:14:21.928623276 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2013-04-30
11:16:52.069921394 -0400
@@ -69,7 +69,7 @@ ParMarkBitMap::initialize(MemRegion cove
if (_virtual_space != NULL && _virtual_space->expand_by(bytes)) {
_region_start = covered_region.start();
@@ -67,9 +97,23 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBit
_beg_bits.set_map(map);
_beg_bits.set_size(bits / 2);
_end_bits.set_map(map + words / 2);
+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 2013-05-03
11:19:28.625892027 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-05-03
11:20:15.915892352 -0400
+@@ -874,8 +874,8 @@ void PSParallelCompact::initialize_space
+ void PSParallelCompact::initialize_dead_wood_limiter()
+ {
+ const size_t max = 100;
+- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
+- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
++ _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0;
++ _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
+ _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/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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-30
06:14:21.928623276 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-30
11:16:52.069921394 -0400
@@ -188,7 +188,7 @@ bool ParScanThreadState::take_from_overf
const size_t num_overflow_elems = of_stack->size();
const size_t space_available = queue->max_elems() - queue->size();
@@ -81,7 +125,16 @@ diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
// stack to our work queue.
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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2013-04-30 06:17:08.068624622
-0400
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2013-05-03 10:53:48.105793292
-0400
+@@ -313,7 +313,7 @@ void GenCollectorPolicy::initialize_size
+ // yield a size that is too small) and bound it by MaxNewSize above.
+ // Ergonomics plays here by previously calculating the desired
+ // NewSize and MaxNewSize.
+- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
++ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
+ }
+ assert(max_new_size > 0, "All paths should set max_new_size");
+
@@ -340,7 +340,7 @@ void GenCollectorPolicy::initialize_size
// generally small compared to the NewRatio calculation.
_min_gen0_size = NewSize;
@@ -144,9 +197,51 @@ diff -up jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t
jdk8/hotspo
min_alignment()));
} else {
+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 2013-05-03 11:11:20.095867337
-0400
++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2013-05-03 11:13:54.945868245 -0400
+@@ -1164,7 +1164,7 @@ void MetaspaceGC::compute_new_size() {
+ (size_t)MIN2(min_tmp, double(max_uintx));
+ // Don't shrink less than the initial generation size
+ minimum_desired_capacity = MAX2(minimum_desired_capacity,
+- MetaspaceSize);
++ (size_t)MetaspaceSize);
+
+ if (PrintGCDetails && Verbose) {
+ const double free_percentage = ((double)free_after_gc) / capacity_until_GC;
+@@ -1228,7 +1228,7 @@ void MetaspaceGC::compute_new_size() {
+ 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,
+- MetaspaceSize);
++ (size_t)MetaspaceSize);
+ if (PrintGC && Verbose) {
+ gclog_or_tty->print_cr(" "
+ " maximum_free_percentage: %6.2f"
+@@ -2557,7 +2557,7 @@ void Metaspace::global_initialize() {
+ // 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,
+- (ClassMetaspaceSize/BytesPerWord)*2);
++ (size_t)(ClassMetaspaceSize/BytesPerWord)*2);
+ _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 2013-05-03
11:25:27.655916636 -0400
++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2013-05-03
11:26:02.815916940 -0400
+@@ -232,7 +232,7 @@ size_t ThreadLocalAllocBuffer::initial_d
+ size_t init_sz;
+
+ if (TLABSize > 0) {
+- init_sz = MIN2(TLABSize / HeapWordSize, max_size());
++ init_sz = MIN2((size_t)(TLABSize / HeapWordSize), max_size());
+ } else if (global_stats() == NULL) {
+ // Startup issue - main thread initialized before heap initialized.
+ init_sz = min_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 2013-04-23
12:27:07.000000000 -0400
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2013-04-30 06:14:21.928623276
-0400
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2013-04-30 11:16:52.069921394
-0400
@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -167,7 +262,27 @@ diff -up
jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp.size_t jdk8/hot
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 2013-04-23 12:27:07.000000000
-0400
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2013-04-30 06:14:21.938623277 -0400
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2013-05-03 10:46:37.745763150 -0400
+@@ -1197,7 +1197,7 @@ void Arguments::set_cms_and_parnew_gc_fl
+ // 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
+- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
++ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t)NewSize, preferred_max_new_size));
+ } else {
+ FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
+ }
+@@ -1222,8 +1222,8 @@ void Arguments::set_cms_and_parnew_gc_fl
+ // Unless explicitly requested otherwise, make young gen
+ // at least min_new, and at most preferred_max_new_size.
+ if (FLAG_IS_DEFAULT(NewSize)) {
+- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
+- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
++ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t)NewSize, min_new));
++ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+ tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
@@ -1233,7 +1233,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
commit 337e4b1b973806a312e6b1169464e70351d8c982
Author: Dan Horák <dan(a)danny.cz>
Date: Thu May 2 17:04:03 2013 +0200
build fixes for s390
- let configure recognize s390/s390x as supported platform
- rebase the size_t patch
diff --git a/java-1.8.0-openjdk-s390.patch b/java-1.8.0-openjdk-s390.patch
new file mode 100644
index 0000000..29ad02f
--- /dev/null
+++ b/java-1.8.0-openjdk-s390.patch
@@ -0,0 +1,22 @@
+diff -up jdk8/common/autoconf/platform.m4.s390 jdk8/common/autoconf/platform.m4
+--- jdk8/common/autoconf/platform.m4.s390 2013-04-30 07:30:55.368691627 -0400
++++ jdk8/common/autoconf/platform.m4 2013-04-30 07:31:51.168692356 -0400
+@@ -60,6 +60,18 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=big
+ ;;
++ s390)
++ VAR_CPU=s390
++ VAR_CPU_ARCH=s390
++ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=big
++ ;;
++ s390x)
++ VAR_CPU=s390x
++ VAR_CPU_ARCH=s390x
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=big
++ ;;
+ sparc)
+ VAR_CPU=sparc
+ VAR_CPU_ARCH=sparc
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
index 38ab45f..98c5e2e 100644
--- a/java-1.8.0-openjdk-size_t.patch
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -1,7 +1,7 @@
-diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
----
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-+++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-@@ -2677,7 +2677,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 2013-04-23
12:27:07.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2013-04-30
06:14:21.908623274 -0400
+@@ -2667,7 +2667,7 @@ void CFLS_LAB::get_from_global_pool(size
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 --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
}
assert(n_blks > 0, "Error");
_cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-@@ -3538,7 +3538,7 @@
+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 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-04-30
06:14:21.918623275 -0400
+@@ -3735,7 +3735,7 @@ void CMTask::drain_local_queue(bool part
// of things to do) or totally (at the very end).
size_t target_size;
if (partially) {
@@ -22,7 +22,7 @@ diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm
} else {
target_size = 0;
}
-@@ -4318,7 +4318,7 @@
+@@ -4566,7 +4566,7 @@ size_t G1PrintRegionLivenessInfoClosure:
// The > 0 check is to deal with the prev and next live bytes which
// could be 0.
if (*hum_bytes > 0) {
@@ -31,10 +31,10 @@ diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm
*hum_bytes -= bytes;
}
return bytes;
-diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-@@ -1700,7 +1700,7 @@
+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 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2013-04-30
06:14:21.918623275 -0400
+@@ -1735,7 +1735,7 @@ HeapWord* G1CollectedHeap::expand_and_al
verify_region_sets_optional();
@@ -43,10 +43,10 @@ diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/v
ergo_verbose1(ErgoHeapSizing,
"attempt heap expansion",
ergo_format_reason("allocation request failed")
-diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-+++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-@@ -840,7 +840,7 @@
+diff -up jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2013-04-30
06:14:21.928623276 -0400
+@@ -840,7 +840,7 @@ OtherRegionsTable::do_cleanup_work(HRRSC
// This can be done by either mutator threads together with the
// concurrent refinement threads or GC threads.
int HeapRegionRemSet::num_par_rem_sets() {
@@ -55,22 +55,10 @@ diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/
}
HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-diff --git a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
-@@ -188,7 +188,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,
-- ParGCDesiredObjsFromOverflowList,
-+ (size_t)ParGCDesiredObjsFromOverflowList,
- num_overflow_elems);
- // Transfer the most recent num_take_elems from the overflow
- // stack to our work queue.
-diff --git a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
---- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
-+++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
-@@ -69,7 +69,7 @@
+diff -up
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
++++
jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2013-04-30
06:14:21.928623276 -0400
+@@ -69,7 +69,7 @@ ParMarkBitMap::initialize(MemRegion cove
if (_virtual_space != NULL && _virtual_space->expand_by(bytes)) {
_region_start = covered_region.start();
_region_size = covered_region.word_size();
@@ -79,10 +67,22 @@ diff --git
a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp b
_beg_bits.set_map(map);
_beg_bits.set_size(bits / 2);
_end_bits.set_map(map + words / 2);
-diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/collectorPolicy.cpp
---- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
-+++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
-@@ -357,7 +357,7 @@
+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 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-30
06:14:21.928623276 -0400
+@@ -188,7 +188,7 @@ bool ParScanThreadState::take_from_overf
+ 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,
+- ParGCDesiredObjsFromOverflowList,
++ (size_t)ParGCDesiredObjsFromOverflowList,
+ 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/memory/collectorPolicy.cpp.size_t
jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp.size_t 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2013-04-30 06:17:08.068624622
-0400
+@@ -340,7 +340,7 @@ void GenCollectorPolicy::initialize_size
// generally small compared to the NewRatio calculation.
_min_gen0_size = NewSize;
desired_new_size = NewSize;
@@ -91,7 +91,7 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
} else {
// For the case where NewSize is the default, use NewRatio
// to size the minimum and initial generation sizes.
-@@ -365,10 +365,10 @@
+@@ -348,10 +348,10 @@ void GenCollectorPolicy::initialize_size
// NewRatio is overly large, the resulting sizes can be too
// small.
_min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
@@ -104,9 +104,9 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
}
assert(_min_gen0_size > 0, "Sanity check");
-@@ -423,14 +423,14 @@
- // Adjust gen0 down to accomodate OldSize
- *gen0_size_ptr = heap_size - min_gen0_size;
+@@ -407,14 +407,14 @@ bool TwoGenerationCollectorPolicy::adjus
+ // Adjust gen0 down to accommodate min_gen1_size
+ *gen0_size_ptr = heap_size - min_gen1_size;
*gen0_size_ptr =
- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
+ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
@@ -121,7 +121,7 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
min_alignment());
}
}
-@@ -454,7 +454,7 @@
+@@ -438,7 +438,7 @@ void TwoGenerationCollectorPolicy::initi
// for setting the gen1 maximum.
_max_gen1_size = max_heap_byte_size() - _max_gen0_size;
_max_gen1_size =
@@ -130,7 +130,7 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
min_alignment());
// If no explicit command line flag has been set for the
// gen1 size, use what is left for gen1.
-@@ -468,11 +468,11 @@
+@@ -452,11 +452,11 @@ void TwoGenerationCollectorPolicy::initi
"gen0 has an unexpected minimum size");
set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
set_min_gen1_size(
@@ -144,10 +144,10 @@ diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/colle
min_alignment()));
} else {
-diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objArrayKlass.inline.hpp
---- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
-+++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
-@@ -46,7 +46,7 @@
+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 2013-04-23
12:27:07.000000000 -0400
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2013-04-30 06:14:21.928623276
-0400
+@@ -48,7 +48,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -156,7 +156,7 @@ diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objA
const size_t end_index = beg_index + stride;
T* const base = (T*)a->base();
T* const beg = base + beg_index;
-@@ -80,7 +80,7 @@
+@@ -82,7 +82,7 @@ void ObjArrayKlass::objarray_follow_cont
const size_t beg_index = size_t(index);
assert(beg_index < len || len == 0, "index too large");
@@ -165,10 +165,10 @@ diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objA
const size_t end_index = beg_index + stride;
T* const base = (T*)a->base();
T* const beg = base + beg_index;
-diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
---- jdk8/hotspot/src/share/vm/runtime/arguments.cpp
-+++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1209,7 +1209,7 @@
+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 2013-04-23 12:27:07.000000000
-0400
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2013-04-30 06:14:21.938623277 -0400
+@@ -1233,7 +1233,7 @@ void Arguments::set_cms_and_parnew_gc_fl
// so it's NewRatio x of NewSize.
if (FLAG_IS_DEFAULT(OldSize)) {
if (max_heap > NewSize) {
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 8058d13..bcb2bea 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -187,6 +187,8 @@ Patch1: %{name}-accessible-toolkit.patch
# OpenJDK specific patches
#
+# Recognize s390/s390x
+Patch100: %{name}-s390.patch
# Type fixing for s390
Patch101: %{name}-bitmap.patch
Patch102: %{name}-size_t.patch
@@ -357,6 +359,7 @@ sh %{SOURCE12}
# Type fixes for s390
%ifarch s390 s390x
+%patch100
%patch101
%patch102
%endif
commit 481efdfc71d6882ada29ce54720afd8a063d2053
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Apr 30 01:45:49 2013 -0400
Update to b87
diff --git a/.gitignore b/.gitignore
index d942194..bf58a30 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/desktop-files.tar.gz
/jdk8-b79.tar.gz
/systemtap-tapset.tar.gz
+/jdk8-b87.tar.gz
diff --git a/fix-zero-build-on-arm.patch b/fix-zero-build-on-arm.patch
new file mode 100644
index 0000000..fbdd47d
--- /dev/null
+++ b/fix-zero-build-on-arm.patch
@@ -0,0 +1,113 @@
+# HG changeset patch
+# User omajid
+# Date 1367253270 14400
+# Node ID 1dfcc874461e8348a1066c360d1c33db72cebf55
+# Parent b9415faa7066a4d3b16d466556d5428446918d95
+8013480: fix zero build on arm
+Reviewed-by: erikj
+
+--- jdk8/common/autoconf/platform.m4 Tue Apr 23 09:26:43 2013 -0700
++++ jdk8/common/autoconf/platform.m4 Mon Apr 29 12:34:30 2013 -0400
+@@ -342,6 +342,7 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ esac
++ PLATFORM_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [],
[ZERO_ARCHFLAG=""])
+ AC_SUBST(ZERO_ARCHFLAG)
+
+ # ZERO_ARCHDEF is used to enable architecture-specific code
+@@ -417,6 +418,51 @@ AC_SUBST(OS_VERSION_MICRO)
+ AC_SUBST(OS_VERSION_MICRO)
+ ])
+
++# PLATFORM_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
++# [RUN-IF-FALSE])
++# ------------------------------------------------------------
++# Check that the c and c++ compilers support an argument
++AC_DEFUN([PLATFORM_COMPILER_CHECK_ARGUMENTS],
++[
++ AC_MSG_CHECKING([if compiler supports "$1"])
++ supports=yes
++
++ saved_cflags="$CFLAGS"
++ CFLAGS="$CFLAGS $1"
++ AC_LANG_PUSH([C])
++ AC_COMPILE_IFELSE([
++ AC_LANG_SOURCE([[int i;]])
++ ], [], [supports=no])
++ AC_LANG_POP([C])
++ CFLAGS="$saved_cflags"
++
++ saved_cxxflags="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAG $1"
++ AC_LANG_PUSH([C++])
++ AC_COMPILE_IFELSE([
++ AC_LANG_SOURCE([[int i;]])
++ ], [], [supports=no])
++ AC_LANG_POP([C++])
++ CXXFLAGS="$saved_cxxflags"
++
++ AC_MSG_RESULT([$supports])
++ if test "x$supports" = "xyes" ; then
++ m4_ifval([$2], [$2], [:])
++ else
++ m4_ifval([$3], [$3], [:])
++ fi
++])
++
++# Check that the compiler supports -mX flags
++# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
++AC_DEFUN([PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS],
++[
++ PLATFORM_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}],
++ [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
++ [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
++ AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
++])
++
+ # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
+ # Add -mX to various FLAGS variables.
+ AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
+@@ -444,6 +490,9 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TA
+ # (The JVM can use 32 or 64 bit Java pointers but that decision
+ # is made at runtime.)
+ #
++
++PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
++
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # Always specify -m flags on Solaris
+ PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
+--- jdk8/common/autoconf/spec.gmk.in Tue Apr 23 09:26:43 2013 -0700
++++ jdk8/common/autoconf/spec.gmk.in Mon Apr 29 12:34:30 2013 -0400
+@@ -300,6 +300,8 @@ MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
+ # CC is gcc and others behaving reasonably similar.
+ # CL is cl.exe only.
+ COMPILER_TYPE:=@COMPILER_TYPE@
++
++COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@
+
+ CC_OUT_OPTION:=@CC_OUT_OPTION@
+ EXE_OUT_OPTION:=@EXE_OUT_OPTION@
+
+
+--- jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Tue Apr 23 18:25:52 2013 -0700
++++ jdk8/jdk/makefiles/GensrcX11Wrappers.gmk Mon Apr 29 12:34:53 2013 -0400
+@@ -86,10 +86,15 @@ ifneq ($(COMPILE_TYPE),cross)
+ $(MKDIR) -p $(@D)
+ $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
+
++ # use -m32/-m64 only if the compiler supports it
++ ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG),true)
++ MEMORY_MODEL_FLAG="-m$*"
++ endif
++
+ # Compile the C code into an executable.
+ $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
+ $(MKDIR) -p $(@D)
+- (cd $(@D) && $(CC) -m$* -o $@ $< \
++ (cd $(@D) && $(CC) $(MEMORY_MODEL_FLAG) -o $@ $< \
+ $(X_CFLAGS) \
+ $(X_LIBS) \
+ -I$(JDK_OUTPUTDIR)/include \
+
diff --git a/fix-zero-build.patch b/fix-zero-build.patch
deleted file mode 100644
index a2defd5..0000000
--- a/fix-zero-build.patch
+++ /dev/null
@@ -1,158 +0,0 @@
---- jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:56.137703554 -0400
-+++ jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:55.674699054 -0400
-@@ -94,8 +94,11 @@
- $(IMAGES_OUTPUTDIR)/lib/tools.jar \
- $(IMAGES_OUTPUTDIR)/lib/ct.sym \
- $(IMAGES_OUTPUTDIR)/src.zip \
-- $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar \
-- $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
-+ $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
-+
-+ifeq ($(INCLUDE_SA),true)
-+ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
-+endif
-
- ifeq ($(OPENJDK_TARGET_OS),solaris)
- ifndef OPENJDK
---- jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:44.110332528 -0400
-+++ jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:43.915330640 -0400
-@@ -75,6 +75,19 @@
- # If yes then this expands to _LP64:=1
- @LP64@
-
-+# Legacy settings for zero
-+ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN)
-+ZERO_LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
-+ZERO_ARCHDEF=@ZERO_ARCHDEF@
-+ZERO_ARCHFLAG=@ZERO_ARCHFLAG@
-+LIBFFI_CFLAGS=@LIBFFI_CFLAGS@
-+LIBFFI_LIBS=@LIBFFI_LIBS@
-+
-+# Legacy settings for zeroshark
-+LLVM_CFLAGS=@LLVM_CFLAGS@
-+LLVM_LIBS=@LLVM_LIBS@
-+LLVM_LDFLAGS=@LLVM_LDFLAGS@
-+
- ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
- ALT_EXPORT_PATH=$(HOTSPOT_DIST)
-
---- jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.905349901 -0400
-+++ jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.632347258 -0400
-@@ -662,7 +662,7 @@
- AC_MSG_CHECKING([how to link with libstdc++])
- # If dynamic was requested, it's available since it would fail above otherwise.
- # If dynamic wasn't requested, go with static unless it isn't available.
-- if test "x$with_stdc__lib" = xdynamic || test
"x$has_static_libstdcxx" = xno; then
-+ if test "x$with_stdc__lib" = xdynamic || test
"x$has_static_libstdcxx" = xno || test "x$JVM_VARIANT_ZEROSHARK" =
xtrue; then
- LIBCXX="$LIBCXX -lstdc++"
- LDCXX="$CXX"
- STATIC_CXX_SETTING="STATIC_CXX=false"
-@@ -676,6 +676,59 @@
- fi
- AC_SUBST(STATIC_CXX_SETTING)
-
-+if test "x$JVM_VARIANT_ZERO" = xtrue || test
"x$JVM_VARIANT_ZEROSHARK" = xtrue; then
-+ # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
-+ PKG_CHECK_MODULES([LIBFFI], [libffi])
-+
-+fi
-+
-+if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
-+ AC_CHECK_PROG([LLVM_CONFIG], [llvm-config], [llvm-config])
-+
-+ if test "x$LLVM_CONFIG" != xllvm-config; then
-+ AC_MSG_ERROR([llvm-config not found in $PATH.])
-+ fi
-+
-+ llvm_components="jit mcjit engine nativecodegen native"
-+ unset LLVM_CFLAGS
-+ for flag in $("$LLVM_CONFIG" --cxxflags); do
-+ if echo "${flag}" | grep -q '^-@<:@ID@:>@'; then
-+ if test "${flag}" != "-D_DEBUG" ; then
-+ if test "${LLVM_CFLAGS}" != "" ; then
-+ LLVM_CFLAGS="${LLVM_CFLAGS} "
-+ fi
-+ LLVM_CFLAGS="${LLVM_CFLAGS}${flag}"
-+ fi
-+ fi
-+ done
-+ llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//;
s/svn.*//')
-+ LLVM_CFLAGS="${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}"
-+
-+ unset LLVM_LDFLAGS
-+ for flag in $("${LLVM_CONFIG}" --ldflags); do
-+ if echo "${flag}" | grep -q '^-L'; then
-+ if test "${LLVM_LDFLAGS}" != ""; then
-+ LLVM_LDFLAGS="${LLVM_LDFLAGS} "
-+ fi
-+ LLVM_LDFLAGS="${LLVM_LDFLAGS}${flag}"
-+ fi
-+ done
-+
-+ unset LLVM_LIBS
-+ for flag in $("${LLVM_CONFIG}" --libs ${llvm_components}); do
-+ if echo "${flag}" | grep -q '^-l'; then
-+ if test "${LLVM_LIBS}" != ""; then
-+ LLVM_LIBS="${LLVM_LIBS} "
-+ fi
-+ LLVM_LIBS="${LLVM_LIBS}${flag}"
-+ fi
-+ done
-+
-+ AC_SUBST(LLVM_CFLAGS)
-+ AC_SUBST(LLVM_LDFLAGS)
-+ AC_SUBST(LLVM_LIBS)
-+fi
-+
- # libCrun is the c++ runtime-library with SunStudio (roughly the equivalent of gcc's
libstdc++.so)
- if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$LIBCXX"
= x; then
- LIBCXX="/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
---- jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.585366160 -0400
-+++ jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.389364263 -0400
-@@ -332,6 +332,29 @@
- DEFINE_CROSS_COMPILE_ARCH=""
- fi
- AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
-+
-+ # Some Zero and Shark settings.
-+ # ZERO_ARCHFLAG tells the compiler which mode to build for
-+ case "${OPENJDK_TARGET_CPU}" in
-+ s390)
-+ ZERO_ARCHFLAG="-m31"
-+ ;;
-+ *)
-+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
-+ esac
-+ AC_SUBST(ZERO_ARCHFLAG)
-+
-+ # ZERO_ARCHDEF is used to enable architecture-specific code
-+ case "${OPENJDK_TARGET_CPU}" in
-+ ppc*) ZERO_ARCHDEF=PPC ;;
-+ s390*) ZERO_ARCHDEF=S390 ;;
-+ sparc*) ZERO_ARCHDEF=SPARC ;;
-+ x86_64*) ZERO_ARCHDEF=AMD64 ;;
-+ x86) ZERO_ARCHDEF=IA32 ;;
-+ *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z
A-Z)
-+ esac
-+ AC_SUBST(ZERO_ARCHDEF)
-+
- ])
-
- AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
---- jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:49.065380483 -0400
-+++ jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:48.870378596 -0400
-@@ -634,6 +634,14 @@
- # Name of Service Agent library
- SALIB_NAME=@SALIB_NAME@
-
-+INCLUDE_SA:=true
-+ifeq ($(JVM_VARIANT_ZERO),true)
-+ INCLUDE_SA:=false
-+endif
-+ifeq ($(JVM_VARIANT_ZEROSHARK),true)
-+ INCLUDE_SA:=false
-+endif
-+
- OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
- OS_VERSION_MINOR:=@OS_VERSION_MINOR@
- OS_VERSION_MICRO:=@OS_VERSION_MICRO@
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
index 1463e97..7e0509f 100755
--- a/generate_source_tarball.sh
+++ b/generate_source_tarball.sh
@@ -16,7 +16,7 @@ mv jdk8-${VERSION} jdk8
rm -f jdk8/.hg*
pushd jdk8
-for repos in corba jaxp jaxws langtools hotspot jdk
+for repos in corba jaxp jaxws langtools hotspot jdk nashorn
do
wget -O $repos.tar.gz ${JDK8_URL}/${repos}/archive/${VERSION}.tar.gz
tar xzf $repos.tar.gz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 5e96a95..8058d13 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1,7 +1,7 @@
# If debug is 1, OpenJDK is built with all debug info present.
%global debug 0
-%global jdk8_version b79
+%global jdk8_version b87
%global hg_tag jdk8-%{jdk8_version}
%global multilib_arches %{power64} sparc64 x86_64
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.4.%{jdk8_version}%{?dist}
+Release: 0.5.%{jdk8_version}%{?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
@@ -164,8 +164,6 @@ Source2: README.src
# Use 'generate_tarballs.sh' to generate the following tarballs
# They are based on code contained in the IcedTea7 project.
-# Class rewrite to rewrite rhino hierarchy
-Source7: class-rewriter.tar.gz
# Systemtap tapsets. Zipped up to keep it small.
Source8: systemtap-tapset.tar.gz
# .desktop files. Zipped up to keep it small.
@@ -183,15 +181,12 @@ Source13: TestCryptoLevel.java
# RPM/distribution specific patches
# Ignore AWTError when assistive technologies are loaded
-Patch4: %{name}-accessible-toolkit.patch
+Patch1: %{name}-accessible-toolkit.patch
#
# OpenJDK specific patches
#
-# Add rhino support
-Patch100: rhino.patch
-
# Type fixing for s390
Patch101: %{name}-bitmap.patch
Patch102: %{name}-size_t.patch
@@ -199,11 +194,12 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
-Patch200: system-giflib.patch
+# Patch for arm
+Patch104: fix-zero-build-on-arm.patch
+
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
-Patch204: fix-zero-build.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -226,7 +222,6 @@ BuildRequires: libXtst-devel
BuildRequires: pkgconfig
BuildRequires: wget
BuildRequires: xorg-x11-proto-devel
-BuildRequires: rhino
#BuildRequires: redhat-lsb
BuildRequires: zip
# OpenJDK X officially requires OpenJDK (X-1) to build
@@ -248,7 +243,6 @@ BuildRequires: prelink
BuildRequires: systemtap-sdt-devel
%endif
-Requires: rhino
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
# Require jpackage-utils for ownership of /usr/lib/jvm/
@@ -351,20 +345,15 @@ cp %{SOURCE2} .
# OpenJDK patches
-# Rhino patch
-%patch100
-
# Remove libraries that are linked
# disabled until 8 has all system library fixes upstream
sh %{SOURCE12}
-%patch200
%patch201
%patch202
%patch203
-%patch204
-%patch4
+%patch1
# Type fixes for s390
%ifarch s390 s390x
@@ -377,12 +366,7 @@ sh %{SOURCE12}
%patch103
%endif
-
-# Copy jaxp, jaf and jaxws drops
-mkdir drops/
-
-# Extract the rewriter (to rewrite rhino classes)
-tar xzf %{SOURCE7}
+%patch104
# Extract systemtap tapsets
%if %{with_systemtap}
@@ -416,37 +400,6 @@ export ARCH_DATA_MODEL=64
%ifarch alpha
export CFLAGS="$CFLAGS -mieee"
%endif
-# Build the re-written rhino jar
-mkdir -p rhino/{old,new}
-
-# Compile the rewriter
-(cd rewriter
- javac com/redhat/rewriter/ClassRewriter.java
-)
-
-# Extract rhino.jar contents and rewrite
-(cd rhino/old
- jar xf /usr/share/java/rhino.jar
-)
-
-java -cp rewriter com.redhat.rewriter.ClassRewriter \
- $PWD/rhino/old \
- $PWD/rhino/new \
- org.mozilla \
- sun.org.mozilla
-
-(cd rhino/old
- for file in `find -type f -not -name '*.class'` ; do
- new_file=../new/`echo $file | sed -e 's#org#sun/org#'`
- mkdir -pv `dirname $new_file`
- cp -v $file $new_file
- sed -ie 's#org\.mozilla#sun.org.mozilla#g' $new_file
- done
-)
-
-(cd rhino/new
- jar cfm ../rhino.jar META-INF/MANIFEST.MF sun
-)
(cd jdk8/common/autoconf
bash ./autogen.sh
@@ -944,6 +897,11 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Apr 30 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.5.b87
+- Update to b87
+- Remove all rhino support; use nashorn instead
+- Remove upstreamed/unapplied patches
+
* Tue Apr 23 2013 Karsten Hopp <karsten(a)redhat.com> 1:1.8.0.0-0.4.b79
- update java-1.8.0-openjdk-ppc-zero-hotspot patch
- use power64 macro
diff --git a/rhino.patch b/rhino.patch
deleted file mode 100644
index 992a634..0000000
--- a/rhino.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-diff --git a/make/com/sun/Makefile b/make/com/sun/Makefile
---- jdk8/jdk/make/com/sun/Makefile
-+++ jdk8/jdk/make/com/sun/Makefile
-@@ -31,13 +31,6 @@
- PRODUCT = sun
- include $(BUILDDIR)/common/Defs.gmk
-
--ifndef OPENJDK
-- ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
-- ifneq ("$(ORG_EXISTS)", "")
-- SCRIPT_SUBDIR = script
-- endif
--endif
--
- # jarsigner is part of JRE
- SUBDIRS = java security net/ssl jarsigner
-
-@@ -45,7 +38,7 @@
- SUBDIRS_desktop = image
- SUBDIRS_enterprise = crypto/provider jndi \
- org rowset net/httpserver
--SUBDIRS_misc = $(SCRIPT_SUBDIR) tracing servicetag nio demo
-+SUBDIRS_misc = script tracing servicetag nio demo
-
- SUBDIRS_tools = tools
-
-diff --git a/make/com/sun/script/Makefile b/make/com/sun/script/Makefile
---- jdk8/jdk/make/com/sun/script/Makefile
-+++ jdk8/jdk/make/com/sun/script/Makefile
-@@ -31,6 +31,8 @@
-
- AUTO_FILES_JAVA_DIRS = com/sun/script
-
-+OTHER_JAVACFLAGS = -classpath $(RHINO_JAR)
-+
- #
- # Files that need to be copied
- #
-diff --git a/make/common/Release.gmk b/make/common/Release.gmk
---- jdk8/jdk/make/common/Release.gmk
-+++ jdk8/jdk/make/common/Release.gmk
-@@ -813,6 +813,7 @@
- $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
- $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
- $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
-+ $(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
- ifneq ($(JFR_JAR),)
- $(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar
- endif
-diff --git a/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
b/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
-@@ -24,7 +24,7 @@
- */
-
- package com.sun.script.javascript;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
- import javax.script.*;
- import java.util.*;
-
-diff --git a/src/share/classes/com/sun/script/javascript/JSAdapter.java
b/src/share/classes/com/sun/script/javascript/JSAdapter.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
-@@ -25,7 +25,7 @@
-
- package com.sun.script.javascript;
-
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
- import java.util.*;
-
- /**
-diff --git a/src/share/classes/com/sun/script/javascript/JavaAdapter.java
b/src/share/classes/com/sun/script/javascript/JavaAdapter.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
-@@ -26,7 +26,7 @@
- package com.sun.script.javascript;
-
- import javax.script.Invocable;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
-
- /**
- * This class implements Rhino-like JavaAdapter to help implement a Java
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
b/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
-@@ -26,7 +26,7 @@
- package com.sun.script.javascript;
-
- import java.util.*;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
-
- /**
- * This class prevents script access to certain sensitive classes.
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
b/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
-@@ -25,7 +25,7 @@
-
- package com.sun.script.javascript;
- import javax.script.*;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
-
- /**
- * Represents compiled JavaScript code.
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
b/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
-@@ -26,7 +26,7 @@
- package com.sun.script.javascript;
- import com.sun.script.util.*;
- import javax.script.*;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
- import java.lang.reflect.Method;
- import java.io.*;
- import java.util.*;
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
b/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
-@@ -26,7 +26,7 @@
- package com.sun.script.javascript;
- import javax.script.*;
- import java.util.*;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
- import com.sun.script.util.*;
-
- /**
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
b/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
-@@ -25,7 +25,7 @@
-
- package com.sun.script.javascript;
-
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
- import javax.script.*;
-
- /**
-diff --git a/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
b/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
---- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
-+++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
-@@ -27,7 +27,7 @@
-
- import java.lang.reflect.*;
- import static sun.security.util.SecurityConstants.*;
--import sun.org.mozilla.javascript.internal.*;
-+import sun.org.mozilla.javascript.*;
-
- /**
- * This wrap factory is used for security reasons. JSR 223 script
diff --git a/sources b/sources
index be5fdce..0fe71d5 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,3 @@
-53f5d8cfe1c1aa478cb0fb64ba149967 class-rewriter.tar.gz
e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
-71577c85c00f488465e0732cdfee73a7 jdk8-b79.tar.gz
+dec2a6b00beb0c6565d5d93e55316093 jdk8-b87.tar.gz
94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
diff --git a/system-giflib.patch b/system-giflib.patch
deleted file mode 100644
index 3a594de..0000000
--- a/system-giflib.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
---- jdk8/common/autoconf/libraries.m4
-+++ jdk8/common/autoconf/libraries.m4
-@@ -499,11 +499,40 @@
- # Check for the gif library
- #
-
--USE_EXTERNAL_LIBJPEG=true
--AC_CHECK_LIB(gif, main, [],
-- [ USE_EXTERNAL_LIBGIF=false
-- AC_MSG_NOTICE([Will use gif decoder bundled with the OpenJDK source])
-- ])
-+AC_ARG_WITH(giflib, [AS_HELP_STRING([--with-giflib],
-+ [use giflib from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
-+
-+AC_CHECK_LIB(gif, DGifGetCode,
-+ [ GIFLIB_FOUND=yes ],
-+ [ GIFLIB_FOUND=no ])
-+
-+AC_MSG_CHECKING([for which giflib to use])
-+
-+# default is bundled
-+DEFAULT_GIFLIB=bundled
-+
-+#
-+# if user didn't specify, use DEFAULT_GIFLIB
-+#
-+if test "x${with_giflib}" = "x"; then
-+ with_giflib=${DEFAULT_GIFLIB}
-+fi
-+
-+
-+if test "x${with_giflib}" = "xbundled"; then
-+ USE_EXTERNAL_LIBGIF=false
-+ AC_MSG_RESULT([bundled])
-+elif test "x${with_giflib}" = "xsystem"; then
-+ if test "x${GIFLIB_FOUND}" = "xyes"; then
-+ USE_EXTERNAL_LIBGIF=true
-+ AC_MSG_RESULT([system])
-+ else
-+ AC_MSG_RESULT([system not found])
-+ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])
-+ fi
-+else
-+ AC_MSG_ERROR([Invalid value of --with-giflib: ${with_giflib}, use 'system'
or 'bundled'])
-+fi
- AC_SUBST(USE_EXTERNAL_LIBGIF)
-
- ###############################################################################
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -2385,18 +2385,23 @@
-
- ifndef BUILD_HEADLESS_ONLY
- LIBSPLASHSCREEN_DIRS:=\
-- $(JDK_TOPDIR)/src/share/native/sun/awt/giflib \
- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
- $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
-
-+ifeq ($(USE_EXTERNAL_LIBGIF),true)
-+ LIBGIF := -lgif
-+else
-+ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
-+ LIBGIF_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
-+endif
-+
- ifneq ($(OPENJDK_TARGET_OS), macosx)
- LIBSPLASHSCREEN_DIRS +=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
- else
- LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
- endif
-
--
- LIBSPLASHSCREEN_CFLAGS:=-DSPLASHSCREEN -DPNG_NO_MMX_CODE \
- $(foreach dir,$(LIBSPLASHSCREEN_DIRS),-I$(dir))
-
-@@ -2448,11 +2453,11 @@
- EXCLUDE_FILES:=imageioJPEG.c jpegdecoder.c pngtest.c,\
- LANG:=C,\
- OPTIMIZATION:=LOW, \
-- CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB),\
-+ CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) -I$(LIBGIF_CFLAGS),\
- MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
- LDFLAGS:=$(LDFLAGS_JDKLIB) \
- $(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF),\
- LDFLAGS_SUFFIX_solaris:=-lc,\
- VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
- RC_FLAGS:=$(RC_FLAGS)\
-diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
b/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
---- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
-+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
-@@ -26,7 +26,7 @@
- #include "splashscreen_impl.h"
- #include "splashscreen_gfx.h"
-
--#include "../giflib/gif_lib.h"
-+#include "gif_lib.h"
-
- #define GIF_TRANSPARENT 0x01
- #define GIF_USER_INPUT 0x02
diff --git a/system-lcms.patch b/system-lcms.patch
index ea8e94b..59ee908 100644
--- a/system-lcms.patch
+++ b/system-lcms.patch
@@ -48,12 +48,12 @@ diff --git a/common/autoconf/libraries.m4
b/common/autoconf/libraries.m4
# Check for the zlib library
#
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+diff --git jdk8/jdk/makefiles/CompileNativeLibraries.gmk
jdk8/jdk/makefiles/CompileNativeLibraries.gmk
--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1213,8 +1213,8 @@
+@@ -1214,8 +1214,8 @@
+
##########################################################################################
- ifdef OPENJDK
# TODO: Update awt lib path when awt is converted
- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
- LIBRARY:=lcms,\
@@ -62,7 +62,7 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
LANG:=C,\
-@@ -1232,18 +1232,18 @@
+@@ -1233,18 +1233,18 @@
LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
@@ -73,7 +73,7 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
- -D "JDK_FNAME=lcms.dll" \
- -D "JDK_INTERNAL_NAME=lcms" \
+ -D "JDK_FNAME=javalcms.dll" \
-+ -D "JDK_INTERNAL_NAME=javalcms" \
++ -D "JDK_INTERNAL_NAME=libjavalcms" \
-D "JDK_FTYPE=0x2L",\
OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
@@ -84,18 +84,18 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
+ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
+
+ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
- endif
##########################################################################################
-diff --git a/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
b/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+
+diff --git jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
-@@ -95,7 +95,7 @@
- * disposer frameworks
- */
- System.loadLibrary("awt");
-- System.loadLibrary("lcms");
-+ System.loadLibrary("javalcms");
- return null;
- }
- }
+@@ -164,7 +164,7 @@
+ * disposer frameworks
+ */
+ System.loadLibrary("awt");
+- System.loadLibrary("lcms");
++ System.loadLibrary("javalcms");
+ return null;
+ }
+ });
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
index fba0a3a..d1c5989 100644
--- a/system-libjpeg.patch
+++ b/system-libjpeg.patch
@@ -139,8 +139,8 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
LDFLAGS:=$(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF),\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg,\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
LDFLAGS_SUFFIX_solaris:=-lc,\
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
RC_FLAGS:=$(RC_FLAGS)\
diff --git a/system-libpng.patch b/system-libpng.patch
index 2a2fc62..0fceb6b 100644
--- a/system-libpng.patch
+++ b/system-libpng.patch
@@ -64,8 +64,8 @@ diff --git a/makefiles/CompileNativeLibraries.gmk
b/makefiles/CompileNativeLibra
MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
LDFLAGS:=$(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN),\
-- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg,\
-+ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg -lpng,\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg,\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS) -ljpeg
-lpng,\
LDFLAGS_SUFFIX_solaris:=-lc,\
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
RC_FLAGS:=$(RC_FLAGS)\
commit 68a71d97921d1ddf385168f2c81bcebe3608aae0
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Apr 29 21:10:41 2013 -0400
Ignore build warnings in SCTP using make command
diff --git a/disable-werror.patch b/disable-werror.patch
deleted file mode 100644
index 175c4b4..0000000
--- a/disable-werror.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
---- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-+++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
-@@ -1980,10 +1980,7 @@
-
- ifneq ($(OPENJDK_TARGET_OS),macosx)
-
-- SCTP_WERROR := -Werror
-- ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
-- SCTP_WERROR :=
-- endif
-+ SCTP_WERROR :=
-
- $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
- LIBRARY:=sctp,\
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a755327..5e96a95 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -199,8 +199,6 @@ Patch102: %{name}-size_t.patch
# Patch for PPC/PPC64
Patch103: %{name}-ppc-zero-hotspot.patch
-Patch104: disable-werror.patch
-
Patch200: system-giflib.patch
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
@@ -352,7 +350,6 @@ The OpenJDK API documentation.
cp %{SOURCE2} .
# OpenJDK patches
-%patch104
# Rhino patch
%patch100
@@ -474,7 +471,7 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC"
-make DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
+make SCTP_WERROR= DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
popd >& /dev/null
commit 7245ea2af12dbb0d9c4e86e3190fe0d153460b96
Author: Omair Majid <omajid(a)redhat.com>
Date: Mon Apr 29 20:12:27 2013 -0400
Remove all patches modifying the old build system
diff --git a/java-1.8.0-openjdk-arm-fixes.patch b/java-1.8.0-openjdk-arm-fixes.patch
deleted file mode 100644
index de6cc2f..0000000
--- a/java-1.8.0-openjdk-arm-fixes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up jdk8/jdk/make/jdk_generic_profile.sh.sav
openjdk/jdk/make/jdk_generic_profile.sh
---- jdk8/jdk/make/jdk_generic_profile.sh.sav 2012-02-14 16:12:48.000000000 -0500
-+++ jdk8/jdk/make/jdk_generic_profile.sh 2012-03-07 17:31:26.154840740 -0500
-@@ -280,7 +280,7 @@ if [ "${ZERO_BUILD}" = true ] ; then
-
- # ZERO_ENDIANNESS is the endianness of the processor
- case "${ZERO_LIBARCH}" in
-- i386|amd64|ia64)
-+ i386|amd64|ia64|arm)
- ZERO_ENDIANNESS=little
- ;;
- ppc*|s390*|sparc*|alpha)
-@@ -307,6 +307,9 @@ if [ "${ZERO_BUILD}" = true ] ; then
- s390)
- ZERO_ARCHFLAG="-m31"
- ;;
-+ arm)
-+ ZERO_ARCHFLAG="-D_LITTLE_ENDIAN"
-+ ;;
- *)
- ZERO_ARCHFLAG="-m${ARCH_DATA_MODEL}"
- esac
diff --git a/java-1.8.0-openjdk-freetype-check-fix.patch
b/java-1.8.0-openjdk-freetype-check-fix.patch
deleted file mode 100644
index a671cce..0000000
--- a/java-1.8.0-openjdk-freetype-check-fix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up jdk8/jdk/make/common/shared/Sanity.gmk.sav
openjdk/jdk/make/common/shared/Sanity.gmk
---- jdk8/jdk/make/common/shared/Sanity.gmk.sav 2012-02-14 16:12:48.000000000 -0500
-+++ jdk8/jdk/make/common/shared/Sanity.gmk 2012-03-07 17:31:26.153840755 -0500
-@@ -814,12 +814,12 @@ ifdef OPENJDK
- @(($(CD) $(BUILDDIR)/tools/freetypecheck && $(MAKE)) || \
- $(ECHO) "Failed to build freetypecheck." ) > $@
-
-- sane-freetype: $(TEMPDIR)/freetypeinfo
-- @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
-- $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
-- " or higher is required. \n" \
-- "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
-- fi
-+# sane-freetype: $(TEMPDIR)/freetypeinfo
-+# @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
-+# $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
-+# " or higher is required. \n" \
-+# "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
-+# fi
- else
- #do nothing (cross-compiling)
- sane-freetype:
diff --git a/java-1.8.0-openjdk-ppc-zero-corba.patch
b/java-1.8.0-openjdk-ppc-zero-corba.patch
deleted file mode 100644
index c5b68c8..0000000
--- a/java-1.8.0-openjdk-ppc-zero-corba.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up jdk8/corba/make/common/shared/Defs-java.gmk.ppc
openjdk/corba/make/common/shared/Defs-java.gmk
---- jdk8/corba/make/common/shared/Defs-java.gmk.ppc 2012-03-24 11:44:34.450072733 +0100
-+++ jdk8/corba/make/common/shared/Defs-java.gmk 2012-03-24 11:44:53.300073137 +0100
-@@ -79,9 +79,9 @@ JAVAC_JVM_FLAGS =
-
- # 64-bit builds require a larger thread stack size.
- ifeq ($(ARCH_DATA_MODEL), 32)
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
- else
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
- endif
- JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
-
diff --git a/java-1.8.0-openjdk-ppc-zero-jdk.patch
b/java-1.8.0-openjdk-ppc-zero-jdk.patch
deleted file mode 100644
index 82026a9..0000000
--- a/java-1.8.0-openjdk-ppc-zero-jdk.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- jdk8/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
-+++ jdk8/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
-@@ -83,9 +83,9 @@
-
- # 64-bit builds require a larger thread stack size.
- ifeq ($(ARCH_DATA_MODEL), 32)
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
- else
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
- endif
- JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 2e5abac..a755327 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -196,16 +196,10 @@ Patch100: rhino.patch
Patch101: %{name}-bitmap.patch
Patch102: %{name}-size_t.patch
-# Patches for Arm
-Patch103: %{name}-arm-fixes.patch
-
# Patch for PPC/PPC64
-Patch104: %{name}-ppc-zero-jdk.patch
-Patch105: %{name}-ppc-zero-hotspot.patch
-Patch106: %{name}-ppc-zero-corba.patch
+Patch103: %{name}-ppc-zero-hotspot.patch
-Patch107: %{name}-freetype-check-fix.patch
-Patch109: disable-werror.patch
+Patch104: disable-werror.patch
Patch200: system-giflib.patch
Patch201: system-libjpeg.patch
@@ -358,7 +352,7 @@ The OpenJDK API documentation.
cp %{SOURCE2} .
# OpenJDK patches
-%patch109
+%patch104
# Rhino patch
%patch100
@@ -381,18 +375,9 @@ sh %{SOURCE12}
%patch102
%endif
-# Arm fixes
-%ifarch %{arm}
-%patch103
-%endif
-
-%patch107
-
%ifarch ppc %{power64}
# PPC fixes
-%patch104
-%patch105
-%patch106
+%patch103
%endif
commit e4ce1fa3d829d66965cdad89ebadc38b302e2230
Author: Karsten Hopp <karsten(a)redhat.com>
Date: Tue Apr 23 12:17:43 2013 +0200
update java-1.8.0-openjdk-ppc-zero-hotspot patch
diff --git a/java-1.8.0-openjdk-ppc-zero-hotspot.patch
b/java-1.8.0-openjdk-ppc-zero-hotspot.patch
index 03b8aa1..ddadce8 100644
--- a/java-1.8.0-openjdk-ppc-zero-hotspot.patch
+++ b/java-1.8.0-openjdk-ppc-zero-hotspot.patch
@@ -1,5 +1,6 @@
---- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23
10:57:01.000000000 -0400
-+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23
10:57:00.000000000 -0400
+diff -up jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64
jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+--- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 2013-02-22
19:02:06.000000000 +0100
++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2013-04-18
16:21:24.897403406 +0200
@@ -32,11 +32,11 @@
//
@@ -13,5 +14,5 @@
-define_pd_global(intx, VMThreadStackSize, 512);
+define_pd_global(intx, VMThreadStackSize, 1152);
#endif // _LP64
- define_pd_global(intx, SurvivorRatio, 8);
define_pd_global(intx, CompilerThreadStackSize, 0);
+ define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 3279ecb..2e5abac 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -4,7 +4,7 @@
%global jdk8_version b79
%global hg_tag jdk8-%{jdk8_version}
-%global multilib_arches ppc64 sparc64 x86_64
+%global multilib_arches %{power64} sparc64 x86_64
%global jit_arches %{ix86} x86_64 sparcv9 sparc64
@@ -17,7 +17,7 @@
%global archinstall ppc
%global archdef PPC
%endif
-%ifarch ppc64
+%ifarch %{power64}
%global archbuild ppc64
%global archinstall ppc64
%global archdef PPC
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.3.%{jdk8_version}%{?dist}
+Release: 0.4.%{jdk8_version}%{?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
@@ -388,7 +388,7 @@ sh %{SOURCE12}
%patch107
-%ifarch ppc ppc64
+%ifarch ppc %{power64}
# PPC fixes
%patch104
%patch105
@@ -428,7 +428,7 @@ export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null ||
:`
export NUM_PROC=${NUM_PROC:-1}
# Build IcedTea and OpenJDK.
-%ifarch s390x sparc64 alpha ppc64
+%ifarch s390x sparc64 alpha %{power64}
export ARCH_DATA_MODEL=64
%endif
%ifarch alpha
@@ -962,6 +962,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Tue Apr 23 2013 Karsten Hopp <karsten(a)redhat.com> 1:1.8.0.0-0.4.b79
+- update java-1.8.0-openjdk-ppc-zero-hotspot patch
+- use power64 macro
+
* Thu Mar 28 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.3.b79
- Add build fix for zero
- Drop gstabs fixes; enable full debug info instead
commit b9ff0a88434b0954ff5949a5ad6717f6619b6d83
Author: Omair Majid <omajid(a)redhat.com>
Date: Thu Mar 28 19:12:15 2013 -0400
Add build fix for zero
diff --git a/dont-use-gstabs.patch b/dont-use-gstabs.patch
deleted file mode 100644
index 922c76e..0000000
--- a/dont-use-gstabs.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git jdk8/hotspot/make/linux/makefiles/gcc.make
jdk8/hotspot/make/linux/makefiles/gcc.make
---- jdk8/hotspot/make/linux/makefiles/gcc.make
-+++ jdk8/hotspot/make/linux/makefiles/gcc.make
-@@ -234,6 +234,7 @@
- # (warning: that could easily inflate libjvm.so to 150M!)
- # Note: The Itanium gcc compiler crashes when using -gstabs.
- DEBUG_CFLAGS/ia64 = -g
-+ DEBUG_CFLAGS/i486 = -g
- DEBUG_CFLAGS/amd64 = -g
- DEBUG_CFLAGS/arm = -g
- DEBUG_CFLAGS/ppc = -g
-@@ -244,6 +245,7 @@
-
- ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
- FASTDEBUG_CFLAGS/ia64 = -g
-+ FASTDEBUG_CFLAGS/i486 = -g
- FASTDEBUG_CFLAGS/amd64 = -g
- FASTDEBUG_CFLAGS/arm = -g
- FASTDEBUG_CFLAGS/ppc = -g
-@@ -253,6 +255,7 @@
- endif
-
- OPT_CFLAGS/ia64 = -g
-+ OPT_CFLAGS/i486 = -g
- OPT_CFLAGS/amd64 = -g
- OPT_CFLAGS/arm = -g
- OPT_CFLAGS/ppc = -g
diff --git a/fix-zero-build.patch b/fix-zero-build.patch
new file mode 100644
index 0000000..a2defd5
--- /dev/null
+++ b/fix-zero-build.patch
@@ -0,0 +1,158 @@
+--- jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:56.137703554 -0400
++++ jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:55.674699054 -0400
+@@ -94,8 +94,11 @@
+ $(IMAGES_OUTPUTDIR)/lib/tools.jar \
+ $(IMAGES_OUTPUTDIR)/lib/ct.sym \
+ $(IMAGES_OUTPUTDIR)/src.zip \
+- $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar \
+- $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
++ $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
++
++ifeq ($(INCLUDE_SA),true)
++ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
++endif
+
+ ifeq ($(OPENJDK_TARGET_OS),solaris)
+ ifndef OPENJDK
+--- jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:44.110332528 -0400
++++ jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:43.915330640 -0400
+@@ -75,6 +75,19 @@
+ # If yes then this expands to _LP64:=1
+ @LP64@
+
++# Legacy settings for zero
++ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN)
++ZERO_LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
++ZERO_ARCHDEF=@ZERO_ARCHDEF@
++ZERO_ARCHFLAG=@ZERO_ARCHFLAG@
++LIBFFI_CFLAGS=@LIBFFI_CFLAGS@
++LIBFFI_LIBS=@LIBFFI_LIBS@
++
++# Legacy settings for zeroshark
++LLVM_CFLAGS=@LLVM_CFLAGS@
++LLVM_LIBS=@LLVM_LIBS@
++LLVM_LDFLAGS=@LLVM_LDFLAGS@
++
+ ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
+ ALT_EXPORT_PATH=$(HOTSPOT_DIST)
+
+--- jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.905349901 -0400
++++ jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.632347258 -0400
+@@ -662,7 +662,7 @@
+ AC_MSG_CHECKING([how to link with libstdc++])
+ # If dynamic was requested, it's available since it would fail above otherwise.
+ # If dynamic wasn't requested, go with static unless it isn't available.
+- if test "x$with_stdc__lib" = xdynamic || test
"x$has_static_libstdcxx" = xno; then
++ if test "x$with_stdc__lib" = xdynamic || test
"x$has_static_libstdcxx" = xno || test "x$JVM_VARIANT_ZEROSHARK" =
xtrue; then
+ LIBCXX="$LIBCXX -lstdc++"
+ LDCXX="$CXX"
+ STATIC_CXX_SETTING="STATIC_CXX=false"
+@@ -676,6 +676,59 @@
+ fi
+ AC_SUBST(STATIC_CXX_SETTING)
+
++if test "x$JVM_VARIANT_ZERO" = xtrue || test
"x$JVM_VARIANT_ZEROSHARK" = xtrue; then
++ # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
++ PKG_CHECK_MODULES([LIBFFI], [libffi])
++
++fi
++
++if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
++ AC_CHECK_PROG([LLVM_CONFIG], [llvm-config], [llvm-config])
++
++ if test "x$LLVM_CONFIG" != xllvm-config; then
++ AC_MSG_ERROR([llvm-config not found in $PATH.])
++ fi
++
++ llvm_components="jit mcjit engine nativecodegen native"
++ unset LLVM_CFLAGS
++ for flag in $("$LLVM_CONFIG" --cxxflags); do
++ if echo "${flag}" | grep -q '^-@<:@ID@:>@'; then
++ if test "${flag}" != "-D_DEBUG" ; then
++ if test "${LLVM_CFLAGS}" != "" ; then
++ LLVM_CFLAGS="${LLVM_CFLAGS} "
++ fi
++ LLVM_CFLAGS="${LLVM_CFLAGS}${flag}"
++ fi
++ fi
++ done
++ llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//;
s/svn.*//')
++ LLVM_CFLAGS="${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}"
++
++ unset LLVM_LDFLAGS
++ for flag in $("${LLVM_CONFIG}" --ldflags); do
++ if echo "${flag}" | grep -q '^-L'; then
++ if test "${LLVM_LDFLAGS}" != ""; then
++ LLVM_LDFLAGS="${LLVM_LDFLAGS} "
++ fi
++ LLVM_LDFLAGS="${LLVM_LDFLAGS}${flag}"
++ fi
++ done
++
++ unset LLVM_LIBS
++ for flag in $("${LLVM_CONFIG}" --libs ${llvm_components}); do
++ if echo "${flag}" | grep -q '^-l'; then
++ if test "${LLVM_LIBS}" != ""; then
++ LLVM_LIBS="${LLVM_LIBS} "
++ fi
++ LLVM_LIBS="${LLVM_LIBS}${flag}"
++ fi
++ done
++
++ AC_SUBST(LLVM_CFLAGS)
++ AC_SUBST(LLVM_LDFLAGS)
++ AC_SUBST(LLVM_LIBS)
++fi
++
+ # libCrun is the c++ runtime-library with SunStudio (roughly the equivalent of gcc's
libstdc++.so)
+ if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$LIBCXX"
= x; then
+ LIBCXX="/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
+--- jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.585366160 -0400
++++ jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.389364263 -0400
+@@ -332,6 +332,29 @@
+ DEFINE_CROSS_COMPILE_ARCH=""
+ fi
+ AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
++
++ # Some Zero and Shark settings.
++ # ZERO_ARCHFLAG tells the compiler which mode to build for
++ case "${OPENJDK_TARGET_CPU}" in
++ s390)
++ ZERO_ARCHFLAG="-m31"
++ ;;
++ *)
++ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
++ esac
++ AC_SUBST(ZERO_ARCHFLAG)
++
++ # ZERO_ARCHDEF is used to enable architecture-specific code
++ case "${OPENJDK_TARGET_CPU}" in
++ ppc*) ZERO_ARCHDEF=PPC ;;
++ s390*) ZERO_ARCHDEF=S390 ;;
++ sparc*) ZERO_ARCHDEF=SPARC ;;
++ x86_64*) ZERO_ARCHDEF=AMD64 ;;
++ x86) ZERO_ARCHDEF=IA32 ;;
++ *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z
A-Z)
++ esac
++ AC_SUBST(ZERO_ARCHDEF)
++
+ ])
+
+ AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
+--- jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:49.065380483 -0400
++++ jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:48.870378596 -0400
+@@ -634,6 +634,14 @@
+ # Name of Service Agent library
+ SALIB_NAME=@SALIB_NAME@
+
++INCLUDE_SA:=true
++ifeq ($(JVM_VARIANT_ZERO),true)
++ INCLUDE_SA:=false
++endif
++ifeq ($(JVM_VARIANT_ZEROSHARK),true)
++ INCLUDE_SA:=false
++endif
++
+ OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
+ OS_VERSION_MINOR:=@OS_VERSION_MINOR@
+ OS_VERSION_MICRO:=@OS_VERSION_MICRO@
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 21809e4..3279ecb 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
-Release: 0.1.%{jdk8_version}%{?dist}
+Release: 0.3.%{jdk8_version}%{?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
@@ -205,13 +205,13 @@ Patch105: %{name}-ppc-zero-hotspot.patch
Patch106: %{name}-ppc-zero-corba.patch
Patch107: %{name}-freetype-check-fix.patch
-Patch108: dont-use-gstabs.patch
Patch109: disable-werror.patch
Patch200: system-giflib.patch
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
+Patch204: fix-zero-build.patch
BuildRequires: autoconf
BuildRequires: automake
@@ -358,7 +358,6 @@ The OpenJDK API documentation.
cp %{SOURCE2} .
# OpenJDK patches
-%patch108
%patch109
# Rhino patch
@@ -372,6 +371,7 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
+%patch204
%patch4
@@ -475,6 +475,9 @@ mkdir -p %{buildoutputdir}
pushd %{buildoutputdir}
bash ../../configure \
+%ifnarch %{jit_arches}
+ --with-jvm-variants=zero \
+%endif
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@@ -486,7 +489,7 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC"
-make DISABLE_INTREE_EC=true LOG=trace all
+make DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
popd >& /dev/null
@@ -921,9 +924,7 @@ exit 0
%{_mandir}/man1/javah-%{name}.1*
%{_mandir}/man1/javap-%{name}.1*
%{_mandir}/man1/jconsole-%{name}.1*
-%ifarch %{jit_arches} # Only in u4+
%{_mandir}/man1/jcmd-%{name}.1*
-%endif
%{_mandir}/man1/jdb-%{name}.1*
%{_mandir}/man1/jhat-%{name}.1*
%{_mandir}/man1/jinfo-%{name}.1*
@@ -961,6 +962,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Thu Mar 28 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.3.b79
+- Add build fix for zero
+- Drop gstabs fixes; enable full debug info instead
+
* Wed Mar 13 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.2.b79
- Fix alternatives priority
commit 26175389ae36a61849770cfea13426b289144ea1
Author: Omair Majid <omajid(a)redhat.com>
Date: Wed Mar 13 12:34:36 2013 -0400
Fix alternatives priority
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index f56e9dd..21809e4 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -94,8 +94,8 @@
# Standard JPackage naming and versioning defines.
%global origin openjdk
%global buildver 0
-# Keep priority on 5digits in case buildver>9
-%global priority 1800%{buildver}
+# priority must be 6 digits in total
+%global priority 18000%{buildver}
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
@@ -961,6 +961,9 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
+* Wed Mar 13 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.2.b79
+- Fix alternatives priority
+
* Tue Mar 12 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.1.b79.f19
- Update to jdk8-b79
- Initial version for Fedora 19
commit ff9254ee03799a98689692ee9ae060b3a31af213
Author: Omair Majid <omajid(a)redhat.com>
Date: Tue Mar 12 09:35:26 2013 -0400
Initial version
diff --git a/.gitignore b/.gitignore
index e69de29..d942194 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/class-rewriter.tar.gz
+/desktop-files.tar.gz
+/jdk8-b79.tar.gz
+/systemtap-tapset.tar.gz
diff --git a/README.src b/README.src
new file mode 100644
index 0000000..b5f06d1
--- /dev/null
+++ b/README.src
@@ -0,0 +1,2 @@
+The java-1.8.0-openjdk-src subpackage contains the complete OpenJDK 8
+class library source code for use by IDE indexers and debuggers.
diff --git a/TestCryptoLevel.java b/TestCryptoLevel.java
new file mode 100644
index 0000000..b32b7ae
--- /dev/null
+++ b/TestCryptoLevel.java
@@ -0,0 +1,72 @@
+/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
+ Copyright (C) 2012 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <
http://www.gnu.org/licenses/>.
+*/
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+import java.security.Permission;
+import java.security.PermissionCollection;
+
+public class TestCryptoLevel
+{
+ public static void main(String[] args)
+ throws NoSuchFieldException, ClassNotFoundException,
+ IllegalAccessException, InvocationTargetException
+ {
+ Class<?> cls = null;
+ Method def = null, exempt = null;
+
+ try
+ {
+ cls = Class.forName("javax.crypto.JceSecurity");
+ }
+ catch (ClassNotFoundException ex)
+ {
+ System.err.println("Running a non-Sun JDK.");
+ System.exit(0);
+ }
+ try
+ {
+ def = cls.getDeclaredMethod("getDefaultPolicy");
+ exempt = cls.getDeclaredMethod("getExemptPolicy");
+ }
+ catch (NoSuchMethodException ex)
+ {
+ System.err.println("Running IcedTea with the original crypto patch.");
+ System.exit(0);
+ }
+ def.setAccessible(true);
+ exempt.setAccessible(true);
+ PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
+ PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
+ Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
+ Field apField = apCls.getDeclaredField("INSTANCE");
+ apField.setAccessible(true);
+ Permission allPerms = (Permission) apField.get(null);
+ if (defPerms.implies(allPerms) && (exemptPerms == null ||
exemptPerms.implies(allPerms)))
+ {
+ System.err.println("Running with the unlimited policy.");
+ System.exit(0);
+ }
+ else
+ {
+ System.err.println("WARNING: Running with a restricted crypto
policy.");
+ System.exit(-1);
+ }
+ }
+}
diff --git a/disable-werror.patch b/disable-werror.patch
new file mode 100644
index 0000000..175c4b4
--- /dev/null
+++ b/disable-werror.patch
@@ -0,0 +1,15 @@
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1980,10 +1980,7 @@
+
+ ifneq ($(OPENJDK_TARGET_OS),macosx)
+
+- SCTP_WERROR := -Werror
+- ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
+- SCTP_WERROR :=
+- endif
++ SCTP_WERROR :=
+
+ $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
+ LIBRARY:=sctp,\
diff --git a/dont-use-gstabs.patch b/dont-use-gstabs.patch
new file mode 100644
index 0000000..922c76e
--- /dev/null
+++ b/dont-use-gstabs.patch
@@ -0,0 +1,27 @@
+diff --git jdk8/hotspot/make/linux/makefiles/gcc.make
jdk8/hotspot/make/linux/makefiles/gcc.make
+--- jdk8/hotspot/make/linux/makefiles/gcc.make
++++ jdk8/hotspot/make/linux/makefiles/gcc.make
+@@ -234,6 +234,7 @@
+ # (warning: that could easily inflate libjvm.so to 150M!)
+ # Note: The Itanium gcc compiler crashes when using -gstabs.
+ DEBUG_CFLAGS/ia64 = -g
++ DEBUG_CFLAGS/i486 = -g
+ DEBUG_CFLAGS/amd64 = -g
+ DEBUG_CFLAGS/arm = -g
+ DEBUG_CFLAGS/ppc = -g
+@@ -244,6 +245,7 @@
+
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ FASTDEBUG_CFLAGS/ia64 = -g
++ FASTDEBUG_CFLAGS/i486 = -g
+ FASTDEBUG_CFLAGS/amd64 = -g
+ FASTDEBUG_CFLAGS/arm = -g
+ FASTDEBUG_CFLAGS/ppc = -g
+@@ -253,6 +255,7 @@
+ endif
+
+ OPT_CFLAGS/ia64 = -g
++ OPT_CFLAGS/i486 = -g
+ OPT_CFLAGS/amd64 = -g
+ OPT_CFLAGS/arm = -g
+ OPT_CFLAGS/ppc = -g
diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh
new file mode 100755
index 0000000..1463e97
--- /dev/null
+++ b/generate_source_tarball.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+VERSION=$1
+REV=$2
+JDK8_URL=http://hg.openjdk.java.net/jdk8/jdk8
+
+if test "x${VERSION}" = "x"; then
+ echo "No version specified. A version is of the form 'jdk8-bXX' (such as
'jdk8-b79')"
+ exit -1;
+fi
+
+wget -O root.tar.gz ${JDK8_URL}/archive/${VERSION}.tar.gz
+tar xzf root.tar.gz
+rm -f root.tar.gz
+mv jdk8-${VERSION} jdk8
+rm -f jdk8/.hg*
+pushd jdk8
+
+for repos in corba jaxp jaxws langtools hotspot jdk
+do
+ wget -O $repos.tar.gz ${JDK8_URL}/${repos}/archive/${VERSION}.tar.gz
+ tar xzf $repos.tar.gz
+ rm -f $repos.tar.gz
+ mv $repos-${VERSION} $repos
+ rm -f $repos/.hg*
+done
+
+rm -rvf jdk/src/share//native/sun/security/ec/impl
+
+popd
+tar czf ${VERSION}.tar.gz jdk8
diff --git a/generate_tarballs.sh b/generate_tarballs.sh
new file mode 100755
index 0000000..819e70c
--- /dev/null
+++ b/generate_tarballs.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+VERSION=3506c375241e
+ICEDTEA_URL=http://icedtea.classpath.org/hg/icedtea7/
+
+wget -O icedtea7.tar.gz ${ICEDTEA_URL}/archive/${VERSION}.tar.gz
+tar xzf icedtea7.tar.gz
+rm -f icedtea7.tar.gz
+pushd icedtea7-${VERSION}
+
+# rewriter
+tar cvzf class-rewriter.tar.gz rewriter
+mv class-rewriter.tar.gz ../
+
+# desktop files
+tar cvzf desktop-files.tar.gz jconsole.desktop policytool.desktop
+mv desktop-files.tar.gz ../
+
+# tapsets
+mv tapset/hotspot{,-1.8.0}.stp.in || exit 1
+mv tapset/hotspot_gc{,-1.8.0}.stp.in || exit 1
+mv tapset/hotspot_jni{,-1.8.0}.stp.in || exit 1
+mv tapset/jstack{,-1.8.0}.stp.in || exit 1
+tar cvzf systemtap-tapset.tar.gz tapset
+mv systemtap-tapset.tar.gz ../
+
+popd
+rm -rf icedtea7-${VERSION}
diff --git a/java-1.8.0-openjdk-accessible-toolkit.patch
b/java-1.8.0-openjdk-accessible-toolkit.patch
new file mode 100644
index 0000000..c177305
--- /dev/null
+++ b/java-1.8.0-openjdk-accessible-toolkit.patch
@@ -0,0 +1,16 @@
+diff -uNr openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java
jdk8/jdk/src/share/classes/java/awt/Toolkit.java
+--- openjdk-orig/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23
11:59:47.000000000 -0500
++++ jdk8/jdk/src/share/classes/java/awt/Toolkit.java 2009-01-23 12:05:20.000000000 -0500
+@@ -871,7 +871,11 @@
+ return null;
+ }
+ });
+- loadAssistiveTechnologies();
++ try {
++ loadAssistiveTechnologies();
++ } catch ( AWTError error) {
++ // ignore silently
++ }
+ } finally {
+ // Make sure to always re-enable the JIT.
+ java.lang.Compiler.enable();
diff --git a/java-1.8.0-openjdk-arm-fixes.patch b/java-1.8.0-openjdk-arm-fixes.patch
new file mode 100644
index 0000000..de6cc2f
--- /dev/null
+++ b/java-1.8.0-openjdk-arm-fixes.patch
@@ -0,0 +1,22 @@
+diff -up jdk8/jdk/make/jdk_generic_profile.sh.sav
openjdk/jdk/make/jdk_generic_profile.sh
+--- jdk8/jdk/make/jdk_generic_profile.sh.sav 2012-02-14 16:12:48.000000000 -0500
++++ jdk8/jdk/make/jdk_generic_profile.sh 2012-03-07 17:31:26.154840740 -0500
+@@ -280,7 +280,7 @@ if [ "${ZERO_BUILD}" = true ] ; then
+
+ # ZERO_ENDIANNESS is the endianness of the processor
+ case "${ZERO_LIBARCH}" in
+- i386|amd64|ia64)
++ i386|amd64|ia64|arm)
+ ZERO_ENDIANNESS=little
+ ;;
+ ppc*|s390*|sparc*|alpha)
+@@ -307,6 +307,9 @@ if [ "${ZERO_BUILD}" = true ] ; then
+ s390)
+ ZERO_ARCHFLAG="-m31"
+ ;;
++ arm)
++ ZERO_ARCHFLAG="-D_LITTLE_ENDIAN"
++ ;;
+ *)
+ ZERO_ARCHFLAG="-m${ARCH_DATA_MODEL}"
+ esac
diff --git a/java-1.8.0-openjdk-bitmap.patch b/java-1.8.0-openjdk-bitmap.patch
new file mode 100644
index 0000000..1b8cc6f
--- /dev/null
+++ b/java-1.8.0-openjdk-bitmap.patch
@@ -0,0 +1,47 @@
+diff -up jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp.s390
openjdk/hotspot/src/share/vm/utilities/bitMap.inline.hpp
+--- jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp.s390 2012-02-10
08:30:46.378435291 -0500
++++ jdk8/hotspot/src/share/vm/utilities/bitMap.inline.hpp 2012-02-10 08:47:27.478427892
-0500
+@@ -52,16 +52,16 @@ inline void BitMap::clear_bit(idx_t bit)
+
+ inline bool BitMap::par_set_bit(idx_t bit) {
+ verify_index(bit);
+- volatile idx_t* const addr = word_addr(bit);
+- const idx_t mask = bit_mask(bit);
+- idx_t old_val = *addr;
++ volatile bm_word_t* const addr = word_addr(bit);
++ const bm_word_t mask = bit_mask(bit);
++ bm_word_t old_val = *addr;
+
+ do {
+- const idx_t new_val = old_val | mask;
++ const bm_word_t new_val = old_val | mask;
+ if (new_val == old_val) {
+ return false; // Someone else beat us to it.
+ }
+- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val,
++ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val,
+ (volatile void*) addr,
+ (void*) old_val);
+ if (cur_val == old_val) {
+@@ -73,16 +73,16 @@ inline bool BitMap::par_set_bit(idx_t bi
+
+ inline bool BitMap::par_clear_bit(idx_t bit) {
+ verify_index(bit);
+- volatile idx_t* const addr = word_addr(bit);
+- const idx_t mask = ~bit_mask(bit);
+- idx_t old_val = *addr;
++ volatile bm_word_t* const addr = word_addr(bit);
++ const bm_word_t mask = ~bit_mask(bit);
++ bm_word_t old_val = *addr;
+
+ do {
+- const idx_t new_val = old_val & mask;
++ const bm_word_t new_val = old_val & mask;
+ if (new_val == old_val) {
+ return false; // Someone else beat us to it.
+ }
+- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val,
++ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val,
+ (volatile void*) addr,
+ (void*) old_val);
+ if (cur_val == old_val) {
diff --git a/java-1.8.0-openjdk-freetype-check-fix.patch
b/java-1.8.0-openjdk-freetype-check-fix.patch
new file mode 100644
index 0000000..a671cce
--- /dev/null
+++ b/java-1.8.0-openjdk-freetype-check-fix.patch
@@ -0,0 +1,22 @@
+diff -up jdk8/jdk/make/common/shared/Sanity.gmk.sav
openjdk/jdk/make/common/shared/Sanity.gmk
+--- jdk8/jdk/make/common/shared/Sanity.gmk.sav 2012-02-14 16:12:48.000000000 -0500
++++ jdk8/jdk/make/common/shared/Sanity.gmk 2012-03-07 17:31:26.153840755 -0500
+@@ -814,12 +814,12 @@ ifdef OPENJDK
+ @(($(CD) $(BUILDDIR)/tools/freetypecheck && $(MAKE)) || \
+ $(ECHO) "Failed to build freetypecheck." ) > $@
+
+- sane-freetype: $(TEMPDIR)/freetypeinfo
+- @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
+- $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
+- " or higher is required. \n" \
+- "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
+- fi
++# sane-freetype: $(TEMPDIR)/freetypeinfo
++# @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
++# $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
++# " or higher is required. \n" \
++# "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
++# fi
+ else
+ #do nothing (cross-compiling)
+ sane-freetype:
diff --git a/java-1.8.0-openjdk-ppc-zero-corba.patch
b/java-1.8.0-openjdk-ppc-zero-corba.patch
new file mode 100644
index 0000000..c5b68c8
--- /dev/null
+++ b/java-1.8.0-openjdk-ppc-zero-corba.patch
@@ -0,0 +1,15 @@
+diff -up jdk8/corba/make/common/shared/Defs-java.gmk.ppc
openjdk/corba/make/common/shared/Defs-java.gmk
+--- jdk8/corba/make/common/shared/Defs-java.gmk.ppc 2012-03-24 11:44:34.450072733 +0100
++++ jdk8/corba/make/common/shared/Defs-java.gmk 2012-03-24 11:44:53.300073137 +0100
+@@ -79,9 +79,9 @@ JAVAC_JVM_FLAGS =
+
+ # 64-bit builds require a larger thread stack size.
+ ifeq ($(ARCH_DATA_MODEL), 32)
+- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
++ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
+ else
+- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
++ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
+ endif
+ JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
+
diff --git a/java-1.8.0-openjdk-ppc-zero-hotspot.patch
b/java-1.8.0-openjdk-ppc-zero-hotspot.patch
new file mode 100644
index 0000000..03b8aa1
--- /dev/null
+++ b/java-1.8.0-openjdk-ppc-zero-hotspot.patch
@@ -0,0 +1,17 @@
+--- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23
10:57:01.000000000 -0400
++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23
10:57:00.000000000 -0400
+@@ -32,11 +32,11 @@
+ //
+
+ define_pd_global(bool, DontYieldALot, false);
+-define_pd_global(intx, ThreadStackSize, 1536);
++define_pd_global(intx, ThreadStackSize, 1664);
+ #ifdef _LP64
+-define_pd_global(intx, VMThreadStackSize, 1024);
++define_pd_global(intx, VMThreadStackSize, 1664);
+ #else
+-define_pd_global(intx, VMThreadStackSize, 512);
++define_pd_global(intx, VMThreadStackSize, 1152);
+ #endif // _LP64
+ define_pd_global(intx, SurvivorRatio, 8);
+ define_pd_global(intx, CompilerThreadStackSize, 0);
diff --git a/java-1.8.0-openjdk-ppc-zero-jdk.patch
b/java-1.8.0-openjdk-ppc-zero-jdk.patch
new file mode 100644
index 0000000..82026a9
--- /dev/null
+++ b/java-1.8.0-openjdk-ppc-zero-jdk.patch
@@ -0,0 +1,14 @@
+--- jdk8/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
++++ jdk8/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
+@@ -83,9 +83,9 @@
+
+ # 64-bit builds require a larger thread stack size.
+ ifeq ($(ARCH_DATA_MODEL), 32)
+- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
++ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
+ else
+- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
++ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
+ endif
+ JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
+
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
new file mode 100644
index 0000000..38ab45f
--- /dev/null
+++ b/java-1.8.0-openjdk-size_t.patch
@@ -0,0 +1,179 @@
+diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+---
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
++++
jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+@@ -2677,7 +2677,7 @@
+ if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
+ size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
+ n_blks += CMSOldPLABReactivityFactor*multiple*n_blks;
+- n_blks = MIN2(n_blks, CMSOldPLABMax);
++ n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
+ }
+ assert(n_blks > 0, "Error");
+ _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
+diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+@@ -3538,7 +3538,7 @@
+ // of things to do) or totally (at the very end).
+ size_t target_size;
+ if (partially) {
+- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
++ target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)
GCDrainStackTargetSize);
+ } else {
+ target_size = 0;
+ }
+@@ -4318,7 +4318,7 @@
+ // The > 0 check is to deal with the prev and next live bytes which
+ // could be 0.
+ if (*hum_bytes > 0) {
+- bytes = MIN2(HeapRegion::GrainBytes, *hum_bytes);
++ bytes = MIN2(HeapRegion::GrainBytes, (size_t)*hum_bytes);
+ *hum_bytes -= bytes;
+ }
+ return bytes;
+diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+@@ -1700,7 +1700,7 @@
+
+ verify_region_sets_optional();
+
+- size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes);
++ size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes);
+ ergo_verbose1(ErgoHeapSizing,
+ "attempt heap expansion",
+ ergo_format_reason("allocation request failed")
+diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+@@ -840,7 +840,7 @@
+ // This can be done by either mutator threads together with the
+ // concurrent refinement threads or GC threads.
+ int HeapRegionRemSet::num_par_rem_sets() {
+- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
ParallelGCThreads);
++ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(),
(size_t)ParallelGCThreads);
+ }
+
+ HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
+diff --git a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+@@ -188,7 +188,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,
+- ParGCDesiredObjsFromOverflowList,
++ (size_t)ParGCDesiredObjsFromOverflowList,
+ num_overflow_elems);
+ // Transfer the most recent num_take_elems from the overflow
+ // stack to our work queue.
+diff --git a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
+--- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
++++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
+@@ -69,7 +69,7 @@
+ if (_virtual_space != NULL && _virtual_space->expand_by(bytes)) {
+ _region_start = covered_region.start();
+ _region_size = covered_region.word_size();
+- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr();
++ BitMap::bm_word_t* map =
(BitMap::bm_word_t*)_virtual_space->reserved_low_addr();
+ _beg_bits.set_map(map);
+ _beg_bits.set_size(bits / 2);
+ _end_bits.set_map(map + words / 2);
+diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/collectorPolicy.cpp
+--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp
+@@ -357,7 +357,7 @@
+ // generally small compared to the NewRatio calculation.
+ _min_gen0_size = NewSize;
+ desired_new_size = NewSize;
+- max_new_size = MAX2(max_new_size, NewSize);
++ max_new_size = MAX2(max_new_size, (size_t)NewSize);
+ } else {
+ // For the case where NewSize is the default, use NewRatio
+ // to size the minimum and initial generation sizes.
+@@ -365,10 +365,10 @@
+ // NewRatio is overly large, the resulting sizes can be too
+ // small.
+ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
+- NewSize);
++ (size_t)NewSize);
+ desired_new_size =
+ MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()),
+- NewSize);
++ (size_t)NewSize);
+ }
+
+ assert(_min_gen0_size > 0, "Sanity check");
+@@ -423,14 +423,14 @@
+ // Adjust gen0 down to accomodate OldSize
+ *gen0_size_ptr = heap_size - min_gen0_size;
+ *gen0_size_ptr =
+- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
++ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
+ min_alignment());
+ assert(*gen0_size_ptr > 0, "Min gen0 is too large");
+ result = true;
+ } else {
+ *gen1_size_ptr = heap_size - *gen0_size_ptr;
+ *gen1_size_ptr =
+- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()),
++ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()),
+ min_alignment());
+ }
+ }
+@@ -454,7 +454,7 @@
+ // for setting the gen1 maximum.
+ _max_gen1_size = max_heap_byte_size() - _max_gen0_size;
+ _max_gen1_size =
+- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()),
++ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()),
+ min_alignment());
+ // If no explicit command line flag has been set for the
+ // gen1 size, use what is left for gen1.
+@@ -468,11 +468,11 @@
+ "gen0 has an unexpected minimum size");
+ set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
+ set_min_gen1_size(
+- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()),
++ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()),
+ min_alignment()));
+ set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size());
+ set_initial_gen1_size(
+- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()),
++ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()),
+ min_alignment()));
+
+ } else {
+diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objArrayKlass.inline.hpp
+--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+@@ -46,7 +46,7 @@
+ const size_t beg_index = size_t(index);
+ assert(beg_index < len || len == 0, "index too large");
+
+- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+ const size_t end_index = beg_index + stride;
+ T* const base = (T*)a->base();
+ T* const beg = base + beg_index;
+@@ -80,7 +80,7 @@
+ const size_t beg_index = size_t(index);
+ assert(beg_index < len || len == 0, "index too large");
+
+- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+ const size_t end_index = beg_index + stride;
+ T* const base = (T*)a->base();
+ T* const beg = base + beg_index;
+diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
+--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp
++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1209,7 +1209,7 @@
+ // so it's NewRatio x of NewSize.
+ if (FLAG_IS_DEFAULT(OldSize)) {
+ if (max_heap > NewSize) {
+- FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize));
++ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap -
NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+ tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
new file mode 100644
index 0000000..f56e9dd
--- /dev/null
+++ b/java-1.8.0-openjdk.spec
@@ -0,0 +1,969 @@
+# If debug is 1, OpenJDK is built with all debug info present.
+%global debug 0
+
+%global jdk8_version b79
+%global hg_tag jdk8-%{jdk8_version}
+
+%global multilib_arches ppc64 sparc64 x86_64
+
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64
+
+%ifarch x86_64
+%global archbuild amd64
+%global archinstall amd64
+%endif
+%ifarch ppc
+%global archbuild ppc
+%global archinstall ppc
+%global archdef PPC
+%endif
+%ifarch ppc64
+%global archbuild ppc64
+%global archinstall ppc64
+%global archdef PPC
+%endif
+%ifarch %{ix86}
+%global archbuild i586
+%global archinstall i386
+%endif
+%ifarch ia64
+%global archbuild ia64
+%global archinstall ia64
+%endif
+%ifarch s390
+%global archbuild s390
+%global archinstall s390
+%global archdef S390
+%endif
+%ifarch s390x
+%global archbuild s390x
+%global archinstall s390x
+%global archdef S390
+%endif
+%ifarch %{arm}
+%global archbuild arm
+%global archinstall arm
+%global archdef ARM
+%endif
+# 32 bit sparc, optimized for v9
+%ifarch sparcv9
+%global archbuild sparc
+%global archinstall sparc
+%endif
+# 64 bit sparc
+%ifarch sparc64
+%global archbuild sparcv9
+%global archinstall sparcv9
+%endif
+%ifnarch %{jit_arches}
+%global archbuild %{_arch}
+%global archinstall %{_arch}
+%endif
+
+%if %{debug}
+%global debugbuild slowdebug
+%else
+%global debugbuild release
+%endif
+
+%global buildoutputdir jdk8/build/jdk8.build
+
+%ifarch %{jit_arches}
+%global with_systemtap 1
+%else
+%global with_systemtap 0
+%endif
+
+# Convert an absolute path to a relative path. Each symbolic link is
+# specified relative to the directory in which it is installed so that
+# it will resolve properly within chrooted installations.
+%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0],
$ARGV[1])'
+%global abs2rel %{__perl} -e %{script}
+
+# Hard-code libdir on 64-bit architectures to make the 64-bit JDK
+# simply be another alternative.
+%ifarch %{multilib_arches}
+%global syslibdir %{_prefix}/lib64
+%global _libdir %{_prefix}/lib
+%global archname %{name}.%{_arch}
+%else
+%global syslibdir %{_libdir}
+%global archname %{name}
+%endif
+
+# Standard JPackage naming and versioning defines.
+%global origin openjdk
+%global buildver 0
+# Keep priority on 5digits in case buildver>9
+%global priority 1800%{buildver}
+%global javaver 1.8.0
+
+# Standard JPackage directories and symbolic links.
+# Make 64-bit JDKs just another alternative on 64-bit architectures.
+%ifarch %{multilib_arches}
+%global sdklnk java-%{javaver}-%{origin}.%{_arch}
+%global jrelnk jre-%{javaver}-%{origin}.%{_arch}
+%global sdkdir %{name}-%{version}.%{_arch}
+%else
+%global sdklnk java-%{javaver}-%{origin}
+%global jrelnk jre-%{javaver}-%{origin}
+%global sdkdir %{name}-%{version}
+%endif
+%global jredir %{sdkdir}/jre
+%global sdkbindir %{_jvmdir}/%{sdklnk}/bin
+%global jrebindir %{_jvmdir}/%{jrelnk}/bin
+%ifarch %{multilib_arches}
+%global jvmjardir %{_jvmjardir}/%{name}-%{version}.%{_arch}
+%else
+%global jvmjardir %{_jvmjardir}/%{name}-%{version}
+%endif
+
+%ifarch %{jit_arches}
+# Where to install systemtap tapset (links)
+# We would like these to be in a package specific subdir,
+# but currently systemtap doesn't support that, so we have to
+# use the root tapset dir for now. To distinquish between 64
+# and 32 bit architectures we place the tapsets under the arch
+# specific dir (note that systemtap will only pickup the tapset
+# for the primary arch for now). Systemtap uses the machine name
+# aka build_cpu as architecture specific directory name.
+%global tapsetroot /usr/share/systemtap
+%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
+%endif
+
+# Prevent brp-java-repack-jars from being run.
+%global __jar_repack 0
+
+Name: java-%{javaver}-%{origin}
+Version: %{javaver}.%{buildver}
+Release: 0.1.%{jdk8_version}%{?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
+# situation where in-the-wild java-1.5.0-ibm packages provided "java =
+# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
+# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
+# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
+# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
+# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
+Epoch: 1
+Summary: OpenJDK Runtime Environment
+Group: Development/Languages
+
+License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and
LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
+URL:
http://openjdk.java.net/
+
+# Source from upstrem OpenJDK8 project. Use
+# './generate_source_tarball.sh %{hg_tag}' to generate. The script merges
+# multiple tarballs into one and removes code not allowed in Fedora.
+Source0: jdk8-%{jdk8_version}.tar.gz
+
+# Custom README for -src subpackage
+Source2: README.src
+
+# Use 'generate_tarballs.sh' to generate the following tarballs
+# They are based on code contained in the IcedTea7 project.
+
+# Class rewrite to rewrite rhino hierarchy
+Source7: class-rewriter.tar.gz
+# Systemtap tapsets. Zipped up to keep it small.
+Source8: systemtap-tapset.tar.gz
+# .desktop files. Zipped up to keep it small.
+Source9: desktop-files.tar.gz
+
+# nss configuration file
+Source10: nss.cfg
+
+# Removed libraries that we link instead
+Source12: remove-intree-libraries.sh
+
+# Ensure we aren't using the limited crypto policy
+Source13: TestCryptoLevel.java
+
+# RPM/distribution specific patches
+
+# Ignore AWTError when assistive technologies are loaded
+Patch4: %{name}-accessible-toolkit.patch
+
+#
+# OpenJDK specific patches
+#
+
+# Add rhino support
+Patch100: rhino.patch
+
+# Type fixing for s390
+Patch101: %{name}-bitmap.patch
+Patch102: %{name}-size_t.patch
+
+# Patches for Arm
+Patch103: %{name}-arm-fixes.patch
+
+# Patch for PPC/PPC64
+Patch104: %{name}-ppc-zero-jdk.patch
+Patch105: %{name}-ppc-zero-hotspot.patch
+Patch106: %{name}-ppc-zero-corba.patch
+
+Patch107: %{name}-freetype-check-fix.patch
+Patch108: dont-use-gstabs.patch
+Patch109: disable-werror.patch
+
+Patch200: system-giflib.patch
+Patch201: system-libjpeg.patch
+Patch202: system-libpng.patch
+Patch203: system-lcms.patch
+
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: alsa-lib-devel
+BuildRequires: cups-devel
+BuildRequires: desktop-file-utils
+BuildRequires: fontconfig
+BuildRequires: freetype-devel
+BuildRequires: giflib-devel
+BuildRequires: gtk2-devel
+BuildRequires: lcms2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+BuildRequires: libxslt
+BuildRequires: libX11-devel
+BuildRequires: libXi-devel
+BuildRequires: libXinerama-devel
+BuildRequires: libXt-devel
+BuildRequires: libXtst-devel
+BuildRequires: pkgconfig
+BuildRequires: wget
+BuildRequires: xorg-x11-proto-devel
+BuildRequires: rhino
+#BuildRequires: redhat-lsb
+BuildRequires: zip
+# OpenJDK X officially requires OpenJDK (X-1) to build
+BuildRequires: java-1.7.0-openjdk-devel
+# Zero-assembler build requirement.
+%ifnarch %{jit_arches}
+BuildRequires: libffi-devel
+%endif
+
+# cacerts build requirement.
+BuildRequires: openssl
+# execstack build requirement.
+# no prelink on ARM yet
+%ifnarch %{arm}
+BuildRequires: prelink
+%endif
+%ifarch %{jit_arches}
+#systemtap build requirement.
+BuildRequires: systemtap-sdt-devel
+%endif
+
+Requires: rhino
+# Require /etc/pki/java/cacerts.
+Requires: ca-certificates
+# Require jpackage-utils for ownership of /usr/lib/jvm/
+Requires: jpackage-utils
+# Require zoneinfo data provided by tzdata-java subpackage.
+Requires: tzdata-java
+# Post requires alternatives to install tool alternatives.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall tool alternatives.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage base provides.
+Provides: jre8-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre8-%{origin} = %{epoch}:%{version}-%{release}
+Provides: jre8-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: java8-%{javaver} = %{epoch}:%{version}-%{release}
+Provides: jre8 = %{javaver}
+Provides: java8-%{origin} = %{epoch}:%{version}-%{release}
+Provides: java8 = %{epoch}:%{javaver}
+# Standard JPackage extensions provides.
+Provides: jndi8 = %{epoch}:%{version}
+Provides: jndi8-ldap = %{epoch}:%{version}
+Provides: jndi8-cos = %{epoch}:%{version}
+Provides: jndi8-rmi = %{epoch}:%{version}
+Provides: jndi8-dns = %{epoch}:%{version}
+Provides: jaas8 = %{epoch}:%{version}
+Provides: jsse8 = %{epoch}:%{version}
+Provides: jce8 = %{epoch}:%{version}
+Provides: jdbc8-stdext = 4.1
+Provides: java8-sasl = %{epoch}:%{version}
+Provides: java8-fonts = %{epoch}:%{version}
+
+%description
+The OpenJDK runtime environment.
+
+%package devel
+Summary: OpenJDK Development Environment
+Group: Development/Tools
+
+# Require base package.
+Requires: %{name} = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install tool alternatives.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall tool alternatives.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage devel provides.
+Provides: java8-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
+Provides: java8-sdk-%{javaver} = %{epoch}:%{version}
+Provides: java8-sdk-%{origin} = %{epoch}:%{version}
+Provides: java8-sdk = %{epoch}:%{javaver}
+Provides: java8-%{javaver}-devel = %{epoch}:%{version}
+Provides: java8-devel-%{origin} = %{epoch}:%{version}
+Provides: java8-devel = %{epoch}:%{javaver}
+
+
+%description devel
+The OpenJDK development tools.
+
+%package demo
+Summary: OpenJDK Demos
+Group: Development/Languages
+
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description demo
+The OpenJDK demos.
+
+%package src
+Summary: OpenJDK Source Bundle
+Group: Development/Languages
+
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description src
+The OpenJDK source bundle.
+
+%package javadoc
+Summary: OpenJDK API Documentation
+Group: Documentation
+Requires: jpackage-utils
+BuildArch: noarch
+
+# Post requires alternatives to install javadoc alternative.
+Requires(post): %{_sbindir}/alternatives
+# Postun requires alternatives to uninstall javadoc alternative.
+Requires(postun): %{_sbindir}/alternatives
+
+# Standard JPackage javadoc provides.
+Provides: java8-javadoc = %{epoch}:%{version}-%{release}
+Provides: java8-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
+
+%description javadoc
+The OpenJDK API documentation.
+
+%prep
+
+%setup -q -c -n %{name} -T -a 0
+cp %{SOURCE2} .
+
+# OpenJDK patches
+%patch108
+%patch109
+
+# Rhino patch
+%patch100
+
+# Remove libraries that are linked
+# disabled until 8 has all system library fixes upstream
+sh %{SOURCE12}
+
+%patch200
+%patch201
+%patch202
+%patch203
+
+%patch4
+
+# Type fixes for s390
+%ifarch s390 s390x
+%patch101
+%patch102
+%endif
+
+# Arm fixes
+%ifarch %{arm}
+%patch103
+%endif
+
+%patch107
+
+%ifarch ppc ppc64
+# PPC fixes
+%patch104
+%patch105
+%patch106
+%endif
+
+
+# Copy jaxp, jaf and jaxws drops
+mkdir drops/
+
+# Extract the rewriter (to rewrite rhino classes)
+tar xzf %{SOURCE7}
+
+# Extract systemtap tapsets
+%if %{with_systemtap}
+
+tar xzf %{SOURCE8}
+
+for file in tapset/*.in; do
+
+ OUTPUT_FILE=`echo $file | sed -e s:\.in$::g`
+ sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/amd64/server/libjvm.so:g
$file > $OUTPUT_FILE
+ sed -i -e '/@ABS_CLIENT_LIBJVM_SO@/d' $OUTPUT_FILE
+ sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE
+ sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
+
+done
+
+%endif
+
+# Extract desktop files
+tar xzf %{SOURCE9}
+
+%build
+# How many cpu's do we have?
+export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :`
+export NUM_PROC=${NUM_PROC:-1}
+
+# Build IcedTea and OpenJDK.
+%ifarch s390x sparc64 alpha ppc64
+export ARCH_DATA_MODEL=64
+%endif
+%ifarch alpha
+export CFLAGS="$CFLAGS -mieee"
+%endif
+# Build the re-written rhino jar
+mkdir -p rhino/{old,new}
+
+# Compile the rewriter
+(cd rewriter
+ javac com/redhat/rewriter/ClassRewriter.java
+)
+
+# Extract rhino.jar contents and rewrite
+(cd rhino/old
+ jar xf /usr/share/java/rhino.jar
+)
+
+java -cp rewriter com.redhat.rewriter.ClassRewriter \
+ $PWD/rhino/old \
+ $PWD/rhino/new \
+ org.mozilla \
+ sun.org.mozilla
+
+(cd rhino/old
+ for file in `find -type f -not -name '*.class'` ; do
+ new_file=../new/`echo $file | sed -e 's#org#sun/org#'`
+ mkdir -pv `dirname $new_file`
+ cp -v $file $new_file
+ sed -ie 's#org\.mozilla#sun.org.mozilla#g' $new_file
+ done
+)
+
+(cd rhino/new
+ jar cfm ../rhino.jar META-INF/MANIFEST.MF sun
+)
+
+(cd jdk8/common/autoconf
+ bash ./autogen.sh
+)
+
+mkdir -p %{buildoutputdir}
+
+pushd %{buildoutputdir}
+
+bash ../../configure \
+ --with-build-number=%{buildver} \
+ --with-boot-jdk=/usr/lib/jvm/java-openjdk \
+ --with-debug-level=%{debugbuild} \
+ --enable-unlimited-crypto \
+ --with-zlib=system \
+ --with-giflib=system \
+ --with-libpng=system \
+ --with-lcms=system \
+ --with-stdc++lib=dynamic \
+ --with-num-cores="$NUM_PROC"
+
+make DISABLE_INTREE_EC=true LOG=trace all
+
+popd >& /dev/null
+
+export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image
+
+# Copy tz.properties
+echo "sun.zoneinfo.dir=/usr/share/javazi" >>
$JAVA_HOME/jre/lib/tz.properties
+
+# Check unlimited policy has been used
+$JAVA_HOME/bin/javac -d . %{SOURCE13}
+$JAVA_HOME/bin/java TestCryptoLevel
+
+%install
+rm -rf $RPM_BUILD_ROOT
+STRIP_KEEP_SYMTAB=libjvm*
+
+# Install symlink to default soundfont
+install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
+pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
+ln -s %{_datadir}/soundfonts/default.sf2
+popd
+
+pushd %{buildoutputdir}/images/j2sdk-image
+
+ # Install main files.
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+ cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
+ cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
+
+%ifarch %{jit_arches}
+ # Install systemtap support files.
+ install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
+ cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
+ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
+ pushd $RPM_BUILD_ROOT%{tapsetdir}
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
+ ln -sf $RELATIVE/*.stp .
+ popd
+%endif
+
+ # Install cacerts symlink.
+ rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security
+ RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
+ %{_jvmdir}/%{jredir}/lib/security)
+ ln -sf $RELATIVE/cacerts .
+ popd
+
+ # Install extension symlinks.
+ install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir}
+ pushd $RPM_BUILD_ROOT%{jvmjardir}
+ RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir})
+ ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
+ ln -sf $RELATIVE/jce.jar jce-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jaas-%{version}.jar
+ ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar
+ ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
+ ln -sf $RELATIVE/rt.jar sasl-%{version}.jar
+ for jar in *-%{version}.jar
+ do
+ if [ x%{version} != x%{javaver} ]
+ then
+ ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
+ fi
+ ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g")
+ done
+ popd
+
+ # Install JCE policy symlinks.
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{archname}/jce/vanilla
+
+ # Install versionless symlinks.
+ pushd $RPM_BUILD_ROOT%{_jvmdir}
+ ln -sf %{jredir} %{jrelnk}
+ ln -sf %{sdkdir} %{sdklnk}
+ popd
+
+ pushd $RPM_BUILD_ROOT%{_jvmjardir}
+ ln -sf %{sdkdir} %{jrelnk}
+ ln -sf %{sdkdir} %{sdklnk}
+ popd
+
+ # Remove javaws man page
+ rm -f man/man1/javaws*
+
+ # Install man pages.
+ install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
+ for manpage in man/man1/*
+ do
+ # Convert man pages to UTF8 encoding.
+ iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
+ mv -f $manpage.tmp $manpage
+ install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
+ $manpage .1)-%{name}.1
+ done
+
+ # Install demos and samples.
+ cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+ mkdir -p sample/rmi
+ mv bin/java-rmi.cgi sample/rmi
+ cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
+
+popd
+
+
+# Install nss.cfg
+install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/
+
+
+# Install Javadoc documentation.
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
+cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+
+# Install icons and menu entries.
+for s in 16 24 32 48 ; do
+ install -D -p -m 644 \
+ jdk8/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png
+done
+
+# Install desktop files.
+install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
+for e in jconsole policytool ; do
+ desktop-file-install --vendor=%{name} --mode=644 \
+ --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
+done
+
+# Find JRE directories.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
+ | grep -v jre/lib/security \
+ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
+ > %{name}.files
+# Find JRE files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
+ | grep -v jre/lib/security \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ >> %{name}.files
+# Find demo directories.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
+ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
+ > %{name}-demo.files
+
+# FIXME: remove SONAME entries from demo DSOs. See
+#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
+
+# Find non-documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
+ -type f -o -type l | sort \
+ | grep -v README \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ >> %{name}-demo.files
+# Find documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
+ -type f -o -type l | sort \
+ | grep README \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ | sed 's|^|%doc |' \
+ >> %{name}-demo.files
+
+# FIXME: identical binaries are copied, not linked. This needs to be
+# fixed upstream.
+%post
+ext=.gz
+alternatives \
+ --install %{_bindir}/java java %{jrebindir}/java %{priority} \
+ --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
+ --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
+ --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
+ --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
+ --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
+ --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \
+ --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \
+ --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \
+ --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
+ --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
+ --slave %{_mandir}/man1/java.1$ext java.1$ext \
+ %{_mandir}/man1/java-%{name}.1$ext \
+ --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
+ %{_mandir}/man1/keytool-%{name}.1$ext \
+ --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
+ %{_mandir}/man1/orbd-%{name}.1$ext \
+ --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
+ %{_mandir}/man1/pack200-%{name}.1$ext \
+ --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
+ %{_mandir}/man1/rmid-%{name}.1$ext \
+ --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
+ %{_mandir}/man1/rmiregistry-%{name}.1$ext \
+ --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
+ %{_mandir}/man1/servertool-%{name}.1$ext \
+ --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
+ %{_mandir}/man1/tnameserv-%{name}.1$ext \
+ --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
+ %{_mandir}/man1/unpack200-%{name}.1$ext
+
+alternatives \
+ --install %{_jvmdir}/jre-%{origin} \
+ jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
+ --slave %{_jvmjardir}/jre-%{origin} \
+ jre_%{origin}_exports %{_jvmjardir}/%{jrelnk}
+
+alternatives \
+ --install %{_jvmdir}/jre-%{javaver} \
+ jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
+ --slave %{_jvmjardir}/jre-%{javaver} \
+ jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+touch --no-create %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ] ; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
+fi
+
+exit 0
+
+%postun
+if [ $1 -eq 0 ]
+then
+ alternatives --remove java %{jrebindir}/java
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
+fi
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+touch --no-create %{_datadir}/icons/hicolor
+if [ -x %{_bindir}/gtk-update-icon-cache ] ; then
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
+fi
+
+exit 0
+
+%post devel
+ext=.gz
+alternatives \
+ --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
+ --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
+ --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdklnk} \
+ --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
+ --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
+ --slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \
+ --slave %{_bindir}/jar jar %{sdkbindir}/jar \
+ --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \
+ --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \
+ --slave %{_bindir}/javah javah %{sdkbindir}/javah \
+ --slave %{_bindir}/javap javap %{sdkbindir}/javap \
+ --slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \
+ --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
+ --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
+ --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
+ --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
+ --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
+ --slave %{_bindir}/jps jps %{sdkbindir}/jps \
+ --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \
+ --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \
+ --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \
+ --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
+ --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \
+ --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
+ --slave %{_bindir}/policytool policytool %{sdkbindir}/policytool \
+ --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
+ --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
+ --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
+ --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \
+ --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
+ --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
+ --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
+ %{_mandir}/man1/appletviewer-%{name}.1$ext \
+ --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
+ %{_mandir}/man1/extcheck-%{name}.1$ext \
+ --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \
+ %{_mandir}/man1/idlj-%{name}.1$ext \
+ --slave %{_mandir}/man1/jar.1$ext jar.1$ext \
+ %{_mandir}/man1/jar-%{name}.1$ext \
+ --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
+ %{_mandir}/man1/jarsigner-%{name}.1$ext \
+ --slave %{_mandir}/man1/javac.1$ext javac.1$ext \
+ %{_mandir}/man1/javac-%{name}.1$ext \
+ --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
+ %{_mandir}/man1/javadoc-%{name}.1$ext \
+ --slave %{_mandir}/man1/javah.1$ext javah.1$ext \
+ %{_mandir}/man1/javah-%{name}.1$ext \
+ --slave %{_mandir}/man1/javap.1$ext javap.1$ext \
+ %{_mandir}/man1/javap-%{name}.1$ext \
+ --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \
+ %{_mandir}/man1/jcmd-%{name}.1$ext \
+ --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
+ %{_mandir}/man1/jconsole-%{name}.1$ext \
+ --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
+ %{_mandir}/man1/jdb-%{name}.1$ext \
+ --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
+ %{_mandir}/man1/jhat-%{name}.1$ext \
+ --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
+ %{_mandir}/man1/jinfo-%{name}.1$ext \
+ --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \
+ %{_mandir}/man1/jmap-%{name}.1$ext \
+ --slave %{_mandir}/man1/jps.1$ext jps.1$ext \
+ %{_mandir}/man1/jps-%{name}.1$ext \
+ --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
+ %{_mandir}/man1/jrunscript-%{name}.1$ext \
+ --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
+ %{_mandir}/man1/jsadebugd-%{name}.1$ext \
+ --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \
+ %{_mandir}/man1/jstack-%{name}.1$ext \
+ --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \
+ %{_mandir}/man1/jstat-%{name}.1$ext \
+ --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \
+ %{_mandir}/man1/jstatd-%{name}.1$ext \
+ --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
+ %{_mandir}/man1/native2ascii-%{name}.1$ext \
+ --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
+ %{_mandir}/man1/policytool-%{name}.1$ext \
+ --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
+ %{_mandir}/man1/rmic-%{name}.1$ext \
+ --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
+ %{_mandir}/man1/schemagen-%{name}.1$ext \
+ --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
+ %{_mandir}/man1/serialver-%{name}.1$ext \
+ --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
+ %{_mandir}/man1/wsgen-%{name}.1$ext \
+ --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
+ %{_mandir}/man1/wsimport-%{name}.1$ext \
+ --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
+ %{_mandir}/man1/xjc-%{name}.1$ext
+
+alternatives \
+ --install %{_jvmdir}/java-%{origin} \
+ java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \
+ --slave %{_jvmjardir}/java-%{origin} \
+ java_sdk_%{origin}_exports %{_jvmjardir}/%{sdklnk}
+
+alternatives \
+ --install %{_jvmdir}/java-%{javaver} \
+ java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
+ --slave %{_jvmjardir}/java-%{javaver} \
+ java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}
+
+exit 0
+
+%postun devel
+if [ $1 -eq 0 ]
+then
+ alternatives --remove javac %{sdkbindir}/javac
+ alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
+ alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
+fi
+
+exit 0
+
+%post javadoc
+alternatives \
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{name}/api \
+ %{priority}
+
+exit 0
+
+%postun javadoc
+if [ $1 -eq 0 ]
+then
+ alternatives --remove javadocdir %{_javadocdir}/%{name}/api
+fi
+
+exit 0
+
+
+%files -f %{name}.files
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README
+
+%dir %{_jvmdir}/%{sdkdir}
+%{_jvmdir}/%{jrelnk}
+%{_jvmjardir}/%{jrelnk}
+%{_jvmprivdir}/*
+%{jvmjardir}
+%dir %{_jvmdir}/%{jredir}/lib/security
+%{_jvmdir}/%{jredir}/lib/security/cacerts
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
+%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
+%{_mandir}/man1/java-%{name}.1*
+%{_mandir}/man1/keytool-%{name}.1*
+%{_mandir}/man1/orbd-%{name}.1*
+%{_mandir}/man1/pack200-%{name}.1*
+%{_mandir}/man1/rmid-%{name}.1*
+%{_mandir}/man1/rmiregistry-%{name}.1*
+%{_mandir}/man1/servertool-%{name}.1*
+%{_mandir}/man1/tnameserv-%{name}.1*
+%{_mandir}/man1/unpack200-%{name}.1*
+%{_jvmdir}/%{jredir}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir}/lib/audio/
+%{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
+%{_jvmdir}/%{jredir}/lib/security/local_policy.jar
+
+%files devel
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/j2sdk-image/ASSEMBLY_EXCEPTION
+%doc %{buildoutputdir}/images/j2sdk-image/LICENSE
+%doc %{buildoutputdir}/images/j2sdk-image/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir}/bin
+%dir %{_jvmdir}/%{sdkdir}/include
+%dir %{_jvmdir}/%{sdkdir}/lib
+%ifarch %{jit_arches}
+%dir %{_jvmdir}/%{sdkdir}/tapset
+%endif
+%{_jvmdir}/%{sdkdir}/bin/*
+%{_jvmdir}/%{sdkdir}/include/*
+%{_jvmdir}/%{sdkdir}/lib/*
+%ifarch %{jit_arches}
+%{_jvmdir}/%{sdkdir}/tapset/*.stp
+%endif
+%{_jvmdir}/%{sdklnk}
+%{_jvmjardir}/%{sdklnk}
+%{_datadir}/applications/*jconsole.desktop
+%{_datadir}/applications/*policytool.desktop
+%{_mandir}/man1/appletviewer-%{name}.1*
+%{_mandir}/man1/extcheck-%{name}.1*
+%{_mandir}/man1/idlj-%{name}.1*
+%{_mandir}/man1/jar-%{name}.1*
+%{_mandir}/man1/jarsigner-%{name}.1*
+%{_mandir}/man1/javac-%{name}.1*
+%{_mandir}/man1/javadoc-%{name}.1*
+%{_mandir}/man1/javah-%{name}.1*
+%{_mandir}/man1/javap-%{name}.1*
+%{_mandir}/man1/jconsole-%{name}.1*
+%ifarch %{jit_arches} # Only in u4+
+%{_mandir}/man1/jcmd-%{name}.1*
+%endif
+%{_mandir}/man1/jdb-%{name}.1*
+%{_mandir}/man1/jhat-%{name}.1*
+%{_mandir}/man1/jinfo-%{name}.1*
+%{_mandir}/man1/jmap-%{name}.1*
+%{_mandir}/man1/jps-%{name}.1*
+%{_mandir}/man1/jrunscript-%{name}.1*
+%{_mandir}/man1/jsadebugd-%{name}.1*
+%{_mandir}/man1/jstack-%{name}.1*
+%{_mandir}/man1/jstat-%{name}.1*
+%{_mandir}/man1/jstatd-%{name}.1*
+%{_mandir}/man1/native2ascii-%{name}.1*
+%{_mandir}/man1/policytool-%{name}.1*
+%{_mandir}/man1/rmic-%{name}.1*
+%{_mandir}/man1/schemagen-%{name}.1*
+%{_mandir}/man1/serialver-%{name}.1*
+%{_mandir}/man1/wsgen-%{name}.1*
+%{_mandir}/man1/wsimport-%{name}.1*
+%{_mandir}/man1/xjc-%{name}.1*
+%ifarch %{jit_arches}
+%{tapsetroot}
+%endif
+
+%files demo -f %{name}-demo.files
+%defattr(-,root,root,-)
+%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+
+%files src
+%defattr(-,root,root,-)
+%doc README.src
+%{_jvmdir}/%{sdkdir}/src.zip
+
+%files javadoc
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{name}
+%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
+
+%changelog
+* Tue Mar 12 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.1.b79.f19
+- Update to jdk8-b79
+- Initial version for Fedora 19
+
+* Tue Sep 04 2012 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.0-b53.1
+- Initial build from java-1.7.0-openjdk RPM
diff --git a/nss.cfg b/nss.cfg
new file mode 100644
index 0000000..c510dd0
--- /dev/null
+++ b/nss.cfg
@@ -0,0 +1,4 @@
+name = NSS
+nssLibraryDirectory =
+nssDbMode = noDb
+attributes = compatibility
diff --git a/remove-intree-libraries.sh b/remove-intree-libraries.sh
new file mode 100644
index 0000000..76a4156
--- /dev/null
+++ b/remove-intree-libraries.sh
@@ -0,0 +1,127 @@
+#!/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
+
+echo "Removing built-in libs (they will be linked)"
+
+echo "Removing zlib"
+if [ ! -d ${ZIP_SRC} ]; then
+ echo "${ZIP_SRC} does not exist. Refusing to proceed."
+ exit 1
+fi
+rm -rvf ${ZIP_SRC}
+
+echo "Removing libjpeg"
+if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that sound definitely exist
+ echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed."
+ exit 1
+fi
+
+rm -vf ${JPEG_SRC}/jcomapi.c
+rm -vf ${JPEG_SRC}/jdapimin.c
+rm -vf ${JPEG_SRC}/jdapistd.c
+rm -vf ${JPEG_SRC}/jdcoefct.c
+rm -vf ${JPEG_SRC}/jdcolor.c
+rm -vf ${JPEG_SRC}/jdct.h
+rm -vf ${JPEG_SRC}/jddctmgr.c
+rm -vf ${JPEG_SRC}/jdhuff.c
+rm -vf ${JPEG_SRC}/jdhuff.h
+rm -vf ${JPEG_SRC}/jdinput.c
+rm -vf ${JPEG_SRC}/jdmainct.c
+rm -vf ${JPEG_SRC}/jdmarker.c
+rm -vf ${JPEG_SRC}/jdmaster.c
+rm -vf ${JPEG_SRC}/jdmerge.c
+rm -vf ${JPEG_SRC}/jdphuff.c
+rm -vf ${JPEG_SRC}/jdpostct.c
+rm -vf ${JPEG_SRC}/jdsample.c
+rm -vf ${JPEG_SRC}/jerror.c
+rm -vf ${JPEG_SRC}/jerror.h
+rm -vf ${JPEG_SRC}/jidctflt.c
+rm -vf ${JPEG_SRC}/jidctfst.c
+rm -vf ${JPEG_SRC}/jidctint.c
+rm -vf ${JPEG_SRC}/jidctred.c
+rm -vf ${JPEG_SRC}/jinclude.h
+rm -vf ${JPEG_SRC}/jmemmgr.c
+rm -vf ${JPEG_SRC}/jmemsys.h
+rm -vf ${JPEG_SRC}/jmemnobs.c
+rm -vf ${JPEG_SRC}/jmorecfg.h
+rm -vf ${JPEG_SRC}/jpegint.h
+rm -vf ${JPEG_SRC}/jpeglib.h
+rm -vf ${JPEG_SRC}/jquant1.c
+rm -vf ${JPEG_SRC}/jquant2.c
+rm -vf ${JPEG_SRC}/jutils.c
+rm -vf ${JPEG_SRC}/jcapimin.c
+rm -vf ${JPEG_SRC}/jcapistd.c
+rm -vf ${JPEG_SRC}/jccoefct.c
+rm -vf ${JPEG_SRC}/jccolor.c
+rm -vf ${JPEG_SRC}/jcdctmgr.c
+rm -vf ${JPEG_SRC}/jchuff.c
+rm -vf ${JPEG_SRC}/jchuff.h
+rm -vf ${JPEG_SRC}/jcinit.c
+rm -vf ${JPEG_SRC}/jconfig.h
+rm -vf ${JPEG_SRC}/jcmainct.c
+rm -vf ${JPEG_SRC}/jcmarker.c
+rm -vf ${JPEG_SRC}/jcmaster.c
+rm -vf ${JPEG_SRC}/jcparam.c
+rm -vf ${JPEG_SRC}/jcphuff.c
+rm -vf ${JPEG_SRC}/jcprepct.c
+rm -vf ${JPEG_SRC}/jcsample.c
+rm -vf ${JPEG_SRC}/jctrans.c
+rm -vf ${JPEG_SRC}/jdtrans.c
+rm -vf ${JPEG_SRC}/jfdctflt.c
+rm -vf ${JPEG_SRC}/jfdctfst.c
+rm -vf ${JPEG_SRC}/jfdctint.c
+rm -vf ${JPEG_SRC}/jversion.h
+rm -vf ${JPEG_SRC}/README
+
+echo "Removing giflib"
+if [ ! -d ${GIF_SRC} ]; then
+ echo "${GIF_SRC} does not exist. Refusing to proceed."
+ exit 1
+fi
+rm -rvf ${GIF_SRC}
+
+echo "Removing libpng"
+if [ ! -d ${PNG_SRC} ]; then
+ echo "${PNG_SRC} does not exist. Refusing to proceed."
+ exit 1
+fi
+rm -rvf ${PNG_SRC}
+
+echo "Removing lcms"
+if [ ! -d ${LCMS_SRC} ]; then
+ echo "${LCMS_SRC} does not exist. Refusing to proceed."
+ exit 1
+fi
+rm -vf ${LCMS_SRC}/cmscam02.c
+rm -vf ${LCMS_SRC}/cmscgats.c
+rm -vf ${LCMS_SRC}/cmscnvrt.c
+rm -vf ${LCMS_SRC}/cmserr.c
+rm -vf ${LCMS_SRC}/cmsgamma.c
+rm -vf ${LCMS_SRC}/cmsgmt.c
+rm -vf ${LCMS_SRC}/cmshalf.c
+rm -vf ${LCMS_SRC}/cmsintrp.c
+rm -vf ${LCMS_SRC}/cmsio0.c
+rm -vf ${LCMS_SRC}/cmsio1.c
+rm -vf ${LCMS_SRC}/cmslut.c
+rm -vf ${LCMS_SRC}/cmsmd5.c
+rm -vf ${LCMS_SRC}/cmsmtrx.c
+rm -vf ${LCMS_SRC}/cmsnamed.c
+rm -vf ${LCMS_SRC}/cmsopt.c
+rm -vf ${LCMS_SRC}/cmspack.c
+rm -vf ${LCMS_SRC}/cmspcs.c
+rm -vf ${LCMS_SRC}/cmsplugin.c
+rm -vf ${LCMS_SRC}/cmsps2.c
+rm -vf ${LCMS_SRC}/cmssamp.c
+rm -vf ${LCMS_SRC}/cmssm.c
+rm -vf ${LCMS_SRC}/cmstypes.c
+rm -vf ${LCMS_SRC}/cmsvirt.c
+rm -vf ${LCMS_SRC}/cmswtpnt.c
+rm -vf ${LCMS_SRC}/cmsxform.c
+rm -vf ${LCMS_SRC}/lcms2.h
+rm -vf ${LCMS_SRC}/lcms2_internal.h
+rm -vf ${LCMS_SRC}/lcms2_plugin.h
diff --git a/rhino.patch b/rhino.patch
new file mode 100644
index 0000000..992a634
--- /dev/null
+++ b/rhino.patch
@@ -0,0 +1,157 @@
+diff --git a/make/com/sun/Makefile b/make/com/sun/Makefile
+--- jdk8/jdk/make/com/sun/Makefile
++++ jdk8/jdk/make/com/sun/Makefile
+@@ -31,13 +31,6 @@
+ PRODUCT = sun
+ include $(BUILDDIR)/common/Defs.gmk
+
+-ifndef OPENJDK
+- ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
+- ifneq ("$(ORG_EXISTS)", "")
+- SCRIPT_SUBDIR = script
+- endif
+-endif
+-
+ # jarsigner is part of JRE
+ SUBDIRS = java security net/ssl jarsigner
+
+@@ -45,7 +38,7 @@
+ SUBDIRS_desktop = image
+ SUBDIRS_enterprise = crypto/provider jndi \
+ org rowset net/httpserver
+-SUBDIRS_misc = $(SCRIPT_SUBDIR) tracing servicetag nio demo
++SUBDIRS_misc = script tracing servicetag nio demo
+
+ SUBDIRS_tools = tools
+
+diff --git a/make/com/sun/script/Makefile b/make/com/sun/script/Makefile
+--- jdk8/jdk/make/com/sun/script/Makefile
++++ jdk8/jdk/make/com/sun/script/Makefile
+@@ -31,6 +31,8 @@
+
+ AUTO_FILES_JAVA_DIRS = com/sun/script
+
++OTHER_JAVACFLAGS = -classpath $(RHINO_JAR)
++
+ #
+ # Files that need to be copied
+ #
+diff --git a/make/common/Release.gmk b/make/common/Release.gmk
+--- jdk8/jdk/make/common/Release.gmk
++++ jdk8/jdk/make/common/Release.gmk
+@@ -813,6 +813,7 @@
+ $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
+ $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
+ $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
++ $(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
+ ifneq ($(JFR_JAR),)
+ $(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar
+ endif
+diff --git a/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
b/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
+@@ -24,7 +24,7 @@
+ */
+
+ package com.sun.script.javascript;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+ import javax.script.*;
+ import java.util.*;
+
+diff --git a/src/share/classes/com/sun/script/javascript/JSAdapter.java
b/src/share/classes/com/sun/script/javascript/JSAdapter.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java
+@@ -25,7 +25,7 @@
+
+ package com.sun.script.javascript;
+
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+ import java.util.*;
+
+ /**
+diff --git a/src/share/classes/com/sun/script/javascript/JavaAdapter.java
b/src/share/classes/com/sun/script/javascript/JavaAdapter.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+
+ import javax.script.Invocable;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+
+ /**
+ * This class implements Rhino-like JavaAdapter to help implement a Java
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
b/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+
+ import java.util.*;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+
+ /**
+ * This class prevents script access to certain sensitive classes.
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
b/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java
+@@ -25,7 +25,7 @@
+
+ package com.sun.script.javascript;
+ import javax.script.*;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+
+ /**
+ * Represents compiled JavaScript code.
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
b/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+ import com.sun.script.util.*;
+ import javax.script.*;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+ import java.lang.reflect.Method;
+ import java.io.*;
+ import java.util.*;
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
b/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+ import javax.script.*;
+ import java.util.*;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+ import com.sun.script.util.*;
+
+ /**
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
b/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
+@@ -25,7 +25,7 @@
+
+ package com.sun.script.javascript;
+
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+ import javax.script.*;
+
+ /**
+diff --git a/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
b/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
+--- jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
++++ jdk8/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
+@@ -27,7 +27,7 @@
+
+ import java.lang.reflect.*;
+ import static sun.security.util.SecurityConstants.*;
+-import sun.org.mozilla.javascript.internal.*;
++import sun.org.mozilla.javascript.*;
+
+ /**
+ * This wrap factory is used for security reasons. JSR 223 script
diff --git a/sources b/sources
index e69de29..be5fdce 100644
--- a/sources
+++ b/sources
@@ -0,0 +1,4 @@
+53f5d8cfe1c1aa478cb0fb64ba149967 class-rewriter.tar.gz
+e1d19c1a7e103b9b3c35a94628ded3b5 desktop-files.tar.gz
+71577c85c00f488465e0732cdfee73a7 jdk8-b79.tar.gz
+94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz
diff --git a/system-giflib.patch b/system-giflib.patch
new file mode 100644
index 0000000..3a594de
--- /dev/null
+++ b/system-giflib.patch
@@ -0,0 +1,104 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -499,11 +499,40 @@
+ # Check for the gif library
+ #
+
+-USE_EXTERNAL_LIBJPEG=true
+-AC_CHECK_LIB(gif, main, [],
+- [ USE_EXTERNAL_LIBGIF=false
+- AC_MSG_NOTICE([Will use gif decoder bundled with the OpenJDK source])
+- ])
++AC_ARG_WITH(giflib, [AS_HELP_STRING([--with-giflib],
++ [use giflib from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(gif, DGifGetCode,
++ [ GIFLIB_FOUND=yes ],
++ [ GIFLIB_FOUND=no ])
++
++AC_MSG_CHECKING([for which giflib to use])
++
++# default is bundled
++DEFAULT_GIFLIB=bundled
++
++#
++# if user didn't specify, use DEFAULT_GIFLIB
++#
++if test "x${with_giflib}" = "x"; then
++ with_giflib=${DEFAULT_GIFLIB}
++fi
++
++
++if test "x${with_giflib}" = "xbundled"; then
++ USE_EXTERNAL_LIBGIF=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_giflib}" = "xsystem"; then
++ if test "x${GIFLIB_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBGIF=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-giflib=system specified, but no giflib found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value of --with-giflib: ${with_giflib}, use 'system'
or 'bundled'])
++fi
+ AC_SUBST(USE_EXTERNAL_LIBGIF)
+
+ ###############################################################################
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -2385,18 +2385,23 @@
+
+ ifndef BUILD_HEADLESS_ONLY
+ LIBSPLASHSCREEN_DIRS:=\
+- $(JDK_TOPDIR)/src/share/native/sun/awt/giflib \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
++ifeq ($(USE_EXTERNAL_LIBGIF),true)
++ LIBGIF := -lgif
++else
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib
++ LIBGIF_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
++endif
++
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ LIBSPLASHSCREEN_DIRS +=
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+ else
+ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen
+ endif
+
+-
+ LIBSPLASHSCREEN_CFLAGS:=-DSPLASHSCREEN -DPNG_NO_MMX_CODE \
+ $(foreach dir,$(LIBSPLASHSCREEN_DIRS),-I$(dir))
+
+@@ -2448,11 +2453,11 @@
+ EXCLUDE_FILES:=imageioJPEG.c jpegdecoder.c pngtest.c,\
+ LANG:=C,\
+ OPTIMIZATION:=LOW, \
+- CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB),\
++ CFLAGS:=$(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) -I$(LIBGIF_CFLAGS),\
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF),\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
b/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c
+@@ -26,7 +26,7 @@
+ #include "splashscreen_impl.h"
+ #include "splashscreen_gfx.h"
+
+-#include "../giflib/gif_lib.h"
++#include "gif_lib.h"
+
+ #define GIF_TRANSPARENT 0x01
+ #define GIF_USER_INPUT 0x02
diff --git a/system-lcms.patch b/system-lcms.patch
new file mode 100644
index 0000000..ea8e94b
--- /dev/null
+++ b/system-lcms.patch
@@ -0,0 +1,101 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -607,6 +607,46 @@
+
+ ###############################################################################
+ #
++# Check for the lcms2 library
++#
++
++AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++ [use lcms2 from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++ [ LCMS_FOUND=yes ],
++ [ LCMS_FOUND=no ])
++
++AC_MSG_CHECKING([for which lcms to use])
++
++DEFAULT_LCMS=bundled
++
++#
++# If user didn't specify, use DEFAULT_LCMS
++#
++if test "x${with_lcms}" = "x"; then
++ with_lcms=${DEFAULT_LCMS}
++fi
++
++if test "x${with_lcms}" = "xbundled"; then
++ USE_EXTERNAL_LCMS=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_lcms}" = "xsystem"; then
++ if test "x${LCMS_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LCMS=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or
'bundled'])
++fi
++
++AC_SUBST(USE_EXTERNAL_LCMS)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1213,8 +1213,8 @@
+
+ ifdef OPENJDK
+ # TODO: Update awt lib path when awt is converted
+- $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
+- LIBRARY:=lcms,\
++ $(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS,\
++ LIBRARY:=javalcms,\
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+ SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms,\
+ LANG:=C,\
+@@ -1232,18 +1232,18 @@
+ LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
+ LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
+ LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
+- LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
++ LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm -llcms2,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=lcms.dll" \
+- -D "JDK_INTERNAL_NAME=lcms" \
++ -D "JDK_FNAME=javalcms.dll" \
++ -D "JDK_INTERNAL_NAME=javalcms" \
+ -D "JDK_FTYPE=0x2L",\
+ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/liblcms,\
+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+- BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+-
+- $(BUILD_LIBLCMS) : $(BUILD_LIBAWT)
++ BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
++
++ $(BUILD_LIBJAVALCMS) : $(BUILD_LIBAWT)
+ endif
+
+
##########################################################################################
+diff --git a/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
b/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+@@ -95,7 +95,7 @@
+ * disposer frameworks
+ */
+ System.loadLibrary("awt");
+- System.loadLibrary("lcms");
++ System.loadLibrary("javalcms");
+ return null;
+ }
+ }
diff --git a/system-libjpeg.patch b/system-libjpeg.patch
new file mode 100644
index 0000000..fba0a3a
--- /dev/null
+++ b/system-libjpeg.patch
@@ -0,0 +1,207 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -487,11 +487,40 @@
+ # Check for the jpeg library
+ #
+
+-USE_EXTERNAL_LIBJPEG=true
+-AC_CHECK_LIB(jpeg, main, [],
+- [ USE_EXTERNAL_LIBJPEG=false
+- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+- ])
++AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++ [use libjpeg from build system or OpenJDK sources (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(jpeg, jpeg_destroy_compress,
++ [ LIBJPEG_FOUND=yes ],
++ [ LIBJPEG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libjpeg to use])
++
++# default is bundled
++DEFAULT_LIBJPEG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBJPEG
++#
++if test "x${with_libjpeg}" = "x"; then
++ with_libjpeg=${DEFAULT_LIBJPEG}
++fi
++
++if test "x${with_libjpeg}" = "xbundled"; then
++ USE_EXTERNAL_LIBJPEG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libjpeg}" = "xsystem"; then
++ if test "x${LIBJPEG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBJPEG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])
++ fi
++else
++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system'
or 'bundled'])
++fi
++
+ AC_SUBST(USE_EXTERNAL_LIBJPEG)
+
+ ###############################################################################
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -1249,17 +1249,17 @@
+
##########################################################################################
+
+ ifdef OPENJDK
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
++ BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers
+ else
+- BUILD_LIBJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
+- BUILD_LIBJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+- BUILD_LIBJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJPEG_CLOSED_SRC)
++
BUILD_LIBJAVAJPEG_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed
++
BUILD_LIBJAVAJPEG_CLOSED_SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES:=-I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+ endif
+
+-BUILD_LIBJPEG_REORDER:=
++BUILD_LIBJAVAJPEG_REORDER:=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-
BUILD_LIBJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++
BUILD_LIBJAVAJPEG_REORDER:=$(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+ endif
+ endif
+
+@@ -1274,37 +1274,37 @@
+ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ # ifeq ($(CC_43_OR_NEWER),1)
+-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ # endif
+ #endif
+
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
+- LIBRARY:=jpeg, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG,\
++ LIBRARY:=javajpeg, \
+ OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
+- SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
++ SRC:=$(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+ LANG:=C,\
+ OPTIMIZATION:=HIGHEST, \
+ CFLAGS:=$(CFLAGS_JDKLIB) \
+- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
+- MAPFILE:=$(BUILD_LIBJPEG_MAPFILE), \
+- LDFLAGS:=$(LDFLAGS_JDKLIB) \
++ MAPFILE:=$(BUILD_LIBJAVAJPEG_MAPFILE), \
++ LDFLAGS:=$(LDFLAGS_JDKLIB) -ljpeg \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+ LDFLAGS_windows:=$(WIN_JAVA_LIB) jvm.lib,\
+ LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+- -D "JDK_FNAME=jpeg.dll" \
+- -D "JDK_INTERNAL_NAME=jpeg" \
++ -D "JDK_FNAME=javajpeg.dll" \
++ -D "JDK_INTERNAL_NAME=javajpeg" \
+ -D "JDK_FTYPE=0x2L",\
+- REORDER:=$(BUILD_LIBJPEG_REORDER),\
+- OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjpeg,\
++ REORDER:=$(BUILD_LIBJAVAJPEG_REORDER),\
++ OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjavajpeg,\
+ DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
+
+-$(BUILD_LIBJPEG) : $(BUILD_LIBJAVA)
+-
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++$(BUILD_LIBJAVAJPEG) : $(BUILD_LIBJAVA)
++
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+
+
##########################################################################################
+
+@@ -2441,7 +2441,7 @@
+
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
+ -framework JavaNativeFoundation
+ else ifneq ($(OPENJDK_TARGET_OS), windows)
+- LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread
++ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11
-lXext $(LIBM) -lpthread -ljpeg
+ else # OPENJDK_TARGET_OS
+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib
-DELAYLOAD:user32.dll
+ endif # OPENJDK_TARGET_OS
+@@ -2457,7 +2457,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF),\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -179,7 +179,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/classes/sun/awt/image/JPEGImageDecoder.java
b/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@
+ java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<Void>() {
+ public Void run() {
+- System.loadLibrary("jpeg");
++ System.loadLibrary("javajpeg");
+ return null;
+ }
+ });
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
b/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c
+@@ -25,7 +25,6 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "jinclude.h"
+ #include "jpeglib.h"
+ #include "jerror.h"
+
+@@ -107,11 +106,11 @@
+ if (cinfo->src == NULL) { /* first time for this JPEG object? */
+ cinfo->src = (struct jpeg_source_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, SIZEOF(stream_source_mgr));
++ JPOOL_PERMANENT, sizeof(stream_source_mgr));
+ src = (stream_src_ptr) cinfo->src;
+ src->buffer = (JOCTET *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
+- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET));
++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET));
+ }
+
+ src = (stream_src_ptr) cinfo->src;
diff --git a/system-libpng.patch b/system-libpng.patch
new file mode 100644
index 0000000..2a2fc62
--- /dev/null
+++ b/system-libpng.patch
@@ -0,0 +1,83 @@
+diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4
+--- jdk8/common/autoconf/libraries.m4
++++ jdk8/common/autoconf/libraries.m4
+@@ -566,6 +566,47 @@
+
+ ###############################################################################
+ #
++# Check for the png library
++#
++
++AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
++ [use libpng from build system or OpenJDK source (system, bundled)
@<:@bundled@:>@])])
++
++AC_CHECK_LIB(png, png_sig_cmp,
++ [ LIBPNG_FOUND=yes ],
++ [ LIBPNG_FOUND=no ])
++
++AC_MSG_CHECKING([for which libpng to use])
++
++# default is bundled
++DEFAULT_LIBPNG=bundled
++
++#
++# if user didn't specify, use DEFAULT_LIBPNG
++#
++if test "x${with_libpng}" = "x"; then
++ with_libpng=${DEFAULT_libpng}
++fi
++
++
++if test "x${with_libpng}" = "xbundled"; then
++ USE_EXTERNAL_LIBPNG=false
++ AC_MSG_RESULT([bundled])
++elif test "x${with_libpng}" = "xsystem"; then
++ if test "x${LIBPNG_FOUND}" = "xyes"; then
++ USE_EXTERNAL_LIBPNG=true
++ AC_MSG_RESULT([system])
++ else
++ AC_MSG_RESULT([system not found])
++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
++ fi
++else
++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system'
or 'bundled'])
++fi
++AC_SUBST(USE_EXTERNAL_LIBPNG)
++
++###############################################################################
++#
+ # Check for the zlib library
+ #
+
+diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk
+--- jdk8/jdk/makefiles/CompileNativeLibraries.gmk
++++ jdk8/jdk/makefiles/CompileNativeLibraries.gmk
+@@ -2386,7 +2386,6 @@
+ ifndef BUILD_HEADLESS_ONLY
+ LIBSPLASHSCREEN_DIRS:=\
+ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+
+ ifeq ($(USE_EXTERNAL_LIBGIF),true)
+@@ -2457,7 +2456,7 @@
+ MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \
+ LDFLAGS:=$(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN),\
+- LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg,\
++ LDFLAGS_SUFFIX:=$(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(LIBGIF) -ljpeg -lpng,\
+ LDFLAGS_SUFFIX_solaris:=-lc,\
+ VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
+ RC_FLAGS:=$(RC_FLAGS)\
+diff --git a/src/share/native/sun/awt/splashscreen/splashscreen_png.c
b/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+@@ -25,7 +25,7 @@
+
+ #include "splashscreen_impl.h"
+
+-#include "../libpng/png.h"
++#include <png.h>
+
+ #include <setjmp.h>
+
commit 271009eb6acce7da5167b3048910723cb12c847c
Author: Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
Date: Tue Mar 12 12:52:22 2013 +0000
Initial setup of the repo
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/sources b/sources
new file mode 100644
index 0000000..e69de29