Architecture specific change in rpms/ppc64-utils.git
by githook-noreply@fedoraproject.org
The package rpms/ppc64-utils.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/ppc64-utils.git/commit/?id=6b3e48....
Change:
-ExclusiveArch: ppc %{power64}
Thanks.
Full change:
============
commit 6b3e4890d844d357221431a25d6a9ab93160ef99
Author: Dan Horák <dan(a)danny.cz>
Date: Tue Apr 24 14:33:44 2018 +0200
remove useless meta-package (#1566225)
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..837a058
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+remove useless meta-package (#1566225)
diff --git a/ppc64-utils.spec b/ppc64-utils.spec
deleted file mode 100644
index a9c7a70..0000000
--- a/ppc64-utils.spec
+++ /dev/null
@@ -1,223 +0,0 @@
-
-Summary: Linux/PPC64 specific utilities
-Name: ppc64-utils
-Version: 0.14
-Release: 25%{?dist}
-
-# La la la. There is nothing here any more.
-License: GPLv2
-
-Group: System Environment/Base
-
-ExclusiveArch: ppc %{power64}
-Requires: binutils
-Requires: powerpc-utils kernel-bootwrapper libvpd lsvpd
-
-%description
-A collection of utilities for Linux on PPC64 platforms.
-
-%prep
-
-%build
-
-%install
-
-%clean
-
-%files
-
-%changelog
-* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.14-25
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
-
-* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.14-24
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
-
-* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.14-23
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.14-22
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Mon Jul 11 2016 Peter Robinson <pbrobinson(a)fedoraproject.org> 0.14-21
-- rebuild
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.14-20
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-19
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Tue Mar 11 2014 Vasant Hegde <hegdevasant(a)fedoraproject.org> - 0.14-17
-- Add ppc64le architecture
-
-* Wed Sep 04 2013 Karsten Hopp <karsten(a)redhat.com> 0.14-16
-- drop requirements on yaboot and ps3-utils
-
-* Sun Aug 04 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-15
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Thu Feb 14 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-14
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Fri Oct 05 2012 Karsten Hopp <karsten(a)redhat.com> 0.14-13
-- require ps3-utils in Fedora only
-
-* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Fri May 04 2012 Karsten Hopp <karsten(a)redhat.com> 0.14-11
-- rebuild
-
-* Sat Jan 14 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-10
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
-* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-9
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Wed Feb 17 2010 Roman Rakus <rrakus(a)redhat.com> 0.14-8
-- Removed every lines in all sections.
-
-* Thu Jan 28 2010 Roman Rakus <rrakus(a)redhat.com> - 0.14-7
-- Added lsvpd and libvpd to dependency
-
-* Tue Nov 10 2009 Roman Rakus <rrakus(a)redhat.com> - 0.14-6
-- Remove powerpc-utils-papr from requires, since powerpc-utils provides it
-
-* Sun Jul 26 2009 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 0.14-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
-
-* Wed Feb 25 2009 Josh Boyer <jwboyer(a)gmail.com> - 0.14-4
-- Change Requires to ps3-utils as the package was renamed
-
-* Mon Jul 7 2008 Roman Rakus <rrakus(a)redhat.com> - 0.14-3
-- Requires yaboot only for ppc arch
-
-* Mon Feb 18 2008 Fedora Release Engineering <rel-eng(a)fedoraproject.org> - 0.14-2
-- Autorebuild for GCC 4.3
-
-* Mon Dec 3 2007 David Woodhouse <dwmw2(a)redhat.com> 0.14-1
-- Completely empty except for Requires: now. Yay!
-
-* Wed Nov 28 2007 David Woodhouse <dwmw2(a)redhat.com> 0.13-1
-- Remove powerpc-utils, powerpc-utils-papr, ps3pf-utils
-
-* Tue Oct 23 2007 Jeremy Katz <katzj(a)redhat.com> - 0.12-3
-- and one more file is needed
-
-* Sun Oct 14 2007 Jeremy Katz <katzj(a)redhat.com> - 0.12-2
-- add files needed for creating bootable cds
-
-* Sat Sep 15 2007 David Cantrell <dcantrell(a)redhat.com> - 0.12-1
-- Upgraded to powerpc-utils-1.0.6 and powerpc-utils-papr-1.0.4
-- Updated license tag to reflect licenses of all included components
-
-* Mon Aug 27 2007 David Cantrell <dcantrell(a)redhat.com> - 0.11-5
-- Spec file style cleanup
-- BR dtc now for ps3.dtb since Core/Extras merge is complete
-- BR kernel-devel
-- Pass kernel include path for ps3pf_utils-1.0.9 build
-
-* Mon Apr 16 2007 David Woodhouse <dwmw2(a)redhat.com> - 0.11-4
-- Fix handling of PS3 secondary PPU in bootwrapper
-
-* Sun Apr 8 2007 David Woodhouse <dwmw2(a)redhat.com> - 0.11-3
-- Update kernel bootwrapper magic
-
-* Sat Mar 31 2007 David Woodhouse <dwmw2(a)redhat.com> - 0.11-2
-- Include ps3pf_utils.
-
-* Mon Oct 30 2006 Paul Nasrat <pnasrat(a)redhat.com> - 0.11-1
-- Update powerpc-utils to 1.0.3 (#212181)
-
-* Mon Oct 16 2006 Paul Nasrat <pnasrat(a)redhat.com> - 0.10-1
-- Include powerpc-utils and powerpc-utils-papr (#184685)
-
-* Sun Oct 01 2006 Jesse Keating <jkeating(a)redhat.com> - 0.9-15
-- rebuilt for unwind info generation, broken in gcc-4.1.1-21
-
-* Thu Sep 21 2006 Peter Jones <pjones(a)redhat.com> - 0.9-14
-- Fix iSeries support in addRamDisk
-
-* Fri Jul 14 2006 Jesse Keating <jkeating(a)redhat.com> - 0.9-13
-- rebuild
-
-* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 0.9-12.2.1
-- bump again for double-long bug on ppc(64)
-
-* Tue Feb 07 2006 Jesse Keating <jkeating(a)redhat.com> - 0.9-12.2
-- rebuilt for new gcc4.1 snapshot and glibc changes
-
-* Fri Dec 09 2005 Jesse Keating <jkeating(a)redhat.com>
-- rebuilt
-
-* Fri Nov 18 2005 David Woodhouse <dwmw2(a)redhat.com> - 0.9-12
-- Update zImage.stub from 2.6.15-rc1 kernel
-- Link zImage at 3MiB since the POWER5 doesn't like it at 8MiB
-
-* Tue Oct 25 2005 Paul Nasrat <pnasrat(a)redhat.com> - 0.9-11
-- Bump internal version above rhel4 ver
-- Pull in later ppc64-utils (#169035)
-
-* Tue Oct 25 2005 Paul Nasrat <pnasrat(a)redhat.com> - 0.7-13
-- Stop scanning nvram on broken content (#170418)
-
-* Tue Sep 27 2005 David Woodhouse <dwmw2(a)redhat.com> - 0.7-12
-- Work around old Pegasos II 'claim' method bug
-
-* Wed Sep 21 2005 David Woodhouse <dwmw2(a)redhat.com> - 0.7-11
-- Build zImage.stub 32-bit even on ppc64
-
-* Tue Sep 20 2005 David Woodhouse <dwmw2(a)redhat.com> - 0.7-10
-- Include zImage stub, capable of both ppc32 and ppc64 boot.
-
-* Tue Mar 15 2005 Paul Nasrat <pnasrat(a)redhat.com> - 0.7-9
-- Rebuild
-
-* Wed Oct 20 2004 Jeremy Katz <katzj(a)redhat.com> - 0.7-8
-- add some more error handling to new mkzimage
-
-* Wed Oct 20 2004 Jeremy Katz <katzj(a)redhat.com> - 0.7-7
-- New mkzimage script from dhowells that works with the zImage.stub in
- our 2.6 kernels
- - use mktemp instead of predictable filenames in /tmp
- - use the zImage.lds in the package instead of output by the script
-
-* Wed Sep 22 2004 Jeremy Katz <katzj(a)redhat.com> - 0.7-5
-- rebuild
-
-* Tue Jun 15 2004 Elliot Lee <sopwith(a)redhat.com>
-- rebuilt
-
-* Wed Mar 3 2004 Jeremy Katz <katzj(a)redhat.com> - 0.7-3
-- rebuild
-
-* Tue Nov 4 2003 Matt Wilson <msw(a)redhat.com> 0.7-2
-- make clean before buildinig nvsetenv to nuke the old binary (#107943)
-
-* Tue Sep 16 2003 Jeremy Katz <katzj(a)redhat.com> 0.7-1
-- mkzimage bugfix
-
-* Mon Aug 18 2003 Matt Wilson <msw(a)redhat.com> 0.6-1
-- incorporate ppc64-utils 0.4 from IBM
-
-* Mon Aug 11 2003 Matt Wilson <msw(a)redhat.com> 0.5-1
-- add nvsetenv
-
-* Wed Jul 30 2003 Matt Wilson <msw(a)redhat.com> 0.4-1
-- add mkzimage for pSeries zImage creation with initrd
-
-* Tue May 20 2003 Matt Wilson <msw(a)redhat.com> 0.3-1
-- add addSystemMap from arch/ppc64/boot/addSystemMap.c
-
-* Fri Apr 18 2003 Jeremy Katz <katzj(a)redhat.com> 0.2-1
-- make addRamDisk quieter by default, set $VERBOSE to get old output
-
-* Tue Apr 15 2003 Jeremy Katz <katzj(a)redhat.com> 0.1-1
-- include addRamDisk from kernel source tree (arch/ppc64/boot/addRamDisk.c)
- to create kernel/initrd blobs on iSeries
-
-
diff --git a/sources b/sources
deleted file mode 100644
index e69de29..0000000
6 years
Architecture specific change in rpms/java-1.8.0-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-1.8.0-openjdk.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.git/commit/?id....
Change:
-%ifarch %{aarch64}
Thanks.
Full change:
============
commit edd800162349c23df103a9b71798094fd80a403a
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 0894cb1..228c073 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,12 +71,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)
@@ -86,7 +80,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
@@ -940,7 +933,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
@@ -2147,6 +2140,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.
6 years
Architecture specific change in rpms/java-1.8.0-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-1.8.0-openjdk.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.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id....
Change:
+%ifnarch %{arm} %{aarch64} ppc64le
+%ifarch %{aarch64}
+%ifnarch %{aarch64}
+%ifarch %{aarch64}
+%ifarch x86_64 %{ix86}
-%ifarch %{aarch64}
+%ifarch %{aarch64}
-%ifarch %{jit_arches} # Only in u4+
-%ifarch %{aarch64}
-%ifarch %{with_systemtap}
+%ifarch %{aarch64}
+%ifarch s390
+%ifarch %{power64} ppc
+%ifarch %{aarch64}
-%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifnarch %{aarch64}
-%ifarch %{aarch64}
+%ifnarch %{aarch64}
+%ifnarch %{aarch64}
-%ifarch %{aarch64}
-%ifarch %{arm}
+%ifarch s390x sparc64 alpha %{power64}
+%ifarch %{aarch64}
+%ifarch %{ix86} x86_64
-%ifarch %{aarch64}
-%ifarch %{ppc64le}
+%ifarch %{ix86}
-%ifarch %{aarch64}
-%ifnarch %{aarch64}
+%ifarch %{arm64}
-%ifarch %{ppc64le}
+%ifarch x86_64 %{aarch64}
+%ifarch x86_64
+%ifarch %{aarch64}
+%ifarch %{aarch64}
-%ifarch %{jit_arches}
+%ifarch %{jit_arches}
-%ifnarch %{ppc64le}
+%ifarch %{jit_arches}
+%ifnarch %{jit_arches}
+%ifnarch %{aarch64}
+%ifarch %{aarch64}
+%ifnarch %{aarch64}
+%ifnarch %{ppc64le}
+%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifnarch %{arm} %{aarch64} %{ppc64le}
+%ifarch %{ix86} x86_64 %{aarch64} %{ppc64le}
+%ifarch %{ix86} x86_64
+%ifarch %{with_systemtap}
+%ifnarch %{arm} %{aarch64}
-%ifarch %{multilib_arches}
-%ifnarch %{aarch64}
+%ifarch %{jit_arches}
-%ifarch %{aarch64}
-%ifnarch %{aarch64}
+%ifarch %{jit_arches}
+%ifarch x86_64 %{ix86} %{aarch64}
+%ifarch %{aarch64}
Thanks.
Full change:
============
commit f0b7925ac6ad53facaddf9fc43e4f25cdb9bfe53
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 1002649..0894cb1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -940,7 +940,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
@@ -2147,6 +2147,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 6911d39a79a5bbb4fdc98d8d52650a12b04b8eab
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Apr 18 15:12:20 2018 +0200
Sync with rawhide
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/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/8197429-pr3456-rh1536622.patch b/8197429-pr3456-rh1536622.patch
new file mode 100644
index 0000000..fc60cd3
--- /dev/null
+++ b/8197429-pr3456-rh1536622.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/8200556-pr3566.patch b/8200556-pr3566.patch
new file mode 100644
index 0000000..ccd2f49
--- /dev/null
+++ b/8200556-pr3566.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/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 60d6626..1002649 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-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
@@ -556,6 +556,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
@@ -579,8 +582,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/
@@ -937,7 +940,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
@@ -952,7 +955,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
@@ -963,7 +976,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
@@ -1035,19 +1048,18 @@ Patch509: rh1176206-root.patch
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
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
+
+# 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
@@ -1056,6 +1068,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
@@ -1081,16 +1095,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
@@ -1100,6 +1116,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
@@ -1133,7 +1153,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
@@ -1438,10 +1458,11 @@ sh %{SOURCE12}
%patch205
%patch206
%patch207
-%patch208
%patch209
%patch210
+%patch300
+
%patch1
%patch3
%patch5
@@ -1452,8 +1473,10 @@ sh %{SOURCE12}
%patch102
%patch103
-# ppc64le fixes
+# AArch64 fixes
+%patch104
+# ppc64le fixes
%patch603
%patch601
%patch602
@@ -1484,10 +1507,9 @@ sh %{SOURCE12}
%patch540
%patch560
pushd openjdk/jdk
-%patch561 -p1
+%patch529 -p1
popd
-%patch562
-%patch563
+%patch561
# RPM-only fixes
%patch525
@@ -1498,6 +1520,11 @@ popd
%patch534
%endif
+# Shenandoah-only patches
+%if %{use_shenandoah_hotspot}
+%patch700
+%endif
+
%patch1000
# Extract systemtap tapsets
@@ -2120,6 +2147,22 @@ 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
+
+* 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-3.b12
- returned patch562 rhbz_1540242.patch
- added Patch563 rhbz_1536622-JDK8197429-jdk8.patch
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/pr3458-rh1540242.patch b/pr3458-rh1540242.patch
new file mode 100644
index 0000000..2419b3d
--- /dev/null
+++ b/pr3458-rh1540242.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;
+ }
+
+
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_1536622-JDK8197429-jdk8.patch b/rhbz_1536622-JDK8197429-jdk8.patch
deleted file mode 100644
index fc60cd3..0000000
--- a/rhbz_1536622-JDK8197429-jdk8.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-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_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, \
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/rhbz_1540242.patch b/rhbz_1540242.patch
deleted file mode 100644
index 2419b3d..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
---- 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 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 2d96dc1bc0c5c9292a03a1374e1631f1d3f1ba72
Author: Jiri <jvanek(a)redhat.com>
Date: Thu Mar 29 15:49:52 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 d971c5d9dfef5dfbe06c886234c0c7accce8c72f
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Mar 27 17:51: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 fc4ec25c332edf01a08bb0cfa19098b7eca23d78
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Mar 27 15:06:27 2018 +0200
Adapted .gitignore
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
commit ed94312429547744a45d7cee49719adbb7a24de4
Author: Jiri <jvanek(a)redhat.com>
Date: Tue Mar 27 15:01:53 2018 +0200
Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12
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
deleted file mode 100644
index 377a39c..0000000
--- a/nss.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-name = NSS
-nssLibraryDirectory = @NSS_LIBDIR@
-nssDbMode = noDb
-attributes = compatibility
-handleStartupErrors = ignoreMultipleInitialisation
diff --git a/nss.cfg.in b/nss.cfg.in
new file mode 100644
index 0000000..377a39c
--- /dev/null
+++ b/nss.cfg.in
@@ -0,0 +1,5 @@
+name = NSS
+nssLibraryDirectory = @NSS_LIBDIR@
+nssDbMode = noDb
+attributes = compatibility
+handleStartupErrors = ignoreMultipleInitialisation
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/1417266.patch b/1417266.patch
deleted file mode 100644
index 82a5b16..0000000
--- a/1417266.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-
-# 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/1423421.patch b/1423421.patch
deleted file mode 100644
index 384c52a..0000000
--- a/1423421.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/8061305-pr3335-rh1423421.patch b/8061305-pr3335-rh1423421.patch
new file mode 100644
index 0000000..384c52a
--- /dev/null
+++ b/8061305-pr3335-rh1423421.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/8174164-pr3334-rh1417266.patch b/8174164-pr3334-rh1417266.patch
new file mode 100644
index 0000000..82a5b16
--- /dev/null
+++ b/8174164-pr3334-rh1417266.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/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@").mark("vm__init__end"),
- process("@ABS_SERVER_LIBJVM_SO@").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/8162384-pr3122-rh1358661.patch b/8162384-pr3122-rh1358661.patch
new file mode 100644
index 0000000..ff38413
--- /dev/null
+++ b/8162384-pr3122-rh1358661.patch
@@ -0,0 +1,54 @@
+# 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/hotspot-1358661.patch b/hotspot-1358661.patch
deleted file mode 100644
index fd986c9..0000000
--- a/hotspot-1358661.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- 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/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@").mark("vm__init__end"),
+ process("@ABS_SERVER_LIBJVM_SO@").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/8154313.patch b/8154313.patch
new file mode 100644
index 0000000..3a43c5f
--- /dev/null
+++ b/8154313.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)
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/jdk8-archivedJavadoc.patch b/jdk8-archivedJavadoc.patch
deleted file mode 100644
index 3a43c5f..0000000
--- a/jdk8-archivedJavadoc.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/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/8049226-pr2960.patch b/8049226-pr2960.patch
new file mode 100644
index 0000000..0f6bdf8
--- /dev/null
+++ b/8049226-pr2960.patch
@@ -0,0 +1,123 @@
+# 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/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/httpsFix1329342.patch b/httpsFix1329342.patch
deleted file mode 100644
index 7f1bfbd..0000000
--- a/httpsFix1329342.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-
-# 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 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/jdwpCrash.abrt.patch b/jdwpCrash.abrt.patch
deleted file mode 100644
index 9ff2590..0000000
--- a/jdwpCrash.abrt.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-# 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)
-
-
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/pr2934.patch b/pr2934.patch
new file mode 100644
index 0000000..21e769d
--- /dev/null
+++ b/pr2934.patch
@@ -0,0 +1,90 @@
+# 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.
+
+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/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-02.patch
deleted file mode 100644
index 47360e7..0000000
--- a/pr2462-02.patch
+++ /dev/null
@@ -1,311 +0,0 @@
-# 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,
diff --git a/pr2462.patch b/pr2462.patch
new file mode 100644
index 0000000..17e1f69
--- /dev/null
+++ b/pr2462.patch
@@ -0,0 +1,302 @@
+# HG changeset patch
+# User mikael
+# 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 --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;
+ 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 --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()) {
+ 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 --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;
+ }
+
+-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 --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 @@
+ }
+
+ #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.
+@@ -3677,21 +3678,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();
+@@ -3711,26 +3713,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 --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;
+- 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 --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];
+ sprintf(message, "@assert failed: %s\n", p);
+- fprintf(stdout, 1+message);
++ fprintf(stdout, "%s", 1+message);
+ breakpoint();
+ unpack_abort(message);
+ return 0;
+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 @@
+ }
+
+ // 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.
+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 @@
+ }
+
+ // 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 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/d318d83c4e74.patch
deleted file mode 100644
index 51cd4b9..0000000
--- a/d318d83c4e74.patch
+++ /dev/null
@@ -1,114 +0,0 @@
---- 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/rh1163501.patch b/rh1163501.patch
new file mode 100644
index 0000000..51cd4b9
--- /dev/null
+++ b/rh1163501.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");
+ }
+
+
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
@@ -1114,9 +1121,6 @@ bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
-%ifarch %{ppc64le}
- --with-jvm-interpreter=cpp \
-%endif
--disable-zip-debug-info \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
@@ -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/PStack-808293.patch b/PStack-808293.patch
deleted file mode 100644
index eb8b8a0..0000000
--- a/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/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/java-1.8.0-openjdk-PStack-808293.patch b/java-1.8.0-openjdk-PStack-808293.patch
new file mode 100644
index 0000000..eb8b8a0
--- /dev/null
+++ b/java-1.8.0-openjdk-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-remove-intree-libraries.sh b/java-1.8.0-openjdk-remove-intree-libraries.sh
new file mode 100644
index 0000000..76a4156
--- /dev/null
+++ b/java-1.8.0-openjdk-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/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/remove-intree-libraries.sh b/remove-intree-libraries.sh
deleted file mode 100644
index 76a4156..0000000
--- a/remove-intree-libraries.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/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/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
@@ -540,14 +543,15 @@ 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
@@ -543,10 +543,6 @@ 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" \
%ifnarch %{aarch64}
@@ -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
@@ -543,10 +543,6 @@ 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" \
%ifnarch %{aarch64}
@@ -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*
@@ -967,6 +1037,9 @@ 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
+
+* 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
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-jdk.patch b/8011366-jdk.patch
new file mode 100644
index 0000000..b46e3e3
--- /dev/null
+++ b/8011366-jdk.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/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=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/8011366-root.patch b/8011366-root.patch
deleted file mode 100644
index 4d63ff9..0000000
--- a/8011366-root.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/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/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
@@ -445,6 +445,9 @@ 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 \
--with-debug-level=%{debugbuild} \
@@ -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
@@ -902,6 +902,10 @@ exit 0
%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
6 years
Architecture specific change in rpms/java-1.8.0-openjdk.git
by githook-noreply@fedoraproject.org
The package rpms/java-1.8.0-openjdk.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.git/commit/?id...
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id....
Change:
-%ifarch %{aarch64}
-%ifarch %{aarch64}
Thanks.
Full change:
============
commit edd800162349c23df103a9b71798094fd80a403a
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 0894cb1..228c073 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,12 +71,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)
@@ -86,7 +80,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
@@ -940,7 +933,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
@@ -2147,6 +2140,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 f0b7925ac6ad53facaddf9fc43e4f25cdb9bfe53
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 1002649..0894cb1 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -940,7 +940,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
@@ -2147,6 +2147,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 8452010d13e4ce99820624f2e759bde13ff0267a
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 1002649..ada3fcf 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -71,12 +71,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)
@@ -86,7 +80,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
@@ -940,7 +933,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
@@ -2147,6 +2140,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Apr 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-2.b10
+- Enable hardened build for Aarch64.
+
* 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)
6 years
[Report] Packages Restricting Arches
by root
New package excluding arches (4)
============================
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
List of packages currently excluding arches (2554)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- LuxRender
ExclusiveArch: x86_64
- OpenTK
ExclusiveArch: %mono_arches
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-DynDoc
ExclusiveArch: armv7, ppc, go_arch
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- apmud
ExclusiveArch: ppc
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-boot-config
ExclusiveArch: %{arm}
- arm-trusted-firmware
ExclusiveArch: aarch64
- atomic
ExclusiveArch: %{go_arches}
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64}
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- beignet
ExclusiveArch: x86_64 %{ix86}
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- buildah
ExclusiveArch: x86_64 %{arm} aarch64 ppc64le s390x
- bwa
ExclusiveArch: x86_64
- caddy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}}
- cadvisor
ExclusiveArch: %{ix86} x86_64 aarch64 ppc64le
- calamares
ExclusiveArch: %{ix86} x86_64
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- compat-gcc-296
ExclusiveArch: %{ix86} ia64 ppc
- consul
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- containerd
ExclusiveArch: %{go_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-api
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-dbus-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-gir-generator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- derelict
ExclusiveArch: %{ldc_arches}
- direnv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- dmtcp
ExclusiveArch: %ix86 x86_64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- docker
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-anaconda-addon
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- docker-latest
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- douceur
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dustmite
ExclusiveArch: %{ldc_arches}
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc ppc64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{ix86} x86_64 aarch64 arm
- efivar
ExclusiveArch: %{ix86} x86_64 aarch64 %{arm}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- exercism
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-developer-portal
ExclusiveArch: ix86 x86_64
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fedora-gnat-project-common
ExclusiveArch: noarch %{GNAT_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: x86_64
- firmware-addon-dell
ExclusiveArch: x86_64 ia64 %{ix86}
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- freshmaker
ExclusiveArch: %{ix86} x86_64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x %{power64}
- fwupdate
ExclusiveArch: x86_64 aarch64
- fzf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-lfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- gl3n
ExclusiveArch: %{ldc_arches}
- glibc32
ExclusiveArch: x86_64 ppc64 s390x
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %GPRbuild_arches
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- gnu-smalltalk
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-i18n
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gocomplete
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- godotenv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- gofed
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- golang
ExclusiveArch: %{golang_arches}
- golang-bitbucket-kardianos-osext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-deepin-dbus-factory
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-deepin-go-lib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-10gen-openssl
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- golang-github-AudriusButkevicius-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-go-nat-pmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-AudriusButkevicius-pfilter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-BurntSushi-freetype-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-graphics-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-toml-test
ExclusiveArch: %{go_arches}
- golang-github-BurntSushi-xgb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-BurntSushi-xgbutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Jeffail-gabs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-goquery
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-purell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-PuerkitoBio-urlesc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-RangelReale-osin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-RangelReale-osincli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-SAP-go-hdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-SeanDolphin-bqschema
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-SermoDigital-jose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-Shopify-sarama
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-Shopify-toxiproxy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ThomsonReutersEikon-go-ntlm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-assert
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-chroma
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-alecthomas-colour
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-kingpin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-repr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-template
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-alecthomas-units
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-andybalholm-cascadia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-appc-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-armon-go-proxyproto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-asaskevich-govalidator
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-auth0-go-jwt-middleware
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-axgle-mahonia
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bep-gitmap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bep-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-bgentry-go-netrc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-bkaradzic-go-lz4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-boombuler-barcode
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-buger-jsonparser
ExclusiveArch: %{go_arches} noarch
- golang-github-calmh-du
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-luhn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-calmh-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ccding-go-stun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cespare-xxhash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chaseadamsio-goorgeous
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cheekybits-is
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-chmduquesne-rollinghash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-chrismalek-oktasdk-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-client9-gospell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cloudfoundry-incubator-candiedyaml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cockroachdb-cockroach-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codahale-aesnicheck
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-codegangsta-negroni
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-coreos-go-etcd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cryptix-wav
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-cznic-b
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-fileutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-golex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-internal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lexer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-lldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-mathutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-ql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-sortutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-strutil
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-cznic-zappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-d4l3k-messagediff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-danwakefield-fnmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-cssmin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-dchest-siphash
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-denisenkom-go-mssqldb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-disintegration-imaging
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-dlclark-regexp2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-docker-libkv
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-docopt-docopt-go
ExclusiveArch: %{go_arches}
- golang-github-duosecurity-duo_api_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-edsrzf-mmap-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-eknkc-amber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-endophage-gotuf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-color
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fatih-structs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-flynn-go-shlex
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fortytw2-leaktest
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsnotify-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-fsouza-go-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-fullsailor-pkcs7
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-encoding
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gdamore-tcell
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-git-lfs-wildmatch
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-glacjay-goini
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-errors-errors
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-macaron-inject
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-go-mgo-mgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-go-tomb-tomb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gobuffalo-envy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gobwas-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gocql-gocql
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-golang-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-cmp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-google-go-github
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-goraft-raft
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gorilla-css
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-gorilla-sessions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-gosexy-gettext
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-hailocab-go-hostpool
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-hclog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-plugin
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-hashicorp-go-rootcerts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-howeyc-fsnotify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-inconshreveable-go-vhost
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-influxdb-influxdb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jackpal-gateway
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-prose
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jdkato-syllables
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-jefferai-jsonx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-justinas-alice
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-kdar-factorlog
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-keybase-go-crypto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-cpuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-klauspost-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-knieriem-markdown
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-kyokomi-emoji
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-linuxdeepin-go-x11-client
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lpabon-godbc
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-lucasb-eyer-go-colorful
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-markbates-inflect
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-colorable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mattn-go-shellwords
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-ansi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mgutz-logxi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-michaelklishin-rabbit-hole
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-mmark
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-miekg-pkcs11
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-axis2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-milochristiansen-lua
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-minio-sha256-simd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mistifyio-go-zfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-copystructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-homedir
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-go-testing-interface
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-go-wordwrap
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-goamz
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mitchellh-mapstructure
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mitchellh-reflectwalk
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-montanaflynn-stats
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mreiferson-go-httpclient
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-msteinert-pam
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-muesli-smartcrop
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-mvo5-goconfigparser
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mvo5-uboot-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-mxk-go-flowrate
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ncw-dropbox-sdk-go-unofficial
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-ncw-swift
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-neurosnap-sentences
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-nfnt-resize
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-noahdesu-go-ceph
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-ojii-gettext.go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-tablewriter
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olekukonko-ts
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-olivere-elastic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-onsi-ginkgo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-onsi-gomega
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-opencontainers-runtime-spec
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-opencontainers-specs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-openshift-go-json-rest
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-go-systemd
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-openshift-openshift-sdn
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-oschwald-geoip2-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-oschwald-maxminddb-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-patrickmn-go-cache
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-paulrosania-go-charset
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pelletier-go-buffruneio
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petar-GoLLRB
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-peterh-liner
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-petermattis-goid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pkg-profile
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pkg-sftp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-pmezard-go-difflib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-pquerna-otp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-client_golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-client_model
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-prometheus-common
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-procfs
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-prometheus-prometheus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-racker-perigee
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rackspace-gophercloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rakyll-globalconf
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rakyll-pb
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-rakyll-statik
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-rasky-go-xdr
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-rcrowley-go-metrics
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-remeh-sizedwaitgroup
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-remyoudompheng-bigfft
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-columnize
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-ryanuber-go-glob
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-samalba-dockerclient
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-samuel-go-zookeeper
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-sasha-s-go-deadlock
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-seccomp-libseccomp-golang
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sergi-go-diff
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sethgrid-pester
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shiena-ansicolor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shogo82148-go-shuffle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-shurcooL-sanitized_anchor_name
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-skarademir-naturalsort
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skratchdot-open-golang
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-skynetservices-skydns
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-assertions
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-smartystreets-go-aws-auth
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-smartystreets-goconvey
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spacejam-loghisto
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-spacemonkeygo-openssl
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm} ppc64le s390x}
- golang-github-spaolacci-murmur3
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-afero
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-fsync
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-spf13-nitro
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-sstarcher-go-okta
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stathat-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-stevvooe-resumable
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-streadway-amqp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-stretchr-objx
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-syndtr-gocapability
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-goleveldb
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-syndtr-gosnappy
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-templexxx-cpufeat
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-reedsolomon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-templexxx-xor
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tent-http-link-go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-thejerf-suture
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tjfoc-gmsm
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-tonnerre-golang-pretty
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-urfave-cli
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vaughan0-go-ini
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-vbatts-tar-split
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vishvananda-netlink
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} aarch64 x86_64 %{arm}}
- golang-github-vishvananda-netns
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vitrun-qart
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-vjeantet-asn1-ber
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-vmware-govcloudair
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-github-wsxiaoys-terminal
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonpointer
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonreference
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xeipuuv-gojsonschema
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xiang90-probing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-xrash-smetrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-kcp-go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-xtaci-smux
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-ace
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yosssi-gohtml
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-github-yvasiyarov-go-metrics
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-gorelic
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-yvasiyarov-newrelic_platform_go
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-github-zillode-notify
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-google-golangorg-cloud
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-gcfg
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-go-decimal-inf
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-go-exp
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-googlecode-goauth2
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-googlecode-log4go
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-sqlite
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{go_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- golang-googlecode-uuid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-gopkg-go-check-check
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-go-macaroon-macaroon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang-gopkg-retry-v1
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-layeh-gopher-luar
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golang-torproject-pluggable-transports-goptlib
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- golint
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotags
ExclusiveArch: %{go_arches}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- gsf-sharp
ExclusiveArch: %mono_arches
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hub
ExclusiveArch: %{go_arches}
- hugo
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} %{arm} x86_64 noarch
- ikarus
ExclusiveArch: %{ix86}
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- ioport
ExclusiveArch: %{ix86} x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iwyu
ExclusiveArch: %{ix86} x86_64
- ixpdimm_sw
ExclusiveArch: x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- jid
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- julia
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: %{all_x86} x86_64 ppc64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- latrace
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libflatarray
ExclusiveArch: %{ix86} x86_64
- libhfi1
ExclusiveArch: x86_64
- libica
ExclusiveArch: s390 s390x
- libinvm-cim
ExclusiveArch: x86_64
- libinvm-cli
ExclusiveArch: x86_64
- libinvm-i18n
ExclusiveArch: x86_64
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libjingle
ExclusiveArch: %{ix86} x86_64 %{arm}
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- librtas
ExclusiveArch: ppc %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: ppc %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lldb
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: ppc %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mongo-tools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-debugger
ExclusiveArch: %ix86 x86_64
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-arm-gcc
ExclusiveArch: x86_64
- nacl-arm-newlib
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nacl-gcc
ExclusiveArch: x86_64
- nacl-newlib
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nini
ExclusiveArch: %{mono_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-accepts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-after
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-agent-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-alter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-font
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansidiff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aproba
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archiver-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-uniq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-as-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ast-traverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ast-types
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-astral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-angular-annotate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-astral-pass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ava-init
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-messages
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-option
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-basic-auth-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-breakable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-shims
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camel-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caniuse-db
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-capture-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainsaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-change-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commoner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compress-commons
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compression
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constant-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-core
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-recommended-bump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc32-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-create-error-class
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dashdash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-date-now
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decompress-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-degenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dependency-lister
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dom-serializer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domelementtype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-domutils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dreamopt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dtree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ecstatic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encoding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-entities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errorhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-errs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-set
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-etag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-execa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extsprintf
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-far
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fd-slicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fg-lodash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-uri-to-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-follow-redirects
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-from2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs2
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ftp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-pkg-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stdin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-uri
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gettext-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-dummy-commit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-raw-commits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-semver-tags
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-got
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-angular-templates
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-cssmin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-htmlmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-less
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-requirejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-html-validation
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-process
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-util-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulp-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulp-util
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handle-thing
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-he
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-html-minifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-server
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-https-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-infinity-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-init-package-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inline-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-install
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-into-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-redirect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-retry-allowed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jison
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jju
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-better-errors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-langdetect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-latest-version
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lex-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lower-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lower-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lowercase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-memwatch-next
ExclusiveArch: %{nodejs_arches}
- nodejs-meow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mimic-response
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimist-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minstache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkfiletree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-moment-timezone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nano
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-native-or-bluebird
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nested-error-stacks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-print
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-status-codes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-package-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-stats
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-api
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nsp-audit-shrinkwrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-onetime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opn
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pac-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pac-resolver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-param-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parserlib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascal-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pause-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pegjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pem
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portfinder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-portscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-getopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prepend-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-private
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qunitjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rc
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-dir-files
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-installed
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-tree
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-recast
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regenerator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-registry-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-relateurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-requestretry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requires-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-run-parallel-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sauce-tunnel
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-saucelabs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-scmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentence-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seq
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-static
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-silent-npm-registry-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-smart-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snake-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socks-client
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-socks-proxy-agent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sort-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-correct
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-expression-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-st
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-std-mocks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-reduce
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamsink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strscanner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent-proxy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-swap-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-test
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timed-out
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-title-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ttembed-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-7.0.0
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-upper-case-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-join
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url-parse-lax
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utfx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-license
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-verror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vinyl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-w3cjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-json-file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmldom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xregexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yauzl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zip-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: %{ix86} x86_64
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obfs4
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-register-machine
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- odcs
ExclusiveArch: %{ix86} x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-powerd
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openmx
ExclusiveArch: x86_64 %{ix86}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- openvswitch
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orocos-bfl
ExclusiveArch: %{ix86} x86_64
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- playonlinux
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- plv8
ExclusiveArch: %v8_arches
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- podman
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- ppc64-utils
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- python-afl
ExclusiveArch: %{ix86} x86_64
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-ovirt-register
ExclusiveArch: %{ix86} x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: %{openblas_arches}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rclone
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rkt
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitflags0.9
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chan
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-coco
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-deque
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ordermap
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches} noarch
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_derive_internals
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slab0.3
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-proto
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: x86_64 aarch64
- shim-signed
ExclusiveArch: x86_64 aarch64
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- smuxi
ExclusiveArch: %{ix86} x86_64 %{arm} ppc64le
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- spice-xpi
ExclusiveArch: i686 x86_64 armv6l armv7l armv7hl aarch64
- spring
ExclusiveArch: %{ix86} x86_64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- syncthing
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl aarch64
- tboot
ExclusiveArch: %{ix86} x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- thunderbird-enigmail
ExclusiveArch: %{ix86} %{arm} ppc64 ppc64le s390x x86_64 noarch
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- v8
ExclusiveArch: %{ix86} x86_64 %{arm} ppc mipsel mips64el
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vdsm
ExclusiveArch: x86_64 %{power64} aarch64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit-sharp
ExclusiveArch: %mono_arches
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wiredtiger
ExclusiveArch: x86_64 aarch64 ppc64le
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- x86info
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-omap
ExclusiveArch: %{arm}
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-opentegra
ExclusiveArch: %{arm}
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- xsupplicant
ExclusiveArch: %{ix86} x86_64 ppc %{power64}
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
6 years
Architecture specific change in rpms/nodejs-conventional-changelog-jshint.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs-conventional-changelog-jshint.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/nodejs-conventional-changelog-jsh....
Change:
+ExclusiveArch: %{nodejs_arches} noarch
Thanks.
Full change:
============
commit a7e6a53bc956e0fb5608aa2f61985e797ba9a963
Author: Jared Smith <jsmith(a)fedoraproject.org>
Date: Mon Apr 23 10:35:40 2018 -0400
Initial packaging
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..77c5128
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/conventional-changelog-jshint-0.3.8.tgz
+/conventional-changelog-jshint-tests-0.3.8.tar.bz2
diff --git a/README.md b/README.md
deleted file mode 100644
index 933c526..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# nodejs-conventional-changelog-jshint
-
-'A conventional-changelog jshint preset'
\ No newline at end of file
diff --git a/dl-tests.sh b/dl-tests.sh
new file mode 100644
index 0000000..8461795
--- /dev/null
+++ b/dl-tests.sh
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+tag=$(sed -n 's/^Version:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+url=$(sed -n 's/^URL:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+pkgdir=$(basename $url | sed -s 's/\.git$//')
+
+echo "tag: $tag"
+echo "URL: $url"
+echo "pkgdir: $pkgdir"
+
+set -e
+
+tmp=$(mktemp -d)
+
+trap cleanup EXIT
+cleanup() {
+ echo Cleaning up...
+ set +e
+ [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp"
+}
+
+unset CDPATH
+pwd=$(pwd)
+
+pushd "$tmp"
+git clone $url
+cd $pkgdir
+echo Finding git tag
+gittag=$(git show-ref --tags | cut -d' ' -f2 | grep "${tag}$" || git show-ref --tags | cut -d' ' -f2 | sort -Vr | head -n1)
+if [ -z $gittag ]; then
+ gittag=tags/$tag
+fi
+echo "Git Tag: $gittag"
+if [ -d "test" ]; then
+ git archive --prefix='test/' --format=tar ${gittag}:test/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+elif [ -d "tests" ]; then
+ git archive --prefix='tests/' --format=tar ${gittag}:tests/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+elif [ -d "spec" ]; then
+ git archive --prefix='spec/' --format=tar ${gittag}:spec/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+else
+ echo "No test directory found for tag ${gittag}"
+fi
+if [ -d "support" ]; then
+ git archive --prefix='support/' --format=tar ${gittag}:support/ \
+ | bzip2 > "$pwd"/support-${tag}.tar.bz2
+fi
+if [ -d "fixture" ]; then
+ git archive --prefix='fixture/' --format=tar ${gittag}:fixture/ \
+ | bzip2 > "$pwd"/fixture-${tag}.tar.bz2
+fi
+if [ -d "examples" ]; then
+ git archive --prefix='examples/' --format=tar ${gittag}:examples/ \
+ | bzip2 > "$pwd"/examples-${tag}.tar.bz2
+elif [ -d "example" ]; then
+ git archive --prefix='example/' --format=tar ${gittag}:example/ \
+ | bzip2 > "$pwd"/examples-${tag}.tar.bz2
+fi
+if [ -d "tasks" ]; then
+ git archive --prefix='tasks/' --format=tar ${gittag}:tasks/ \
+ | bzip2 > "$pwd"/tasks-${tag}.tar.bz2
+fi
+if [ -d "docs" ]; then
+ git archive --prefix='docs/' --format=tar ${gittag}:docs/ \
+ | bzip2 > "$pwd"/docs-${tag}.tar.bz2
+elif [ -d "doc" ]; then
+ git archive --prefix='doc/' --format=tar ${gittag}:doc/ \
+ | bzip2 > "$pwd"/docs-${tag}.tar.bz2
+fi
+if [ -d "src" ]; then
+ git archive --prefix='src/' --format=tar ${gittag}:src/ \
+ | bzip2 > "$pwd"/src-${tag}.tar.bz2
+elif [ -d "source" ]; then
+ git archive --prefix='source/' --format=tar ${gittag}:source/ \
+ | bzip2 > "$pwd"/source-${tag}.tar.bz2
+fi
+if [ -d "tools" ]; then
+ git archive --prefix='tools/' --format=tar ${gittag}:tools/ \
+ | bzip2 > "$pwd"/tools-${tag}.tar.bz2
+fi
+if [ -d "scripts" ]; then
+ git archive --prefix='scripts/' --format=tar ${gittag}:scripts/ \
+ | bzip2 > "$pwd"/scripts-${tag}.tar.bz2
+fi
+if [ -d "modules" ]; then
+ git archive --prefix='modules/' --format=tar ${gittag}:modules/ \
+ | bzip2 > "$pwd"/modules-${tag}.tar.bz2
+fi
+if [ -d "ts" ]; then
+ git archive --prefix='ts/' --format=tar ${gittag}:ts/ \
+ | bzip2 > "$pwd"/ts-${tag}.tar.bz2
+fi
+if [ -d "build" ]; then
+ git archive --prefix='build/' --format=tar ${gittag}:build/ \
+ | bzip2 > "$pwd"/build-${tag}.tar.bz2
+fi
+if [ -d "fixtures" ]; then
+ git archive --prefix='fixtures/' --format=tar ${gittag}:fixtures/ \
+ | bzip2 > "$pwd"/fixtures-${tag}.tar.bz2
+fi
+if [ -d "mocks" ]; then
+ git archive --prefix='mocks/' --format=tar ${gittag}:mocks/ \
+ | bzip2 > "$pwd"/mocks-${tag}.tar.bz2
+fi
+if [ -d "typings" ]; then
+ git archive --prefix='typings/' --format=tar ${gittag}:typings/ \
+ | bzip2 > "$pwd"/typings-${tag}.tar.bz2
+fi
+if [ -d "templates" ]; then
+ git archive --prefix='templates/' --format=tar ${gittag}:templates/ \
+ | bzip2 > "$pwd"/templates-${tag}.tar.bz2
+fi
+if [ -d "benchmark" ]; then
+ git archive --prefix='benchmark/' --format=tar ${gittag}:benchmark/ \
+ | bzip2 > "$pwd"/benchmark-${tag}.tar.bz2
+fi
+if [ -d "vendor" ]; then
+ git archive --prefix='vendor/' --format=tar ${gittag}:vendor/ \
+ | bzip2 > "$pwd"/vendor-${tag}.tar.bz2
+fi
+if [ -d "packages" ]; then
+ git archive --prefix='packages/' --format=tar ${gittag}:packages/ \
+ | bzip2 > "$pwd"/packages-${tag}.tar.bz2
+fi
+if [ -d "rollup" ]; then
+ git archive --prefix='rollup/' --format=tar ${gittag}:rollup/ \
+ | bzip2 > "$pwd"/rollup-${tag}.tar.bz2
+fi
+popd
diff --git a/nodejs-conventional-changelog-jshint.spec b/nodejs-conventional-changelog-jshint.spec
new file mode 100644
index 0000000..c088b9f
--- /dev/null
+++ b/nodejs-conventional-changelog-jshint.spec
@@ -0,0 +1,77 @@
+%{?nodejs_find_provides_and_requires}
+
+%global packagename conventional-changelog-jshint
+
+# tests timeout in mock/koji
+%global enable_tests 0
+
+Name: nodejs-conventional-changelog-jshint
+Version: 0.3.8
+Release: 1%{?dist}
+Summary: A conventional-changelog jshint preset
+
+License: ISC
+URL: https://github.com/conventional-changelog/conventional-changelog.git
+Source0: https://registry.npmjs.org/%{packagename}/-/%{packagename}-%{version}.tgz
+# The test files are not included in the npm tarball.
+# Source{1-9} are generated by running Source10, which pulls from the upstream
+# version control repository.
+Source1: %{packagename}-tests-%{version}.tar.bz2
+Source10: dl-tests.sh
+
+
+BuildArch: noarch
+ExclusiveArch: %{nodejs_arches} noarch
+
+BuildRequires: nodejs-packaging
+BuildRequires: npm(compare-func)
+BuildRequires: npm(q)
+
+%if 0%{?enable_tests}
+BuildRequires: mocha
+BuildRequires: npm(chai)
+BuildRequires: npm(conventional-changelog-core)
+BuildRequires: npm(shelljs)
+%endif
+
+%description
+A conventional-changelog jshint preset.
+
+
+%prep
+%autosetup -n package
+# setup the tests
+%autosetup -T -D -a 1 -n package
+
+%if 0%{?enable_tests}
+%nodejs_fixdep chai
+%nodejs_fixdep mocha
+%endif
+
+%build
+# nothing to do
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename}
+cp -pr package.json *.js templates/ \
+ %{buildroot}%{nodejs_sitelib}/%{packagename}
+
+%nodejs_symlink_deps
+
+%check
+%nodejs_symlink_deps --check
+%{__nodejs} -e 'require("./")'
+%if 0%{?enable_tests}
+NODE_ENV=test %{_bindir}/mocha -R spec
+%else
+%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
+%endif
+
+%files
+%doc *.md
+%license LICENSE.md
+%{nodejs_sitelib}/%{packagename}
+
+%changelog
+* Sat Mar 31 2018 Jared Smith <jsmith(a)fedoraproject.org> - 0.3.8-1
+- Initial packaging
diff --git a/sources b/sources
new file mode 100644
index 0000000..9521563
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+SHA512 (conventional-changelog-jshint-0.3.8.tgz) = 867f50538648ff9579d3028f24d3c64f88045a088116957a69d89e20b5b831a505ca7b8360ebd0ef510c4a3dc4ce72722a2fcacee5e973d746997f278d93238a
+SHA512 (conventional-changelog-jshint-tests-0.3.8.tar.bz2) = 42934a402b528ab929cb92c5bbf212f61feaadc5441852ad1a1538b9137c7a44f5eff60b1825eadb997c290afc15beac188b552b3b05876a14723403a7793c7f
6 years
Architecture specific change in rpms/nodejs-tempfile.git
by githook-noreply@fedoraproject.org
The package rpms/nodejs-tempfile.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/nodejs-tempfile.git/commit/?id=ed....
Change:
+ExclusiveArch: %{nodejs_arches} noarch
Thanks.
Full change:
============
commit edd814cdc6acad5c4a473afc07d83a2c819031c2
Author: Jared Smith <jsmith(a)fedoraproject.org>
Date: Mon Apr 23 10:01:12 2018 -0400
Initial packaging
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4fca252
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/tempfile-2.0.0.tgz
diff --git a/README.md b/README.md
deleted file mode 100644
index 0ba1064..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# nodejs-tempfile
-
-'Get a random temporary file path'
\ No newline at end of file
diff --git a/nodejs-tempfile.spec b/nodejs-tempfile.spec
new file mode 100644
index 0000000..bb3850d
--- /dev/null
+++ b/nodejs-tempfile.spec
@@ -0,0 +1,67 @@
+%{?nodejs_find_provides_and_requires}
+
+%global packagename tempfile
+
+# ava test suite not yet in Fedora
+%global enable_tests 0
+
+Name: nodejs-tempfile
+Version: 2.0.0
+Release: 1%{?dist}
+Summary: Get a random temporary file path
+
+License: MIT
+URL: https://github.com/sindresorhus/tempfile.git
+Source0: https://registry.npmjs.org/%{packagename}/-/%{packagename}-%{version}.tgz
+# The test files are not included in the npm tarball.
+Source1: https://raw.githubusercontent.com/sindresorhus/tempfile/v%{version}/test.js
+
+
+BuildArch: noarch
+ExclusiveArch: %{nodejs_arches} noarch
+
+BuildRequires: nodejs-packaging
+BuildRequires: npm(uuid)
+BuildRequires: npm(temp-dir)
+
+%if 0%{?enable_tests}
+BuildRequires: npm(ava)
+%endif
+
+%description
+Get a random temporary file path
+
+
+%prep
+%autosetup -n package
+# setup the tests
+cp -p %{SOURCE1} .
+
+
+%build
+# nothing to do
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename}
+cp -pr package.json index.js \
+ %{buildroot}%{nodejs_sitelib}/%{packagename}
+
+%nodejs_symlink_deps
+
+%check
+%nodejs_symlink_deps --check
+%{__nodejs} -e 'require("./")'
+%if 0%{?enable_tests}
+%{_bindir}/ava
+%else
+%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
+%endif
+
+%files
+%doc readme.md
+%license license
+%{nodejs_sitelib}/%{packagename}
+
+%changelog
+* Wed Apr 4 2018 Jared K. Smith <jsmith(a)fedoraproject.org> - 2.0.0-1
+- Initial packaging
diff --git a/sources b/sources
new file mode 100644
index 0000000..5489a29
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (tempfile-2.0.0.tgz) = 64e9fa9c9520be00b4f7e768084177a01fabdda83b914be5b171065f4ebd4110fad29f8fdee3fb5c6f4ddbf6adf84c8844648dfff658dcbc84a2d0356299a3b8
diff --git a/test.js b/test.js
new file mode 100644
index 0000000..7e1ec6c
--- /dev/null
+++ b/test.js
@@ -0,0 +1,8 @@
+import {tmpdir} from 'os';
+import test from 'ava';
+import m from '.';
+
+test(t => {
+ t.true(m().includes(tmpdir()));
+ t.true(m('.png').endsWith('.png'));
+});
6 years
Architecture specific change in rpms/golang-googlecode-goauth2.git
by githook-noreply@fedoraproject.org
The package rpms/golang-googlecode-goauth2.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/golang-googlecode-goauth2.git/com....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
Thanks.
Full change:
============
commit 89123cad4a65f0b9a4dc505dee8c035953e6c98c
Author: Robert-André Mauchin <zebob.m(a)gmail.com>
Date: Mon Apr 23 15:50:41 2018 +0200
Bump to upstream 6881fee410a5daf86371371f9ad451b95e168b71
Update to new Go packaging
diff --git a/.gitignore b/.gitignore
index a2fd6b2..90c52c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/afe77d958c701557ec5dc56f6936fcc194d15520.tar.gz
/oauth2-5432cc9.tar.gz
+/oauth2-6881fee410a5daf86371371f9ad451b95e168b71.tar.gz
diff --git a/golang-googlecode-goauth2.spec b/golang-googlecode-goauth2.spec
index e9731d3..b736e49 100644
--- a/golang-googlecode-goauth2.spec
+++ b/golang-googlecode-goauth2.spec
@@ -1,239 +1,90 @@
-# If any of the following macros should be set otherwise,
-# you can wrap any of them with the following conditions:
-# - %%if 0%%{centos} == 7
-# - %%if 0%%{?rhel} == 7
-# - %%if 0%%{?fedora} == 23
-# Or just test for particular distribution:
-# - %%if 0%%{centos}
-# - %%if 0%%{?rhel}
-# - %%if 0%%{?fedora}
-#
-# Be aware, on centos, both %%rhel and %%centos are set. If you want to test
-# rhel specific macros, you can use %%if 0%%{?rhel} && 0%%{?centos} == 0 condition.
-# (Don't forget to replace double percentage symbol with single one in order to apply a condition)
-
-# Generate devel rpm
-%global with_devel 1
-# Build project from bundled dependencies
-%global with_bundled 0
-# Build with debug info rpm
-%global with_debug 0
# Run tests in check section
-# Cyclic deps among cloud, grpc and oauth2
-%global with_check 0
-# Generate unit-test rpm
-%global with_unit_test 1
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
+%bcond_without check
+
+%global goipath golang.org/x/oauth2
+%global forgeurl https://github.com/golang/oauth2
+%global oldgoipath code.google.com/p/goauth2
+%global oldgoname %gorpmname %{oldgoipath}
+%global commit 6881fee410a5daf86371371f9ad451b95e168b71
-%global provider github
-%global provider_tld com
-%global project golang
-%global repo oauth2
-# https://github.com/golang/oauth2
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path golang.org/x/oauth2
-%global commit 5432cc9688e6250a0dd8f5a5f4c781d92b398be6
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
-
-%global gc_rev afe77d958c701557ec5dc56f6936fcc194d15520
-%global gc_shortrev %(r=%{gc_rev}; echo ${r:0:12})
-%global gc_provider google
-%global gc_provider_sub code
-%global gc_provider_tld com
-%global gc_repo goauth2
-%global gc_import_path %{gc_provider_sub}.%{gc_provider}.%{gc_provider_tld}/p/%{gc_repo}
-%global gc_name golang-%{gc_provider}%{gc_provider_sub}-%{gc_repo}
-
-%global x_name golang-golangorg-oauth2
-%global devel_main %{x_name}-devel
+%global common_description %{expand:
+A client implementation for OAuth 2.0 spec.}
+
+%gometa
Name: golang-googlecode-goauth2
Version: 0
-Release: 0.23.git%{shortcommit}%{?dist}
-Summary: OAuth 2.0 for Go clients
+Release: 0.24%{?dist}
+Summary: A client implementation for OAuth 2.0 spec
License: BSD
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-Source1: https://%{gc_repo}.%{gc_provider}%{gc_provider_sub}.%{gc_provider_tld}/archive/%{gc_rev}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%description
-%{summary}
-
-%if 0%{?with_devel}
-%package -n %{x_name}-devel
-Summary: %{summary}
-BuildArch: noarch
+URL: %{gourl}
+Source0: %{gosource}
-%if 0%{?with_check}
+BuildRequires: golang(cloud.google.com/go/compute/metadata)
BuildRequires: golang(golang.org/x/net/context)
+BuildRequires: golang(golang.org/x/net/context/ctxhttp)
BuildRequires: golang(google.golang.org/appengine)
BuildRequires: golang(google.golang.org/appengine/urlfetch)
-%endif
-Requires: golang(golang.org/x/net/context)
-Requires: golang(google.golang.org/appengine)
-Requires: golang(google.golang.org/appengine/urlfetch)
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-Provides: golang(%{import_path}/amazon) = %{version}-%{release}
-Provides: golang(%{import_path}/bitbucket) = %{version}-%{release}
-Provides: golang(%{import_path}/clientcredentials) = %{version}-%{release}
-Provides: golang(%{import_path}/facebook) = %{version}-%{release}
-Provides: golang(%{import_path}/fitbit) = %{version}-%{release}
-Provides: golang(%{import_path}/foursquare) = %{version}-%{release}
-Provides: golang(%{import_path}/github) = %{version}-%{release}
-Provides: golang(%{import_path}/google) = %{version}-%{release}
-Provides: golang(%{import_path}/heroku) = %{version}-%{release}
-Provides: golang(%{import_path}/hipchat) = %{version}-%{release}
-Provides: golang(%{import_path}/jws) = %{version}-%{release}
-Provides: golang(%{import_path}/jwt) = %{version}-%{release}
-Provides: golang(%{import_path}/linkedin) = %{version}-%{release}
-Provides: golang(%{import_path}/mediamath) = %{version}-%{release}
-Provides: golang(%{import_path}/microsoft) = %{version}-%{release}
-Provides: golang(%{import_path}/odnoklassniki) = %{version}-%{release}
-Provides: golang(%{import_path}/paypal) = %{version}-%{release}
-Provides: golang(%{import_path}/slack) = %{version}-%{release}
-Provides: golang(%{import_path}/uber) = %{version}-%{release}
-Provides: golang(%{import_path}/vk) = %{version}-%{release}
-Provides: golang(%{import_path}/yandex) = %{version}-%{release}
-
-%description -n %{x_name}-devel
-%{summary}
+%description
+%{common_description}
-This package contains library source intended for
-building other packages which use import path with
-%{import_path} prefix.
-%package -n %{gc_name}-devel
+%package devel
Summary: %{summary}
BuildArch: noarch
-Provides: golang(%{gc_import_path}/appengine/serviceaccount) = %{version}-%{release}
-Provides: golang(%{gc_import_path}/compute/serviceaccount) = %{version}-%{release}
-Provides: golang(%{gc_import_path}/oauth) = %{version}-%{release}
-Provides: golang(%{gc_import_path}/oauth/jwt) = %{version}-%{release}
-
-%description -n %{gc_name}-devel
-%{summary}
+%description devel
+%{common_description}
This package contains library source intended for
building other packages which use import path with
-%{gc_import_path} prefix.
-%endif
+%{goipath} prefix.
-%if 0%{?with_unit_test}
-%package unit-test
-Summary: Unit tests for %{name} package
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
+%package -n compat-%{oldgoname}-devel
+Summary: %{summary}
+BuildArch: noarch
+
+%description -n compat-%{oldgoname}-devel
+%{common_description}
+
+This package contains compatibility glue for code that still imports the
+%{oldgoipath} Go namespace.
-# test subpackage tests code from devel subpackage
-Requires: %{x_name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
%prep
-%setup -q -n %{gc_repo}-%{gc_shortrev} -T -b 1
-%setup -q -n %{repo}-%{commit}
+%forgeautosetup
-%build
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-
-install -d -p %{buildroot}/%{gopath}/src/%{gc_import_path}/
-pushd ../%{gc_repo}-%{gc_shortrev}
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- install -d -p %{buildroot}/%{gopath}/src/%{gc_import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{gc_import_path}/$file
- echo "%%{gopath}/src/%%{gc_import_path}/$file" >> ../%{repo}-%{commit}/gc_devel.file-list
-done
-popd
+%goinstall
-%endif
+install -m 0755 -vd %{buildroot}%{gopath}/src/%(dirname %{oldgoipath})
+ln -s %{gopath}/src/%{goipath} %{buildroot}%{gopath}/src/%{oldgoipath}
-# testing files for this project
-%if 0%{?with_unit_test}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
+%if %{with check}
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-# No dependency directories so far
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
+%gochecks
%endif
-%gotest %{import_path}
-%gotest %{import_path}/clientcredentials
-# open testdata/gcloud/credentials: no such file or directory
-#%gotest %{import_path}/google
-%gotest %{import_path}/internal
-%gotest %{import_path}/jws
-%gotest %{import_path}/jwt
-%endif
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
-
-%if 0%{?with_devel}
-%files -n %{x_name}-devel -f devel.file-list
+%files devel -f devel.file-list
%license LICENSE
-%doc README.md CONTRIBUTING.md AUTHORS CONTRIBUTORS
-%dir %{gopath}/src/%{import_path}
+%doc README.md CONTRIBUTORS CONTRIBUTING.md AUTHORS
-%files -n %{gc_name}-devel -f gc_devel.file-list
-%license LICENSE
-%doc README.md CONTRIBUTING.md AUTHORS CONTRIBUTORS
-%dir %{gopath}/src/%{gc_import_path}
-%endif
-%if 0%{?with_unit_test}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md CONTRIBUTING.md AUTHORS CONTRIBUTORS
-%endif
+%files -n compat-%{oldgoname}-devel
+%dir %{gopath}/src/%(dirname %{oldgoipath})
+%{gopath}/src/%{oldgoipath}
+
%changelog
+* Wed Mar 21 2018 Robert-André Mauchin <zebob.m(a)gmail.com> - 0-0.24.20180423git6881fee
+- Bump to upstream 6881fee410a5daf86371371f9ad451b95e168b71
+- Update to new Go packaging
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.23.git5432cc9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
diff --git a/sources b/sources
index f69195a..65a3cb2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-SHA512 (oauth2-5432cc9.tar.gz) = ec212f2369cc4aa568a2c76fd736450a7f429a9dce93c4c1656e04ab3cba39e858e067ab9be8a2cf94dc391b00c67a253c7d8fdce63469b6ea129aa529d51fc3
-SHA512 (afe77d958c701557ec5dc56f6936fcc194d15520.tar.gz) = 813ae04e2887165f2f4a35cfd594f784d4057d28c94248a059ff9e4852eaf26ada289217bf506dddf17919466720849de18f4ec0beb296645eae26bdea8c470e
+SHA512 (oauth2-6881fee410a5daf86371371f9ad451b95e168b71.tar.gz) = bec09e224f035ce6adde1c87de3e0eea21098bd3faabd9e8372bd30096ddd5a92a14470445d9dd50ac840f8fb674456d49343ba552bc87c8e70a67e7e36e1ff7
6 years
Architecture specific change in rpms/ocserv.git
by githook-noreply@fedoraproject.org
The package rpms/ocserv.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/ocserv.git/commit/?id=a1eba8ccb2f....
Change:
-%ifarch ppc64
Thanks.
Full change:
============
commit a1eba8ccb2f0e0c83374aa3a47f99d233d769d0c
Author: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
Date: Mon Apr 23 11:37:13 2018 +0200
Update to 0.12.0-1
- Update to upstream 0.12.0 release
diff --git a/.gitignore b/.gitignore
index 3553425..d09b5eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -126,3 +126,14 @@
/gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg
/ocserv-0.11.11.tar.xz.sig
/ocserv-0.11.11.tar.xz
+/ocserv.init
+/gpgkey-56EE7FA9E8173B19FE86268D763712747F343FA7.gpg
+/ocserv-script
+/ocserv-genkey
+/PACKAGE-LICENSING
+/ocserv-pamd.conf
+/ocserv.service
+/ocserv.conf
+/gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg
+/ocserv-0.12.0.tar.xz.sig
+/ocserv-0.12.0.tar.xz
diff --git a/ocserv-0.11.11-crypt.patch b/ocserv-0.11.11-crypt.patch
deleted file mode 100644
index cec65e6..0000000
--- a/ocserv-0.11.11-crypt.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From cf9cda99a5caf8fabd547f25a962b96a46e13957 Mon Sep 17 00:00:00 2001
-From: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
-Date: Thu, 12 Apr 2018 14:58:59 +0200
-Subject: [PATCH] include crypt.h to use crypt()
-
-This is necessary in Fedora28 as it doesn't provide
-crypt() prototype in unistd.h
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1566464
-
-Signed-off-by: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
----
- configure.ac | 2 +-
- src/auth/plain.c | 5 +++++
- src/ocpasswd/ocpasswd.c | 5 +++++
- 3 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71c27564..c03d8e7b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -319,7 +319,7 @@ AC_CHECK_MEMBER([struct sockaddr.sa_len],
- #include <sys/socket.h>
- ])
-
--AC_CHECK_HEADERS([net/if_tun.h linux/if_tun.h netinet/in_systm.h], [], [], [])
-+AC_CHECK_HEADERS([net/if_tun.h linux/if_tun.h netinet/in_systm.h crypt.h], [], [], [])
-
- AC_CHECK_FUNCS([setproctitle vasprintf clock_gettime isatty pselect ppoll getpeereid sigaltstack])
- AC_CHECK_FUNCS([strlcpy posix_memalign malloc_trim strsep])
-diff --git a/src/auth/plain.c b/src/auth/plain.c
-index 2052e07d..f9c7b1b1 100644
---- a/src/auth/plain.c
-+++ b/src/auth/plain.c
-@@ -37,6 +37,11 @@
- #ifdef HAVE_LIBOATH
- # include <liboath/oath.h>
- #endif
-+#ifdef HAVE_CRYPT_H
-+ /* libcrypt in Fedora28 does not provide prototype
-+ * in unistd.h */
-+# include <crypt.h>
-+#endif
-
- #define MAX_CPASS_SIZE 128
- #define HOTP_WINDOW 20
-diff --git a/src/ocpasswd/ocpasswd.c b/src/ocpasswd/ocpasswd.c
-index de3b8396..abb66744 100644
---- a/src/ocpasswd/ocpasswd.c
-+++ b/src/ocpasswd/ocpasswd.c
-@@ -32,6 +32,11 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include "ocpasswd-args.h"
-+#ifdef HAVE_CRYPT_H
-+ /* libcrypt in Fedora28 does not provide prototype
-+ * in unistd.h */
-+# include <crypt.h>
-+#endif
-
- /* Gnulib portability files. */
- #include <getpass.h>
---
-2.14.3
-
diff --git a/ocserv-0.12.0-add-missing-test.patch b/ocserv-0.12.0-add-missing-test.patch
new file mode 100644
index 0000000..91e1f6b
--- /dev/null
+++ b/ocserv-0.12.0-add-missing-test.patch
@@ -0,0 +1,46 @@
+diff --git a/tests/server-cert-rsa-pss b/tests/server-cert-rsa-pss
+new file mode 100755
+index 0000000..be3d098
+--- /dev/null
++++ b/tests/server-cert-rsa-pss
+@@ -0,0 +1,40 @@
++#!/bin/sh
++#
++# Copyright (C) 2017 Red Hat, Inc.
++#
++# This file is part of ocserv.
++#
++# ocserv 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 2 of the License, or (at
++# your option) any later version.
++#
++# ocserv 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 GnuTLS; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++
++SERV="${SERV:-../src/ocserv}"
++srcdir=${srcdir:-.}
++NO_NEED_ROOT=1
++PORT=4444
++
++. `dirname $0`/common.sh
++
++echo "Testing server cert with RSA-PSS... "
++
++update_config test-rsa-pss.config
++launch_sr_server -d 1 -f -c ${CONFIG} & PID=$!
++wait_server $PID
++
++echo "Connecting to obtain cookie... "
++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=sha256:7462b697482f771a9a787bc19db00f704a1685ae09ed201b7a126b052a09522e --cookieonly ) ||
++ fail $PID "Could not receive cookie from server"
++
++cleanup
++
++exit 0
diff --git a/ocserv.conf b/ocserv.conf
index 96082b7..63ac7db 100644
--- a/ocserv.conf
+++ b/ocserv.conf
@@ -1,12 +1,19 @@
-# User authentication method. Could be set multiple times and in
-# that case all should succeed. To enable multiple methods use
-# multiple auth directives. Available options: certificate,
-# plain, pam, radius, gssapi.
+### The following directives do not change with server reload.
+#
+# User authentication method. To require multiple methods to be
+# used for the user to login, add multiple auth directives. The values
+# in the 'auth' directive are AND composed (if multiple all must
+# succeed).
+# Available options: certificate, plain, pam, radius, gssapi.
+# Note that authentication methods utilizing passwords cannot be
+# combined (e.g., the plain, pam or radius methods).
#
-# Note that authentication methods cannot be changed with reload.
-
# certificate:
# This indicates that all connecting users must present a certificate.
+# The username and user group will be then extracted from it (see
+# cert-user-oid and cert-group-oid). The certificate to be accepted
+# it must be signed by the CA certificate as specified in 'ca-cert' and
+# it must not be listed in the CRL, as specified by the 'crl' option.
#
# pam[gid-min=1000]:
# This enabled PAM authentication of the user. The gid-min option is used
@@ -44,7 +51,9 @@ auth = "pam"
# Specify alternative authentication methods that are sufficient
# for authentication. That is, if set, any of the methods enabled
-# will be sufficient to login.
+# will be sufficient to login, irrespective of the main 'auth' entries.
+# When multiple options are present, they are OR composed (any of them
+# succeeding allows login).
#enable-auth = "certificate"
#enable-auth = "gssapi"
#enable-auth = "gssapi[keytab=/etc/key.tab,require-local-user-map=true,tgt-freshness-time=900]"
@@ -176,6 +185,10 @@ try-mtu-discovery = false
#
# There may be multiple server-cert and server-key directives,
# but each key should correspond to the preceding certificate.
+# The certificate files will be reloaded when changed allowing for in-place
+# certificate renewal (they are checked and reloaded periodically;
+# a SIGHUP signal to main server will force reload).
+
server-cert = /etc/pki/ocserv/public/server.crt
server-key = /etc/pki/ocserv/private/server.key
diff --git a/ocserv.spec b/ocserv.spec
index 53982f9..8744f34 100644
--- a/ocserv.spec
+++ b/ocserv.spec
@@ -1,7 +1,7 @@
# This spec file has been automatically updated
-Version: 0.11.11
-Release: 2%{?dist}
-Patch1: ocserv-0.11.11-crypt.patch
+Version: 0.12.0
+Release: 1%{?dist}
+Patch1: ocserv-0.12.0-add-missing-test.patch
%global _hardened_build 1
%if 0%{?fedora} || 0%{?rhel} >= 7
@@ -20,9 +20,9 @@ Patch1: ocserv-0.11.11-crypt.patch
%define use_local_protobuf 0
%if 0%{?rhel} && 0%{?rhel} == 7
-%ifarch ppc64
-%define use_local_protobuf 1
-%endif
+#%ifarch ppc64
+#%define use_local_protobuf 1
+#%endif
%endif
Name: ocserv
@@ -79,12 +79,11 @@ BuildRequires: GeoIP-devel
%if %{use_systemd}
BuildRequires: systemd
BuildRequires: systemd-devel
-BuildRequires: autogen-libopts-devel
-BuildRequires: autogen
BuildRequires: liboath-devel
BuildRequires: uid_wrapper
BuildRequires: socket_wrapper
BuildRequires: gnupg2
+BuildRequires: rubygem(ronn)
%if 0%{?rhel} && 0%{?rhel} >= 7
%ifarch x86_64 %{ix86}
@@ -127,7 +126,12 @@ to provide the secure VPN service.
%if %{have_gpgv2}
gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} || gpgv2 --keyring %{SOURCE10} %{SOURCE1} %{SOURCE0}
%endif
+
+%if 0%{?rhel} && 0%{?rhel} <= 6
%setup -q
+%else
+%autosetup -p1
+%endif
rm -f src/http-parser/http_parser.c src/http-parser/http_parser.h
%if (0%{?use_local_protobuf} == 0)
@@ -141,14 +145,13 @@ sed -i 's/run-as-group = nogroup/run-as-group = nobody/g' tests/data/*.config
# GPLv3 in headers is a gnulib bug:
# http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00062.html
sed -i 's/either version 3 of the License/either version 2 of the License/g' build-aux/snippet/*
-sed -i 's/exit 1/exit 77/g' tests/ocpasswd-test
%if 0%{?rhel} && 0%{?rhel} <= 6
echo "int main() { return 77; }" > tests/valid-hostname.c
-%else
-rm -f libopts/*.c libopts/*.h libopts/*/*.c libopts/*/*.h
%endif
+chmod 755 tests/server-cert-rsa-pss
+
%build
%if 0%{?rhel} && 0%{?rhel} <= 6
@@ -166,9 +169,6 @@ autoreconf -fvi
%else
--disable-systemd \
%endif
-%if 0%{?rhel} && 0%{?rhel} <= 6
- --enable-local-libopts \
-%endif
%if %{use_local_protobuf}
--without-protobuf \
%endif
@@ -263,6 +263,9 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name}
%endif
%changelog
+* Mon Apr 23 2018 Nikos Mavrogiannopoulos <nmav(a)redhat.com> - 0.12.0-1
+- Update to upstream 0.12.0 release
+
* Thu Apr 12 2018 Nikos Mavrogiannopoulos <nmav(a)redhat.com> - 0.11.11-2
- Update to upstream 0.11.11 release
- include crypt.h to use crypt()
diff --git a/sources b/sources
index 2f7f48b..db4b5fa 100644
--- a/sources
+++ b/sources
@@ -5,7 +5,7 @@ SHA512 (ocserv-genkey) = e898144fd977e4c57c4a9a5480b38f6a166c0281c41500c3fa9b7e1
SHA512 (PACKAGE-LICENSING) = eea2a2a4765c90d874c79bb72d754c8b26b58d5e5b3c3cee10c24754fbba6849fd91f7b28e380b5db9789a456f95fc94b3bd8fe8c160a98c8042f404479ecb68
SHA512 (ocserv-pamd.conf) = 3a75f19d89ddd164f3faa9c3579c7f675fc58413a194f43ec28eee7ebced6fee3f4ca305fe9b0ddf76ae39cd669e8d3d63b58afbbf19b84e4ca646ae7f42d61a
SHA512 (ocserv.service) = 264f3389d88aec1f7d2e4683a4dfc0aa67af2325154de822eecf5fb43f8c221aab0d9f0c6a8eedb893e6d69ed4d94c9397b01e5d0d12e88330017a3bfa5f3644
-SHA512 (ocserv.conf) = 0a48d394dba183528c1e92df2a8b844a4d7d419244b1c08883f79c8b48843986e786ea4d48478ed4e8d57fd56626bf962dbcf6c76b5839ba5ab5fac8b089c44c
+SHA512 (ocserv.conf) = 5b68a3547c6c69bf7c2b322692d6382162a587c47edad97690223c36f30ed98d3869d1ce063c630740d91888a4d70aadd657ddc6052c10e6e26800fca2e9d0c0
SHA512 (gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg) = 3b1989dc6a64d1140f83a2af0773da2adb03c50d97b6da7357cf09525050651aafa21131f1e3180baa540a8af922119a256f5ff5bcd6602996a806e8e1816bad
-SHA512 (ocserv-0.11.11.tar.xz.sig) = 7a1521f94d48d7aafb66e6c544eb2e1c5a08d02441acc5f57876faaa984ad203f0395da37e602ad5539f54aa0ce1ff5da7389254028f6b811a9e01d6f86b1e84
-SHA512 (ocserv-0.11.11.tar.xz) = 1750e4ddd221913f82379ed34cf63f2ce858d73cfda0bcf60670a32bf2e8574a39f267c77abab78d2cf9a563a816d975e1a07b85c5e2412bd6d009850c8c262d
+SHA512 (ocserv-0.12.0.tar.xz.sig) = a746e72ba07bf7d28104385a70ba4c685389353368d02383eb385aece19ccc9d51a86226371338dbe1737046e403b17e351a04ffa2674ca594bf9e467438b534
+SHA512 (ocserv-0.12.0.tar.xz) = 73e39a6073761a42cff7637fdc0748d969dc6ddd80635633487aa2627ae7234af772194cf27fdded9f08637b26d7ca9017555242ccdb6ade03897f9d4ca4de8d
6 years
Architecture specific change in rpms/ocserv.git
by githook-noreply@fedoraproject.org
The package rpms/ocserv.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/ocserv.git/commit/?id=914a518ada5....
Change:
-%ifarch ppc64
Thanks.
Full change:
============
commit 914a518ada555171c0e5fbda48a632eaf8c4bec5
Author: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
Date: Mon Apr 23 11:20:16 2018 +0200
Update to 0.12.0-1
- Update to upstream 0.12.0 release
diff --git a/.gitignore b/.gitignore
index 3553425..d09b5eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -126,3 +126,14 @@
/gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg
/ocserv-0.11.11.tar.xz.sig
/ocserv-0.11.11.tar.xz
+/ocserv.init
+/gpgkey-56EE7FA9E8173B19FE86268D763712747F343FA7.gpg
+/ocserv-script
+/ocserv-genkey
+/PACKAGE-LICENSING
+/ocserv-pamd.conf
+/ocserv.service
+/ocserv.conf
+/gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg
+/ocserv-0.12.0.tar.xz.sig
+/ocserv-0.12.0.tar.xz
diff --git a/ocserv-0.11.11-crypt.patch b/ocserv-0.11.11-crypt.patch
deleted file mode 100644
index cec65e6..0000000
--- a/ocserv-0.11.11-crypt.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From cf9cda99a5caf8fabd547f25a962b96a46e13957 Mon Sep 17 00:00:00 2001
-From: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
-Date: Thu, 12 Apr 2018 14:58:59 +0200
-Subject: [PATCH] include crypt.h to use crypt()
-
-This is necessary in Fedora28 as it doesn't provide
-crypt() prototype in unistd.h
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1566464
-
-Signed-off-by: Nikos Mavrogiannopoulos <nmav(a)redhat.com>
----
- configure.ac | 2 +-
- src/auth/plain.c | 5 +++++
- src/ocpasswd/ocpasswd.c | 5 +++++
- 3 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71c27564..c03d8e7b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -319,7 +319,7 @@ AC_CHECK_MEMBER([struct sockaddr.sa_len],
- #include <sys/socket.h>
- ])
-
--AC_CHECK_HEADERS([net/if_tun.h linux/if_tun.h netinet/in_systm.h], [], [], [])
-+AC_CHECK_HEADERS([net/if_tun.h linux/if_tun.h netinet/in_systm.h crypt.h], [], [], [])
-
- AC_CHECK_FUNCS([setproctitle vasprintf clock_gettime isatty pselect ppoll getpeereid sigaltstack])
- AC_CHECK_FUNCS([strlcpy posix_memalign malloc_trim strsep])
-diff --git a/src/auth/plain.c b/src/auth/plain.c
-index 2052e07d..f9c7b1b1 100644
---- a/src/auth/plain.c
-+++ b/src/auth/plain.c
-@@ -37,6 +37,11 @@
- #ifdef HAVE_LIBOATH
- # include <liboath/oath.h>
- #endif
-+#ifdef HAVE_CRYPT_H
-+ /* libcrypt in Fedora28 does not provide prototype
-+ * in unistd.h */
-+# include <crypt.h>
-+#endif
-
- #define MAX_CPASS_SIZE 128
- #define HOTP_WINDOW 20
-diff --git a/src/ocpasswd/ocpasswd.c b/src/ocpasswd/ocpasswd.c
-index de3b8396..abb66744 100644
---- a/src/ocpasswd/ocpasswd.c
-+++ b/src/ocpasswd/ocpasswd.c
-@@ -32,6 +32,11 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include "ocpasswd-args.h"
-+#ifdef HAVE_CRYPT_H
-+ /* libcrypt in Fedora28 does not provide prototype
-+ * in unistd.h */
-+# include <crypt.h>
-+#endif
-
- /* Gnulib portability files. */
- #include <getpass.h>
---
-2.14.3
-
diff --git a/ocserv-0.12.0-add-missing-test.patch b/ocserv-0.12.0-add-missing-test.patch
new file mode 100644
index 0000000..91e1f6b
--- /dev/null
+++ b/ocserv-0.12.0-add-missing-test.patch
@@ -0,0 +1,46 @@
+diff --git a/tests/server-cert-rsa-pss b/tests/server-cert-rsa-pss
+new file mode 100755
+index 0000000..be3d098
+--- /dev/null
++++ b/tests/server-cert-rsa-pss
+@@ -0,0 +1,40 @@
++#!/bin/sh
++#
++# Copyright (C) 2017 Red Hat, Inc.
++#
++# This file is part of ocserv.
++#
++# ocserv 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 2 of the License, or (at
++# your option) any later version.
++#
++# ocserv 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 GnuTLS; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++
++SERV="${SERV:-../src/ocserv}"
++srcdir=${srcdir:-.}
++NO_NEED_ROOT=1
++PORT=4444
++
++. `dirname $0`/common.sh
++
++echo "Testing server cert with RSA-PSS... "
++
++update_config test-rsa-pss.config
++launch_sr_server -d 1 -f -c ${CONFIG} & PID=$!
++wait_server $PID
++
++echo "Connecting to obtain cookie... "
++( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT -q $ADDRESS:$PORT -u test --servercert=sha256:7462b697482f771a9a787bc19db00f704a1685ae09ed201b7a126b052a09522e --cookieonly ) ||
++ fail $PID "Could not receive cookie from server"
++
++cleanup
++
++exit 0
diff --git a/ocserv.conf b/ocserv.conf
index 96082b7..63ac7db 100644
--- a/ocserv.conf
+++ b/ocserv.conf
@@ -1,12 +1,19 @@
-# User authentication method. Could be set multiple times and in
-# that case all should succeed. To enable multiple methods use
-# multiple auth directives. Available options: certificate,
-# plain, pam, radius, gssapi.
+### The following directives do not change with server reload.
+#
+# User authentication method. To require multiple methods to be
+# used for the user to login, add multiple auth directives. The values
+# in the 'auth' directive are AND composed (if multiple all must
+# succeed).
+# Available options: certificate, plain, pam, radius, gssapi.
+# Note that authentication methods utilizing passwords cannot be
+# combined (e.g., the plain, pam or radius methods).
#
-# Note that authentication methods cannot be changed with reload.
-
# certificate:
# This indicates that all connecting users must present a certificate.
+# The username and user group will be then extracted from it (see
+# cert-user-oid and cert-group-oid). The certificate to be accepted
+# it must be signed by the CA certificate as specified in 'ca-cert' and
+# it must not be listed in the CRL, as specified by the 'crl' option.
#
# pam[gid-min=1000]:
# This enabled PAM authentication of the user. The gid-min option is used
@@ -44,7 +51,9 @@ auth = "pam"
# Specify alternative authentication methods that are sufficient
# for authentication. That is, if set, any of the methods enabled
-# will be sufficient to login.
+# will be sufficient to login, irrespective of the main 'auth' entries.
+# When multiple options are present, they are OR composed (any of them
+# succeeding allows login).
#enable-auth = "certificate"
#enable-auth = "gssapi"
#enable-auth = "gssapi[keytab=/etc/key.tab,require-local-user-map=true,tgt-freshness-time=900]"
@@ -176,6 +185,10 @@ try-mtu-discovery = false
#
# There may be multiple server-cert and server-key directives,
# but each key should correspond to the preceding certificate.
+# The certificate files will be reloaded when changed allowing for in-place
+# certificate renewal (they are checked and reloaded periodically;
+# a SIGHUP signal to main server will force reload).
+
server-cert = /etc/pki/ocserv/public/server.crt
server-key = /etc/pki/ocserv/private/server.key
diff --git a/ocserv.spec b/ocserv.spec
index 53982f9..8744f34 100644
--- a/ocserv.spec
+++ b/ocserv.spec
@@ -1,7 +1,7 @@
# This spec file has been automatically updated
-Version: 0.11.11
-Release: 2%{?dist}
-Patch1: ocserv-0.11.11-crypt.patch
+Version: 0.12.0
+Release: 1%{?dist}
+Patch1: ocserv-0.12.0-add-missing-test.patch
%global _hardened_build 1
%if 0%{?fedora} || 0%{?rhel} >= 7
@@ -20,9 +20,9 @@ Patch1: ocserv-0.11.11-crypt.patch
%define use_local_protobuf 0
%if 0%{?rhel} && 0%{?rhel} == 7
-%ifarch ppc64
-%define use_local_protobuf 1
-%endif
+#%ifarch ppc64
+#%define use_local_protobuf 1
+#%endif
%endif
Name: ocserv
@@ -79,12 +79,11 @@ BuildRequires: GeoIP-devel
%if %{use_systemd}
BuildRequires: systemd
BuildRequires: systemd-devel
-BuildRequires: autogen-libopts-devel
-BuildRequires: autogen
BuildRequires: liboath-devel
BuildRequires: uid_wrapper
BuildRequires: socket_wrapper
BuildRequires: gnupg2
+BuildRequires: rubygem(ronn)
%if 0%{?rhel} && 0%{?rhel} >= 7
%ifarch x86_64 %{ix86}
@@ -127,7 +126,12 @@ to provide the secure VPN service.
%if %{have_gpgv2}
gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} || gpgv2 --keyring %{SOURCE10} %{SOURCE1} %{SOURCE0}
%endif
+
+%if 0%{?rhel} && 0%{?rhel} <= 6
%setup -q
+%else
+%autosetup -p1
+%endif
rm -f src/http-parser/http_parser.c src/http-parser/http_parser.h
%if (0%{?use_local_protobuf} == 0)
@@ -141,14 +145,13 @@ sed -i 's/run-as-group = nogroup/run-as-group = nobody/g' tests/data/*.config
# GPLv3 in headers is a gnulib bug:
# http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00062.html
sed -i 's/either version 3 of the License/either version 2 of the License/g' build-aux/snippet/*
-sed -i 's/exit 1/exit 77/g' tests/ocpasswd-test
%if 0%{?rhel} && 0%{?rhel} <= 6
echo "int main() { return 77; }" > tests/valid-hostname.c
-%else
-rm -f libopts/*.c libopts/*.h libopts/*/*.c libopts/*/*.h
%endif
+chmod 755 tests/server-cert-rsa-pss
+
%build
%if 0%{?rhel} && 0%{?rhel} <= 6
@@ -166,9 +169,6 @@ autoreconf -fvi
%else
--disable-systemd \
%endif
-%if 0%{?rhel} && 0%{?rhel} <= 6
- --enable-local-libopts \
-%endif
%if %{use_local_protobuf}
--without-protobuf \
%endif
@@ -263,6 +263,9 @@ install -D -m 0755 %{SOURCE11} %{buildroot}/%{_initrddir}/%{name}
%endif
%changelog
+* Mon Apr 23 2018 Nikos Mavrogiannopoulos <nmav(a)redhat.com> - 0.12.0-1
+- Update to upstream 0.12.0 release
+
* Thu Apr 12 2018 Nikos Mavrogiannopoulos <nmav(a)redhat.com> - 0.11.11-2
- Update to upstream 0.11.11 release
- include crypt.h to use crypt()
diff --git a/sources b/sources
index 2f7f48b..db4b5fa 100644
--- a/sources
+++ b/sources
@@ -5,7 +5,7 @@ SHA512 (ocserv-genkey) = e898144fd977e4c57c4a9a5480b38f6a166c0281c41500c3fa9b7e1
SHA512 (PACKAGE-LICENSING) = eea2a2a4765c90d874c79bb72d754c8b26b58d5e5b3c3cee10c24754fbba6849fd91f7b28e380b5db9789a456f95fc94b3bd8fe8c160a98c8042f404479ecb68
SHA512 (ocserv-pamd.conf) = 3a75f19d89ddd164f3faa9c3579c7f675fc58413a194f43ec28eee7ebced6fee3f4ca305fe9b0ddf76ae39cd669e8d3d63b58afbbf19b84e4ca646ae7f42d61a
SHA512 (ocserv.service) = 264f3389d88aec1f7d2e4683a4dfc0aa67af2325154de822eecf5fb43f8c221aab0d9f0c6a8eedb893e6d69ed4d94c9397b01e5d0d12e88330017a3bfa5f3644
-SHA512 (ocserv.conf) = 0a48d394dba183528c1e92df2a8b844a4d7d419244b1c08883f79c8b48843986e786ea4d48478ed4e8d57fd56626bf962dbcf6c76b5839ba5ab5fac8b089c44c
+SHA512 (ocserv.conf) = 5b68a3547c6c69bf7c2b322692d6382162a587c47edad97690223c36f30ed98d3869d1ce063c630740d91888a4d70aadd657ddc6052c10e6e26800fca2e9d0c0
SHA512 (gpgkey-1F42418905D8206AA754CCDC29EE58B996865171.gpg) = 3b1989dc6a64d1140f83a2af0773da2adb03c50d97b6da7357cf09525050651aafa21131f1e3180baa540a8af922119a256f5ff5bcd6602996a806e8e1816bad
-SHA512 (ocserv-0.11.11.tar.xz.sig) = 7a1521f94d48d7aafb66e6c544eb2e1c5a08d02441acc5f57876faaa984ad203f0395da37e602ad5539f54aa0ce1ff5da7389254028f6b811a9e01d6f86b1e84
-SHA512 (ocserv-0.11.11.tar.xz) = 1750e4ddd221913f82379ed34cf63f2ce858d73cfda0bcf60670a32bf2e8574a39f267c77abab78d2cf9a563a816d975e1a07b85c5e2412bd6d009850c8c262d
+SHA512 (ocserv-0.12.0.tar.xz.sig) = a746e72ba07bf7d28104385a70ba4c685389353368d02383eb385aece19ccc9d51a86226371338dbe1737046e403b17e351a04ffa2674ca594bf9e467438b534
+SHA512 (ocserv-0.12.0.tar.xz) = 73e39a6073761a42cff7637fdc0748d969dc6ddd80635633487aa2627ae7234af772194cf27fdded9f08637b26d7ca9017555242ccdb6ade03897f9d4ca4de8d
6 years