From ca2c8684b4226cf606f26944f8f20785d1c5905d Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 22 Jan 2021 13:10:45 +0000 Subject: [PATCH] Update to jdk-15.0.2.0+7 Add release notes for 15.0.1.0 & 15.0.2.0 Use JEP-322 Time-Based Versioning so we can handle a future 11.0.9.1-like release correctly. Still use 15.0.x rather than 15.0.x.0 for file naming, as the trailing zero is omitted from tags. Cleanup debug package descriptions and version number placement. Remove unused patch files. --- .gitignore | 1 + NEWS | 154 ++++ generate_source_tarball.sh | 0 java-latest-openjdk.spec | 170 ++-- jdk8224851-aarch64_compiler_fixes.patch | 515 ------------ ...uals_null_failed_null_dominator_info.patch | 104 --- ...resolve_forwarding_pointer_borrowing.patch | 47 -- jdk8236039-status_request_extension.patch | 737 ------------------ sources | 2 +- 9 files changed, 257 insertions(+), 1473 deletions(-) create mode 100644 NEWS mode change 100644 => 100755 generate_source_tarball.sh delete mode 100644 jdk8224851-aarch64_compiler_fixes.patch delete mode 100644 jdk8231405-guarantee_d_nonequals_null_failed_null_dominator_info.patch delete mode 100644 jdk8231583-fix_register_clash_in_sbsa_resolve_forwarding_pointer_borrowing.patch delete mode 100644 jdk8236039-status_request_extension.patch diff --git a/.gitignore b/.gitignore index fb8e571..9203ad8 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /jdk-jdk15-jdk-15+36.tar.xz /jdk-updates-jdk15u-jdk-15.0.1+9.tar.xz /tapsets-icedtea-3.15.0.tar.xz +/jdk-updates-jdk15u-jdk-15.0.2+7.tar.xz diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..c88d968 --- /dev/null +++ b/NEWS @@ -0,0 +1,154 @@ +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 15.0.2 (2021-01-19): +=========================================== +Live versions of these release notes can be found at: + * https://builds.shipilev.net/backports-monitor/release-notes-15.0.2.txt + +* Security fixes + - JDK-8247619: Improve Direct Buffering of Characters +* Other changes + - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8 + - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test + - JDK-8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set + - JDK-8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted + - JDK-8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled + - JDK-8248667: Need support for building native libraries located in the test/lib directory + - JDK-8249176: Update GlobalSignR6CA test certificates + - JDK-8249192: MonitorInfo stores raw oops across safepoints + - JDK-8249217: Unexpected StackOverflowError in "process reaper" thread still happens + - JDK-8249781: AArch64: AOT compiled code crashes if C2 allocates r27 + - JDK-8250257: Bump release strings for JDK 15.0.2 + - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray + - JDK-8251859: sun/security/validator/PKIXValAndRevCheckTests.java fails + - JDK-8253191: C2: Masked byte comparisons with large masks produce wrong result on x86 + - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209) + - JDK-8253566: clazz.isAssignableFrom will return false for interface implementors + - JDK-8253756: C2 CompilerThread0 crash in Node::add_req(Node*) + - JDK-8253791: Issue with useAppleColor check in CSystemColors.m + - JDK-8253960: Memory leak in Java_java_lang_ClassLoader_defineClass0() + - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate + - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp + - JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b + - JDK-8254319: Shenandoah: Interpreter native-LRB needs to activate during HAS_FORWARDED + - JDK-8254320: Shenandoah: C2 native LRB should activate for non-cset objects + - JDK-8254790: SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics + - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations + - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c + - JDK-8255065: Zero: accessor_entry misses the IRIW case + - JDK-8255067: Restore Copyright line in file modified by 8253191 + - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d + - JDK-8255599: Change jdk 15.0.2 milestone to fcs for build b04 + - JDK-8255603: Memory/Performance regression after JDK-8210985 + - JDK-8256051: nmethod_entry_barrier stub miscalculates xmm spill size on x86_32 + - JDK-8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX + - JDK-8256618: Zero: Linux x86_32 build still fails + - JDK-8257181: s390x builds are very noisy with gc-sections messages + - JDK-8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false + - JDK-8257701: Shenandoah: objArrayKlass metadata is not marked with chunked arrays + +Notes on individual issues: +=========================== + +core-libs/java.time: + +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 15.0.1 (2020-10-20): +=========================================== +Live versions of these release notes can be found at: + * https://builds.shipilev.net/backports-monitor/release-notes-15.0.1.txt + +* 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-8232114: JVM crashed at imjpapi.dll in native code + - JDK-8243470: [macos] bring back O2 opt level for unsafe.cpp + - JDK-8247251: Assert '(_pcs_length == 0 || last_pc()->pc_offset() < pc_offset) failed: must specify a new, larger pc offset' failure + - JDK-8248495: [macos] zerovm is broken due to libffi headers location + - JDK-8248745: Add jarsigner and keytool tests for restricted algorithms + - JDK-8249165: Remove unneeded nops introduced by 8234160 changes + - JDK-8249183: JVM crash in "AwtFrame::WmSize" method + - JDK-8249266: Bump release strings for JDK 15.0.1 + - JDK-8249266: Change jdk 15.0.1 milestone to fcs for build b02 + - JDK-8250612: jvmciCompilerToVM.cpp declares jio_printf with "void" return type, should be "int" + - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY + - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool) + - JDK-8250876: Fix issues with cross-compile on macos + - JDK-8250928: JFR: Improve hash algorithm for stack traces + - JDK-8251359: Shenandoah: filter null oops before calling enqueue/SATB barrier + - JDK-8251458: Parse::do_lookupswitch fails with "assert(_cnt >= 0) failed" + - JDK-8251859: sun/security/validator/PKIXValAndRevCheckTests.java fails + - JDK-8251910: Shenandoah: Handshake threads between weak-roots and reset phases + - JDK-8252120: compiler/oracle/TestCompileCommand.java misspells "occured" + - JDK-8252292: 8240795 may cause anti-dependence to be missed + - JDK-8252359: HotSpot Not Identifying it is Running in a Container + - JDK-8252367: Undo JDK-8245000: Windows GDI functions don't support large pages + - JDK-8252368: Undo JDK-8245002: Windows GDI functions don't support NUMA interleaving + - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows + - JDK-8252660: Shenandoah: support manageable SoftMaxHeapSize option + - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent + - JDK-8253222: Shenandoah: unused AlwaysTrueClosure after JDK-8246591 + - JDK-8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() + - JDK-8253226: Shenandoah: remove unimplemented ShenandoahStrDedupQueue::verify + - JDK-8253284: Zero OrderAccess barrier mappings are incorrect + - JDK-8253714: [cgroups v2] Soft memory limit incorrectly using memory.high + - JDK-8253727: [cgroups v2] Memory and swap limits reported incorrectly + - JDK-8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads + - JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp + - JDK-8254560: Shenandoah: Concurrent Strong Roots logging is incorrect + +Notes on individual issues: +=========================== + +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 diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh old mode 100644 new mode 100755 diff --git a/java-latest-openjdk.spec b/java-latest-openjdk.spec index e5398e1..acb6f94 100644 --- a/java-latest-openjdk.spec +++ b/java-latest-openjdk.spec @@ -48,10 +48,11 @@ %global normal_suffix "" %global debug_warning This package is unoptimised with full debugging. Install only as needed and remove ASAP. -%global debug_on with full debug on +%global debug_on with full debugging on +%global fastdebug_on with minimal debugging on %global fastdebug_warning This package is optimised with full debugging. Install only as needed and remove ASAP. -%global for_fastdebug with minimal debug on -%global for_debug for packages with debug on +%global for_fastdebug_on for packages with minimal debugging on +%global for_debug for packages with debugging on %if %{with release} %global include_normal_build 1 @@ -246,16 +247,18 @@ %endif # New Version-String scheme-style defines -# If you bump majorver, you must bump also vendor_version_string -%global majorver 15 +%global featurever 15 +%global interimver 0 +%global updatever 2 +%global patchver 0 +# If you bump featurever, you must bump also vendor_version_string # Used via new version scheme. JDK 15 was # GA'ed in September 2020 => 20.9 %global vendor_version_string 20.9 -%global securityver 1 -# buildjdkver is usually same as %%{majorver}, -# but in time of bootstrap of next jdk, it is majorver-1, +# buildjdkver is usually same as %%{featurever}, +# but in time of bootstrap of next jdk, it is featurever-1, # and this it is better to change it here, on single place -%global buildjdkver 15 +%global buildjdkver %{featurever} # We don't add any LTS designator for STS packages (this package). # Neither for Fedora nor EPEL which would have %%{rhel} macro defined. %global lts_designator "" @@ -268,19 +271,30 @@ %global origin openjdk %global origin_nice OpenJDK %global top_level_dir_name %{origin} -%global minorver 0 -%global buildver 9 -%global rpmrelease 10 -# priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit +%global buildver 7 +%global rpmrelease 0 +# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk -%global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver} %{securityver} %{buildver} ) +# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions +# It is very unlikely we will ever have a patch version > 4 or a build version > 20, so we combine as (patch * 20) + build. +# This means 11.0.9.0+11 would have had a priority of 11000911 as before +# A 11.0.9.1+1 would have had a priority of 11000921 (20 * 1 + 1), thus ensuring it is bigger than 11.0.9.0+11 +%global combiver $( expr 20 '*' %{patchver} + %{buildver} ) +%global priority %( printf '%02d%02d%02d%02d' %{featurever} %{interimver} %{updatever} %{combiver} ) %else # for techpreview, using 1, so slowdebugs can have 0 %global priority %( printf '%08d' 1 ) %endif -%global newjavaver %{majorver}.%{minorver}.%{securityver} +%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} -%global javaver %{majorver} +# Omit trailing 0 in filenames when the patch version is 0 +%if 0%{?patchver} > 0 +%global filever %{newjavaver} +%else +%global filever %{featurever}.%{interimver}.%{updatever} +%endif + +%global javaver %{featurever} # Define milestone (EA for pre-releases, GA for releases) # Release will be (where N is usually a number starting at 1): @@ -317,7 +331,7 @@ %endif # parametrized macros are order-sensitive -%global compatiblename java-%{majorver}-%{origin} +%global compatiblename java-%{featurever}-%{origin} %global fullversion %{compatiblename}-%{version}-%{release} # images directories from upstream build %global jdkimage jdk @@ -614,6 +628,7 @@ exit 0 %define files_jre_headless() %{expand: %license %{_jvmdir}/%{sdkdir -- %{?1}}/legal +%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS %dir %{_sysconfdir}/.java/.systemPrefs %dir %{_sysconfdir}/.java %dir %{_jvmdir}/%{sdkdir -- %{?1}} @@ -1048,7 +1063,7 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist} # provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". Epoch: 1 -Summary: %{origin_nice} Runtime Environment %{majorver} +Summary: %{origin_nice} %{featurever} Runtime Environment # HotSpot code is licensed under GPLv2 # JDK library code is licensed under GPLv2 with the Classpath exception @@ -1070,7 +1085,7 @@ URL: http://openjdk.java.net/ # to regenerate source0 (jdk) run update_package.sh # update_package.sh contains hard-coded repos, revisions, tags, and projects to regenerate the source archives -Source0: jdk-updates-jdk%{majorver}u-jdk-%{majorver}.%{minorver}.%{securityver}+%{buildver}.tar.xz +Source0: jdk-updates-jdk%{featurever}u-jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}.tar.xz # Use 'icedtea_sync.sh' to update the following # They are based on code contained in the IcedTea project (3.x). @@ -1080,6 +1095,9 @@ Source8: tapsets-icedtea-%{icedteaver}.tar.xz # Desktop files. Adapted from IcedTea Source9: jconsole.desktop.in +# Release notes +Source10: NEWS + # nss configuration file Source11: nss.cfg.in @@ -1175,251 +1193,251 @@ BuildRequires: make %{java_rpo %{nil}} %description -The %{origin_nice} runtime environment %{majorver}. +The %{origin_nice} %{featurever} runtime environment. %if %{include_debug_build} %package slowdebug -Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on} %{java_rpo -- %{debug_suffix_unquoted}} %description slowdebug -The %{origin_nice} runtime environment %{majorver}. +The %{origin_nice} %{featurever} runtime environment. %{debug_warning} %endif %if %{include_fastdebug_build} %package fastdebug -Summary: %{origin_nice} Runtime Environment %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on} Group: Development/Languages %{java_rpo -- %{fastdebug_suffix_unquoted}} %description fastdebug -The %{origin_nice} runtime environment. +The %{origin_nice} %{featurever} runtime environment. %{fastdebug_warning} %endif %if %{include_normal_build} %package headless -Summary: %{origin_nice} Headless Runtime Environment %{majorver} +Summary: %{origin_nice} %{featurever} Headless Runtime Environment %{java_headless_rpo %{nil}} %description headless -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %endif %if %{include_debug_build} %package headless-slowdebug -Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on} %{java_headless_rpo -- %{debug_suffix_unquoted}} %description headless-slowdebug -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %{debug_warning} %endif %if %{include_fastdebug_build} %package headless-fastdebug -Summary: %{origin_nice} Runtime Environment %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on} Group: Development/Languages %{java_headless_rpo -- %{fastdebug_suffix_unquoted}} %description headless-fastdebug -The %{origin_nice} runtime environment %{majorver} without audio and video support. +The %{origin_nice} %{featurever} runtime environment without audio and video support. %{fastdebug_warning} %endif %if %{include_normal_build} %package devel -Summary: %{origin_nice} Development Environment %{majorver} +Summary: %{origin_nice} %{featurever} Development Environment %{java_devel_rpo %{nil}} %description devel -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} %{featurever} development tools. %endif %if %{include_debug_build} %package devel-slowdebug -Summary: %{origin_nice} Development Environment %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Development Environment %{debug_on} %{java_devel_rpo -- %{debug_suffix_unquoted}} %description devel-slowdebug -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} %{featurever} development tools. %{debug_warning} %endif %if %{include_fastdebug_build} %package devel-fastdebug -Summary: %{origin_nice} Development Environment %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Development Environment %{fastdebug_on} Group: Development/Tools %{java_devel_rpo -- %{fastdebug_suffix_unquoted}} %description devel-fastdebug -The %{origin_nice} development tools %{majorver}. +The %{origin_nice} %{featurever} development tools . %{fastdebug_warning} %endif %if %{include_normal_build} %package static-libs -Summary: %{origin_nice} libraries for static linking %{majorver} +Summary: %{origin_nice} %{featurever} libraries for static linking %{java_static_libs_rpo %{nil}} %description static-libs -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %endif %if %{include_debug_build} %package static-libs-slowdebug -Summary: %{origin_nice} libraries for static linking %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} libraries for static linking %{debug_on} %{java_static_libs_rpo -- %{debug_suffix_unquoted}} %description static-libs-slowdebug -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %{debug_warning} %endif %if %{include_fastdebug_build} %package static-libs-fastdebug -Summary: %{origin_nice} libraries for static linking %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} libraries for static linking %{fastdebug_on} %{java_static_libs_rpo -- %{fastdebug_suffix_unquoted}} %description static-libs-fastdebug -The %{origin_nice} libraries for static linking %{majorver}. +The %{origin_nice} %{featurever} libraries for static linking. %{fastdebug_warning} %endif %if %{include_normal_build} %package jmods -Summary: JMods for %{origin_nice} %{majorver} +Summary: JMods for %{origin_nice} %{featurever} %{java_jmods_rpo %{nil}} %description jmods -The JMods for %{origin_nice}. +The JMods for %{origin_nice} %{featurever}. %endif %if %{include_debug_build} %package jmods-slowdebug -Summary: JMods for %{origin_nice} %{majorver} %{debug_on} +Summary: JMods for %{origin_nice} %{featurever} %{debug_on} %{java_jmods_rpo -- %{debug_suffix_unquoted}} %description jmods-slowdebug -The JMods for %{origin_nice} %{majorver}. +The JMods for %{origin_nice} %{featurever}. %{debug_warning} %endif %if %{include_fastdebug_build} %package jmods-fastdebug -Summary: JMods for %{origin_nice} %{majorver} %{fastdebug_on} +Summary: JMods for %{origin_nice} %{featurever} %{fastdebug_on} Group: Development/Tools %{java_jmods_rpo -- %{fastdebug_suffix_unquoted}} %description jmods-fastdebug -The JMods for %{origin_nice} %{majorver}. +The JMods for %{origin_nice} %{featurever}. %{fastdebug_warning} %endif %if %{include_normal_build} %package demo -Summary: %{origin_nice} Demos %{majorver} +Summary: %{origin_nice} %{featurever} Demos %{java_demo_rpo %{nil}} %description demo -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %endif %if %{include_debug_build} %package demo-slowdebug -Summary: %{origin_nice} Demos %{majorver} %{debug_on} +Summary: %{origin_nice} %{featurever} Demos %{debug_on} %{java_demo_rpo -- %{debug_suffix_unquoted}} %description demo-slowdebug -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %{debug_warning} %endif %if %{include_fastdebug_build} %package demo-fastdebug -Summary: %{origin_nice} Demos %{majorver} %{fastdebug_on} +Summary: %{origin_nice} %{featurever} Demos %{fastdebug_on} Group: Development/Languages %{java_demo_rpo -- %{fastdebug_suffix_unquoted}} %description demo-fastdebug -The %{origin_nice} demos %{majorver}. +The %{origin_nice} %{featurever} demos. %{fastdebug_warning} %endif %if %{include_normal_build} %package src -Summary: %{origin_nice} Source Bundle %{majorver} +Summary: %{origin_nice} %{featurever} Source Bundle %{java_src_rpo %{nil}} %description src -The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver} +The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{featurever} class library source code for use by IDE indexers and debuggers. %endif %if %{include_debug_build} %package src-slowdebug -Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug} +Summary: %{origin_nice} %{featurever} Source Bundle %{for_debug} %{java_src_rpo -- %{debug_suffix_unquoted}} %description src-slowdebug -The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}. +The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{featurever} + class library source code for use by IDE indexers and debuggers, %{for_debug}. %endif %if %{include_fastdebug_build} %package src-fastdebug -Summary: %{origin_nice} Source Bundle %{majorver} %{for_fastdebug} +Summary: %{origin_nice} %{featurever} Source Bundle %{for_fastdebug} Group: Development/Languages %{java_src_rpo -- %{fastdebug_suffix_unquoted}} %description src-fastdebug -The java-%{origin}-src-fastdebug sub-package contains the complete %{origin_nice} %{majorver} - class library source code for use by IDE indexers and debuggers. Debugging %{for_fastdebug}. +The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{featurever} + 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 +Summary: %{origin_nice} %{featurever} API documentation Requires: javapackages-filesystem Obsoletes: javadoc-slowdebug < 1:13.0.0.33-1.rolling %{java_javadoc_rpo %{nil}} %description javadoc -The %{origin_nice} %{majorver} API documentation. +The %{origin_nice} %{featurever} API documentation. %endif %if %{include_normal_build} %package javadoc-zip -Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive +Summary: %{origin_nice} %{featurever} API documentation compressed in a single archive Requires: javapackages-filesystem Obsoletes: javadoc-zip-slowdebug < 1:13.0.0.33-1.rolling %{java_javadoc_rpo %{nil}} %description javadoc-zip -The %{origin_nice} %{majorver} API documentation compressed in a single archive. +The %{origin_nice} %{featurever} API documentation compressed in a single archive. %endif %prep @@ -1512,7 +1530,7 @@ for file in %{SOURCE9}; do sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE - sed -i -e "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE + sed -i -e "s:@JAVA_MAJOR_VERSION@:%{featurever}:g" $OUTPUT_FILE sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE done done @@ -1828,10 +1846,16 @@ if ! echo $suffix | grep -q "debug" ; then # Install Javadoc documentation install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} cp -a %{buildoutputdir -- $suffix}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix} - built_doc_archive=jdk-%{majorver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip - cp -a %{buildoutputdir -- $suffix}/bundles/jdk-%{majorver}.%{minorver}.%{securityver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l %{buildoutputdir -- $suffix}/bundles/ + built_doc_archive=jdk-%{filever}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip + cp -a %{buildoutputdir -- $suffix}/bundles/${built_doc_archive} \ + $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l %{buildoutputdir -- $suffix}/bundles/ fi +# Install release notes +commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix} +install -d -m 755 ${commondocdir} +cp -a %{SOURCE10} ${commondocdir} + # Install icons and menu entries for s in 16 24 32 48 ; do install -D -p -m 644 \ @@ -2097,6 +2121,14 @@ require "copy_jdk_configs.lua" %endif %changelog +* Fri Jan 22 2021 Andrew Hughes - 1:15.0.2.0.7-0.rolling +- Update to jdk-15.0.2.0+7 +- Add release notes for 15.0.1.0 & 15.0.2.0 +- Use JEP-322 Time-Based Versioning so we can handle a future 11.0.9.1-like release correctly. +- Still use 15.0.x rather than 15.0.x.0 for file naming, as the trailing zero is omitted from tags. +- Cleanup debug package descriptions and version number placement. +- Remove unused patch files. + * Tue Jan 19 2021 Andrew Hughes - 1:15.0.1.9-10.rolling - Use -march=i686 for x86 builds if -fcf-protection is detected (needs CMOV) diff --git a/jdk8224851-aarch64_compiler_fixes.patch b/jdk8224851-aarch64_compiler_fixes.patch deleted file mode 100644 index 30ffe7d..0000000 --- a/jdk8224851-aarch64_compiler_fixes.patch +++ /dev/null @@ -1,515 +0,0 @@ - -# HG changeset patch -# User ngasson -# Date 1560756709 -28800 -# Node ID e53ec3b362f42ca94b120141b6da6dcfeba346f2 -# Parent 5eeee2cc94f5937ca847f635d9e0510b355bb2af -8224851: AArch64: fix warnings and errors with Clang and GCC 8.3 -Reviewed-by: aph, kbarrett - -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/aarch64.ad ---- a/src/hotspot/cpu/aarch64/aarch64.ad Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/aarch64.ad Mon Jun 17 15:31:49 2019 +0800 -@@ -14255,7 +14255,7 @@ - format %{ "fcmps $src1, 0.0" %} - - ins_encode %{ -- __ fcmps(as_FloatRegister($src1$$reg), 0.0D); -+ __ fcmps(as_FloatRegister($src1$$reg), 0.0); - %} - - ins_pipe(pipe_class_compare); -@@ -14284,7 +14284,7 @@ - format %{ "fcmpd $src1, 0.0" %} - - ins_encode %{ -- __ fcmpd(as_FloatRegister($src1$$reg), 0.0D); -+ __ fcmpd(as_FloatRegister($src1$$reg), 0.0); - %} - - ins_pipe(pipe_class_compare); -@@ -14360,7 +14360,7 @@ - Label done; - FloatRegister s1 = as_FloatRegister($src1$$reg); - Register d = as_Register($dst$$reg); -- __ fcmps(s1, 0.0D); -+ __ fcmps(s1, 0.0); - // installs 0 if EQ else -1 - __ csinvw(d, zr, zr, Assembler::EQ); - // keeps -1 if less or unordered else installs 1 -@@ -14387,7 +14387,7 @@ - Label done; - FloatRegister s1 = as_FloatRegister($src1$$reg); - Register d = as_Register($dst$$reg); -- __ fcmpd(s1, 0.0D); -+ __ fcmpd(s1, 0.0); - // installs 0 if EQ else -1 - __ csinvw(d, zr, zr, Assembler::EQ); - // keeps -1 if less or unordered else installs 1 -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/assembler_aarch64.hpp ---- a/src/hotspot/cpu/aarch64/assembler_aarch64.hpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/assembler_aarch64.hpp Mon Jun 17 15:31:49 2019 +0800 -@@ -276,7 +276,7 @@ - unsigned get(int msb = 31, int lsb = 0) { - int nbits = msb - lsb + 1; - unsigned mask = ((1U << nbits) - 1) << lsb; -- assert_cond(bits & mask == mask); -+ assert_cond((bits & mask) == mask); - return (insn & mask) >> lsb; - } - -@@ -2644,7 +2644,7 @@ - // RBIT only allows T8B and T16B but encodes them oddly. Argh... - void rbit(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) { - assert((ASSERTION), MSG); -- _rbit(Vd, SIMD_Arrangement(T & 1 | 0b010), Vn); -+ _rbit(Vd, SIMD_Arrangement((T & 1) | 0b010), Vn); - } - #undef ASSERTION - -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2014, Red Hat Inc. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * -@@ -1078,8 +1078,8 @@ - // Assembler::EQ does not permit unordered branches, so we add - // another branch here. Likewise, Assembler::NE does not permit - // ordered branches. -- if (is_unordered && op->cond() == lir_cond_equal -- || !is_unordered && op->cond() == lir_cond_notEqual) -+ if ((is_unordered && op->cond() == lir_cond_equal) -+ || (!is_unordered && op->cond() == lir_cond_notEqual)) - __ br(Assembler::VS, *(op->ublock()->label())); - switch(op->cond()) { - case lir_cond_equal: acond = Assembler::EQ; break; -@@ -1789,18 +1789,22 @@ - switch (code) { - case lir_add: __ fadds (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; - case lir_sub: __ fsubs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; -+ case lir_mul_strictfp: // fall through - case lir_mul: __ fmuls (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; -+ case lir_div_strictfp: // fall through - case lir_div: __ fdivs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break; - default: - ShouldNotReachHere(); - } - } else if (left->is_double_fpu()) { - if (right->is_double_fpu()) { -- // cpu register - cpu register -+ // fpu register - fpu register - switch (code) { - case lir_add: __ faddd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; - case lir_sub: __ fsubd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; -+ case lir_mul_strictfp: // fall through - case lir_mul: __ fmuld (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; -+ case lir_div_strictfp: // fall through - case lir_div: __ fdivd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break; - default: - ShouldNotReachHere(); -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2014, Red Hat Inc. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * -@@ -426,7 +426,7 @@ - tmp = new_register(T_DOUBLE); - } - -- arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), NULL); -+ arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), x->is_strictfp()); - - set_result(x, round_item(reg)); - } -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/frame_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/frame_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/frame_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2014, Red Hat Inc. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * -@@ -768,11 +768,13 @@ - - extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc, - unsigned long bcx, unsigned long thread) { -- RegisterMap map((JavaThread*)thread, false); - if (!reg_map) { -- reg_map = (RegisterMap*)os::malloc(sizeof map, mtNone); -+ reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone); -+ ::new (reg_map) RegisterMap((JavaThread*)thread, false); -+ } else { -+ *reg_map = RegisterMap((JavaThread*)thread, false); - } -- memcpy(reg_map, &map, sizeof map); -+ - { - CodeBlob *cb = CodeCache::find_blob((address)pc); - if (cb && cb->frame_size()) -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp ---- a/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp Mon Jun 17 15:31:49 2019 +0800 -@@ -38,8 +38,6 @@ - protected: - - protected: -- using MacroAssembler::call_VM_leaf_base; -- - // Interpreter specific version of call_VM_base - using MacroAssembler::call_VM_leaf_base; - -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -2681,7 +2681,7 @@ - if ((offset & (size-1)) && offset >= (1<<8)) { - add(tmp, base, offset & ((1<<12)-1)); - base = tmp; -- offset &= -1<<12; -+ offset &= -1u<<12; - } - - if (offset >= (1<<12) * size) { -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/macroAssembler_aarch64_log.cpp ---- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64_log.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64_log.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -286,7 +286,7 @@ - frecpe(vtmp5, vtmp5, S); // vtmp5 ~= 1/vtmp5 - lsr(tmp2, rscratch1, 48); - movz(tmp4, 0x77f0, 48); -- fmovd(vtmp4, 1.0d); -+ fmovd(vtmp4, 1.0); - movz(tmp1, INF_OR_NAN_PREFIX, 48); - bfm(tmp4, rscratch1, 0, 51); // tmp4 = 0x77F0 << 48 | mantissa(X) - // vtmp1 = AS_DOUBLE_BITS(0x77F0 << 48 | mantissa(X)) == mx -@@ -358,7 +358,7 @@ - br(GE, DONE); - cmp(rscratch1, tmp2); - br(NE, CHECKED_CORNER_CASES); -- fmovd(v0, 0.0d); -+ fmovd(v0, 0.0); - } - bind(DONE); - ret(lr); -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp ---- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -381,11 +381,11 @@ - } - - block_comment("nx calculation with unrolled while(tx[nx-1]==zeroA) nx--;"); { -- fcmpd(v26, 0.0d); // if NE then jx == 2. else it's 1 or 0 -+ fcmpd(v26, 0.0); // if NE then jx == 2. else it's 1 or 0 - add(iqBase, sp, 480); // base of iq[] - fmuld(v3, v26, v10); - br(NE, NX_SET); -- fcmpd(v7, 0.0d); // v7 == 0 => jx = 0. Else jx = 1 -+ fcmpd(v7, 0.0); // v7 == 0 => jx = 0. Else jx = 1 - csetw(jx, NE); - } - bind(NX_SET); -@@ -696,7 +696,7 @@ - cmpw(jv, zr); - addw(tmp4, jx, 4); // tmp4 = m = jx + jk = jx + 4. jx is in {0,1,2} so m is in [4,5,6] - cselw(jv, jv, zr, GE); -- fmovd(v26, 0.0d); -+ fmovd(v26, 0.0); - addw(tmp5, jv, 1); // jv+1 - subsw(j, jv, jx); - add(qBase, sp, 320); // base of q[] -@@ -819,8 +819,8 @@ - movw(jz, 4); - fmovd(v17, i); // v17 = twon24 - fmovd(v30, tmp5); // 2^q0 -- fmovd(v21, 0.125d); -- fmovd(v20, 8.0d); -+ fmovd(v21, 0.125); -+ fmovd(v20, 8.0); - fmovd(v22, tmp4); // 2^-q0 - - block_comment("recompute loop"); { -@@ -877,7 +877,7 @@ - lsr(ih, tmp2, 23); // ih = iq[z-1] >> 23 - b(Q0_ZERO_CMP_DONE); - bind(Q0_ZERO_CMP_LT); -- fmovd(v4, 0.5d); -+ fmovd(v4, 0.5); - fcmpd(v18, v4); - cselw(ih, zr, ih, LT); // if (z<0.5) ih = 0 - } -@@ -924,7 +924,7 @@ - br(NE, IH_HANDLED); - - block_comment("if(ih==2) {"); { -- fmovd(v25, 1.0d); -+ fmovd(v25, 1.0); - fsubd(v18, v25, v18); // z = one - z; - cbzw(rscratch2, IH_HANDLED); - fsubd(v18, v18, v30); // z -= scalbnA(one,q0); -@@ -932,7 +932,7 @@ - } - bind(IH_HANDLED); - // check if recomputation is needed -- fcmpd(v18, 0.0d); -+ fcmpd(v18, 0.0); - br(NE, RECOMP_CHECK_DONE_NOT_ZERO); - - block_comment("if(z==zeroB) {"); { -@@ -994,7 +994,7 @@ - } - bind(RECOMP_CHECK_DONE); - // chop off zero terms -- fcmpd(v18, 0.0d); -+ fcmpd(v18, 0.0); - br(EQ, Z_IS_ZERO); - - block_comment("else block of if(z==0.0) {"); { -@@ -1053,7 +1053,7 @@ - movw(tmp2, zr); // tmp2 will keep jz - i == 0 at start - bind(COMP_FOR); - // for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k]; -- fmovd(v30, 0.0d); -+ fmovd(v30, 0.0); - add(tmp5, qBase, i, LSL, 3); // address of q[i+k] for k==0 - movw(tmp3, 4); - movw(tmp4, zr); // used as k -@@ -1081,7 +1081,7 @@ - // remember prec == 2 - - block_comment("for (i=jz;i>=0;i--) fw += fq[i];"); { -- fmovd(v4, 0.0d); -+ fmovd(v4, 0.0); - mov(i, jz); - bind(FW_FOR1); - ldrd(v1, Address(rscratch2, i, Address::lsl(3))); -@@ -1319,7 +1319,7 @@ - ld1(C1, C2, C3, C4, T1D, Address(rscratch2)); // load C1..C3\4 - block_comment("calculate r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))))"); { - fmaddd(r, z, C6, C5); -- fmovd(half, 0.5d); -+ fmovd(half, 0.5); - fmaddd(r, z, r, C4); - fmuld(y, x, y); - fmaddd(r, z, r, C3); -@@ -1329,7 +1329,7 @@ - fmaddd(r, z, r, C1); // r = C1+z(C2+z(C4+z(C5+z*C6))) - } - // need to multiply r by z to have "final" r value -- fmovd(one, 1.0d); -+ fmovd(one, 1.0); - cmp(ix, rscratch1); - br(GT, IX_IS_LARGE); - block_comment("if(ix < 0x3FD33333) return one - (0.5*z - (z*r - x*y))"); { -@@ -1352,7 +1352,7 @@ - b(QX_SET); - bind(SET_QX_CONST); - block_comment("if(ix > 0x3fe90000) qx = 0.28125;"); { -- fmovd(qx, 0.28125d); -+ fmovd(qx, 0.28125); - } - bind(QX_SET); - fnmsub(C6, x, r, y); // z*r - xy -@@ -1443,7 +1443,7 @@ - block_comment("kernel_sin/kernel_cos: if(ix<0x3e400000) {}"); { - bind(TINY_X); - if (isCos) { -- fmovd(v0, 1.0d); -+ fmovd(v0, 1.0); - } - ret(lr); - } -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -177,7 +177,7 @@ - if (FILE *f = fopen("/proc/cpuinfo", "r")) { - char buf[128], *p; - while (fgets(buf, sizeof (buf), f) != NULL) { -- if (p = strchr(buf, ':')) { -+ if ((p = strchr(buf, ':')) != NULL) { - long v = strtol(p+1, NULL, 0); - if (strncmp(buf, "CPU implementer", sizeof "CPU implementer" - 1) == 0) { - _cpu = v; -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp ---- a/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp Mon Jun 17 15:31:49 2019 +0800 -@@ -40,7 +40,9 @@ - { - template - D add_and_fetch(I add_value, D volatile* dest, atomic_memory_order order) const { -- return __sync_add_and_fetch(dest, add_value); -+ D res = __atomic_add_fetch(dest, add_value, __ATOMIC_RELEASE); -+ FULL_MEM_BARRIER; -+ return res; - } - }; - -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.s ---- a/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.s Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.s Mon Jun 17 15:31:49 2019 +0800 -@@ -159,7 +159,7 @@ - blo bwd_copy_drain - - bwd_copy_again: -- prfm pldl1keep, [s, #-256] -+ prfum pldl1keep, [s, #-256] - stp t0, t1, [d, #-16] - ldp t0, t1, [s, #-16] - stp t2, t3, [d, #-32] -diff -r 5eeee2cc94f5 -r e53ec3b362f4 src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp ---- a/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp Fri Jun 14 20:30:10 2019 -0700 -+++ b/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp Mon Jun 17 15:31:49 2019 +0800 -@@ -83,19 +83,13 @@ - #define REG_SP REG_RSP - #define REG_PC REG_RIP - #define REG_FP REG_RBP --#define SPELL_REG_SP "rsp" --#define SPELL_REG_FP "rbp" - #else - #define REG_FP 29 - #define REG_LR 30 -- --#define SPELL_REG_SP "sp" --#define SPELL_REG_FP "x29" - #endif - --address os::current_stack_pointer() { -- register void *esp __asm__ (SPELL_REG_SP); -- return (address) esp; -+NOINLINE address os::current_stack_pointer() { -+ return (address)__builtin_frame_address(0); - } - - char* os::non_memory_address_word() { -@@ -230,23 +224,8 @@ - #endif - } - --intptr_t* _get_previous_fp() { -- register intptr_t **fp __asm__ (SPELL_REG_FP); -- -- // fp is for this frame (_get_previous_fp). We want the fp for the -- // caller of os::current_frame*(), so go up two frames. However, for -- // optimized builds, _get_previous_fp() will be inlined, so only go -- // up 1 frame in that case. -- #ifdef _NMT_NOINLINE_ -- return **(intptr_t***)fp; -- #else -- return *fp; -- #endif --} -- -- --frame os::current_frame() { -- intptr_t* fp = _get_previous_fp(); -+NOINLINE frame os::current_frame() { -+ intptr_t *fp = *(intptr_t **)__builtin_frame_address(0); - frame myframe((intptr_t*)os::current_stack_pointer(), - (intptr_t*)fp, - CAST_FROM_FN_PTR(address, os::current_frame)); -@@ -259,12 +238,6 @@ - } - - // Utility functions -- --// From IA32 System Programming Guide --enum { -- trap_page_fault = 0xE --}; -- - #ifdef BUILTIN_SIM - extern "C" void Fetch32PFI () ; - extern "C" void Fetch32Resume () ; -@@ -667,42 +640,42 @@ - return 0; - } - -- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) { -+ void _Copy_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) { - if (from > to) { -- jshort *end = from + count; -+ const jshort *end = from + count; - while (from < end) - *(to++) = *(from++); - } - else if (from < to) { -- jshort *end = from; -+ const jshort *end = from; - from += count - 1; - to += count - 1; - while (from >= end) - *(to--) = *(from--); - } - } -- void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) { -+ void _Copy_conjoint_jints_atomic(const jint* from, jint* to, size_t count) { - if (from > to) { -- jint *end = from + count; -+ const jint *end = from + count; - while (from < end) - *(to++) = *(from++); - } - else if (from < to) { -- jint *end = from; -+ const jint *end = from; - from += count - 1; - to += count - 1; - while (from >= end) - *(to--) = *(from--); - } - } -- void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) { -+ void _Copy_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) { - if (from > to) { -- jlong *end = from + count; -+ const jlong *end = from + count; - while (from < end) - os::atomic_copy64(from++, to++); - } - else if (from < to) { -- jlong *end = from; -+ const jlong *end = from; - from += count - 1; - to += count - 1; - while (from >= end) -@@ -710,22 +683,22 @@ - } - } - -- void _Copy_arrayof_conjoint_bytes(HeapWord* from, -+ void _Copy_arrayof_conjoint_bytes(const HeapWord* from, - HeapWord* to, - size_t count) { - memmove(to, from, count); - } -- void _Copy_arrayof_conjoint_jshorts(HeapWord* from, -+ void _Copy_arrayof_conjoint_jshorts(const HeapWord* from, - HeapWord* to, - size_t count) { - memmove(to, from, count * 2); - } -- void _Copy_arrayof_conjoint_jints(HeapWord* from, -+ void _Copy_arrayof_conjoint_jints(const HeapWord* from, - HeapWord* to, - size_t count) { - memmove(to, from, count * 4); - } -- void _Copy_arrayof_conjoint_jlongs(HeapWord* from, -+ void _Copy_arrayof_conjoint_jlongs(const HeapWord* from, - HeapWord* to, - size_t count) { - memmove(to, from, count * 8); - - diff --git a/jdk8231405-guarantee_d_nonequals_null_failed_null_dominator_info.patch b/jdk8231405-guarantee_d_nonequals_null_failed_null_dominator_info.patch deleted file mode 100644 index 564ff7c..0000000 --- a/jdk8231405-guarantee_d_nonequals_null_failed_null_dominator_info.patch +++ /dev/null @@ -1,104 +0,0 @@ - -# HG changeset patch -# User roland -# Date 1569512984 -7200 -# Node ID ee34d448e2172e536eaabf76cfc3d55f19ae4419 -# Parent 8786c0e9b585592992f330ba6ee011a5347b2405 -#8231405: [Shenandoah] guarantee(d != NULL) failed: Null dominator info -#Reviewed-by: shade, rkennke - -diff -r 8786c0e9b585 -r ee34d448e217 src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ---- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Fri Aug 02 11:21:41 2019 +0200 -+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Thu Sep 26 17:49:44 2019 +0200 -@@ -1329,6 +1329,18 @@ - } - if ((ctrl->is_Proj() && ctrl->in(0)->is_CallJava()) || ctrl->is_CallJava()) { - CallNode* call = ctrl->is_Proj() ? ctrl->in(0)->as_CallJava() : ctrl->as_CallJava(); -+ if (call->entry_point() == OptoRuntime::rethrow_stub()) { -+ // The rethrow call may have too many projections to be -+ // properly handled here. Given there's no reason for a -+ // barrier to depend on the call, move it above the call -+ if (phase->get_ctrl(val) == ctrl) { -+ assert(val->Opcode() == Op_DecodeN, "unexpected node"); -+ assert(phase->is_dominator(phase->get_ctrl(val->in(1)), call->in(0)), "Load is too low"); -+ phase->set_ctrl(val, call->in(0)); -+ } -+ phase->set_ctrl(lrb, call->in(0)); -+ continue; -+ } - CallProjections projs; - call->extract_projections(&projs, false, false); - -diff -r 8786c0e9b585 -r ee34d448e217 test/hotspot/jtreg/gc/shenandoah/compiler/CallMultipleCatchProjs.java ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/test/hotspot/jtreg/gc/shenandoah/compiler/CallMultipleCatchProjs.java Thu Sep 26 17:49:44 2019 +0200 -@@ -0,0 +1,67 @@ -+/* -+ * 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. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+/** -+ * @test -+ * @bug 8231405 -+ * @summary barrier expansion breaks if barrier is right after call to rethrow stub -+ * @key gc -+ * @requires vm.gc.Shenandoah & !vm.graal.enabled -+ * -+ * @run main/othervm -XX:CompileOnly=CallMultipleCatchProjs::test -Xcomp -Xverify:none -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC CallMultipleCatchProjs -+ * -+ */ -+ -+public class CallMultipleCatchProjs { -+ private static A field = new A(); -+ -+ public static void main(String[] args) throws Exception { -+ Exception3 exception3 = new Exception3(); -+ test(new Exception2()); -+ } -+ -+ static int test(Exception exception) throws Exception { -+ try { -+ throw exception; -+ } catch (Exception1 e1) { -+ return 1; -+ } catch (Exception2 e2) { -+ return field.i + 2; -+ } catch (Exception3 e3) { -+ return field.i + 3; -+ } -+ } -+ -+ private static class Exception1 extends Exception { -+ } -+ -+ private static class Exception2 extends Exception { -+ } -+ -+ private static class Exception3 extends Exception { -+ } -+ -+ private static class A { -+ public int i; -+ } -+} - - diff --git a/jdk8231583-fix_register_clash_in_sbsa_resolve_forwarding_pointer_borrowing.patch b/jdk8231583-fix_register_clash_in_sbsa_resolve_forwarding_pointer_borrowing.patch deleted file mode 100644 index 23a8f53..0000000 --- a/jdk8231583-fix_register_clash_in_sbsa_resolve_forwarding_pointer_borrowing.patch +++ /dev/null @@ -1,47 +0,0 @@ - -# HG changeset patch -# User shade -# Date 1569859344 -7200 -# Node ID 6f85097da2487529811f31ea779d9004f63725c6 -# Parent 3873cd2a203484b5a6106c7262f9a21070915a6d -#8231583: Shenandoah: Fix register clash in SBSA::resolve_forwarding_pointer() borrowing -#Reviewed-by: rkennke - -diff -r 3873cd2a2034 -r 6f85097da248 src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ---- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Thu Sep 19 20:26:51 2019 +0200 -+++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Mon Sep 30 18:02:24 2019 +0200 -@@ -236,9 +236,14 @@ - if (borrow_reg) { - // No free registers available. Make one useful. - tmp = rscratch1; -+ if (tmp == dst) { -+ tmp = rscratch2; -+ } - __ push(RegSet::of(tmp), sp); - } - -+ assert_different_registers(tmp, dst); -+ - Label done; - __ ldr(tmp, Address(dst, oopDesc::mark_offset_in_bytes())); - __ eon(tmp, tmp, zr); -diff -r 3873cd2a2034 -r 6f85097da248 src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ---- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Thu Sep 19 20:26:51 2019 +0200 -+++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Mon Sep 30 18:02:24 2019 +0200 -@@ -344,9 +344,14 @@ - if (borrow_reg) { - // No free registers available. Make one useful. - tmp = LP64_ONLY(rscratch1) NOT_LP64(rdx); -+ if (tmp == dst) { -+ tmp = LP64_ONLY(rscratch2) NOT_LP64(rcx); -+ } - __ push(tmp); - } - -+ assert_different_registers(dst, tmp); -+ - Label done; - __ movptr(tmp, Address(dst, oopDesc::mark_offset_in_bytes())); - __ notptr(tmp); - - diff --git a/jdk8236039-status_request_extension.patch b/jdk8236039-status_request_extension.patch deleted file mode 100644 index 5f51db0..0000000 --- a/jdk8236039-status_request_extension.patch +++ /dev/null @@ -1,737 +0,0 @@ - - - - - - Tree - rpms/java-11-openjdk - src.fedoraproject.org - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-

-

-
-
-

-rpms / java-11-openjdk -

-
-
-
-
-
-
- - - Clone - - - -
-
-
-
- - -
-
- -
-
-
-
-
- -
-
- -
- -
-
-
- - -
- - Blob - - Blame - - Raw -
- -
# HG changeset patch
-# User jnimeh
-# Date 1578287079 28800
-#      Sun Jan 05 21:04:39 2020 -0800
-# Node ID b9d1ce20dd4b2ce34e74c8fa2d784335231abcd1
-# Parent  3782f295811625b65d57f1aef15daa10d82a58a7
-8236039: JSSE Client does not accept status_request extension in CertificateRequest messages for TLS 1.3
-Reviewed-by: xuelei
-
-diff --git a/src/java.base/share/classes/sun/security/ssl/CertStatusExtension.java b/src/java.base/share/classes/sun/security/ssl/CertStatusExtension.java
---- a/src/java.base/share/classes/sun/security/ssl/CertStatusExtension.java
-+++ b/src/java.base/share/classes/sun/security/ssl/CertStatusExtension.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2015, 2020, 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
-@@ -39,11 +39,7 @@
- import javax.net.ssl.SSLProtocolException;
- import sun.security.provider.certpath.OCSPResponse;
- import sun.security.provider.certpath.ResponderId;
--import static sun.security.ssl.SSLExtension.CH_STATUS_REQUEST;
--import static sun.security.ssl.SSLExtension.CH_STATUS_REQUEST_V2;
- import sun.security.ssl.SSLExtension.ExtensionConsumer;
--import static sun.security.ssl.SSLExtension.SH_STATUS_REQUEST;
--import static sun.security.ssl.SSLExtension.SH_STATUS_REQUEST_V2;
- import sun.security.ssl.SSLExtension.SSLExtensionSpec;
- import sun.security.ssl.SSLHandshake.HandshakeMessage;
- import sun.security.util.DerInputStream;
-@@ -434,8 +430,9 @@
-                     } else {
-                         extBuilder.append(",\n");
-                     }
--                    extBuilder.append(
--                            "{\n" + Utilities.indent(ext.toString()) + "}");
-+                    extBuilder.append("{\n").
-+                            append(Utilities.indent(ext.toString())).
-+                            append("}");
-                 }
- 
-                 extsStr = extBuilder.toString();
-@@ -552,11 +549,11 @@
-                 return null;
-             }
- 
--            if (!chc.sslConfig.isAvailable(CH_STATUS_REQUEST)) {
-+            if (!chc.sslConfig.isAvailable(SSLExtension.CH_STATUS_REQUEST)) {
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
-                     SSLLogger.fine(
-                         "Ignore unavailable extension: " +
--                        CH_STATUS_REQUEST.name);
-+                        SSLExtension.CH_STATUS_REQUEST.name);
-                 }
-                 return null;
-             }
-@@ -568,8 +565,8 @@
-             byte[] extData = new byte[] {0x01, 0x00, 0x00, 0x00, 0x00};
- 
-             // Update the context.
--            chc.handshakeExtensions.put(
--                    CH_STATUS_REQUEST, CertStatusRequestSpec.DEFAULT);
-+            chc.handshakeExtensions.put(SSLExtension.CH_STATUS_REQUEST,
-+                    CertStatusRequestSpec.DEFAULT);
- 
-             return extData;
-         }
-@@ -593,10 +590,10 @@
-             // The consuming happens in server side only.
-             ServerHandshakeContext shc = (ServerHandshakeContext)context;
- 
--            if (!shc.sslConfig.isAvailable(CH_STATUS_REQUEST)) {
-+            if (!shc.sslConfig.isAvailable(SSLExtension.CH_STATUS_REQUEST)) {
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
-                     SSLLogger.fine("Ignore unavailable extension: " +
--                        CH_STATUS_REQUEST.name);
-+                        SSLExtension.CH_STATUS_REQUEST.name);
-                 }
-                 return;     // ignore the extension
-             }
-@@ -610,7 +607,7 @@
-             }
- 
-             // Update the context.
--            shc.handshakeExtensions.put(CH_STATUS_REQUEST, spec);
-+            shc.handshakeExtensions.put(SSLExtension.CH_STATUS_REQUEST, spec);
-             if (!shc.isResumption &&
-                     !shc.negotiatedProtocol.useTLS13PlusSpec()) {
-                 shc.handshakeProducers.put(SSLHandshake.CERTIFICATE_STATUS.id,
-@@ -654,13 +651,12 @@
- 
-             // In response to "status_request" extension request only.
-             CertStatusRequestSpec spec = (CertStatusRequestSpec)
--                    shc.handshakeExtensions.get(CH_STATUS_REQUEST);
-+                    shc.handshakeExtensions.get(SSLExtension.CH_STATUS_REQUEST);
-             if (spec == null) {
-                 // Ignore, no status_request extension requested.
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
--                    SSLLogger.finest(
--                        "Ignore unavailable extension: " +
--                        CH_STATUS_REQUEST.name);
-+                    SSLLogger.finest("Ignore unavailable extension: " +
-+                        SSLExtension.CH_STATUS_REQUEST.name);
-                 }
- 
-                 return null;        // ignore the extension
-@@ -681,8 +677,8 @@
-             byte[] extData = new byte[0];
- 
-             // Update the context.
--            shc.handshakeExtensions.put(
--                    SH_STATUS_REQUEST, CertStatusRequestSpec.DEFAULT);
-+            shc.handshakeExtensions.put(SSLExtension.SH_STATUS_REQUEST,
-+                    CertStatusRequestSpec.DEFAULT);
- 
-             return extData;
-         }
-@@ -708,7 +704,7 @@
- 
-             // In response to "status_request" extension request only.
-             CertStatusRequestSpec requestedCsr = (CertStatusRequestSpec)
--                    chc.handshakeExtensions.get(CH_STATUS_REQUEST);
-+                    chc.handshakeExtensions.get(SSLExtension.CH_STATUS_REQUEST);
-             if (requestedCsr == null) {
-                 throw chc.conContext.fatal(Alert.UNEXPECTED_MESSAGE,
-                     "Unexpected status_request extension in ServerHello");
-@@ -722,8 +718,8 @@
-             }
- 
-             // Update the context.
--            chc.handshakeExtensions.put(
--                    SH_STATUS_REQUEST, CertStatusRequestSpec.DEFAULT);
-+            chc.handshakeExtensions.put(SSLExtension.SH_STATUS_REQUEST,
-+                    CertStatusRequestSpec.DEFAULT);
- 
-             // Since we've received a legitimate status_request in the
-             // ServerHello, stapling is active if it's been enabled.
-@@ -909,7 +905,7 @@
-                 return null;
-             }
- 
--            if (!chc.sslConfig.isAvailable(CH_STATUS_REQUEST_V2)) {
-+            if (!chc.sslConfig.isAvailable(SSLExtension.CH_STATUS_REQUEST_V2)) {
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
-                     SSLLogger.finest(
-                         "Ignore unavailable status_request_v2 extension");
-@@ -926,8 +922,8 @@
-                 0x00, 0x07, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00};
- 
-             // Update the context.
--            chc.handshakeExtensions.put(
--                    CH_STATUS_REQUEST_V2, CertStatusRequestV2Spec.DEFAULT);
-+            chc.handshakeExtensions.put(SSLExtension.CH_STATUS_REQUEST_V2,
-+                    CertStatusRequestV2Spec.DEFAULT);
- 
-             return extData;
-         }
-@@ -951,7 +947,7 @@
-             // The consuming happens in server side only.
-             ServerHandshakeContext shc = (ServerHandshakeContext)context;
- 
--            if (!shc.sslConfig.isAvailable(CH_STATUS_REQUEST_V2)) {
-+            if (!shc.sslConfig.isAvailable(SSLExtension.CH_STATUS_REQUEST_V2)) {
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
-                     SSLLogger.finest(
-                         "Ignore unavailable status_request_v2 extension");
-@@ -969,7 +965,8 @@
-             }
- 
-             // Update the context.
--            shc.handshakeExtensions.put(CH_STATUS_REQUEST_V2, spec);
-+            shc.handshakeExtensions.put(SSLExtension.CH_STATUS_REQUEST_V2,
-+                    spec);
-             if (!shc.isResumption) {
-                 shc.handshakeProducers.putIfAbsent(
-                         SSLHandshake.CERTIFICATE_STATUS.id,
-@@ -1013,7 +1010,7 @@
- 
-             // In response to "status_request_v2" extension request only
-             CertStatusRequestV2Spec spec = (CertStatusRequestV2Spec)
--                    shc.handshakeExtensions.get(CH_STATUS_REQUEST_V2);
-+                shc.handshakeExtensions.get(SSLExtension.CH_STATUS_REQUEST_V2);
-             if (spec == null) {
-                 // Ignore, no status_request_v2 extension requested.
-                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
-@@ -1038,8 +1035,8 @@
-             byte[] extData = new byte[0];
- 
-             // Update the context.
--            shc.handshakeExtensions.put(
--                    SH_STATUS_REQUEST_V2, CertStatusRequestV2Spec.DEFAULT);
-+            shc.handshakeExtensions.put(SSLExtension.SH_STATUS_REQUEST_V2,
-+                    CertStatusRequestV2Spec.DEFAULT);
- 
-             return extData;
-         }
-@@ -1065,7 +1062,7 @@
- 
-             // In response to "status_request" extension request only
-             CertStatusRequestV2Spec requestedCsr = (CertStatusRequestV2Spec)
--                    chc.handshakeExtensions.get(CH_STATUS_REQUEST_V2);
-+                chc.handshakeExtensions.get(SSLExtension.CH_STATUS_REQUEST_V2);
-             if (requestedCsr == null) {
-                 throw chc.conContext.fatal(Alert.UNEXPECTED_MESSAGE,
-                     "Unexpected status_request_v2 extension in ServerHello");
-@@ -1079,8 +1076,8 @@
-             }
- 
-             // Update the context.
--            chc.handshakeExtensions.put(
--                    SH_STATUS_REQUEST_V2, CertStatusRequestV2Spec.DEFAULT);
-+            chc.handshakeExtensions.put(SSLExtension.SH_STATUS_REQUEST_V2,
-+                    CertStatusRequestV2Spec.DEFAULT);
- 
-             // Since we've received a legitimate status_request in the
-             // ServerHello, stapling is active if it's been enabled.  If it
-diff --git a/src/java.base/share/classes/sun/security/ssl/SSLExtension.java b/src/java.base/share/classes/sun/security/ssl/SSLExtension.java
---- a/src/java.base/share/classes/sun/security/ssl/SSLExtension.java
-+++ b/src/java.base/share/classes/sun/security/ssl/SSLExtension.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2018, 2020, 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
-@@ -113,7 +113,6 @@
-                                 null,
-                                 null,
-                                 CertStatusExtension.certStatusReqStringizer),
--
-     CR_STATUS_REQUEST       (0x0005, "status_request"),
-     CT_STATUS_REQUEST       (0x0005, "status_request",
-                                 SSLHandshake.CERTIFICATE,
-@@ -124,6 +123,7 @@
-                                 null,
-                                 null,
-                                 CertStatusExtension.certStatusRespStringizer),
-+
-     // extensions defined in RFC 4681
-     USER_MAPPING            (0x0006, "user_mapping"),
- 
-@@ -515,6 +515,16 @@
-         return null;
-     }
- 
-+    static String nameOf(int extensionType) {
-+        for (SSLExtension ext : SSLExtension.values()) {
-+            if (ext.id == extensionType) {
-+                return ext.name;
-+            }
-+        }
-+
-+        return "unknown extension";
-+    }
-+
-     static boolean isConsumable(int extensionType) {
-         for (SSLExtension ext : SSLExtension.values()) {
-             if (ext.id == extensionType &&
-diff --git a/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java b/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java
---- a/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java
-+++ b/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2018, 2020 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
-@@ -86,11 +86,14 @@
-                                 "Received buggy supported_groups extension " +
-                                 "in the ServerHello handshake message");
-                     }
--                } else {
-+                } else if (handshakeType == SSLHandshake.SERVER_HELLO) {
-                     throw hm.handshakeContext.conContext.fatal(
--                        Alert.UNSUPPORTED_EXTENSION,
--                        "extension (" + extId +
--                        ") should not be presented in " + handshakeType.name);
-+                            Alert.UNSUPPORTED_EXTENSION, "extension (" +
-+                                    extId + ") should not be presented in " +
-+                                    handshakeType.name);
-+                } else {
-+                    isSupported = false;
-+                    // debug log to ignore unknown extension for handshakeType
-                 }
-             }
- 
-@@ -365,9 +368,10 @@
-     }
- 
-     private static String toString(int extId, byte[] extData) {
-+        String extName = SSLExtension.nameOf(extId);
-         MessageFormat messageFormat = new MessageFormat(
--            "\"unknown extension ({0})\": '{'\n" +
--            "{1}\n" +
-+            "\"{0} ({1})\": '{'\n" +
-+            "{2}\n" +
-             "'}'",
-             Locale.ENGLISH);
- 
-@@ -375,6 +379,7 @@
-         String encoded = hexEncoder.encodeBuffer(extData);
- 
-         Object[] messageFields = {
-+            extName,
-             extId,
-             Utilities.indent(encoded)
-         };
-
-
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sources b/sources index cd9fd17..f34e8af 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671 -SHA512 (jdk-updates-jdk15u-jdk-15.0.1+9.tar.xz) = acc488cf608d8104342e4fd88ddf8bb06d8674a2640d049a482cd0aaf8bf4e3acdbf78388f71fa87bbc177ce66ba182483340f787b8e13e5ca0cca0d4b62f938 +SHA512 (jdk-updates-jdk15u-jdk-15.0.2+7.tar.xz) = d82e932671464d5c3643bda95c66bccb8cff7f22fdfb242e8b17f41b8b07cdf843ce5e85388edff8ab81ccad09f17575451440039adada2cd49d479ea600bf18