The package rpms/java-1.8.0-openjdk-aarch32.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk-aarch32.git/commi....
Change: -%ifarch %{gdb_arches}
Thanks.
Full change: ============
commit 38366531aee9143f6faef1c88e0b75f9474443bf Author: Miro Hrončok miro@hroncok.cz Date: Thu Feb 29 14:35:56 2024 +0100
Retired: Long term failure to build
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d31249d..0000000 --- a/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -/aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz -/aarch32-port-jdk8u-jdk8u102-b14-aarch32-160812.tar.xz -/systemtap-tapset.tar.gz -/systemtap-tapset-3.1.0.tar.xz -/aarch32-port-jdk8u-jdk8u112-b16-aarch32-161109.tar.xz -/aarch32-port-jdk8u-jdk8u121-b13-aarch32-170210.tar.xz -/aarch32-port-jdk8u-jdk8u131-b12-aarch32-170420.tar.xz -/systemtap-tapset-3.4.0pre01.tar.xz -/aarch32-port-jdk8u-jdk8u141-b15-aarch32-170721.tar.xz -/aarch32-port-jdk8u-jdk8u144-b01-aarch32-170809.tar.xz -/aarch32-port-jdk8u-jdk8u152-b17-aarch32-171102.tar.xz -/aarch32-port-jdk8u-jdk8u161-b12-aarch32-180220.tar.xz -/aarch32-port-jdk8u-jdk8u171-b11-aarch32-180511.tar.xz -/aarch32-port-jdk8u-jdk8u181-b13-aarch32-180802.tar.xz -/aarch32-port-jdk8u-jdk8u191-b12-aarch32-181022.tar.xz -/aarch32-port-jdk8u-jdk8u201-b09-aarch32-190124.tar.xz -/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz -/tapsets-icedtea-3.11.0.tar.xz -/aarch32-port-jdk8u-jdk8u212-b04-aarch32-190430.tar.xz -/aarch32-port-jdk8u-jdk8u222-ga-aarch32-190717.tar.xz -/aarch32-port-jdk8u-jdk8u232-ga-aarch32-191016.tar.xz -/aarch32-port-jdk8u-jdk8u242-ga-aarch32-200120.tar.xz -/aarch32-port-jdk8u-jdk8u252-ga-aarch32-20200415.tar.xz -/tapsets-icedtea-3.15.0.tar.xz -/aarch32-port-jdk8u-jdk8u265-ga-aarch32-20200729.tar.xz -/aarch32-port-jdk8u-jdk8u275-ga-aarch32-20201109-4curve.tar.xz -/aarch32-port-jdk8u-jdk8u282-ga-aarch32-20210125-4curve.tar.xz -/aarch32-port-jdk8u-jdk8u292-ga-aarch32-20210423-4curve.tar.xz -/aarch32-port-jdk8u-jdk8u302-ga-aarch32-20210726-4curve.tar.xz -/aarch32-port-jdk8u-jdk8u312-ga-aarch32-20210923-4curve.tar.xz -/openjdk-aarch32-port-jdk8u-jdk8u322-ga-aarch32-20220131-4curve.tar.xz -/openjdk-aarch32-port-jdk8u-jdk8u332-ga-aarch32-20220422-4curve.tar.xz -/openjdk-aarch32-port-jdk8u-jdk8u345-ga-aarch32-20220802-4curve.tar.xz diff --git a/CheckVendor.java b/CheckVendor.java deleted file mode 100644 index e2101cf..0000000 --- a/CheckVendor.java +++ /dev/null @@ -1,57 +0,0 @@ -/* 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/NEWS b/NEWS deleted file mode 100644 index e911b13..0000000 --- a/NEWS +++ /dev/null @@ -1,1652 +0,0 @@ -Key: - -JDK-X - https://bugs.openjdk.java.net/browse/JDK-X -CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY - -New in release OpenJDK 8u322 (2022-01-18): -=========================================== -Live versions of these release notes can be found at: - * https://bitly.com/openjdk8u322 - * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u322.txt - -* Security fixes - - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization - - JDK-8268488: More valuable DerValues - - JDK-8268494: Better inlining of inlined interfaces - - JDK-8268512: More content for ContentInfo - - JDK-8268795: Enhance digests of Jar files - - JDK-8268801: Improve PKCS attribute handling - - JDK-8268813, CVE-2022-21283: Better String matching - - JDK-8269151: Better construction of EncryptedPrivateKeyInfo - - JDK-8269944: Better HTTP transport redux - - JDK-8270392, CVE-2022-21293: Improve String constructions - - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps - - JDK-8270492, CVE-2022-21282: Better resolution of URIs - - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management - - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities - - JDK-8271962: Better TrueType font loading - - JDK-8271968: Better canonical naming - - JDK-8271987: Manifest improved manifest entries - - JDK-8272014, CVE-2022-21305: Better array indexing - - JDK-8272026, CVE-2022-21340: Verify Jar Verification - - JDK-8272236, CVE-2022-21341: Improve serial forms for transport - - JDK-8272272: Enhance jcmd communication - - JDK-8272462: Enhance image handling - - JDK-8273290: Enhance sound handling - - JDK-8273748, CVE-2022-21349: Improve Solaris font rendering - - JDK-8273756, CVE-2022-21360: Enhance BMP image support - - JDK-8273838, CVE-2022-21365: Enhanced BMP processing -* Other changes - - JDK-6801613: Cross-platform pageDialog and printDialog top margin entry broken - - JDK-8011541: [TEST_BUG] closed/javax/swing/plaf/metal/MetalUtils/bug6190373.java fails NPE since 7u25b03 - - JDK-8025430: [TEST_BUG] javax/swing/JEditorPane/5076514/bug5076514.java failed since jdk8b108 - - JDK-8041928: MouseEvent.getModifiersEx gives wrong result - - JDK-8042199: The build of J2DBench via makefile is broken after the JDK-8005402 - - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9) - - JDK-8048021: Remove @version tag in jaxp repo - - JDK-8049348: compiler/intrinsics/bmi/verifycode tests on lzcnt and tzcnt use incorrect assumption about REXB prefix usage - - JDK-8060027: Tests java/beans/XMLEncoder/Test4903007.java and java/beans/XMLEncoder/java_awt_GridBagLayout.java - - JDK-8066588: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java fails to compile - - JDK-8066652: Default TimeZone is GMT not local if user.timezone is invalid on Mac OS - - JDK-8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly failure - - JDK-8077590: windows_i586_6.2-product-c2-runThese8_Xcomp_vm failing after win compiler upgrade - - JDK-8080287: The image of BufferedImage.TYPE_INT_ARGB and BufferedImage.TYPE_INT_ARGB_PRE is blank - - JDK-8140329: [TEST_BUG] test FullScreenAfterSplash.java failed because image was not generated - - JDK-8140472: java/net/ipv6tests/TcpTest.java failed intermittently with java.net.BindException: Address already in use: NET_Bind - - JDK-8147051: StaxEntityResolverWrapper should create StaxXMLInputSource with a resolver indicator - - JDK-8148915: Intermittent failures of bug6400879.java - - JDK-8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism - - JDK-8177393: Result of RescaleOp for 4BYTE_ABGR images may be 25% black - - JDK-8177536: Avoid Apple Peer-to-Peer interfaces in networking tests - - JDK-8182036: Load from initializing arraycopy uses wrong memory state - - JDK-8183369: RFC unconformity of HttpURLConnection with proxy - - JDK-8183543: Aarch64: C2 compilation often fails with "failed spill-split-recycle sanity check" - - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll - - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar - - JDK-8190482: InnocuousThread creation should not require the caller to possess enableContextClassLoaderOverride - - JDK-8190793: Httpserver does not detect truncated request body - - JDK-8196572: Tests ColConvCCMTest.java and MTColConvTest.java fail - - JDK-8202788: Explicitly reclaim cached thread-local direct buffers at thread exit - - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing - - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs - - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021 - - JDK-8225083: Remove Google certificate that is expiring in December 2021 - - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate thread - - JDK-8231254: (fs) Add test for macOS Catalina changes to protect system software - - JDK-8231438: [macOS] Dark mode for the desktop is not supported - - JDK-8232178: MacVolumesTest failed after upgrade to MacOS Catalina - - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may fail - - JDK-8235153: [TESTBUG] [macos 10.15] java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails - - JDK-8236897: Fix the copyright header for pkcs11gcm2.h - - JDK-8237499: JFR: Include stack trace in the ThreadStart event - - JDK-8239886: Minimal VM build fails after JDK-8237499 - - JDK-8261397: Try Catch Method Failing to Work When Dividing An Integer By 0 - - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print" - - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions - - JDK-8273308: PatternMatchTest.java fails on CI - - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817 - - JDK-8273826: Correct Manifest file name and NPE checks - - JDK-8273968: JCK javax_xml tests fail in CI - - JDK-8274407: (tz) Update Timezone Data to 2021c - - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b - - JDK-8274468: TimeZoneTest.java fails with tzdata2021b - - JDK-8274595: DisableRMIOverHTTPTest failed: connection refused - - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST - - JDK-8275766: (tz) Update Timezone Data to 2021e - - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e - - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766 - -Notes on individual issues: -=========================== - -security-libs/java.security: - -JDK-8271434: Removed IdenTrust Root Certificate -=============================================== -The following root certificate from IdenTrust has been removed from -the `cacerts` keystore: - -Alias Name: identrustdstx3 [jdk] -Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co. - -JDK-8272535: Removed Google's GlobalSign Root Certificate -========================================================= -The following root certificate from Google has been removed from the -`cacerts` keystore: - -Alias Name: globalsignr2ca [jdk] -Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2 - -core-libs/java.time: - -JDK-8274857: Update Timezone Data to 2021c -=========================================== -IANA Time Zone Database, on which JDK's Date/Time libraries are based, -has been updated to version 2021c -(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note -that with this update, some of the time zone rules prior to the year -1970 have been modified according to the changes which were introduced -with 2021b. For more detail, refer to the announcement of 2021b -(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html) - -New in release OpenJDK 8u312 (2021-10-19): -=========================================== -Live versions of these release notes can be found at: - * https://bitly.com/openjdk8u312 - * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u312.txt - -* Security fixes - - JDK-8130183, CVE-2021-35588: InnerClasses: VM permits wrong Throw ClassFormatError if InnerClasses attribute's inner_class_info_index is 0 - - JDK-8161016: Strange behavior of URLConnection with proxy - - JDK-8163326, CVE-2021-35550: Update the default enabled cipher suites preference - - JDK-8254967, CVE-2021-35565: com.sun.net.HttpsServer spins on TLS session close - - JDK-8263314: Enhance XML Dsig modes - - JDK-8265167, CVE-2021-35556: Richer Text Editors - - JDK-8265574: Improve handling of sheets - - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit - - JDK-8265776: Improve Stream handling for SSL - - JDK-8266097, CVE-2021-35561: Better hashing support - - JDK-8266103: Better specified spec values - - JDK-8266109: More Resilient Classloading - - JDK-8266115: More Manifest Jar Loading - - JDK-8266137, CVE-2021-35564: Improve Keystore integrity - - JDK-8266689, CVE-2021-35567: More Constrained Delegation - - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic - - JDK-8267712: Better LDAP reference processing - - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking - - JDK-8267735, CVE-2021-35586: Better BMP support - - JDK-8268193: Improve requests of certificates - - JDK-8268199: Correct certificate requests - - JDK-8268506: More Manifest Digests - - JDK-8269618, CVE-2021-35603: Better session identification - - JDK-8269624: Enhance method selection support - - JDK-8270398: Enhance canonicalization - - JDK-8270404: Better canonicalization -* Other changes - - JDK-6847157: java.lang.NullPointerException: HDC for component at sun.java2d.loops.Blit.Blit - - JDK-7146776: deadlock between URLStreamHandler.getHostAddress and file.Handler.openconnection - - JDK-7188942: Remove support of pbuffers in OGL Java2d pipeline - - JDK-8004148: NPE in sun.awt.SunToolkit.getWindowDeactivationTime - - JDK-8022323: [JavaSecurityScanner] review package com.sun.management.* Native methods should be private - - JDK-8027154: [TESTBUG] Test java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails - - JDK-8035001: TEST_BUG: the retry logic in RMID.start() should check that the subprocess hasn't terminated - - JDK-8035424: (reflect) Performance problem in sun.reflect.generics.parser.SignatureParser - - JDK-8042557: compiler/uncommontrap/TestSpecTrapClassUnloading.java fails with: GC triggered before VM initialization completed - - JDK-8054118: java/net/ipv6tests/UdpTest.java failed intermittently - - JDK-8065215: Print warning summary at end of configure - - JDK-8072767: DefaultCellEditor for comboBox creates ActionEvent with wrong source object - - JDK-8079891: Store configure log in $BUILD/configure.log - - JDK-8080082: configure fails if you create an empty directory and then run configure from it - - JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass base: 0x0000000000000000, Narrow klass shift: 3' missing - - JDK-8131062: aarch64: add support for GHASH acceleration - - JDK-8134869: AARCH64: GHASH intrinsic is not optimal - - JDK-8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP address - - JDK-8156584: Initialization race in sun.security.x509.AlgorithmId.get - - JDK-8157404: Unable to read certain PKCS12 keystores from SequenceInputStream - - JDK-8166673: The new implementation of Robot.waitForIdle() may hang - - JDK-8170467: (reflect) Optimize SignatureParser's use of StringBuilders - - JDK-8194246: JVM crashes when calling getStackTrace if stack contains a method that is a member of a very large class - - JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails - - JDK-8202837: PBES2 AlgorithmId encoding error in PKCS12 KeyStore - - JDK-8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error - - JDK-8214418: half-closed SSLEngine status may cause application dead loop - - JDK-8214513: A PKCS12 keystore from Java 8 using custom PBE parameters cannot be read in Java 11 - - JDK-8220786: Create new switch to redirect error reporting output to stdout or stderr - - JDK-8222751: closed/test/jdk/sun/security/util/DerIndefLenConverter/IndefBerPkcs12.java fail - - JDK-8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4 - - JDK-8231222: fix pkcs11 P11_DEBUG guarded native traces - - JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a raw 0xF7 - - JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers - - JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print - - JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93) - - JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files - - JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are present and cpusets.effective_cpus is not available - - JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken. - - JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java test - - JDK-8262000: jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with "OutOfMemoryError: Java heap space" - - JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames() - - JDK-8263311: Watch registry changes for remote printers update instead of polling - - JDK-8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers: getLoggerNames() returned unexpected loggers" - - JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M - - JDK-8265238: [8u] [macos] build failure in OpenJDK8u after JDK-8211301 in older xcode - - JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a container - - JDK-8265978: make test should look for more locations when searching for exit code - - JDK-8266206: Build failure after JDK-8264752 with older GCCs - - JDK-8268103: JNI functions incorrectly return a double after JDK-8265836 - - JDK-8268965: TCP Connection Reset when connecting simple socket to SSL server - - JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark - - JDK-8269763: The JEditorPane is blank after JDK-8265167 - - JDK-8269810: [8u] Update generated_configure.sh after JDK-8250876 backport - - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers - - JDK-8269859: BacktraceBuilder._cprefs needs to be accessed as unsigned short - - JDK-8269882: stack-use-after-scope in NewObjectA - - JDK-8269953: config.log is not in build directory after 8u backport of JDK-8079891 - - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup - - JDK-8271466: StackGap test fails on aarch64 due to "-m64" - - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon - - JDK-8272214: [8u] Build failure after backport of JDK-8248901 - - JDK-8272714: [8u] Build failure after backport of JDK-8248901 with MSVC 2013 -* Shenandoah - - [backport] JDK-8269661: JNI_GetStringCritical does not lock char array - - Re-cast JNI critical strings patch to be Shenandoah-specific - -Notes on individual issues: -=========================== - -core-libs/java.net: - -JDK-8164200: Modified HttpURLConnection behavior when no suitable proxy is found -================================================================================ -The behavior of HttpURLConnection when using a ProxySelector has been -modified with this JDK release. HttpURLConnection used to fall back to -a DIRECT connection attempt if the configured proxy(s) failed to make -a connection. This release introduces a change whereby no DIRECT -connection will be attempted in such a scenario. Instead, the -HttpURLConnection.connect() method will fail and throw an IOException -which occurred from the last proxy tested. - -security-libs/javax.net.ssl: - -JDK-8219551: Updated the Default Enabled Cipher Suites Preference -================================================================= -The preference of the default enabled cipher suites has been -changed. The compatibility impact should be minimal. If needed, -applications can customize the enabled cipher suites and the -preference. For more details, refer to the SunJSSE provider -documentation and the JSSE Reference Guide documentation. - -New in release OpenJDK 8u302 (2021-07-20): -=========================================== -Live versions of these release notes can be found at: - * https://bitly.com/openjdk8u302 - * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u302.txt - -* Security fixes - - JDK-8256157: Improve bytecode assembly - - JDK-8256491: Better HTTP transport - - JDK-8258432, CVE-2021-2341: Improve file transfers - - JDK-8260453: Improve Font Bounding - - JDK-8260960: Signs of jarsigner signing - - JDK-8260967, CVE-2021-2369: Better jar file validation - - JDK-8262380: Enhance XML processing passes - - JDK-8262403: Enhanced data transfer - - JDK-8262410: Enhanced rules for zones - - JDK-8262477: Enhance String Conclusions - - JDK-8262967: Improve Zip file support - - JDK-8264066, CVE-2021-2388: Enhance compiler validation - - JDK-8264079: Improve abstractions - - JDK-8264460: Improve NTLM support -* Other changes - - JDK-6878250: (so) IllegalBlockingModeException thrown when reading from a closed SocketChannel's InputStream - - JDK-6990210: [TEST_BUG] EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java fails on gnome - - JDK-7059970: Test case: javax/imageio/plugins/png/ITXtTest.java is not closing a file - - JDK-7106851: Test should not use System.exit - - JDK-8019470: Changes needed to compile JDK 8 on MacOS with clang compiler - - JDK-8028618: [TEST BUG] javax/swing/JScrollBar/bug4202954/bug4202954.java fails - - JDK-8030123: java/beans/Introspector/Test8027648.java fails - - JDK-8032050: Clean up for java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java - - JDK-8033289: clang: clean up unused function warning - - JDK-8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11 - - JDK-8034857: gcc warnings compiling src/solaris/native/sun/management - - JDK-8035000: clean up ActivationLibrary.DestroyThread - - JDK-8035054: JarFacade.c should not include ctype.h - - JDK-8035287: gcc warnings compiling various libraries files - - JDK-8036095: RMI tests using testlibrary.RMID and testlibrary.JavaVM do not pass through vmoptions - - JDK-8037825: Fix warnings and enable "warnings as errors" in serviceability native libraries - - JDK-8042891: Format issues embedded in macros for two g1 source files - - JDK-8043264: hsdis library not picked up correctly on expected paths - - JDK-8043646: libosxapp.dylib fails to build on Mac OS 10.9 with clang - - JDK-8047939: [TESTBUG] Rewrite test/runtime/8001071/Test8001071.sh - - JDK-8055754: filemap.cpp does not compile with clang - - JDK-8064909: FragmentMetaspace.java got OutOfMemoryError - - JDK-8066508: JTReg tests timeout on slow devices when run using JPRT - - JDK-8066807: langtools/test/Makefile should use -agentvm not -samevm - - JDK-8071374: -XX:+PrintAssembly -XX:+PrintSignatureHandlers crash fastdebug VM with assert(limit == __null || limit <= nm->code_end()) in RelocIterator::initialize - - JDK-8073446: TimeZone getOffset API does not return a dst offset between years 2038-2137 - - JDK-8074835: Resolve disabled warnings for libj2gss - - JDK-8074836: Resolve disabled warnings for libosxkrb5 - - JDK-8075071: [TEST_BUG] TimSortStackSize2.java: OOME: Java heap space: MaxHeap shrinked by MaxRAMFraction - - JDK-8077364: "if( !this )" construct prevents build on Xcode 6.3 - - JDK-8078855: [TEST_BUG] javax/swing/JComboBox/8032878/bug8032878.java fails in WindowsClassicLookAndFeel - - JDK-8081764: [TEST_BUG] Test javax/swing/plaf/aqua/CustomComboBoxFocusTest.java fails on Windows, Solaris Sparcv9 and Linux but passes on MacOSX - - JDK-8129511: PlatformMidi.c:83 uses malloc without malloc header - - JDK-8130308: Too low memory usage in TestPromotionFromSurvivorToTenuredAfterMinorGC.java - - JDK-8130430: [TEST_BUG] remove unnecessary internal calls from javax/swing/JRadioButton/8075609/bug8075609.java - - JDK-8132148: G1 hs_err region dump legend out of sync with region values - - JDK-8132709: [TESTBUG] gc/g1/TestHumongousShrinkHeap.java might fail on embedded - - JDK-8134672: [TEST_BUG] Some tests should check isDisplayChangeSupported - - JDK-8134883: C1 hard crash in range check elimination in Nashorn test262parallel - - JDK-8136592: [TEST_BUG] Fix 2 platform-specific closed regtests for jigsaw - - JDK-8138820: JDK Hotspot build fails with Xcode 7.0.1 - - JDK-8151786: [TESTBUG] java/beans/XMLEncoder/Test4625418.java timed out intermittently - - JDK-8159898: Negative array size in java/beans/Introspector/Test8027905.java - - JDK-8166046: [TESTBUG] compiler/stringopts/TestStringObjectInitialization.java fails with OOME - - JDK-8166724: gc/g1/TestHumongousShrinkHeap.java fails with OOME - - JDK-8172188: JDI tests fail due to "permission denied" when creating temp file - - JDK-8177809: File.lastModified() is losing milliseconds (always ends in 000) - - JDK-8178403: DirectAudio in JavaSound may hang and leak - - JDK-8180478: tools/launcher/MultipleJRE.sh fails on Windows because of extra-'' - - JDK-8183910: gc/arguments/TestAggressiveHeap.java fails intermittently - - JDK-8190332: PngReader throws NegativeArraySizeException/OOM error when IHDR width is very large - - JDK-8190679: java/util/Arrays/TimSortStackSize2.java fails with "Initial heap size set to a larger value than the maximum heap size" - - JDK-8191955: AArch64: incorrect prefetch distance causes an internal error - - JDK-8196092: javax/swing/JComboBox/8032878/bug8032878.java fails - - JDK-8199265: java/util/Arrays/TimSortStackSize2.java fails with OOM - - JDK-8200550: Xcode 9.3 produce warning -Wexpansion-to-defined - - JDK-8202299: Java Keystore fails to load PKCS12/PFX certificates created in WindowsServer2016 - - JDK-8203196: C1 emits incorrect code due to integer overflow in _tableswitch keys - - JDK-8205014: com/sun/jndi/ldap/DeadSSLLdapTimeoutTest.java failed with "Read timed out" - - JDK-8206243: java -XshowSettings fails if memory.limit_in_bytes overflows LONG.max - - JDK-8206925: Support the certificate_authorities extension - - JDK-8209996: [PPC64] Fix JFR profiling - - JDK-8214345: infinite recursion while checking super class - - JDK-8217230: assert(t == t_no_spec) failure in NodeHash::check_no_speculative_types() - - JDK-8217348: assert(thread->is_Java_thread()) failed: just checking - - JDK-8225081: Remove Telia Company CA certificate expiring in April 2021 - - JDK-8225116: Test OwnedWindowsLeak.java intermittently fails - - JDK-8228757: Fail fast if the handshake type is unknown - - JDK-8230428: Cleanup dead CastIP node code in formssel.cpp - - JDK-8231631: sun/net/ftp/FtpURLConnectionLeak.java fails intermittently with NPE - - JDK-8231841: AArch64: debug.cpp help() is missing an AArch64 line for pns - - JDK-8231949: [PPC64, s390]: Make async profiling more reliable - - JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater() - - JDK-8239053: [8u] clean up undefined-var-template warnings - - JDK-8239400: [8u] clean up undefined-var-template warnings - - JDK-8241649: Optimize Character.toString - - JDK-8241829: Cleanup the code for PrinterJob on windows - - JDK-8242565: Policy initialization issues when the denyAfter constraint is enabled - - JDK-8243559: Remove root certificates with 1024-bit keys - - JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node - - JDK-8249142: java/awt/FontClass/CreateFont/DeleteFont.sh is unstable - - JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList - - JDK-8250876: Fix issues with cross-compile on macos - - JDK-8252883: AccessDeniedException caused by delayed file deletion on Windows - - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209) - - JDK-8254631: Better support ALPN byte wire values in SunJSSE - - JDK-8255086: Update the root locale display names - - JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too - - JDK-8256818: SSLSocket that is never bound or connected leaks socket resources - - JDK-8257039: [8u] GenericTaskQueue destructor is incorrect - - JDK-8257670: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java reports leaks - - JDK-8257884: Re-enable sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java as automatic test - - JDK-8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks after JDK-8257884 - - JDK-8257999: Parallel GC crash in gc/parallel/TestDynShrinkHeap.java: new region is not in covered_region - - JDK-8258419: RSA cipher buffer cleanup - - JDK-8258669: fastdebug jvm crashes when do event based tracing for monitor inflation - - JDK-8258753: StartTlsResponse.close() hangs due to synchronization issues - - JDK-8259271: gc/parallel/TestDynShrinkHeap.java still fails "assert(covered_region.contains(new_memregion)) failed: new region is not in covered_region" - - JDK-8259619: C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect - - JDK-8259886: Improve SSL session cache performance and scalability - - JDK-8260029: aarch64: fix typo in verify_oop_array - - JDK-8260236: better init AnnotationCollector _contended_group - - JDK-8260255: C1: LoopInvariantCodeMotion constructor can leave some fields uninitialized - - JDK-8260484: CheckExamples.java / NoJavaLangTest.java fail with jtreg 4.2 - - JDK-8260704: ParallelGC: oldgen expansion needs release-store for _end - - JDK-8261355: No data buffering in SunPKCS11 Cipher encryption when the underlying mechanism has no padding - - JDK-8261867: Backport relevant test changes & additions from JDK-8130125 - - JDK-8262110: DST starts from incorrect time in 2038 - - JDK-8262446: DragAndDrop hangs on Windows - - JDK-8262726: AArch64: C1 StubAssembler::call_RT can corrupt stack - - JDK-8262730: Enable jdk8u MacOS external debug symbols - - JDK-8262864: No debug symbols in image for Windows --with-native-debug-symbols=external - - JDK-8263061: copy wrong unpack200 debuginfo to bin directory after 8252395 - - JDK-8263504: Some OutputMachOpcodes fields are uninitialized - - JDK-8263600: change rmidRunning to a simple lookup - - JDK-8264509: jdk8u MacOS zipped debug symbols won't build - - JDK-8264562: assert(verify_field_bit(1)) failed: Attempting to write an uninitialized event field: type - - JDK-8264640: CMS ParScanClosure misses a barrier - - JDK-8264816: Weak handles leak causes GC to take longer - - JDK-8265462: Handle multiple slots in the NSS Internal Module from SunPKCS11's Secmod - - JDK-8265666: Enable AIX build platform to make external debug symbols - - JDK-8265832: runtime/StackGap/testme.sh fails to compile in 8u - - JDK-8265988: Fix sun/text/IntHashtable/Bug4170614 for JDK 8u - - JDK-8266191: Missing aarch64 parts of JDK-8181872 (C1: possible overflow when strength reducing integer multiply by constant) - - JDK-8266723: JFR periodic events are causing extra allocations - - JDK-8266929: Unable to use algorithms from 3p providers - - JDK-8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash - - JDK-8267426: MonitorVmStartTerminate test timed out on Embedded VM - - JDK-8267545: [8u] Enable Xcode 12 builds on macOS - - JDK-8267689: [aarch64] Crash due to bad shift in indirect addressing mode - - JDK-8268444: keytool -v -list print is incorrect after backport JDK-8141457 - - JDK-8269388: Default build of OpenJDK 8 fails on newer GCCs with warnings as errors on format-overflow - - JDK-8269468: JDK-8269388 breaks the build on older GCCs - - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS -* Shenandoah - - [backport] JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState - - [backport] JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp - - [backport] JDK-8261251: Shenandoah: Use object size for full GC humongous - - [backport] JDK-8261413: Shenandoah: Disable class-unloading in I-U mode - - [backport] JDK-8265239: Shenandoah: Shenandoah heap region count could be off by 1 - - [backport] JDK-8266802: Shenandoah: Round up region size to page size unconditionally - - [backport] JDK-8267561: Shenandoah: Reference processing not properly setup for outside of cycle degenerated GC - - [backport] JDK-8268127: Shenandoah: Heap size may be too small for region to align to large page size - - [backport] JDK-8268699: Shenandoah: Add test for JDK-8268127 - - Shenandoah: Process weak roots during class unloading cycle - -Notes on individual issues: -=========================== - -security-libs/java.security: - -JDK-8256902: Removed Root Certificates with 1024-bit Keys -========================================================= -The following root certificates with weak 1024-bit RSA public keys -have been removed from the `cacerts` keystore: - -Alias Name: thawtepremiumserverca [jdk] -Distinguished Name: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA - -Alias Name: verisignclass2g2ca [jdk] -Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US - -Alias Name: verisignclass3ca [jdk] -Distinguished Name: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US - -Alias Name: verisignclass3g2ca [jdk] -Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US - -Alias Name: verisigntsaca [jdk] -Distinguished Name: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA - -JDK-8261361: Removed Telia Company's Sonera Class2 CA certificate -================================================================= - -The following root certificate have been removed from the cacerts truststore: - -Alias Name: soneraclass2ca -Distinguished Name: CN=Sonera Class2 CA, O=Sonera, C=FI - -security-libs/javax.net.ssl: - -JDK-8257548: Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN) Values -========================================================================================= -Certain TLS ALPN values couldn't be properly read or written by the -SunJSSE provider. This is due to the choice of Strings as the API -interface and the undocumented internal use of the UTF-8 Character Set -which converts characters larger than U+00007F (7-bit ASCII) into -multi-byte arrays that may not be expected by a peer. - -ALPN values are now represented using the network byte representation -expected by the peer, which should require no modification for -standard 7-bit ASCII-based character Strings. However, SunJSSE now -encodes/decodes String characters as 8-bit ISO_8859_1/LATIN-1 -characters. This means applications that used characters above -U+000007F that were previously encoded using UTF-8 may need to either -be modified to perform the UTF-8 conversion, or set the Java security -property `jdk.tls.alpnCharset` to "UTF-8" revert the behavior. - -See the updated guide at -https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/alpn.ht... -for more information. - -JDK-8244460: Support for certificate_authorities Extension -========================================================== -The "certificate_authorities" extension is an optional extension -introduced in TLS 1.3. It is used to indicate the certificate -authorities (CAs) that an endpoint supports and should be used by the -receiving endpoint to guide certificate selection. - -With this JDK release, the "certificate_authorities" extension is -supported for TLS 1.3 in both the client and the server sides. This -extension is always present for client certificate selection, while it -is optional for server certificate selection. - -Applications can enable this extension for server certificate -selection by setting the `jdk.tls.client.enableCAExtension` system -property to `true`. The default value of the property is `false`. - -Note that if the client trusts more CAs than the size limit of the -extension (less than 2^16 bytes), the extension is not enabled. Also, -some server implementations do not allow handshake messages to exceed -2^14 bytes. Consequently, there may be interoperability issues when -`jdk.tls.client.enableCAExtension` is set to `true` and the client -trusts more CAs than the server implementation limit. - -New in release OpenJDK 8u292 (2021-04-20): -=========================================== -Live versions of these release notes can be found at: - * https://bitly.com/openjdk8u292 - * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u292.txt - -* Security fixes - - JDK-8227467: Better class method invocations - - JDK-8244473: Contextualize registration for JNDI - - JDK-8244543: Enhanced handling of abstract classes - - JDK-8249906, CVE-2021-2163: Enhance opening JARs - - JDK-8250568, CVE-2021-2161: Less ambiguous processing - - JDK-8253799: Make lists of normal filenames -* Other changes - - JDK-6345095: regression test EmptyClipRenderingTest fails - - JDK-6896810: TEST_BUG: java/lang/ref/SoftReference/Pin.java fails with OOME during System.out.println - - JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by removing a infinite loop - - JDK-7107012: sun.jvm.hotspot.code.CompressedReadStream readDouble() conversion to long mishandled - - JDK-7112454: TEST_BUG: java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html failed - - JDK-7131835: [TEST_BUG] Test does not consider that the rounded edges of the window in Mac OS 10.7 - - JDK-7185221: [macosx] Regtest should not throw exception if a suitable display mode found - - JDK-8031126: java/lang/management/ThreadMXBean/ThreadUserTime.java fails intermittently - - JDK-8035166: Remove dependency on EC classes from pkcs11 provider - - JDK-8035186: j2se_jdk/jdk/test/java/lang/invoke/lambda/LogGeneratedClassesTest.java - assertion error - - JDK-8038723: Openup some PrinterJob tests - - JDK-8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X - - JDK-8041561: Inconsistent opacity behaviour between JCheckBox and JRadioButton - - JDK-8061777: (zipfs) IllegalArgumentException in ZipCoder.toString when using Shitft_JIS - - JDK-8078024: javac, several incorporation steps are silently failing when an error should be reported - - JDK-8078450: Implement consistent process for quarantine of tests - - JDK-8078614: WindowsClassicLookAndFeel MetalComboBoxUI.getbaseLine fails with IllegalArgumentException - - JDK-8080953: [TEST_BUG]Test java/awt/FontClass/DebugFonts.java fails due to wrongly typed bugid - - JDK-8081547: Prepare client libs regression tests for running in a concurrent, headless jtreg environment - - JDK-8129626: G1: set_in_progress() and clear_started() needs a barrier on non-TSO platforms - - JDK-8141457: keytool default cert fingerprint algorithm should be SHA-256 - - JDK-8145051: Wrong parameter name in synthetic lambda method leads to verifier error - - JDK-8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging output - - JDK-8158525: Update a few java/net tests to use the loopback address instead of the host address - - JDK-8160217: JavaSound should clean up resources better - - JDK-8167281: IIOMetadataNode bugs in getElementsByTagName and NodeList.item methods - - JDK-8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked node - - JDK-8171410: aarch64: long multiplyExact shifts by 31 instead of 63 - - JDK-8172404: Tools should warn if weak algorithms are used before restricting them - - JDK-8185934: keytool shows "Signature algorithm: SHA1withECDSA, -1-bit key" - - JDK-8191915: JCK tests produce incorrect results with C2 - - JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode - - JDK-8202343: Disable TLS 1.0 and 1.1 - - JDK-8209333: Socket reset issue for TLS 1.3 socket close - - JDK-8211301: [macos] support full window content options - - JDK-8211339: NPE during SSL handshake caused by HostnameChecker - - JDK-8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy - - JDK-8217338: [Containers] Improve systemd slice memory limit support - - JDK-8219991: New fix of the deadlock in sun.security.ssl.SSLSocketImpl - - JDK-8221408: Windows 32bit build build errors/warnings in hotspot - - JDK-8223186: HotSpot compile warnings from GCC 9 - - JDK-8225435: Upgrade IANA Language Subtag Registry to the latest for JDK14 - - JDK-8225805: Java Access Bridge does not close the logger - - JDK-8226899: Problemlist compiler/rtm tests - - JDK-8227642: [TESTBUG] Make docker tests podman compatible - - JDK-8228434: jdk/net/Sockets/Test.java fails after JDK-8227642 - - JDK-8229284: jdk/internal/platform/cgroup/TestCgroupMetrics.java fails for - memory:getMemoryUsage - - JDK-8230388: Problemlist additional compiler/rtm tests - - JDK-8233228: Disable weak named curves by default in TLS, CertPath, and Signed JAR - - JDK-8234727: sun/security/ssl/X509TrustManagerImpl tests support TLSv1.3 - - JDK-8234728: Some security tests should support TLSv1.3 - - JDK-8235263: Revert TLS 1.3 change that wrapped IOExceptions - - JDK-8235311: Tag mismatch may alert bad_record_mac - - JDK-8235874: The ordering of Cipher Suites is not maintained provided through jdk.tls.client.cipherSuites and jdk.tls.server.cipherSuites system property. - - JDK-8236500: Windows ucrt.dll should be looked up in versioned WINSDK subdirectory - - JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read - - JDK-8239091: Reversed arguments in call to strstr in freetype "debug" code. - - JDK-8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1 - - JDK-8240827: Downport SSLSocketImpl.java from "8221882: Use fiber-friendly java.util.concurrent.locks in JSSE" - - JDK-8242141: New System Properties to configure the TLS signature schemes - - JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11 - - JDK-8248336: AArch64: C2: offset overflow in BoxLockNode::emit - - JDK-8249183: JVM crash in "AwtFrame::WmSize" method - - JDK-8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel - - JDK-8249588: libwindowsaccessbridge issues on 64bit Windows - - JDK-8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS Kerberos tickets - - JDK-8250984: Memory Docker tests fail on some Linux kernels w/o cgroupv1 swap limit capabilities - - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray - - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows - - JDK-8253368: TLS connection always receives close_notify exception - - JDK-8253476: TestUseContainerSupport.java fails on some Linux kernels w/o swap limit capabilities - - JDK-8253932: SSL debug log prints incorrect caller info - - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations - - JDK-8255880: UI of Swing components is not redrawn after their internal state changed - - JDK-8255908: ExceptionInInitializerError due to UncheckedIOException while initializing cgroupv1 subsystem - - JDK-8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java - - JDK-8256421: Add 2 HARICA roots to cacerts truststore - - JDK-8256642: [TEST_BUG] jdk/test/javax/sound/midi/MidiSystem/DefaultProperties.java failed - - JDK-8258079: Eliminate ParNew's use of klass_or_null() - - JDK-8256682: JDK-8202343 is incomplete - - JDK-8257746: Regression introduced with JDK-8250984 - memory might be null in some machines - - JDK-8258241: [8u] Missing doPrivileged() hunks from JDK-8226575 - - JDK-8258247: Couple of issues in fix for JDK-8249906 - - JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk() - - JDK-8258430: 8u backport of JDK-8063107 missing test/javax/swing/JRadioButton/8041561/bug8041561.java changes - - JDK-8258833: Cancel multi-part cipher operations in SunPKCS11 after failures - - JDK-8258933: G1 needs klass_or_null_acquire - - JDK-8259048: (tz) Upgrade time-zone data to tzdata2020f - - JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will - - JDK-8259384: CUP version wrong in THIRD_PARTY_README after JDK-8233548 - - JDK-8259428: AlgorithmId.getEncodedParams() should return copy - - JDK-8259568: PPC64 builds broken after JDK-8221408 8u backport - - JDK-8260349: Cannot programmatically retrieve Metaspace max set via JAVA_TOOL_OPTIONS - - JDK-8260356: (tz) Upgrade time-zone data to tzdata2021a - - JDK-8260930: AARCH64: Invalid value passed to critical JNI function - - JDK-8261183: Follow on to Make lists of normal filenames - - JDK-8261231: Windows IME was disabled after DnD operation - - JDK-8261766: [8u] hotspot needs to recognise cl.exe 19.16 to build with VS2017 - - JDK-8262073: assert(allocates2(pc)) failed: not in CodeBuffer memory - - JDK-8262075: sun/security/krb5/auto/UseCacheAndStoreKey.java timed out intermittently - - JDK-8263008: AARCH64: Add debug info for libsaproc.so - - JDK-8264171: Missing aarch64 parts of JDK-8236179 (C1 register allocation failure with T_ADDRESS) -* Shenandoah - - Normalise whitespace in AArch64 sources prior to merge of upstreamed version in 8u292-b01. - - Revert differences against upstream 8u - - [backport] 8202976: Add C1 lea patching support for x86 - - [backport] 8221507: Implement JFR Events for Shenandoah - - [backport] 8224573: Fix windows build after JDK-8221507 - - [backport] 8228369: Shenandoah: Refactor LRB C1 stubs - - [backport] 8229474: Shenandoah: Cleanup CM::update_roots() - - [backport] 8229709: x86_32 build and test failures after JDK-8228369 (Shenandoah: Refactor LRB C1 stubs) - - [backport] 8231087: Shenandoah: Self-fixing load reference barriers for C1/C2 - - [backport] 8232747: Shenandoah: Concurrent GC should deactivate SATB before processing weak roots - - [backport] 8232992: Shenandoah: Implement self-fixing interpreter LRB - - [backport] 8233021: Shenandoah: SBSC2::is_shenandoah_lrb_call should match all LRB shapes - - [backport] 8233165: Shenandoah:SBSA::gen_load_reference_barrier_stub() should use pointer register for address on aarch64 - - [backport] 8233574: Shenandoah: build is broken without jfr - - [backport] 8237837: Shenandoah: assert(mem == __null) failed: only one safepoint - - [backport] 8238153: CTW: C2 (Shenandoah) compilation fails with "Unknown node in get_load_addr: CreateEx" - - [backport] 8238851: Shenandoah: C1: Resolve into registers of correct type - - [backport] 8240315: Shenandoah: Rename ShLBN::get_barrier_strength() - - [backport] 8240751: Shenandoah: fold ShenandoahTracer definition - - [backport] 8241765: Shenandoah: AARCH64 need to save/restore call clobbered registers before calling keepalive barrier - - [backport] 8244510: Shenandoah: invert SHC2Support::is_in_cset condition - - [backport] 8244663: Shenandoah: C2 assertion fails in Matcher::collect_null_checks - - [backport] 8244721: CTW: C2 (Shenandoah) compilation fails with "unexpected infinite loop graph shape" - - [backport] 8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U - - [backport] 8252660: Shenandoah: support manageable SoftMaxHeapSize option - - [backport] 8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() - - [backport] 8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads - - [backport] 8255457: Shenandoah: cleanup ShenandoahMarkTask - - [backport] 8255760: Shenandoah: match constants style in ShenandoahMarkTask fallback - - [backport] 8256806: Shenandoah: optimize shenandoah/jni/TestPinnedGarbage.java test - - [backport] 8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false - - Fix register allocation for thread register is 32bit LRB - - Fix Shenandoah bindings in ADLC formssel - - Shenandoah: Backed out weak roots cleaning during full gc - -Notes on individual issues: -=========================== - -security-libs/java.security: - -JDK-8260597: Added 2 HARICA Root CA Certificates -================================================ - -The following root certificates have been added to the cacerts truststore: - -Alias Name: haricarootca2015 -Distinguished Name: CN=Hellenic Academic and Research Institutions RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR - -Alias Name: haricaeccrootca2015 -Distinguished Name: CN=Hellenic Academic and Research Institutions ECC RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR - -JDK-8236730: Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default -=================================================================================== -Weak named curves are disabled by default by adding them to the -following `disabledAlgorithms` security properties: - -* jdk.tls.disabledAlgorithms -* jdk.certpath.disabledAlgorithms -* jdk.jar.disabledAlgorithms - -Red Hat has always disabled many of the curves provided by upstream, -so the only addition in this release is: - -* secp256k1 - -The curves that remain enabled are: - -* secp256r1 -* secp384r1 -* secp521r1 -* X25519 -* X448 - -When large numbers of weak named curves need to be disabled, adding -individual named curves to each `disabledAlgorithms` property would be -overwhelming. To relieve this, a new security property, -`jdk.disabled.namedCurves`, is implemented that can list the named -curves common to all of the `disabledAlgorithms` properties. To use -the new property in the `disabledAlgorithms` properties, precede the -full property name with the keyword `include`. Users can still add -individual named curves to `disabledAlgorithms` properties separate -from this new property. No other properties can be included in the -`disabledAlgorithms` properties. - -To restore the named curves, remove the `include -jdk.disabled.namedCurves` either from specific or from all -`disabledAlgorithms` security properties. To restore one or more -curves, remove the specific named curve(s) from the -`jdk.disabled.namedCurves` property. - -JDK-8244286: Tools Warn If Weak Algorithms Are Used -=================================================== -The `keytool` and `jarsigner` tools have been updated to warn users -when weak cryptographic algorithms are used in keys, certificates, and -signed JARs before they are disabled. The weak algorithms are set in -the `jdk.security.legacyAlgorithms` security property in the -`java.security` configuration file. In this release, the tools issue -warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys. - -security-libs/javax.net.ssl: - -JDK-8256490: Disable TLS 1.0 and 1.1 -==================================== -TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer -considered secure and have been superseded by more secure and modern -versions (TLS 1.2 and 1.3). - -These versions have now been disabled by default. If you encounter -issues, you can, at your own risk, re-enable the versions by removing -"TLSv1" and/or "TLSv1.1" from the `jdk.tls.disabledAlgorithms` -security property in the `java.security` configuration file. - -JDK-8242147: New System Properties to Configure the TLS Signature Schemes -========================================================================= -Two new system properties have been added to customize the TLS -signature schemes in JDK. `jdk.tls.client.SignatureSchemes` has been -added for the TLS client side, and `jdk.tls.server.SignatureSchemes` -has been added for the server side. - -Each system property contains a comma-separated list of supported -signature scheme names specifying the signature schemes that could be -used for the TLS connections. - -The names are described in the "Signature Schemes" section of the -*Java Security Standard Algorithm Names Specification*. - -tools/javac: - -JDK-8177368: Several incorporation steps are silently failing when an error should be reported -============================================================================================== -Reporting previously silent errors found during incorporation, JLS -8§18.3, was supposed to be a clean-up with performance only -implications. But consider the test case: - -import java.util.Arrays; -import java.util.List; - -class Klass { - public static <A> List<List<A>> foo(List<? extends A>... lists) { - return foo(Arrays.asList(lists)); - } - - public static <B> List<List<B>> foo(List<? extends List<? extends B>> lists) { - return null; - } -} - -This code was not accepted before the patch for [1], but after this -patch the compiler is accepting it. Accepting this code is the right -behavior as not reporting incorporation errors was a bug in the -compiler. While determining the applicability of method: <B> -List<List<B>> foo(List<? extends List<? extends B>> lists) for which -we have the constraints: b <: Object t <: List<? extends B> t<:Object -List<? extends A> <: t first, inference variable b is selected for -instantiation: b = CAP1 of ? extends A so this implies that: t <: -List<? extends CAP1 of ? extends A> t<: Object List<? extends A> <: t - -Now all the bounds are checked for consistency. While checking if -List<? extends A> is a subtype of List<? extends CAP1 of ? extends A> -a bound error is reported. Before the compiler was just swallowing -it. As now the error is reported while inference variable b is being -instantiated, the bound set is rolled back to it's initial state, 'b' -is instantiated to Object, and with this instantiation the constraint -set is solvable, the method is applicable, it's the only applicable -one and the code is accepted as correct. The compiler behavior in this -case is defined at JLS 8 §18.4 - -This fix has source compatibility impact, right now code that wasn't -being accepted is now being accepted by the javac compiler. Currently -there are no reports of any other kind of incompatibility. - -[1] https://bugs.openjdk.java.net/browse/JDK-8078024 - -New in release OpenJDK 8u282 (2021-01-19): -=========================================== -Live versions of these release notes can be found at: - * 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 `
` or `
` to the encoded output. This behavioural -change was made in the Apache Santuario codebase to comply with RFC -2045. The Santuario team has adopted a position of keeping their -libraries compliant with RFC 2045. - -Earlier versions of OpenJDK 8 using the legacy encoder returns encoded -data in a format without `
` or `
`. - -Therefore a new system property, specific to the 8 update stream, -`com.sun.org.apache.xml.internal.security.lineFeedOnly` is made -available to fall back to the legacy Base64 encoded format. - -Users can set this flag in one of two ways: - -1. -Dcom.sun.org.apache.xml.internal.security.lineFeedOnly=true - -2. System.setProperty("com.sun.org.apache.xml.internal.security.lineFeedOnly", "true") - -This new system property is disabled by default. It has no effect on -default behaviour nor when -`com.sun.org.apache.xml.internal.security.ignoreLineBreaks` property -is set. - -Later JDK family versions will only support the recommended property: - -`com.sun.org.apache.xml.internal.security.ignoreLineBreaks` - -JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b -==================================================================== -Following JDK's update to tzdata2020b, the long-obsolete files -pacificnew and systemv have been removed. As a result, the -"US/Pacific-New" zone name declared in the pacificnew data file is no -longer available for use. - -Information regarding the update can be viewed at -https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html - -New in release OpenJDK 8u265 (2020-07-27): -=========================================== -Live versions of these release notes can be found at: - * 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/README.md b/README.md deleted file mode 100644 index 61b3b69..0000000 --- a/README.md +++ /dev/null @@ -1,8 +0,0 @@ -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/TestCryptoLevel.java b/TestCryptoLevel.java deleted file mode 100644 index b32b7ae..0000000 --- a/TestCryptoLevel.java +++ /dev/null @@ -1,72 +0,0 @@ -/* 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/TestECDSA.java b/TestECDSA.java deleted file mode 100644 index 6eb9cb2..0000000 --- a/TestECDSA.java +++ /dev/null @@ -1,49 +0,0 @@ -/* 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/TestSecurityProperties.java b/TestSecurityProperties.java deleted file mode 100644 index 552bd0f..0000000 --- a/TestSecurityProperties.java +++ /dev/null @@ -1,67 +0,0 @@ -import java.io.File; -import java.io.FileInputStream; -import java.security.Security; -import java.util.Properties; - -public class TestSecurityProperties { - // JDK 11 - private static final String JDK_PROPS_FILE_JDK_11 = System.getProperty("java.home") + "/conf/security/java.security"; - // JDK 8 - private static final String JDK_PROPS_FILE_JDK_8 = System.getProperty("java.home") + "/lib/security/java.security"; - - private static final String POLICY_FILE = "/etc/crypto-policies/back-ends/java.config"; - - private static final String MSG_PREFIX = "DEBUG: "; - - public static void main(String[] args) { - if (args.length == 0) { - System.err.println("TestSecurityProperties <true|false>"); - System.err.println("Invoke with 'true' if system security properties should be enabled."); - System.err.println("Invoke with 'false' if system security properties should be disabled."); - System.exit(1); - } - boolean enabled = Boolean.valueOf(args[0]); - System.out.println(MSG_PREFIX + "System security properties enabled: " + enabled); - Properties jdkProps = new Properties(); - loadProperties(jdkProps); - if (enabled) { - loadPolicy(jdkProps); - } - for (Object key: jdkProps.keySet()) { - String sKey = (String)key; - String securityVal = Security.getProperty(sKey); - String jdkSecVal = jdkProps.getProperty(sKey); - if (!securityVal.equals(jdkSecVal)) { - String msg = "Expected value '" + jdkSecVal + "' for key '" + - sKey + "'" + " but got value '" + securityVal + "'"; - throw new RuntimeException("Test failed! " + msg); - } else { - System.out.println(MSG_PREFIX + sKey + " = " + jdkSecVal + " as expected."); - } - } - System.out.println("TestSecurityProperties PASSED!"); - } - - private static void loadProperties(Properties props) { - String javaVersion = System.getProperty("java.version"); - System.out.println(MSG_PREFIX + "Java version is " + javaVersion); - String propsFile = JDK_PROPS_FILE_JDK_11; - if (javaVersion.startsWith("1.8.0")) { - propsFile = JDK_PROPS_FILE_JDK_8; - } - try (FileInputStream fin = new FileInputStream(propsFile)) { - props.load(fin); - } catch (Exception e) { - throw new RuntimeException("Test failed!", e); - } - } - - private static void loadPolicy(Properties props) { - try (FileInputStream fin = new FileInputStream(POLICY_FILE)) { - props.load(fin); - } catch (Exception e) { - throw new RuntimeException("Test failed!", e); - } - } - -} diff --git a/config.guess b/config.guess deleted file mode 100644 index b79252d..0000000 --- a/config.guess +++ /dev/null @@ -1,1558 +0,0 @@ -#! /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... -# -# 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... -and - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;h... - -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/config.sub b/config.sub deleted file mode 100644 index 8b612ab..0000000 --- a/config.sub +++ /dev/null @@ -1,1788 +0,0 @@ -#! /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;h... - -# 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/dead.package b/dead.package new file mode 100644 index 0000000..ab7426e --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Retired: Long term failure to build diff --git a/fips-8u-8e8bbf0ff74.patch b/fips-8u-8e8bbf0ff74.patch deleted file mode 100644 index 6e612b6..0000000 --- a/fips-8u-8e8bbf0ff74.patch +++ /dev/null @@ -1,2007 +0,0 @@ -diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac -index 151e5a109f8..a8761b500e0 100644 ---- a/common/autoconf/configure.ac -+++ b/common/autoconf/configure.ac -@@ -212,6 +212,7 @@ LIB_SETUP_FREETYPE - LIB_SETUP_ALSA - LIB_SETUP_FONTCONFIG - LIB_SETUP_MISC_LIBS -+LIB_SETUP_SYSCONF_LIBS - LIB_SETUP_STATIC_LINK_LIBSTDCPP - LIB_SETUP_ON_WINDOWS - -diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh -index e77ce854dc5..ec6e9b27ca5 100644 ---- a/common/autoconf/generated-configure.sh -+++ b/common/autoconf/generated-configure.sh -@@ -651,6 +651,9 @@ LLVM_CONFIG - LIBFFI_LIBS - LIBFFI_CFLAGS - STATIC_CXX_SETTING -+USE_SYSCONF_NSS -+NSS_LIBS -+NSS_CFLAGS - LIBDL - LIBM - LIBZIP_CAN_USE_MMAP -@@ -1111,6 +1114,7 @@ with_fontconfig - with_fontconfig_include - with_giflib - with_zlib -+enable_sysconf_nss - with_stdc__lib - with_msvcr_dll - with_msvcp_dll -@@ -1218,6 +1222,8 @@ FREETYPE_CFLAGS - FREETYPE_LIBS - ALSA_CFLAGS - ALSA_LIBS -+NSS_CFLAGS -+NSS_LIBS - LIBFFI_CFLAGS - LIBFFI_LIBS - CCACHE' -@@ -1871,6 +1877,8 @@ Optional Features: - disable bundling of the freetype library with the - build result [enabled on Windows or when using - --with-freetype, disabled otherwise] -+ --enable-sysconf-nss build the System Configurator (libsysconf) using the -+ system NSS library if available [disabled] - --enable-sjavac use sjavac to do fast incremental compiles - [disabled] - --disable-precompiled-headers -@@ -2115,6 +2123,8 @@ Some influential environment variables: - linker flags for FREETYPE, overriding pkg-config - ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config - ALSA_LIBS linker flags for ALSA, overriding pkg-config -+ NSS_CFLAGS C compiler flags for NSS, overriding pkg-config -+ NSS_LIBS linker flags for NSS, overriding pkg-config - LIBFFI_CFLAGS - C compiler flags for LIBFFI, overriding pkg-config - LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config -@@ -2879,6 +2889,52 @@ $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - - } # ac_fn_c_check_header_compile -+ -+# ac_fn_c_try_link LINENO -+# ----------------------- -+# Try to link conftest.$ac_ext, and return whether this succeeded. -+ac_fn_c_try_link () -+{ -+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -+ rm -f conftest.$ac_objext conftest$ac_exeext -+ if { { ac_try="$ac_link" -+case "(($ac_try" in -+ *"* | *`* | *\*) ac_try_echo=$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo=""$as_me:${as_lineno-$LINENO}: $ac_try_echo"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_link") 2>conftest.err -+ ac_status=$? -+ if test -s conftest.err; then -+ grep -v '^ *+' conftest.err >conftest.er1 -+ cat conftest.er1 >&5 -+ mv -f conftest.er1 conftest.err -+ fi -+ $as_echo "$as_me:${as_lineno-$LINENO}: $? = $ac_status" >&5 -+ test $ac_status = 0; } && { -+ test -z "$ac_c_werror_flag" || -+ test ! -s conftest.err -+ } && test -s conftest$ac_exeext && { -+ test "$cross_compiling" = yes || -+ test -x conftest$ac_exeext -+ }; then : -+ ac_retval=0 -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_retval=1 -+fi -+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information -+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would -+ # interfere with the next link command; also delete a directory that is -+ # left behind by Apple's compiler. We do this before executing the actions. -+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo -+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -+ as_fn_set_status $ac_retval -+ -+} # ac_fn_c_try_link - ac_configure_args_raw= - for ac_arg - do -@@ -4049,6 +4105,11 @@ fi - - - -+################################################################################ -+# Setup system configuration libraries -+################################################################################ -+ -+ - # - # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. - # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -@@ -49290,6 +49351,157 @@ fi - LIBS="$save_LIBS" - - -+ ############################################################################### -+ # -+ # Check for the NSS library -+ # -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the system NSS library with the System Configurator (libsysconf)" >&5 -+$as_echo_n "checking whether to use the system NSS library with the System Configurator (libsysconf)... " >&6; } -+ -+ # default is not available -+ DEFAULT_SYSCONF_NSS=no -+ -+ # Check whether --enable-sysconf-nss was given. -+if test "${enable_sysconf_nss+set}" = set; then : -+ enableval=$enable_sysconf_nss; -+ case "${enableval}" in -+ yes) -+ sysconf_nss=yes -+ ;; -+ *) -+ sysconf_nss=no -+ ;; -+ esac -+ -+else -+ -+ sysconf_nss=${DEFAULT_SYSCONF_NSS} -+ -+fi -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sysconf_nss" >&5 -+$as_echo "$sysconf_nss" >&6; } -+ -+ USE_SYSCONF_NSS=false -+ if test "x${sysconf_nss}" = "xyes"; then -+ -+pkg_failed=no -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 -+$as_echo_n "checking for NSS... " >&6; } -+ -+if test -n "$NSS_CFLAGS"; then -+ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: $PKG_CONFIG --exists --print-errors "nss >= 3.53""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "nss >= 3.53") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: $? = $ac_status" >&5 -+ test $ac_status = 0; }; then -+ pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nss >= 3.53" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$NSS_LIBS"; then -+ pkg_cv_NSS_LIBS="$NSS_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: $PKG_CONFIG --exists --print-errors "nss >= 3.53""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "nss >= 3.53") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: $? = $ac_status" >&5 -+ test $ac_status = 0; }; then -+ pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nss >= 3.53" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+ -+ -+ -+if test $pkg_failed = yes; then -+ -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes -+else -+ _pkg_short_errors_supported=no -+fi -+ if test $_pkg_short_errors_supported = yes; then -+ NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nss >= 3.53" 2>&1` -+ else -+ NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "nss >= 3.53" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$NSS_PKG_ERRORS" >&5 -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ NSS_FOUND=no -+elif test $pkg_failed = untried; then -+ NSS_FOUND=no -+else -+ NSS_CFLAGS=$pkg_cv_NSS_CFLAGS -+ NSS_LIBS=$pkg_cv_NSS_LIBS -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+ NSS_FOUND=yes -+fi -+ if test "x${NSS_FOUND}" = "xyes"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for system FIPS support in NSS" >&5 -+$as_echo_n "checking for system FIPS support in NSS... " >&6; } -+ saved_libs="${LIBS}" -+ saved_cflags="${CFLAGS}" -+ CFLAGS="${CFLAGS} ${NSS_CFLAGS}" -+ LIBS="${LIBS} ${NSS_LIBS}" -+ ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include <nss3/pk11pub.h> -+int -+main () -+{ -+SECMOD_GetSystemFIPSEnabled() -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ as_fn_error $? "System NSS FIPS detection unavailable" "$LINENO" 5 -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ ac_ext=cpp -+ac_cpp='$CXXCPP $CPPFLAGS' -+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -+ -+ CFLAGS="${saved_cflags}" -+ LIBS="${saved_libs}" -+ USE_SYSCONF_NSS=true -+ else -+ as_fn_error $? "--enable-sysconf-nss specified, but NSS 3.53 or above not found." "$LINENO" 5 -+ fi -+ fi -+ -+ -+ - ############################################################################### - # - # statically link libstdc++ before C++ ABI is stablized on Linux unless -diff --git a/common/autoconf/libraries.m4 b/common/autoconf/libraries.m4 -index 6efae578ea9..0080846255b 100644 ---- a/common/autoconf/libraries.m4 -+++ b/common/autoconf/libraries.m4 -@@ -1067,3 +1067,63 @@ AC_DEFUN_ONCE([LIB_SETUP_ON_WINDOWS], - BASIC_DEPRECATED_ARG_WITH([dxsdk-include]) - fi - ]) -+ -+################################################################################ -+# Setup system configuration libraries -+################################################################################ -+AC_DEFUN_ONCE([LIB_SETUP_SYSCONF_LIBS], -+[ -+ ############################################################################### -+ # -+ # Check for the NSS library -+ # -+ -+ AC_MSG_CHECKING([whether to use the system NSS library with the System Configurator (libsysconf)]) -+ -+ # default is not available -+ DEFAULT_SYSCONF_NSS=no -+ -+ AC_ARG_ENABLE([sysconf-nss], [AS_HELP_STRING([--enable-sysconf-nss], -+ [build the System Configurator (libsysconf) using the system NSS library if available @<:@disabled@:>@])], -+ [ -+ case "${enableval}" in -+ yes) -+ sysconf_nss=yes -+ ;; -+ *) -+ sysconf_nss=no -+ ;; -+ esac -+ ], -+ [ -+ sysconf_nss=${DEFAULT_SYSCONF_NSS} -+ ]) -+ AC_MSG_RESULT([$sysconf_nss]) -+ -+ USE_SYSCONF_NSS=false -+ if test "x${sysconf_nss}" = "xyes"; then -+ PKG_CHECK_MODULES(NSS, nss >= 3.53, [NSS_FOUND=yes], [NSS_FOUND=no]) -+ if test "x${NSS_FOUND}" = "xyes"; then -+ AC_MSG_CHECKING([for system FIPS support in NSS]) -+ saved_libs="${LIBS}" -+ saved_cflags="${CFLAGS}" -+ CFLAGS="${CFLAGS} ${NSS_CFLAGS}" -+ LIBS="${LIBS} ${NSS_LIBS}" -+ AC_LANG_PUSH([C]) -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss3/pk11pub.h>]], -+ [[SECMOD_GetSystemFIPSEnabled()]])], -+ [AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no]) -+ AC_MSG_ERROR([System NSS FIPS detection unavailable])]) -+ AC_LANG_POP([C]) -+ CFLAGS="${saved_cflags}" -+ LIBS="${saved_libs}" -+ USE_SYSCONF_NSS=true -+ else -+ dnl NSS 3.53 is the one that introduces the SECMOD_GetSystemFIPSEnabled API -+ dnl in nss3/pk11pub.h. -+ AC_MSG_ERROR([--enable-sysconf-nss specified, but NSS 3.53 or above not found.]) -+ fi -+ fi -+ AC_SUBST(USE_SYSCONF_NSS) -+]) -diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in -index 506cf617087..7241593b1a4 100644 ---- a/common/autoconf/spec.gmk.in -+++ b/common/autoconf/spec.gmk.in -@@ -312,6 +312,10 @@ CUPS_CFLAGS:=@CUPS_CFLAGS@ - ALSA_LIBS:=@ALSA_LIBS@ - ALSA_CFLAGS:=@ALSA_CFLAGS@ - -+USE_SYSCONF_NSS:=@USE_SYSCONF_NSS@ -+NSS_LIBS:=@NSS_LIBS@ -+NSS_CFLAGS:=@NSS_CFLAGS@ -+ - PACKAGE_PATH=@PACKAGE_PATH@ - - # Source file for cacerts -diff --git a/common/bin/compare_exceptions.sh.incl b/common/bin/compare_exceptions.sh.incl -index 3b79a526f56..d2a0e39b206 100644 ---- a/common/bin/compare_exceptions.sh.incl -+++ b/common/bin/compare_exceptions.sh.incl -@@ -280,6 +280,7 @@ ACCEPTED_SMALL_SIZE_DIFF=" - ./jre/lib/i386/libsplashscreen.so - ./jre/lib/i386/libsunec.so - ./jre/lib/i386/libsunwjdga.so -+./jre/lib/i386/libsystemconf.so - ./jre/lib/i386/libt2k.so - ./jre/lib/i386/libunpack.so - ./jre/lib/i386/libverify.so -@@ -433,6 +434,7 @@ ACCEPTED_SMALL_SIZE_DIFF=" - ./jre/lib/amd64/libsplashscreen.so - ./jre/lib/amd64/libsunec.so - ./jre/lib/amd64/libsunwjdga.so -+//jre/lib/amd64/libsystemconf.so - ./jre/lib/amd64/libt2k.so - ./jre/lib/amd64/libunpack.so - ./jre/lib/amd64/libverify.so -@@ -587,6 +589,7 @@ ACCEPTED_SMALL_SIZE_DIFF=" - ./jre/lib/sparc/libsplashscreen.so - ./jre/lib/sparc/libsunec.so - ./jre/lib/sparc/libsunwjdga.so -+./jre/lib/sparc/libsystemconf.so - ./jre/lib/sparc/libt2k.so - ./jre/lib/sparc/libunpack.so - ./jre/lib/sparc/libverify.so -@@ -741,6 +744,7 @@ ACCEPTED_SMALL_SIZE_DIFF=" - ./jre/lib/sparcv9/libsplashscreen.so - ./jre/lib/sparcv9/libsunec.so - ./jre/lib/sparcv9/libsunwjdga.so -+./jre/lib/sparcv9/libsystemconf.so - ./jre/lib/sparcv9/libt2k.so - ./jre/lib/sparcv9/libunpack.so - ./jre/lib/sparcv9/libverify.so -diff --git a/common/nb_native/nbproject/configurations.xml b/common/nb_native/nbproject/configurations.xml -index d2beed0b93a..3b6aef98d9a 100644 ---- a/common/nb_native/nbproject/configurations.xml -+++ b/common/nb_native/nbproject/configurations.xml -@@ -53,6 +53,9 @@ - <in>jvmtiEnterTrace.cpp</in> - </df> - </df> -+ <df name="libsystemconf"> -+ <in>systemconf.c</in> -+ </df> - </df> - </df> - <df name="jdk"> -@@ -12772,6 +12775,11 @@ - tool="0" - flavor2="0"> - </item> -+ <item path="../../jdk/src/solaris/native/java/security/systemconf.c" -+ ex="false" -+ tool="0" -+ flavor2="0"> -+ </item> - <item path="../../jdk/src/share/native/java/util/TimeZone.c" - ex="false" - tool="0" -diff --git a/jdk/make/lib/SecurityLibraries.gmk b/jdk/make/lib/SecurityLibraries.gmk -index b0b85d80448..47a41d7518d 100644 ---- a/jdk/make/lib/SecurityLibraries.gmk -+++ b/jdk/make/lib/SecurityLibraries.gmk -@@ -289,3 +289,34 @@ ifeq ($(OPENJDK_TARGET_OS), solaris) - - endif - endif -+ -+################################################################################ -+# Create the systemconf library -+ -+LIBSYSTEMCONF_CFLAGS := -+LIBSYSTEMCONF_CXXFLAGS := -+ -+ifeq ($(USE_SYSCONF_NSS), true) -+ LIBSYSTEMCONF_CFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS -+ LIBSYSTEMCONF_CXXFLAGS += $(NSS_CFLAGS) -DSYSCONF_NSS -+endif -+ -+ifeq ($(OPENJDK_BUILD_OS), linux) -+ $(eval $(call SetupNativeCompilation,BUILD_LIBSYSTEMCONF, \ -+ LIBRARY := systemconf, \ -+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ -+ SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/security, \ -+ LANG := C, \ -+ OPTIMIZATION := LOW, \ -+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBSYSTEMCONF_CFLAGS), \ -+ CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBSYSTEMCONF_CXXFLAGS), \ -+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsystemconf/mapfile-vers, \ -+ LDFLAGS := $(LDFLAGS_JDKLIB) \ -+ $(call SET_SHARED_LIBRARY_ORIGIN), \ -+ LDFLAGS_SUFFIX := $(LIBDL) $(NSS_LIBS), \ -+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsystemconf, \ -+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) -+ -+ BUILD_LIBRARIES += $(BUILD_LIBSYSTEMCONF) -+endif -+ -diff --git a/jdk/make/mapfiles/libsystemconf/mapfile-vers b/jdk/make/mapfiles/libsystemconf/mapfile-vers -new file mode 100644 -index 00000000000..a65ceb3b78c ---- /dev/null -+++ b/jdk/make/mapfiles/libsystemconf/mapfile-vers -@@ -0,0 +1,35 @@ -+# -+# Copyright (c) 2021, Red Hat, Inc. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. Oracle designates this -+# particular file as subject to the "Classpath" exception as provided -+# by Oracle in the LICENSE file that accompanied this code. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+# -+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+# or visit www.oracle.com if you need additional information or have any -+# questions. -+# -+ -+# Define public interface. -+ -+SUNWprivate_1.1 { -+ global: -+ DEF_JNI_OnLoad; -+ DEF_JNI_OnUnLoad; -+ Java_java_security_SystemConfigurator_getSystemFIPSEnabled; -+ local: -+ *; -+}; -diff --git a/jdk/src/share/classes/java/security/Security.java b/jdk/src/share/classes/java/security/Security.java -index 0db09da7061..813b907db3e 100644 ---- a/jdk/src/share/classes/java/security/Security.java -+++ b/jdk/src/share/classes/java/security/Security.java -@@ -30,6 +30,8 @@ import java.util.*; - import java.util.concurrent.ConcurrentHashMap; - import java.io.*; - import java.net.URL; -+import sun.misc.SharedSecrets; -+import sun.misc.JavaSecuritySystemConfiguratorAccess; - import sun.security.util.Debug; - import sun.security.util.PropertyExpander; - -@@ -43,11 +45,19 @@ import sun.security.jca.*; - * implementation-specific location, which is typically the properties file - * {@code lib/security/java.security} in the Java installation directory. - * -+ * <p>Additional default values of security properties are read from a -+ * system-specific location, if available.</p> -+ * - * @author Benjamin Renaud - */ - - public final class Security { - -+ private static final String SYS_PROP_SWITCH = -+ "java.security.disableSystemPropertiesFile"; -+ private static final String SEC_PROP_SWITCH = -+ "security.useSystemPropertiesFile"; -+ - /* Are we debugging? -- for developers */ - private static final Debug sdebug = - Debug.getInstance("properties"); -@@ -62,6 +72,19 @@ public final class Security { - } - - static { -+ // Initialise here as used by code with system properties disabled -+ SharedSecrets.setJavaSecuritySystemConfiguratorAccess( -+ new JavaSecuritySystemConfiguratorAccess() { -+ @Override -+ public boolean isSystemFipsEnabled() { -+ return SystemConfigurator.isSystemFipsEnabled(); -+ } -+ @Override -+ public boolean isPlainKeySupportEnabled() { -+ return SystemConfigurator.isPlainKeySupportEnabled(); -+ } -+ }); -+ - // doPrivileged here because there are multiple - // things in initialize that might require privs. - // (the FileInputStream call and the File.exists call, -@@ -78,6 +101,7 @@ public final class Security { - props = new Properties(); - boolean loadedProps = false; - boolean overrideAll = false; -+ boolean systemSecPropsEnabled = false; - - // first load the system properties file - // to determine the value of security.overridePropertiesFile -@@ -93,6 +117,7 @@ public final class Security { - if (sdebug != null) { - sdebug.println("reading security properties file: " + - propFile); -+ sdebug.println(props.toString()); - } - } catch (IOException e) { - if (sdebug != null) { -@@ -187,6 +212,61 @@ public final class Security { - } - } - -+ boolean sysUseProps = Boolean.valueOf(System.getProperty(SYS_PROP_SWITCH, "false")); -+ boolean secUseProps = Boolean.valueOf(props.getProperty(SEC_PROP_SWITCH)); -+ if (sdebug != null) { -+ sdebug.println(SYS_PROP_SWITCH + "=" + sysUseProps); -+ sdebug.println(SEC_PROP_SWITCH + "=" + secUseProps); -+ } -+ if (!sysUseProps && secUseProps) { -+ systemSecPropsEnabled = SystemConfigurator.configureSysProps(props); -+ if (!systemSecPropsEnabled) { -+ if (sdebug != null) { -+ sdebug.println("WARNING: System security properties could not be loaded."); -+ } -+ } -+ } else { -+ if (sdebug != null) { -+ sdebug.println("System security property support disabled by user."); -+ } -+ } -+ -+ // FIPS support depends on the contents of java.security so -+ // ensure it has loaded first -+ if (loadedProps && systemSecPropsEnabled) { -+ boolean shouldEnable; -+ String sysProp = System.getProperty("com.redhat.fips"); -+ if (sysProp == null) { -+ shouldEnable = true; -+ if (sdebug != null) { -+ sdebug.println("com.redhat.fips unset, using default value of true"); -+ } -+ } else { -+ shouldEnable = Boolean.valueOf(sysProp); -+ if (sdebug != null) { -+ sdebug.println("com.redhat.fips set, using its value " + shouldEnable); -+ } -+ } -+ if (shouldEnable) { -+ boolean fipsEnabled = SystemConfigurator.configureFIPS(props); -+ if (sdebug != null) { -+ if (fipsEnabled) { -+ sdebug.println("FIPS mode support configured and enabled."); -+ } else { -+ sdebug.println("FIPS mode support disabled."); -+ } -+ } -+ } else { -+ if (sdebug != null ) { -+ sdebug.println("FIPS mode support disabled by user."); -+ } -+ } -+ } else { -+ if (sdebug != null) { -+ sdebug.println("WARNING: FIPS mode support can not be enabled without " + -+ "system security properties being enabled."); -+ } -+ } - } - - /* -diff --git a/jdk/src/share/classes/java/security/SystemConfigurator.java b/jdk/src/share/classes/java/security/SystemConfigurator.java -new file mode 100644 -index 00000000000..a24a0445db2 ---- /dev/null -+++ b/jdk/src/share/classes/java/security/SystemConfigurator.java -@@ -0,0 +1,248 @@ -+/* -+ * Copyright (c) 2019, 2021, Red Hat, Inc. -+ * -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Oracle designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Oracle in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+package java.security; -+ -+import java.io.BufferedInputStream; -+import java.io.FileInputStream; -+import java.io.IOException; -+ -+import java.util.Iterator; -+import java.util.Map.Entry; -+import java.util.Properties; -+ -+import sun.security.util.Debug; -+ -+/** -+ * Internal class to align OpenJDK with global crypto-policies. -+ * Called from java.security.Security class initialization, -+ * during startup. -+ * -+ */ -+ -+final class SystemConfigurator { -+ -+ private static final Debug sdebug = -+ Debug.getInstance("properties"); -+ -+ private static final String CRYPTO_POLICIES_BASE_DIR = -+ "/etc/crypto-policies"; -+ -+ private static final String CRYPTO_POLICIES_JAVA_CONFIG = -+ CRYPTO_POLICIES_BASE_DIR + "/back-ends/java.config"; -+ -+ private static boolean systemFipsEnabled = false; -+ private static boolean plainKeySupportEnabled = false; -+ -+ private static final String SYSTEMCONF_NATIVE_LIB = "systemconf"; -+ -+ private static native boolean getSystemFIPSEnabled() -+ throws IOException; -+ -+ static { -+ AccessController.doPrivileged(new PrivilegedAction<Void>() { -+ public Void run() { -+ System.loadLibrary(SYSTEMCONF_NATIVE_LIB); -+ return null; -+ } -+ }); -+ } -+ -+ /* -+ * Invoked when java.security.Security class is initialized, if -+ * java.security.disableSystemPropertiesFile property is not set and -+ * security.useSystemPropertiesFile is true. -+ */ -+ static boolean configureSysProps(Properties props) { -+ boolean systemSecPropsLoaded = false; -+ -+ try (BufferedInputStream bis = -+ new BufferedInputStream( -+ new FileInputStream(CRYPTO_POLICIES_JAVA_CONFIG))) { -+ props.load(bis); -+ systemSecPropsLoaded = true; -+ if (sdebug != null) { -+ sdebug.println("reading system security properties file " + -+ CRYPTO_POLICIES_JAVA_CONFIG); -+ sdebug.println(props.toString()); -+ } -+ } catch (IOException e) { -+ if (sdebug != null) { -+ sdebug.println("unable to load security properties from " + -+ CRYPTO_POLICIES_JAVA_CONFIG); -+ e.printStackTrace(); -+ } -+ } -+ return systemSecPropsLoaded; -+ } -+ -+ /* -+ * Invoked at the end of java.security.Security initialisation -+ * if java.security properties have been loaded -+ */ -+ static boolean configureFIPS(Properties props) { -+ boolean loadedProps = false; -+ -+ try { -+ if (enableFips()) { -+ if (sdebug != null) { sdebug.println("FIPS mode detected"); } -+ // Remove all security providers -+ Iterator<Entry<Object, Object>> i = props.entrySet().iterator(); -+ while (i.hasNext()) { -+ Entry<Object, Object> e = i.next(); -+ if (((String) e.getKey()).startsWith("security.provider")) { -+ if (sdebug != null) { sdebug.println("Removing provider: " + e); } -+ i.remove(); -+ } -+ } -+ // Add FIPS security providers -+ String fipsProviderValue = null; -+ for (int n = 1; -+ (fipsProviderValue = (String) props.get("fips.provider." + n)) != null; n++) { -+ String fipsProviderKey = "security.provider." + n; -+ if (sdebug != null) { -+ sdebug.println("Adding provider " + n + ": " + -+ fipsProviderKey + "=" + fipsProviderValue); -+ } -+ props.put(fipsProviderKey, fipsProviderValue); -+ } -+ // Add other security properties -+ String keystoreTypeValue = (String) props.get("fips.keystore.type"); -+ if (keystoreTypeValue != null) { -+ String nonFipsKeystoreType = props.getProperty("keystore.type"); -+ props.put("keystore.type", keystoreTypeValue); -+ if (keystoreTypeValue.equals("PKCS11")) { -+ // If keystore.type is PKCS11, javax.net.ssl.keyStore -+ // must be "NONE". See JDK-8238264. -+ System.setProperty("javax.net.ssl.keyStore", "NONE"); -+ } -+ if (System.getProperty("javax.net.ssl.trustStoreType") == null) { -+ // If no trustStoreType has been set, use the -+ // previous keystore.type under FIPS mode. In -+ // a default configuration, the Trust Store will -+ // be 'cacerts' (JKS type). -+ System.setProperty("javax.net.ssl.trustStoreType", -+ nonFipsKeystoreType); -+ } -+ if (sdebug != null) { -+ sdebug.println("FIPS mode default keystore.type = " + -+ keystoreTypeValue); -+ sdebug.println("FIPS mode javax.net.ssl.keyStore = " + -+ System.getProperty("javax.net.ssl.keyStore", "")); -+ sdebug.println("FIPS mode javax.net.ssl.trustStoreType = " + -+ System.getProperty("javax.net.ssl.trustStoreType", "")); -+ } -+ } -+ loadedProps = true; -+ systemFipsEnabled = true; -+ String plainKeySupport = System.getProperty("com.redhat.fips.plainKeySupport", -+ "true"); -+ plainKeySupportEnabled = !"false".equals(plainKeySupport); -+ if (sdebug != null) { -+ if (plainKeySupportEnabled) { -+ sdebug.println("FIPS support enabled with plain key support"); -+ } else { -+ sdebug.println("FIPS support enabled without plain key support"); -+ } -+ } -+ } else { -+ if (sdebug != null) { sdebug.println("FIPS mode not detected"); } -+ } -+ } catch (Exception e) { -+ if (sdebug != null) { -+ sdebug.println("unable to load FIPS configuration"); -+ e.printStackTrace(); -+ } -+ } -+ return loadedProps; -+ } -+ -+ /** -+ * Returns whether or not global system FIPS alignment is enabled. -+ * -+ * Value is always 'false' before java.security.Security class is -+ * initialized. -+ * -+ * Call from out of this package through SharedSecrets: -+ * SharedSecrets.getJavaSecuritySystemConfiguratorAccess() -+ * .isSystemFipsEnabled(); -+ * -+ * @return a boolean value indicating whether or not global -+ * system FIPS alignment is enabled. -+ */ -+ static boolean isSystemFipsEnabled() { -+ return systemFipsEnabled; -+ } -+ -+ /** -+ * Returns {@code true} if system FIPS alignment is enabled -+ * and plain key support is allowed. Plain key support is -+ * enabled by default but can be disabled with -+ * {@code -Dcom.redhat.fips.plainKeySupport=false}. -+ * -+ * @return a boolean indicating whether plain key support -+ * should be enabled. -+ */ -+ static boolean isPlainKeySupportEnabled() { -+ return plainKeySupportEnabled; -+ } -+ -+ /** -+ * Determines whether FIPS mode should be enabled. -+ * -+ * OpenJDK FIPS mode will be enabled only if the system is in -+ * FIPS mode. -+ * -+ * Calls to this method only occur if the system property -+ * com.redhat.fips is not set to false. -+ * -+ * There are 2 possible ways in which OpenJDK detects that the system -+ * is in FIPS mode: 1) if the NSS SECMOD_GetSystemFIPSEnabled API is -+ * available at OpenJDK's built-time, it is called; 2) otherwise, the -+ * /proc/sys/crypto/fips_enabled file is read. -+ * -+ * @return true if the system is in FIPS mode -+ */ -+ private static boolean enableFips() throws IOException { -+ if (sdebug != null) { -+ sdebug.println("Calling getSystemFIPSEnabled (libsystemconf)..."); -+ } -+ try { -+ boolean fipsEnabled = getSystemFIPSEnabled(); -+ if (sdebug != null) { -+ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf) returned: " -+ + fipsEnabled); -+ } -+ return fipsEnabled; -+ } catch (IOException e) { -+ if (sdebug != null) { -+ sdebug.println("Call to getSystemFIPSEnabled (libsystemconf) failed:"); -+ sdebug.println(e.getMessage()); -+ } -+ throw e; -+ } -+ } -+} -diff --git a/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java -new file mode 100644 -index 00000000000..5c30a8b29c7 ---- /dev/null -+++ b/jdk/src/share/classes/sun/misc/JavaSecuritySystemConfiguratorAccess.java -@@ -0,0 +1,31 @@ -+/* -+ * Copyright (c) 2020, Red Hat, Inc. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Oracle designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Oracle in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+package sun.misc; -+ -+public interface JavaSecuritySystemConfiguratorAccess { -+ boolean isSystemFipsEnabled(); -+ boolean isPlainKeySupportEnabled(); -+} -diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java b/jdk/src/share/classes/sun/misc/SharedSecrets.java -index f065a2c685d..0dafe6f59cf 100644 ---- a/jdk/src/share/classes/sun/misc/SharedSecrets.java -+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java -@@ -31,6 +31,7 @@ import java.io.Console; - import java.io.FileDescriptor; - import java.io.ObjectInputStream; - import java.security.ProtectionDomain; -+import java.security.Security; - import java.security.Signature; - - import java.security.AccessController; -@@ -63,6 +64,7 @@ public class SharedSecrets { - private static JavaObjectInputStreamReadString javaObjectInputStreamReadString; - private static JavaObjectInputStreamAccess javaObjectInputStreamAccess; - private static JavaSecuritySignatureAccess javaSecuritySignatureAccess; -+ private static JavaSecuritySystemConfiguratorAccess javaSecuritySystemConfiguratorAccess; - - public static JavaUtilJarAccess javaUtilJarAccess() { - if (javaUtilJarAccess == null) { -@@ -248,4 +250,15 @@ public class SharedSecrets { - } - return javaxCryptoSealedObjectAccess; - } -+ -+ public static void setJavaSecuritySystemConfiguratorAccess(JavaSecuritySystemConfiguratorAccess jssca) { -+ javaSecuritySystemConfiguratorAccess = jssca; -+ } -+ -+ public static JavaSecuritySystemConfiguratorAccess getJavaSecuritySystemConfiguratorAccess() { -+ if (javaSecuritySystemConfiguratorAccess == null) { -+ unsafe.ensureClassInitialized(Security.class); -+ } -+ return javaSecuritySystemConfiguratorAccess; -+ } - } -diff --git a/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java -new file mode 100644 -index 00000000000..14d19450390 ---- /dev/null -+++ b/jdk/src/share/classes/sun/security/pkcs11/FIPSKeyImporter.java -@@ -0,0 +1,290 @@ -+/* -+ * Copyright (c) 2021, Red Hat, Inc. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Oracle designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Oracle in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+package sun.security.pkcs11; -+ -+import java.math.BigInteger; -+import java.security.KeyFactory; -+import java.security.Provider; -+import java.security.Security; -+import java.util.HashMap; -+import java.util.Map; -+import java.util.concurrent.locks.ReentrantLock; -+ -+import javax.crypto.Cipher; -+import javax.crypto.spec.DHPrivateKeySpec; -+import javax.crypto.spec.IvParameterSpec; -+ -+import sun.security.jca.JCAUtil; -+import sun.security.pkcs11.TemplateManager; -+import sun.security.pkcs11.wrapper.CK_ATTRIBUTE; -+import sun.security.pkcs11.wrapper.CK_MECHANISM; -+import static sun.security.pkcs11.wrapper.PKCS11Constants.*; -+import sun.security.pkcs11.wrapper.PKCS11Exception; -+import sun.security.rsa.RSAUtil.KeyType; -+import sun.security.util.Debug; -+import sun.security.util.ECUtil; -+ -+final class FIPSKeyImporter { -+ -+ private static final Debug debug = -+ Debug.getInstance("sunpkcs11"); -+ -+ private static P11Key importerKey = null; -+ private static final ReentrantLock importerKeyLock = new ReentrantLock(); -+ private static CK_MECHANISM importerKeyMechanism = null; -+ private static Cipher importerCipher = null; -+ -+ private static Provider sunECProvider = null; -+ private static final ReentrantLock sunECProviderLock = new ReentrantLock(); -+ -+ private static KeyFactory DHKF = null; -+ private static final ReentrantLock DHKFLock = new ReentrantLock(); -+ -+ static Long importKey(SunPKCS11 sunPKCS11, long hSession, CK_ATTRIBUTE[] attributes) -+ throws PKCS11Exception { -+ long keyID = -1; -+ Token token = sunPKCS11.getToken(); -+ if (debug != null) { -+ debug.println("Private or Secret key will be imported in" + -+ " system FIPS mode."); -+ } -+ if (importerKey == null) { -+ importerKeyLock.lock(); -+ try { -+ if (importerKey == null) { -+ if (importerKeyMechanism == null) { -+ // Importer Key creation has not been tried yet. Try it. -+ createImporterKey(token); -+ } -+ if (importerKey == null || importerCipher == null) { -+ if (debug != null) { -+ debug.println("Importer Key could not be" + -+ " generated."); -+ } -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } -+ if (debug != null) { -+ debug.println("Importer Key successfully" + -+ " generated."); -+ } -+ } -+ } finally { -+ importerKeyLock.unlock(); -+ } -+ } -+ long importerKeyID = importerKey.getKeyID(); -+ try { -+ byte[] keyBytes = null; -+ byte[] encKeyBytes = null; -+ long keyClass = 0L; -+ long keyType = 0L; -+ Map<Long, CK_ATTRIBUTE> attrsMap = new HashMap<>(); -+ for (CK_ATTRIBUTE attr : attributes) { -+ if (attr.type == CKA_CLASS) { -+ keyClass = attr.getLong(); -+ } else if (attr.type == CKA_KEY_TYPE) { -+ keyType = attr.getLong(); -+ } -+ attrsMap.put(attr.type, attr); -+ } -+ BigInteger v = null; -+ if (keyClass == CKO_PRIVATE_KEY) { -+ if (keyType == CKK_RSA) { -+ if (debug != null) { -+ debug.println("Importing an RSA private key..."); -+ } -+ keyBytes = sun.security.rsa.RSAPrivateCrtKeyImpl.newKey( -+ KeyType.RSA, -+ null, -+ ((v = attrsMap.get(CKA_MODULUS).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PUBLIC_EXPONENT).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PRIVATE_EXPONENT).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PRIME_1).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PRIME_2).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_EXPONENT_1).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_EXPONENT_2).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_COEFFICIENT).getBigInteger()) != null) -+ ? v : BigInteger.ZERO -+ ).getEncoded(); -+ } else if (keyType == CKK_DSA) { -+ if (debug != null) { -+ debug.println("Importing a DSA private key..."); -+ } -+ keyBytes = new sun.security.provider.DSAPrivateKey( -+ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_SUBPRIME).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null) -+ ? v : BigInteger.ZERO -+ ).getEncoded(); -+ if (token.config.getNssNetscapeDbWorkaround() && -+ attrsMap.get(CKA_NETSCAPE_DB) == null) { -+ attrsMap.put(CKA_NETSCAPE_DB, -+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO)); -+ } -+ } else if (keyType == CKK_EC) { -+ if (debug != null) { -+ debug.println("Importing an EC private key..."); -+ } -+ if (sunECProvider == null) { -+ sunECProviderLock.lock(); -+ try { -+ if (sunECProvider == null) { -+ sunECProvider = Security.getProvider("SunEC"); -+ } -+ } finally { -+ sunECProviderLock.unlock(); -+ } -+ } -+ keyBytes = P11ECUtil.generateECPrivateKey( -+ ((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ECUtil.getECParameterSpec(sunECProvider, -+ attrsMap.get(CKA_EC_PARAMS).getByteArray())) -+ .getEncoded(); -+ if (token.config.getNssNetscapeDbWorkaround() && -+ attrsMap.get(CKA_NETSCAPE_DB) == null) { -+ attrsMap.put(CKA_NETSCAPE_DB, -+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO)); -+ } -+ } else if (keyType == CKK_DH) { -+ if (debug != null) { -+ debug.println("Importing a Diffie-Hellman private key..."); -+ } -+ if (DHKF == null) { -+ DHKFLock.lock(); -+ try { -+ if (DHKF == null) { -+ DHKF = KeyFactory.getInstance( -+ "DH", P11Util.getSunJceProvider()); -+ } -+ } finally { -+ DHKFLock.unlock(); -+ } -+ } -+ DHPrivateKeySpec spec = new DHPrivateKeySpec -+ (((v = attrsMap.get(CKA_VALUE).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_PRIME).getBigInteger()) != null) -+ ? v : BigInteger.ZERO, -+ ((v = attrsMap.get(CKA_BASE).getBigInteger()) != null) -+ ? v : BigInteger.ZERO); -+ keyBytes = DHKF.generatePrivate(spec).getEncoded(); -+ if (token.config.getNssNetscapeDbWorkaround() && -+ attrsMap.get(CKA_NETSCAPE_DB) == null) { -+ attrsMap.put(CKA_NETSCAPE_DB, -+ new CK_ATTRIBUTE(CKA_NETSCAPE_DB, BigInteger.ZERO)); -+ } -+ } else { -+ if (debug != null) { -+ debug.println("Unrecognized private key type."); -+ } -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } -+ } else if (keyClass == CKO_SECRET_KEY) { -+ if (debug != null) { -+ debug.println("Importing a secret key..."); -+ } -+ keyBytes = attrsMap.get(CKA_VALUE).getByteArray(); -+ } -+ if (keyBytes == null || keyBytes.length == 0) { -+ if (debug != null) { -+ debug.println("Private or secret key plain bytes could" + -+ " not be obtained. Import failed."); -+ } -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } -+ importerCipher.init(Cipher.ENCRYPT_MODE, importerKey, -+ new IvParameterSpec((byte[])importerKeyMechanism.pParameter), -+ null); -+ attributes = new CK_ATTRIBUTE[attrsMap.size()]; -+ attrsMap.values().toArray(attributes); -+ encKeyBytes = importerCipher.doFinal(keyBytes); -+ attributes = token.getAttributes(TemplateManager.O_IMPORT, -+ keyClass, keyType, attributes); -+ keyID = token.p11.C_UnwrapKey(hSession, -+ importerKeyMechanism, importerKeyID, encKeyBytes, attributes); -+ if (debug != null) { -+ debug.println("Imported key ID: " + keyID); -+ } -+ } catch (Throwable t) { -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } finally { -+ importerKey.releaseKeyID(); -+ } -+ return Long.valueOf(keyID); -+ } -+ -+ private static void createImporterKey(Token token) { -+ if (debug != null) { -+ debug.println("Generating Importer Key..."); -+ } -+ byte[] iv = new byte[16]; -+ JCAUtil.getSecureRandom().nextBytes(iv); -+ importerKeyMechanism = new CK_MECHANISM(CKM_AES_CBC_PAD, iv); -+ try { -+ CK_ATTRIBUTE[] attributes = token.getAttributes(TemplateManager.O_GENERATE, -+ CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] { -+ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY), -+ new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3)}); -+ Session s = null; -+ try { -+ s = token.getObjSession(); -+ long keyID = token.p11.C_GenerateKey( -+ s.id(), new CK_MECHANISM(CKM_AES_KEY_GEN), -+ attributes); -+ if (debug != null) { -+ debug.println("Importer Key ID: " + keyID); -+ } -+ importerKey = (P11Key)P11Key.secretKey(s, keyID, "AES", -+ 256 >> 3, null); -+ } catch (PKCS11Exception e) { -+ // best effort -+ } finally { -+ token.releaseSession(s); -+ } -+ if (importerKey != null) { -+ importerCipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); -+ } -+ } catch (Throwable t) { -+ // best effort -+ importerKey = null; -+ importerCipher = null; -+ // importerKeyMechanism value is kept initialized to indicate that -+ // Importer Key creation has been tried and failed. -+ } -+ } -+} -diff --git a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java -index fedcd7743ef..f9d70863bd1 100644 ---- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java -+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java -@@ -26,6 +26,9 @@ - package sun.security.pkcs11; - - import java.io.*; -+import java.lang.invoke.MethodHandle; -+import java.lang.invoke.MethodHandles; -+import java.lang.invoke.MethodType; - import java.util.*; - - import java.security.*; -@@ -42,6 +45,8 @@ import javax.security.auth.callback.ConfirmationCallback; - import javax.security.auth.callback.PasswordCallback; - import javax.security.auth.callback.TextOutputCallback; - -+import sun.misc.SharedSecrets; -+ - import sun.security.util.Debug; - import sun.security.util.ResourcesMgr; - -@@ -58,6 +63,29 @@ import static sun.security.pkcs11.wrapper.PKCS11Constants.*; - */ - public final class SunPKCS11 extends AuthProvider { - -+ private static final boolean systemFipsEnabled = SharedSecrets -+ .getJavaSecuritySystemConfiguratorAccess().isSystemFipsEnabled(); -+ -+ private static final boolean plainKeySupportEnabled = SharedSecrets -+ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled(); -+ -+ private static final MethodHandle fipsImportKey; -+ static { -+ MethodHandle fipsImportKeyTmp = null; -+ if (plainKeySupportEnabled) { -+ try { -+ fipsImportKeyTmp = MethodHandles.lookup().findStatic( -+ FIPSKeyImporter.class, "importKey", -+ MethodType.methodType(Long.class, SunPKCS11.class, -+ long.class, CK_ATTRIBUTE[].class)); -+ } catch (Throwable t) { -+ throw new SecurityException("FIPS key importer initialization" + -+ " failed", t); -+ } -+ } -+ fipsImportKey = fipsImportKeyTmp; -+ } -+ - private static final long serialVersionUID = -1354835039035306505L; - - static final Debug debug = Debug.getInstance("sunpkcs11"); -@@ -309,10 +337,15 @@ public final class SunPKCS11 extends AuthProvider { - // request multithreaded access first - initArgs.flags = CKF_OS_LOCKING_OK; - PKCS11 tmpPKCS11; -+ MethodHandle fipsKeyImporter = null; -+ if (plainKeySupportEnabled) { -+ fipsKeyImporter = MethodHandles.insertArguments( -+ fipsImportKey, 0, this); -+ } - try { - tmpPKCS11 = PKCS11.getInstance( - library, functionList, initArgs, -- config.getOmitInitialize()); -+ config.getOmitInitialize(), fipsKeyImporter); - } catch (PKCS11Exception e) { - if (debug != null) { - debug.println("Multi-threaded initialization failed: " + e); -@@ -328,7 +361,7 @@ public final class SunPKCS11 extends AuthProvider { - initArgs.flags = 0; - } - tmpPKCS11 = PKCS11.getInstance(library, -- functionList, initArgs, config.getOmitInitialize()); -+ functionList, initArgs, config.getOmitInitialize(), fipsKeyImporter); - } - p11 = tmpPKCS11; - -@@ -368,6 +401,24 @@ public final class SunPKCS11 extends AuthProvider { - if (nssModule != null) { - nssModule.setProvider(this); - } -+ if (systemFipsEnabled) { -+ // The NSS Software Token in FIPS 140-2 mode requires a user -+ // login for most operations. See sftk_fipsCheck. The NSS DB -+ // (/etc/pki/nssdb) PIN is empty. -+ Session session = null; -+ try { -+ session = token.getOpSession(); -+ p11.C_Login(session.id(), CKU_USER, new char[] {}); -+ } catch (PKCS11Exception p11e) { -+ if (debug != null) { -+ debug.println("Error during token login: " + -+ p11e.getMessage()); -+ } -+ throw p11e; -+ } finally { -+ token.releaseSession(session); -+ } -+ } - } catch (Exception e) { - if (config.getHandleStartupErrors() == Config.ERR_IGNORE_ALL) { - throw new UnsupportedOperationException -diff --git a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java -index 2e42d1d9fb0..1b7eed1c656 100644 ---- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java -+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java -@@ -49,6 +49,7 @@ package sun.security.pkcs11.wrapper; - - import java.io.File; - import java.io.IOException; -+import java.lang.invoke.MethodHandle; - import java.util.*; - - import java.security.AccessController; -@@ -145,18 +146,41 @@ public class PKCS11 { - this.pkcs11ModulePath = pkcs11ModulePath; - } - -+ /* -+ * Compatibility wrapper to allow this method to work as before -+ * when FIPS mode support is not active. -+ */ -+ public static synchronized PKCS11 getInstance(String pkcs11ModulePath, -+ String functionList, CK_C_INITIALIZE_ARGS pInitArgs, -+ boolean omitInitialize) throws IOException, PKCS11Exception { -+ return getInstance(pkcs11ModulePath, functionList, -+ pInitArgs, omitInitialize, null); -+ } -+ - public static synchronized PKCS11 getInstance(String pkcs11ModulePath, - String functionList, CK_C_INITIALIZE_ARGS pInitArgs, -- boolean omitInitialize) throws IOException, PKCS11Exception { -+ boolean omitInitialize, MethodHandle fipsKeyImporter) -+ throws IOException, PKCS11Exception { - // we may only call C_Initialize once per native .so/.dll - // so keep a cache using the (non-canonicalized!) path - PKCS11 pkcs11 = moduleMap.get(pkcs11ModulePath); - if (pkcs11 == null) { -+ boolean nssFipsMode = fipsKeyImporter != null; - if ((pInitArgs != null) - && ((pInitArgs.flags & CKF_OS_LOCKING_OK) != 0)) { -- pkcs11 = new PKCS11(pkcs11ModulePath, functionList); -+ if (nssFipsMode) { -+ pkcs11 = new FIPSPKCS11(pkcs11ModulePath, functionList, -+ fipsKeyImporter); -+ } else { -+ pkcs11 = new PKCS11(pkcs11ModulePath, functionList); -+ } - } else { -- pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList); -+ if (nssFipsMode) { -+ pkcs11 = new SynchronizedFIPSPKCS11(pkcs11ModulePath, -+ functionList, fipsKeyImporter); -+ } else { -+ pkcs11 = new SynchronizedPKCS11(pkcs11ModulePath, functionList); -+ } - } - if (omitInitialize == false) { - try { -@@ -1905,4 +1929,69 @@ static class SynchronizedPKCS11 extends PKCS11 { - super.C_GenerateRandom(hSession, randomData); - } - } -+ -+// PKCS11 subclass that allows using plain private or secret keys in -+// FIPS-configured NSS Software Tokens. Only used when System FIPS -+// is enabled. -+static class FIPSPKCS11 extends PKCS11 { -+ private MethodHandle fipsKeyImporter; -+ FIPSPKCS11(String pkcs11ModulePath, String functionListName, -+ MethodHandle fipsKeyImporter) throws IOException { -+ super(pkcs11ModulePath, functionListName); -+ this.fipsKeyImporter = fipsKeyImporter; -+ } -+ -+ public synchronized long C_CreateObject(long hSession, -+ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception { -+ // Creating sensitive key objects from plain key material in a -+ // FIPS-configured NSS Software Token is not allowed. We apply -+ // a key-unwrapping scheme to achieve so. -+ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) { -+ try { -+ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate)) -+ .longValue(); -+ } catch (Throwable t) { -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } -+ } -+ return super.C_CreateObject(hSession, pTemplate); -+ } -+} -+ -+// FIPSPKCS11 synchronized counterpart. -+static class SynchronizedFIPSPKCS11 extends SynchronizedPKCS11 { -+ private MethodHandle fipsKeyImporter; -+ SynchronizedFIPSPKCS11(String pkcs11ModulePath, String functionListName, -+ MethodHandle fipsKeyImporter) throws IOException { -+ super(pkcs11ModulePath, functionListName); -+ this.fipsKeyImporter = fipsKeyImporter; -+ } -+ -+ public synchronized long C_CreateObject(long hSession, -+ CK_ATTRIBUTE[] pTemplate) throws PKCS11Exception { -+ // See FIPSPKCS11::C_CreateObject. -+ if (FIPSPKCS11Helper.isSensitiveObject(pTemplate)) { -+ try { -+ return ((Long)fipsKeyImporter.invoke(hSession, pTemplate)) -+ .longValue(); -+ } catch (Throwable t) { -+ throw new PKCS11Exception(CKR_GENERAL_ERROR); -+ } -+ } -+ return super.C_CreateObject(hSession, pTemplate); -+ } -+} -+ -+private static class FIPSPKCS11Helper { -+ static boolean isSensitiveObject(CK_ATTRIBUTE[] pTemplate) { -+ for (CK_ATTRIBUTE attr : pTemplate) { -+ if (attr.type == CKA_CLASS && -+ (attr.getLong() == CKO_PRIVATE_KEY || -+ attr.getLong() == CKO_SECRET_KEY)) { -+ return true; -+ } -+ } -+ return false; -+ } -+} - } -diff --git a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java -index ffee2c1603b..98119479823 100644 ---- a/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java -+++ b/jdk/src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java -@@ -33,8 +33,13 @@ import java.security.KeyStore.*; - - import javax.net.ssl.*; - -+import sun.misc.SharedSecrets; -+ - abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi { - -+ private static final boolean plainKeySupportEnabled = SharedSecrets -+ .getJavaSecuritySystemConfiguratorAccess().isPlainKeySupportEnabled(); -+ - X509ExtendedKeyManager keyManager; - boolean isInitialized; - -@@ -62,7 +67,8 @@ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi { - KeyStoreException, NoSuchAlgorithmException, - UnrecoverableKeyException { - if ((ks != null) && SunJSSE.isFIPS()) { -- if (ks.getProvider() != SunJSSE.cryptoProvider) { -+ if (ks.getProvider() != SunJSSE.cryptoProvider && -+ !plainKeySupportEnabled) { - throw new KeyStoreException("FIPS mode: KeyStore must be " - + "from provider " + SunJSSE.cryptoProvider.getName()); - } -@@ -91,8 +97,8 @@ abstract class KeyManagerFactoryImpl extends KeyManagerFactorySpi { - keyManager = new X509KeyManagerImpl( - Collections.<Builder>emptyList()); - } else { -- if (SunJSSE.isFIPS() && -- (ks.getProvider() != SunJSSE.cryptoProvider)) { -+ if (SunJSSE.isFIPS() && (ks.getProvider() != SunJSSE.cryptoProvider) -+ && !plainKeySupportEnabled) { - throw new KeyStoreException( - "FIPS mode: KeyStore must be " + - "from provider " + SunJSSE.cryptoProvider.getName()); -diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java -index cd0e9e98df9..fba760187c0 100644 ---- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java -+++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java -@@ -31,6 +31,7 @@ import java.security.*; - import java.security.cert.*; - import java.util.*; - import javax.net.ssl.*; -+import sun.misc.SharedSecrets; - import sun.security.action.GetPropertyAction; - import sun.security.provider.certpath.AlgorithmChecker; - import sun.security.validator.Validator; -@@ -539,20 +540,38 @@ public abstract class SSLContextImpl extends SSLContextSpi { - - static { - if (SunJSSE.isFIPS()) { -- supportedProtocols = Arrays.asList( -- ProtocolVersion.TLS13, -- ProtocolVersion.TLS12, -- ProtocolVersion.TLS11, -- ProtocolVersion.TLS10 -- ); -+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess() -+ .isSystemFipsEnabled()) { -+ // RH1860986: TLSv1.3 key derivation not supported with -+ // the Security Providers available in system FIPS mode. -+ supportedProtocols = Arrays.asList( -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ ); - -- serverDefaultProtocols = getAvailableProtocols( -- new ProtocolVersion[] { -- ProtocolVersion.TLS13, -- ProtocolVersion.TLS12, -- ProtocolVersion.TLS11, -- ProtocolVersion.TLS10 -- }); -+ serverDefaultProtocols = getAvailableProtocols( -+ new ProtocolVersion[] { -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ }); -+ } else { -+ supportedProtocols = Arrays.asList( -+ ProtocolVersion.TLS13, -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ ); -+ -+ serverDefaultProtocols = getAvailableProtocols( -+ new ProtocolVersion[] { -+ ProtocolVersion.TLS13, -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ }); -+ } - } else { - supportedProtocols = Arrays.asList( - ProtocolVersion.TLS13, -@@ -612,6 +631,16 @@ public abstract class SSLContextImpl extends SSLContextSpi { - - static ProtocolVersion[] getSupportedProtocols() { - if (SunJSSE.isFIPS()) { -+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess() -+ .isSystemFipsEnabled()) { -+ // RH1860986: TLSv1.3 key derivation not supported with -+ // the Security Providers available in system FIPS mode. -+ return new ProtocolVersion[] { -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ }; -+ } - return new ProtocolVersion[] { - ProtocolVersion.TLS13, - ProtocolVersion.TLS12, -@@ -939,6 +968,16 @@ public abstract class SSLContextImpl extends SSLContextSpi { - - static ProtocolVersion[] getProtocols() { - if (SunJSSE.isFIPS()) { -+ if (SharedSecrets.getJavaSecuritySystemConfiguratorAccess() -+ .isSystemFipsEnabled()) { -+ // RH1860986: TLSv1.3 key derivation not supported with -+ // the Security Providers available in system FIPS mode. -+ return new ProtocolVersion[] { -+ ProtocolVersion.TLS12, -+ ProtocolVersion.TLS11, -+ ProtocolVersion.TLS10 -+ }; -+ } - return new ProtocolVersion[]{ - ProtocolVersion.TLS12, - ProtocolVersion.TLS11, -diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java -index 2845dc37938..52337a7b6cf 100644 ---- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java -+++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java -@@ -30,6 +30,8 @@ import static sun.security.util.SecurityConstants.PROVIDER_VER; - - import java.security.*; - -+import sun.misc.SharedSecrets; -+ - /** - * The JSSE provider. - * -@@ -215,8 +217,13 @@ public abstract class SunJSSE extends java.security.Provider { - "sun.security.ssl.SSLContextImpl$TLS11Context"); - put("SSLContext.TLSv1.2", - "sun.security.ssl.SSLContextImpl$TLS12Context"); -- put("SSLContext.TLSv1.3", -- "sun.security.ssl.SSLContextImpl$TLS13Context"); -+ if (!SharedSecrets.getJavaSecuritySystemConfiguratorAccess() -+ .isSystemFipsEnabled()) { -+ // RH1860986: TLSv1.3 key derivation not supported with -+ // the Security Providers available in system FIPS mode. -+ put("SSLContext.TLSv1.3", -+ "sun.security.ssl.SSLContextImpl$TLS13Context"); -+ } - put("SSLContext.TLS", - "sun.security.ssl.SSLContextImpl$TLSContext"); - if (isfips == false) { -diff --git a/jdk/src/share/lib/security/java.security-aix b/jdk/src/share/lib/security/java.security-aix -index d3d64b3facd..bfe0c593adb 100644 ---- a/jdk/src/share/lib/security/java.security-aix -+++ b/jdk/src/share/lib/security/java.security-aix -@@ -287,6 +287,13 @@ package.definition=sun.,\ - # - security.overridePropertiesFile=true - -+# -+# Determines whether this properties file will be appended to -+# using the system properties file stored at -+# /etc/crypto-policies/back-ends/java.config -+# -+security.useSystemPropertiesFile=false -+ - # - # Determines the default key and trust manager factory algorithms for - # the javax.net.ssl package. -diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux -index db610d4bfbb..9d1c8fe8a8e 100644 ---- a/jdk/src/share/lib/security/java.security-linux -+++ b/jdk/src/share/lib/security/java.security-linux -@@ -75,6 +75,14 @@ security.provider.7=com.sun.security.sasl.Provider - security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI - security.provider.9=sun.security.smartcardio.SunPCSC - -+# -+# Security providers used when FIPS mode support is active -+# -+fips.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.fips.cfg -+fips.provider.2=sun.security.provider.Sun -+fips.provider.3=sun.security.ec.SunEC -+fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS -+ - # - # Sun Provider SecureRandom seed source. - # -@@ -170,6 +178,11 @@ policy.ignoreIdentityScope=false - # - keystore.type=jks - -+# -+# Default keystore type used when global crypto-policies are set to FIPS. -+# -+fips.keystore.type=PKCS11 -+ - # - # Controls compatibility mode for the JKS keystore type. - # -@@ -287,6 +300,13 @@ package.definition=sun.,\ - # - security.overridePropertiesFile=true - -+# -+# Determines whether this properties file will be appended to -+# using the system properties file stored at -+# /etc/crypto-policies/back-ends/java.config -+# -+security.useSystemPropertiesFile=false -+ - # - # Determines the default key and trust manager factory algorithms for - # the javax.net.ssl package. -diff --git a/jdk/src/share/lib/security/java.security-macosx b/jdk/src/share/lib/security/java.security-macosx -index a919ba3d5cd..19047c61097 100644 ---- a/jdk/src/share/lib/security/java.security-macosx -+++ b/jdk/src/share/lib/security/java.security-macosx -@@ -290,6 +290,13 @@ package.definition=sun.,\ - # - security.overridePropertiesFile=true - -+# -+# Determines whether this properties file will be appended to -+# using the system properties file stored at -+# /etc/crypto-policies/back-ends/java.config -+# -+security.useSystemPropertiesFile=false -+ - # - # Determines the default key and trust manager factory algorithms for - # the javax.net.ssl package. -diff --git a/jdk/src/share/lib/security/java.security-solaris b/jdk/src/share/lib/security/java.security-solaris -index 86265ba5fb6..7eda556ae13 100644 ---- a/jdk/src/share/lib/security/java.security-solaris -+++ b/jdk/src/share/lib/security/java.security-solaris -@@ -288,6 +288,13 @@ package.definition=sun.,\ - # - security.overridePropertiesFile=true - -+# -+# Determines whether this properties file will be appended to -+# using the system properties file stored at -+# /etc/crypto-policies/back-ends/java.config -+# -+security.useSystemPropertiesFile=false -+ - # - # Determines the default key and trust manager factory algorithms for - # the javax.net.ssl package. -diff --git a/jdk/src/share/lib/security/java.security-windows b/jdk/src/share/lib/security/java.security-windows -index 9b4bda23cbe..dfa1a669aa9 100644 ---- a/jdk/src/share/lib/security/java.security-windows -+++ b/jdk/src/share/lib/security/java.security-windows -@@ -290,6 +290,13 @@ package.definition=sun.,\ - # - security.overridePropertiesFile=true - -+# -+# Determines whether this properties file will be appended to -+# using the system properties file stored at -+# /etc/crypto-policies/back-ends/java.config -+# -+security.useSystemPropertiesFile=false -+ - # - # Determines the default key and trust manager factory algorithms for - # the javax.net.ssl package. -diff --git a/jdk/src/solaris/native/java/security/systemconf.c b/jdk/src/solaris/native/java/security/systemconf.c -new file mode 100644 -index 00000000000..8dcb7d9073f ---- /dev/null -+++ b/jdk/src/solaris/native/java/security/systemconf.c -@@ -0,0 +1,224 @@ -+/* -+ * Copyright (c) 2021, Red Hat, Inc. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Oracle designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Oracle in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+#include <jni.h> -+#include <jni_util.h> -+#include "jvm_md.h" -+#include <stdio.h> -+ -+#ifdef SYSCONF_NSS -+#include <nss3/pk11pub.h> -+#else -+#include <dlfcn.h> -+#endif //SYSCONF_NSS -+ -+#include "java_security_SystemConfigurator.h" -+ -+#define MSG_MAX_SIZE 256 -+#define FIPS_ENABLED_PATH "/proc/sys/crypto/fips_enabled" -+ -+typedef int (SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE)(void); -+ -+static SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE *getSystemFIPSEnabled; -+static jmethodID debugPrintlnMethodID = NULL; -+static jobject debugObj = NULL; -+ -+static void dbgPrint(JNIEnv *env, const char* msg) -+{ -+ jstring jMsg; -+ if (debugObj != NULL) { -+ jMsg = (*env)->NewStringUTF(env, msg); -+ CHECK_NULL(jMsg); -+ (*env)->CallVoidMethod(env, debugObj, debugPrintlnMethodID, jMsg); -+ } -+} -+ -+static void throwIOException(JNIEnv *env, const char *msg) -+{ -+ jclass cls = (*env)->FindClass(env, "java/io/IOException"); -+ if (cls != 0) -+ (*env)->ThrowNew(env, cls, msg); -+} -+ -+static void handle_msg(JNIEnv *env, const char* msg, int msg_bytes) -+{ -+ if (msg_bytes > 0 && msg_bytes < MSG_MAX_SIZE) { -+ dbgPrint(env, msg); -+ } else { -+ dbgPrint(env, "systemconf: cannot render message"); -+ } -+} -+ -+// Only used when NSS is not linked at build time -+#ifndef SYSCONF_NSS -+ -+static void *nss_handle; -+ -+static jboolean loadNSS(JNIEnv *env) -+{ -+ char msg[MSG_MAX_SIZE]; -+ int msg_bytes; -+ const char* errmsg; -+ -+ nss_handle = dlopen(JNI_LIB_NAME("nss3"), RTLD_LAZY); -+ if (nss_handle == NULL) { -+ errmsg = dlerror(); -+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "loadNSS: dlopen: %s\n", -+ errmsg); -+ handle_msg(env, msg, msg_bytes); -+ return JNI_FALSE; -+ } -+ dlerror(); /* Clear errors */ -+ getSystemFIPSEnabled = (SECMOD_GET_SYSTEM_FIPS_ENABLED_TYPE*)dlsym(nss_handle, "SECMOD_GetSystemFIPSEnabled"); -+ if ((errmsg = dlerror()) != NULL) { -+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "loadNSS: dlsym: %s\n", -+ errmsg); -+ handle_msg(env, msg, msg_bytes); -+ return JNI_FALSE; -+ } -+ return JNI_TRUE; -+} -+ -+static void closeNSS(JNIEnv *env) -+{ -+ char msg[MSG_MAX_SIZE]; -+ int msg_bytes; -+ const char* errmsg; -+ -+ if (dlclose(nss_handle) != 0) { -+ errmsg = dlerror(); -+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "closeNSS: dlclose: %s\n", -+ errmsg); -+ handle_msg(env, msg, msg_bytes); -+ } -+} -+ -+#endif -+ -+/* -+ * Class: java_security_SystemConfigurator -+ * Method: JNI_OnLoad -+ */ -+JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) -+{ -+ JNIEnv *env; -+ jclass sysConfCls, debugCls; -+ jfieldID sdebugFld; -+ -+ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) { -+ return JNI_EVERSION; /* JNI version not supported */ -+ } -+ -+ sysConfCls = (*env)->FindClass(env,"java/security/SystemConfigurator"); -+ if (sysConfCls == NULL) { -+ printf("libsystemconf: SystemConfigurator class not found\n"); -+ return JNI_ERR; -+ } -+ sdebugFld = (*env)->GetStaticFieldID(env, sysConfCls, -+ "sdebug", "Lsun/security/util/Debug;"); -+ if (sdebugFld == NULL) { -+ printf("libsystemconf: SystemConfigurator::sdebug field not found\n"); -+ return JNI_ERR; -+ } -+ debugObj = (*env)->GetStaticObjectField(env, sysConfCls, sdebugFld); -+ if (debugObj != NULL) { -+ debugCls = (*env)->FindClass(env,"sun/security/util/Debug"); -+ if (debugCls == NULL) { -+ printf("libsystemconf: Debug class not found\n"); -+ return JNI_ERR; -+ } -+ debugPrintlnMethodID = (*env)->GetMethodID(env, debugCls, -+ "println", "(Ljava/lang/String;)V"); -+ if (debugPrintlnMethodID == NULL) { -+ printf("libsystemconf: Debug::println(String) method not found\n"); -+ return JNI_ERR; -+ } -+ debugObj = (*env)->NewGlobalRef(env, debugObj); -+ } -+ -+#ifdef SYSCONF_NSS -+ getSystemFIPSEnabled = *SECMOD_GetSystemFIPSEnabled; -+#else -+ if (loadNSS(env) == JNI_FALSE) { -+ dbgPrint(env, "libsystemconf: Failed to load NSS library."); -+ } -+#endif -+ -+ return (*env)->GetVersion(env); -+} -+ -+/* -+ * Class: java_security_SystemConfigurator -+ * Method: JNI_OnUnload -+ */ -+JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved) -+{ -+ JNIEnv *env; -+ -+ if (debugObj != NULL) { -+ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_2) != JNI_OK) { -+ return; /* Should not happen */ -+ } -+#ifndef SYSCONF_NSS -+ closeNSS(env); -+#endif -+ (*env)->DeleteGlobalRef(env, debugObj); -+ } -+} -+ -+JNIEXPORT jboolean JNICALL Java_java_security_SystemConfigurator_getSystemFIPSEnabled -+ (JNIEnv *env, jclass cls) -+{ -+ int fips_enabled; -+ char msg[MSG_MAX_SIZE]; -+ int msg_bytes; -+ -+ if (getSystemFIPSEnabled != NULL) { -+ dbgPrint(env, "getSystemFIPSEnabled: calling SECMOD_GetSystemFIPSEnabled"); -+ fips_enabled = (*getSystemFIPSEnabled)(); -+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \ -+ " SECMOD_GetSystemFIPSEnabled returned 0x%x", fips_enabled); -+ handle_msg(env, msg, msg_bytes); -+ return (fips_enabled == 1 ? JNI_TRUE : JNI_FALSE); -+ } else { -+ FILE *fe; -+ -+ dbgPrint(env, "getSystemFIPSEnabled: reading " FIPS_ENABLED_PATH); -+ if ((fe = fopen(FIPS_ENABLED_PATH, "r")) == NULL) { -+ throwIOException(env, "Cannot open " FIPS_ENABLED_PATH); -+ return JNI_FALSE; -+ } -+ fips_enabled = fgetc(fe); -+ fclose(fe); -+ if (fips_enabled == EOF) { -+ throwIOException(env, "Cannot read " FIPS_ENABLED_PATH); -+ return JNI_FALSE; -+ } -+ msg_bytes = snprintf(msg, MSG_MAX_SIZE, "getSystemFIPSEnabled:" \ -+ " read character is '%c'", fips_enabled); -+ handle_msg(env, msg, msg_bytes); -+ return (fips_enabled == '1' ? JNI_TRUE : JNI_FALSE); -+ } -+} diff --git a/generate_singlerepo_source_tarball.sh b/generate_singlerepo_source_tarball.sh deleted file mode 100644 index 62218ba..0000000 --- a/generate_singlerepo_source_tarball.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash -# Generates the 'source tarball' for JDK projects. -# -# Example: -# When used from local repo set REPO_ROOT pointing to file:// with your repo -# if your local repo follows upstream forests conventions, you may be enough by setting OPENJDK_URL -# if you wont to use local copy of patch PR2126 set path to it to PR2126 variable -# -# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg: -# PROJECT_NAME=jdk -# REPO_NAME=jdk -# VERSION=tip -# or to eg prepare systemtap: -# icedtea7's jstack and other tapsets -# VERSION=6327cf1cea9e -# REPO_NAME=icedtea7-2.6 -# PROJECT_NAME=release -# OPENJDK_URL=http://icedtea.classpath.org/hg/ -# TO_COMPRESS="*/tapset" -# -# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set) - -# This script creates a single source tarball out of the repository -# based on the given tag and removes code not allowed in fedora/rhel. For -# consistency, the source tarball will always contain 'openjdk' as the top -# level folder, name is created, based on parameter -# - -if [ ! "x$PR2126" = "x" ] ; then - if [ ! -f "$PR2126" ] ; then - echo "You have specified PR2126 as $PR2126 but it does not exists. exiting" - exit 1 - fi -fi - -set -e - -OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net -COMPRESSION_DEFAULT=xz - -if [ "x$1" = "xhelp" ] ; then - echo -e "Behaviour may be specified by setting the following variables:\n" - echo "VERSION - the version of the specified OpenJDK project" - echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)" - echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)" - echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})" - echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})" - echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)" - echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)" - echo "TO_COMPRESS - what part of clone to pack (default is openjdk)" - echo "PR2126 - the path to the PR2126 patch to apply (optional; downloaded if unavailable)" - exit 1; -fi - - -if [ "x$VERSION" = "x" ] ; then - echo "No VERSION specified" - exit -2 -fi -echo "Version: ${VERSION}" - -# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT -if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then - if [ "x$PROJECT_NAME" = "x" ] ; then - echo "No PROJECT_NAME specified" - exit -1 - fi - echo "Project name: ${PROJECT_NAME}" - if [ "x$REPO_NAME" = "x" ] ; then - echo "No REPO_NAME specified" - exit -3 - fi - echo "Repository name: ${REPO_NAME}" -fi - -if [ "x$OPENJDK_URL" = "x" ] ; then - OPENJDK_URL=${OPENJDK_URL_DEFAULT} - echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}" -else - echo "OpenJDK URL: ${OPENJDK_URL}" -fi - -if [ "x$COMPRESSION" = "x" ] ; then - # rhel 5 needs tar.gz - COMPRESSION=${COMPRESSION_DEFAULT} -fi -echo "Creating a tar.${COMPRESSION} archive" - -if [ "x$FILE_NAME_ROOT" = "x" ] ; then - FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION} - echo "No file name root specified; default to ${FILE_NAME_ROOT}" -fi -if [ "x$REPO_ROOT" = "x" ] ; then - REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}" - echo "No repository root specified; default to ${REPO_ROOT}" -fi; - -if [ "x$TO_COMPRESS" = "x" ] ; then - TO_COMPRESS="openjdk" - echo "No to be compressed targets specified, ; default to ${TO_COMPRESS}" -fi; - -if [ -d ${FILE_NAME_ROOT} ] ; then - echo "exists exists exists exists exists exists exists " - echo "reusing reusing reusing reusing reusing reusing " - echo ${FILE_NAME_ROOT} -else - mkdir "${FILE_NAME_ROOT}" - pushd "${FILE_NAME_ROOT}" - echo "Cloning ${VERSION} root repository from ${REPO_ROOT}" - hg clone ${REPO_ROOT} openjdk -r ${VERSION} - popd -fi -pushd "${FILE_NAME_ROOT}" - if [ -d openjdk/src ]; then - pushd openjdk - echo "Removing EC source code we don't build" - CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl - rm -vrf $CRYPTO_PATH - echo "Syncing EC list with NSS" - if [ "x$PR2126" = "x" ] ; then - # orriginally for 8: - # get pr2126.patch (from http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8d2c9a898f50) from most correct tag - # Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2126) - # there is currnetly no "upstram version of this patch, hardcoding custom version - PR2126="../../pr2126-11.patch" - fi; - echo "Applying ${PR2126}" - patch -Np1 < $PR2126 - find . -name '*.orig' -exec rm -vf '{}' ';' - popd - fi - - echo "Compressing remaining forest" - if [ "X$COMPRESSION" = "Xxz" ] ; then - SWITCH=cJf - else - SWITCH=czf - fi - tar --exclude-vcs -$SWITCH ${FILE_NAME_ROOT}.tar.${COMPRESSION} $TO_COMPRESS - mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} .. -popd -echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT." - - diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh deleted file mode 100755 index 94b75e7..0000000 --- a/generate_source_tarball.sh +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash -# Generates the 'source tarball' for JDK 8 projects. -# -# Example: -# When used from local repo set REPO_ROOT pointing to file:// with your repo -# If your local repo follows upstream forests conventions, it may be enough to set OPENJDK_URL -# If you want to use a local copy of patch PR3822, set the path to it in the PR3822 variable -# -# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg: -# PROJECT_NAME=jdk8u OR aarch64-port -# REPO_NAME=jdk8u60 OR jdk8u60 -# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should do the job there -# -# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set) - -# This script creates a single source tarball out of the repository -# based on the given tag and removes code not allowed in fedora/rhel. For -# consistency, the source tarball will always contain 'openjdk' as the top -# level folder, name is created, based on parameter -# - -if [ ! "x$PR3822" = "x" ] ; then - if [ ! -f "$PR3822" ] ; then - echo "You have specified PR3822 as $PR3822 but it does not exists. exiting" - exit 1 - fi -fi -set -e - -OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net -COMPRESSION_DEFAULT=xz -# jdk is last for its size -REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk" - -if [ "x$1" = "xhelp" ] ; then - echo -e "Behaviour may be specified by setting the following variables:\n" - echo "VERSION - the version of the specified OpenJDK project" - echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)" - echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)" - echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})" - echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})" - echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)" - echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)" - echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if unavailable)" - echo "REPOS - specify the repositories to use (optional; defaults to ${REPOS_DEFAULT})" - exit 1; -fi - - -if [ "x$VERSION" = "x" ] ; then - echo "No VERSION specified" - exit -2 -fi -echo "Version: ${VERSION}" - -# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT -if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then - if [ "x$PROJECT_NAME" = "x" ] ; then - echo "No PROJECT_NAME specified" - exit -1 - fi - echo "Project name: ${PROJECT_NAME}" - if [ "x$REPO_NAME" = "x" ] ; then - echo "No REPO_NAME specified" - exit -3 - fi - echo "Repository name: ${REPO_NAME}" -fi - -if [ "x$OPENJDK_URL" = "x" ] ; then - OPENJDK_URL=${OPENJDK_URL_DEFAULT} - echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}" -else - echo "OpenJDK URL: ${OPENJDK_URL}" -fi - -if [ "x$COMPRESSION" = "x" ] ; then -# rhel 5 needs tar.gz - COMPRESSION=${COMPRESSION_DEFAULT} -fi -echo "Creating a tar.${COMPRESSION} archive" - -if [ "x$FILE_NAME_ROOT" = "x" ] ; then - FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION} - echo "No file name root specified; default to ${FILE_NAME_ROOT}" -fi -if [ "x$REPO_ROOT" = "x" ] ; then - REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}" - echo "No repository root specified; default to ${REPO_ROOT}" -fi; - -mkdir "${FILE_NAME_ROOT}" -pushd "${FILE_NAME_ROOT}" - -echo "Cloning ${VERSION} root repository from ${REPO_ROOT}" -hg clone ${REPO_ROOT} openjdk -r ${VERSION} -pushd openjdk - - -if [ "x$REPOS" = "x" ] ; then - repos=${REPOS_DEFAULT} - echo "No repositories specified; defaulting to ${repos}" -else - repos=$REPOS - echo "Repositories: ${repos}" -fi; - -for subrepo in $repos -do - echo "Cloning ${VERSION} ${subrepo} repository from ${REPO_ROOT}" - hg clone ${REPO_ROOT}/${subrepo} -r ${VERSION} -done - -if [ -d jdk ]; then -echo "Removing EC source code we don't build" -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c - -echo "Syncing EC list with NSS" - -if [ "x$PR3822" = "x" ] ; then -# get pr3822.patch (from http://icedtea.classpath.org/hg/icedtea8) from most correct tag -# Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822) - wget -O pr3822.patch http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3822-4curve.... - patch -Np1 < pr3822.patch - rm pr3822.patch -else - echo "Applying ${PR3822}" - patch -Np1 < $PR3822 -fi; -fi -find . -name '*.orig' -exec rm -vf '{}' ';' - -popd -echo "Compressing remaining forest" -if [ "X$COMPRESSION" = "Xxz" ] ; then - SWITCH=cJf -else - SWITCH=czf -fi -TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION} -tar --exclude-vcs -$SWITCH ${TARBALL_NAME} openjdk -mv ${TARBALL_NAME} .. - -popd -echo "Done. You may want to remove the uncompressed version." - - diff --git a/icedtea_sync.sh b/icedtea_sync.sh deleted file mode 100755 index a9d5881..0000000 --- a/icedtea_sync.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2019 Red Hat, Inc. -# Written by Andrew John Hughes gnu.andrew@redhat.com. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. - -ICEDTEA_VERSION=3.11.0 -ICEDTEA_URL=https://icedtea.classpath.org/download/source -ICEDTEA_SIGNING_KEY=CFDA0F9B35964222 - -set -e - -if test "x${WGET}" = "x"; then - WGET=$(which wget); - if test "x${WGET}" = "x"; then - echo "wget not found"; - exit 1; - fi -fi - -if test "x${CHECKSUM}" = "x"; then - CHECKSUM=$(which sha256sum) - if test "x${CHECKSUM}" = "x"; then - echo "sha256sum not found"; - exit 2; - fi -fi - -if test "x${PGP}" = "x"; then - PGP=$(which gpg) - if test "x${PGP}" = "x"; then - echo "gpg not found"; - exit 3; - fi -fi - -if test "x${TAR}" = "x"; then - TAR=$(which tar) - if test "x${TAR}" = "x"; then - echo "tar not found"; - exit 4; - fi -fi - -echo "Dependencies:"; -echo -e "\tWGET: ${WGET}"; -echo -e "\tCHECKSUM: ${CHECKSUM}"; -echo -e "\tPGP: ${PGP}\n"; -echo -e "\tTAR: ${TAR}\n"; - -echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}..."; -if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then - echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed."; - exit 5; -fi - -echo "Downloading IcedTea release tarball..."; -${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz -echo "Downloading IcedTea tarball signature..."; -${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig -echo "Downloading IcedTea tarball checksums..."; -${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256 - -echo "Verifying checksums..."; -${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256 - -echo "Checking signature..."; -${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig - -echo "Extracting files..."; -${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \ - icedtea-${ICEDTEA_VERSION}/tapset \ - icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in \ - icedtea-${ICEDTEA_VERSION}/policytool.desktop.in - -echo "Replacing desktop files..."; -mv -v icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in . -mv -v icedtea-${ICEDTEA_VERSION}/policytool.desktop.in . - -echo "Adding temporary fix to policytool.desktop (PR3718)"; -sed -i 's#Development#Settings#' policytool.desktop.in -echo "Adding temporary fix to policytool.desktop (PR3719)"; -sed -i 's#_BINDIR_#_JREBINDIR_#' policytool.desktop.in - -echo "Creating new tapset tarball..."; -mv -v icedtea-${ICEDTEA_VERSION} openjdk -${TAR} cJf tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz openjdk - -rm -rvf openjdk -rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz -rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig -rm -vf icedtea-${ICEDTEA_VERSION}.sha256 diff --git a/java-1.8.0-openjdk-aarch32.spec b/java-1.8.0-openjdk-aarch32.spec deleted file mode 100644 index 2355b11..0000000 --- a/java-1.8.0-openjdk-aarch32.spec +++ /dev/null @@ -1,3189 +0,0 @@ -# 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 slowdebug builds) on x86_64: -# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug --without fastdebug -# -# Only produce a release build on x86_64: -# $ fedpkg mockbuild --without slowdebug --without fastdebug -# -# Only produce a debug build on x86_64: -# $ fedpkg local --without release -# -# Enable fastdebug builds by default on relevant arches. -%bcond_without fastdebug -# Enable slowdebug builds by default on relevant arches. -%bcond_without slowdebug -# Enable release builds by default on relevant arches. -%bcond_without release -# Remove build artifacts by default -%bcond_with artifacts -# Build a fresh libjvm.so for use in a copy of the bootstrap JDK -%bcond_without fresh_libjvm - -# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so -%if %{with fresh_libjvm} -%global build_hotspot_first 0 -%else -%global build_hotspot_first 0 -%endif - -# The -g flag says to use strip -g instead of full strip on DSOs or EXEs. -# This fixes detailed NMT and other tools which need minimal debug info. -# 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 - -# We have hardcoded list of files, which is appearing in alternatives, and in files -# in alternatives those are slaves and master, very often triplicated by man pages -# in files all masters and slaves are ghosted -# the ghosts are here to allow installation via query like `dnf install /usr/bin/java` -# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e --slave -e post_ -e alternatives -# TODO - fix those hardcoded lists via single list -# Those files must *NOT* be ghosted for *slowdebug* packages -# FIXME - if you are moving jshell or jlink or similar, always modify all three sections -# you can check via headless and devels: -# rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin -# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm | grep bin -# != rpm -ql java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin -# similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip} -%define is_release_build() %( if [ "%{?1}" == "%{debug_suffix_unquoted}" -o "%{?1}" == "%{fastdebug_suffix_unquoted}" ]; then echo "0" ; else echo "1"; fi ) - -# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk stops to be an techpreview, move it to 1 -# as sytem JDK, we mean any JDK which can run whole system java stack without issues (like bytecode issues, module issues, dependencies...) -%global is_system_jdk 0 - -%global aarch64 aarch64 arm64 armv8 -# we need to distinguish between big and little endian PPC64 -%global ppc64le ppc64le -%global ppc64be ppc64 ppc64p7 -# Set of architectures which support multiple ABIs -%global multilib_arches %{power64} sparc64 x86_64 -# Set of architectures for which we build slowdebug builds -%global debug_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} -# Set of architectures for which we build fastdebug builds -%global fastdebug_arches x86_64 ppc64le aarch64 -# Set of architectures with a Just-In-Time (JIT) compiler -%global jit_arches %{aarch64} %{ix86} %{power64} sparcv9 sparc64 x86_64 -# Set of architectures which use the Zero assembler port (!jit_arches) -%global zero_arches %{arm} ppc s390 s390x -# Set of architectures which run a full bootstrap cycle -%global bootstrap_arches %{jit_arches} %{zero_arches} -# Set of architectures which support SystemTap tapsets -%global systemtap_arches %{jit_arches} -# Set of architectures which support the serviceability agent -%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} -# Set of architectures which support class data sharing -# See https://bugzilla.redhat.com/show_bug.cgi?id=513605 -# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT -%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} -# Set of architectures which support JFR -%global jfr_arches %{jit_arches} -# Set of architectures for which alt-java has SSB mitigation -%global ssbd_arches x86_64 -# Set of architectures where we verify backtraces with gdb -%global gdb_arches %{jit_arches} %{zero_arches} - -# By default, we build a debug build during main build on JIT architectures -%if %{with slowdebug} -%ifarch %{debug_arches} -%global include_debug_build 1 -%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 -%else -%global include_fastdebug_build 0 -%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 all builds, then the build fails -# Build and test slowdebug first as it provides the best diagnostics -%global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build} - -%if 0%{?flatpak} -%global bootstrap_build false -%else -%ifarch %{bootstrap_arches} -%global bootstrap_build true -%else -%global bootstrap_build false -%endif -%endif - -%global bootstrap_targets images -%global release_targets images docs-zip -%global debug_targets images -# Target to use to just build HotSpot -%global hotspot_target hotspot - -# JDK to use for bootstrapping -# Use OpenJDK 7 where available (on RHEL) to avoid -# having to use the rhel-7.x-java-unsafe-candidate hack -%if ! 0%{?fedora} && 0%{?rhel} <= 7 -%global buildjdkver 1.7.0 -%else -%global buildjdkver 1.8.0 -%endif -%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk - -# Disable LTO as this causes build failures at the moment. -# See RHBZ#1861401 -%define _lto_cflags %{nil} - -# Filter out flags from the optflags macro that cause problems with the OpenJDK build -# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2 -# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs) -# We 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) - -# 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 %{systemtap_arches} -%global with_systemtap 0 -%else -%global with_systemtap 0 -%endif - -# New Version-String scheme-style defines -%global majorver 8 - -%ifarch %{ix86} x86_64 -%global with_openjfx_binding 1 -%global openjfx_path %{_jvmdir}/openjfx8 -# links src directories -%global jfx_jre_libs_dir %{openjfx_path}/rt/lib -%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall} -%global jfx_sdk_libs_dir %{openjfx_path}/lib -%global jfx_sdk_bins_dir %{openjfx_path}/bin -%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext -# links src files -# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude cyclic depndenci, but this list is aweful -%global jfx_jre_libs jfxswt.jar javafx.properties -%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so -%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar -%global jfx_sdk_bins javafxpackager javapackager -%global jfx_jre_exts jfxrt.jar -%else -%global with_openjfx_binding 0 -%endif - -# Define IcedTea version used for SystemTap tapsets and desktop file -%global icedteaver 3.15.0 -# Define current Git revision for the FIPS support patches -%global fipsver 8e8bbf0ff74 - -# 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&componen... -%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=%%7Bn... -%else -%if 0%{?rhel} -%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20L... -%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 openjdk -%global shenandoah_repo shenandoah-jdk8u -%global shenandoah_revision shenandoah-jdk8u345-b01 -# Define old aarch64/jdk8u tree variables for compatibility -%global project aarch32-port -%global repo jdk8u -%global revision jdk8u345-ga-aarch32-20220802 - - -# e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 -> aarch64-shenandoah-jdk8u212-b04 -%global version_tag %(VERSION=%{shenandoah_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 1 -# Define milestone (EA for pre-releases, GA ("fcs") for releases) -# Release will be (where N is usually a number starting at 1): -# - 0.N%%{?extraver}%%{?dist} for EA releases, -# - N%%{?extraver}{?dist} for GA releases -%global is_ga 1 -%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; up to openjdk 1.8 -%if %is_system_jdk -%global priority 1800%{updatever} -%else -# for techpreview, using 1, so slowdebugs can have 0 -%global priority 0000001 -%endif - -%global javaver 1.%{majorver}.0 - -# parametrized macros are order-sensitive -%global compatiblename %{name} -%global fullversion %{compatiblename}-%{version}-%{release} -# images directories from upstream build -%global jdkimage j2sdk-image -# output dir stub -%define buildoutputdir() %{expand:build/jdk8.build%{?1}} -%define installoutputdir() %{expand:install/jdk8.install%{?1}} -# we can copy the javadoc to not arched dir, or make it not noarch -%define uniquejavadocdir() %{expand:%{fullversion}%{?1}} -# main id and dir of this jdk -%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}} - -################################################################# -# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 -# https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14 -# https://bugzilla.redhat.com/show_bug.cgi?id=1655938 -%global _privatelibs libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\(SUNWprivate_.* -%global _publiclibs libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.* -%if %is_system_jdk -%global __provides_exclude ^(%{_privatelibs})$ -%global __requires_exclude ^(%{_privatelibs})$ -# Never generate lib-style provides/requires for slowdebug packages -%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ -%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$ -%global __provides_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$ -%global __requires_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$ -%else -# Don't generate provides/requires for JDK provided shared libraries at all. -%global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$ -%global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$ -%endif - - -%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin} -%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}} -# Standard JPackage directories and symbolic links. -%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}} -%define jrelnk() %{expand:jre-%{javaver}-%{origin}-aarch32-%{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 - -%global family %{name}.%{_arch} -%global family_noarch %{name} - -%if %{with_systemtap} -# Where to install systemtap tapset (links) -# We would like these to be in a package specific sub-dir, -# 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 - -# x86 is no longer supported -#%if 0%{?java_arches:1} -#ExclusiveArch: %{java_arches} -#%else -#ExcludeArch: %{ix86} -#%endif - -# not-duplicated scriptlets for normal/debug packages -%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - -%define save_alternatives() %{expand: - # warning! alternatives are localised! - # LANG=cs_CZ.UTF-8 alternatives --display java | head - # LANG=en_US.UTF-8 alternatives --display java | head - function nonLocalisedAlternativesDisplayOfMaster() { - LANG=en_US.UTF-8 alternatives --display "$MASTER" - } - function headOfAbove() { - nonLocalisedAlternativesDisplayOfMaster | head -n $1 - } - MASTER="%{?1}" - LOCAL_LINK="%{?2}" - FAMILY="%{?3}" - rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null - if nonLocalisedAlternativesDisplayOfMaster > /dev/null ; then - if headOfAbove 1 | grep -q manual ; then - if headOfAbove 2 | tail -n 1 | grep -q %{compatiblename} ; then - headOfAbove 2 > %{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY" - fi - fi - fi -} - -%define save_and_remove_alternatives() %{expand: - if [ "x$debug" == "xtrue" ] ; then - set -x - fi - upgrade1_uninstal0=%{?3} - if [ "0$upgrade1_uninstal0" -gt 0 ] ; then # removal of this condition will cause persistence between uninstall - %{save_alternatives %{?1} %{?2} %{?4}} - fi - alternatives --remove "%{?1}" "%{?2}" -} - -%define set_if_needed_alternatives() %{expand: - MASTER="%{?1}" - FAMILY="%{?2}" - ALTERNATIVES_FILE="%{_localstatedir}/lib/rpm-state/$MASTER"_"$FAMILY" - if [ -e "$ALTERNATIVES_FILE" ] ; then - rm "$ALTERNATIVES_FILE" - alternatives --set $MASTER $FAMILY - fi -} - - -%define post_script() %{expand: -update-desktop-database %{_datadir}/applications &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -exit 0 -} - -%define alternatives_java_install() %{expand: -if [ "x$debug" == "xtrue" ] ; then - set -x -fi -PRIORITY=%{priority} -if [ "%{?1}" == %{debug_suffix} ]; then - let PRIORITY=PRIORITY-1 -fi - -ext=.gz -key=java -alternatives \ - --install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family} \ - --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \ - --slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir -- %{?1}}/%{alt_java_name} \ - --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \ - --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \ - --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \ - --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \ - --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \ - --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \ - --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \ - --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \ - --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \ - --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \ - --slave %{_mandir}/man1/java.1$ext java.1$ext \ - %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \ - %{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \ - %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ - %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ - %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ - %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ - %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ - %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ - %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ - %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ - %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ - %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext - -%{set_if_needed_alternatives $key %{family}} - -for X in %{origin} %{javaver} ; do - key=jre_"$X" - alternatives --install %{_jvmdir}/jre-"$X" $key %{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{family} - %{set_if_needed_alternatives $key %{family}} -done - -key=jre_%{javaver}_%{origin} -alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{family} -%{set_if_needed_alternatives $key %{family}} -} - -%define post_headless() %{expand: -%ifarch %{share_arches} -%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null -%endif - -update-desktop-database %{_datadir}/applications &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -# see pretrans where this file is declared -# also see that pretrans is only for non-debug -if [ ! "%{?1}" == %{debug_suffix} ]; then - if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then - sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch} %{_jvmdir}/%{sdkdir -- %{?1}} - fi -fi - -exit 0 -} - -%define postun_script() %{expand: -update-desktop-database %{_datadir}/applications &> /dev/null || : -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - %{update_desktop_icons} -fi -exit 0 -} - - -%define postun_headless() %{expand: - if [ "x$debug" == "xtrue" ] ; then - set -x - fi - post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_synta... - %{save_and_remove_alternatives java %{jrebindir -- %{?1}}/java $post_state %{family}} - %{save_and_remove_alternatives jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}} $post_state %{family}} - %{save_and_remove_alternatives jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}} $post_state %{family}} - %{save_and_remove_alternatives jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $post_state %{family}} -} - -%define posttrans_script() %{expand: -%{update_desktop_icons} -} - - -%define alternatives_javac_install() %{expand: -if [ "x$debug" == "xtrue" ] ; then - set -x -fi -PRIORITY=%{priority} -if [ "%{?1}" == %{debug_suffix} ]; then - let PRIORITY=PRIORITY-1 -fi - -ext=.gz -key=javac -alternatives \ - --install %{_bindir}/javac $key %{sdkbindir -- %{?1}}/javac $PRIORITY --family %{family} \ - --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \ - --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \ - --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \ - --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \ - --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \ - --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \ - --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \ - --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \ - --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \ - --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \ - --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \ - --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \ - --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \ - --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \ - --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \ -%ifarch %{jfr_arches} - --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \ -%endif - --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \ - --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \ - --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \ - --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \ - --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \ - --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \ - --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \ - --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \ - --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \ - --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \ - --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \ - --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \ - --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \ - --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \ - --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \ - --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \ - --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ - %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ - %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \ - %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jar.1$ext jar.1$ext \ - %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ - %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/javac.1$ext javac.1$ext \ - %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ - %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/javah.1$ext javah.1$ext \ - %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/javap.1$ext javap.1$ext \ - %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \ - %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ - %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ - %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \ - %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \ - %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \ - %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \ - %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jps.1$ext jps.1$ext \ - %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ - %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ - %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \ - %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \ - %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \ - %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ - %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ - %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ - %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ - %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ - %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ - %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \ - --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ - %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext - -%{set_if_needed_alternatives $key %{family}} - -for X in %{origin} %{javaver} ; do - key=java_sdk_"$X" - alternatives --install %{_jvmdir}/java-"$X" $key %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family} - %{set_if_needed_alternatives $key %{family}} -done - -key=java_sdk_%{javaver}_%{origin} -alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} $key %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{family} -%{set_if_needed_alternatives $key %{family}} -} - -%define post_devel() %{expand: -update-desktop-database %{_datadir}/applications &> /dev/null || : -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -exit 0 -} - -%define postun_devel() %{expand: - if [ "x$debug" == "xtrue" ] ; then - set -x - fi - post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_synta... - %{save_and_remove_alternatives javac %{sdkbindir -- %{?1}}/javac $post_state %{family}} - %{save_and_remove_alternatives java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $post_state %{family}} - %{save_and_remove_alternatives java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}} $post_state %{family}} - %{save_and_remove_alternatives java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $post_state %{family}} - -update-desktop-database %{_datadir}/applications &> /dev/null || : - -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - %{update_desktop_icons} -fi -exit 0 -} - -%define posttrans_devel() %{expand: -%{alternatives_javac_install -- %{?1}} -%{update_desktop_icons} -} - -%define alternatives_javadoc_install() %{expand: -if [ "x$debug" == "xtrue" ] ; then - set -x -fi -PRIORITY=%{priority} -if [ "%{?1}" == %{debug_suffix} ]; then - let PRIORITY=PRIORITY-1 -fi - for X in %{origin} %{javaver} ; do - key=javadocdir_"$X" - alternatives --install %{_javadocdir}/java-"$X" $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} - %{set_if_needed_alternatives $key %{family_noarch}} - done - - key=javadocdir_%{javaver}_%{origin} - alternatives --install %{_javadocdir}/java-%{javaver}-%{origin} $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} - %{set_if_needed_alternatives $key %{family_noarch}} - -key=javadocdir - alternatives --install %{_javadocdir}/java $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $PRIORITY --family %{family_noarch} -%{set_if_needed_alternatives $key %{family_noarch}} -exit 0 -} - -%define postun_javadoc() %{expand: -if [ "x$debug" == "xtrue" ] ; then - set -x -fi - post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_synta... - %{save_and_remove_alternatives javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} - %{save_and_remove_alternatives javadocdir_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} - %{save_and_remove_alternatives javadocdir_%{javaver} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} - %{save_and_remove_alternatives javadocdir_%{javaver}_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api $post_state %{family_noarch}} -exit 0 -} - -%define alternatives_javadoczip_install() %{expand: -if [ "x$debug" == "xtrue" ] ; then - set -x -fi -PRIORITY=%{priority} -if [ "%{?1}" == %{debug_suffix} ]; then - let PRIORITY=PRIORITY-1 -fi - for X in %{origin} %{javaver} ; do - key=javadoczip_"$X" - alternatives --install %{_javadocdir}/java-"$X".zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} - %{set_if_needed_alternatives $key %{family_noarch}} - done - - key=javadoczip_%{javaver}_%{origin} - alternatives --install %{_javadocdir}/java-%{javaver}-%{origin}.zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} - %{set_if_needed_alternatives $key %{family_noarch}} - - # Weird legacy filename for backwards-compatibility -key=javadoczip -alternatives --install %{_javadocdir}/java-zip $key %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $PRIORITY --family %{family_noarch} -%{set_if_needed_alternatives $key %{family_noarch}} -exit 0 -} - -%define postun_javadoc_zip() %{expand: - if [ "x$debug" == "xtrue" ] ; then - set -x - fi - post_state=$1 # from postun, https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_synta... - %{save_and_remove_alternatives javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} - %{save_and_remove_alternatives javadoczip_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} - %{save_and_remove_alternatives javadoczip_%{javaver} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} - %{save_and_remove_alternatives javadoczip_%{javaver}_%{origin} %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip $post_state %{family_noarch}} -exit 0 -} - -%define files_jre() %{expand: -%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png -%{_datadir}/applications/*policytool%{?1}.desktop -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/aarch32/libjsoundalsa.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/aarch32/libsplashscreen.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/aarch32/libawt_xawt.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/aarch32/libjawt.so -%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool -%if %is_system_jdk -%if %{is_release_build -- %{?1}} -%ghost %{_bindir}/policytool -%endif -%endif -} - - -%define files_jre_headless() %{expand: -%defattr(-,root,root,-) -%dir %{_sysconfdir}/.java/.systemPrefs -%dir %{_sysconfdir}/.java -%license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION -%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE -%license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README -%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS -%dir %{_jvmdir}/%{sdkdir -- %{?1}} -%{_jvmdir}/%{jrelnk -- %{?1}} -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts -%dir %{_jvmdir}/%{jredir -- %{?1}} -%dir %{_jvmdir}/%{jredir -- %{?1}}/bin -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib -%{_jvmdir}/%{jredir -- %{?1}}/bin/java -%{_jvmdir}/%{jredir -- %{?1}}/bin/%{alt_java_name} -%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs -%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool -%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd -%{_jvmdir}/%{jredir -- %{?1}}/bin/pack200 -%{_jvmdir}/%{jredir -- %{?1}}/bin/rmid -%{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry -%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool -%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv -%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200 -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/ -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/ -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/ -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs -%config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties -%config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs -%{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties -%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1* -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg -%{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.fips.cfg -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg -%config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.fips.cfg -%ifarch %{share_arches} -%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa -%attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa -%endif -%dir %{etcjavasubdir} -%dir %{etcjavadir -- %{?1}} -%dir %{etcjavadir -- %{?1}}/lib -%dir %{etcjavadir -- %{?1}}/lib/security -%{etcjavadir -- %{?1}}/lib/security/cacerts -%dir %{etcjavadir -- %{?1}}/lib/security/policy -%dir %{etcjavadir -- %{?1}}/lib/security/policy/limited -%dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/ -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/ -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall} -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so -%{_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} -%ifnarch %{zero_arches} -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so -%endif -%endif -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsystemconf.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/client/ -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32 -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/jli -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/jli/libjli.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/jvm.cfg -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libattach.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libawt.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libawt_headless.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libdt_socket.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libfontmanager.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libhprof.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libinstrument.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libj2gss.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libj2pcsc.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libj2pkcs11.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjaas_unix.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjava.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjava_crw_demo.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjavajpeg.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjdwp.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjsdt.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjsig.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libjsound.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/liblcms.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libmanagement.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libmlib_image.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libnet.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libnio.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libnpt.so -%ifarch %{sa_arches} -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libsaproc.so -%endif -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libsctp.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libsunec.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libsystemconf.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libunpack.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libverify.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/aarch32/libzip.so -%{_jvmdir}/%{jredir -- %{?1}}/lib/charsets.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/classlist -%{_jvmdir}/%{jredir -- %{?1}}/lib/content-types.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/currency.data -%{_jvmdir}/%{jredir -- %{?1}}/lib/flavormap.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/hijrah-config-umalqura.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors/* -%{_jvmdir}/%{jredir -- %{?1}}/lib/jce.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/jexec -%{_jvmdir}/%{jredir -- %{?1}}/lib/jsse.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt -%{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index -%{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties -%config(noreplace) %{etcjavadir -- %{?1}}/lib/net.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja -%{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/rt.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/sound.properties -%{_jvmdir}/%{jredir -- %{?1}}/lib/tzdb.dat -%{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/management/* -%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/* -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar -%ifarch %{jfr_arches} -%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar -%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc -%{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc -%endif - -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext -%ifarch %{jfr_arches} -%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr -%endif -%if %is_system_jdk -%if %{is_release_build -- %{?1}} -%ghost %{_bindir}/java -%ghost %{_jvmdir}/jre -# https://bugzilla.redhat.com/show_bug.cgi?id=1312019 -%ghost %{_bindir}/jjs -%ghost %{_bindir}/keytool -%ghost %{_bindir}/orbd -%ghost %{_bindir}/pack200 -%ghost %{_bindir}/rmid -%ghost %{_bindir}/rmiregistry -%ghost %{_bindir}/servertool -%ghost %{_bindir}/tnameserv -%ghost %{_bindir}/unpack200 -%endif -%endif -} - -%define files_devel() %{expand: -%defattr(-,root,root,-) -%license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION -%license %{_jvmdir}/%{sdkdir -- %{?1}}/LICENSE -%license %{_jvmdir}/%{sdkdir -- %{?1}}/THIRD_PARTY_README -%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin -%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include -%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/%{alt_java_name} -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps -%ifarch %{jfr_arches} -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr -%endif -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200 -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200 -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport -%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc -%{_jvmdir}/%{sdkdir -- %{?1}}/include/* -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall} -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/aarch32 -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym -%if %{with_systemtap} -%{_jvmdir}/%{sdkdir -- %{?1}}/tapset -%endif -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl -%ifarch %{sa_arches} -%ifnarch %{zero_arches} -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar -%endif -%endif -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec -%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar -%{_datadir}/applications/*jconsole%{?1}.desktop -%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1* -%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1* -%if %{with_systemtap} -%dir %{tapsetroot} -%dir %{tapsetdirttapset} -%dir %{tapsetdir} -%{tapsetdir}/*%{_arch}%{?1}.stp -%endif -%if %is_system_jdk -%if %{is_release_build -- %{?1}} -%ghost %{_jvmdir}/java -%ghost %{_bindir}/appletviewer -%ghost %{_bindir}/clhsdb -%ghost %{_bindir}/extcheck -%ghost %{_bindir}/hsdb -%ghost %{_bindir}/idlj -%ghost %{_bindir}/jar -%ghost %{_bindir}/jarsigner -%ghost %{_bindir}/java -%ghost %{_bindir}/java-rmi.cgi -%ghost %{_bindir}/javac -%ghost %{_bindir}/javadoc -%ghost %{_bindir}/javah -%ghost %{_bindir}/javap -%ghost %{_bindir}/jcmd -%ghost %{_bindir}/jconsole -%ghost %{_bindir}/jdb -%ghost %{_bindir}/jdeps -%ghost %{_bindir}/jhat -%ghost %{_bindir}/jinfo -%ghost %{_bindir}/jjs -%ghost %{_bindir}/jmap -%ghost %{_bindir}/jps -%ghost %{_bindir}/jrunscript -%ghost %{_bindir}/jsadebugd -%ghost %{_bindir}/jstack -%ghost %{_bindir}/jstat -%ghost %{_bindir}/jstatd -%ghost %{_bindir}/keytool -%ghost %{_bindir}/native2ascii -%ghost %{_bindir}/orbd -%ghost %{_bindir}/pack200 -%ghost %{_bindir}/policytool -%ghost %{_bindir}/rmic -%ghost %{_bindir}/rmid -%ghost %{_bindir}/rmiregistry -%ghost %{_bindir}/schemagen -%ghost %{_bindir}/serialver -%ghost %{_bindir}/servertool -%ghost %{_bindir}/tnameserv -%ghost %{_bindir}/unpack200 -%ghost %{_bindir}/wsgen -%ghost %{_bindir}/wsimport -%ghost %{_bindir}/xjc -%endif -%endif -} - - -%define files_demo() %{expand: -%defattr(-,root,root,-) -%license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE -} - -%define files_src() %{expand: -%defattr(-,root,root,-) -%doc README.md -%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip -} - -%define files_javadoc() %{expand: -%defattr(-,root,root,-) -%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}} -#javadoc is in jdk8 noarch, so also license file must be treated like it -%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE -%if %is_system_jdk -%if %{is_release_build -- %{?1}} -%ghost %{_javadocdir}/java -%ghost %{_javadocdir}/java-%{origin} -%ghost %{_javadocdir}/java-%{javaver} -%ghost %{_javadocdir}/java-%{javaver}-%{origin} -%endif -%endif -} - -%define files_javadoc_zip() %{expand: -%defattr(-,root,root,-) -%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip -#javadoc is in jdk8 noarch, so also license file must be treated like it -%license %{installoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE -%if %is_system_jdk -%if %{is_release_build -- %{?1}} -%ghost %{_javadocdir}/java-zip -%ghost %{_javadocdir}/java-%{origin}.zip -%ghost %{_javadocdir}/java-%{javaver}.zip -%ghost %{_javadocdir}/java-%{javaver}-%{origin}.zip -%endif -%endif -} - -# not-duplicated requires/provides/obsoletes for normal/debug packages -%define java_rpo() %{expand: -Requires: fontconfig%{?_isa} -Requires: xorg-x11-fonts-Type1 -# Require libXcomposite explicitly since it's only dynamically loaded -# at runtime. Fixes screenshot issues. See JDK-8150954. -Requires: libXcomposite%{?_isa} -# Requires rest of java -Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -# for java-X-openjdk package's desktop binding -%if 0%{?fedora} || 0%{?rhel} >= 8 -Recommends: gtk2%{?_isa} -%endif - -#Provides: java-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} - -# Standard JPackage base provides -#Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release} -#Provides: java%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - -%define java_headless_rpo() %{expand: -# Require /etc/pki/java/cacerts -Requires: ca-certificates -# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros -Requires: javapackages-filesystem -# Require zoneinfo data provided by tzdata-java subpackage. -# 2022a required as of JDK-8283350 in 8u342 -Requires: tzdata-java >= 2022a -# for support of kernel stream control -# libsctp.so.1 is being `dlopen`ed on demand -Requires: lksctp-tools%{?_isa} -%if ! 0%{?flatpak} -# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it, -# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be -# considered as regression -Requires: copy-jdk-configs >= 4.0 -OrderWithRequires: copy-jdk-configs -%endif -# for printing support -Requires: cups-libs -# for FIPS PKCS11 provider -Requires: nss -# for system security properties -Requires: crypto-policies -# Post requires alternatives to install tool alternatives -Requires(post): %{alternatives_requires} -# Postun requires alternatives to uninstall tool alternatives -Requires(postun): %{alternatives_requires} -# for optional support of kernel stream control, card reader and printing bindings -%if 0%{?fedora} || 0%{?rhel} >= 8 -Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa} -%endif - -# Standard JPackage base provides -#Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-headless%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - -%define java_devel_rpo() %{expand: -# Requires base package -Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -# Post requires alternatives to install tool alternatives -Requires(post): %{alternatives_requires} -# Postun requires alternatives to uninstall tool alternatives -Requires(postun): %{alternatives_requires} - -# Standard JPackage devel provides -#Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-devel%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - -%define java_demo_rpo() %{expand: -Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} - -#Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-demo%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - -%define java_javadoc_rpo() %{expand: -OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} -# Post requires alternatives to install javadoc alternative -Requires(post): %{alternatives_requires} -# Postun requires alternatives to uninstall javadoc alternative -Requires(postun): %{alternatives_requires} - -# Standard JPackage javadoc provides -#Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - -%define java_src_rpo() %{expand: -Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release} - -# Standard JPackage sources provides -#Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} -#%if %is_system_jdk -#Provides: java-src%{?1} = %{epoch}:%{version}-%{release} -#Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release} -#%endif -} - - -# Prevent brp-java-repack-jars from being run -%global __jar_repack 0 - -Name: java-%{javaver}-%{origin}-aarch32 -Version: %{javaver}.%{updatever}.%{buildver} -Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.6 -# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons -# and 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} Runtime Environment %{majorver} in a preview of the OpenJDK AArch32 project - -# 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/%%%7Bproject%7D/%%%7Brepo%7D -Source0: openjdk-%{project}-%{repo}-jdk8u345-ga-aarch32-20220802-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: java-1.8.0-openjdk-remove-intree-libraries.sh - -# Ensure we aren't using the limited crypto policy -Source13: TestCryptoLevel.java - -# Ensure ECDSA is working -Source14: TestECDSA.java - -# Verify system crypto (policy) can be disabled via a property -Source15: TestSecurityProperties.java - -# Ensure vendor settings are correct -Source16: CheckVendor.java - -# nss fips configuration file -Source17: nss.fips.cfg.in - -Source20: repackReproduciblePolycies.sh - -# New versions of config files with aarch64 support. This is not upstream yet. -Source100: config.guess -Source101: config.sub - - -############################################ -# -# 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. -############################################ - -# Turn on AssumeMP by default on RHEL systems -Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch -# RH1582504: Use RSA as default for keytool, as DSA is disabled in all crypto policies except LEGACY -Patch1003: rh1582504-rsa_default_for_keytool.patch -# RH1648249: Add PKCS11 provider to java.security -Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch - -# Crypto policy and FIPS support patches -# Patch is generated from the fips tree at https://github.com/rh-openjdk/jdk11u/tree/fips -# as follows: git diff %%{openjdk_revision} common jdk > fips-8u-$(git show -s --format=%h HEAD).patch -# Diff is limited to src and make subdirectories to exclude .github changes -# Fixes currently included: -# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy -# PR3655: Allow use of system crypto policy to be disabled by the user -# RH1655466: Support RHEL FIPS mode using SunPKCS11 provider -# RH1760838: No ciphersuites available for SSLSocket in FIPS mode -# RH1860986: Disable TLSv1.3 with the NSS-FIPS provider until PKCS#11 v3.0 support is available -# RH1906862: Always initialise JavaSecuritySystemConfiguratorAccess -# RH1929465: Improve system FIPS detection -# RH1996182: Login to the NSS software token in FIPS mode -# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to false -# RH2021263: Resolve outstanding FIPS issues -# RH2052819: Fix FIPS reliance on crypto policies -# RH2051605: Detect NSS at Runtime for FIPS detection -# RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage -# RH2090378: Revert to disabling system security properties and FIPS mode support together -Patch1001: fips-8u-%{fipsver}.patch - -############################################# -# -# 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 -# enable build of speculative store bypass hardened alt-java -Patch600: rh1750419-redhat_alt_java.patch -# JDK-8218811: replace open by os::open in hotspot coding -# This fixes a GCC 10 build issue -Patch111: jdk8218811-perfMemory_linux.patch -# JDK-8281098, PR3836: Extra compiler flags not passed to adlc build -Patch112: jdk8281098-pr3836-pass_compiler_flags_to_adlc.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 -# JDK-8257794: Zero: assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32 -Patch581: jdk8257794-remove_broken_assert.patch -# JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers -Patch582: jdk8282231-x86_32-missing_call_effects.patch - -############################################# -# -# 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: make -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 -# Requirement for setting up nss.cfg and nss.fips.cfg -BuildRequires: nss-devel -# Requirement for system security property test -BuildRequires: crypto-policies -BuildRequires: pkgconfig -BuildRequires: xorg-x11-proto-devel -BuildRequires: zip -BuildRequires: unzip -# Require a boot JDK which doesn't fail due to RH1482244 -BuildRequires: java-1.8.0-openjdk-aarch32-devel -# Zero-assembler build requirement -%ifarch %{zero_arches} -BuildRequires: libffi-devel -%endif -# 2022a required as of JDK-8283350 in 8u342 -BuildRequires: tzdata-java >= 2022a -# Earlier versions have a bug in tree vectorization on PPC -BuildRequires: gcc >= 4.8.3-8 - -%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}} - -ExclusiveArch: %{arm} - -# Fix upgrade path after removal of accessibility subpackage -# on commit 0c79c1451ef42c540682fb75329a92bb110609e7 -# As main accessibility was requiring main package, main package now have to -# obsolete java-1.8.0-openjdk-accessibility-{release, slowdebug, fastdebug} < 1:1.8.0.292.b06 -# otherwise update fails -#Obsoletes: java-1.8.0-openjdk-accessibility < 1:1.8.0.292.b06 -#Obsoletes: java-1.8.0-openjdk-accessibility-slowdebug < 1:1.8.0.292.b06 -#Obsoletes: java-1.8.0-openjdk-accessibility-fastdebug < 1:1.8.0.292.b06 - -%description -A preview release of the upstream OpenJDK AArch32 porting project. -The OpenJDK runtime environment. - -%if %{include_debug_build} -%package slowdebug -Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on} - -%{java_rpo -- %{debug_suffix_unquoted}} -%description slowdebug -The %{origin_nice} %{majorver} runtime environment. -%{debug_warning} -%endif - -%if %{include_fastdebug_build} -%package fastdebug -Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on} -Group: Development/Languages - -%{java_rpo -- %{fastdebug_suffix_unquoted}} -%description fastdebug -The %{origin_nice} %{majorver} runtime environment. -%{fastdebug_warning} -%endif - -%if %{include_normal_build} -%package headless -Summary: %{origin_nice} %{majorver} Headless Runtime Environment - -%{java_headless_rpo %{nil}} - -%description headless -The %{origin_nice} %{majorver} runtime environment without audio and video support. -%endif - -%if %{include_debug_build} -%package headless-slowdebug -Summary: %{origin_nice} %{majorver} Runtime Environment %{debug_on} - -%{java_headless_rpo -- %{debug_suffix_unquoted}} - -%description headless-slowdebug -The %{origin_nice} %{majorver} runtime environment without audio and video support. -%{debug_warning} -%endif - -%if %{include_fastdebug_build} -%package headless-fastdebug -Summary: %{origin_nice} %{majorver} Runtime Environment %{fastdebug_on} -Group: Development/Languages - -%{java_headless_rpo -- %{fastdebug_suffix_unquoted}} - -%description headless-fastdebug -The %{origin_nice} %{majorver} runtime environment without audio and video support. -%{fastdebug_warning} -%endif - -%if %{include_normal_build} -%package devel -Summary: %{origin_nice} %{majorver} Development Environment - -%{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} - -%{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 - -%{java_demo_rpo %{nil}} - -%description demo -The %{origin_nice} %{majorver} demos. -%endif - -%if %{include_debug_build} -%package demo-slowdebug -Summary: %{origin_nice} %{majorver} Demos %{debug_on} - -%{java_demo_rpo -- %{debug_suffix_unquoted}} - -%description demo-slowdebug -The %{origin_nice} %{majorver} demos. -%{debug_warning} -%endif - -%if %{include_fastdebug_build} -%package demo-fastdebug -Summary: %{origin_nice} %{majorver} Demos %{fastdebug_on} -Group: Development/Languages - -%{java_demo_rpo -- %{fastdebug_suffix_unquoted}} - -%description demo-fastdebug -The %{origin_nice} %{majorver} demos. -%{fastdebug_warning} -%endif - -%if %{include_normal_build} -%package src -Summary: %{origin_nice} %{majorver} Source Bundle - -%{java_src_rpo %{nil}} - -%description src -The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{majorver} -class library source code for use by IDE indexers and debuggers. -%endif - -%if %{include_debug_build} -%package src-slowdebug -Summary: %{origin_nice} %{majorver} Source Bundle %{for_debug} - -%{java_src_rpo -- %{debug_suffix_unquoted}} - -%description src-slowdebug -The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers, %{for_debug}. -%endif - -%if %{include_fastdebug_build} -%package src-fastdebug -Summary: %{origin_nice} %{majorver} Source Bundle %{for_fastdebug} -Group: Development/Languages - -%{java_src_rpo -- %{fastdebug_suffix_unquoted}} - -%description src-fastdebug -The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers, %{for_fastdebug}. -%endif - - -%if %{include_normal_build} -%package javadoc -Summary: %{origin_nice} %{majorver} API documentation -Requires: javapackages-filesystem -Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1 -BuildArch: noarch - -%{java_javadoc_rpo -- %{nil} -zip} -%{java_javadoc_rpo -- %{nil} %{nil}} - -%description javadoc -The %{origin_nice} %{majorver} API documentation. -%endif - -%if %{include_normal_build} -%package javadoc-zip -Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive -Requires: javapackages-filesystem -Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1 -BuildArch: noarch - -%{java_javadoc_rpo -- %{nil} %{nil}} - -%description javadoc-zip -The %{origin_nice} %{majorver} API documentation compressed in a single archive. -%endif - -%if %{with_openjfx_binding} -%package openjfx -Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX integration to %{name} -Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8%{?_isa} -Provides: javafx = %{epoch}:%{version}-%{release} -%description openjfx -Set of links from OpenJDK (jre) to OpenJFX - -%package openjfx-devel -Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks finishing Java FX integration to %{name}-devel -Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8-devel%{?_isa} -Provides: javafx-devel = %{epoch}:%{version}-%{release} -%description openjfx-devel -Set of links from OpenJDK (sdk) to OpenJFX - -%if %{include_debug_build} -%package openjfx-slowdebug -Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing Java FX integration to %{name}-slowdebug -Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8%{?_isa} -Provides: javafx-slowdebug = %{epoch}:%{version}-%{release} -%description openjfx-slowdebug -Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug buuilds of itself - -%package openjfx-devel-slowdebug -Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds symliks finishing Java FX integration to %{name}-devel-slowdebug -Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8-devel%{?_isa} -Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release} -%description openjfx-devel-slowdebug -Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug buuilds of itself -%endif - -%if %{include_fastdebug_build} -%package openjfx-fastdebug -Summary: OpenJDK x OpenJFX connector %{for_fastdebug}. his package adds symliks finishing Java FX integration to %{name}-fastdebug -Requires: %{name}-fastdebug%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8%{?_isa} -Provides: javafx-fastdebug = %{epoch}:%{version}-%{release} -%description openjfx-fastdebug -Set of links from OpenJDK-fastdebug (jre) to normal OpenJFX. OpenJFX do not support debug buuilds of itself - -%package openjfx-devel-fastdebug -Summary: OpenJDK x OpenJFX connector for FX developers %{for_fastdebug}. This package adds symliks finishing Java FX integration to %{name}-devel-slowdebug -Requires: %{name}-devel-fastdebug%{?_isa} = %{epoch}:%{version}-%{release} -Requires: openjfx8-devel%{?_isa} -Provides: javafx-devel-fastdebug = %{epoch}:%{version}-%{release} -%description openjfx-devel-fastdebug -Set of links from OpenJDK-fastdebug (sdk) to normal OpenJFX. OpenJFX do not support debug buuilds of itself -%endif -%endif - -%prep - -# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( -%if 0%{?stapinstall:1} - echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}" -%else - %{error:Unrecognised architecture %{_target_cpu}} -%endif - -if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then - echo "include_normal_build is %{include_normal_build}" -else - 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,slowdebug). That is a no go." - exit 14 -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 - -%patch5 - -# s390 build fixes -#%patch102 -#%patch103 -#%patch107 - -# AArch64 fixes - -# x86 fixes -#%patch105 - -# Upstreamable fixes -%patch502 -%patch504 -%patch512 -#%patch523 -#%patch528 -#%patch571 -#%patch574 -%patch111 -%patch112 -%patch580 -%patch581 -%patch582 - -pushd %{top_level_dir_name} -# Add crypto policy and FIPS support -%patch1001 -p1 -# nss.cfg PKCS11 support; must come last as it also alters java.security -%patch1000 -p1 -popd - -# RPM-only fixes -%patch539 -%patch600 -%patch1003 - -# 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" %{SOURCE17} > 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... -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 "Checking build JDK ${buildjdk} is operational..." - ${buildjdk}/bin/java -version - echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}" - - mkdir -p ${outputdir} - pushd ${outputdir} - - bash ${top_srcdir_abs_path}/configure \ - --with-jvm-variants=client \ -%ifarch %{jfr_arches} - --enable-jfr \ -%else - --disable-jfr \ -%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=$(echo /usr/lib/jvm/java-1.8.0-openjdk-aarch32-*) \ - --with-debug-level=${debuglevel} \ - --disable-sysconf-nss \ - --enable-unlimited-crypto \ - --with-zlib=system \ - --with-libjpeg=system \ - --with-giflib=system \ - --with-libpng=system \ - --with-lcms=system \ - --with-stdc++lib=dynamic \ - --with-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 ) - - popd -} - -function installjdk() { - local outputdir=${1} - local installdir=${2} - local imagepath=${installdir}/images/%{jdkimage} - - echo "Installing build from ${outputdir} to ${installdir}..." - mkdir -p ${installdir} - echo "Installing images..." - mv ${outputdir}/images ${installdir} - if [ -d ${outputdir}/bundles ] ; then - echo "Installing bundles..."; - mv ${outputdir}/bundles ${installdir} ; - fi - if [ -d ${outputdir}/docs ] ; then - echo "Installing docs..."; - mv ${outputdir}/docs ${installdir} ; - fi - -%if !%{with artifacts} - echo "Removing output directory..."; - rm -rf ${outputdir} -%endif - - if [ -d ${imagepath} ] ; then - # the build (erroneously) removes read permissions from some jars - # this is a regression in OpenJDK 7 (our compiler): - # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 - find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} ; - chmod ugo+r ${imagepath}/lib/ct.sym - - # remove redundant *diz and *debuginfo files - find ${imagepath} -iname '*.diz' -exec rm -v {} ; - find ${imagepath} -iname '*.debuginfo' -exec rm -v {} ; - - # Build screws up permissions on binaries - # https://bugs.openjdk.java.net/browse/JDK-8173610 - find ${imagepath} -iname '*.so' -exec chmod +x {} ; - find ${imagepath}/bin/ -exec chmod +x {} ; - - # Install nss.cfg right away as we will be using the JRE above - install -m 644 nss.cfg ${imagepath}/jre/lib/security/ - - # Install nss.fips.cfg: NSS configuration for global FIPS mode (crypto-policies) - install -m 644 nss.fips.cfg ${imagepath}/jre/lib/security/ - - # Turn on system security properties - sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \ - ${imagepath}/jre/lib/security/java.security - - # Use system-wide tzdata - rm ${imagepath}/jre/lib/tzdb.dat - ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/jre/lib/tzdb.dat - - # add alt-java man page - pushd ${imagepath} - echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 - cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 - popd - - # Print release information - cat ${imagepath}/release - - fi -} - -%if %{build_hotspot_first} - # Build a fresh libjvm.so first and use it to bootstrap - cp -LR --preserve=mode,timestamps %{bootjdk} newboot - systemjdk=$(pwd)/newboot - buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" - mv build/newboot/hotspot/dist/jre/lib/%{archinstall}/server/libjvm.so newboot/jre/lib/%{archinstall}/server -%else - systemjdk=%{bootjdk} -%endif - -for suffix in %{build_loop} ; do -if [ "x$suffix" = "x" ] ; then - debugbuild=release -else - # change --something to something - debugbuild=`echo $suffix | sed "s/-//g"` -fi - -builddir=%{buildoutputdir -- $suffix} -bootbuilddir=boot${builddir} -installdir=%{installoutputdir -- $suffix} -bootinstalldir=boot${installdir} - -# Debug builds don't need same targets as release for -# build speed-up. We also avoid bootstrapping these -# slower builds. -if echo $debugbuild | grep -q "debug" ; then - maketargets="%{debug_targets}" - run_bootstrap=false -else - maketargets="%{release_targets}" - run_bootstrap=%{bootstrap_build} -fi - -if ${run_bootstrap} ; then - buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} - installjdk ${bootbuilddir} ${bootinstalldir} - buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} - installjdk ${builddir} ${installdir} -%{!?with_artifacts:rm -rf ${bootinstalldir}} -else - buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} - installjdk ${builddir} ${installdir} -fi - -# build cycles -done - -%check - -# We test debug first as it will give better diagnostics on a crash -for suffix in %{build_loop} ; do - -export JAVA_HOME=$(pwd)/%{installoutputdir -- $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 system crypto (policy) is active and can be disabled -# Test takes a single argument - true or false - to state whether system -# security properties are enabled or not. -$JAVA_HOME/bin/javac -d . %{SOURCE15} -export PROG=$(echo $(basename %{SOURCE15})|sed "s|.java||") -export SEC_DEBUG="-Djava.security.debug=properties" -$JAVA_HOME/bin/java ${SEC_DEBUG} ${PROG} true -$JAVA_HOME/bin/java ${SEC_DEBUG} -Djava.security.disableSystemPropertiesFile=true ${PROG} false - -# Check java launcher has no SSB mitigation -if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi - -# Check alt-java launcher has SSB mitigation on supported architectures -%ifarch %{ssbd_arches} -nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation -%else -if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi -%endif - - -# Check 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/v... -# 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 - -%ifarch %{gdb_arches} -grep 'JavaCallWrapper::JavaCallWrapper' gdb.out -%endif - -# Check src.zip has all sources. See RHBZ#1130490 -jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe' - -# 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 %{installoutputdir -- $suffix}/images/%{jdkimage} - -# Install jsa directories so we can owe them -mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/ -mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/ - - # Install main files. - install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} - cp -a bin include lib src.zip {ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} - install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix} - cp -a jre/bin jre/lib jre/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix} - -%if %{with_systemtap} - # Install systemtap support files - install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset - # note, that uniquesuffix is in BUILD dir in this case - cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/ - pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/ - tapsetFiles=`ls *.stp` - popd - install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} - for name in $tapsetFiles ; do - targetName=`echo $name | sed "s/.stp/$suffix.stp/"` - ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name $RPM_BUILD_ROOT%{tapsetdir}/$targetName - done -%endif - - # Remove empty cacerts database - rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts - # Install cacerts symlink needed by some apps which hardcode the path - pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security - ln -sf /etc/pki/java/cacerts . - popd - - # Install versioned symlinks - pushd $RPM_BUILD_ROOT%{_jvmdir} - ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix} - popd - - # Remove javaws man page - rm -f man/man1/javaws* - - # Install man pages - install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1 - for manpage in man/man1/* - do - # Convert man pages to UTF8 encoding - iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp - mv -f $manpage.tmp $manpage - install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \ - $manpage .1)-%{uniquesuffix -- $suffix}.1 - done - - # Install demos and samples. - cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} - mkdir -p sample/rmi - if [ ! -e sample/rmi/java-rmi.cgi ] ; then - # hack to allow --short-circuit on install - mv bin/java-rmi.cgi sample/rmi - fi - cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix} - -popd - -if ! echo $suffix | grep -q "debug" ; then -# Install Javadoc documentation -install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} - cp -a %{installoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix} - built_doc_archive=`echo "jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" | sed s/slowdebug/debug/` - cp -a %{installoutputdir -- $suffix}/bundles/$built_doc_archive $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip -fi - -# Install release notes -commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix} -install -d -m 755 ${commondocdir} -cp -a %{SOURCE7} ${commondocdir} - -# Install icons and menu entries -for s in 16 24 32 48 ; do - install -D -p -m 644 \ - %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \ - $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png -done - -# Install desktop files -install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} -for e in jconsole$suffix policytool$suffix ; do - desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \ - --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop -done - -# Install /etc/.java/.systemPrefs/ directory -# See https://bugzilla.redhat.com/show_bug.cgi?id=741821 -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs - -# FIXME: remove SONAME entries from demo DSOs. See -# https://bugzilla.redhat.com/show_bug.cgi?id=436497 - -# Find non-documentation demo files. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \ - -type f -o -type l | sort \ - | grep -v README \ - | sed 's|'$RPM_BUILD_ROOT'||' \ - >> %{name}-demo.files"$suffix" -# Find documentation demo files. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \ - -type f -o -type l | sort \ - | grep README \ - | sed 's|'$RPM_BUILD_ROOT'||' \ - | sed 's|^|%doc |' \ - >> %{name}-demo.files"$suffix" -# Find demo directories. -find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \ - $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \ - -type d | sort \ - | sed 's|'$RPM_BUILD_ROOT'||' \ - | sed 's|^|%dir |' \ - >> %{name}-demo.files"$suffix" - -# RHBZ#1412953 -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/ - ln -sf ../../aarch32/client/libjvm.so -popd -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/ - for lib in \ - 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 \ - libjava.so \ - libjawt.so \ - libjdwp.so \ - libjsdt.so \ - libjsig.so \ - libjsoundalsa.so \ - libjsound.so \ - liblcms.so \ - libmanagement.so \ - libmlib_image.so \ - libnet.so \ - libnio.so \ - libnpt.so \ - libsctp.so \ - libsplashscreen.so \ - libsunec.so \ - libsystemconf.so \ - libunpack.so \ - libverify.so \ - libzip.so \ - jvm.cfg \ - ; do ln -sf ../aarch32/$lib ; done - mkdir -p jli -popd -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/jli - ln -sf ../../aarch32/jli/libjli.so -popd -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/ - mkdir -p %{archinstall} -popd -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/%{archinstall} - ln -sf ../aarch32/libjawt.so - mkdir -p jli -popd -pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/%{archinstall}/jli - ln -sf ../../aarch32/jli/libjli.so -popd - -# intentionally after all else, fx links with redirections on its own -%if %{with_openjfx_binding} - FXSDK_FILES=%{name}-openjfx-devel.files"$suffix" - FXJRE_FILES=%{name}-openjfx.files"$suffix" - echo -n "" > $FXJRE_FILES - echo -n "" > $FXSDK_FILES - for file in %{jfx_jre_libs} ; do - srcfile=%{jfx_jre_libs_dir}/$file - targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file - ln -s $srcfile $RPM_BUILD_ROOT/$targetfile - echo $targetfile >> $FXJRE_FILES - done - for file in %{jfx_jre_native} ; do - srcfile=%{jfx_jre_native_dir}/$file - targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file - ln -s $srcfile $RPM_BUILD_ROOT/$targetfile - echo $targetfile >> $FXJRE_FILES - done - for file in %{jfx_jre_exts} ; do - srcfile=%{jfx_jre_exts_dir}/$file - targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file - ln -s $srcfile $RPM_BUILD_ROOT/$targetfile - echo $targetfile >> $FXJRE_FILES - done - for file in %{jfx_sdk_libs} ; do - srcfile=%{jfx_sdk_libs_dir}/$file - targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file - ln -s $srcfile $RPM_BUILD_ROOT/$targetfile - echo $targetfile >> $FXSDK_FILES - done - for file in %{jfx_sdk_bins} ; do - srcfile=%{jfx_sdk_bins_dir}/$file - targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file - ln -s $srcfile $RPM_BUILD_ROOT/$targetfile - echo $targetfile >> $FXSDK_FILES - done -%endif - -bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver} -# https://bugzilla.redhat.com/show_bug.cgi?id=1183793 -touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security - -# moving config files to /etc -mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/ -mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/ -for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar lib/security/policy/unlimited/local_policy.jar lib/security/policy/limited/US_export_policy.jar lib/security/policy/limited/local_policy.jar lib/security/java.policy lib/security/java.security lib/security/blacklisted.certs lib/logging.properties lib/calendars.properties lib/security/nss.cfg lib/security/nss.fips.cfg lib/net.properties ; do - mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file - ln -sf %{etcjavadir -- $suffix}/$file $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file -done - -# stabilize permissions -find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} ; ; -find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} ; ; -find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} ; ; -find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} ; ; -find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} ; ; - -# end, dual install -done - -%if %{include_normal_build} -# intentionally only for non-debug -%pretrans headless -p <lua> --- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue --- see https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre --- if copy-jdk-configs is in transaction, it installs in pretrans to temp --- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction and so is --- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends --- whether copy-jdk-configs is installed or not. If so, then configs are copied --- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all -local posix = require "posix" - -if (os.getenv("debug") == "true") then - debug = true; - print("cjc: in spec debug is on") -else - debug = false; -end - -SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua" -SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua" - -local stat1 = posix.stat(SOURCE1, "type"); -local stat2 = posix.stat(SOURCE2, "type"); - - if (stat1 ~= nil) then - if (debug) then - print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this one.") - end; - package.path = package.path .. ";" .. SOURCE1 -else - if (stat2 ~= nil) then - if (debug) then - print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in transaction. Using.") - end; - package.path = package.path .. ";" .. SOURCE2 - else - if (debug) then - print(SOURCE1 .." does NOT exists") - print(SOURCE2 .." does NOT exists") - print("No config files will be copied") - end - return - end -end -arg = nil ; -- it is better to null the arg up, no meter if they exists or not, and use cjc as module in unified way, instead of relaying on "main" method during require "copy_jdk_configs.lua" -cjc = require "copy_jdk_configs.lua" -args = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"} -cjc.mainProgram(args) - -%post -%{post_script %{nil}} - -%post headless -%{post_headless %{nil}} - -%postun -%{postun_script %{nil}} - -%postun headless -%{postun_headless %{nil}} - -%posttrans -%{posttrans_script %{nil}} - -%posttrans headless -%{alternatives_java_install %{nil}} - -%post devel -%{post_devel %{nil}} - -%postun devel -%{postun_devel %{nil}} - -%posttrans devel -%{posttrans_devel %{nil}} - -%posttrans javadoc -%{alternatives_javadoc_install %{nil}} - -%postun javadoc -%{postun_javadoc %{nil}} - -%posttrans javadoc-zip -%{alternatives_javadoczip_install %{nil}} - -%postun javadoc-zip -%{postun_javadoc_zip %{nil}} -%endif - -%if %{include_debug_build} -%post slowdebug -%{post_script -- %{debug_suffix_unquoted}} - -%post headless-slowdebug -%{post_headless -- %{debug_suffix_unquoted}} - -%posttrans headless-slowdebug -%{alternatives_java_install -- %{debug_suffix_unquoted}} - -%postun slowdebug -%{postun_script -- %{debug_suffix_unquoted}} - -%postun headless-slowdebug -%{postun_headless -- %{debug_suffix_unquoted}} - -%posttrans slowdebug -%{posttrans_script -- %{debug_suffix_unquoted}} - -%post devel-slowdebug -%{post_devel -- %{debug_suffix_unquoted}} - -%postun devel-slowdebug -%{postun_devel -- %{debug_suffix_unquoted}} - -%posttrans devel-slowdebug -%{posttrans_devel -- %{debug_suffix_unquoted}} -%endif - -%if %{include_fastdebug_build} -%post fastdebug -%{post_script -- %{fastdebug_suffix_unquoted}} - -%post headless-fastdebug -%{post_headless -- %{fastdebug_suffix_unquoted}} - -%postun fastdebug -%{postun_script -- %{fastdebug_suffix_unquoted}} - -%postun headless-fastdebug -%{postun_headless -- %{fastdebug_suffix_unquoted}} - -%posttrans fastdebug -%{posttrans_script -- %{fastdebug_suffix_unquoted}} - -%posttrans headless-fastdebug -%{alternatives_java_install -- %{fastdebug_suffix_unquoted}} - -%post devel-fastdebug -%{post_devel -- %{fastdebug_suffix_unquoted}} - -%postun devel-fastdebug -%{postun_devel -- %{fastdebug_suffix_unquoted}} - -%posttrans devel-fastdebug -%{posttrans_devel -- %{fastdebug_suffix_unquoted}} - -%endif - -%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 -# same for debug variant -%files javadoc-zip -%{files_javadoc_zip %{nil}} - -%if %{with_openjfx_binding} -%files openjfx -f %{name}-openjfx.files - -%files openjfx-devel -f %{name}-openjfx-devel.files -%endif -%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}} - -%if %{with_openjfx_binding} -%files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug - -%files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug -%endif -%endif - -%if %{include_fastdebug_build} -%files fastdebug -%{files_jre -- %{fastdebug_suffix_unquoted}} - -%files headless-fastdebug -%{files_jre_headless -- %{fastdebug_suffix_unquoted}} - -%files devel-fastdebug -%{files_devel -- %{fastdebug_suffix_unquoted}} - -%files demo-fastdebug -f %{name}-demo.files-fastdebug -%{files_demo -- %{fastdebug_suffix_unquoted}} - -%files src-fastdebug -%{files_src -- %{fastdebug_suffix_unquoted}} - -%if %{with_openjfx_binding} -%files openjfx-fastdebug -f %{name}-openjfx.files-fastdebug - -%files openjfx-devel-fastdebug -f %{name}-openjfx-devel.files-fastdebug -%endif -%endif - -%changelog -* Mon Jan 29 2024 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.345.b01-1.6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jan 24 2024 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.345.b01-1.5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jan 20 2024 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.345.b01-1.4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jul 20 2023 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.345.b01-1.3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.345.b01-1.2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 16 2022 Alex Kashchenko akashche@redhat.com - 1:1.8.0.345.b01-1 -- update sources to 8u345 -- sync with mainline package - -* Thu Jul 21 2022 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.332.b09-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue May 03 2022 Alex Kashchenko akashche@redhat.com - 1:1.8.0.332.b09-1 -- update sources to 8u332 -- sync with mainline package - -* Fri Feb 11 2022 Alex Kashchenko akashche@redhat.com - 1:1.8.0.322.b06-1 -- update sources to 8u322 -- sync with mainline package - -* Thu Jan 20 2022 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.312.b07-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Nov 16 2021 Alex Kashchenko akashche@redhat.com - 1:1.8.0.312.b07-1 -- update sources to 8u312 -- sync with mainline package - -* Tue Aug 31 2021 Alex Kashchenko akashche@redhat.com - 1:1.8.0.302.b08-1 -- update sources to 8u302 -- sync with mainline package - -* Thu Jul 22 2021 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.292.b10-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu May 20 2021 Alex Kashchenko akashche@redhat.com - 1:1.8.0.292.b10-1 -- update sources to 8u292 -- sync with mainline package - -* Sun Feb 28 2021 Alex Kashchenko akashche@redhat.com - 1:1.8.0.282.b08-1 -- update sources to 8u282 -- sync with mainline package - -* Tue Jan 26 2021 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.275.b01-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Nov 17 2020 Alex Kashchenko akashche@redhat.com - 1:1.8.0.275.b01-1 -- update sources to 8u275 -- sync with mainline package - -* Mon Aug 31 2020 Alex Kashchenko akashche@redhat.com - 1:1.8.0.265.b01-1 -- update sources to 8u265 -- sync with mainline package - -* Sat Aug 01 2020 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.252.b09-1.2 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.252.b09-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Thu Apr 30 2020 Alex Kashchenko akashche@redhat.com - 1:1.8.0.252.b09-1 -- update sources to 8u252 -- sync with mainline package - -* Fri Mar 27 2020 Alex Kashchenko akashche@redhat.com - 1:1.8.0.242.b07-2 -- fix RHBZ#1818078 - -* Mon Mar 2 2020 Alex Kashchenko akashche@redhat.com - 1:1.8.0.242.b07-1 -- update sources to 8u242 -- add gcc10 flags -- sync with mainline package - -* Wed Jan 29 2020 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.232.b09-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Nov 6 2019 Alex Kashchenko akashche@redhat.com - 1:1.8.0.232.b09-1 -- update sources to 8u232 -- sync with mainline package - -* Fri Sep 27 2019 Alex Kashchenko akashche@redhat.com - 1:1.8.0.222.b10-3 -- add '-aarch32' suffix to jre symlink -- fixes RHBZ#1755309 - -* Wed Sep 11 2019 Alex Kashchenko akashche@redhat.com - 1:1.8.0.222.b10-1 -- update sources to 8u222 -- sync with mainline package - -* Thu Jul 25 2019 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.212.190430-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon May 6 2019 Alex Kashchenko akashche@redhat.com - 1:1.8.0.212-1.190430 -- update sources to 8u211 -- sync with mainline package - -* Tue Feb 12 2019 Alex Kashchenko akashche@redhat.com - 1:1.8.0.201-1.190124 -- update sources to 8u201 -- sync with mainline package - -* Tue Oct 30 2018 Alex Kashchenko akashche@redhat.com - 1:1.8.0.191-1.181022 -- update sources to 8u191 -- sync with mainline package - -* Thu Aug 30 2018 Alex Kashchenko akashche@redhat.com - 1:1.8.0.181-1.180802 -- update sources to 8u181 -- sync with mainline package - -* Fri Jul 13 2018 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.171-2.180511 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Sun May 27 2018 Alex Kashchenko akashche@redhat.com - 1:1.8.0.171-1.180511 -- update sources to 8u171 -- sync with mainline package - -* Mon Mar 12 2018 Alex Kashchenko akashche@redhat.com - 1:1.8.0.161-1.180220 -- update sources to 8u161 -- sync with mainline package - -* Wed Feb 07 2018 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.152-2.171102 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Nov 15 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.152-1.171102 -- update sources to 8u152 -- sync with mainline package - -* Fri Sep 15 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.144-2.170809 -- bump release to 2 to fix dist.upgradepath - -* Wed Sep 6 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.144-1.170809 -- mainline package merge -- provides disabled - -* Wed Jul 26 2017 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.131-3.170420 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jul 24 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.141-1.170721 -- update sources to 8u141 -- sync with mainline package - -* Sun Apr 30 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.131-2.170420 -- revert boot jdk to zero due to koschei arch-specific dep problem persists - -* Sat Apr 29 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.131-1.170420 -- update sources to 8u131 -- sync with mainline package - -* Wed Apr 12 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.121-4.170210 -- sync with mainline package -- add 8175234-aarch32 upstream patch - -* Fri Mar 10 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.121-4.170210 -- version bump to fix duplicated failed f26 build - -* Tue Feb 28 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.121-3.170210 -- rebuild because of NSS - -* Mon Feb 20 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.121-2.170210 -- add symlinks to jre/lib/arm directory for all aarch32 libs - -* Sun Feb 19 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.121-1.170210 -- sources tarball updated to jdk8u121-b13-aarch32-170210 -- add libjvm.so and libjava.so symlinks to jre/lib/arm directory -- disable javadoc provides -- fixes RHBZ#1412953 - -* Fri Feb 10 2017 Fedora Release Engineering releng@fedoraproject.org - 1:1.8.0.112-4.161109 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Jan 30 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.112-3.161109 -- 8u121 update - -* Mon Jan 2 2017 Alex Kashchenko akashche@redhat.com - 1:1.8.0.112-2.161109 -- disable hardened build flags -- remove Xmx patch -- fixes RHBZ#1290936 - -* Thu Dec 22 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.112-1.161109 -- fontconfig and nss restricted by isa -- debug subpackages allowed -- eu-readelfs on libraries, gdb call -- java SSL/TLS implementation: should follow the policies of system-wide crypto policy -- sync patches with mainline package -- 8u112 sources tarball -- add aarch32 post-u112 upstream patches - -* Tue Oct 25 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-11.160812 -- added aarch32-8u111.patch -- removed corba_typo_fix.patch - -* Tue Oct 04 2016 Jiri Vanek jvanek@redhat.com - 1:1.8.0.102-10.160812 -- enabled debug build - -* Mon Oct 03 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-9.160812 -- added aarch32-8167027.patch -- fixes RHBZ#1379061 - -* Fri Sep 30 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-8.160812 -- added aarch32-archname.patch - -* Thu Sep 22 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-7.160812 -- revert boot jdk back to zero - -* Wed Sep 21 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-6.160812 -- fixed macro in comments -- re-enabled openjdk-aarch32 as a boot jdk -- enabled provides for both java and javac - -* Tue Sep 20 2016 Jiri Vanek jvanek@redhat.com - 1:1.8.0.102-5.160812 -- sync with normal java packages: -- added zipped javadocs -- updated systemtap -- added (commented out) provides on jjs - -* Sat Sep 10 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-4.160812 -- declared check_sum_presented_in_spec and used in prep and check -- it is checking that latest packed java.security is mentioned in listing -- added ECDSA check -- added %%{_arch} postfix to alternatives - -* Wed Aug 31 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-3.160812 -- revert boot jdk back to zero - -* Mon Aug 29 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-2.160812 -- added C1 JIT patches -- use java-1.8.0-openjdk-aarch32 as a boot jdk - -* Sun Aug 14 2016 Alex Kashchenko akashche@redhat.com - 1:1.8.0.102-1.160812 -- remove upstreamed soundFontPatch.patch -- added patches 6260348-pr3066.patch, pr2974-rh1337583.patch, pr3083-rh1346460.patch, pr2899.patch, pr2934.patch, pr1834-rh1022017.patch, corba_typo_fix.patch, 8154313.patch -- removed unused patches java-1.8.0-openjdk-rh1191652-root.patch, java-1.8.0-openjdk-rh1191652-jdk.patch, java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch -- removed upstreamed (and previously unused) patches 8143855.patch, rhbz1206656_fix_current_stack_pointer.patch, remove_aarch64_template_for_gcc6.patch, make_reservedcodecachesize_changes_aarch64_only.patch -- added JDWP patches 8044762-pr2960.patch and 8049226-pr2960.patch -- priority lowered for ine zero digit, tip moved to 999 -- Restricted to depend on exactly same version of nss as used for build, -- Resolves: rhbz#1332456 -- used aarch32-port-jdk8u-jdk8u102-b14-aarch32-160812.tar.xz as new sources - -* Wed Jun 29 2016 Jiri Vanek jvanek@redhat.com - 1:1.8.0.91-1.160510 -- initial clone form java-1.8.0-openjdk -- using aarch32 sources -- restricted to {arm} arch only -- adapted description and summary -- all {name} in pathches replaced by java-1.8.0-openjdk. Same for source12 -- blindly commented out not applicable patches -- removed all java provides diff --git a/java-1.8.0-openjdk-remove-intree-libraries.sh b/java-1.8.0-openjdk-remove-intree-libraries.sh deleted file mode 100644 index 201a220..0000000 --- a/java-1.8.0-openjdk-remove-intree-libraries.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/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/jconsole.desktop.in b/jconsole.desktop.in deleted file mode 100644 index b88bd7c..0000000 --- a/jconsole.desktop.in +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Monitoring & Management Console -Comment=Monitor and manage OpenJDK applications -Exec=_BINDIR_/jconsole -Icon=java-@JAVA_VER@-@JAVA_VENDOR@ -Terminal=false -Type=Application -StartupWMClass=sun-tools-jconsole-JConsole -Categories=Development;Profiling;Java; -Version=1.0 diff --git a/jdk8035341-allow_using_system_installed_libpng.patch b/jdk8035341-allow_using_system_installed_libpng.patch deleted file mode 100644 index 53661d8..0000000 --- a/jdk8035341-allow_using_system_installed_libpng.patch +++ /dev/null @@ -1,115 +0,0 @@ -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/jdk8042159-allow_using_system_installed_lcms2-jdk.patch b/jdk8042159-allow_using_system_installed_lcms2-jdk.patch deleted file mode 100644 index ebfbdd2..0000000 --- a/jdk8042159-allow_using_system_installed_lcms2-jdk.patch +++ /dev/null @@ -1,68 +0,0 @@ -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/jdk8042159-allow_using_system_installed_lcms2-root.patch b/jdk8042159-allow_using_system_installed_lcms2-root.patch deleted file mode 100644 index 7ce90b1..0000000 --- a/jdk8042159-allow_using_system_installed_lcms2-root.patch +++ /dev/null @@ -1,50 +0,0 @@ -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/jdk8043805-allow_using_system_installed_libjpeg.patch b/jdk8043805-allow_using_system_installed_libjpeg.patch deleted file mode 100644 index 003f32b..0000000 --- a/jdk8043805-allow_using_system_installed_libjpeg.patch +++ /dev/null @@ -1,228 +0,0 @@ -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/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch deleted file mode 100644 index 792b04a..0000000 --- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch +++ /dev/null @@ -1,147 +0,0 @@ -# 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 -diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make ---- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make -+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make -@@ -1,5 +1,5 @@ - # --# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. -+# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. - # Copyright 2007, 2008 Red Hat, Inc. - # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - # -@@ -29,11 +29,6 @@ - ifeq ($(USE_CLANG), true) - WARNING_FLAGS += -Wno-undef - endif --# Suppress some warning flags that are normally turned on for hotspot, --# because some of the zero code has not been updated accordingly. --WARNING_FLAGS += -Wno-return-type \ -- -Wno-format-nonliteral -Wno-format-security \ -- -Wno-maybe-uninitialized - - # 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 -@@ -100,7 +100,7 @@ - case T_DOUBLE: - case T_VOID: - return result; -- default : ShouldNotReachHere(); -+ default : ShouldNotReachHere(); return NULL_WORD; - } - } - -diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp -+++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2010 Red Hat, Inc. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * -@@ -62,7 +62,7 @@ - } - - void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) { -- ffi_type *ftype; -+ ffi_type *ftype = NULL; - switch (type) { - case T_VOID: - ftype = &ffi_type_void; -diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp ---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp -+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp -@@ -1,6 +1,6 @@ - /* - * Copyright (c) 2003, 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 - } - - // These routines are only used on cpu architectures that diff --git a/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch b/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch deleted file mode 100644 index ddab642..0000000 --- a/jdk8195607-pr3776-rh1760437-nss_sqlite_db_config.patch +++ /dev/null @@ -1,125 +0,0 @@ -# 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/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch deleted file mode 100644 index 533ea2d..0000000 --- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch +++ /dev/null @@ -1,58 +0,0 @@ -# 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 -@@ -389,6 +389,21 @@ - AC_SUBST($2CXXSTD_CXXFLAG) - fi - -+ # -+ # NOTE: check for -mstackrealign needs to be below potential addition of -m32 -+ # -+ if test "x$OPENJDK_TARGET_CPU" = xx86 && test "x$OPENJDK_TARGET_OS" = xmacosx -o \ -+ "x$OPENJDK_TARGET_OS" = xlinux; then -+ # On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned. -+ # While waiting for a better solution, the current workaround is to use -mstackrealign -+ # This is also required on Linux systems which use libraries compiled with SSE instructions -+ REALIGN_CFLAG="-mstackrealign" -+ FLAGS_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [], -+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.]) -+ ) -+ AC_SUBST([REALIGN_CFLAG]) -+ fi -+ - if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then - AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags]) - fi -diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in openjdk///common/autoconf/hotspot-spec.gmk.in ---- openjdk.orig///common/autoconf/hotspot-spec.gmk.in -+++ openjdk///common/autoconf/hotspot-spec.gmk.in -@@ -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@ - -diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/spec.gmk.in ---- openjdk.orig///common/autoconf/spec.gmk.in -+++ openjdk///common/autoconf/spec.gmk.in -@@ -334,6 +334,7 @@ - - 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/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch deleted file mode 100644 index 7ac077b..0000000 --- a/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch +++ /dev/null @@ -1,20 +0,0 @@ -# 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/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch b/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch deleted file mode 100644 index 843158e..0000000 --- a/jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch +++ /dev/null @@ -1,321 +0,0 @@ -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 a/jdk8218811-perfMemory_linux.patch b/jdk8218811-perfMemory_linux.patch deleted file mode 100644 index 7b3d2f7..0000000 --- a/jdk8218811-perfMemory_linux.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp ---- openjdk.orig/hotspot/src/os/linux/vm/perfMemory_linux.cpp -+++ openjdk/hotspot/src/os/linux/vm/perfMemory_linux.cpp -@@ -878,7 +878,7 @@ - - // open the file - int result; -- RESTARTABLE(::open(filename, oflags), result); -+ RESTARTABLE(::open(filename, oflags, 0), result); - if (result == OS_ERR) { - if (errno == ENOENT) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), diff --git a/jdk8257794-remove_broken_assert.patch b/jdk8257794-remove_broken_assert.patch deleted file mode 100644 index bb88013..0000000 --- a/jdk8257794-remove_broken_assert.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp ---- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp -@@ -493,9 +493,6 @@ - assert(labs(istate->_stack_base - istate->_stack_limit) == (istate->_method->max_stack() + extra_stack_entries - + 1), "bad stack limit"); - } --#ifndef SHARK -- IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1, "wrong")); --#endif // !SHARK - } - // Verify linkages. - interpreterState l = istate; diff --git a/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch b/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch deleted file mode 100644 index 774a08e..0000000 --- a/jdk8281098-pr3836-pass_compiler_flags_to_adlc.patch +++ /dev/null @@ -1,67 +0,0 @@ -# HG changeset patch -# User Andrew John Hughes gnu_andrew@member.fsf.org -# Date 1620365804 -3600 -# Fri May 07 06:36:44 2021 +0100 -# Node ID 39b62f35eca823b4c9a98bc1dc0cb9acb87360f8 -# Parent 723b59ed1afe878c5cd35f080399c8ceec4f776b -PR3836: Extra compiler flags not passed to adlc build - -diff --git openjdk.orig/hotspot/make/aix/makefiles/adlc.make openjdk/hotspot/make/aix/makefiles/adlc.make ---- openjdk.orig/hotspot/make/aix/makefiles/adlc.make -+++ openjdk/hotspot/make/aix/makefiles/adlc.make -@@ -69,6 +69,11 @@ - CFLAGS_WARN = -w - CFLAGS += $(CFLAGS_WARN) - -+# Extra flags from gnumake's invocation or environment -+CFLAGS += $(EXTRA_CFLAGS) -+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS) -+ASFLAGS += $(EXTRA_ASFLAGS) -+ - OBJECTNAMES = \ - adlparse.o \ - archDesc.o \ -diff --git openjdk.orig/hotspot/make/bsd/makefiles/adlc.make openjdk/hotspot/make/bsd/makefiles/adlc.make ---- openjdk.orig/hotspot/make/bsd/makefiles/adlc.make -+++ openjdk/hotspot/make/bsd/makefiles/adlc.make -@@ -71,6 +71,11 @@ - endif - CFLAGS += $(CFLAGS_WARN) - -+# Extra flags from gnumake's invocation or environment -+CFLAGS += $(EXTRA_CFLAGS) -+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS) -+ASFLAGS += $(EXTRA_ASFLAGS) -+ - OBJECTNAMES = \ - adlparse.o \ - archDesc.o \ -diff --git openjdk.orig/hotspot/make/linux/makefiles/adlc.make openjdk/hotspot/make/linux/makefiles/adlc.make ---- openjdk.orig/hotspot/make/linux/makefiles/adlc.make -+++ openjdk/hotspot/make/linux/makefiles/adlc.make -@@ -69,6 +69,11 @@ - CFLAGS_WARN = $(WARNINGS_ARE_ERRORS) - CFLAGS += $(CFLAGS_WARN) - -+# Extra flags from gnumake's invocation or environment -+CFLAGS += $(EXTRA_CFLAGS) -+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS) -+ASFLAGS += $(EXTRA_ASFLAGS) -+ - OBJECTNAMES = \ - adlparse.o \ - archDesc.o \ -diff --git openjdk.orig/hotspot/make/solaris/makefiles/adlc.make openjdk/hotspot/make/solaris/makefiles/adlc.make ---- openjdk.orig/hotspot/make/solaris/makefiles/adlc.make -+++ openjdk/hotspot/make/solaris/makefiles/adlc.make -@@ -85,6 +85,10 @@ - endif - CFLAGS += $(CFLAGS_WARN) - -+# Extra flags from gnumake's invocation or environment -+CFLAGS += $(EXTRA_CFLAGS) -+ASFLAGS += $(EXTRA_ASFLAGS) -+ - ifeq ("${Platform_compiler}", "sparcWorks") - # Enable the following CFLAGS addition if you need to compare the - # built ELF objects. diff --git a/jdk8282231-x86_32-missing_call_effects.patch b/jdk8282231-x86_32-missing_call_effects.patch deleted file mode 100644 index ab341b6..0000000 --- a/jdk8282231-x86_32-missing_call_effects.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad openjdk/hotspot/src/cpu/x86/vm/x86_32.ad -index c8f4ee1613..cc0f4eef14 100644 ---- openjdk.orig/hotspot/src/cpu/x86/vm/x86_32.ad -+++ openjdk/hotspot/src/cpu/x86/vm/x86_32.ad -@@ -1,5 +1,5 @@ - // --// Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+// Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. - // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - // - // This code is free software; you can redistribute it and/or modify it -@@ -7665,9 +7665,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg cr) %{ - %} - - // Divide Register Long --instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ -+instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ - match(Set dst (DivL src1 src2)); -- effect( KILL cr, KILL cx, KILL bx ); -+ effect(CALL); - ins_cost(10000); - format %{ "PUSH $src1.hi\n\t" - "PUSH $src1.lo\n\t" -@@ -7713,9 +7713,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg cr) %{ - %} - - // Remainder Register Long --instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{ -+instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{ - match(Set dst (ModL src1 src2)); -- effect( KILL cr, KILL cx, KILL bx ); -+ effect(CALL); - ins_cost(10000); - format %{ "PUSH $src1.hi\n\t" - "PUSH $src1.lo\n\t" diff --git a/nss.cfg.in b/nss.cfg.in deleted file mode 100644 index 377a39c..0000000 --- a/nss.cfg.in +++ /dev/null @@ -1,5 +0,0 @@ -name = NSS -nssLibraryDirectory = @NSS_LIBDIR@ -nssDbMode = noDb -attributes = compatibility -handleStartupErrors = ignoreMultipleInitialisation diff --git a/nss.fips.cfg.in b/nss.fips.cfg.in deleted file mode 100644 index ead27be..0000000 --- a/nss.fips.cfg.in +++ /dev/null @@ -1,6 +0,0 @@ -name = NSS-FIPS -nssLibraryDirectory = @NSS_LIBDIR@ -nssSecmodDirectory = @NSS_SECMOD@ -nssDbMode = readOnly -nssModule = fips - diff --git a/policytool.desktop.in b/policytool.desktop.in deleted file mode 100644 index 112a24f..0000000 --- a/policytool.desktop.in +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=OpenJDK @OPENJDK_VER@ for @target_cpu@ Policy Tool -Comment=Manage OpenJDK policy files -Exec=_JREBINDIR_/policytool -Icon=java-@JAVA_VER@-@JAVA_VENDOR@ -Terminal=false -Type=Application -StartupWMClass=sun-security-tools-PolicyTool -Categories=Settings;Java; -Version=1.0 diff --git a/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch b/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch deleted file mode 100644 index 17e1f69..0000000 --- a/pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch +++ /dev/null @@ -1,302 +0,0 @@ -# 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/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch b/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch deleted file mode 100644 index f1e8bc2..0000000 --- a/pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch +++ /dev/null @@ -1,74 +0,0 @@ -# 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/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch deleted file mode 100644 index a42688d..0000000 --- a/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch +++ /dev/null @@ -1,63 +0,0 @@ -# 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/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch b/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch deleted file mode 100644 index 4859ca6..0000000 --- a/pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch +++ /dev/null @@ -1,148 +0,0 @@ -# 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 a/src/share/classes/sun/security/pkcs10/PKCS10.java b/src/share/classes/sun/security/pkcs10/PKCS10.java ---- openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java -+++ openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java -@@ -30,6 +30,7 @@ - import java.io.IOException; - import java.math.BigInteger; - -+import java.security.AccessController; - import java.security.cert.CertificateException; - import java.security.NoSuchAlgorithmException; - import java.security.InvalidKeyException; -@@ -39,6 +40,7 @@ - - import java.util.Base64; - -+import sun.security.action.GetPropertyAction; - import sun.security.util.*; - import sun.security.x509.AlgorithmId; - import sun.security.x509.X509Key; -@@ -76,6 +78,14 @@ - * @author Hemma Prafullchandra - */ - public class PKCS10 { -+ -+ private static final byte[] sysLineEndings; -+ -+ static { -+ sysLineEndings = -+ AccessController.doPrivileged(new GetPropertyAction("line.separator")).getBytes(); -+ } -+ - /** - * Constructs an unsigned PKCS #10 certificate request. Before this - * request may be used, it must be encoded and signed. Then it -@@ -293,13 +303,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 a/src/share/classes/sun/security/tools/keytool/Main.java b/src/share/classes/sun/security/tools/keytool/Main.java ---- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java -+++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java -@@ -124,6 +124,7 @@ - private String infilename = null; - private String outfilename = null; - private String srcksfname = null; -+ 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. -@@ -186,7 +187,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, -@@ -319,6 +320,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"); -@@ -559,6 +561,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(); -@@ -1463,7 +1467,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); - } -@@ -4540,4 +4544,3 @@ - return new Pair<>(a,b); - } - } -- -diff --git a/src/share/classes/sun/security/tools/keytool/Resources.java b/src/share/classes/sun/security/tools/keytool/Resources.java ---- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java -+++ 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/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch b/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch deleted file mode 100644 index b52c087..0000000 --- a/pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch +++ /dev/null @@ -1,164 +0,0 @@ -# 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 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/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch deleted file mode 100644 index 2700f3c..0000000 --- a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch +++ /dev/null @@ -1,143 +0,0 @@ -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: 0x%x]\n" - " [Age Threshold: " UINTX_FORMAT "]", -diff --git openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp -+++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp -@@ -57,7 +57,7 @@ - gclog_or_tty->print_cr("BlockOffsetSharedArray::BlockOffsetSharedArray: "); - gclog_or_tty->print_cr(" " - " 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/repackReproduciblePolycies.sh b/repackReproduciblePolycies.sh deleted file mode 100644 index f356bd3..0000000 --- a/repackReproduciblePolycies.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/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/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch b/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch deleted file mode 100644 index d9cbac4..0000000 --- a/rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch +++ /dev/null @@ -1,66 +0,0 @@ -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/rh1582504-rsa_default_for_keytool.patch b/rh1582504-rsa_default_for_keytool.patch deleted file mode 100644 index f59dbf5..0000000 --- a/rh1582504-rsa_default_for_keytool.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch b/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch deleted file mode 100644 index b0a874d..0000000 --- a/rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch deleted file mode 100644 index eb8f255..0000000 --- a/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/jdk/src/share/lib/security/java.security-linux b/jdk/src/share/lib/security/java.security-linux -index 9d1c8fe8a8e..a80a3c12abb 100644 ---- a/jdk/src/share/lib/security/java.security-linux -+++ b/jdk/src/share/lib/security/java.security-linux -@@ -74,6 +74,7 @@ security.provider.6=sun.security.jgss.SunProvider - security.provider.7=com.sun.security.sasl.Provider - security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI - security.provider.9=sun.security.smartcardio.SunPCSC -+#security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg - - # - # Security providers used when FIPS mode support is active diff --git a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch deleted file mode 100644 index e319492..0000000 --- a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch +++ /dev/null @@ -1,16 +0,0 @@ -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/rh1750419-redhat_alt_java.patch b/rh1750419-redhat_alt_java.patch deleted file mode 100644 index 4789f0b..0000000 --- a/rh1750419-redhat_alt_java.patch +++ /dev/null @@ -1,133 +0,0 @@ -diff --git openjdk.orig/jdk/make/CompileLaunchers.gmk openjdk/jdk/make/CompileLaunchers.gmk ---- openjdk.orig/jdk/make/CompileLaunchers.gmk -+++ openjdk/jdk/make/CompileLaunchers.gmk -@@ -255,6 +255,33 @@ - endif - endif - -+# -Wno-error=cpp is present to allow commented warning in ifdef part of main.c -+$(eval $(call SetupLauncher,alt-java, \ -+ -DEXPAND_CLASSPATH_WILDCARDS -DREDHAT_ALT_JAVA -Wno-error=cpp,,,user32.lib comctl32.lib, \ -+ $(JDK_OUTPUTDIR)/objs/jli_static.lib, $(JAVA_RC_FLAGS), \ -+ $(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,14 @@ - - #include "defines.h" - -+#ifdef REDHAT_ALT_JAVA -+#if defined(__linux__) && defined(__x86_64__) -+#include "alt_main.h" -+#else -+#warning alt-java requested but SSB mitigation not available on this platform. -+#endif -+#endif -+ - #ifdef _MSC_VER - #if _MSC_VER > 1400 && _MSC_VER < 1600 - diff --git a/s390-8214206_fix.patch b/s390-8214206_fix.patch deleted file mode 100644 index 42902cf..0000000 --- a/s390-8214206_fix.patch +++ /dev/null @@ -1,37 +0,0 @@ -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/sources b/sources deleted file mode 100644 index 589a48a..0000000 --- a/sources +++ /dev/null @@ -1,2 +0,0 @@ -SHA512 (openjdk-aarch32-port-jdk8u-jdk8u345-ga-aarch32-20220802-4curve.tar.xz) = 34149a1937ac0eb1dd487b9416c4fe8a3a50ca5a7d97419da4bf669fb6ccaf8e00548fe25f068f157c0a41420c008af2aa93ac1250071a4c7fd8e206ca79e114 -SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671 diff --git a/update_main_sources.sh b/update_main_sources.sh deleted file mode 100755 index 5f78b8d..0000000 --- a/update_main_sources.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -x -# Generates the 'source tarball' for JDK 8 projects and update spec infrastructure -# By default, this script regenerate source as they are currently used. -# so if the version of sources change, this file changes and is pushed -# -# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg: -# PROJECT_NAME=jdk8u OR aarch64-port -# REPO_NAME=jdk8u60 OR jdk8u60 -# VERSION=jdk8u60-b27 OR aarch64-jdk8u65-b17 OR for head, keyword 'tip' should do the job there -# -# If you don't, default are used and so already uploaded tarball regenerated -# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set) -# -# For other useful variables see generate_source_tarball.sh -# -# the used values are then substituted to spec and sources - -if [ ! "x$PR2126" = "x" ] ; then - if [ ! -f "$PR2126" ] ; then - echo "You have specified PR2126 as $PR2126 but it does not exists. exiting" - exit 1 - fi -fi - -set -e - -if [ "x$PROJECT_NAME" = "x" ] ; then - PROJECT_NAME="aarch64-port" -fi -if [ "x$REPO_NAME" = "x" ] ; then - REPO_NAME="jdk8u-shenandoah" -fi -if [ "x$VERSION" = "x" ] ; then - VERSION="aarch64-shenandoah-jdk8u181-b15" -fi - -if [ "x$COMPRESSION" = "x" ] ; then -# rhel 5 needs tar.gz - COMPRESSION=xz -fi -if [ "x$FILE_NAME_ROOT" = "x" ] ; then - FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION} -fi -if [ "x$PKG" = "x" ] ; then - URL=`cat .git/config | grep url` - PKG=${URL##*/} -fi -if [ "x$SPEC" = "x" ] ; then - SPEC=${PKG}.spec -fi -if [ "x$RELEASE" = "x" ] ; then - RELEASE=1 -fi - -FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION} - -if [ ! -f ${FILENAME} ] ; then -echo "Generating ${FILENAME}" -. ./generate_source_tarball.sh -else -echo "${FILENAME} already exists, using" -fi - - -echo "Touching spec: $SPEC" -echo sed -i "s/^%global\s+project.*/%global project ${PROJECT_NAME}/" $SPEC -echo sed -i "s/^%global\s+repo.*/%global repo ${REPO_NAME}/" $SPEC -echo sed -i "s/^%global\s+revision.*/%global revision ${VERSION}/" $SPEC -# updated sources, resetting release -echo sed -i "s/^Release:.*/Release: $RELEASE.%{buildver}%{?dist}/" $SPEC - -echo "New sources" -cat sources -a_sources=`cat sources | sed "s/.*(//g" | sed "s/).*//g" | sed "s/.*\s+//g"` -echo " you can get inspired by following %changelog template:" -user_name=`whoami` -user_record=$(getent passwd $user_name) -user_gecos_field=$(echo "$user_record" | cut -d ':' -f 5) -user_full_name=$(echo "$user_gecos_field" | cut -d ',' -f 1) -spec_date=`date +"%a %b %d %Y"` -# See spec: -revision_helper=`echo ${MAIN_VERSION%-*}` -updatever=`echo ${revision_helper##*u}` -buildver=`echo ${MAIN_VERSION##*-}` -echo "* $spec_date $user_full_name $user_name@redhat.com - 1:1.8.0.$updatever-$RELEASE.$buildver" -echo "- updated to $MAIN_VERSION (from $PROJECT_NAME/$MAIN_REPO_NAME)" -echo "- updated to $VERSION (from $PROJECT_NAME/$REPO_NAME) of hotspot" -echo "- used $FILENAME as new sources" -echo "- used $FILENAME_SH as new sources for hotspot" - -echo " execute:" -echo "fedpkg/rhpkg new-sources "$a_sources -echo " to upload sources" -echo "you can verify by fedpkg/rhpkg prep --arch XXXX on all architectures: x86_64 i386 i586 i686 ppc ppc64 ppc64le s390 s390x aarch64 armv7hl" -
arch-excludes@lists.fedoraproject.org