diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..28181b7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+SOURCES/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
+SOURCES/tapsets-icedtea-3.15.0.tar.xz
diff --git a/.java-1.8.0-openjdk.metadata b/.java-1.8.0-openjdk.metadata
new file mode 100644
index 0000000..9832ba2
--- /dev/null
+++ b/.java-1.8.0-openjdk.metadata
@@ -0,0 +1,2 @@
+de58a4f646ca65cafbd2166d7d08eb330adaf4e6 SOURCES/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u282-b08-4curve.tar.xz
+7ae2cba67467825b2c2a5fec7aea041865023002 SOURCES/tapsets-icedtea-3.15.0.tar.xz
diff --git a/SOURCES/CheckVendor.java b/SOURCES/CheckVendor.java
new file mode 100644
index 0000000..e2101cf
--- /dev/null
+++ b/SOURCES/CheckVendor.java
@@ -0,0 +1,57 @@
+/* CheckVendor -- Check the vendor properties match specified values.
+   Copyright (C) 2020 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/**
+ * @test
+ */
+public class CheckVendor {
+
+    public static void main(String[] args) {
+	if (args.length < 3) {
+	    System.err.println("CheckVendor <VENDOR> <VENDOR-URL> <VENDOR-BUG-URL>");
+	    System.exit(1);
+	}
+
+	String vendor = System.getProperty("java.vendor");
+	String expectedVendor = args[0];
+	String vendorURL = System.getProperty("java.vendor.url");
+	String expectedVendorURL = args[1];
+	String vendorBugURL = System.getProperty("java.vendor.url.bug");
+	String expectedVendorBugURL = args[2];
+
+	if (!expectedVendor.equals(vendor)) {
+	    System.err.printf("Invalid vendor %s, expected %s\n",
+			      vendor, expectedVendor);
+	    System.exit(2);
+	}
+
+	if (!expectedVendorURL.equals(vendorURL)) {
+	    System.err.printf("Invalid vendor URL %s, expected %s\n",
+			      vendorURL, expectedVendorURL);
+	    System.exit(3);
+	}
+
+	if (!expectedVendorBugURL.equals(vendorBugURL)) {
+	    System.err.printf("Invalid vendor bug URL%s, expected %s\n",
+			      vendorBugURL, expectedVendorBugURL);
+	    System.exit(4);
+	}
+
+	System.err.printf("Vendor information verified as %s, %s, %s\n",
+			  vendor, vendorURL, vendorBugURL);
+    }
+}
diff --git a/SOURCES/NEWS b/SOURCES/NEWS
new file mode 100644
index 0000000..ee1e724
--- /dev/null
+++ b/SOURCES/NEWS
@@ -0,0 +1,863 @@
+Key:
+
+JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X
+CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
+
+New in release OpenJDK 8u282 (2021-01-19):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/openjdk8u282
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u282.txt
+
+* Security fixes
+  - JDK-8247619: Improve Direct Buffering of Characters
+* Other changes
+  - JDK-6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under Linux
+  - JDK-8008657: JSpinner setComponentOrientation doesn't affect on text orientation
+  - JDK-8022535: [TEST BUG] javax/swing/text/html/parser/Test8017492.java fails
+  - JDK-8025936: Windows .pdb and .map files does not have proper dependencies setup
+  - JDK-8030350: Enable additional compiler warnings for GCC
+  - JDK-8031423: Test java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails by Timeout on Windows
+  - JDK-8036122: Fix warning 'format not a string literal'
+  - JDK-8039279: Move awt tests to openjdk repository
+  - JDK-8041592: [TEST_BUG] Move 42 AWT hw/lw mixing tests to jdk
+  - JDK-8043126: move awt automated functional tests from AWT_Events/Lw and AWT_Events/AWT to OpenJDK repository
+  - JDK-8043131: Move ShapedAndTranslucentWindows and GC functional AWT tests to regression tree
+  - JDK-8043899: compiler/5091921/Test7005594.java fails if specified -Xmx is less than 1600m
+  - JDK-8044157: [TEST_BUG] Improve recently submitted AWT_Mixing tests
+  - JDK-8044172: [TEST_BUG] Move regtests for 4523758 and AltPlusNumberKeyCombinationsTest to jdk
+  - JDK-8044429: move awt automated tests for AWT_Modality to OpenJDK repository
+  - JDK-8044765: Move functional tests AWT_SystemTray/Automated to openjdk repository
+  - JDK-8046221: [TEST_BUG] Cleanup datatransfer tests
+  - JDK-8047180: Move functional tests AWT_Headless/Automated to OpenJDK repository
+  - JDK-8047367: move awt automated tests from AWT_Modality to OpenJDK repository - part 2
+  - JDK-8048246: Move AWT_DnD/Clipboard/Automated functional tests to OpenJDK
+  - JDK-8049617: move awt automated tests from AWT_Modality to OpenJDK repository - part 3
+  - JDK-8049694: Migrate functional AWT_DesktopProperties/Automated tests to OpenJDK
+  - JDK-8050885: move awt automated tests from AWT_Modality to OpenJDK repository - part 4
+  - JDK-8051440: move tests about maximizing undecorated to OpenJDK
+  - JDK-8051853: new URI("x/").resolve("..").getSchemeSpecificPart() returns null!
+  - JDK-8052012: move awt automated tests from AWT_Modality to OpenJDK repository - part 5
+  - JDK-8052408: Move AWT_BAT functional tests to OpenJDK (3 of 3)
+  - JDK-8053657: [TEST_BUG] move some 5 tests related to undecorated Frame/JFrame to JDK
+  - JDK-8054143: move awt automated tests from AWT_Modality to OpenJDK repository - part 6
+  - JDK-8054358: move awt automated tests from AWT_Modality to OpenJDK repository - part 7
+  - JDK-8054359: move awt automated tests from AWT_Modality to OpenJDK repository - part 8
+  - JDK-8055360: Move the rest part of AWT ShapedAndTranslucent tests to OpenJDK
+  - JDK-8055664: move 14 tests about setLocationRelativeTo to jdk
+  - JDK-8055836: move awt tests from AWT_Modality to OpenJDK repository - part 9
+  - JDK-8057694: move awt tests from AWT_Modality to OpenJDK repository - part 10
+  - JDK-8058805: [TEST_BUG]Test java/awt/TrayIcon/SecurityCheck/NoPermissionTest/NoPermissionTest.java fails
+  - JDK-8062808: Turn on the -Wreturn-type warning
+  - JDK-8063102: Change open awt regression tests to avoid sun.awt.SunToolkit.realSync, part 1
+  - JDK-8063104: Change open awt regression tests to avoid sun.awt.SunToolkit.realSync, part 2
+  - JDK-8063106: Change open swing regression tests to avoid sun.awt.SunToolkit.realSync, part 1
+  - JDK-8063107: Change open swing regression tests to avoid sun.awt.SunToolkit.realSync, part 2
+  - JDK-8064573: [TEST_BUG] javax/swing/text/AbstractDocument/6968363/Test6968363.java is asocial pressing VK_LEFT and not releasing
+  - JDK-8064575: [TEST_BUG] javax/swing/JEditorPane/6917744/bug6917744.java 100 times press keys and never releases
+  - JDK-8064809: [TEST_BUG] javax/swing/JComboBox/4199622/bug4199622.java contains a lot of keyPress and not a single keyRelease
+  - JDK-8067441: Some tests fails with error: cannot find symbol getSystemMnemonicKeyCodes()
+  - JDK-8068228: Test closed/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest fails with GTKLookAndFeel
+  - JDK-8068275: Some tests failed after JDK-8063104
+  - JDK-8069211: (zipfs) ZipFileSystem creates corrupted zip if entry output stream gets closed more than once
+  - JDK-8074807: Fix some tests unnecessary using internal API
+  - JDK-8076315: move 4 manual functional swing tests to regression suite
+  - JDK-8130772: Util.hitMnemonics does not work: getSystemMnemonicKeyCodes() returns ALT_MASK rather than VK_ALT
+  - JDK-8132664: closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java locks on Windows
+  - JDK-8134632: Mark javax/sound/midi/Devices/InitializationHang.java as headful
+  - JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by JVM as an equivalent
+  - JDK-8148916: Mark bug6400879.java as intermittently failing
+  - JDK-8148983: Fix extra comma in changes for JDK-8148916
+  - JDK-8152545: Use preprocessor instead of compiling a program to generate native nio constants
+  - JDK-8156803: Turn StressLCM/StressGCM flags to diagnostic
+  - JDK-8160438: javax/swing/plaf/nimbus/8057791/bug8057791.java fails
+  - JDK-8160761: [TESTBUG] Several compiler tests fail with product bits
+  - JDK-8163161: [PIT][TEST_BUG] increase timeout in javax/swing/plaf/nimbus/8057791/bug8057791.java
+  - JDK-8165808: Add release barriers when allocating objects with concurrent collection
+  - JDK-8166015: [PIT][TEST_BUG] stray character in java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java
+  - JDK-8166583: Add oopDesc::klass_or_null_acquire()
+  - JDK-8166663: Simplify oops_on_card_seq_iterate_careful
+  - JDK-8166862: CMS needs klass_or_null_acquire
+  - JDK-8168292: [TESTBUG] [macosx] Test java/awt/TrayIcon/DragEventSource/DragEventSource.java fails on OS X
+  - JDK-8168682: jdk/test/java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java fails with -Xcomp
+  - JDK-8179083: Uninitialized notifier in Java Monitor Wait tracing event
+  - JDK-8185003: JMX: Add a version of ThreadMXBean.dumpAllThreads with a maxDepth argument
+  - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8
+  - JDK-8202076: test/jdk/java/io/File/WinSpecialFiles.java on windows with VS2017
+  - JDK-8205507: jdk/javax/xml/crypto/dsig/GenerationTests.java timed out
+  - JDK-8207766: [testbug] Adapt tests for Aix.
+  - JDK-8212070: Introduce diagnostic flag to abort VM on failed JIT compilation
+  - JDK-8213448: [TESTBUG] enhance jfr/jvm/TestDumpOnCrash
+  - JDK-8215727: Restore JFR thread sampler loop to old / previous behavior
+  - JDK-8217362: Emergency dump does not work when disk=false is set
+  - JDK-8217766: Container Support doesn't work for some Join Controllers combinations
+  - JDK-8219013: Update Apache Santuario (XML Signature) to version 2.1.3
+  - JDK-8219562: Line of code in osContainer_linux.cpp L102 appears unreachable
+  - JDK-8220579: [Containers] SubSystem.java out of sync with osContainer_linux.cpp
+  - JDK-8220657: JFR.dump does not work when filename is set
+  - JDK-8221340: [TESTBUG] TestCgroupMetrics.java fails after fix for JDK-8219562
+  - JDK-8221342: [TESTBUG] Generate Dockerfile for docker testing
+  - JDK-8221710: [TESTBUG] more configurable parameters for docker testing
+  - JDK-8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable
+  - JDK-8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access issues and OOM
+  - JDK-8225072: Add LuxTrust certificate that is expiring in March 2021 to list of allowed but expired certs
+  - JDK-8227006: [linux] Runtime.availableProcessors execution time increased by factor of 100
+  - JDK-8229868: Update Apache Santuario TPRM version
+  - JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread
+  - JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b getThreadAllocatedBytes
+  - JDK-8232114: JVM crashed at imjpapi.dll in native code
+  - JDK-8233548: Update CUP to v0.11b
+  - JDK-8234270: [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area
+  - JDK-8234339: replace JLI_StrTok in java_md_solinux.c
+  - JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
+  - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test
+  - JDK-8242335: Additional Tests for RSASSA-PSS
+  - JDK-8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker
+  - JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in
+  - JDK-8245400: Upgrade to LittleCMS 2.11
+  - JDK-8246648: issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after 8242480
+  - JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache contention
+  - JDK-8249176: Update GlobalSignR6CA test certificates
+  - JDK-8249846: Change of behavior after JDK-8237117: Better ForkJoinPool behavior
+  - JDK-8250636: iso8601_time returns incorrect offset part on MacOS
+  - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY
+  - JDK-8250928: JFR: Improve hash algorithm for stack traces
+  - JDK-8251365: Build failure on AIX after 8250636
+  - JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java
+  - JDK-8251840: Java_sun_awt_X11_XToolkit_getDefaultScreenData should not be in make/mapfiles/libawt_xawt/mapfile-vers
+  - JDK-8252384: [TESTBUG] Some tests refer to COMPAT provider rather than JRE
+  - JDK-8252395: [8u] --with-native-debug-symbols=external doesn't include debuginfo files for binaries
+  - JDK-8252497: Incorrect numeric currency code for ROL
+  - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent
+  - JDK-8252904: VM crashes when JFR is used and JFR event class is transformed
+  - JDK-8252975: [8u] JDK-8252395 breaks the build for --with-native-debug-symbols=internal
+  - JDK-8253036: Support building the Zero assembler port on AArch64
+  - JDK-8253284: Zero OrderAccess barrier mappings are incorrect
+  - JDK-8253550: [8u] JDK-8252395 breaks the build for make STRIP_POLICY=no_strip
+  - JDK-8253752: test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java fails randomly
+  - JDK-8253837: JFR 8u fix symbol and cstring hashtable equals implementaion
+  - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate
+  - JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp
+  - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp
+  - JDK-8254683: [TEST_BUG] jdk/test/sun/tools/jconsole/WorkerDeadlockTest.java fails
+  - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c
+  - JDK-8255003: Build failures on Solaris
+  - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d
+  - JDK-8255269: Unsigned overflow in g1Policy.cpp
+  - JDK-8255603: Memory/Performance regression after JDK-8210985
+  - JDK-8255717: Fix JFR crash in WriteObjectSampleStacktrace due to object not initialized
+  - JDK-8256618: Zero: Linux x86_32 build still fails
+  - JDK-8256671: Incorrect assignment operator used in guarantee() in genCollectedHeap
+  - JDK-8256752: 8252395 incorrect copy rule for macos .dSYM folder
+  - JDK-8257397: [TESTBUG] test/lib/containers/docker/Common.java refers to -Xlog:os+container=trace
+  - JDK-8258630: Add expiry exception for QuoVadis root certificate
+* AArch64 port
+  - Fix AArch64 build failure after JDK-8062808 backport
+* Shenandoah
+  - Fix racy update of code roots
+
+Notes on individual issues:
+===========================
+
+security-libs/javax.xml.crypto:
+
+JDK-8230839: Updated XML Signature Implementation to Apache Santuario 2.1.3
+===========================================================================
+The XML Signature implementation in the `java.xml.crypto` module has
+been updated to version 2.1.3 of Apache Santuario. New features
+include:
+
+* Added support for embedding elliptic curve public keys in the
+  KeyValue element
+
+New in release OpenJDK 8u275 (2020-11-05):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/openjdk8u275
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u275.txt
+
+* Regression fixes
+  - JDK-8214440: ldap over a TLS connection negotiate failed with "javax.net.ssl.SSLPeerUnverifiedException: hostname of the server '' does not match the hostname in the server's certificate"
+  - JDK-8223940: Private key not supported by chosen signature algorithm
+  - JDK-8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding
+  - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool)
+
+New in release OpenJDK 8u272 (2020-10-20):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/openjdk8u272
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u272.txt
+
+* New features
+  - JDK-8245468: Add TLSv1.3 implementation classes from 11.0.7
+* Security fixes
+  - JDK-8233624: Enhance JNI linkage
+  - JDK-8236196: Improve string pooling
+  - JDK-8236862, CVE-2020-14779: Enhance support of Proxy class
+  - JDK-8237990, CVE-2020-14781: Enhanced LDAP contexts
+  - JDK-8237995, CVE-2020-14782: Enhance certificate processing
+  - JDK-8240124: Better VM Interning
+  - JDK-8241114, CVE-2020-14792: Better range handling
+  - JDK-8242680, CVE-2020-14796: Improved URI Support
+  - JDK-8242685, CVE-2020-14797: Better Path Validation
+  - JDK-8242695, CVE-2020-14798: Enhanced buffer support
+  - JDK-8243302: Advanced class supports
+  - JDK-8244136, CVE-2020-14803: Improved Buffer supports
+  - JDK-8244479: Further constrain certificates
+  - JDK-8244955: Additional Fix for JDK-8240124
+  - JDK-8245407: Enhance zoning of times
+  - JDK-8245412: Better class definitions
+  - JDK-8245417: Improve certificate chain handling
+  - JDK-8248574: Improve jpeg processing
+  - JDK-8249927: Specify limits of jdk.serialProxyInterfaceLimit
+  - JDK-8253019: Enhanced JPEG decoding
+* Other changes
+  - JDK-6574989: TEST_BUG: javax/sound/sampled/Clip/bug5070081.java fails sometimes
+  - JDK-8006205: [TESTBUG] NEED_TEST: please JTREGIFY test/compiler/7177917/Test7177917.java
+  - JDK-8023697: failed class resolution reports different class name in detail message for the first and subsequent times
+  - JDK-8025886: replace [[ and == bash extensions in regtest
+  - JDK-8026236: Add PrimeTest for BigInteger
+  - JDK-8031625: javadoc problems referencing inner class constructors
+  - JDK-8035493: JVMTI PopFrame capability must instruct compilers not to prune locals
+  - JDK-8036088: Replace strtok() with its safe equivalent strtok_s() in DefaultProxySelector.c
+  - JDK-8039082: [TEST_BUG] Test java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails
+  - JDK-8046274: Removing dependency on jakarta-regexp
+  - JDK-8048933: -XX:+TraceExceptions output should include the message
+  - JDK-8057003: Large reference arrays cause extremely long synchronization times
+  - JDK-8060721: Test runtime/SharedArchiveFile/LimitSharedSizes.java fails in jdk 9 fcs new platforms/compiler
+  - JDK-8061616: HotspotDiagnosticMXBean.getVMOption() throws IllegalArgumentException for flags of type double
+  - JDK-8062947: Fix exception message to correctly represent LDAP connection failure
+  - JDK-8064319: Need to enable -XX:+TraceExceptions in release builds
+  - JDK-8075774: Small readability and performance improvements for zipfs
+  - JDK-8076151: [TESTBUG] Test java/awt/FontClass/CreateFont/fileaccess/FontFile.java fails
+  - JDK-8078334: Mark regression tests using randomness
+  - JDK-8078880: Mark a few more intermittently failuring security-libs
+  - JDK-8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
+  - JDK-8132206: move ScanTest.java into OpenJDK
+  - JDK-8132376: Add @requires os.family to the client tests with access to internal OS-specific API
+  - JDK-8132745: minor cleanup of java/util/Scanner/ScanTest.java
+  - JDK-8137087: [TEST_BUG] Cygwin failure of java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh
+  - JDK-8144539: Update PKCS11 tests to run with security manager
+  - JDK-8145808: java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java hangs on Win. 8
+  - JDK-8148754: C2 loop unrolling fails due to unexpected graph shape
+  - JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by JVM as an equivalent
+  - JDK-8151678: com/sun/jndi/ldap/LdapTimeoutTest.java failed due to timeout on DeadServerNoTimeoutTest is incorrect
+  - JDK-8151788: NullPointerException from ntlm.Client.type3
+  - JDK-8151834: Test SmallPrimeExponentP.java times out intermittently
+  - JDK-8152077: (cal) Calendar.roll does not always roll the hours during daylight savings
+  - JDK-8153430: jdk regression test MletParserLocaleTest, ParserInfiniteLoopTest reduce default timeout
+  - JDK-8153583: Make OutputAnalyzer.reportDiagnosticSummary public
+  - JDK-8154313: Generated javadoc scattered all over the place
+  - JDK-8156169: Some sound tests rarely hangs because of incorrect synchronization
+  - JDK-8160768: Add capability to custom resolve host/domain names within the default JNDI LDAP provider
+  - JDK-8161973: PKIXRevocationChecker.getSoftFailExceptions() not working
+  - JDK-8163251: Hard coded loop limit prevents reading of smart card data greater than 8k
+  - JDK-8165936: Potential Heap buffer overflow when seaching timezone info files
+  - JDK-8165996: PKCS11 using NSS throws an error regarding secmod.db when NSS uses sqlite
+  - JDK-8166148: Fix for JDK-8165936 broke solaris builds
+  - JDK-8167300: Scheduling failures during gcm should be fatal
+  - JDK-8167615: Opensource unit/regression tests for JavaSound
+  - JDK-8168517: java/lang/ProcessBuilder/Basic.java failed
+  - JDK-8169925: PKCS #11 Cryptographic Token Interface license
+  - JDK-8172012: [TEST_BUG] delays needed in javax/swing/JTree/4633594/bug4633594.java
+  - JDK-8173300: [TESTBUG]compiler/tiered/NonTieredLevelsTest.java fails with compiler.whitebox.SimpleTestCaseHelper(int) must be compiled
+  - JDK-8177334: Update xmldsig implementation to Apache Santuario 2.1.1
+  - JDK-8177628: Opensource unit/regression tests for ImageIO
+  - JDK-8183341: Better cleanup for javax/imageio/AllowSearch.java
+  - JDK-8183349: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java and WriteAfterAbort.java
+  - JDK-8183351: Better cleanup for jdk/test/javax/imageio/spi/AppletContextTest/BadPluginConfigurationTest.sh
+  - JDK-8184762: ZapStackSegments should use optimized memset
+  - JDK-8191678: [TESTBUG] Add keyword headful in java/awt FocusTransitionTest test.
+  - JDK-8192953: sun/management/jmxremote/bootstrap/*.sh tests fail with error : revokeall.exe: Permission denied
+  - JDK-8193137: Nashorn crashes when given an empty script file
+  - JDK-8193234: When using -Xcheck:jni an internally allocated buffer can leak
+  - JDK-8194298: Add support for per Socket configuration of TCP keepalive
+  - JDK-8198004: javax/swing/JFileChooser/6868611/bug6868611.java throws error
+  - JDK-8200313: java/awt/Gtk/GtkVersionTest/GtkVersionTest.java fails
+  - JDK-8201633: Problems with AES-GCM native acceleration
+  - JDK-8203357: Container Metrics
+  - JDK-8209113: Use WeakReference for lastFontStrike for created Fonts
+  - JDK-8210147: adjust some WSAGetLastError usages in windows network coding
+  - JDK-8211049: Second parameter of "initialize" method is not used
+  - JDK-8211163: UNIX version of Java_java_io_Console_echo does not return a clean boolean
+  - JDK-8211714: Need to update vm_version.cpp to recognise VS2017 minor versions
+  - JDK-8214862: assert(proj != __null) at compile.cpp:3251
+  - JDK-8216283: Allow shorter method sampling interval than 10 ms
+  - JDK-8217606: LdapContext#reconnect always opens a new connection
+  - JDK-8217647: JFR: recordings on 32-bit systems unreadable
+  - JDK-8217878: ENVELOPING XML signature no longer works in JDK 11
+  - JDK-8218629: XML Digital Signature throws NAMESPACE_ERR exception on OpenJDK 11, works 8/9/10
+  - JDK-8219566: JFR did not collect call stacks when MaxJavaStackTraceDepth is set to zero
+  - JDK-8219919: RuntimeStub name lost with PrintFrameConverterAssembly
+  - JDK-8220165: Encryption using GCM results in RuntimeException- input length out of bound
+  - JDK-8220313: [TESTBUG] Update base image for Docker testing to OL 7.6
+  - JDK-8220555: JFR tool shows potentially misleading message when it cannot access a file
+  - JDK-8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs
+  - JDK-8221569: JFR tool produces incorrect output when both --categories and --events are specified
+  - JDK-8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp
+  - JDK-8224217: RecordingInfo should use textual representation of path
+  - JDK-8225695: 32-bit build failures after JDK-8080462 (Update SunPKCS11 provider with PKCS11 v2.40 support)
+  - JDK-8226575: OperatingSystemMXBean should be made container aware
+  - JDK-8226697: Several tests which need the @key headful keyword are missing it.
+  - JDK-8226809: Circular reference in printed stack trace is not correctly indented & ambiguous
+  - JDK-8228835: Memory leak in PKCS11 provider when using AES GCM
+  - JDK-8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow
+  - JDK-8230303: JDB hangs when running monitor command
+  - JDK-8230711: ConnectionGraph::unique_java_object(Node* N) return NULL if n is not in the CG
+  - JDK-8231213: Migrate SimpleDateFormatConstTest to JDK Repo
+  - JDK-8231779: crash HeapWord*ParallelScavengeHeap::failed_mem_allocate
+  - JDK-8233097: Fontmetrics for large Fonts has zero width
+  - JDK-8233621: Mismatch in jsse.enableMFLNExtension property name
+  - JDK-8234617: C1: Incorrect result of field load due to missing narrowing conversion
+  - JDK-8235243: handle VS2017 15.9 and VS2019 in abstract_vm_version
+  - JDK-8235325: build failure on Linux after 8235243
+  - JDK-8235687: Contents/MacOS/libjli.dylib cannot be a symlink
+  - JDK-8236645: JDK 8u231 introduces a regression with incompatible handling of XML messages
+  - JDK-8237951: CTW: C2 compilation fails with "malformed control flow"
+  - JDK-8238225: Issues reported after replacing symlink at Contents/MacOS/libjli.dylib with binary
+  - JDK-8238380: java.base/unix/native/libjava/childproc.c "multiple definition" link errors with GCC10
+  - JDK-8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple definition" link errors with GCC10
+  - JDK-8238388: libj2gss/NativeFunc.o "multiple definition" link errors with GCC10
+  - JDK-8238898: Missing hash characters for header on license file
+  - JDK-8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD
+  - JDK-8239819: XToolkit: Misread of screen information memory
+  - JDK-8240295: hs_err elapsed time in seconds is not accurate enough
+  - JDK-8240676: Meet not symmetric failure when running lucene on jdk8
+  - JDK-8241888: Mirror jdk.security.allowNonCaAnchor system property with a security one
+  - JDK-8242498: Invalid "sun.awt.TimedWindowEvent" object leads to JVM crash
+  - JDK-8242556: Cannot load RSASSA-PSS public key with non-null params from byte array
+  - JDK-8243138: Enhance BaseLdapServer to support starttls extended request
+  - JDK-8243320: Add SSL root certificates to Oracle Root CA program
+  - JDK-8243321: Add Entrust root CA - G4 to Oracle Root CA program
+  - JDK-8243489: Thread CPU Load event may contain wrong data for CPU time under certain conditions
+  - JDK-8244151: Update MUSCLE PC/SC-Lite headers to the latest release 1.8.26
+  - JDK-8244818: Java2D Queue Flusher crash while moving application window to external monitor
+  - JDK-8245467: Remove 8u TLSv1.2 implementation files
+  - JDK-8245469: Remove DTLS protocol implementation
+  - JDK-8245470: Fix JDK8 compatibility issues
+  - JDK-8245471: Revert JDK-8148188
+  - JDK-8245472: Backport JDK-8038893 to JDK8
+  - JDK-8245473: OCSP stapling support
+  - JDK-8245474: Add TLS_KRB5 cipher suites support according to RFC-2712
+  - JDK-8245476: Disable TLSv1.3 protocol in the ClientHello message by default
+  - JDK-8245477: Adjust TLS tests location
+  - JDK-8245653: Remove 8u TLS tests
+  - JDK-8245681: Add TLSv1.3 regression test from 11.0.7
+  - JDK-8246193: Possible NPE in ENC-PA-REP search in AS-REQ
+  - JDK-8246310: Clean commented-out code about ModuleEntry andPackageEntry in JFR
+  - JDK-8246384: Enable JFR by default on supported architectures for October 2020 release
+  - JDK-8248643: Remove extra leading space in JDK-8240295 8u backport
+  - JDK-8248851: CMS: Missing memory fences between free chunk check and klass read
+  - JDK-8249158: THREAD_START and THREAD_END event posted in primordial phase
+  - JDK-8249610: Make sun.security.krb5.Config.getBooleanObject(String... keys) method public
+  - JDK-8249677: Regression in 8u after JDK-8237117: Better ForkJoinPool behavior
+  - JDK-8250546: Expect changed behaviour reported in JDK-8249846
+  - JDK-8250627: Use -XX:+/-UseContainerSupport for enabling/disabling Java container metrics
+  - JDK-8250755: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java
+  - JDK-8250875: Incorrect parameter type for update_number in JDK_Version::jdk_update
+  - JDK-8251117: Cannot check P11Key size in P11Cipher and P11AEADCipher
+  - JDK-8251120: [8u] HotSpot build assumes ENABLE_JFR is set to either true or false
+  - JDK-8251341: Minimal Java specification change
+  - JDK-8251478: Backport TLSv1.3 regression tests to JDK8u
+  - JDK-8251546: 8u backport of JDK-8194298 breaks AIX and Solaris builds
+  - JDK-8252084: Minimal VM fails to bootcycle: undefined symbol: AgeTableTracer::is_tenuring_distribution_event_enabled
+  - JDK-8252573: 8u: Windows build failed after 8222079 backport
+  - JDK-8252886: [TESTBUG] sun/security/ec/TestEC.java : Compilation failed
+  - JDK-8254673: Call to JvmtiExport::post_vm_start() was removed by the fix for JDK-8249158
+  - JDK-8254937: Revert JDK-8148854 for 8u272
+
+Notes on individual issues:
+===========================
+
+core-svc/java.lang.management:
+
+JDK-8236876: OperatingSystemMXBean Methods Inside a Container Return Container Specific Data
+============================================================================================
+When executing in a container, or other virtualized operating
+environment, the following `OperatingSystemMXBean` methods in this
+release return container specific information, if
+available. Otherwise, they return host specific data:
+
+* getFreePhysicalMemorySize()
+* getTotalPhysicalMemorySize()
+* getFreeSwapSpaceSize()
+* getTotalSwapSpaceSize()
+* getSystemCpuLoad()
+
+security-libs/java.security:
+
+JDK-8250756: Added Entrust Root Certification Authority - G4 certificate
+========================================================================
+The Entrust root certificate has been added to the cacerts truststore:
+
+Alias Name: entrustrootcag4
+Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust,  Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
+
+JDK-8250860: Added 3 SSL Corporation Root CA Certificates
+=========================================================
+The following root certificates have been added to the cacerts truststore for the SSL Corporation:
+
+Alias Name: sslrootrsaca
+Distinguished Name: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US
+
+Alias Name: sslrootevrsaca
+Distinguished Name: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US
+
+Alias Name: sslrooteccca
+Distinguished Name: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US
+
+security-libs/javax.crypto:pkcs11:
+
+JDK-8221441: SunPKCS11 Provider Upgraded with Support for PKCS#11 v2.40
+=======================================================================
+The SunPKCS11 provider has been updated with support for PKCS#11
+v2.40. This version adds support for more algorithms such as the
+AES/GCM/NoPadding cipher, DSA signatures using SHA-2 family of message
+digests, and RSASSA-PSS signatures when the corresponding PKCS11
+mechanisms are supported by the underlying PKCS11 library.
+
+security-libs/javax.security:
+
+JDK-8242059: Support for canonicalize in krb5.conf
+==================================================
+The 'canonicalize' flag in the [krb5.conf file][0] is now supported by
+the JDK Kerberos implementation. When set to *true*, RFC 6806 [1] name
+canonicalization is requested by clients in TGT requests to KDC
+services (AS protocol). Otherwise, and by default, it is not
+requested.
+
+The new default behavior is different from previous releases where
+name canonicalization was always requested by clients in TGT requests
+to KDC services (provided that support for RFC 6806[1] was not
+explicitly disabled with the *sun.security.krb5.disableReferrals*
+system or security properties).
+
+[0]: https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html
+[1]: https://tools.ietf.org/html/rfc6806
+
+security-libs/javax.xml.crypto:
+
+JDK-8202891: Updated xmldsig Implementation to Apache Santuario 2.1.1
+=====================================================================
+The XMLDSig provider implementation in the `java.xml.crypto` module has been updated to version 2.1.1 of Apache Santuario.
+
+New features include:
+
+1. Support for the SHA-224 and SHA-3 DigestMethod algorithms specified
+in RFC 6931.
+2. Support for the HMAC-SHA224, RSA-SHA224, ECDSA-SHA224, and
+RSASSA-PSS family of SignatureMethod algorithms specified in RFC 6931.
+
+JDK-8238185: New OpenJDK-specific JDK 8 Updates System Property to fallback to legacy Base64 Encoding format
+============================================================================================================
+The upgrade to the Apache Santuario libraries (see above) introduced
+an issue where XML signature using Base64 encoding resulted in
+appending `&#xd` or `&#13` to the encoded output. This behavioural
+change was made in the Apache Santuario codebase to comply with RFC
+2045. The Santuario team has adopted a position of keeping their
+libraries compliant with RFC 2045.
+
+Earlier versions of OpenJDK 8 using the legacy encoder returns encoded
+data in a format without `&#xd` or `&#13`.
+
+Therefore a new system property, specific to the 8 update stream,
+`com.sun.org.apache.xml.internal.security.lineFeedOnly` is made
+available to fall back to the legacy Base64 encoded format.
+
+Users can set this flag in one of two ways:
+
+1. -Dcom.sun.org.apache.xml.internal.security.lineFeedOnly=true
+
+2. System.setProperty("com.sun.org.apache.xml.internal.security.lineFeedOnly", "true")
+
+This new system property is disabled by default. It has no effect on
+default behaviour nor when
+`com.sun.org.apache.xml.internal.security.ignoreLineBreaks` property
+is set.
+
+Later JDK family versions will only support the recommended property:
+
+`com.sun.org.apache.xml.internal.security.ignoreLineBreaks`
+
+JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b
+====================================================================
+Following JDK's update to tzdata2020b, the long-obsolete files
+pacificnew and systemv have been removed. As a result, the
+"US/Pacific-New" zone name declared in the pacificnew data file is no
+longer available for use.
+
+Information regarding the update can be viewed at
+https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html
+
+New in release OpenJDK 8u265 (2020-07-27):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/openjdk8u265
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u265.txt
+
+* Bug fixes
+  - JDK-8249677: Regression in 8u after JDK-8237117: Better ForkJoinPool behavior
+  - JDK-8250546: Expect changed behaviour reported in JDK-8249846
+
+New in release OpenJDK 8u262 (2020-07-14):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/oj8u262
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u262.txt
+
+* New features
+  - JDK-8223147: JFR Backport
+* Security fixes
+  - JDK-8028431, CVE-2020-14579: NullPointerException in DerValue.equals(DerValue)
+  - JDK-8028591, CVE-2020-14578: NegativeArraySizeException in sun.security.util.DerInputStream.getUnalignedBitString()
+  - JDK-8230613: Better ASCII conversions
+  - JDK-8231800: Better listing of arrays
+  - JDK-8232014: Expand DTD support
+  - JDK-8233255: Better Swing Buttons
+  - JDK-8234032: Improve basic calendar services
+  - JDK-8234042: Better factory production of certificates
+  - JDK-8234418: Better parsing with CertificateFactory
+  - JDK-8234836: Improve serialization handling
+  - JDK-8236191: Enhance OID processing
+  - JDK-8237117, CVE-2020-14556: Better ForkJoinPool behavior
+  - JDK-8237592, CVE-2020-14577: Enhance certificate verification
+  - JDK-8238002, CVE-2020-14581: Better matrix operations
+  - JDK-8238804: Enhance key handling process
+  - JDK-8238842: AIOOBE in GIFImageReader.initializeStringTable
+  - JDK-8238843: Enhanced font handing
+  - JDK-8238920, CVE-2020-14583: Better Buffer support
+  - JDK-8238925: Enhance WAV file playback
+  - JDK-8240119, CVE-2020-14593: Less Affine Transformations
+  - JDK-8240482: Improved WAV file playback
+  - JDK-8241379: Update JCEKS support
+  - JDK-8241522: Manifest improved jar headers redux
+  - JDK-8242136, CVE-2020-14621: Better XML namespace handling
+* Other changes
+  - JDK-4949105: Access Bridge lacks html tags parsing
+  - JDK-7147060: com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java doesn't run in agentvm mode
+  - JDK-8003209: JFR events for network utilization
+  - JDK-8030680: 292 cleanup from default method code assessment
+  - JDK-8035633: TEST_BUG: java/net/NetworkInterface/Equals.java and some tests failed on windows intermittently
+  - JDK-8037866: Replace the Fun class in tests with lambdas
+  - JDK-8041626: Shutdown tracing event
+  - JDK-8041915: Move 8 awt tests to OpenJDK regression tests tree
+  - JDK-8067796: (process) Process.waitFor(timeout, unit) doesn't throw NPE if timeout is less than, or equal to zero when unit == null
+  - JDK-8076475: Misuses of strncpy/strncat
+  - JDK-8130737: AffineTransformOp can't handle child raster with non-zero x-offset
+  - JDK-8141056: Erroneous assignment in HeapRegionSet.cpp
+  - JDK-8146612: C2: Precedence edges specification violated
+  - JDK-8148886: SEGV in sun.java2d.marlin.Renderer._endRendering
+  - JDK-8149338: JVM Crash caused by Marlin renderer not handling NaN coordinates
+  - JDK-8150986: serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java failing because expects HPROF JAVA PROFILE 1.0.1 file format
+  - JDK-8151582: (ch) test java/nio/channels/AsyncCloseAndInterrupt.java failing due to "Connection succeeded"
+  - JDK-8165675: Trace event for thread park has incorrect unit for timeout
+  - JDK-8171934: ObjectSizeCalculator.getEffectiveMemoryLayoutSpecification() does not recognize OpenJDK's HotSpot VM
+  - JDK-8172559: [PIT][TEST_BUG] Move @test to be 1st annotation in java/awt/image/Raster/TestChildRasterOp.java
+  - JDK-8176182: 4 security tests are not run
+  - JDK-8178374: Problematic ByteBuffer handling in CipherSpi.bufferCrypt method
+  - JDK-8178910: Problemlist sample tests
+  - JDK-8181841: A TSA server returns timestamp with precision higher than milliseconds
+  - JDK-8183925: Decouple crash protection from watcher thread
+  - JDK-8191393: Random crashes during cfree+0x1c
+  - JDK-8195817: JFR.stop should require name of recording
+  - JDK-8195818: JFR.start should increase autogenerated name by one
+  - JDK-8195819: Remove recording=x from jcmd JFR.check output
+  - JDK-8196969: JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE
+  - JDK-8199712: Flight Recorder
+  - JDK-8202578: Revisit location for class unload events
+  - JDK-8202835: jfr/event/os/TestSystemProcess.java fails on missing events
+  - JDK-8203287: Zero fails to build after JDK-8199712 (Flight Recorder)
+  - JDK-8203346: JFR: Inconsistent signature of jfr_add_string_constant
+  - JDK-8203664: JFR start failure after AppCDS archive created with JFR StartFlightRecording
+  - JDK-8203921: JFR thread sampling is missing fixes from JDK-8194552
+  - JDK-8203929: Limit amount of data for JFR.dump
+  - JDK-8205516: JFR tool
+  - JDK-8207392: [PPC64] Implement JFR profiling
+  - JDK-8207829: FlightRecorderMXBeanImpl is leaking the first classloader which calls it
+  - JDK-8209960: -Xlog:jfr* doesn't work with the JFR
+  - JDK-8210024: JFR calls virtual is_Java_thread from ~Thread()
+  - JDK-8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7
+  - JDK-8211239: Build fails without JFR: empty JFR events signatures mismatch
+  - JDK-8212232: Wrong metadata for the configuration of the cutoff for old object sample events
+  - JDK-8213015: Inconsistent settings between JFR.configure and -XX:FlightRecorderOptions
+  - JDK-8213421: Line number information for execution samples always 0
+  - JDK-8213617: JFR should record the PID of the recorded process
+  - JDK-8213734: SAXParser.parse(File, ..) does not close resources when Exception occurs.
+  - JDK-8213914: [TESTBUG] Several JFR VM events are not covered by tests
+  - JDK-8213917: [TESTBUG] Shutdown JFR event is not covered by test
+  - JDK-8213966: The ZGC JFR events should be marked as experimental
+  - JDK-8214542: JFR: Old Object Sample event slow on a deep heap in debug builds
+  - JDK-8214750: Unnecessary <p> tags in jfr classes
+  - JDK-8214896: JFR Tool left files behind
+  - JDK-8214906: [TESTBUG] jfr/event/sampling/TestNative.java fails with UnsatisfiedLinkError
+  - JDK-8214925: JFR tool fails to execute
+  - JDK-8215175: Inconsistencies in JFR event metadata
+  - JDK-8215237: jdk.jfr.Recording javadoc does not compile
+  - JDK-8215284: Reduce noise induced by periodic task getFileSize()
+  - JDK-8215355: Object monitor deadlock with no threads holding the monitor (using jemalloc 5.1)
+  - JDK-8215362: JFR GTest JfrTestNetworkUtilization fails
+  - JDK-8215771: The jfr tool should pretty print reference chains
+  - JDK-8216064: -XX:StartFlightRecording:settings= doesn't work properly
+  - JDK-8216486: Possibility of integer overflow in JfrThreadSampler::run()
+  - JDK-8216528: test/jdk/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java failing with Xcomp
+  - JDK-8216559: [JFR] Native libraries not correctly parsed from /proc/self/maps
+  - JDK-8216578: Remove unused/obsolete method in JFR code
+  - JDK-8216995: Clean up JFR command line processing
+  - JDK-8217744: [TESTBUG] JFR TestShutdownEvent fails on some systems due to process surviving SIGINT
+  - JDK-8217748: [TESTBUG] Exclude TestSig test case from JFR TestShutdownEvent
+  - JDK-8218935: Make jfr strncpy uses GCC 8.x friendly
+  - JDK-8220293: Deadlock in JFR string pool
+  - JDK-8223689: Add JFR Thread Sampling Support
+  - JDK-8223690: Add JFR BiasedLock Event Support
+  - JDK-8223691: Add JFR G1 Region Type Change Event Support
+  - JDK-8223692: Add JFR G1 Heap Summary Event Support
+  - JDK-8224172: assert(jfr_is_event_enabled(id)) failed: invariant
+  - JDK-8224475: JTextPane does not show images in HTML rendering
+  - JDK-8225068: Remove DocuSign root certificate that is expiring in May 2020
+  - JDK-8225069: Remove Comodo root certificate that is expiring in May 2020
+  - JDK-8226253: JAWS reports wrong number of radio buttons when buttons are hidden.
+  - JDK-8226779: [TESTBUG] Test JFR API from Java agent
+  - JDK-8226892: ActionListeners on JRadioButtons don't get notified when selection is changed with arrow keys
+  - JDK-8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent premain corrupts memory
+  - JDK-8227269: Slow class loading when running with JDWP
+  - JDK-8227605: Kitchensink fails "assert((((klass)->trace_id() & (JfrTraceIdEpoch::leakp_in_use_this_epoch_bit())) != 0)) failed: invariant"
+  - JDK-8229366: JFR backport allows unchecked writing to memory
+  - JDK-8229401: Fix JFR code cache test failures
+  - JDK-8229708: JFR backport code does not initialize
+  - JDK-8229873: 8229401 broke jdk8u-jfr-incubator
+  - JDK-8229888: (zipfs) Updating an existing zip file does not preserve original permissions
+  - JDK-8229899: Make java.io.File.isInvalid() less racy
+  - JDK-8230448: [test] JFRSecurityTestSuite.java is failing on Windows
+  - JDK-8230597: Update GIFlib library to the 5.2.1
+  - JDK-8230707: JFR related tests are failing
+  - JDK-8230769: BufImg_SetupICM add ReleasePrimitiveArrayCritical call in early return
+  - JDK-8230782: Robot.createScreenCapture() fails if ?awt.robot.gtk? is set to false
+  - JDK-8230856: Java_java_net_NetworkInterface_getByName0 on unix misses ReleaseStringUTFChars in early return
+  - JDK-8230926: [macosx] Two apostrophes are entered instead of one with "U.S. International - PC" layout
+  - JDK-8230947: TestLookForUntestedEvents.java is failing after JDK-8230707
+  - JDK-8231995: two jtreg tests failed after 8229366 is fixed
+  - JDK-8233197: Invert JvmtiExport::post_vm_initialized() and Jfr:on_vm_start() start-up order for correct option parsing
+  - JDK-8233623: Add classpath exception to copyright in EventHandlerProxyCreator.java file
+  - JDK-8233880: Support compilers with multi-digit major version numbers
+  - JDK-8236002: CSR for JFR backport suggests not leaving out the package-info
+  - JDK-8236008: Some backup files were accidentally left in the hotspot tree
+  - JDK-8236074: Missed package-info
+  - JDK-8236174: Should update javadoc since tags
+  - JDK-8236996: Incorrect Roboto font rendering on Windows with subpixel antialiasing
+  - JDK-8238076: Fix OpenJDK 7 Bootstrap Broken by JFR Backport
+  - JDK-8238452: Keytool generates wrong expiration date if validity is set to 2050/01/01
+  - JDK-8238555: Allow Initialization of SunPKCS11 with NSS when there are external FIPS modules in the NSSDB
+  - JDK-8238589: Necessary code cleanup in JFR for JDK8u
+  - JDK-8238590: Enable JFR by default during compilation in 8u
+  - JDK-8239055: Wrong implementation of VMState.hasListener
+  - JDK-8239476: JDK-8238589 broke windows build by moving OrderedPair
+  - JDK-8239479: minimal1 and zero builds are failing
+  - JDK-8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed
+  - JDK-8239867: correct over use of INCLUDE_JFR macro
+  - JDK-8240375: Disable JFR by default for July 2020 release
+  - JDK-8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges
+  - JDK-8241444: Metaspace::_class_vsm not initialized if compressed class pointers are disabled
+  - JDK-8241638: launcher time metrics always report 1 on Linux when _JAVA_LAUNCHER_DEBUG set
+  - JDK-8241750: x86_32 build failure after JDK-8227269
+  - JDK-8241902: AIX Build broken after integration of JDK-8223147 (JFR Backport)
+  - JDK-8242788: Non-PCH build is broken after JDK-8191393
+  - JDK-8242883: Incomplete backport of JDK-8078268: backport test part
+  - JDK-8243059: Build fails when --with-vendor-name contains a comma
+  - JDK-8243474: [TESTBUG] removed three tests of 0 bytes
+  - JDK-8243539: Copyright info (Year) should be updated for fix of 8241638
+  - JDK-8243541: (tz) Upgrade time-zone data to tzdata2020a
+  - JDK-8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in
+  - JDK-8244461: [JDK 8u] Build fails with glibc 2.32
+  - JDK-8244548: JDK 8u: sun.misc.Version.jdkUpdateVersion() returns wrong result
+  - JDK-8244777: ClassLoaderStats VM Op uses constant hash value
+  - JDK-8244843: JapanEraNameCompatTest fails
+  - JDK-8245167: Top package in method profiling shows null in JMC
+  - JDK-8246223: Windows build fails after JDK-8227269
+  - JDK-8246703: [TESTBUG] Add test for JDK-8233197
+  - JDK-8248399: Build installs jfr binary when JFR is disabled
+  - JDK-8248715: New JavaTimeSupplementary localisation for 'in' installed in wrong package
+
+Notes on individual issues:
+===========================
+
+hotspot/jfr:
+
+JDK-8240687: JDK Flight Recorder Integrated to OpenJDK 8u
+=========================================================
+
+OpenJDK 8u now contains the backport of JEP 328: Flight Recorder
+(https://openjdk.java.net/jeps/328) from later versions of OpenJDK.
+
+JFR is a low-overhead framework to collect and provide data helpful to
+troubleshoot the performance of the OpenJDK runtime and of Java
+applications. It consists of a new API to define custom events under
+the jdk.jfr namespace and a JMX interface to interact with the
+framework. The recording can also be initiated with the application
+startup using the -XX:+FlightRecorder flag or via jcmd. JFR replaces
+the +XX:EnableTracing feature introduced in JEP 167, providing a more
+efficient way to retrieve the same information. For compatibility
+reasons, +XX:EnableTracing is still accepted, however no data will be
+printed.
+
+While JFR is not built by default upstream, it is included in Red Hat
+binaries for supported architectures (x86_64, AArch64 & PowerPC 64)
+
+hotspot/runtime:
+
+JDK-8205622: JFR Start Failure After AppCDS Archive Created with JFR StartFlightRecording
+=========================================================================================
+
+JFR will be disabled with a warning message if it is enabled during
+CDS dumping. The user will see the following warning message:
+
+OpenJDK 64-Bit Server VM warning: JFR will be disabled during CDS dumping
+
+if JFR is enabled during CDS dumping such as in the following command
+line:
+
+$ java -Xshare:dump -XX:StartFlightRecording=dumponexit=true
+
+security-libs/java.security:
+
+JDK-8244167: Removal of Comodo Root CA Certificate
+==================================================
+
+The following expired Comodo root CA certificate was removed from the
+`cacerts` keystore: + alias name "addtrustclass1ca [jdk]"
+
+Distinguished Name: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
+
+JDK-8244166: Removal of DocuSign Root CA Certificate
+====================================================
+
+The following expired DocuSign root CA certificate was removed from
+ the `cacerts` keystore: + alias name "keynectisrootca [jdk]"
+
+Distinguished Name: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
+
+security-libs/javax.crypto:pkcs11:
+
+JDK-8240191: Allow SunPKCS11 initialization with NSS when external FIPS modules are present in the Security Modules Database
+============================================================================================================================
+
+The SunPKCS11 security provider can now be initialized with NSS when
+FIPS-enabled external modules are configured in the Security Modules
+Database (NSSDB). Prior to this change, the SunPKCS11 provider would
+throw a RuntimeException with the message: "FIPS flag set for
+non-internal module" when such a library was configured for NSS in
+non-FIPS mode.
+
+This change allows the JDK to work properly with recent NSS releases
+on GNU/Linux operating systems when the system-wide FIPS policy is
+turned on.
+
+Further information can be found in JDK-8238555.
+
+New in release OpenJDK 8u252 (2020-04-14):
+===========================================
+Live versions of these release notes can be found at:
+  * https://bitly.com/oj8u252
+  * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u252.txt
+
+* Security fixes
+  - JDK-8223898, CVE-2020-2754: Forward references to Nashorn
+  - JDK-8223904, CVE-2020-2755: Improve Nashorn matching
+  - JDK-8224541, CVE-2020-2756: Better mapping of serial ENUMs
+  - JDK-8224549, CVE-2020-2757: Less Blocking Array Queues
+  - JDK-8225603: Enhancement for big integers
+  - JDK-8227542: Manifest improved jar headers
+  - JDK-8231415, CVE-2020-2773: Better signatures in XML
+  - JDK-8233250: Better X11 rendering
+  - JDK-8233410: Better Build Scripting
+  - JDK-8234027: Better JCEKS key support
+  - JDK-8234408, CVE-2020-2781: Improve TLS session handling
+  - JDK-8234825, CVE-2020-2800: Better Headings for HTTP Servers
+  - JDK-8234841, CVE-2020-2803: Enhance buffering of byte buffers
+  - JDK-8235274, CVE-2020-2805: Enhance typing of methods
+  - JDK-8236201, CVE-2020-2830: Better Scanner conversions
+  - JDK-8238960: linux-i586 builds are inconsistent as the newly build jdk is not able to reserve enough space for object heap
+* Other changes
+  - JDK-8005819: Support cross-realm MSSFU
+  - JDK-8022263: use same Clang warnings on BSD as on Linux
+  - JDK-8038631: Create wrapper for awt.Robot with additional functionality
+  - JDK-8047212: runtime/ParallelClassLoading/bootstrap/random/inner-complex assert(ObjectSynchronizer::verify_objmon_isinpool(inf)) failed: monitor is invalid
+  - JDK-8055283: Expand ResourceHashtable with C_HEAP allocation, removal and some unit tests
+  - JDK-8068184: Fix for JDK-8032832 caused a deadlock
+  - JDK-8079693: Add support for ECDSA P-384 and P-521 curves to XML Signature
+  - JDK-8132130: some docs cleanup
+  - JDK-8135318: CMS wrong max_eden_size for check_gc_overhead_limit
+  - JDK-8144445: Maximum size checking in Marlin ArrayCache utility methods is not optimal
+  - JDK-8144446: Automate the Marlin crash test
+  - JDK-8144526: Remove Marlin logging use of deleted internal API
+  - JDK-8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
+  - JDK-8144654: Improve Marlin logging
+  - JDK-8144718: Pisces / Marlin Strokers may generate invalid curves with huge coordinates and round joins
+  - JDK-8166976: TestCipherPBECons has wrong @run line
+  - JDK-8167409: Invalid value passed to critical JNI function
+  - JDK-8181872: C1: possible overflow when strength reducing integer multiply by constant
+  - JDK-8187078: -XX:+VerifyOops finds numerous problems when running JPRT
+  - JDK-8191227: issues with unsafe handle resolution
+  - JDK-8197441: Signature#initSign/initVerify for an invalid private/public key fails with ClassCastException for SunPKCS11 provider
+  - JDK-8204152: SignedObject throws NullPointerException for null keys with an initialized Signature object
+  - JDK-8215756: Memory leaks in the AWT on macOS
+  - JDK-8216472: (se) Stack overflow during selection operation leads to crash (win)
+  - JDK-8219244: NMT: Change ThreadSafepointState's allocation type from mtInternal to mtThread
+  - JDK-8219597: (bf) Heap buffer state changes could provoke unexpected exceptions
+  - JDK-8225128: Add exception for expiring DocuSign root to VerifyCACerts test
+  - JDK-8225130: Add exception for expiring Comodo roots to VerifyCACerts test
+  - JDK-8229022: BufferedReader performance can be improved by using StringBuilder
+  - JDK-8229345: Memory leak due to vtable stubs not being shared on SPARC
+  - JDK-8229872: (fs) Increase buffer size used with getmntent
+  - JDK-8230235: Rendering HTML with empty img attribute and documentBaseKey cause Exception
+  - JDK-8231430: C2: Memory stomp in max_array_length() for T_ILLEGAL type
+  - JDK-8235744: PIT: test/jdk/javax/swing/text/html/TestJLabelWithHTMLText.java times out in linux-x64
+  - JDK-8235904: Infinite loop when rendering huge lines
+  - JDK-8236179: C1 register allocation error with T_ADDRESS
+  - JDK-8237368: Problem with NullPointerException in RMI TCPEndpoint.read
+  - JDK-8240521: Revert backport of 8231584: Deadlock with ClassLoader.findLibrary and System.loadLibrary call
+  - JDK-8241296: Segfault in JNIHandleBlock::oops_do()
+  - JDK-8241307: Marlin renderer should not be the default in 8u252
+
+Notes on individual issues:
+===========================
+
+hotspot/svc:
+
+JDK-8174881: Binary format for HPROF updated 
+============================================
+
+When dumping the heap in binary format, HPROF format 1.0.2 is always
+used now. Previously, format 1.0.1 was used for heaps smaller than
+2GB. HPROF format 1.0.2 is also used by jhsdb jmap for the
+serviceability agent.
+
+security-libs/java.security:
+
+JDK-8229518: Added Support for PKCS#1 v2.2 Algorithms Including RSASSA-PSS Signature
+====================================================================================
+
+The SunRsaSign and SunJCE providers have been enhanced with support
+for more algorithms defined in PKCS#1 v2.2, such as RSASSA-PSS
+signature and OAEP using FIPS 180-4 digest algorithms. New
+constructors and methods have been added to relevant JCA/JCE classes
+under the `java.security.spec` and `javax.crypto.spec` packages for
+supporting additional RSASSA-PSS parameters.
+
+security-libs/javax.crypto:
+
+JDK-8205471: RSASSA-PSS Signature Support Added to SunMSCAPI
+============================================================
+
+The RSASSA-PSS signature algorithm support has been added to the SunMSCAPI provider.
+
+security-libs/javax.security:
+
+JDK-8227564: Allow SASL Mechanisms to Be Restricted
+===================================================
+
+A security property named `jdk.sasl.disabledMechanisms` has been added
+that can be used to disable SASL mechanisms. Any disabled mechanism
+will be ignored if it is specified in the `mechanisms` argument of
+`Sasl.createSaslClient` or the `mechanism` argument of
+`Sasl.createSaslServer`. The default value for this security property
+is empty, which means that no mechanisms are disabled out-of-the-box.
diff --git a/SOURCES/README.md b/SOURCES/README.md
new file mode 100644
index 0000000..61b3b69
--- /dev/null
+++ b/SOURCES/README.md
@@ -0,0 +1,8 @@
+Package of LTS OpenJDK 8
+OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbore them. Currently it is build on openJDK 10. LTSs (next is 11) will go as separate packages. 
+
+JDK8 is last LTS release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/8/ and is landing to your RHEL. Where it will be maintained for several years. You will always be allowed to install Used LTSs in build root, and alongside via alternatives. 
+
+See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
+See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
+
diff --git a/SOURCES/TestCryptoLevel.java b/SOURCES/TestCryptoLevel.java
new file mode 100644
index 0000000..b32b7ae
--- /dev/null
+++ b/SOURCES/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/SOURCES/TestECDSA.java b/SOURCES/TestECDSA.java
new file mode 100644
index 0000000..6eb9cb2
--- /dev/null
+++ b/SOURCES/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/SOURCES/config.guess b/SOURCES/config.guess
new file mode 100644
index 0000000..b79252d
--- /dev/null
+++ b/SOURCES/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.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@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@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@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@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@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@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.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+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@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/SOURCES/config.sub b/SOURCES/config.sub
new file mode 100644
index 0000000..8b612ab
--- /dev/null
+++ b/SOURCES/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@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.sub;hb=HEAD
+
+# 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@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/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh b/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh
new file mode 100644
index 0000000..201a220
--- /dev/null
+++ b/SOURCES/java-1.8.0-openjdk-remove-intree-libraries.sh
@@ -0,0 +1,131 @@
+#!/bin/sh
+
+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)"
+
+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
+# 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
+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
+fi
diff --git a/SOURCES/jconsole.desktop.in b/SOURCES/jconsole.desktop.in
new file mode 100644
index 0000000..8a3b04d
--- /dev/null
+++ b/SOURCES/jconsole.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK @JAVA_VER@ for @target_cpu@ Monitoring & Management Console (@OPENJDK_VER@)
+Comment=Monitor and manage OpenJDK applications
+Exec=_SDKBINDIR_/jconsole
+Icon=java-@JAVA_VER@-@JAVA_VENDOR@
+Terminal=false
+Type=Application
+StartupWMClass=sun-tools-jconsole-JConsole
+Categories=Development;Profiling;Java;
+Version=1.0
diff --git a/SOURCES/jdk8035341-allow_using_system_installed_libpng.patch b/SOURCES/jdk8035341-allow_using_system_installed_libpng.patch
new file mode 100644
index 0000000..53661d8
--- /dev/null
+++ b/SOURCES/jdk8035341-allow_using_system_installed_libpng.patch
@@ -0,0 +1,115 @@
+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
++  #
++
++  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 -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/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
+   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_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)/make/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
diff --git a/SOURCES/jdk8042159-allow_using_system_installed_lcms2-jdk.patch b/SOURCES/jdk8042159-allow_using_system_installed_lcms2-jdk.patch
new file mode 100644
index 0000000..ebfbdd2
--- /dev/null
+++ b/SOURCES/jdk8042159-allow_using_system_installed_lcms2-jdk.patch
@@ -0,0 +1,68 @@
+diff --git openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk openjdk/jdk/make/lib/Awt2dLibraries.gmk
+--- openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk
+@@ -665,18 +665,35 @@
+  endif
+ endif
+ 
++LIBLCMS_DIR := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms
++
++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, \
+     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+-    SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
++    SRC := $(LIBLCMS_DIR), \
++    INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
+     LANG := C, \
+     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, \
+@@ -684,10 +701,10 @@
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+     LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \
+     LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
+-    LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
+-    LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
+-    LDFLAGS_SUFFIX_linux := -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" \
+diff --git openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
+--- openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
+@@ -30,7 +30,7 @@
+ #include "jni_util.h"
+ #include "Trace.h"
+ #include "Disposer.h"
+-#include "lcms2.h"
++#include <lcms2.h>
+ #include "jlong.h"
+ 
+ 
diff --git a/SOURCES/jdk8042159-allow_using_system_installed_lcms2-root.patch b/SOURCES/jdk8042159-allow_using_system_installed_lcms2-root.patch
new file mode 100644
index 0000000..7ce90b1
--- /dev/null
+++ b/SOURCES/jdk8042159-allow_using_system_installed_lcms2-root.patch
@@ -0,0 +1,50 @@
+diff -ruN openjdk/common/autoconf/libraries.m4 openjdk/common/autoconf/libraries.m4
+--- openjdk/common/autoconf/libraries.m4	2013-11-14 22:04:38.039440136 -0500
++++ openjdk/common/autoconf/libraries.m4	2013-11-14 22:05:11.474356424 -0500
+@@ -676,6 +676,46 @@
+ 
+   ###############################################################################
+   #
++  # Check for the lcms2 library
++  #
++
++  AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++  	[use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
++
++  AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++               [ LCMS_FOUND=yes ],
++               [ LCMS_FOUND=no ])
++
++  AC_MSG_CHECKING([for which lcms to use])
++
++  DEFAULT_LCMS=bundled
++
++  #
++  # If user didn't specify, use DEFAULT_LCMS
++  #
++  if test "x${with_lcms}" = "x"; then
++      with_lcms=${DEFAULT_LCMS}
++  fi
++
++  if test "x${with_lcms}" = "xbundled"; then
++      USE_EXTERNAL_LCMS=false
++      AC_MSG_RESULT([bundled])
++  elif test "x${with_lcms}" = "xsystem"; then
++      if test "x${LCMS_FOUND}" = "xyes"; then
++          USE_EXTERNAL_LCMS=true
++          AC_MSG_RESULT([system])
++      else
++          AC_MSG_RESULT([system not found])
++          AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++      fi
++  else
++      AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled'])
++  fi
++
++  AC_SUBST(USE_EXTERNAL_LCMS)
++
++  ###############################################################################
++  #
+   # Check for the png library
+   #
+ 
diff --git a/SOURCES/jdk8043805-allow_using_system_installed_libjpeg.patch b/SOURCES/jdk8043805-allow_using_system_installed_libjpeg.patch
new file mode 100644
index 0000000..003f32b
--- /dev/null
+++ b/SOURCES/jdk8043805-allow_using_system_installed_libjpeg.patch
@@ -0,0 +1,228 @@
+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_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)
+ 
++
+   ###############################################################################
+   #
+   # Check for the gif library
+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
+@@ -693,17 +693,17 @@
+ ##########################################################################################
+ 
+ ifdef OPENJDK
+-  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)/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)/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
+ 
+-BUILD_LIBJPEG_REORDER :=
++BUILD_LIBJAVAJPEG_REORDER :=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+   ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-    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
+ 
+@@ -718,37 +718,38 @@
+ #      $(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 := $(subst -Xlinker --as-needed,, \
++        $(subst -Wl$(COMMA)--as-needed,, $(LDFLAGS_JDKLIB))) -ljpeg \
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
+     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
+     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_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+ 
+ ##########################################################################################
+ 
+@@ -1127,7 +1128,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
+ 
+@@ -1138,6 +1138,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
+@@ -1193,11 +1200,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)/make/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>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+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>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+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>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+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"
+ 
+-#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/SOURCES/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch b/SOURCES/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
new file mode 100644
index 0000000..239cd68
--- /dev/null
+++ b/SOURCES/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
@@ -0,0 +1,148 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1525714161 -3600
+#      Mon May 07 18:29:21 2018 +0100
+# Node ID afb31413c73cbc06420fdb447aa90a7a38258904
+# Parent  bcbc64dfb629c5f188bbf59b8f986ad95963ed60
+8143245, PR3548: Zero build requires disabled warnings
+Reviewed-by: dholmes, coleenp
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ # Copyright 2007, 2008 Red Hat, Inc.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+@@ -29,12 +29,7 @@
+ ifeq ($(JVM_VARIANT_ZEROSHARK), true)
+   WARNING_FLAGS += -Wno-undef
+ endif
+-# Suppress some warning flags that are normally turned on for hotspot,
+-# because some of the zero code has not been updated accordingly.
+-WARNING_FLAGS += -Wno-return-type \
+-  -Wno-format-nonliteral -Wno-format-security \
+-  -Wno-maybe-uninitialized
+- 
++
+ 
+ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
+ # the compiler so as to be able to produce optimized objects
+diff --git openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+@@ -102,7 +102,7 @@
+       return result;
+     default:
+       ShouldNotReachHere();
+-      return result; // silence compiler warnings
++      return NULL_WORD; // silence compiler warnings
+   }
+ }
+ 
+diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2007, 2008, 2010 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+@@ -62,7 +62,7 @@
+ }
+ 
+ void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) {
+-  ffi_type *ftype;
++  ffi_type *ftype = NULL;
+   switch (type) {
+   case T_VOID:
+     ftype = &ffi_type_void;
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -1,6 +1,6 @@
+ /*
+  * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
++ * Copyright 2016 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -61,6 +61,7 @@
+ 
+ frame os::get_sender_for_C_frame(frame* fr) {
+   ShouldNotCallThis();
++  return frame(NULL, NULL); // silence compile warning.
+ }
+ 
+ frame os::current_frame() {
+@@ -98,16 +99,19 @@
+ 
+ address os::Linux::ucontext_get_pc(ucontext_t* uc) {
+   ShouldNotCallThis();
++  return NULL; // silence compile warnings
+ }
+ 
+ ExtendedPC os::fetch_frame_from_context(void* ucVoid,
+                                         intptr_t** ret_sp,
+                                         intptr_t** ret_fp) {
+   ShouldNotCallThis();
++  return NULL; // silence compile warnings
+ }
+ 
+ frame os::fetch_frame_from_context(void* ucVoid) {
+   ShouldNotCallThis();
++  return frame(NULL, NULL); // silence compile warnings
+ }
+ 
+ extern "C" JNIEXPORT int
+@@ -247,11 +251,16 @@
+   }
+ #endif // !PRODUCT
+ 
+-  const char *fmt = "caught unhandled signal %d";
+   char buf[64];
+ 
+-  sprintf(buf, fmt, sig);
++  sprintf(buf, "caught unhandled signal %d", sig);
++
++// Silence -Wformat-security warning for fatal()
++PRAGMA_DIAG_PUSH
++PRAGMA_FORMAT_NONLITERAL_IGNORED
+   fatal(buf);
++PRAGMA_DIAG_POP
++  return true; // silence compiler warnings
+ }
+ 
+ void os::Linux::init_thread_fpu_state(void) {
+@@ -260,6 +269,7 @@
+ 
+ int os::Linux::get_fpu_control_word() {
+   ShouldNotCallThis();
++  return -1; // silence compile warnings
+ }
+ 
+ void os::Linux::set_fpu_control_word(int fpu) {
+diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+@@ -110,6 +110,7 @@
+                                            void* ucontext,
+                                            bool isInJava) {
+     ShouldNotCallThis();
++    return false; // silence compile warning
+   }
+ 
+   bool pd_get_top_frame_for_profiling(frame* fr_addr,
diff --git a/SOURCES/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch b/SOURCES/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
new file mode 100644
index 0000000..ddab642
--- /dev/null
+++ b/SOURCES/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
@@ -0,0 +1,125 @@
+# HG changeset patch
+# User mbalao
+# Date 1529971845 -28800
+#      Tue Jun 26 08:10:45 2018 +0800
+# Node ID e9c20b7250cd98d16a67f2a30b34284c2caa01dc
+# Parent  9f1aa2e38d90dd60522237d7414af6bdcf03c4ff
+8195607, PR3776: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed with "NSS initialization failed" on NSS 3.34.1
+Reviewed-by: valeriep, weijun
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/Secmod.java openjdk/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/Secmod.java
+@@ -197,7 +197,7 @@
+ 
+         if (configDir != null) {
+             String configDirPath = null;
+-            String sqlPrefix = "sql:/";
++            String sqlPrefix = "sql:";
+             if (!configDir.startsWith(sqlPrefix)) {
+                 configDirPath = configDir;
+             } else {
+diff --git openjdk.orig/jdk/src/share/native/sun/security/pkcs11/j2secmod.c openjdk/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/j2secmod.c
+@@ -69,9 +69,14 @@
+     int res = 0;
+     FPTR_Initialize initialize =
+         (FPTR_Initialize)findFunction(env, jHandle, "NSS_Initialize");
++    #ifdef SECMOD_DEBUG
++    FPTR_GetError getError =
++        (FPTR_GetError)findFunction(env, jHandle, "PORT_GetError");
++    #endif // SECMOD_DEBUG
+     unsigned int flags = 0x00;
+     const char *configDir = NULL;
+     const char *functionName = NULL;
++    const char *configFile = NULL;
+ 
+     /* If we cannot initialize, exit now */
+     if (initialize == NULL) {
+@@ -97,13 +102,18 @@
+         flags = 0x20; // NSS_INIT_OPTIMIZESPACE flag
+     }
+ 
++    configFile = "secmod.db";
++    if (configDir != NULL && strncmp("sql:", configDir, 4U) == 0) {
++        configFile = "pkcs11.txt";
++    }
++
+     /*
+      * If the NSS_Init function is requested then call NSS_Initialize to
+      * open the Cert, Key and Security Module databases, read only.
+      */
+     if (strcmp("NSS_Init", functionName) == 0) {
+         flags = flags | 0x01; // NSS_INIT_READONLY flag
+-        res = initialize(configDir, "", "", "secmod.db", flags);
++        res = initialize(configDir, "", "", configFile, flags);
+ 
+     /*
+      * If the NSS_InitReadWrite function is requested then call
+@@ -111,7 +121,7 @@
+      * read/write.
+      */
+     } else if (strcmp("NSS_InitReadWrite", functionName) == 0) {
+-        res = initialize(configDir, "", "", "secmod.db", flags);
++        res = initialize(configDir, "", "", configFile, flags);
+ 
+     /*
+      * If the NSS_NoDB_Init function is requested then call
+@@ -137,6 +147,13 @@
+         (*env)->ReleaseStringUTFChars(env, jConfigDir, configDir);
+     }
+     dprintf1("-res: %d\n", res);
++    #ifdef SECMOD_DEBUG
++    if (res == -1) {
++        if (getError != NULL) {
++            dprintf1("-NSS error: %d\n", getError());
++        }
++    }
++    #endif // SECMOD_DEBUG
+ 
+     return (res == 0) ? JNI_TRUE : JNI_FALSE;
+ }
+diff --git openjdk.orig/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h openjdk/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
+--- openjdk.orig/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
++++ openjdk/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.h
+@@ -34,6 +34,10 @@
+         const char *certPrefix, const char *keyPrefix,
+         const char *secmodName, unsigned int flags);
+ 
++#ifdef SECMOD_DEBUG
++typedef int (*FPTR_GetError)(void);
++#endif //SECMOD_DEBUG
++
+ // in secmod.h
+ //extern SECMODModule *SECMOD_LoadModule(char *moduleSpec,SECMODModule *parent,
+ //                                                      PRBool recurse);
+diff --git openjdk.orig/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt openjdk/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/test/sun/security/pkcs11/Secmod/pkcs11.txt
+@@ -0,0 +1,4 @@
++library=
++name=NSS Internal PKCS #11 Module
++parameters=configdir='sql:./tmpdb' certPrefix='' keyPrefix='' secmod='' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 
++NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+diff --git openjdk.orig/jdk/test/sun/security/pkcs11/SecmodTest.java openjdk/jdk/test/sun/security/pkcs11/SecmodTest.java
+--- openjdk.orig/jdk/test/sun/security/pkcs11/SecmodTest.java
++++ openjdk/jdk/test/sun/security/pkcs11/SecmodTest.java
+@@ -55,7 +55,7 @@
+ 
+         DBDIR = System.getProperty("test.classes", ".") + SEP + "tmpdb";
+         if (useSqlite) {
+-            System.setProperty("pkcs11test.nss.db", "sql:/" + DBDIR);
++            System.setProperty("pkcs11test.nss.db", "sql:" + DBDIR);
+         } else {
+             System.setProperty("pkcs11test.nss.db", DBDIR);
+         }
+@@ -67,6 +67,7 @@
+         if (useSqlite) {
+             copyFile("key4.db", BASE, DBDIR);
+             copyFile("cert9.db", BASE, DBDIR);
++            copyFile("pkcs11.txt", BASE, DBDIR);
+         } else {
+             copyFile("secmod.db", BASE, DBDIR);
+             copyFile("key3.db", BASE, DBDIR);
diff --git a/SOURCES/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch b/SOURCES/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
new file mode 100644
index 0000000..ae48068
--- /dev/null
+++ b/SOURCES/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
@@ -0,0 +1,58 @@
+# HG changeset patch
+# User andrew
+# Date 1526122977 -3600
+#      Sat May 12 12:02:57 2018 +0100
+# Node ID 00ccc73498628a51a45301322e64ce2ad06e49be
+# Parent  aecf9f48f7b5c6148b62713a6b746301435b57cc
+PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
+Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
+
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -402,6 +402,21 @@
+     AC_SUBST($2CXXSTD_CXXFLAG)
+   fi
+ 
++  #
++  # NOTE: check for -mstackrealign needs to be below potential addition of -m32
++  #
++  if test "x$OPENJDK_TARGET_CPU" = xx86 && test "x$OPENJDK_TARGET_OS" = xmacosx -o \
++                                                "x$OPENJDK_TARGET_OS" = xlinux; then
++    # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
++    # While waiting for a better solution, the current workaround is to use -mstackrealign
++    # This is also required on Linux systems which use libraries compiled with SSE instructions
++    REALIGN_CFLAG="-mstackrealign"
++    FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
++      AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
++    )
++    AC_SUBST([REALIGN_CFLAG])
++  fi
++
+   if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
+     AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
+   fi
+diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in openjdk///common/autoconf/hotspot-spec.gmk.in
+--- openjdk.orig///common/autoconf/hotspot-spec.gmk.in
++++ openjdk///common/autoconf/hotspot-spec.gmk.in
+@@ -112,7 +112,8 @@
+ RC:=@HOTSPOT_RC@
+ 
+ EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
+-				   $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
++				   $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) \
++				   $(REALIGN_CFLAG)
+ EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
+ EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
+ EXTRA_ASFLAGS=@LEGACY_EXTRA_ASFLAGS@
+diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/spec.gmk.in
+--- openjdk.orig///common/autoconf/spec.gmk.in
++++ openjdk///common/autoconf/spec.gmk.in
+@@ -366,6 +366,7 @@
+ 
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
+ NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
++REALIGN_CFLAG=@REALIGN_CFLAG@
+ CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
+ 
+ CXX:=@FIXPATH@ @CCACHE@ @CXX@
diff --git a/SOURCES/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch b/SOURCES/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
new file mode 100644
index 0000000..7ac077b
--- /dev/null
+++ b/SOURCES/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
@@ -0,0 +1,20 @@
+# HG changeset patch
+# User andrew
+# Date 1526489197 -3600
+#      Wed May 16 17:46:37 2018 +0100
+# Node ID 64e87a408afd2b56d59dad73dee28d4b99463810
+# Parent  00ccc73498628a51a45301322e64ce2ad06e49be
+PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+
+diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
+--- openjdk.orig///common/autoconf/flags.m4
++++ openjdk///common/autoconf/flags.m4
+@@ -401,6 +401,8 @@
+     FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+       AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
+     )
++    CFLAGS_JDK="${CFLAGS_JDK} ${REALIGN_CFLAG}"
++    CXXFLAGS_JDK="${CXXFLAGS_JDK} ${REALIGN_CFLAG}"
+     AC_SUBST([REALIGN_CFLAG])
+   fi
+ 
diff --git a/SOURCES/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch b/SOURCES/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
new file mode 100644
index 0000000..53bceec
--- /dev/null
+++ b/SOURCES/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
@@ -0,0 +1,343 @@
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+@@ -2659,7 +2659,7 @@
+   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
+     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 openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+@@ -957,7 +957,7 @@
+   if (free_percentage < desired_free_percentage) {
+     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: ");
+@@ -6577,7 +6577,7 @@
+     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() &&
+@@ -6875,7 +6875,7 @@
+     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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+@@ -3902,7 +3902,7 @@
+   // 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;
+   }
+@@ -4706,7 +4706,7 @@
+   // The > 0 check is to deal with the prev and next live bytes which
+   // could be 0.
+   if (*hum_bytes > 0) {
+-    bytes = MIN2(HeapRegion::GrainBytes, *hum_bytes);
++    bytes = MIN2(HeapRegion::GrainBytes, (size_t)*hum_bytes);
+     *hum_bytes -= bytes;
+   }
+   return bytes;
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+@@ -1729,7 +1729,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 openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
+@@ -117,7 +117,7 @@
+   return reserved_size() - committed_size();
+ }
+ 
+-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 openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+@@ -38,7 +38,7 @@
+   _cancel(false),
+   _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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+@@ -120,7 +120,7 @@
+ };
+ 
+ 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 openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+@@ -109,7 +109,7 @@
+   if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
+     size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
+     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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+@@ -194,7 +194,7 @@
+   const size_t num_overflow_elems = of_stack->size();
+   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 openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+@@ -910,8 +910,8 @@
+ void PSParallelCompact::initialize_dead_wood_limiter()
+ {
+   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 --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+@@ -385,7 +385,7 @@
+       uintx calculated_size = NewSize + OldSize;
+       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
+@@ -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.
+-    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");
+ 
+@@ -455,24 +455,23 @@
+       // 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 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.
+       _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.
+-      _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);
+-    }
++        MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);    }
+ 
+     assert(_min_gen0_size > 0, "Sanity check");
+     _initial_gen0_size = desired_new_size;
+@@ -573,7 +572,7 @@
+   } 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 --git openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/metaspace.cpp
++++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+@@ -1482,7 +1482,7 @@
+ 
+ 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) {
+@@ -1542,7 +1542,7 @@
+     (size_t)MIN2(min_tmp, double(MaxMetaspaceSize));
+   // Don't shrink less than the initial generation size
+   minimum_desired_capacity = MAX2(minimum_desired_capacity,
+-                                  MetaspaceSize);
++                                  (size_t)MetaspaceSize);
+ 
+   if (PrintGCDetails && Verbose) {
+     gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: ");
+@@ -1600,7 +1600,7 @@
+     const double max_tmp = used_after_gc / minimum_used_percentage;
+     size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(MaxMetaspaceSize));
+     maximum_desired_capacity = MAX2(maximum_desired_capacity,
+-                                    MetaspaceSize);
++                                    (size_t)MetaspaceSize);
+     if (PrintGCDetails && Verbose) {
+       gclog_or_tty->print_cr("  "
+                              "  maximum_free_percentage: %6.2f"
+@@ -3361,7 +3361,7 @@
+     // on the medium chunk list.   The next chunk will be small and progress
+     // from there.  This size calculated by -version.
+     _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6,
+-                                       (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 --git openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+@@ -250,13 +250,13 @@
+   size_t init_sz = 0;
+ 
+   if (TLABSize > 0) {
+-    init_sz = TLABSize / HeapWordSize;
++    init_sz = (size_t)(TLABSize / HeapWordSize);
+   } else if (global_stats() != NULL) {
+     // Initial size is a function of the average number of allocating threads.
+     unsigned nof_threads = global_stats()->allocating_threads_avg();
+ 
+-    init_sz  = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
+-                      (nof_threads * target_refills());
++    init_sz  = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
++                      (nof_threads * target_refills()));
+     init_sz = align_object_size(init_sz);
+   }
+   init_sz = MIN2(MAX2(init_sz, min_size()), max_size());
+diff --git openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+--- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+@@ -48,7 +48,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;
+@@ -82,7 +82,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 openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1289,7 +1289,7 @@
+     // 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);
+     }
+@@ -1314,8 +1314,8 @@
+       // Unless explicitly requested otherwise, make young gen
+       // at least min_new, and at most preferred_max_new_size.
+       if (FLAG_IS_DEFAULT(NewSize)) {
+-        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);
+@@ -1325,7 +1325,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 openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp
+@@ -41,7 +41,7 @@
+ }
+ 
+ size_t G1CMObjArrayProcessor::process_array_slice(objArrayOop obj, HeapWord* start_from, size_t remaining) {
+-  size_t words_to_scan = MIN2(remaining, ObjArrayMarkingStride);
++  size_t words_to_scan = MIN2(remaining, (size_t) ObjArrayMarkingStride);
+ 
+   if (remaining > ObjArrayMarkingStride) {
+     push_array_slice(start_from + ObjArrayMarkingStride);
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp
+@@ -150,5 +150,5 @@
+     return value;
+   }
+ 
+-  return (size_t)1 << (log2_intptr(value) + 1);
++  return (size_t)1 << (log2_intptr((uintptr_t) value) + 1);
+ }
diff --git a/SOURCES/nss.cfg.in b/SOURCES/nss.cfg.in
new file mode 100644
index 0000000..377a39c
--- /dev/null
+++ b/SOURCES/nss.cfg.in
@@ -0,0 +1,5 @@
+name = NSS
+nssLibraryDirectory = @NSS_LIBDIR@
+nssDbMode = noDb
+attributes = compatibility
+handleStartupErrors = ignoreMultipleInitialisation
diff --git a/SOURCES/nss.fips.cfg.in b/SOURCES/nss.fips.cfg.in
new file mode 100644
index 0000000..ead27be
--- /dev/null
+++ b/SOURCES/nss.fips.cfg.in
@@ -0,0 +1,6 @@
+name = NSS-FIPS
+nssLibraryDirectory = @NSS_LIBDIR@
+nssSecmodDirectory = @NSS_SECMOD@
+nssDbMode = readOnly
+nssModule = fips
+
diff --git a/SOURCES/policytool.desktop.in b/SOURCES/policytool.desktop.in
new file mode 100644
index 0000000..5f4cb4a
--- /dev/null
+++ b/SOURCES/policytool.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=OpenJDK @JAVA_VER@ for @target_cpu@ Policy Tool (@OPENJDK_VER@)
+Comment=Manage OpenJDK policy files
+Exec=_JREBINDIR_/policytool
+Icon=java-@JAVA_VER@-@JAVA_VENDOR@
+Terminal=false
+Type=Application
+StartupWMClass=sun-security-tools-PolicyTool
+Categories=Settings;Java;
+Version=1.0
diff --git a/SOURCES/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch b/SOURCES/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
new file mode 100644
index 0000000..17e1f69
--- /dev/null
+++ b/SOURCES/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.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,
diff --git a/SOURCES/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch b/SOURCES/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
new file mode 100644
index 0000000..f1e8bc2
--- /dev/null
+++ b/SOURCES/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.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 {
diff --git a/SOURCES/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch b/SOURCES/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
new file mode 100644
index 0000000..a42688d
--- /dev/null
+++ b/SOURCES/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
@@ -0,0 +1,63 @@
+# 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)
+PR3575: System cacerts database handling should not affect jssecacerts
+
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java
+@@ -72,7 +72,7 @@
+      * The preference of the default trusted KeyStore is:
+      *    javax.net.ssl.trustStore
+      *    jssecacerts
+-     *    cacerts
++     *    cacerts (system and local)
+      */
+     private static final class TrustStoreDescriptor {
+         private static final String fileSep = File.separator;
+@@ -83,6 +83,10 @@
+                 defaultStorePath + fileSep + "cacerts";
+         private static final String jsseDefaultStore =
+                 defaultStorePath + fileSep + "jssecacerts";
++        /* Check system cacerts DB: /etc/pki/java/cacerts */
++        private static final String systemStore =
++                fileSep + "etc" + fileSep + "pki" +
++                fileSep + "java" + fileSep + "cacerts";
+ 
+         // the trust store name
+         private final String storeName;
+@@ -146,7 +150,8 @@
+                     long temporaryTime = 0L;
+                     if (!"NONE".equals(storePropName)) {
+                         String[] fileNames =
+-                                new String[] {storePropName, defaultStore};
++                                new String[] {storePropName,
++                                              systemStore, defaultStore};
+                         for (String fileName : fileNames) {
+                             File f = new File(fileName);
+                             if (f.isFile() && f.canRead()) {
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java
+@@ -108,9 +108,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/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch b/SOURCES/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
new file mode 100644
index 0000000..06973aa
--- /dev/null
+++ b/SOURCES/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
@@ -0,0 +1,140 @@
+# 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 --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
++++ openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java
+@@ -35,6 +35,7 @@
+ 
+ import java.util.Base64;
+ 
++import sun.security.action.GetPropertyAction;
+ import sun.security.util.*;
+ import sun.security.x509.AlgorithmId;
+ import sun.security.x509.X509Key;
+@@ -74,6 +75,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
+@@ -303,13 +312,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 --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+@@ -126,6 +126,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.
+@@ -188,7 +189,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,
+@@ -321,6 +322,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");
+@@ -561,6 +563,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();
+@@ -1464,7 +1468,7 @@
+ 
+         // Sign the request and base-64 encode it
+         request.encodeAndSign(subject, signature);
+-        request.print(out);
++        request.print(out, systemLineEndings);
+ 
+         checkWeak(rb.getString("the.generated.certificate.request"), request);
+     }
+@@ -4544,4 +4548,3 @@
+         return new Pair<>(a,b);
+     }
+ }
+-
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Resources.java openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java
+@@ -168,6 +168,8 @@
+                 "keystore password"}, //-storepass
+         {"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/SOURCES/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch b/SOURCES/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
new file mode 100644
index 0000000..00e3a2e
--- /dev/null
+++ b/SOURCES/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
@@ -0,0 +1,164 @@
+# 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 --git openjdk.orig/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java openjdk/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
++++ openjdk/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java
+@@ -121,7 +121,7 @@
+     private static void ensureCurveIsSupported(ECParameterSpec ecSpec)
+         throws InvalidAlgorithmParameterException {
+ 
+-        AlgorithmParameters ecParams = ECUtil.getECParameters(null);
++        AlgorithmParameters ecParams = ECUtil.getECParameters(null, true);
+         byte[] encodedParams;
+         try {
+             ecParams.init(ecSpec);
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/util/Debug.java openjdk/jdk/src/share/classes/sun/security/util/Debug.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/util/Debug.java
++++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java
+@@ -73,6 +73,7 @@
+         System.err.println("certpath      PKIX CertPathBuilder and");
+         System.err.println("              CertPathValidator debugging");
+         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 --git openjdk.orig/jdk/src/share/classes/sun/security/util/ECUtil.java openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/util/ECUtil.java
++++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java
+@@ -41,6 +41,9 @@
+ 
+ public final 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 @@
+     }
+ 
+     public static AlgorithmParameters getECParameters(Provider p) {
++        return getECParameters(p, false);
++    }
++
++    public 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/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch b/SOURCES/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
new file mode 100644
index 0000000..5a619b4
--- /dev/null
+++ b/SOURCES/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.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/SOURCES/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch b/SOURCES/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
new file mode 100644
index 0000000..e1e7214
--- /dev/null
+++ b/SOURCES/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
@@ -0,0 +1,143 @@
+diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
+--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp
++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
+@@ -977,7 +977,7 @@
+     for (int n = (int) CodeBuffer::SECT_FIRST; n < (int) CodeBuffer::SECT_LIMIT; n++) {
+       CodeSection* sect = code_section(n);
+       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 --git openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp openjdk/hotspot/src/share/vm/code/codeCache.cpp
+--- openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp
++++ openjdk/hotspot/src/share/vm/code/codeCache.cpp
+@@ -192,7 +192,7 @@
+     }
+     if (PrintCodeCacheExtension) {
+       ResourceMark rm;
+-      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 --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+@@ -598,7 +598,7 @@
+     "   [Table]\n"
+     "      [Memory Usage: " G1_STRDEDUP_BYTES_FORMAT_NS "]\n"
+     "      [Size: " SIZE_FORMAT ", Min: " SIZE_FORMAT ", Max: " SIZE_FORMAT "]\n"
+-    "      [Entries: " UINTX_FORMAT ", Load: " G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " UINTX_FORMAT ", Added: " UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
++    "      [Entries: " UINTX_FORMAT ", Load: " G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " SIZE_FORMAT ", Added: " UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n"
+     "      [Resize Count: " UINTX_FORMAT ", Shrink Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS "), Grow Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS ")]\n"
+     "      [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: " UINTX_FORMAT ", Hash Seed: " UINT64_FORMAT "]\n"
+     "      [Age Threshold: " UINTX_FORMAT "]",
+diff --git openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp
++++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp
+@@ -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 --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+@@ -1055,7 +1055,8 @@
+     size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size);
+     assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu", msp.initial_gen0_size(), expected));
+     assert(FLAG_IS_ERGO(NewSize) && NewSize == expected,
+-        err_msg("NewSize should have been set ergonomically to %zu, but was %zu", expected, NewSize));
++        err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT ", but was " UINTX_FORMAT,
++		expected, NewSize));
+   }
+ 
+ private:
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1291,14 +1291,14 @@
+     }
+     if (PrintGCDetails && Verbose) {
+       // Too early to use gclog_or_tty
+-      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);
+     }
+@@ -1314,7 +1314,7 @@
+         FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
+         if (PrintGCDetails && Verbose) {
+           // Too early to use gclog_or_tty
+-          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
+@@ -1324,7 +1324,7 @@
+           FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap - NewSize));
+           if (PrintGCDetails && Verbose) {
+             // Too early to use gclog_or_tty
+-            tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
++            tty->print_cr("CMS ergo set OldSize: " UINTX_FORMAT, OldSize);
+           }
+         }
+       }
+@@ -2043,7 +2043,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);
+     }
+@@ -2053,7 +2053,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 --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+@@ -1389,12 +1389,21 @@
+ 
+ #define INTPTR_FORMAT_W(width)   "%" #width PRIxPTR
+ 
++#if defined(S390) && !defined(_LP64)
++#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/pr3655-toggle_system_crypto_policy.patch b/SOURCES/pr3655-toggle_system_crypto_policy.patch
new file mode 100644
index 0000000..abfac45
--- /dev/null
+++ b/SOURCES/pr3655-toggle_system_crypto_policy.patch
@@ -0,0 +1,78 @@
+# HG changeset patch
+# User andrew
+# Date 1545198926 0
+#      Wed Dec 19 05:55:26 2018 +0000
+# Node ID f2cbd688824c128db7fa848c8732fb0ab3507776
+# Parent  81f07f6d1f8b7b51b136d3974c61bc8bb513770c
+PR3655: Allow use of system crypto policy to be disabled by the user
+Summary: Read user overrides first so security.useSystemPropertiesFile can be disabled and add -Djava.security.disableSystemPropertiesFile
+
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -122,31 +122,6 @@
+         }
+ 
+         if ("true".equalsIgnoreCase(props.getProperty
+-                ("security.useSystemPropertiesFile"))) {
+-
+-            // now load the system file, if it exists, so its values
+-            // will win if they conflict with the earlier values
+-            try (BufferedInputStream bis =
+-                 new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
+-                props.load(bis);
+-                loadedProps = true;
+-
+-                if (sdebug != null) {
+-                    sdebug.println("reading system security properties file " +
+-                                   SYSTEM_PROPERTIES);
+-                    sdebug.println(props.toString());
+-                }
+-            } catch (IOException e) {
+-                if (sdebug != null) {
+-                    sdebug.println
+-                        ("unable to load security properties from " +
+-                         SYSTEM_PROPERTIES);
+-                    e.printStackTrace();
+-                }
+-            }
+-        }
+-
+-        if ("true".equalsIgnoreCase(props.getProperty
+                 ("security.overridePropertiesFile"))) {
+ 
+             String extraPropFile = System.getProperty
+@@ -212,6 +187,33 @@
+             }
+         }
+ 
++        String disableSystemProps = System.getProperty("java.security.disableSystemPropertiesFile");
++        if (disableSystemProps == null &&
++            "true".equalsIgnoreCase(props.getProperty
++                ("security.useSystemPropertiesFile"))) {
++
++            // now load the system file, if it exists, so its values
++            // will win if they conflict with the earlier values
++            try (BufferedInputStream bis =
++                 new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
++                props.load(bis);
++                loadedProps = true;
++
++                if (sdebug != null) {
++                    sdebug.println("reading system security properties file " +
++                                   SYSTEM_PROPERTIES);
++                    sdebug.println(props.toString());
++                }
++            } catch (IOException e) {
++                if (sdebug != null) {
++                    sdebug.println
++                        ("unable to load security properties from " +
++                         SYSTEM_PROPERTIES);
++                    e.printStackTrace();
++                }
++            }
++        }
++
+         if (!loadedProps) {
+             initializeStatic();
+             if (sdebug != null) {
diff --git a/SOURCES/repackReproduciblePolycies.sh b/SOURCES/repackReproduciblePolycies.sh
new file mode 100644
index 0000000..f356bd3
--- /dev/null
+++ b/SOURCES/repackReproduciblePolycies.sh
@@ -0,0 +1,44 @@
+#!/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/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/$type/$f
+echo "processing $f ($ORIG)"
+if [ ! -f  $ORIG ]; then
+  echo "File not found! $ORIG"
+  let ERRORS=$ERRORS+1
+  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"
+  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
+  done
+
+exit $ERRORS
diff --git a/SOURCES/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch b/SOURCES/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
new file mode 100644
index 0000000..d9cbac4
--- /dev/null
+++ b/SOURCES/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
@@ -0,0 +1,66 @@
+diff --git a/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java b/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
+--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
+@@ -1,5 +1,6 @@
+ /*
+  * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2014 Red Hat Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -61,13 +62,13 @@
+ 
+     private static void checkKeySize(int keysize)
+             throws InvalidParameterException {
+-        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, 3072. " +
++                    "from 512 to 1024 (inclusive), or 2048, 3072, 4096. " +
+                     "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, 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
+@@ -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/SOURCES/rh1582504-rsa_default_for_keytool.patch b/SOURCES/rh1582504-rsa_default_for_keytool.patch
new file mode 100644
index 0000000..f59dbf5
--- /dev/null
+++ b/SOURCES/rh1582504-rsa_default_for_keytool.patch
@@ -0,0 +1,12 @@
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/tools/keytool/Main.java
++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java
+@@ -1004,7 +1004,7 @@
+             }
+         } else if (command == GENKEYPAIR) {
+             if (keyAlgName == null) {
+-                keyAlgName = "DSA";
++                keyAlgName = "RSA";
+             }
+             doGenKeyPair(alias, dname, keyAlgName, keysize, sigAlgName);
+             kssave = true;
diff --git a/SOURCES/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch b/SOURCES/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
new file mode 100644
index 0000000..bddd702
--- /dev/null
+++ b/SOURCES/rh1648242-accessible_toolkit_crash_do_not_break_jvm.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
+@@ -883,7 +883,11 @@
+                     return null;
+                 }
+             });
+-            loadAssistiveTechnologies();
++         try {
++                 loadAssistiveTechnologies();
++             } catch ( AWTError error) {
++                 // ignore silently
++             }
+         }
+         return toolkit;
+     }
diff --git a/SOURCES/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch b/SOURCES/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
new file mode 100644
index 0000000..b0a874d
--- /dev/null
+++ b/SOURCES/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
@@ -0,0 +1,12 @@
+diff --git a/src/share/vm/runtime/globals.hpp b/src/share/vm/runtime/globals.hpp
+--- openjdk/hotspot/src/share/vm/runtime/globals.hpp
++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
+@@ -530,7 +530,7 @@
+   lp64_product(intx, ObjectAlignmentInBytes, 8,                             \
+           "Default object alignment in bytes, 8 is minimum")                \
+                                                                             \
+-  product(bool, AssumeMP, false,                                            \
++  product(bool, AssumeMP, true,                                             \
+           "Instruct the VM to assume multiple processors are available")    \
+                                                                             \
+   /* UseMembar is theoretically a temp flag used for memory barrier         \
diff --git a/SOURCES/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch b/SOURCES/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
new file mode 100644
index 0000000..febd87e
--- /dev/null
+++ b/SOURCES/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.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/SOURCES/rh1648644-java_access_bridge_privileged_security.patch b/SOURCES/rh1648644-java_access_bridge_privileged_security.patch
new file mode 100644
index 0000000..28060ed
--- /dev/null
+++ b/SOURCES/rh1648644-java_access_bridge_privileged_security.patch
@@ -0,0 +1,25 @@
+diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux openjdk/jdk/src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux
++++ openjdk/jdk/src/share/lib/security/java.security-linux
+@@ -226,7 +226,9 @@
+                com.sun.activation.registries.,\
+                jdk.jfr.events.,\
+                jdk.jfr.internal.,\
+-               jdk.management.jfr.internal.
++               jdk.management.jfr.internal.,\
++               org.GNOME.Accessibility.,\
++               org.GNOME.Bonobo.
+ 
+ #
+ # List of comma-separated packages that start with or equal this string
+@@ -279,7 +281,9 @@
+                    com.sun.activation.registries.,\
+                    jdk.jfr.events.,\
+                    jdk.jfr.internal.,\
+-                   jdk.management.jfr.internal.
++                   jdk.management.jfr.internal.,\
++                   org.GNOME.Accessibility.,\
++                   org.GNOME.Bonobo.
+ 
+ #
+ # Determines whether this properties file can be appended to
diff --git a/SOURCES/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch b/SOURCES/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
new file mode 100644
index 0000000..e319492
--- /dev/null
+++ b/SOURCES/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
@@ -0,0 +1,16 @@
+diff --git openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk openjdk/jdk/make/lib/Awt2dLibraries.gmk
+--- openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk
++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk
+@@ -891,6 +891,12 @@
+   BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing
+ endif
+ 
++# 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
++
+ # LDFLAGS clarification:
+ #   Filter relevant linker flags disallowing unresolved symbols as we cannot
+ #   build-time decide to which library to link against (libawt_headless or
diff --git a/SOURCES/rh1655466-global_crypto_and_fips.patch b/SOURCES/rh1655466-global_crypto_and_fips.patch
new file mode 100644
index 0000000..58d77b3
--- /dev/null
+++ b/SOURCES/rh1655466-global_crypto_and_fips.patch
@@ -0,0 +1,208 @@
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/Security.java openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -191,27 +191,7 @@
+         if (disableSystemProps == null &&
+             "true".equalsIgnoreCase(props.getProperty
+                 ("security.useSystemPropertiesFile"))) {
+-
+-            // now load the system file, if it exists, so its values
+-            // will win if they conflict with the earlier values
+-            try (BufferedInputStream bis =
+-                 new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
+-                props.load(bis);
+-                loadedProps = true;
+-
+-                if (sdebug != null) {
+-                    sdebug.println("reading system security properties file " +
+-                                   SYSTEM_PROPERTIES);
+-                    sdebug.println(props.toString());
+-                }
+-            } catch (IOException e) {
+-                if (sdebug != null) {
+-                    sdebug.println
+-                        ("unable to load security properties from " +
+-                         SYSTEM_PROPERTIES);
+-                    e.printStackTrace();
+-                }
+-            }
++            loadedProps = loadedProps && SystemConfigurator.configure(props);
+         }
+ 
+         if (!loadedProps) {
+diff --git a/src/share/classes/javopenjdk.orig/jdk/security/SystemConfigurator.java openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -0,0 +1,153 @@
++/*
++ * Copyright (c) 2019, Red Hat, Inc.
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++package java.security;
++
++import java.io.BufferedInputStream;
++import java.io.FileInputStream;
++import java.io.IOException;
++
++import java.nio.file.Files;
++import java.nio.file.FileSystems;
++import java.nio.file.Path;
++
++import java.util.Iterator;
++import java.util.Map.Entry;
++import java.util.Properties;
++import java.util.function.Consumer;
++import java.util.regex.Matcher;
++import java.util.regex.Pattern;
++
++import sun.security.util.Debug;
++
++/**
++ * Internal class to align OpenJDK with global crypto-policies.
++ * Called from java.security.Security class initialization,
++ * during startup.
++ *
++ */
++
++class SystemConfigurator {
++
++    private static final Debug sdebug =
++            Debug.getInstance("properties");
++
++    private static final String CRYPTO_POLICIES_BASE_DIR =
++            "/etc/crypto-policies";
++
++    private static final String CRYPTO_POLICIES_JAVA_CONFIG =
++            CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config";
++
++    private static final String CRYPTO_POLICIES_CONFIG =
++            CRYPTO_POLICIES_BASE_DIR + "/config";
++
++    private static final class SecurityProviderInfo {
++        int number;
++        String key;
++        String value;
++        SecurityProviderInfo(int number, String key, String value) {
++            this.number = number;
++            this.key = key;
++            this.value = value;
++        }
++    }
++
++    /*
++     * Invoked when java.security.Security class is initialized, if
++     * java.security.disableSystemPropertiesFile property is not set and
++     * security.useSystemPropertiesFile is true.
++     */
++    static boolean configure(Properties props) {
++        boolean loadedProps = false;
++
++        try (BufferedInputStream bis =
++                new BufferedInputStream(
++                        new FileInputStream(CRYPTO_POLICIES_JAVA_CONFIG))) {
++            props.load(bis);
++            loadedProps = true;
++            if (sdebug != null) {
++                sdebug.println("reading system security properties file " +
++                        CRYPTO_POLICIES_JAVA_CONFIG);
++                sdebug.println(props.toString());
++            }
++        } catch (IOException e) {
++            if (sdebug != null) {
++                sdebug.println("unable to load security properties from " +
++                        CRYPTO_POLICIES_JAVA_CONFIG);
++                e.printStackTrace();
++            }
++        }
++
++        try {
++            if (enableFips()) {
++                if (sdebug != null) { sdebug.println("FIPS mode detected"); }
++                loadedProps = false;
++                // Remove all security providers
++                Iterator<Entry<Object, Object>> i = props.entrySet().iterator();
++                while (i.hasNext()) {
++                    Entry<Object, Object> e = i.next();
++                    if (((String) e.getKey()).startsWith("security.provider")) {
++                        if (sdebug != null) { sdebug.println("Removing provider: " + e); }
++                        i.remove();
++                    }
++                }
++                // Add FIPS security providers
++                String fipsProviderValue = null;
++                for (int n = 1;
++                     (fipsProviderValue = (String) props.get("fips.provider." + n)) != null; n++) {
++                    String fipsProviderKey = "security.provider." + n;
++                    if (sdebug != null) {
++                        sdebug.println("Adding provider " + n + ": " +
++                                fipsProviderKey + "=" + fipsProviderValue);
++                    }
++                    props.put(fipsProviderKey, fipsProviderValue);
++                }
++                loadedProps = true;
++            }
++        } catch (Exception e) {
++            if (sdebug != null) {
++                sdebug.println("unable to load FIPS configuration");
++                e.printStackTrace();
++            }
++        }
++        return loadedProps;
++    }
++
++    /*
++     * FIPS is enabled only if crypto-policies are set to "FIPS"
++     * and the com.redhat.fips property is true.
++     */
++    private static boolean enableFips() throws Exception {
++	boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
++	if (fipsEnabled) {
++	    Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
++	    String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
++	    if (sdebug != null) { sdebug.println("Crypto config:\n" + cryptoPoliciesConfig); }
++	    Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
++	    return pattern.matcher(cryptoPoliciesConfig).find();
++	} else {
++	    return false;
++	}
++    }
++}
+diff --git openjdk.orig/jdk/src/share/lib/security/java.security-linux openjdk/jdk/src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux
++++ openjdk/jdk/src/share/lib/security/java.security-linux
+@@ -77,6 +77,14 @@
+ #security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
+ 
+ #
++# Security providers used when global crypto-policies are set to FIPS.
++#
++fips.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.fips.cfg
++fips.provider.2=sun.security.provider.Sun
++fips.provider.3=sun.security.ec.SunEC
++fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS
++
++#
+ # Sun Provider SecureRandom seed source.
+ #
+ # Select the primary source of seed data for the "SHA1PRNG" and
diff --git a/SOURCES/rh1750419-redhat_alt_java.patch b/SOURCES/rh1750419-redhat_alt_java.patch
new file mode 100644
index 0000000..bdb67b3
--- /dev/null
+++ b/SOURCES/rh1750419-redhat_alt_java.patch
@@ -0,0 +1,128 @@
+diff --git openjdk.orig/jdk/make/CompileLaunchers.gmk openjdk/jdk/make/CompileLaunchers.gmk
+--- openjdk.orig/jdk/make/CompileLaunchers.gmk
++++ openjdk/jdk/make/CompileLaunchers.gmk
+@@ -255,6 +255,32 @@
+   endif
+ endif
+ 
++$(eval $(call SetupLauncher,alt-java, \
++    -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA,,,user32.lib comctl32.lib, \
++    $(JDK_OUTPUTDIR)/objs/jli_static.lib, $(JAVA_RC_FLAGS), \
++    $(JDK_TOPDIR)/src/windows/resource/java.rc, $(JDK_OUTPUTDIR)/objs/java_objs,true))
++
++$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX): $(BUILD_LAUNCHER_alt-java)
++	$(MKDIR) -p $(@D)
++	$(RM) $@
++	$(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX) $@
++
++$(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT): $(BUILD_LAUNCHER_alt-java)
++	$(MKDIR) -p $(@D)
++	$(RM) $@
++	$(CP) $(JDK_OUTPUTDIR)/objs/java_objs$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT) $@
++
++ifeq ($(OPENJDK_TARGET_OS), linux)
++  BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(EXE_SUFFIX)
++  ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
++    ifneq ($(POST_STRIP_CMD), )
++      ifneq ($(STRIP_POLICY), no_strip)
++        BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/alt-java$(DEBUGINFO_EXT)
++      endif
++    endif
++  endif
++endif
++
+ ifeq ($(OPENJDK_TARGET_OS), windows)
+   $(eval $(call SetupLauncher,javaw, \
+       -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS,,,user32.lib comctl32.lib, \
+diff --git openjdk.orig/jdk/src/share/bin/alt_main.h openjdk/jdk/src/share/bin/alt_main.h
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/bin/alt_main.h
+@@ -0,0 +1,73 @@
++/*
++ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.  Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++#ifdef REDHAT_ALT_JAVA
++
++#include <sys/prctl.h>
++
++
++/* Per task speculation control */
++#ifndef PR_GET_SPECULATION_CTRL
++# define PR_GET_SPECULATION_CTRL    52
++#endif
++#ifndef PR_SET_SPECULATION_CTRL
++# define PR_SET_SPECULATION_CTRL    53
++#endif
++/* Speculation control variants */
++#ifndef PR_SPEC_STORE_BYPASS
++# define PR_SPEC_STORE_BYPASS          0
++#endif
++/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
++
++#ifndef PR_SPEC_NOT_AFFECTED
++# define PR_SPEC_NOT_AFFECTED          0
++#endif
++#ifndef PR_SPEC_PRCTL
++# define PR_SPEC_PRCTL                 (1UL << 0)
++#endif
++#ifndef PR_SPEC_ENABLE
++# define PR_SPEC_ENABLE                (1UL << 1)
++#endif
++#ifndef PR_SPEC_DISABLE
++# define PR_SPEC_DISABLE               (1UL << 2)
++#endif
++#ifndef PR_SPEC_FORCE_DISABLE
++# define PR_SPEC_FORCE_DISABLE         (1UL << 3)
++#endif
++#ifndef PR_SPEC_DISABLE_NOEXEC
++# define PR_SPEC_DISABLE_NOEXEC        (1UL << 4)
++#endif
++
++static void set_speculation() __attribute__((constructor));
++static void set_speculation() {
++  if ( prctl(PR_SET_SPECULATION_CTRL,
++             PR_SPEC_STORE_BYPASS,
++             PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
++    return;
++  }
++  prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
++}
++
++#endif // REDHAT_ALT_JAVA
+diff --git openjdk.orig/jdk/src/share/bin/main.c openjdk/jdk/src/share/bin/main.c
+--- openjdk.orig/jdk/src/share/bin/main.c
++++ openjdk/jdk/src/share/bin/main.c
+@@ -32,6 +32,10 @@
+ 
+ #include "defines.h"
+ 
++#if defined(linux) && defined(__x86_64)
++#include "alt_main.h"
++#endif
++
+ #ifdef _MSC_VER
+ #if _MSC_VER > 1400 && _MSC_VER < 1600
+ 
diff --git a/SOURCES/rh1760838-fips_default_keystore_type.patch b/SOURCES/rh1760838-fips_default_keystore_type.patch
new file mode 100644
index 0000000..bedc8ea
--- /dev/null
+++ b/SOURCES/rh1760838-fips_default_keystore_type.patch
@@ -0,0 +1,52 @@
+diff -r 6efbd7b35a10 src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java	Thu Jan 23 18:22:31 2020 -0300
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java	Mon Mar 02 19:20:17 2020 -0300
+@@ -123,6 +123,33 @@
+                     }
+                     props.put(fipsProviderKey, fipsProviderValue);
+                 }
++                // Add other security properties
++                String keystoreTypeValue = (String) props.get("fips.keystore.type");
++                if (keystoreTypeValue != null) {
++                    String nonFipsKeystoreType = props.getProperty("keystore.type");
++                    props.put("keystore.type", keystoreTypeValue);
++                    if (keystoreTypeValue.equals("PKCS11")) {
++                    	// If keystore.type is PKCS11, javax.net.ssl.keyStore
++                    	// must be "NONE". See JDK-8238264.
++                    	System.setProperty("javax.net.ssl.keyStore", "NONE");
++                    }
++                    if (System.getProperty("javax.net.ssl.trustStoreType") == null) {
++                        // If no trustStoreType has been set, use the
++                        // previous keystore.type under FIPS mode. In
++                        // a default configuration, the Trust Store will
++                        // be 'cacerts' (JKS type).
++                        System.setProperty("javax.net.ssl.trustStoreType",
++                                nonFipsKeystoreType);
++                    }
++                    if (sdebug != null) {
++                        sdebug.println("FIPS mode default keystore.type = " +
++                                keystoreTypeValue);
++                        sdebug.println("FIPS mode javax.net.ssl.keyStore = " +
++                        		System.getProperty("javax.net.ssl.keyStore", ""));
++                        sdebug.println("FIPS mode javax.net.ssl.trustStoreType = " +
++                                System.getProperty("javax.net.ssl.trustStoreType", ""));
++                    }
++                }
+                 loadedProps = true;
+             }
+         } catch (Exception e) {
+diff -r 6efbd7b35a10 src/share/lib/security/java.security-linux
+--- openjdk.orig/jdk/src/share/lib/security/java.security-linux	Thu Jan 23 18:22:31 2020 -0300
++++ openjdk/jdk/src/share/lib/security/java.security-linux	Mon Mar 02 19:20:17 2020 -0300
+@@ -179,6 +179,11 @@
+ keystore.type=jks
+ 
+ #
++# Default keystore type used when global crypto-policies are set to FIPS.
++#
++fips.keystore.type=PKCS11
++
++#
+ # Controls compatibility mode for the JKS keystore type.
+ #
+ # When set to 'true', the JKS keystore type supports loading
diff --git a/SOURCES/rh1860986-disable_tlsv1.3_in_fips_mode.patch b/SOURCES/rh1860986-disable_tlsv1.3_in_fips_mode.patch
new file mode 100644
index 0000000..91e3705
--- /dev/null
+++ b/SOURCES/rh1860986-disable_tlsv1.3_in_fips_mode.patch
@@ -0,0 +1,327 @@
+diff -r bbc65dfa59d1 src/share/classes/java/security/SystemConfigurator.java
+--- openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java	Thu Jan 23 18:22:31 2020 -0300
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java	Sat Aug 01 23:16:51 2020 -0300
+@@ -1,11 +1,13 @@
+ /*
+- * Copyright (c) 2019, Red Hat, Inc.
++ * Copyright (c) 2019, 2020, Red Hat, Inc.
+  *
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation.
++ * published by the Free Software Foundation.  Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
+  *
+  * This code is distributed in the hope that it will be useful, but WITHOUT
+  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+@@ -34,10 +36,10 @@
+ import java.util.Iterator;
+ import java.util.Map.Entry;
+ import java.util.Properties;
+-import java.util.function.Consumer;
+-import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+ 
++import sun.misc.SharedSecrets;
++import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+ 
+ /**
+@@ -47,7 +49,7 @@
+  *
+  */
+ 
+-class SystemConfigurator {
++final class SystemConfigurator {
+ 
+     private static final Debug sdebug =
+             Debug.getInstance("properties");
+@@ -61,15 +63,16 @@
+     private static final String CRYPTO_POLICIES_CONFIG =
+             CRYPTO_POLICIES_BASE_DIR + "/config";
+ 
+-    private static final class SecurityProviderInfo {
+-        int number;
+-        String key;
+-        String value;
+-        SecurityProviderInfo(int number, String key, String value) {
+-            this.number = number;
+-            this.key = key;
+-            this.value = value;
+-        }
++    private static boolean systemFipsEnabled = false;
++
++    static {
++        SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
++            new JavaSecuritySystemConfiguratorAccess() {
++                @Override
++                public boolean isSystemFipsEnabled() {
++                    return SystemConfigurator.isSystemFipsEnabled();
++                }
++            });
+     }
+ 
+     /*
+@@ -128,9 +131,9 @@
+                     String nonFipsKeystoreType = props.getProperty("keystore.type");
+                     props.put("keystore.type", keystoreTypeValue);
+                     if (keystoreTypeValue.equals("PKCS11")) {
+-                    	// If keystore.type is PKCS11, javax.net.ssl.keyStore
+-                    	// must be "NONE". See JDK-8238264.
+-                    	System.setProperty("javax.net.ssl.keyStore", "NONE");
++                        // If keystore.type is PKCS11, javax.net.ssl.keyStore
++                        // must be "NONE". See JDK-8238264.
++                        System.setProperty("javax.net.ssl.keyStore", "NONE");
+                     }
+                     if (System.getProperty("javax.net.ssl.trustStoreType") == null) {
+                         // If no trustStoreType has been set, use the
+@@ -144,12 +147,13 @@
+                         sdebug.println("FIPS mode default keystore.type = " +
+                                 keystoreTypeValue);
+                         sdebug.println("FIPS mode javax.net.ssl.keyStore = " +
+-                        		System.getProperty("javax.net.ssl.keyStore", ""));
++                                System.getProperty("javax.net.ssl.keyStore", ""));
+                         sdebug.println("FIPS mode javax.net.ssl.trustStoreType = " +
+                                 System.getProperty("javax.net.ssl.trustStoreType", ""));
+                     }
+                 }
+                 loadedProps = true;
++                systemFipsEnabled = true;
+             }
+         } catch (Exception e) {
+             if (sdebug != null) {
+@@ -165,20 +165,37 @@
+         return loadedProps;
+     }
+ 
++    /**
++     * Returns whether or not global system FIPS alignment is enabled.
++     *
++     * Value is always 'false' before java.security.Security class is
++     * initialized.
++     *
++     * Call from out of this package through SharedSecrets:
++     *   SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++     *           .isSystemFipsEnabled();
++     *
++     * @return  a boolean value indicating whether or not global
++     *          system FIPS alignment is enabled.
++     */
++    static boolean isSystemFipsEnabled() {
++        return systemFipsEnabled;
++    }
++
+     /*
+      * FIPS is enabled only if crypto-policies are set to "FIPS"
+      * and the com.redhat.fips property is true.
+      */
+     private static boolean enableFips() throws Exception {
+-	boolean fipsEnabled = Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
+-	if (fipsEnabled) {
+-	    Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
+-	    String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
+-	    if (sdebug != null) { sdebug.println("Crypto config:\n" + cryptoPoliciesConfig); }
+-	    Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
+-	    return pattern.matcher(cryptoPoliciesConfig).find();
+-	} else {
+-	    return false;
+-	}
++        boolean shouldEnable = Boolean.valueOf(System.getProperty("com.redhat.fips", "true"));
++        if (shouldEnable) {
++            Path configPath = FileSystems.getDefault().getPath(CRYPTO_POLICIES_CONFIG);
++            String cryptoPoliciesConfig = new String(Files.readAllBytes(configPath));
++            if (sdebug != null) { sdebug.println("Crypto config:\n" + cryptoPoliciesConfig); }
++            Pattern pattern = Pattern.compile("^FIPS$", Pattern.MULTILINE);
++            return pattern.matcher(cryptoPoliciesConfig).find();
++        } else {
++            return false;
++        }
+     }
+ }
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (c) 2020, Red Hat, Inc.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.  Oracle designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Oracle in the LICENSE file that accompanied this code.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++package sun.misc;
++
++public interface JavaSecuritySystemConfiguratorAccess {
++    boolean isSystemFipsEnabled();
++}
+diff --git openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java
+@@ -63,6 +63,7 @@
+     private static JavaObjectInputStreamReadString javaObjectInputStreamReadString;
+     private static JavaObjectInputStreamAccess javaObjectInputStreamAccess;
+     private static JavaSecuritySignatureAccess javaSecuritySignatureAccess;
++    private static JavaSecuritySystemConfiguratorAccess javaSecuritySystemConfiguratorAccess;
+ 
+     public static JavaUtilJarAccess javaUtilJarAccess() {
+         if (javaUtilJarAccess == null) {
+@@ -248,4 +249,12 @@
+         }
+         return javaxCryptoSealedObjectAccess;
+     }
++
++    public static void setJavaSecuritySystemConfiguratorAccess(JavaSecuritySystemConfiguratorAccess jssca) {
++        javaSecuritySystemConfiguratorAccess = jssca;
++    }
++
++    public static JavaSecuritySystemConfiguratorAccess getJavaSecuritySystemConfiguratorAccess() {
++        return javaSecuritySystemConfiguratorAccess;
++    }
+ }
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java
+@@ -31,6 +31,7 @@
+ import java.security.cert.*;
+ import java.util.*;
+ import javax.net.ssl.*;
++import sun.misc.SharedSecrets;
+ import sun.security.action.GetPropertyAction;
+ import sun.security.provider.certpath.AlgorithmChecker;
+ import sun.security.validator.Validator;
+@@ -539,20 +540,38 @@
+ 
+         static {
+             if (SunJSSE.isFIPS()) {
+-                supportedProtocols = Arrays.asList(
+-                    ProtocolVersion.TLS13,
+-                    ProtocolVersion.TLS12,
+-                    ProtocolVersion.TLS11,
+-                    ProtocolVersion.TLS10
+-                );
++                if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++                        .isSystemFipsEnabled()) {
++                    // RH1860986: TLSv1.3 key derivation not supported with
++                    // the Security Providers available in system FIPS mode.
++                    supportedProtocols = Arrays.asList(
++                        ProtocolVersion.TLS12,
++                        ProtocolVersion.TLS11,
++                        ProtocolVersion.TLS10
++                    );
+ 
+-                serverDefaultProtocols = getAvailableProtocols(
+-                        new ProtocolVersion[] {
+-                    ProtocolVersion.TLS13,
+-                    ProtocolVersion.TLS12,
+-                    ProtocolVersion.TLS11,
+-                    ProtocolVersion.TLS10
+-                });
++                    serverDefaultProtocols = getAvailableProtocols(
++                            new ProtocolVersion[] {
++                        ProtocolVersion.TLS12,
++                        ProtocolVersion.TLS11,
++                        ProtocolVersion.TLS10
++                    });
++                } else {
++                    supportedProtocols = Arrays.asList(
++                        ProtocolVersion.TLS13,
++                        ProtocolVersion.TLS12,
++                        ProtocolVersion.TLS11,
++                        ProtocolVersion.TLS10
++                    );
++
++                    serverDefaultProtocols = getAvailableProtocols(
++                            new ProtocolVersion[] {
++                        ProtocolVersion.TLS13,
++                        ProtocolVersion.TLS12,
++                        ProtocolVersion.TLS11,
++                        ProtocolVersion.TLS10
++                    });
++                }
+             } else {
+                 supportedProtocols = Arrays.asList(
+                     ProtocolVersion.TLS13,
+@@ -612,6 +631,16 @@
+ 
+         static ProtocolVersion[] getSupportedProtocols() {
+             if (SunJSSE.isFIPS()) {
++                if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++                        .isSystemFipsEnabled()) {
++                    // RH1860986: TLSv1.3 key derivation not supported with
++                    // the Security Providers available in system FIPS mode.
++                    return new ProtocolVersion[] {
++                            ProtocolVersion.TLS12,
++                            ProtocolVersion.TLS11,
++                            ProtocolVersion.TLS10
++                    };
++                }
+                 return new ProtocolVersion[] {
+                         ProtocolVersion.TLS13,
+                         ProtocolVersion.TLS12,
+@@ -939,6 +968,16 @@
+ 
+         static ProtocolVersion[] getProtocols() {
+             if (SunJSSE.isFIPS()) {
++                if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++                        .isSystemFipsEnabled()) {
++                    // RH1860986: TLSv1.3 key derivation not supported with
++                    // the Security Providers available in system FIPS mode.
++                    return new ProtocolVersion[] {
++                            ProtocolVersion.TLS12,
++                            ProtocolVersion.TLS11,
++                            ProtocolVersion.TLS10
++                    };
++                }
+                 return new ProtocolVersion[]{
+                         ProtocolVersion.TLS12,
+                         ProtocolVersion.TLS11,
+diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
++++ openjdk/jdk/src/share/classes/sun/security/ssl/SunJSSE.java
+@@ -30,6 +30,8 @@
+ 
+ import java.security.*;
+ 
++import sun.misc.SharedSecrets;
++
+ /**
+  * The JSSE provider.
+  *
+@@ -215,8 +217,13 @@
+             "sun.security.ssl.SSLContextImpl$TLS11Context");
+         put("SSLContext.TLSv1.2",
+             "sun.security.ssl.SSLContextImpl$TLS12Context");
+-        put("SSLContext.TLSv1.3",
+-            "sun.security.ssl.SSLContextImpl$TLS13Context");
++        if (!SharedSecrets.getJavaSecuritySystemConfiguratorAccess()
++                .isSystemFipsEnabled()) {
++            // RH1860986: TLSv1.3 key derivation not supported with
++            // the Security Providers available in system FIPS mode.
++            put("SSLContext.TLSv1.3",
++                "sun.security.ssl.SSLContextImpl$TLS13Context");
++        }
+         put("SSLContext.TLS",
+             "sun.security.ssl.SSLContextImpl$TLSContext");
+         if (isfips == false) {
diff --git a/SOURCES/rh1868759-pkcs11_cancel_on_failure.patch b/SOURCES/rh1868759-pkcs11_cancel_on_failure.patch
new file mode 100644
index 0000000..e578e00
--- /dev/null
+++ b/SOURCES/rh1868759-pkcs11_cancel_on_failure.patch
@@ -0,0 +1,20 @@
+--- openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java      Mon Aug 31 06:57:19 2020 +0100
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java      Mon Aug 31 15:56:48 2020 -0300
+@@ -627,7 +627,7 @@
+                 throw (ShortBufferException)
+                         (new ShortBufferException().initCause(e));
+             }
+-            reset(false);
++            reset(true);
+             throw new ProviderException("update() failed", e);
+         }
+     }
+@@ -745,7 +745,7 @@
+                 throw (ShortBufferException)
+                         (new ShortBufferException().initCause(e));
+             }
+-            reset(false);
++            reset(true);
+             throw new ProviderException("update() failed", e);
+         }
+     }
diff --git a/SOURCES/rh1906862-always_initialise_configurator_access.patch b/SOURCES/rh1906862-always_initialise_configurator_access.patch
new file mode 100644
index 0000000..82116ad
--- /dev/null
+++ b/SOURCES/rh1906862-always_initialise_configurator_access.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User andrew
+# Date 1608219816 0
+#      Thu Dec 17 15:43:36 2020 +0000
+# Node ID db5d1b28bfce04352b3a48960bf836f6eb20804b
+# Parent  a2cfa397150e99b813354226d536eb8509b5850b
+RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
+
+diff --git openjdk.orig/jdk/src/share/classes/java/security/Security.java openjdk/jdk/src/share/classes/java/security/Security.java
+--- openjdk.orig/jdk/src/share/classes/java/security/Security.java
++++ openjdk/jdk/src/share/classes/java/security/Security.java
+@@ -30,6 +30,8 @@
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.io.*;
+ import java.net.URL;
++import sun.misc.SharedSecrets;
++import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+ import sun.security.util.PropertyExpander;
+ 
+@@ -69,6 +71,15 @@
+     }
+ 
+     static {
++        // Initialise here as used by code with system properties disabled
++        SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
++            new JavaSecuritySystemConfiguratorAccess() {
++                @Override
++                public boolean isSystemFipsEnabled() {
++                    return SystemConfigurator.isSystemFipsEnabled();
++                }
++            });
++
+         // doPrivileged here because there are multiple
+         // things in initialize that might require privs.
+         // (the FileInputStream call and the File.exists call,
+diff --git openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+--- openjdk.orig/jdk/src/share/classes/java/security/SystemConfigurator.java
++++ openjdk/jdk/src/share/classes/java/security/SystemConfigurator.java
+@@ -39,8 +39,6 @@
+ import java.util.Properties;
+ import java.util.regex.Pattern;
+ 
+-import sun.misc.SharedSecrets;
+-import sun.misc.JavaSecuritySystemConfiguratorAccess;
+ import sun.security.util.Debug;
+ 
+ /**
+@@ -66,16 +64,6 @@
+ 
+     private static boolean systemFipsEnabled = false;
+ 
+-    static {
+-        SharedSecrets.setJavaSecuritySystemConfiguratorAccess(
+-            new JavaSecuritySystemConfiguratorAccess() {
+-                @Override
+-                public boolean isSystemFipsEnabled() {
+-                    return SystemConfigurator.isSystemFipsEnabled();
+-                }
+-            });
+-    }
+-
+     /*
+      * Invoked when java.security.Security class is initialized, if
+      * java.security.disableSystemPropertiesFile property is not set and
diff --git a/SOURCES/s390-8214206_fix.patch b/SOURCES/s390-8214206_fix.patch
new file mode 100644
index 0000000..42902cf
--- /dev/null
+++ b/SOURCES/s390-8214206_fix.patch
@@ -0,0 +1,37 @@
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1BiasedArray.hpp
+@@ -78,7 +78,8 @@
+     size_t num_target_elems = pointer_delta(end, bottom, mapping_granularity_in_bytes);
+     idx_t bias = (uintptr_t)bottom / mapping_granularity_in_bytes;
+     address base = create_new_base_array(num_target_elems, target_elem_size_in_bytes);
+-    initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes, log2_intptr(mapping_granularity_in_bytes));
++    initialize_base(base, num_target_elems, bias, target_elem_size_in_bytes,
++                    log2_long(mapping_granularity_in_bytes));
+   }
+ 
+   size_t bias() const { return _bias; }
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahNumberSeq.cpp
+@@ -135,7 +135,7 @@
+ void BinaryMagnitudeSeq::add(size_t val) {
+   Atomic::add(val, &_sum);
+ 
+-  int mag = log2_intptr(val) + 1;
++  int mag = log2_long(val) + 1;
+ 
+   // Defensively saturate for product bits:
+   if (mag < 0) {
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp openjdk/hotspot/src/share/vm/runtime/os.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp
+@@ -1284,7 +1284,7 @@
+ }
+ 
+ void os::set_memory_serialize_page(address page) {
+-  int count = log2_intptr(sizeof(class JavaThread)) - log2_int(64);
++  int count = log2_long(sizeof(class JavaThread)) - log2_int(64);
+   _mem_serialize_page = (volatile int32_t *)page;
+   // We initialize the serialization page shift count here
+   // We assume a cache line size of 64 bytes
diff --git a/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec
new file mode 100644
index 0000000..02d2f7d
--- /dev/null
+++ b/SPECS/java-1.8.0-openjdk.spec
@@ -0,0 +1,4492 @@
+# RPM conditionals so as to be able to dynamically produce
+# slowdebug/release builds. See:
+# http://rpm.org/user_doc/conditional_builds.html
+#
+# Examples:
+#
+# Produce release, fastdebug *and* slowdebug builds on x86_64 (default):
+# $ rpmbuild -ba java-1.8.0-openjdk.spec
+#
+# Produce only release builds (no debug builds) on x86_64:
+# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug --without fastdebug
+#
+# Only produce a release build on x86_64:
+# $ rhpkg mockbuild --without slowdebug --without fastdebug
+#
+# Enable fastdebug builds by default on relevant arches.
+%bcond_without fastdebug
+# Enable slowdebug builds by default on relevant arches.
+%bcond_without slowdebug
+# Enable release builds by default on relevant arches.
+%bcond_without release
+
+# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
+# This fixes detailed NMT and other tools which need minimal debug info.
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879
+%global _find_debuginfo_opts -g
+
+# note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros
+# also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch
+# see the difference between global and define:
+# See https://github.com/rpm-software-management/rpm/issues/127 to comments at  "pmatilai commented on Aug 18, 2017"
+# (initiated in https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
+%global debug_suffix_unquoted -slowdebug
+%global fastdebug_suffix_unquoted -fastdebug
+# quoted one for shell operations
+%global debug_suffix "%{debug_suffix_unquoted}"
+%global fastdebug_suffix "%{fastdebug_suffix_unquoted}"
+%global normal_suffix ""
+
+%global debug_warning This package is unoptimised with full debugging. Install only as needed and remove ASAP.
+%global fastdebug_warning This package is optimised with full debugging. Install only as needed and remove ASAP.
+%global debug_on unoptimised with full debugging on
+%global fastdebug_on optimised with full debugging on
+%global for_fastdebug for packages with debugging on and optimisation
+%global for_debug for packages with debugging on and no optimisation
+
+%if %{with release}
+%global include_normal_build 1
+%else
+%global include_normal_build 0
+%endif
+
+%if %{include_normal_build}
+%global normal_build %{normal_suffix}
+%else
+%global normal_build %{nil}
+%endif
+
+%global aarch64         aarch64 arm64 armv8
+# we need to distinguish between 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 sa_arches       %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
+%global jfr_arches      %{jit_arches}
+%global fastdebug_arches x86_64
+
+# By default, we build a debug build during main build on JIT architectures
+%if %{with slowdebug}
+%ifarch %{jit_arches}
+%ifnarch %{arm}
+%global include_debug_build 1
+%else
+%global include_debug_build 0
+%endif
+%else
+%global include_debug_build 0
+%endif
+%else
+%global include_debug_build 0
+%endif
+
+# By default, we build a fastdebug build during main build only on fastdebug architectures
+%if %{with fastdebug}
+%ifarch %{fastdebug_arches}
+%global include_fastdebug_build 1
+%else
+%global include_fastdebug_build 0
+%endif
+%endif
+
+%if %{include_debug_build}
+%global slowdebug_build %{debug_suffix}
+%else
+%global slowdebug_build %{nil}
+%endif
+
+%if %{include_fastdebug_build}
+%global fastdebug_build %{fastdebug_suffix}
+%else
+%global fastdebug_build %{nil}
+%endif
+
+# If you disable both builds, then the build fails
+# Note that the debug build requires the normal build for docs
+%global build_loop %{normal_build} %{fastdebug_build} %{slowdebug_build}
+# Test slowdebug first as it provides the best diagnostics
+%global rev_build_loop  %{slowdebug_build} %{fastdebug_build} %{normal_build}
+
+%ifarch %{jit_arches}
+%global bootstrap_build 1
+%else
+%global bootstrap_build 1
+%endif
+
+%global bootstrap_targets images
+%global release_targets images docs-zip
+# No docs nor bootcycle for debug builds
+%global debug_targets images
+
+# Filter out flags from the optflags macro that cause problems with the OpenJDK build
+# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
+# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
+# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid FORTIFY_SOURCE warnings
+# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and it's otherwise the default for C++
+%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r -e 's|-O[0-9]*||')
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
+%global ourldflags %{__global_ldflags}
+
+# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
+# the initialization must be here. Later the pkg-config have buggy behavior
+# looks like openjdk RPM specific bug
+# 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)
+# 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 workaround for processing of requires during srpm creation
+%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)
+%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSS_BUILDTIME_NUMBER}" ;fi)
+
+
+# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349.
+# See also https://bugzilla.redhat.com/show_bug.cgi?id=1590796
+# as to why some libraries *cannot* be excluded. In particular,
+# these are:
+# libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so
+%global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
+# In some cases, the arch used by the JDK does
+# not match _arch.
+# Also, in some cases, the machine name used by SystemTap
+# does not match that given by _target_cpu
+%ifarch x86_64
+%global archinstall amd64
+%global stapinstall x86_64
+%endif
+%ifarch ppc
+%global archinstall ppc
+%global stapinstall powerpc
+%endif
+%ifarch %{ppc64be}
+%global archinstall ppc64
+%global stapinstall powerpc
+%endif
+%ifarch %{ppc64le}
+%global archinstall ppc64le
+%global stapinstall powerpc
+%endif
+%ifarch %{ix86}
+%global archinstall i386
+%global stapinstall i386
+%endif
+%ifarch ia64
+%global archinstall ia64
+%global stapinstall ia64
+%endif
+%ifarch s390
+%global archinstall s390
+%global stapinstall s390
+%endif
+%ifarch s390x
+%global archinstall s390x
+%global stapinstall s390
+%endif
+%ifarch %{arm}
+%global archinstall arm
+%global stapinstall arm
+%endif
+%ifarch %{aarch64}
+%global archinstall aarch64
+%global stapinstall arm64
+%endif
+# 32 bit sparc, optimized for v9
+%ifarch sparcv9
+%global archinstall sparc
+%global stapinstall %{_target_cpu}
+%endif
+# 64 bit sparc
+%ifarch sparc64
+%global archinstall sparcv9
+%global stapinstall %{_target_cpu}
+%endif
+# Need to support noarch for srpm build
+%ifarch noarch
+%global archinstall %{nil}
+%global stapinstall %{nil}
+%endif
+
+%ifarch %{jit_arches}
+%global with_systemtap 1
+%else
+%global with_systemtap 0
+%endif
+
+# New Version-String scheme-style defines
+%global majorver 8
+
+# Standard JPackage naming and versioning defines.
+%global origin          openjdk
+%global origin_nice     OpenJDK
+%global top_level_dir_name   %{origin}
+
+# Define vendor information used by OpenJDK
+%global oj_vendor Red Hat, Inc.
+%global oj_vendor_url "https://www.redhat.com/"
+# Define what url should JVM offer in case of a crash report
+# order may be important, epel may have rhel declared
+%if 0%{?epel}
+%global oj_vendor_bug_url  https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=%{name}&version=epel%{epel}
+%else
+%if 0%{?fedora}
+# Does not work for rawhide, keeps the version field empty
+%global oj_vendor_bug_url  https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{name}&version=%{fedora}
+%else
+%if 0%{?rhel}
+%global oj_vendor_bug_url  https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%20%{rhel}&component=%{name}
+%else
+%global oj_vendor_bug_url  https://bugzilla.redhat.com/enter_bug.cgi
+%endif
+%endif
+%endif
+
+# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
+%global shenandoah_project	aarch64-port
+%global shenandoah_repo		jdk8u-shenandoah
+%global shenandoah_revision    	aarch64-shenandoah-jdk8u282-b08
+# Define old aarch64/jdk8u tree variables for compatibility
+%global project         %{shenandoah_project}
+%global repo            %{shenandoah_repo}
+%global revision        %{shenandoah_revision}
+# Define IcedTea version used for SystemTap tapsets and desktop files
+%global icedteaver      3.15.0
+
+# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 -> aarch64-shenandoah-jdk8u212-b04
+%global version_tag     %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
+# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60  (dont forget spec escape % by %%)
+%global whole_update    %(VERSION=%{version_tag}; echo ${VERSION%%-*})
+# eg  jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
+%global updatever       %(VERSION=%{whole_update}; echo ${VERSION##*u})
+# eg jdk8u60-b27 -> b27
+%global buildver        %(VERSION=%{version_tag}; echo ${VERSION##*-})
+%global rpmrelease      4
+# Define milestone (EA for pre-releases, GA ("fcs") for releases)
+# Release will be (where N is usually a number starting at 1):
+# - 0.N%%{?extraver}%%{?dist} for EA releases,
+# - N%%{?extraver}{?dist} for GA releases
+%global is_ga           1
+%if %{is_ga}
+%global milestone          fcs
+%global milestone_version  %{nil}
+%global extraver %{nil}
+%global eaprefix %{nil}
+%else
+%global milestone          ea
+%global milestone_version  "-ea"
+%global extraver .%{milestone}
+%global eaprefix 0.
+%endif
+# priority must be 7 digits in total. The expression is workarounding tip
+%global priority        %(TIP=1800%{updatever};  echo ${TIP/tip/999})
+
+%global javaver         1.%{majorver}.0
+
+# parametrized macros are order-sensitive
+%global compatiblename  %{name}
+%global fullversion     %{compatiblename}-%{version}-%{release}
+# images stub
+%global jdkimage       j2sdk-image
+# output dir stub
+%define buildoutputdir() %{expand:build/jdk8.build%{?1}}
+# we can copy the javadoc to not arched dir, or make it not noarch
+%define uniquejavadocdir()    %{expand:%{fullversion}%{?1}}
+# main id and dir of this jdk
+%define uniquesuffix()        %{expand:%{fullversion}.%{_arch}%{?1}}
+
+%global etcjavasubdir     %{_sysconfdir}/java/java-%{javaver}-%{origin}
+%define etcjavadir()      %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
+# Standard JPackage directories and symbolic links.
+%define sdkdir()        %{expand:%{uniquesuffix -- %{?1}}}
+%define jrelnk()        %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
+
+%define jredir()        %{expand:%{sdkdir -- %{?1}}/jre}
+%define sdkbindir()     %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
+%define jrebindir()     %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
+%global alt_java_name     alt-java
+
+%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
+
+# For flatpack builds hard-code /usr/sbin/alternatives,
+# otherwise use %%{_sbindir} relative path.
+%if 0%{?flatpak}
+%global alternatives_requires /usr/sbin/alternatives
+%else
+%global alternatives_requires %{_sbindir}/alternatives
+%endif
+
+%if %{with_systemtap}
+# Where to install systemtap tapset (links)
+# We would like these to be in a package specific sub-dir,
+# but currently systemtap doesn't support that, so we have to
+# use the root tapset dir for now. To distinguish between 64
+# and 32 bit architectures we place the tapsets under the arch
+# specific dir (note that systemtap will only pickup the tapset
+# for the primary arch for now). Systemtap uses the machine name
+# aka target_cpu as architecture specific directory name.
+%global tapsetroot /usr/share/systemtap
+%global tapsetdirttapset %{tapsetroot}/tapset/
+%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
+%endif
+
+# not-duplicated scriptlets for normal/debug packages
+%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+
+%define post_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+exit 0
+}
+
+
+%define post_headless() %{expand:
+%ifarch %{jit_arches}
+# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
+%ifnarch %{power64}
+# see https://bugzilla.redhat.com/show_bug.cgi?id=513605
+%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
+%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}.%{_arch} \\
+  --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
+  --slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir -- %{?1}}/%{alt_java_name} \\
+  --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
+  --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
+  --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
+  --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\
+  --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\
+  --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
+  --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\
+  --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\
+  --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\
+  --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
+  --slave %{_mandir}/man1/java.1$ext java.1$ext \\
+  %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \\
+  %{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
+  %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
+  %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
+  %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
+  %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
+  %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
+  %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
+  %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
+  %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
+  %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
+  %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+
+for X in %{origin} %{javaver} ; do
+  alternatives --install %{_jvmdir}/jre-"$X" jre_"$X" %{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+done
+
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY  --family %{name}.%{_arch}
+
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+# see pretrans where this file is declared
+# also see that pretrans is only for non-debug
+if [ ! "%{?1}" == %{debug_suffix} ]; then
+  if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
+    sh  %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}  %{_jvmdir}/%{sdkdir -- %{?1}}
+  fi
+fi
+
+exit 0
+}
+
+%define postun_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+if [ $1 -eq 0 ] ; then
+    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    %{update_desktop_icons}
+fi
+exit 0
+}
+
+
+%define postun_headless() %{expand:
+  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 posttrans_script() %{expand:
+%{update_desktop_icons}
+}
+
+%define 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}.%{_arch} \\
+  --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
+  --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
+  --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
+  --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
+  --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\
+  --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
+  --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
+  --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
+  --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
+  --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\
+  --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
+  --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
+  --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
+  --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
+  --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
+%ifarch %{jfr_arches}
+  --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\
+%endif
+  --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
+  --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
+  --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
+  --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\
+  --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\
+  --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\
+  --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\
+  --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\
+  --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\
+  --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\
+  --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\
+  --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\
+  --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\
+  --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\
+  --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\
+  --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\
+  --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
+  %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
+  %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
+  %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
+  %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
+  %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
+  %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
+  %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
+  %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
+  %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
+  %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
+  %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
+  %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
+  %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
+  %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
+  %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
+  %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
+  %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
+  %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
+  %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
+  %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
+  %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
+  %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
+  %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
+  %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
+  %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
+  %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
+  %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
+  %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\
+  --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
+  %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+
+for X in %{origin} %{javaver} ; do
+  alternatives \\
+    --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-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+exit 0
+}
+
+%define postun_devel() %{expand:
+  alternatives --remove javac %{sdkbindir -- %{?1}}/javac
+  alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+  alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
+  alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+if [ $1 -eq 0 ] ; then
+    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    %{update_desktop_icons}
+fi
+exit 0
+}
+
+%define posttrans_devel() %{expand:
+%{update_desktop_icons}
+}
+
+%define 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}
+exit 0
+}
+
+%define postun_javadoc() %{expand:
+  alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+exit 0
+}
+
+%define 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
+}
+
+%define postun_javadoc_zip() %{expand:
+  alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+exit 0
+}
+
+%define files_jre() %{expand:
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
+%{_datadir}/applications/*policytool%{?1}.desktop
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
+}
+
+
+%define files_jre_headless() %{expand:
+%defattr(-,root,root,-)
+%dir %{_sysconfdir}/.java/.systemPrefs
+%dir %{_sysconfdir}/.java
+%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
+%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}
+%{_jvmdir}/%{jrelnk -- %{?1}}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
+%dir %{_jvmdir}/%{jredir -- %{?1}}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
+%{_jvmdir}/%{jredir -- %{?1}}/bin/java
+%{_jvmdir}/%{jredir -- %{?1}}/bin/%{alt_java_name}
+%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
+%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
+%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd
+%{_jvmdir}/%{jredir -- %{?1}}/bin/pack200
+%{_jvmdir}/%{jredir -- %{?1}}/bin/rmid
+%{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry
+%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool
+%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv
+%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs
+%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
+%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.fips.cfg
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
+%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.fips.cfg
+%ifarch %{jit_arches}
+%ifnarch %{power64}
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa
+%endif
+%endif
+%dir %{etcjavasubdir}
+%dir %{etcjavadir -- %{?1}}
+%dir %{etcjavadir -- %{?1}}/lib
+%dir %{etcjavadir -- %{?1}}/lib/security
+%{etcjavadir -- %{?1}}/lib/security/cacerts
+%dir %{etcjavadir -- %{?1}}/lib/security/policy
+%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited
+%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
+%{_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
+%ifarch %{sa_arches}
+%{_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
+%{_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/cldrdata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
+%ifarch %{jfr_arches}
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc
+%endif
+
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext
+%ifarch %{jfr_arches}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr
+%endif
+}
+
+%define files_devel() %{expand:
+%defattr(-,root,root,-)
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/LICENSE
+%license %{_jvmdir}/%{sdkdir -- %{?1}}/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/%{alt_java_name}
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
+%ifarch %{jfr_arches}
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr
+%endif
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc
+%{_jvmdir}/%{sdkdir -- %{?1}}/include/*
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
+%if %{with_systemtap}
+%{_jvmdir}/%{sdkdir -- %{?1}}/tapset
+%endif
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
+%ifarch %{sa_arches}
+%{_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
+%{_datadir}/applications/*jconsole%{?1}.desktop
+%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
+%if %{with_systemtap}
+%dir %{tapsetroot}
+%dir %{tapsetdirttapset}
+%dir %{tapsetdir}
+%{tapsetdir}/*%{_arch}%{?1}.stp
+%endif
+}
+
+%define files_demo() %{expand:
+%defattr(-,root,root,-)
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_src() %{expand:
+%defattr(-,root,root,-)
+%doc README.md
+%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
+}
+
+%define files_javadoc() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_javadoc_zip() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_accessibility() %{expand:
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
+}
+
+# not-duplicated requires/provides/obsoletes for normal/debug packages
+%define java_rpo() %{expand:
+Requires: fontconfig%{?_isa}
+Requires: xorg-x11-fonts-Type1
+# Require libXcomposite explicitly since it's only dynamically loaded
+# at runtime. Fixes screenshot issues. See JDK-8150954.
+Requires: libXcomposite%{?_isa}
+# Requires rest of java
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# for java-X-openjdk package's desktop binding
+%if 0%{?fedora} || 0%{?rhel} >= 8
+Recommends: gtk2%{?_isa}
+%endif
+
+Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+
+# Standard JPackage base provides
+Provides: jre = %{javaver}%{?1}
+Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java%{?1} = %{epoch}:%{javaver}
+}
+
+%define java_headless_rpo() %{expand:
+# Require /etc/pki/java/cacerts
+Requires: ca-certificates
+# Require javapackages-filesystem for ownership of /usr/lib/jvm/
+Requires: javapackages-filesystem
+# Require zoneinfo data provided by tzdata-java subpackage.
+# 2020b required as of JDK-8254177 in October CPU
+Requires: tzdata-java >= 2020b
+# libsctp.so.1 is being `dlopen`ed on demand
+Requires: lksctp-tools%{?_isa}
+# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it,
+# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
+# considered as regression
+Requires: copy-jdk-configs >= 3.3
+OrderWithRequires: copy-jdk-configs
+# for printing support
+Requires: cups-libs
+# for FIPS PKCS11 provider
+Requires: nss
+# Post requires alternatives to install tool alternatives
+Requires(post):   %{alternatives_requires}
+# in version 1.7 and higher for --family switch
+Requires(post):   chkconfig >= 1.7
+# Postun requires alternatives to uninstall tool alternatives
+Requires(postun): %{alternatives_requires}
+# in version 1.7 and higher for --family switch
+Requires(postun):   chkconfig >= 1.7
+# for optional support of kernel stream control, card reader and printing bindings
+%if 0%{?fedora} || 0%{?rhel} >= 8
+Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
+%endif
+
+# Standard JPackage base provides
+Provides: jre-headless%{?1} = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-headless%{?1} = %{epoch}:%{javaver}
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+Provides: /usr/bin/jjs
+
+}
+
+%define java_devel_rpo() %{expand:
+# Requires base package
+Requires:         %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install tool alternatives
+Requires(post):   %{alternatives_requires}
+# in version 1.7 and higher for --family switch
+Requires(post):   chkconfig >= 1.7
+# Postun requires alternatives to uninstall tool alternatives
+Requires(postun): %{alternatives_requires}
+# 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}
+Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}
+Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-sdk%{?1} = %{epoch}:%{javaver}
+Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}
+Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}
+Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-devel%{?1} = %{epoch}:%{javaver}
+
+}
+
+
+%define java_demo_rpo() %{expand:
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
+
+}
+
+%define java_javadoc_rpo() %{expand:
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install javadoc alternative
+Requires(post):   %{alternatives_requires}
+# in version 1.7 and higher for --family switch
+Requires(post):   chkconfig >= 1.7
+# Postun requires alternatives to uninstall javadoc alternative
+Requires(postun): %{alternatives_requires}
+# 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}
+Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+}
+
+%define java_src_rpo() %{expand:
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+# Standard JPackage sources provides
+Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
+}
+
+%define java_accessibility_rpo() %{expand:
+Requires: java-atk-wrapper%{?_isa}
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+Provides: java-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
+
+}
+
+# Prevent brp-java-repack-jars from being run
+%global __jar_repack 0
+
+Name:    java-%{javaver}-%{origin}
+Version: %{javaver}.%{updatever}.%{buildver}
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
+# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
+# and this change was brought into RHEL-4. java-1.5.0-ibm packages
+# also included the epoch in their virtual provides. This created a
+# 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: %{origin_nice} %{majorver} Runtime Environment
+Group:   Development/Languages
+
+# 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/
+
+# Shenandoah HotSpot
+# aarch64-port/jdk8u-shenandoah contains an integration forest of
+# OpenJDK 8u, the aarch64 port and Shenandoah
+# To regenerate, use:
+# VERSION=%%{shenandoah_revision}
+# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
+# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
+# where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo}
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
+
+# Custom README for -src subpackage
+Source2:  README.md
+
+# Release notes
+Source7: NEWS
+
+# Use 'icedtea_sync.sh' to update the following
+# They are based on code contained in the IcedTea project (3.x).
+# Systemtap tapsets. Zipped up to keep it small.
+Source8: tapsets-icedtea-%{icedteaver}.tar.xz
+
+# Desktop files. Adapted from IcedTea
+Source9: jconsole.desktop.in
+Source10: policytool.desktop.in
+
+# nss configuration file
+Source11: nss.cfg.in
+
+# Removed libraries that we link instead
+Source12: %{name}-remove-intree-libraries.sh
+
+# Ensure we aren't using the limited crypto policy
+Source13: TestCryptoLevel.java
+
+# Ensure ECDSA is working
+Source14: TestECDSA.java
+
+# nss fips configuration file
+Source15: nss.fips.cfg.in
+
+Source20: repackReproduciblePolycies.sh
+
+# New versions of config files with aarch64 support. This is not upstream yet.
+Source100: config.guess
+Source101: config.sub
+
+# Ensure vendor settings are correct
+Source16: CheckVendor.java
+
+############################################
+#
+# RPM/distribution specific patches
+#
+# This section includes patches specific to
+# Fedora/RHEL which can not be upstreamed
+# either in their current form or at all.
+############################################
+
+# Accessibility patches
+# Ignore AWTError when assistive technologies are loaded 
+Patch1:   rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
+# Restrict access to java-atk-wrapper classes
+Patch3:   rh1648644-java_access_bridge_privileged_security.patch
+# Turn on AssumeMP by default on RHEL systems
+Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
+# RH1648249: Add PKCS11 provider to java.security
+Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies except LEGACY
+Patch1003: rh1582504-rsa_default_for_keytool.patch
+
+# FIPS support patches
+# RH1655466: Support RHEL FIPS mode using SunPKCS11 provider
+Patch1001: rh1655466-global_crypto_and_fips.patch
+# RH1760838: No ciphersuites available for SSLSocket in FIPS mode
+Patch1002: rh1760838-fips_default_keystore_type.patch
+# RH1860986: Disable TLSv1.3 with the NSS-FIPS provider until PKCS#11 v3.0 support is available
+Patch1004: rh1860986-disable_tlsv1.3_in_fips_mode.patch
+# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess
+Patch1005: rh1906862-always_initialise_configurator_access.patch
+
+#############################################
+#
+# Upstreamable patches
+#
+# This section includes patches which need to
+# be reviewed & pushed to the current development
+# tree of OpenJDK.
+#############################################
+# PR2737: Allow multiple initialization of PKCS11 libraries
+Patch5: pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync with IcedTea 2.x)
+Patch504: rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
+# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543: Arrange font actions
+Patch512: rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
+# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line endings
+Patch523: pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
+# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
+Patch528: pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
+# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
+Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
+# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
+Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+# PR3655: Allow use of system crypto policy to be disabled by the user
+Patch401: pr3655-toggle_system_crypto_policy.patch
+# RH1868759: FIPS: Ciphers remain in broken state (unusable), after being supplied with wrongly sized buffer
+Patch540: rh1868759-pkcs11_cancel_on_failure.patch
+# enable build of speculative store bypass hardened alt-java
+Patch600: rh1750419-redhat_alt_java.patch
+
+#############################################
+#
+# Arch-specific upstreamable patches
+#
+# This section includes patches which need to
+# be reviewed & pushed upstream and are specific
+# to certain architectures. This usually means the
+# current OpenJDK development branch, but may also
+# include other trees e.g. for the AArch64 port for
+# OpenJDK 8u.
+#############################################
+# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
+Patch103: pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
+# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations (-mstackrealign workaround)
+Patch105: jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
+# S390 ambiguous log2_intptr calls
+Patch107: s390-8214206_fix.patch
+
+#############################################
+#
+# Patches which need backporting to 8u
+#
+# This section includes patches which have
+# been pushed upstream to the latest OpenJDK
+# development tree, but need to be backported
+# to OpenJDK 8u.
+#############################################
+# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
+# This fixes printf warnings that lead to build failure with -Werror=format-security from optflags
+Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
+# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+Patch571: jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
+# 8143245, PR3548: Zero build requires disabled warnings
+Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
+# s390: JDK-8203030, Type fixing for s390
+Patch102: jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
+# 8035341: Allow using a system installed libpng
+Patch202: jdk8035341-allow_using_system_installed_libpng.patch
+# 8042159: Allow using a system-installed lcms2
+Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
+Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
+# JDK-8195607, PR3776, RH1760437: sun/security/pkcs11/Secmod/TestNssDbSqlite.java failed with "NSS initialization failed" on NSS 3.34.1
+Patch580: jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch
+
+#############################################
+#
+# Patches appearing in 8u282
+#
+# This section includes patches which are present
+# in the listed OpenJDK 8u release and should be
+# able to be removed once that release is out
+# and used by this RPM.
+#############################################
+
+#############################################
+#
+# Patches ineligible for 8u
+#
+# This section includes patches which are present
+# upstream, but ineligible for upstream 8u backport.
+#############################################
+# 8043805: Allow using a system-installed libjpeg
+Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
+
+#############################################
+#
+# Shenandoah fixes
+#
+# This section includes patches which are
+# specific to the Shenandoah garbage collector
+# and should be upstreamed to the appropriate
+# trees.
+#############################################
+
+#############################################
+#
+# Non-OpenJDK fixes
+#
+# This section includes patches to code other
+# that from OpenJDK.
+#############################################
+
+#############################################
+#
+# Dependencies
+#
+#############################################
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: alsa-lib-devel
+BuildRequires: binutils
+BuildRequires: cups-devel
+BuildRequires: desktop-file-utils
+# elfutils only are OK for build without AOT
+BuildRequires: elfutils-devel
+BuildRequires: fontconfig-devel
+BuildRequires: freetype-devel
+BuildRequires: giflib-devel
+BuildRequires: gcc-c++
+BuildRequires: gdb
+BuildRequires: lcms2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+BuildRequires: libxslt
+BuildRequires: libX11-devel
+BuildRequires: libXext-devel
+BuildRequires: libXi-devel
+BuildRequires: libXinerama-devel
+BuildRequires: libXrender-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: zip
+BuildRequires: unzip
+# Use OpenJDK 7 where available (on RHEL) to avoid
+# having to use the rhel-7.x-java-unsafe-candidate hack
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+# Require a boot JDK which doesn't fail due to RH1482244
+BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
+%else
+BuildRequires: java-1.8.0-openjdk-devel
+%endif
+# Zero-assembler build requirement
+%ifnarch %{jit_arches}
+BuildRequires: libffi-devel
+%endif
+# 2020b required as of JDK-8254177 in October CPU
+BuildRequires: tzdata-java >= 2020b
+# Earlier versions have a bug in tree vectorization on PPC
+BuildRequires: gcc >= 4.8.3-8
+
+%if %{with_systemtap}
+BuildRequires: systemtap-sdt-devel
+%endif
+
+# this is always built, also during debug-only build
+# when it is built in debug-only this package is just placeholder
+%{java_rpo %{nil}}
+
+%description
+The %{origin_nice} %{majorver} runtime environment.
+
+%if %{include_debug_build}
+%package slowdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
+Group:   Development/Languages
+
+%{java_rpo -- %{debug_suffix_unquoted}}
+%description slowdebug
+The %{origin_nice} %{majorver} runtime environment.
+%{debug_warning}
+%endif
+
+%if %{include_fastdebug_build}
+%package fastdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
+Group:   Development/Languages
+
+%{java_rpo -- %{fastdebug_suffix_unquoted}}
+%description fastdebug
+The %{origin_nice} %{majorver} runtime environment.
+%{fastdebug_warning}
+%endif
+
+%if %{include_normal_build}
+%package headless
+Summary: %{origin_nice} %{majorver} Headless Runtime Environment
+Group:   Development/Languages
+
+%{java_headless_rpo %{nil}}
+
+%description headless
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
+%endif
+
+%if %{include_debug_build}
+%package headless-slowdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on}
+Group:   Development/Languages
+
+%{java_headless_rpo -- %{debug_suffix_unquoted}}
+
+%description headless-slowdebug
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
+%{debug_warning}
+%endif
+
+%if %{include_fastdebug_build}
+%package headless-fastdebug
+Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on}
+Group:   Development/Languages
+
+%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description headless-fastdebug
+The %{origin_nice} %{majorver} runtime environment without audio and video support.
+%{fastdebug_warning}
+%endif
+
+%if %{include_normal_build}
+%package devel
+Summary: %{origin_nice} %{majorver} Development Environment
+Group:   Development/Tools
+
+%{java_devel_rpo %{nil}}
+
+%description devel
+The %{origin_nice} %{majorver} development tools.
+%endif
+
+%if %{include_debug_build}
+%package devel-slowdebug
+Summary: %{origin_nice} %{majorver} Development Environment %{debug_on}
+Group:   Development/Tools
+
+%{java_devel_rpo -- %{debug_suffix_unquoted}}
+
+%description devel-slowdebug
+The %{origin_nice} %{majorver} development tools.
+%{debug_warning}
+%endif
+
+%if %{include_fastdebug_build}
+%package devel-fastdebug
+Summary: %{origin_nice} %{majorver} Development Environment %{fastdebug_on}
+Group:   Development/Tools
+
+%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description devel-fastdebug
+The %{origin_nice} %{majorver} development tools.
+%{fastdebug_warning}
+%endif
+
+%if %{include_normal_build}
+%package demo
+Summary: %{origin_nice} %{majorver} Demos
+Group:   Development/Languages
+
+%{java_demo_rpo %{nil}}
+
+%description demo
+The %{origin_nice} %{majorver} demos.
+%endif
+
+%if %{include_debug_build}
+%package demo-slowdebug
+Summary: %{origin_nice} %{majorver} Demos %{debug_on}
+Group:   Development/Languages
+
+%{java_demo_rpo -- %{debug_suffix_unquoted}}
+
+%description demo-slowdebug
+The %{origin_nice} %{majorver} demos.
+%{debug_warning}
+%endif
+
+%if %{include_fastdebug_build}
+%package demo-fastdebug
+Summary: %{origin_nice} %{majorver} Demos %{fastdebug_on}
+Group:   Development/Languages
+
+%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description demo-fastdebug
+The %{origin_nice} %{majorver} demos.
+%{fastdebug_warning}
+%endif
+
+%if %{include_normal_build}
+%package src
+Summary: %{origin_nice} %{majorver} Source Bundle
+Group:   Development/Languages
+
+%{java_src_rpo %{nil}}
+
+%description src
+The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{majorver}
+class library source code for use by IDE indexers and debuggers.
+%endif
+
+%if %{include_debug_build}
+%package src-slowdebug
+Summary: %{origin_nice} %{majorver} Source Bundle %{for_debug}
+Group:   Development/Languages
+
+%{java_src_rpo -- %{debug_suffix_unquoted}}
+
+%description src-slowdebug
+The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver}
+ class library source code for use by IDE indexers and debuggers, %{for_debug}.
+%endif
+
+%if %{include_fastdebug_build}
+%package src-fastdebug
+Summary: %{origin_nice} %{majorver} Source Bundle %{for_fastdebug}
+Group:   Development/Languages
+
+%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description src-fastdebug
+The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{majorver}
+ class library source code for use by IDE indexers and debuggers, %{for_fastdebug}.
+%endif
+
+%if %{include_normal_build}
+%package javadoc
+Summary: %{origin_nice} %{majorver} API documentation
+Group:   Documentation
+Requires: javapackages-filesystem
+Obsoletes: javadoc-debug
+BuildArch: noarch
+
+%{java_javadoc_rpo %{nil}}
+
+%description javadoc
+The %{origin_nice} %{majorver} API documentation.
+
+%package javadoc-zip
+Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
+Group:   Documentation
+Requires: javapackages-filesystem
+Obsoletes: javadoc-zip-debug
+BuildArch: noarch
+
+%{java_javadoc_rpo %{nil}}
+
+%description javadoc-zip
+The %{origin_nice} %{majorver} API documentation compressed in a single archive.
+
+%package accessibility
+Summary: %{origin_nice} %{majorver} accessibility connector
+
+%{java_accessibility_rpo %{nil}}
+
+%description accessibility
+Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper. This allows
+compatible at-spi2 based accessibility programs to work for AWT and Swing-based
+programs.
+
+Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself is still
+being tuned to be working with accessibility features. There are known issues
+with accessibility on, so please do not install this package unless you really
+need to.
+%endif
+
+%if %{include_debug_build}
+%package accessibility-slowdebug
+Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug}
+
+%{java_accessibility_rpo -- %{debug_suffix_unquoted}}
+
+%description accessibility-slowdebug
+See normal java-%{version}-openjdk-accessibility description.
+%endif
+
+%if %{include_fastdebug_build}
+%package accessibility-fastdebug
+Summary: %{origin_nice} %{majorver} accessibility connector %{for_fastdebug}
+
+%{java_accessibility_rpo -- %{fastdebug_suffix_unquoted}}
+
+%description accessibility-fastdebug
+See normal java-%{version}-openjdk-accessibility description.
+%endif
+
+%prep
+
+# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
+%if 0%{?stapinstall:1}
+  echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}"
+%else
+  %{error:Unrecognised architecture %{_target_cpu}}
+%endif
+
+if [ %{include_normal_build} -eq 0 -o  %{include_normal_build} -eq 1 ] ; then
+  echo "include_normal_build is %{include_normal_build}"
+else
+  echo "include_normal_build is %{include_normal_build}, that is invalid. Use 1 for yes or 0 for no"
+  exit 11
+fi
+if [ %{include_debug_build} -eq 0 -o  %{include_debug_build} -eq 1 ] ; then
+  echo "include_debug_build is %{include_debug_build}"
+else
+  echo "include_debug_build is %{include_debug_build}, that is invalid. Use 1 for yes or 0 for no"
+  exit 12
+fi
+if [ %{include_fastdebug_build} -eq 0 -o  %{include_fastdebug_build} -eq 1 ] ; then
+  echo "include_fastdebug_build is %{include_fastdebug_build}"
+else
+  echo "include_fastdebug_build is %{include_fastdebug_build}, that is invalid. Use 1 for yes or 0 for no"
+  exit 13
+fi
+if [ %{include_debug_build} -eq 0 -a  %{include_normal_build} -eq 0 -a  %{include_fastdebug_build} -eq 0 ] ; then
+  echo "You have disabled all builds (normal,fastdebug,debug). That is a no go."
+  exit 14
+fi
+if [ %{include_normal_build} -eq 0 ] ; then
+  echo "You have disabled the normal build, but this is required to provide docs for the debug build."
+  exit 15
+fi
+
+echo "Update version: %{updatever}"
+echo "Build number: %{buildver}"
+echo "Milestone: %{milestone}"
+%setup -q -c -n %{uniquesuffix ""} -T -a 0
+# https://bugzilla.redhat.com/show_bug.cgi?id=1189084
+prioritylength=`expr length %{priority}`
+if [ $prioritylength -ne 7 ] ; then
+ echo "priority must be 7 digits in total, violated"
+ exit 14
+fi
+# For old patches
+ln -s %{top_level_dir_name} jdk8
+
+cp %{SOURCE2} .
+
+# 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} %{top_level_dir_name}/common/autoconf/build-aux/
+cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
+
+# OpenJDK patches
+
+# Remove libraries that are linked
+sh %{SOURCE12}
+
+# System library fixes
+%patch201
+%patch202
+%patch203
+%patch204
+
+# System security policy fixes
+%patch400
+%patch401
+
+%patch1
+%patch3
+%patch5
+
+# s390 build fixes
+%patch102
+%patch103
+%patch107
+
+# AArch64 fixes
+
+# x86 fixes
+%patch105
+
+# Upstreamable fixes
+%patch502
+%patch504
+%patch512
+%patch523
+%patch528
+%patch571
+%patch574
+%patch580
+%patch539
+%patch540
+
+# RPM-only fixes
+%patch600
+%patch1000
+%patch1001
+%patch1002
+%patch1003
+%patch1004
+%patch1005
+
+# RHEL-only patches
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+%patch534
+%endif
+
+# Shenandoah patches
+
+# Extract systemtap tapsets
+%if %{with_systemtap}
+tar --strip-components=1 -x -I xz -f %{SOURCE8}
+%if %{include_debug_build}
+cp -r tapset tapset%{debug_suffix}
+%endif
+%if %{include_fastdebug_build}
+cp -r tapset tapset%{fastdebug_suffix}
+%endif
+
+
+for suffix in %{build_loop} ; do
+  for file in "tapset"$suffix/*.in; do
+    OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"`
+    sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
+# TODO find out which architectures other than i686 have a client vm
+%ifarch %{ix86}
+    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:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
+    sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
+  done
+done
+# systemtap tapsets ends
+%endif
+
+# Prepare desktop files
+# The _X_ syntax indicates variables that are replaced by make upstream
+# The @X@ syntax indicates variables that are replaced by configure upstream
+for suffix in %{build_loop} ; do
+for file in %{SOURCE9} %{SOURCE10} ; do
+    FILE=`basename $file | sed -e s:\.in$::g`
+    EXT="${FILE##*.}"
+    NAME="${FILE%.*}"
+    OUTPUT_FILE=$NAME$suffix.$EXT
+    sed    -e  "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE
+    sed -i -e  "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
+    sed -i -e  "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE
+    sed -i -e  "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
+    sed -i -e  "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE
+    sed -i -e  "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
+done
+done
+
+# Setup nss.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
+
+# Setup nss.fips.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE15} > nss.fips.cfg
+sed -i -e "s:@NSS_SECMOD@:/etc/pki/nssdb:g" nss.fips.cfg
+
+%build
+# How many CPU's do we have?
+export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
+export NUM_PROC=${NUM_PROC:-1}
+%if 0%{?_smp_ncpus_max}
+# Honor %%_smp_ncpus_max
+[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
+%endif
+
+%ifarch s390x sparc64 alpha %{power64} %{aarch64}
+export ARCH_DATA_MODEL=64
+%endif
+%ifarch alpha
+export CFLAGS="$CFLAGS -mieee"
+%endif
+
+# 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 -Wno-error"
+EXTRA_CPP_FLAGS="%ourcppflags"
+
+%ifarch %{power64} ppc
+# fix rpmlint warnings
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
+%endif
+EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes"
+export EXTRA_CFLAGS EXTRA_ASFLAGS
+
+(cd %{top_level_dir_name}/common/autoconf
+ bash ./autogen.sh
+)
+
+function buildjdk() {
+    local outputdir=${1}
+    local buildjdk=${2}
+    local maketargets=${3}
+    local debuglevel=${4}
+
+    local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
+    # Variable used in hs_err hook on build failures
+    local top_builddir_abs_path=$(pwd)/${outputdir}
+
+    echo "Using output directory: ${outputdir}";
+    echo "Checking build JDK ${buildjdk} is operational..."
+    ${buildjdk}/bin/java -version
+    echo "Using make targets: ${maketargets}"
+    echo "Using debuglevel: ${debuglevel}"
+    echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
+
+    mkdir -p ${outputdir}
+    pushd ${outputdir}
+
+    bash ${top_srcdir_abs_path}/configure \
+%ifarch %{jfr_arches}
+    --enable-jfr \
+%else
+    --disable-jfr \
+%endif
+%ifnarch %{jit_arches}
+    --with-jvm-variants=zero \
+%endif
+    --with-native-debug-symbols=internal \
+    --with-milestone=%{milestone} \
+    --with-update-version=%{updatever} \
+    --with-build-number=%{buildver} \
+    --with-vendor-name="%{oj_vendor}" \
+    --with-vendor-url="%{oj_vendor_url}" \
+    --with-vendor-bug-url="%{oj_vendor_bug_url}" \
+    --with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
+    --with-boot-jdk=${buildjdk} \
+    --with-debug-level=${debuglevel} \
+    --enable-unlimited-crypto \
+    --with-zlib=system \
+    --with-libjpeg=system \
+    --with-giflib=system \
+    --with-libpng=system \
+    --with-lcms=system \
+    --with-stdc++lib=dynamic \
+    --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
+    --with-extra-cflags="$EXTRA_CFLAGS" \
+    --with-extra-asflags="$EXTRA_ASFLAGS" \
+    --with-extra-ldflags="%{ourldflags}" \
+    --with-num-cores="$NUM_PROC"
+
+    cat spec.gmk
+    cat hotspot-spec.gmk
+
+    make \
+	JAVAC_FLAGS=-g \
+	LOG=trace \
+	SCTP_WERROR= \
+	${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false )
+
+    # the build (erroneously) removes read permissions from some jars
+    # this is a regression in OpenJDK 7 (our compiler):
+    # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+    find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+    chmod ugo+r images/%{jdkimage}/lib/ct.sym
+
+    # remove redundant *diz and *debuginfo files
+    find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
+    find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
+
+    # Build screws up permissions on binaries
+    # https://bugs.openjdk.java.net/browse/JDK-8173610
+    find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
+    find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+
+    popd >& /dev/null
+}
+
+for suffix in %{build_loop} ; do
+if [ "x$suffix" = "x" ] ; then
+  debugbuild=release
+else
+  # change --something to something
+  debugbuild=`echo $suffix  | sed "s/-//g"`
+fi
+
+systemjdk=/usr/lib/jvm/java-openjdk
+builddir=%{buildoutputdir -- $suffix}
+bootbuilddir=boot${builddir}
+
+# Debug builds don't need same targets as release for
+# build speed-up
+maketargets="%{release_targets}"
+if echo $debugbuild | grep -q "debug" ; then
+  maketargets="%{debug_targets}"
+fi
+
+%if %{bootstrap_build}
+buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
+buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
+rm -rf ${bootbuilddir}
+%else
+buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
+%endif
+
+# Install nss.cfg right away as we will be using the JRE above
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+
+# Install nss.cfg right away as we will be using the JRE above
+install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
+
+# Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies)
+install -m 644 nss.fips.cfg $JAVA_HOME/jre/lib/security/
+
+# Use system-wide tzdata
+rm $JAVA_HOME/jre/lib/tzdb.dat
+ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+
+# add alt-java man page
+pushd ${JAVA_HOME}
+echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1
+cat man/man1/java.1 >> man/man1/%{alt_java_name}.1
+popd
+
+# build cycles
+done
+
+%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/%{jdkimage}
+
+# Check unlimited policy has been used
+$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 correct vendor values have been set
+$JAVA_HOME/bin/javac -d . %{SOURCE16}
+$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" %{oj_vendor_url} %{oj_vendor_bug_url}
+
+# Check debug symbols are present and can identify code
+find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib
+do
+  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" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
+
+    # Test FILE symbols. These will most likely be removed by anything that
+    # manipulates symbol tables because it's generally useless. So a nice test
+    # that nothing has messed with symbols
+    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" | 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" | \
+        grep -E "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
+# javaCalls.cpp:58 should map to:
+# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 
+# 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:58
+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'
+
+# 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 check
+done
+
+%install
+STRIP_KEEP_SYMTAB=libjvm*
+
+for suffix in %{build_loop} ; do
+
+# Install the jdk
+pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
+
+# Install jsa directories so we can owe them
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
+
+  # Install main files.
+  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+  cp -a bin include lib src.zip {ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+  cp -a jre/bin jre/lib jre/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+
+%if %{with_systemtap}
+  # Install systemtap support files
+  install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
+  # note, that uniquesuffix  is in BUILD dir in this case
+  cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
+  pushd  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
+   tapsetFiles=`ls *.stp`
+  popd
+  install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
+  for name in $tapsetFiles ; do
+    targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
+    ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name $RPM_BUILD_ROOT%{tapsetdir}/$targetName
+  done
+%endif
+
+  # Remove empty cacerts database
+  rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
+  # Install cacerts symlink needed by some apps which hardcode the path
+  pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
+      ln -sf /etc/pki/java/cacerts .
+  popd
+
+  # Install versioned symlinks
+  pushd $RPM_BUILD_ROOT%{_jvmdir}
+    ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
+  popd
+
+  # Remove javaws man page
+  rm -f man/man1/javaws*
+
+  # Install man pages
+  install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
+  for manpage in man/man1/*
+  do
+    # Convert man pages to UTF8 encoding
+    iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
+    mv -f $manpage.tmp $manpage
+    install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
+      $manpage .1)-%{uniquesuffix -- $suffix}.1
+  done
+
+  # Install demos and samples.
+  cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+  mkdir -p sample/rmi
+  if [ ! -e sample/rmi/java-rmi.cgi ] ; then 
+    # hack to allow --short-circuit on install
+    mv bin/java-rmi.cgi sample/rmi
+  fi
+  cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+
+popd
+
+if ! echo $suffix | grep -q "debug" ; then
+  # Install Javadoc documentation
+  install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
+  cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
+  built_doc_archive=jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip
+  cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive  $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+fi
+
+# Install release notes
+commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
+install -d -m 755 ${commondocdir}
+cp -a %{SOURCE7} ${commondocdir}
+
+# Install icons and menu entries
+for s in 16 24 32 48 ; do
+  install -D -p -m 644 \
+    %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+    $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
+done
+
+# Install desktop files
+install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
+for e in jconsole$suffix policytool$suffix ; do
+    desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
+        --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
+done
+
+# Install /etc/.java/.systemPrefs/ directory
+# See https://bugzilla.redhat.com/show_bug.cgi?id=741821
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
+
+# FIXME: remove SONAME entries from demo DSOs. See
+# https://bugzilla.redhat.com/show_bug.cgi?id=436497
+
+# Find non-documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+  -type f -o -type l | sort \
+  | grep -v README \
+  | sed 's|'$RPM_BUILD_ROOT'||' \
+  >> %{name}-demo.files"$suffix"
+# Find documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+  -type f -o -type l | sort \
+  | grep README \
+  | sed 's|'$RPM_BUILD_ROOT'||' \
+  | sed 's|^|%doc |' \
+  >> %{name}-demo.files"$suffix"
+# Find documentation directories.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+  -type d | sort \
+  | sed 's|'$RPM_BUILD_ROOT'||' \
+  | sed 's|^|%dir |' \
+  >> %{name}-demo.files"$suffix"
+
+# Create links which leads to separately installed java-atk-bridge and allow configuration
+# links points to java-atk-wrapper - an dependence
+  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}
+    ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
+  popd
+  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext
+     ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar  java-atk-wrapper.jar
+  popd
+  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/
+    echo "#Config file to  enable java-atk-wrapper" > accessibility.properties
+    echo "" >> accessibility.properties
+    echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties
+    echo "" >> accessibility.properties
+  popd
+
+
+bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
+# https://bugzilla.redhat.com/show_bug.cgi?id=1183793
+touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security
+
+# moving config files to /etc
+mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
+mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
+for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar lib/security/policy/unlimited/local_policy.jar lib/security/policy/limited/US_export_policy.jar lib/security/policy/limited/local_policy.jar lib/security/java.policy lib/security/java.security lib/security/blacklisted.certs lib/logging.properties lib/calendars.properties lib/security/nss.cfg lib/security/nss.fips.cfg ; do
+  mv      $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file   $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
+  ln -sf  %{etcjavadir -- $suffix}/$file                          $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
+done
+
+# stabilize permissions
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ; 
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ; 
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ; 
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ; 
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ; 
+
+# end, dual install
+done
+
+%if %{include_normal_build}
+# intentionally only for non-debug
+%pretrans headless -p <lua>
+-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+-- see https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
+-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
+-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction  and so is
+-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
+-- whether copy-jdk-configs is installed or not. If so, then configs are copied
+-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
+local posix = require "posix"
+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 already installed and NOT in transaction. Using.")
+  end;
+  package.path = package.path .. ";" .. SOURCE2
+  else
+    if (debug) then
+      print(SOURCE1 .." does NOT exists")
+      print(SOURCE2 .." does NOT exists")
+      print("No config files will be copied")
+    end
+  return
+  end
+end
+-- run content of included file with fake args
+arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"}
+require "copy_jdk_configs.lua"
+
+%post
+%{post_script %{nil}}
+
+%post headless
+%{post_headless %{nil}}
+
+%postun
+%{postun_script %{nil}}
+
+%postun headless
+%{postun_headless %{nil}}
+
+%posttrans
+%{posttrans_script %{nil}}
+
+%post devel
+%{post_devel %{nil}}
+
+%postun devel
+%{postun_devel %{nil}}
+
+%posttrans  devel
+%{posttrans_devel %{nil}}
+
+%post javadoc
+%{post_javadoc %{nil}}
+
+%postun javadoc
+%{postun_javadoc %{nil}}
+
+%post javadoc-zip
+%{post_javadoc_zip %{nil}}
+
+%postun javadoc-zip
+%{postun_javadoc_zip %{nil}}
+%endif
+
+%if %{include_debug_build}
+%post slowdebug
+%{post_script -- %{debug_suffix_unquoted}}
+
+%post headless-slowdebug
+%{post_headless -- %{debug_suffix_unquoted}}
+
+%postun slowdebug
+%{postun_script -- %{debug_suffix_unquoted}}
+
+%postun headless-slowdebug
+%{postun_headless -- %{debug_suffix_unquoted}}
+
+%posttrans slowdebug
+%{posttrans_script -- %{debug_suffix_unquoted}}
+
+%post devel-slowdebug
+%{post_devel -- %{debug_suffix_unquoted}}
+
+%postun devel-slowdebug
+%{postun_devel -- %{debug_suffix_unquoted}}
+
+%posttrans  devel-slowdebug
+%{posttrans_devel -- %{debug_suffix_unquoted}}
+
+%endif
+
+%if %{include_fastdebug_build}
+%post fastdebug
+%{post_script -- %{fastdebug_suffix_unquoted}}
+
+%post headless-fastdebug
+%{post_headless -- %{fastdebug_suffix_unquoted}}
+
+%postun fastdebug
+%{postun_script -- %{fastdebug_suffix_unquoted}}
+
+%postun headless-fastdebug
+%{postun_headless -- %{fastdebug_suffix_unquoted}}
+
+%posttrans fastdebug
+%{posttrans_script -- %{fastdebug_suffix_unquoted}}
+
+%post devel-fastdebug
+%{post_devel -- %{fastdebug_suffix_unquoted}}
+
+%postun devel-fastdebug
+%{postun_devel -- %{fastdebug_suffix_unquoted}}
+
+%posttrans  devel-fastdebug
+%{posttrans_devel -- %{fastdebug_suffix_unquoted}}
+
+%endif
+
+%if %{include_normal_build}
+%files
+# main package builds always
+%{files_jre %{nil}}
+%else
+%files
+# placeholder
+%endif
+
+
+%if %{include_normal_build}
+%files headless
+# important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+# all config/noreplace files (and more) have to be declared in pretrans. See pretrans
+%{files_jre_headless %{nil}}
+
+%files devel
+%{files_devel %{nil}}
+
+%files demo -f %{name}-demo.files
+%{files_demo %{nil}}
+
+%files src
+%{files_src %{nil}}
+
+%files javadoc
+%{files_javadoc %{nil}}
+
+# This puts a huge documentation file in /usr/share
+# It is now architecture-dependent, as eg. AOT and Graal are now x86_64 only
+# same for debug variant
+%files javadoc-zip
+%{files_javadoc_zip %{nil}}
+
+%files accessibility
+%{files_accessibility %{nil}}
+%endif
+
+%if %{include_debug_build}
+%files slowdebug
+%{files_jre -- %{debug_suffix_unquoted}}
+
+%files headless-slowdebug
+%{files_jre_headless -- %{debug_suffix_unquoted}}
+
+%files devel-slowdebug
+%{files_devel -- %{debug_suffix_unquoted}}
+
+%files demo-slowdebug -f %{name}-demo.files-slowdebug
+%{files_demo -- %{debug_suffix_unquoted}}
+
+%files src-slowdebug
+%{files_src -- %{debug_suffix_unquoted}}
+
+%files accessibility-slowdebug
+%{files_accessibility -- %{debug_suffix_unquoted}}
+%endif
+
+%if %{include_fastdebug_build}
+%files fastdebug
+%{files_jre -- %{fastdebug_suffix_unquoted}}
+
+%files headless-fastdebug
+%{files_jre_headless -- %{fastdebug_suffix_unquoted}}
+
+%files devel-fastdebug
+%{files_devel -- %{fastdebug_suffix_unquoted}}
+
+%files demo-fastdebug -f %{name}-demo.files-fastdebug
+%{files_demo -- %{fastdebug_suffix_unquoted}}
+
+%files src-fastdebug
+%{files_src -- %{fastdebug_suffix_unquoted}}
+
+%files accessibility-fastdebug
+%{files_accessibility -- %{fastdebug_suffix_unquoted}}
+%endif
+
+%changelog
+* Wed Feb 17 2021 Stephan Bergmann <sbergman@redhat.com> - 1:1.8.0.282.b08-4
+- Resolves: rhbz#1896014 Hardcode /usr/sbin/alternatives for Flatpak builds
+
+* Sun Jan 17 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b08-3
+- Cleanup package descriptions and version number placement.
+- Resolves: rhbz#1908967
+
+* Sun Jan 17 2021 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.282.b08-3
+- Fix typo in variable
+- Resolves: rhbz#1908967
+
+* Sun Jan 17 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b08-2
+- Add explicit runtime dependency on NSS for the PKCS11 provider in FIPS mode
+- Resolves: rhbz#1913868
+
+* Fri Jan 15 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b08-1
+- Update to aarch64-shenandoah-jdk8u282-b08 (GA)
+- Update release notes for 8u282-b08.
+- Resolves: rhbz#1908967
+
+* Fri Jan 15 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b07 (EA)
+- Update release notes for 8u282-b07.
+- Fix placement issue in release notes, caught by comparing with vanilla version.
+- Resolves: rhbz#1903904
+
+* Wed Jan 13 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b06-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b06 (EA)
+- Update release notes for 8u282-b06.
+- Resolves: rhbz#1903904
+
+* Mon Jan 11 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b05 (EA)
+- Update release notes for 8u282-b05 and make some minor corrections.
+- Resolves: rhbz#1903904
+
+* Wed Jan 06 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b04 (EA)
+- Update release notes for 8u282-b04.
+- Remove upstreamed patch PR3519
+- Resolves: rhbz#1903904
+
+* Sat Jan 02 2021 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b03 (EA)
+- Update release notes for 8u282-b03.
+- Resolves: rhbz#1903904
+
+* Fri Dec 18 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b02-0.2.ea
+- Move setup of JavaSecuritySystemConfiguratorAccess to Security class so it always occurs.
+- Resolves: rhbz#1906862
+
+* Wed Dec 16 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b02 (EA)
+- Update release notes for 8u282-b02.
+- Resolves: rhbz#1903904
+
+* Mon Dec 07 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.282.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u282-b01 (EA)
+- Update release notes for 8u282-b01.
+- Switch to EA mode.
+- Require tzdata 2020b due to resource changes in JDK-8254177
+- Remove PR3601, covered upstream by JDK-8062808.
+- Remove upstreamed JDK-8197981/PR3548, JDK-8062808/PR3548, JDK-8254177 & JDK-8215727.
+- Extend RH1750419 alt-java fix to include external debuginfo, following JDK-8252395
+- Resolves: rhbz#1903904
+
+* Fri Nov 27 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.275.b01-3
+- added patch600, rh1750419-redhat_alt_java.patch 
+- Replaced alt-java palceholder by real pathced alt-java
+- remove patch529 rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+- remove patch531 rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
+- both suprassed by new patch
+- Resolves: rhbz#1750419
+
+* Fri Nov 06 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.275.b01-2
+- Update to aarch64-shenandoah-jdk8u275-b01 (GA)
+- Update release notes for 8u275.
+- Remove JDK-8223940/RH1892216 backport now included in upstream 8u275.
+- Remove JDK-8236512/RH1889414 backport now included in upstream 8u275.
+- Resolves: rhbz#1895060
+
+* Fri Oct 30 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b10-6
+- Add backport of JDK-8223940: "Private key not supported by chosen signature algorithm" to handle lack of provider RSAPSS support
+- Resolves: rhbz#1892216
+
+* Fri Oct 30 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.272.b10-5
+- Added gating test for ipa server
+- Resolves: rhbz#1892216
+
+* Thu Oct 29 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b10-4
+- Bump release number to build on RHEL 8.4.0 branch.
+- Resolves: rhbz#1876665
+- Resolves: rhbz#1889414
+
+* Wed Oct 21 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b10-3
+- Add backport of JDK-8236512 to correct use of killSession
+- Resolves: rhbz#1889414
+
+* Tue Oct 20 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b10-2
+- Add backport of JDK-8215727: "Restore JFR thread sampler loop to old / previous behaviour"
+- Resolves: rhbz#1876665
+
+* Sat Oct 17 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b10-1
+- Update to aarch64-shenandoah-jdk8u272-b10.
+- Switch to GA mode for final release.
+- Update release notes for 8u272 release.
+- Add backport of JDK-8254177 to update to tzdata 2020b
+- Require tzdata 2020b due to resource changes in JDK-8254177
+- Delay tzdata 2020b dependency until tzdata update has shipped.
+- Adjust JDK-8062808/PR3548 following constantPool.hpp context change in JDK-8243302
+- Adjust PR3593 following g1StringDedupTable.cpp context change in JDK-8240124 & JDK-8244955
+- This tarball is embargoed until 2020-10-20 @ 1pm PT.
+- Resolves: rhbz#1876665
+
+* Thu Oct 15 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b09-0.2.ea
+- Include a test in the RPM to check the build has the correct vendor information.
+- Use 'oj_' prefix on new vendor globals to avoid a conflict with RPM's vendor value.
+- Improve quoting of vendor name
+- Resolves: rhbz#1876665
+
+* Thu Oct 15 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.272.b09-0.2.ea
+- Set vendor property and vendor URLs
+- Made URLs to be preconfigured by OS
+- Resolves: rhbz#1876665
+
+* Wed Oct 14 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b09-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b09 (EA).
+- Resolves: rhbz#1876665
+
+* Tue Oct 13 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b08-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b08 (EA).
+- Resolves: rhbz#1876665
+
+* Tue Oct 13 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b07 (EA).
+- Resolves: rhbz#1876665
+
+* Mon Oct 12 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b06-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b06.
+- Update tarball generation script to use PR3799, following inclusion of JDK-8245468 (TLSv1.3)
+- Remove JDK-8165996/PR3506/RH1760437 & JDK-8251117/RH1860990 as now applied upstream.
+- Replace JDK-8223482/RH1860965 with RH1860986 (disable TLSv1.3 when using the NSS-FIPS provider)
+- Resolves: rhbz#1876665
+
+* Mon Oct 12 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b05-0.3.ea
+- Enable JFR on x86, now we have JDK-8252096: Shenandoah: adjust SerialPageShiftCount for x86_32 and JFR
+- Resolves: rhbz#1876665
+
+* Thu Oct 08 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b05-0.2.ea
+- Update to aarch64-shenandoah-jdk8u272-b05-shenandoah-merge-2020-08-28.
+- Add additional s390 log2_intptr case in shenandoahUtils.cpp introduced by JDK-8245464
+- Resolves: rhbz#1876665
+
+* Thu Oct 08 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b05.
+- Add additional s390 size_t case in g1ConcurrentMarkObjArrayProcessor.cpp introduced by JDK-8057003
+- Resolves: rhbz#1876665
+
+* Wed Oct 07 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b04.
+- Update tarball generation script to use PR3795, following inclusion of JDK-8177334
+- Resolves: rhbz#1876665
+
+* Mon Oct 05 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b03.
+- Resolves: rhbz#1876665
+
+* Mon Oct 05 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b02.
+- Remove JDK-8154313 backport now applied upstream.
+- Change target from 'zip-docs' to 'docs-zip', which is the naming used upstream.
+- Resolves: rhbz#1876665
+
+* Mon Oct 05 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.272.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u272-b01.
+- Switch to EA mode.
+- Add debugging output for build.
+- JFR must now be explicitly disabled when unwanted (e.g. x86), following switch of upstream default.
+- Resolves: rhbz#1876665
+
+* Thu Sep 17 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.265.b01-4
+- Add patch to cancel PKCS#11 operations on failure (RH1868759)
+- Resolves: rhbz#1868759
+
+* Tue Aug 25 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.265.b01-3
+- Add backport of JDK-8251117 to allow key length to be retrieved from PKCS#11 FIPS keys
+- Resolves: rhbz#1860993
+
+* Tue Aug 25 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.265.b01-2
+- Add backport of JDK-8223482 so PKCS#11 FIPS provider does not offer unsupported ciphers.
+- Resolves: rhbz#1860965
+
+* Mon Jul 27 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.265.b01-1
+- Update to aarch64-shenandoah-jdk8u265-b01.
+- Update release notes for 8u265 release.
+- Resolves: rhbz#1860453
+
+* Mon Jul 27 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.262.b10-3
+- ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README moved to fully versioned dirs
+- Resolves: rhbz#1831665
+
+* Thu Jul 16 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b10-2
+- Remove issues in NEWS file duplicated between 8u252 & 8u262 releases.
+- Resolves: rhbz#1838811
+
+* Sun Jul 12 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b10-1
+- Update to aarch64-shenandoah-jdk8u262-b10.
+- Switch to GA mode for final release.
+- Update release notes for 8u262 release.
+- Fix typo in jfr_arches which leads to ppc64 being wrongly excluded.
+- Split JDK-8042159 patch into per-repo patches as upstream.
+- Update JDK-8042159 JDK patch to apply after JDK-8238002 changes to Awt2dLibraries.gmk
+- Resolves: rhbz#1838811
+
+* Sat Jul 11 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b09-0.3.ea
+- Restructure the build so a minimal initial build is then used for the final build (with docs)
+- This reduces pressure on the system JDK and ensures the JDK being built can do a full build
+- Resolves: rhbz#1838811
+
+* Fri Jul 10 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b09-0.2.ea
+- Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03
+- Resolves: rhbz#1838811
+
+* Fri Jul 10 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b09-0.1.ea
+- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures without JFR.
+- Resolves: rhbz#1838811
+
+* Thu Jul 09 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b09-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b09.
+- Resolves: rhbz#1838811
+
+* Wed Jul 08 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b08-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b08.
+- Resolves: rhbz#1838811
+
+* Tue Jul 07 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b07-0.3.ea
+- Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18.
+- Resolves: rhbz#1838811
+
+* Sun Jul 05 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b07-0.2.ea
+- Sync alt-java support with java-11-openjdk version.
+- Resolves: rhbz#1838811
+
+* Sat Jul 04 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.262.b07-0.2.ea
+- Created copy of java as alt-java and adapted alternatives and man pages
+- Resolves: rhbz#1838811
+
+* Fri Jul 03 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b07.
+- Require tzdata 2020a so system tzdata matches resource updates in b07
+- Resolves: rhbz#1838811
+
+* Tue Jun 30 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b06-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b06.
+- Resolves: rhbz#1838811
+
+* Mon Jun 29 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b05-0.4.ea
+- Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04.
+- Resolves: rhbz#1838811
+
+* Mon Jun 29 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b05-0.3.ea
+- Add directories to files directive for demo package.
+- Resolves: rhbz#1649801
+
+* Sun Jun 28 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b05-0.2.ea
+- Use RSA as default for keytool, as DSA is disabled in all crypto policies except LEGACY
+- Resolves: rhbz#1582504
+
+* Sat Jun 27 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b05.
+- Resolves: rhbz#1838811
+
+* Fri Jun 26 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b04.
+- Resolves: rhbz#1838811
+
+* Wed Jun 24 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b03-0.2.ea
+- Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20.
+- Resolves: rhbz#1838811
+
+* Tue Jun 23 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b03.
+- Resolves: rhbz#1838811
+
+* Mon Jun 22 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b02-0.2.ea
+- Introduce jfr_arches for architectures which support JFR.
+- Fix path to jfr.jar.
+- Use sa_arches for libsaproc.so inclusion.
+- Resolves: rhbz#1838811
+
+* Mon Jun 22 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b02-0.2.ea
+- Explicitly list jfr.jar, default.jfc & profile.jfc in the spec file.
+- Resolves: rhbz#1838811
+
+* Sun Jun 21 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b02-0.2.ea
+- Enable JFR in our builds, ahead of upstream default.
+- Only enable JFR for JIT builds, as it is not supported with Zero.
+- Turn off JFR on x86 for now due to assert(SerializePageShiftCount == count) crash.
+- Resolves: rhbz#1838811
+
+* Sun Jun 21 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b02.
+- Resolves: rhbz#1838811
+
+* Sat Jun 20 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.262.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u262-b01.
+- Switch to EA mode.
+- Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR
+- Adjust RH1648644 following context changes due to introduction of JFR packages
+- Add jfr binary to devel package and alternatives set
+- Resolves: rhbz#1838811
+
+* Tue Jun 02 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-7
+- Enable alignment with FIPS crypto policy by default (-Dcom.redhat.fips=false to disable).
+- Resolves: rhbz#1655466
+
+* Mon Jun 01 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-6
+- Use appropriate keystore types when in FIPS mode.
+- Resolves: rhbz#1760838
+
+* Fri May 22 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-5
+- Add support for fastdebug builds on x86_64 only.
+- Drop redundant slowdebug/debug sed invocation on the docs zip filename as it is only now built for non-debug.
+- Resolves: rhbz#1836067
+
+* Wed Apr 22 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-4
+- Bump release number for RHEL 8.3.0.
+- Resolves: rhbz#1810557
+
+* Sun Apr 19 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-3
+- Add release notes.
+- Resolves: rhbz#1810557
+
+* Sun Apr 19 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-2
+- Make use of --with-extra-asflags introduced in jdk8u252-b01.
+- Resolves: rhbz#1810557
+
+* Mon Apr 06 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b09-1
+- Update to aarch64-shenandoah-jdk8u252-b09.
+- Switch to GA mode for final release.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b08-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b08.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b07.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b06-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b06.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b05.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b04.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b03.
+- Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in JDK-8230978
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b02.
+- Resolves: rhbz#1810557
+
+* Wed Apr 01 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.252.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u252-b01.
+- Switch to EA mode.
+- Adjust JDK-8199936/PR3533 patch following JDK-8227397 configure change
+- Resolves: rhbz#1810557
+
+* Fri Mar 27 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-4
+- Need to support noarch for creating source RPMs for non-scratch builds.
+- Resolves: rhbz#1737112
+
+* Tue Mar 24 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-4
+- Introduce stapinstall variable to set SystemTap arch directory correctly (e.g. arm64 on aarch64)
+- Resolves: rhbz#1737112
+
+* Mon Feb 24 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-3
+- Add JDK-8165996/PR3506 & JDK-8195607/PR3776 to support NSS SQLite databases.
+- Resolves: rhbz#1760437
+
+* Sun Feb 23 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-2
+- Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing previous workarounds
+- Resolves: rhbz#1737112
+
+* Sun Feb 23 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-2
+- Sync SystemTap & desktop files with upstream IcedTea release 3.11.0 using new script
+- Resolves: rhbz#1737112
+
+* Wed Jan 15 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b08-1
+- Update to aarch64-shenandoah-jdk8u242-b08.
+- Remove local copies of JDK-8031111 & JDK-8132111 as replaced by upstream versions.
+- Resolves: rhbz#1785753
+
+* Wed Jan 15 2020 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b07-2
+- Add backports of JDK-8031111 & JDK-8132111 to fix TCK issue.
+- Resolves: rhbz#1785753
+
+* Mon Jan 13 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b07-1
+- Update to aarch64-shenandoah-jdk8u242-b07.
+- Switch to GA mode for final release.
+- Remove Shenandoah S390 patch which is now included upstream as JDK-8236829.
+- Resolves: rhbz#1785753
+
+* Sun Jan 05 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u242-b05.
+- Attempt to fix Shenandoah formatting failures on S390, introduced by JDK-8232102.
+- Revise b05 snapshot to include JDK-8236178.
+- Add additional Shenandoah formatting fixes revealed by successful -Wno-error=format run
+- Resolves: rhbz#1785753
+
+* Sat Jan 04 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.242.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u242-b01.
+- Switch to EA mode.
+- Resolves: rhbz#1785753
+
+* Sat Jan 04 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-6
+- Update generate_source_tarball.sh script to use the PR3756 patch and retain the secp256k1 curve.
+- Regenerate source tarball using the updated script and add the -'4curve' suffix.
+- Resolves: rhbz#1746879
+
+* Thu Jan 02 2020 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-5
+- Revert SSBD removal for now, until appropriate messaging has been decided.
+- Resolves: rhbz#1750419
+
+* Tue Dec 24 2019 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-4
+- Remove CVE-2018-3639 mitigation due to performance regression and
+    OpenJDK position on speculative execution vulnerabilities.
+    https://mail.openjdk.java.net/pipermail/vuln-announce/2019-July/000002.html
+- Resolves: rhbz#1750419
+
+* Thu Nov 14 2019 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-3
+- Bump release number for RHEL 8.2.0.
+- Resolves: rhbz#1753423
+
+* Fri Oct 25 2019 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-2
+- Disable FIPS mode support unless com.redhat.fips is set to "true".
+- Resolves: rhbz#1655466
+
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b09-1
+- Update to aarch64-shenandoah-jdk8u232-b09.
+- Switch to GA mode for final release.
+- Remove PR1834/RH1022017 which is now handled by JDK-8228825 upstream.
+- Resolves: rhbz#1753423
+
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b08-0.1.ea
+- Update to aarch64-shenandoah-jdk8u232-b08.
+- Resolves: rhbz#1753423
+
+* Fri Oct 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b05-0.2.ea
+- Update to aarch64-shenandoah-jdk8u232-b05-shenandoah-merge-2019-09-09.
+- Resolves: rhbz#1753423
+
+* Thu Oct 10 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u232-b05.
+- Drop upstreamed patch JDK-8141570/PR3548.
+- Adjust context of JDK-8143245/PR3548 to apply against upstream JDK-8141570.
+- Resolves: rhbz#1753423
+
+* Mon Oct 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.232.b01-0.1.ea
+- Update to aarch64-shenandoah-jdk8u232-b01.
+- Switch to EA mode.
+- Drop JDK-8210761/RH1632174 as now upstream.
+- Drop JDK-8223219 as now upstream.
+- JDK-8226870 removed clhsdb and hdsdb from the JRE bin directory, so we should do likewise.
+- Add alternatives support for these two new SDK binaries.
+- Resolves: rhbz#1753423
+
+* Fri Sep 27 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b10-3
+- SunPKCS11 runtime provider name is a concatenation of "SunPKCS11-" and the name in the config file.
+- Change nss.fips.cfg config name to "NSS-FIPS" to avoid confusion with nss.cfg.
+- Resolves: rhbz#1750752
+
+* Wed Aug 21 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b10-2
+- nss.fips.cfg needs to be moved to %%{etcjavadir} and symlinked into the JDK, like nss.cfg
+- Resolves: rhbz#1655466
+
+* Thu Aug 15 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b10-2
+- Backport FIPS mode patch to java-1.8.0-openjdk, simplifying provider removal.
+- Resolves: rhbz#1655466
+
+* Thu Aug 15 2019 Martin Balao <mbalao@redhat.com> - 1:1.8.0.222.b10-2
+- Support the FIPS mode crypto policy on RHEL 8.
+- Resolves: rhbz#1655466
+
+* Thu Jul 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b10-1
+- Update to aarch64-shenandoah-jdk8u222-b10.
+- Resolves: rhbz#1724452
+
+* Tue Jul 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b09-2
+- Drop NSS runtime dependencies and patches to link against it.
+- Resolves: rhbz#1678557
+
+* Tue Jul 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b09-1
+- Update to aarch64-shenandoah-jdk8u222-b09.
+- Switch to GA mode for final release.
+- Resolves: rhbz#1724452
+
+* Tue Jul 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b08-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b08.
+- Adjust PR3083/RH134640 to apply after JDK-8182999
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b07-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b07 and Shenandoah merge 2019-06-13.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b06-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b06.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b05-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b05.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b04-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b04.
+- Drop remaining JDK-8210425/RH1632174 patch now AArch64 part is upstream.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b03-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b03.
+- Drop 8210425 patches applied upstream. Still need to add AArch64 version in aarch64/shenandoah-jdk8u.
+- Re-generate JDK-8141570 & JDK-8143245 patches due to 8210425 zeroshark.make changes.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b02-0.1.ea
+- Update to aarch64-shenandoah-jdk8u222-b02.
+- Drop 8064786/PR3599 & 8210416/RH1632174 as applied upstream (8064786 silently in 8176100).
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-2
+- Switch to EA mode
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- fontconfig build requirement should be fontconfig-devel, previously masked by Gtk2+ dependency
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Allow Recommends and Suggests on Fedora platforms too.
+- Resolves: rhbz#1724452
+
+* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Add missing build requirements for libXext-devel and libXrender-devel, previously masked by Gtk2+ dependency.
+- Resolves: rhbz#1724452
+
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Add new tarball to new format sources file.
+- Resolves: rhbz#1724452
+
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Drop unnecessary build requirement on gtk2-devel, as OpenJDK searches for Gtk+ at runtime.
+- Resolves: rhbz#1724452
+
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Make use of Recommends and Suggests dependent on RHEL 8+ environment.
+- Resolves: rhbz#1724452
+
+* Sun Jul 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.222.b01-1
+- Update to aarch64-shenandoah-jdk8u222-b01.
+- Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575.
+- Drop 8171000 & 8197546 as applied upstream.
+- Resolves: rhbz#1724452
+
+* Wed Jul 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-5
+- Obsolete javadoc-debug and javadoc-debug-zip packages via javadoc and javadoc-zip respectively.
+- Resolves: rhbz#1724452
+
+* Wed Jul 03 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.212.b04-5
+- Include 'ea' designator in Release when appropriate.
+- Resolves: rhbz#1724452
+
+* Wed Jul 03 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.212.b04-5
+- Don't produce javadoc/javadoc-zip sub packages for the debug variant build.
+- Don't perform a bootcycle build for the debug variant build.
+- Resolves: rhbz#1724452
+
+* Wed Jul 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-5
+- Handle milestone as variables so we can alter it easily and set the docs zip filename appropriately.
+- Drop unused use_shenandoah_hotspot variable.
+- Resolves: rhbz#1724452
+
+* Fri Jun 14 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-4
+- Update to aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.
+- Update version logic to handle -shenandoah* tag suffix.
+- Drop PR3634 as applied upstream.
+- Adjust 8214206 fix for S390 as BinaryMagnitudeSeq moved to shenandoahNumberSeq.cpp
+- Update 8214206 to use log2_long rather than casting to intptr_t, which may be smaller than size_t.
+- Resolves: rhbz#1688365
+- Resolves: rhbz#1688382
+
+* Thu May 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-3
+- Remove additions to EXTRA_CFLAGS and EXTRA_CPP_FLAGS which are now made by upstream.
+- Resolves: rhbz#1693468
+
+* Thu May 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-2
+- Add JDK-8223219 to avoid -fstack-protector overriding -fstack-protector-strong
+- Resolves: rhbz#1693468
+
+* Thu Apr 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b04-1
+- Update to aarch64-shenandoah-jdk8u212-b04.
+- Resolves: rhbz#1693468
+
+* Thu Apr 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b03-1
+- Update to aarch64-shenandoah-jdk8u212-b03.
+- Resolves: rhbz#1693468
+
+* Thu Apr 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b02-1
+- Add new clhsdb and hsdb binaries.
+- Resolves: rhbz#1693468
+
+* Tue Apr 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.212.b02-1
+- Update to aarch64-shenandoah-jdk8u212-b02.
+- Remove patches included upstream
+  - JDK-8197429/PR3546/RH153662{2,3}
+  - JDK-8184309/PR3596
+  - JDK-8210647/RH1632174
+  - JDK-8029661/PR3642/RH1477159
+  - JDK-8145096/PR3693
+- Re-generate patches
+  - JDK-8203030
+- Add casts to resolve s390 ambiguity in calls to log2_intptr
+- Resolves: rhbz#1693468
+
+* Sun Apr 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.202.b08-1
+- Update to aarch64-shenandoah-jdk8u202-b08.
+- Remove patches included upstream
+  - JDK-8211387/PR3559
+  - JDK-8207057/PR3613
+  - JDK-8165852/PR3468
+  - JDK-8073139/PR1758/RH1191652
+  - JDK-8044235
+  - JDK-8172850/RH1640127
+  - JDK-8209639/RH1640127
+  - JDK-8131048/PR3574/RH1498936
+  - JDK-8164920/PR3574/RH1498936
+- Re-generate patches
+  - JDK-8210647/RH1632174
+- Resolves: rhbz#1693468
+
+* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b13-1
+- Update to aarch64-shenandoah-jdk8u201-b13.
+- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
+- Resolves: rhbz#1693468
+
+* Tue Apr 02 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.201.b09-5
+- Update patch for RH1566890.
+  - Renamed rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639 to
+    rh1566890-CVE_2018_3639-speculative_store_bypass.patch
+  - Added dependent patch,
+    rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
+- Resolves: rhbz#1693468
+
+* Tue Mar 26 2019 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.201.b09-4
+- added gating
+
+* Mon Feb 11 2019 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.201.b09-3
+- removed config declaration from links to config files
+- Resolves: rhbz#1661577
+
+* Thu Feb 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b09-2
+- Fix invalid dates earlier in the ChangeLog.
+- Resolves: rhbz#1661577
+
+* Thu Feb 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b09-2
+- Add PR3655 to allow the system crypto policy to be turned off.
+- Resolves: rhbz#1661577
+
+* Wed Feb 06 2019 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b09-1
+- Add backport of JDK-8145096 (PR3693) to fix undefined behaviour issues on newer GCCs
+- Resolves: rhbz#1661577
+
+* Tue Feb 05 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b09-0
+- Update to aarch64-shenandoah-jdk8u201-b09.
+- Resolves: rhbz#1661577
+
+* Wed Jan 30 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.192.b12-0
+- Update to aarch64-shenandoah-jdk8u192-b12.
+- Remove patches included upstream
+  - JDK-8031668/PR2842
+  - JDK-8148351/PR2842
+  - JDK-6260348/PR3066
+  - JDK-8061305/PR3335/RH1423421
+  - JDK-8188030/PR3459/RH1484079
+  - JDK-8205104/PR3539/RH1548475
+  - JDK-8185723/PR3553
+  - JDK-8186461/PR3557
+  - JDK-8201509/PR3579
+  - JDK-8075942/PR3602
+  - JDK-8203182/PR3603
+  - JDK-8206406/PR3610/RH1597825
+  - JDK-8206425
+  - JDK-8036003
+  - JDK-8201495/PR2415
+  - JDK-8150954/PR2866/RH1176206
+- Re-generate patches (mostly due to upstream build changes)
+  - JDK-8073139/PR1758/RH1191652
+  - JDK-8143245/PR3548 (due to JDK-8202600)
+  - JDK-8197429/PR3546/RH1536622 (due to JDK-8189170)
+  - JDK-8199936/PR3533
+  - JDK-8199936/PR3591
+  - JDK-8207057/PR3613
+  - JDK-8210761/RH1632174 (due to JDK-8207402)
+  - PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509)
+  - PR3593 (due to JDK-8081202)
+  - RH1566890/CVE-2018-3639 (due to JDK-8189170)
+  - RH1649664 (due to JDK-8196516)
+- Add 8160748 for AArch64 which is missing from upstream 8u version.
+- Add port of 8189170 to AArch64 which is missing from upstream 8u version.
+- Resolves: rhbz#1661577
+
+* Mon Jan 28 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b14-1
+- Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64.
+- Resolves: rhbz#1661577
+
+* Thu Jan 24 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b14-0
+- Introduce sa_arches for architectures with sa-jdi.jar and include aarch64
+- Resolves: rhbz#1661577
+
+* Thu Jan 10 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b14-0
+- Update to aarch64-shenandoah-jdk8u191-b14.
+- Adjust JDK-8073139/PR1758/RH1191652 to apply following 8155627 backport.
+- Resolves: rhbz#1661577
+
+* Wed Jan 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b13-0
+- Update to aarch64-shenandoah-jdk8u191-b13.
+- Update tarball generation script in preparation for PR3667/RH1656676 SunEC changes.
+- Use remove-intree-libraries.sh to remove the remaining SunEC code for now.
+- Resolves: rhbz#1661577
+
+* Sat Dec 22 2018 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-12
+- Add backport of JDK-8029661 which adds TLSv1.2 support to the PKCS11 provider.
+- Resolves: rhbz#1661577
+
+* Sat Dec 22 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-11
+- Revise Shenandoah PR3634 patch following upstream discussion.
+- Resolves: rhbz#1661577
+
+* Wed Dec 19 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.191.b12-11
+- Refactor _find_debuginfo_opts -g (global over define)
+- Resolves: rhbz#1661577
+
+* Wed Nov 07 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.191.b12-9
+- headfull suggests of cups, replaced by Requires of cups-libs in headless
+- Resolves: rhbz#1661577
+
+* Wed Nov 07 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-9
+- Note why PR1834/RH1022017 is not suitable to go upstream in its current form.
+- Resolves: rhbz#1661577
+
+* Mon Nov 05 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-9
+- Document patch sections.
+- Resolves: rhbz#1661577
+
+* Mon Nov 05 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-9
+- Fix patch organisation in the spec file:
+-   * Move ECC patches back to upstreamable section
+-   * Move system cacerts & crypto policy patches to upstreamable section
+-   * Merge "Local fixes" and "RPM fixes" which amount to the same thing
+-   * Move system libpng & lcms patches back to 8u upstreamable section
+- Resolves: rhbz#1661577
+
+* Fri Oct 26 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.191.b12-8
+- added Patch583 jdk8172850-rh1640127-01-register_allocator_crash.patch
+- added Patch584 jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
+- Resolves: rhbz#1661577
+
+* Tue Oct 23 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.191.b12-2
+- cups moved to headful package
+- Resolves: rhbz#1633817
+
+* Tue Oct 23 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.191.b12-1
+- updated to aarch64-shenandoah-jdk8u191-b12
+- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be upstreamed
+- create pr3634-fix_shenandoah_for_size_t_on_s390.patch to fix build failure on s390
+- Resolves: rhbz#1633817
+
+* Fri Oct 12 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-7
+- Add patch jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch:
+  - Annother fix for optimization gaps (annocheck issues)
+  - Zero 8u version fix was missing. Hence, only shows up on Zero arches.
+- Resolves: rhbz#1633817
+
+* Tue Oct 09 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b12-0
+- Update to aarch64-shenandoah-jdk8u191-b12.
+- Resolves: rhbz#1633817
+
+* Mon Oct 08 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-6
+- Refreshed upstreamed patches (from 8u202):
+  - jdk8044235-src_zip_should_include_all_sources.patch: src.zip should include all sources.
+  - jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch,
+    jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch,
+    jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch: PPC64LE JVM reporting issues.
+- Moved both patch series to 8u202 sections.
+- Resolves: rhbz#1633817
+
+* Tue Oct 02 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.191.b10-0
+- Update to aarch64-shenandoah-jdk8u191-b10.
+- Drop 8146115/PR3508/RH1463098 applied upstream.
+- Resolves: rhbz#1633817
+
+* Mon Oct 01 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b16-0
+- Add new Shenandoah patch PR3634 as upstream still fails on s390.
+- Resolves: rhbz#1633817
+
+* Mon Oct 01 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b16-0
+- Update to aarch64-shenandoah-jdk8u181-b16.
+- Drop PR3619 & PR3620 Shenandoah patches which should now be fixed upstream.
+- Resolves: rhbz#1633817
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b15-0
+- Move to single OpenJDK tarball build, based on aarch64/shenandoah-jdk8u.
+- Update to aarch64-shenandoah-jdk8u181-b15.
+- Drop 8165489-pr3589.patch which was only applied to aarch64/jdk8u builds.
+- Split ppc64 Shenandoah fix into separate patch file with its own bug ID (PR3620).
+- Update pr3539-rh1548475.patch to apply after 8187045.
+- Resolves: rhbz#1633817
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Remove unneeded functions from ppc shenandoahBarrierSet.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Add missing shenandoahBarrierSet implementation for ppc64{be,le}.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Fix wrong format specifiers in Shenandoah code.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Avoid changing variable types to fix size_t, at least for now.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- More size_t fixes for Shenandoah.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Add additional s390 size_t case for Shenandoah.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Attempt to fix Shenandoah build issues on s390.
+- Resolves: rhbz#1640188
+
+* Mon Oct 1 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181.b13-10
+- Use the Shenandoah HotSpot on all architectures.
+- Resolves: rhbz#1640188
+
+* Mon Oct 01 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-5
+- Add explicit requirement for libXcomposite which is used when performing
+  screenshots from Java.
+- Add explicit BR unzip required for building OpenJDK.
+- Resolves: rhbz#1633817
+
+* Thu Sep 27 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-4
+- Add fixes for optimization gaps (annocheck issues):
+  - 8210761: libjsig is being compiled without optimization
+  - 8210647: libsaproc is being compiled without optimization
+  - 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+  - 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+             8u upstream and aarch64/jdk8u upstream versions.
+- Resolves: rhbz#1633817
+
+* Wed Sep 26 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-3
+- Renamed more patches for clarity:
+  include-all-srcs.patch => jdk8044235-src_zip_should_include_all_sources.patch
+  java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch => jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
+  java-1.8.0-openjdk-rh1191652-jdk.patch => jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
+  java-1.8.0-openjdk-rh1191652-root.patch => jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
+- Resolves: rhbz#1633817
+
+* Tue Sep 18 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b15-2
+- Update(s) from upstreamed patches:
+  - 8036003-dont-add-unnecessary-debug-links.patch =>
+    jdk8036003-add_with_native_debug_symbols_configure_flag.patch
+  - rh1176206-jdk.patch =>
+    jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch =>
+    Deleted rh1176206-root.patch as thats no longer needed with
+    upstream 8150954.
+  - Refreshed jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch from upstream.
+  - Refreshed jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch from upstream.
+  - 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
+    jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch and
+    jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch. From JDK 8u
+    review.
+- Renamed pr2842-02.patch => jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch.
+- Renamed spec-only patch:
+  pr3183.patch => pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+- Renamed java-1.8.0-openjdk-size_t.patch =>
+  jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch
+- Moved SunEC provider via system NSS to RPM specific patches section.
+- Moved upstream 8u patches to appropriate sections (8u192/8u202).
+- Removed rh1214835.patch since it's invalid. See:
+  https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
+- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
+- Resolves: rhbz#1633817
+
+* Tue Sep 11 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.181.b15-1
+- fixed unexpanded arch in policy tool desktop file
+- fixed versions (8->1.8.0) of images used in desktop files
+- Resolves: rhbz#1633817
+
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b13-9
+- Adjust system jpeg patch, jdk8043805-allow_using_system_installed_libjpeg.patch, so as to filter
+  -Wl,--as-needed. Resolves RHBZ#1622186.
+- Resolves: rhbz#1633817
+
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.181.b13-8
+- Adjust system NSS patch, pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk8.patch, so as to filter
+  -Wl,--as-needed. Resolves RHBZ#1622186.
+- Resolves: rhbz#1633817
+
+* Wed Aug 01 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.181.b13-7
+- build number moved from release to version
+
+* Mon Jul 23 2018 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-7.b13
+- Remove duplicate -mstackrealign workaround.
+
+* Mon Jul 23 2018 Andrew John Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-6.b13
+- Bump release for previous changeset.
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-6.b13
+- Update to aarch64-jdk8u181-b13 and aarch64-shenandoah-jdk8u181-b13.
+- Remove 8187577/PR3578 now applied upstream.
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-5.b04
+- Update bug status and add missing bug IDs
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-5.b04
+- Add "8146115, PR3508, RH1463098: Improve docker container detection and resource configuration usage"
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-4.b04
+- Add "8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed objects on StubCodeDesc::_list"
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-4.b04
+- Mark bugs now backported to OpenJDK 8u upstream
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-3.b04
+- Backport "8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails"
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-2.b04
+- Backport "8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo"
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-1.b04
+- Add missing bug identifiers for patches unique to RHEL 8 and move to correct sections.
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-1.b04
+- Mark bugs that have been pushed to 8u upstream and are scheduled for a release.
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-1.b04
+- Update to aarch64-jdk8u181-b04 and aarch64-shenandoah-jdk8u181-b04.
+
+* Mon Jul 23 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.181-0.b03
+- Update to aarch64-jdk8u181-b03 and aarch64-shenandoah-jdk8u181-b03.
+- Remove AArch64 patch for PR3458/RH1540242 as applied upstream.
+
+* Sun Jul 22 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-17.b11
+- Fix bad output file name substitution for SystemTap files.
+
+* Wed Jul 18 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-17.b11
+- Update Shenandoah tarball to fix TCK overflow failure.
+
+* Tue Jul 17 2018 Jiri Vanek <jvanek@redhat.com> - 11:1.8.0.172-16.b11
+- added Recommends gtk2 for main package
+- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
+- see RHBZ1598152
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.8.0.172-15.b11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue Jul 10 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-14.b11
+- Fix hook to show hs_err*.log files on failures.
+
+* Mon Jul 02 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-13.b11
+- Fix requires/provides filters for internal libs. See
+  RHBZ#1590796
+
+* Mon Jun 25 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-12.b11
+- Add hook to show hs_err*.log files on failures.
+
+* Wed Jun 20 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-11.b11
+- Expose release/slowdebug builds being produced via conditionals.
+
+* Wed Jun 20 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-11.b11
+- Add additional fix (PR3601) to fix -Wreturn-type failures introduced by 8061651
+- Backport 8064786 (PR3601) to fix -Wreturn-type failure on debug builds.
+- Bring in PR3519 from IcedTea 3.7.0 to fix remaining -Wreturn-type failure on AArch64.
+- Sync with IcedTea 3.8.0 patches to use -Wreturn-type.
+- Add backports of 8141570, 8143245, 8197981 & 8062808.
+- Drop pr3458-rh1540242-zero.patch which is covered by 8143245.
+
+* Wed Jun 20 2018 Jiri Vanek <jvanek@redhat.com> - 11:1.8.0.172-10.b11
+- jsa files changed to 444 to pass rpm verification
+
+* Mon Jun 18 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-9.b11
+- Filter private provides/requires: 'lib.so(SUNWprivate_.*'
+
+* Thu Jun 14 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-8.b11
+- Add provides/requires for libjvm.so back. See RHBZ#1591215.
+
+* Wed Jun 13 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-7.b11
+- Fix reg-ex for filtering private libraries' provides/requires.
+
+* Wed Jun 13 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-6.b11
+- Remove build flags exemption for aarch64 now the platform is more mature and can bootstrap OpenJDK with these flags.
+- Remove duplicate -fstack-protector-strong; it is provided by the RHEL cflags.
+- Add missing changelog credits
+
+* Mon Jun 11 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.172-5.b11
+- Merge changes from RHEL 7
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-5.b11
+- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-5.b11
+- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-5.b11
+- Update Shenandoah tarball to include 2018-05-15 merge.
+- Split PR3458/RH1540242 fix into AArch64 & Zero sections, so former can be skipped on Shenandoah builds.
+- Drop PR3573 patch applied upstream.
+- Restrict 8187577 fix to non-Shenandoah builds, as it's included in the new tarball.
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.172-5.b11
+- Sync with IcedTea 3.8.0.
+- Label architecture-specific fixes with architecture concerned
+- x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations (-mstackrealign workaround)
+- PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+- 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+- 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
+- 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+- 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on linux-powerpcspe
+- PR3559: Use ldrexd for atomic reads on ARMv7.
+- 8187577, PR3578: JVM crash during gc doing concurrent marking
+- 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+- 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+- PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+- 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+
+* Wed Jun 06 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.172-1.b11
+- updated to u172-b11
+- removed patches:
+- patch207 8200556-pr3566.patch
+- patch104 pr3458-rh1540242.patch
+- patch209 8035496-hotspot.patch
+- patch700 pr3573-fix_TCK_crash_with_shenandoah_in_shenandoahsupport_cpp_in_case_of_dead_brnach_in_is_independent.patch
+- fixed issue with atkwrapper wrongly palced broken symlink
+- fixed libjvm path for system tap
+- returned patch104 pr3458-rh1540242.patch
+
+* Mon Jun 04 2018 Jiri Vanek <jvanek@redhat.com> - 1:10.0.1.10-7
+- quoted sed expressions, changed possibly confussing # by @
+- added vendor(origin) into icons
+- removed last trace of relative symlinks
+- added BuildRequires of javapackages-tools to fix build failure after Requires change to javapackages-filesystem
+
+* Fri Jun 01 2018 Jiri Vanek <jvanek@redhat.com>  - 1:1.8.0.171-6.b10
+- aligning with java-openjdk in fedora:
+- removed fx binding
+- config files to etc
+- slowdebug instead simply debug subpackage
+- purged provides
+- many macros renamed
+- typos correction
+- bumped jstack (may be wrong)
+
+* Wed May 09 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.171-5.b10
+- Compile i686 JDK with -mstackrealign.
+
+* Wed Apr 25 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.171-4.b10
+- Enable hardened build unconditionally (also for Zero).
+  Resolves RHBZ#1290936.
+
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.171-3.b10
+- Enable hardened build for Aarch64.
+
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf@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@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@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@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@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@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@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@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@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@gmail.com> - 1:1.8.0.161-8.b14
+- Rebuild (giflib)
+
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1:1.8.0.161-7.b14
+- Escape macros in %%changelog
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@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@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@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@redhat.com> - 1:1.8.0.161-3.b14
+- Include Aarch64 build fixes post January 2018 CPU.
+
+* Mon Jan 29 2018 Severin Gehwolf <sgehwolf@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@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@redhat.com> - 1:1.8.0.161-0.b14
+- updated to u161, rmeoved upstreamed patches
+- removed patch555 8164293-pr3412-rh1459641.patch
+- removed patch550 8175813-pr3394-rh1448880.patch
+- removed patch547 8173941-pr3326.patch
+- removed patch532 8162384-pr3122-rh1358661.patch
+- removed patch535 8153711-pr3313-rh1284948.patch
+- removed patch561 8075484-pr3473-rh1490713.patch
+- removed patch554 8175887-pr3415.patch
+
+* Mon Nov 13 2017 jvanek <jvanek@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@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@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@redhat.com> - 1:1.8.0.144-6.b01
+- added patch540, bug1484079.patch
+
+* Fri Sep 08 2017 Troy Dawson <tdawson@redhat.com> - 1:1.8.0.144-6.b01
+- Cleanup spec file conditionals
+
+* Fri Aug 25 2017 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.144-1.b01
+- Update to aarch64-jdk8u144-b01 and aarch64-shenandoah-jdk8u144-b01.
+- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
+- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
+- get rid of bin/* and lib/*, fixed rhbz1480777
+- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by %%{?1}, all expandable macros parameter preffixed by --
+- get rid of generated filelists all except javafx and demos
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@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@redhat.com> - 1:1.8.0.141-4.b16
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Wed Jul 26 2017 Jiri Vanek <jvanek@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@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@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@redhat.com> - 1:1.8.0.131-7.b12
+- adapted to no longer noarch openjfx-devel
+
+* Wed Jun 07 2017 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.131-6.b12
+- added virtualprovides for javafx
+
+* Wed Jun 07 2017 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.131-3.b12
+- source999 moved to source1
+- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
+- enabled (commented out) system NSS via patch1000, rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+
+* Tue May 09 2017 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.131-1.b12
+- added javafx binding subpackages
+
+* Thu Apr 20 2017 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.121-11.b14
+- sync from rhel, reordered patches, enabled shenanoah on aarch64
+- Patch OpenJDK to check the system cacerts database directly
+- Remove unneeded symlink to the system cacerts database
+- Drop outdated openssl dependency from when the RPM built the cacerts database
+- udpated to latest stable shenandoah hotspot
+
+* Mon Mar 13 2017 jvanek <jvanek@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@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@redhat.com> - 1:1.8.0.121-8.b14
+- rebuild because of NSS
+
+* Tue Feb 21 2017 jvanek <jvanek@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@redhat.com> - 1:1.8.0.121-5.b14
+- patch 536 reordered to 537
+- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup memory limits in container (ie Docker) environments"
+- added patch 538 - 1423421: Javadoc crashes when method name ends with "Property"
+- rhbz#1423751 - added -fno-split-loops worakround sigsew when building with GCC7 (probably bug in jdk's JIT )
+
+* Fri Feb 17 2017 jvanek <jvanek@redhat.com> - 1:1.8.0.121-4.b14
+- added Patch535 and 526
+- tweeked debugsymbols check for sigill
+
+* Wed Jan 25 2017 jvanek <jvanek@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@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@redhat.com> - 1:1.8.0.121-1.b14
+- updated to aarch64-jdk8u121-b14 (from openjdk8-forests/latest-aarch64)
+- updated to aarch64-shenandoah-jdk8u121-b14 (from openjdk8-forests/latest-shenandoah) of hotspot
+- used openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz as new sources
+- used openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz as new sources for hotspot
+- deleted:    8044762-pr2960.patch 8049226-pr2960.patch 8154210.patch 8158260-pr2991-rh1341258.patch 8159244-pr3074.patch
+- adapted java-1.8.0-openjdk-size_t.patch pr1834-rh1022017-reduce_ellipticcurvesextension_to_provide_only_three_nss_supported_nist_curves_23_24_25.patch rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
+- updated from internal (rhel) repo  OPENJDK_URL_DEFAULT=ssh://t...redhat.com//...ty/
+- with custom PR2126=/.../pr2126.patch (removed newly added brainpool curves)
+- withspecial values of PROJECT_NAME="openjdk8-forests", REPO_NAME="latest-aarch64"
+- with correct tag VERSION="aarch64-jdk8u121-b14"
+- and for shenandoah hotspot used custom repo REPO_NAME=latest-shenandoah
+- with correct tag VERSION="aarch64-shenandoah-jdk8u121-b14"
+- complete changes to  generate_source_tarball.sh  update_package.sh NOT commited (willbe regenerated from official repos soon)
+
+* Mon Jan 09 2017 jvanek <jvanek@redhat.com - 1:1.8.0.111-5.b16
+- Added arched dependencies to headless/main package
+
+* Thu Nov 03 2016 jvanek <jvanek@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@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@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@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@redhat.com> - 1:1.8.0.102-2.b14
+- declared check_sum_presented_in_spec and used in prep and check
+- it is checking that latest packed java.security is mentioned in listing
+- @prefix@ in tapsetfiles substitued by prefix as necessary to work with systemtap3 (rhbz1371005)
+
+* Thu Aug 25 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.102-1.b14
+- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new sources for hotspot
+- removed upstreamed patches 519, 520 and 605
+- updated to systemtap 3, removed related patches 300 and 301
+- jjs provides moved to headless
+
+* Mon Aug 01 2016 Andrew Hughes <gnu.andrew@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@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@redhat.com> - 1:1.8.0.101-1.b14
+- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz as new sources for hotspot
+- priority lowered for ine zero digit, tip moved to 999
+- added jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch, pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch, 8159244-pr3074.patch, corba_typo_fix.patch
+renamed: jdk8-archivedJavadoc.patch -> jdk8154313-generated_javadoc_scattered_all_over_the_place.patch, pr2991-rh1341258.patch -> 8158260-pr2991-rh1341258.patch
+- not added 8147771-additional_hunk.patch, already in b14
+
+* Tue Jul 12 2016 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.92-5.b14
+- added Provides: /usr/bin/jjs
+
+* Tue Jun 21 2016 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.92-2.b14
+- family restricted by arch
+
+* Tue Jun 07 2016 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.92-1.b14
+- updated to u92
+- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch, criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
+- 8132051-zero.patch, remove_aarch64_template_for_gcc6.patch
+- jdwpCrash.abrt.patch renamed to 8044762-pr2960.patch
+- httpsFix1329342.patch renamed to pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch
+- added known regresisonos fixes for u92 scheduled for next u (519-525)
+
+* Thu May 19 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.91-7.b14
+- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
+
+* Fri May 13 2016 jvanek <jvanek@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@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@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@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@redhat.com> - 1:1.8.0.91-3.b14
+- included shenandoah support in 64b intel
+
+* Sun Apr 24 2016 Jiri Vanek <jvanek@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@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@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@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@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@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@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@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@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@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@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@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@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@redhat.com> - 1:1.8.0.91-1.b14
+- Update to u91b14.
+- Resolves: rhbz#1325423
+
+* Mon Apr 04 2016 jvanek <jvanek@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@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@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@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@redhat.com> - 1:1.8.0.77-1.b03
+- Update to u77b03.
+
+* Thu Mar 03 2016 Andrew Hughes <gnu.andrew@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@redhat.com> - 1:1.8.0.72-12.b15
+- Use a simple backport for PR2462/8074839.
+- Don't backport the crc check for pack.gz. It's not tested well upstream.
+
+* Mon Feb 29 2016 Andrew Hughes <gnu.andrew@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@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@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@redhat.com> - 1:1.8.0.72-9.b15
+- sync from rhel
+
+* Tue Feb 16 2016 Dan Horák <dan[at]danny.cz> - 1:1.8.0.72-8.b15
+- Refresh s390-java-opts patch
+
+* Tue Feb 16 2016 Severin Gehwolf <sgehwolf@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@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@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@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@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@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@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@redhat.com> - 1:1.8.0.71-1.b15
+- sync with rhel7
+- security update to CPU 19.1.2016 to u71b15
+
+* Tue Dec 15 2015 Jiri Vanek <jvanek@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@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@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@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@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@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@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@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@redhat.com> - 1:1.8.0.65-5.b17
+- added missing md5sums
+- moved to bundeld lcms
+
+* Wed Nov 25 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.65-4.b17
+- debug packages priority lowered by 1
+
+* Wed Nov 25 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.65-3.b17
+- depends on chkconfig >1.7 - added --family support
+
+* Fri Nov 13 2015 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.65-1.b17
+- updated to u65b17
+
+* Mon Nov 09 2015 Jiri Vanek <jvanek@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@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@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@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@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@redhat.com> - 1:1.8.0.60-12.b24
+- updated to freshly released jdk8u60-jdk8u60-b27
+
+* Thu Aug 13 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.60-11.b24
+- another touching attempt to polycies...
+
+* Mon Aug 03 2015 Jiri Vanek <jvanek@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@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@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@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@lists.fedoraproject.org> - 1:1.8.0.60-6.b16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Tue Jun 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.60-5.b16
+- allow build on Linux 4.x kernel
+- refresh s390 size_t patch
+
+* Fri Jun 05 2015 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.60-1.b16
+- updated to u60b16
+- deleted upstreamed patches:
+   patch501 1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+   patch502 1182694_javaApplicationMenuMisbehave.patch
+   patch504 1210739_dns_naming_ipv6_addresses.patch
+   patch402 atomic_linux_zero.inline.hpp.patch
+   patch401 fix_ZERO_ARCHDEF_ppc.patch
+   patch400 ppc_stack_overflow_fix.patch
+   patch204 zero-interpreter-fix.patch
+- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
+
+* Wed May 13 2015 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.45-37.b13
+- added runtime requires for tzdata
+- Remove reference to tz.properties which is no longer used (by gnu.andrew)
+
+* Wed Apr 29 2015 Severin Gehwolf <sgehwolf@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@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@redhat.com> - 1:1.8.0.45-31.b13
+- repacked sources
+
+* Tue Apr 07 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.45-30.b13
+- updated to security u45
+- removed patch6: disable-doclint-by-default.patch
+- added patch d318d83c4e74.patch
+- added  rhbz1206656_fix_current_stack_pointer.patch
+- renamed PStack-808293.patch -> java-1.8.0-openjdk-PStack-808293.patch
+- renamed remove-intree-libraries.sh -> java-1.8.0-openjdk-remove-intree-libraries.sh
+- renamed to preven conflix with jdk7
+
+* Fri Apr 03 2015 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.40-27.b25
+- bumped release. Needed rebuild by itself on arm
+
+* Tue Mar 31 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.40-26.b25
+- Make Zero build-able on ARM32.
+  Resolves: RHBZ#1206656
+
+* Fri Mar 27 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-25.b25
+- refresh s390 patches
+
+* Fri Mar 27 2015 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.40-23.b25
+- Disable various EC algorithms in configuration
+
+* Mon Mar 23 2015 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-22.b25
+- sytemtap made working for dual package
+
+* Tue Mar 03 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.40-21.b25
+- Added compiler no-warn-
+
+* Fri Feb 20 2015 Omair Majid <omajid@redhat.com> - 1:1.8.0.40-21.b25
+- Fix zero interpreter build.
+
+* Thu Feb 12 2015 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.40-20.b25
+- bumped to b25
+- removed upstreamed patch11 hotspot-build-j-directive.patch
+- policies repacked to stop spamming yum update
+- added and used source20 repackReproduciblePolycies.sh
+- added mehanism to force priority size
+
+* Fri Jan 09 2015 Dan Horák <dan[at]danny.cz> - 1:1.8.0.40-19.b12
+- refresh s390 patches
+
+* Fri Nov 07 2014 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.40-16.b12
+- updated both noral and aarch64 tarballs to u40b12
+
+* Mon Nov 03 2014 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.40-13.b02
+- Build against libjpeg-turbo-1.4
+
+* Fri Oct 24 2014 Jiri Vanek <jvanek@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@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@redhat.com)
+- Resolves: rhbz#1125260
+
+* Thu Sep 25 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-11.b02
+- fixing flags usages (thanx to jerboaa!)
+
+* Thu Sep 25 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.20-10.b26
+- sync with rhel7
+
+* Wed Sep 17 2014 Omair Majid <omajid@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@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@redhat.com> - 1:1.8.0.20-7.b26
+- Update aarch64 hotspot to latest upstream version
+
+* Fri Sep 05 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.40-6.b26
+- Use %%{power64} instead of %%{ppc64}.
+
+* Thu Sep 04 2014 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.20-4.b26
+- Use the cpp interpreter on ppc64le.
+
+* Wed Sep 03 2014 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.40-1.b02
+- adapted aarch64 patch
+- removed upstreamed patch  0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-1.b02
+- updated to u40-b02
+- adapted aarch64 patches
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-1.b01
+- updated to u40-b01
+- adapted  rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
+- adapted  jdk8042159-allow_using_system_installed_lcms2.patch
+- removed patch8 set-active-window.patch
+- removed patch9 javadoc-error-jdk-8029145.patch
+- removed patch10 javadoc-error-jdk-8037484.patch
+- removed patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
+
+* Tue Aug 19 2014 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.11-18.b12
+- fixed jstack
+
+* Mon Aug 18 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.11-17.b12
+- added build requires and requires for headles  _datadir/javazi-1.8/tzdb.dat
+- restriction of tzdata provider, so we will be aware of another possible failure
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Thu Aug 14 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.11-15.b12
+- fixed provides/obsolates
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.11-14.b12
+- forced to build in fully versioned dir
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek@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@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@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@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@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@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@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@redhat.com> - 1:1.8.0.11-1.b12
+- updated to security u11b12
+
+* Tue Jun 24 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.5-13.b13
+- Obsolete java-1.7.0-openjdk
+
+* Wed Jun 18 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.5-12.b13
+- Use system tzdata from tzdata-java
+
+* Thu Jun 12 2014 Omair Majid <omajid@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@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@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@redhat.com> - 1:1.8.0.5-9.b13
+- Build with OpenJDK 8
+
+* Wed May 28 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.5-8.b13
+- Backport fix for JDK-8012224
+
+* Wed May 28 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.5-7.b13
+- Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly
+- Resolves rhbz#1101394
+
+* Fri May 23 2014 Dan Horák <dan[at]danny.cz> - 1:1.8.0.5-6.b13
+- Enable build on s390/s390x
+
+* Tue May 20 2014 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.5-4.b13
+- Include all sources in src.zip
+
+* Mon Apr 28 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.5-4.b13
+- Check for debug symbols in libjvm.so
+
+* Thu Apr 24 2014 Brent Baude <baude@us.ibm.com> - 1:1.8.0.5-3.b13
+- Add ppc64le support, bz# 1088344
+
+* Wed Apr 23 2014 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.5-1.b13
+- Instrument build with various sanitizers.
+
+* Tue Apr 15 2014 Omair Majid <omajid@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@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@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@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@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@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@redhat.com> - 1:1.8.0.0-0.32.b132
+- Fix `java -version` output
+
+* Fri Mar 07 2014 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.0-0.30.b132
+- Update to b132
+
+* Thu Mar 06 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.29.b129
+- Fix typo in STRIP_POLICY
+
+* Mon Mar 03 2014 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.0-0.27.b129
+- Fix non-headless libraries
+
+* Tue Feb 25 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.0-0.26.b129
+- Fix incorrect Requires
+
+* Thu Feb 13 2014 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.0-0.26.b129
+- Update to b129.
+
+* Fri Feb 07 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.25.b126
+- Update to candidate Reference Implementation release.
+
+* Fri Jan 31 2014 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.0-0.23.b123
+- Update to jdk8-b123
+
+* Thu Nov 14 2013 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.22.b115
+- Update to jdk8-b115
+
+* Wed Oct 30 2013 Jiri Vanek <jvanek@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@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@redhat.com> - 1:1.8.0.0-0.19.b106
+- Fix with_systemtap conditionals
+
+* Thu Sep 05 2013 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.18.b106
+- Update to jdk8-b106
+
+* Tue Aug 13 2013 Deepak Bhole <dbhole@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@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@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@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@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@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@redhat.com> - 1:1.8.0.0-0.14.b89
+- added patch 301 - removeMswitchesFromx11.patch
+
+* Fri Jul 26 2013 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.0-0.13.b89
+- added new aarch64 tarball
+
+* Thu Jul 25 2013 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.0-0.12.b89
+- ifarchaarch64 then --with-jvm-variants=client
+
+* Tue Jul 23 2013 Jiri Vanek <jvanek@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@redhat.com> - 1:1.8.0.0-0.10.b89
+- moved to latest working osurces
+
+* Tue Jul 23 2013 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.10.b89
+- Moved  to hg clone for generating sources.
+
+* Sun Jul 21 2013 Jiri Vanek <jvanek@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@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@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@redhat.com> - 1:1.8.0.0-0.8.b89
+- Fix incorrect permissions on ct.sym
+
+* Mon May 20 2013 Omair Majid <omajid@redhat.com> - 1:1.8.0.0-0.7.b89
+- Fix incorrect permissions on jars
+
+* Fri May 10 2013 Adam Williamson <awilliam@redhat.com>
+- update scriptlets to follow current guidelines for updating icon cache
+
+* Tue Apr 30 2013 Omair Majid <omajid@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@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@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@redhat.com> 1:1.8.0.0-0.2.b79
+- Fix alternatives priority
+
+* Tue Mar 12 2013 Omair Majid <omajid@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@redhat.com> - 1:1.8.0.0-b53.1
+- Initial build from java-1.7.0-openjdk RPM