Compare commits
31 Commits
rawhide
...
f33-riscv6
Author | SHA1 | Date |
---|---|---|
David Abdurachmanov | 72d9c1254e | |
David Abdurachmanov | a4777e614b | |
David Abdurachmanov | a46faec420 | |
Jiri | e4b8afc785 | |
Jiri | 921ff9bba6 | |
Petra Mikova | 6069fcb198 | |
Petra Mikova | c4f65b09a1 | |
Severin Gehwolf | 145f513b98 | |
Jiri | 5995adcda5 | |
Jiri | c27aa9f364 | |
Andrew John Hughes | a487c73622 | |
Andrew John Hughes | db7c86a12e | |
Fedora Release Engineering | bfdeb40bb4 | |
Jiri Vanek | 383ed4f978 | |
Jiri | 54ec9bd9fc | |
Jiri | 692c6aeb30 | |
Jiri | adc3dfca6c | |
Jiri | ba44abe729 | |
Jiri Vanek | dd485dcd4e | |
Jiri Vanek | c2143101b0 | |
Jiri Vanek | bc6ed4dabe | |
Jiri | 81ad8a3a4d | |
Jiri | 20d245ecd7 | |
Jiri | faca292328 | |
Jiri | ffd7bb2927 | |
Petra Mikova | 6174c4b1e0 | |
Severin Gehwolf | 2fe44f457e | |
Jiri Vanek | 33cac71abd | |
Petra Mikova | f4cd97b8db | |
Severin Gehwolf | 874ffcc633 | |
Petra Mikova | 9d68467bef |
|
@ -9,3 +9,9 @@
|
|||
/jdk-jdk14-jdk-14+36.tar.xz
|
||||
/jdk-updates-jdk14u-jdk-14.0.1+7.tar.xz
|
||||
/jdk-updates-jdk14u-jdk-14.0.2+12.tar.xz
|
||||
/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
|
||||
/openjdk-jdk16-jdk-16+36.tar.xz
|
||||
/openjdk-jdk16u-jdk-16.0.1+9.tar.xz
|
||||
|
|
|
@ -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
|
|
@ -0,0 +1,43 @@
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.security.Security;
|
||||
import java.util.Properties;
|
||||
|
||||
public class TestSecurityProperties {
|
||||
// JDK 11
|
||||
private static final String JDK_PROPS_FILE_JDK_11 = System.getProperty("java.home") + "/conf/security/java.security";
|
||||
// JDK 8
|
||||
private static final String JDK_PROPS_FILE_JDK_8 = System.getProperty("java.home") + "/lib/security/java.security";
|
||||
|
||||
public static void main(String[] args) {
|
||||
Properties jdkProps = new Properties();
|
||||
loadProperties(jdkProps);
|
||||
for (Object key: jdkProps.keySet()) {
|
||||
String sKey = (String)key;
|
||||
String securityVal = Security.getProperty(sKey);
|
||||
String jdkSecVal = jdkProps.getProperty(sKey);
|
||||
if (!securityVal.equals(jdkSecVal)) {
|
||||
String msg = "Expected value '" + jdkSecVal + "' for key '" +
|
||||
sKey + "'" + " but got value '" + securityVal + "'";
|
||||
throw new RuntimeException("Test failed! " + msg);
|
||||
} else {
|
||||
System.out.println("DEBUG: " + sKey + " = " + jdkSecVal + " as expected.");
|
||||
}
|
||||
}
|
||||
System.out.println("TestSecurityProperties PASSED!");
|
||||
}
|
||||
|
||||
private static void loadProperties(Properties props) {
|
||||
String javaVersion = System.getProperty("java.version");
|
||||
System.out.println("Debug: Java version is " + javaVersion);
|
||||
String propsFile = JDK_PROPS_FILE_JDK_11;
|
||||
if (javaVersion.startsWith("1.8.0")) {
|
||||
propsFile = JDK_PROPS_FILE_JDK_8;
|
||||
}
|
||||
try (FileInputStream fin = new FileInputStream(new File(propsFile))) {
|
||||
props.load(fin);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Test failed!", e);
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -7,9 +7,9 @@
|
|||
# If you want to use a local copy of patch PR3788, set the path to it in the PR3788 variable
|
||||
#
|
||||
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
|
||||
# PROJECT_NAME=jdk
|
||||
# REPO_NAME=jdk
|
||||
# VERSION=tip
|
||||
# PROJECT_NAME=openjdk
|
||||
# REPO_NAME=jdk16
|
||||
# VERSION=HEAD
|
||||
# or to eg prepare systemtap:
|
||||
# icedtea7's jstack and other tapsets
|
||||
# VERSION=6327cf1cea9e
|
||||
|
@ -26,16 +26,16 @@
|
|||
# level folder, name is created, based on parameter
|
||||
#
|
||||
|
||||
if [ ! "x$PR3788" = "x" ] ; then
|
||||
if [ ! -f "$PR3788" ] ; then
|
||||
echo "You have specified PR3788 as $PR3788 but it does not exist. Exiting"
|
||||
if [ ! "x$PR3823" = "x" ] ; then
|
||||
if [ ! -f "$PR3823" ] ; then
|
||||
echo "You have specified PR3823 as $PR3823 but it does not exist. Exiting"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
|
||||
OPENJDK_URL_DEFAULT=https://github.com
|
||||
COMPRESSION_DEFAULT=xz
|
||||
|
||||
if [ "x$1" = "xhelp" ] ; then
|
||||
|
@ -47,7 +47,7 @@ if [ "x$1" = "xhelp" ] ; then
|
|||
echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"
|
||||
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
|
||||
echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
|
||||
echo "PR3788 - the path to the PR3788 patch to apply (optional; downloaded if unavailable)"
|
||||
echo "PR3823 - the path to the PR3823 patch to apply (optional; downloaded if unavailable)"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
|
@ -90,7 +90,7 @@ if [ "x$FILE_NAME_ROOT" = "x" ] ; then
|
|||
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
||||
fi
|
||||
if [ "x$REPO_ROOT" = "x" ] ; then
|
||||
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
|
||||
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
|
||||
echo "No repository root specified; default to ${REPO_ROOT}"
|
||||
fi;
|
||||
|
||||
|
@ -107,7 +107,7 @@ else
|
|||
mkdir "${FILE_NAME_ROOT}"
|
||||
pushd "${FILE_NAME_ROOT}"
|
||||
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
||||
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
|
||||
git clone -b ${VERSION} ${REPO_ROOT} openjdk
|
||||
popd
|
||||
fi
|
||||
pushd "${FILE_NAME_ROOT}"
|
||||
|
@ -125,18 +125,18 @@ pushd "${FILE_NAME_ROOT}"
|
|||
rm -vf ${CRYPTO_PATH}/ecp_224.c
|
||||
|
||||
echo "Syncing EC list with NSS"
|
||||
if [ "x$PR3788" = "x" ] ; then
|
||||
if [ "x$PR3823" = "x" ] ; then
|
||||
# originally for 8:
|
||||
# get PR3788.patch (from http://icedtea.classpath.org/hg/icedtea14) from most correct tag
|
||||
# Do not push it or publish it (see https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3788)
|
||||
echo "PR3788 not found. Downloading..."
|
||||
wget http://icedtea.classpath.org/hg/icedtea14/raw-file/fabce78297b7/patches/pr3788.patch
|
||||
echo "Applying ${PWD}/pr3788.patch"
|
||||
patch -Np1 < pr3788.patch
|
||||
rm pr3788.patch
|
||||
# get PR3823.patch (from http://icedtea.classpath.org/hg/icedtea16) from most correct tag
|
||||
# Do not push it or publish it (see https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3823)
|
||||
echo "PR3823 not found. Downloading..."
|
||||
wget https://icedtea.classpath.org/hg/icedtea16/raw-file/tip/patches/pr3823.patch
|
||||
echo "Applying ${PWD}/pr3823.patch"
|
||||
patch -Np1 < pr3823.patch
|
||||
rm pr3823.patch
|
||||
else
|
||||
echo "Applying ${PR3788}"
|
||||
patch -Np1 < $PR3788
|
||||
echo "Applying ${PR3823}"
|
||||
patch -Np1 < $PR3823
|
||||
fi;
|
||||
find . -name '*.orig' -exec rm -vf '{}' ';'
|
||||
popd
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
#!/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.15.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
|
||||
|
||||
echo "Replacing desktop files...";
|
||||
mv -v icedtea-${ICEDTEA_VERSION}/jconsole.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
|
File diff suppressed because it is too large
Load Diff
|
@ -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) {<fast return>}"); {
|
||||
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<typename I, typename D>
|
||||
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);
|
||||
|
||||
|
|
@ -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;
|
||||
+ }
|
||||
+}
|
||||
|
||||
|
|
@ -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);
|
||||
|
||||
|
|
@ -1,737 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>Tree - rpms/java-11-openjdk - src.fedoraproject.org</title>
|
||||
<link rel="shortcut icon" type="image/vnd.microsoft.icon"
|
||||
href="/theme/static/favicon.ico?version=5.8.1"/>
|
||||
<link href="/theme/static/fedora-bootstrap-1.3.0/fedora-bootstrap.min.css?version=5.8.1"
|
||||
type="text/css" rel="stylesheet" />
|
||||
<link href="/theme/static/fonts/fonts.css?version=5.8.1"
|
||||
rel="stylesheet" type="text/css" />
|
||||
<link href="/theme/static/fonts/hack_fonts/css/hack-extended.min.css?version=5.8.1"
|
||||
type="text/css" rel="stylesheet" />
|
||||
<link href="/theme/static/theme.css?version=5.8.1"
|
||||
type="text/css" rel="stylesheet" />
|
||||
|
||||
<link type="text/css" rel="stylesheet" nonce="nxj3waVrXu0uApedibTzBvT7F" href="/static/vendor/font-awesome/font-awesome.css?version=5.8.1"/>
|
||||
<link type="text/css" rel="stylesheet" nonce="nxj3waVrXu0uApedibTzBvT7F" href="/static/pagure.css?version=5.8.1"/>
|
||||
<link nonce="nxj3waVrXu0uApedibTzBvT7F" rel="stylesheet" href="/static/vendor/highlight.js/styles/github.css?version=5.8.1"/>
|
||||
<link nonce="nxj3waVrXu0uApedibTzBvT7F" rel="stylesheet" href="/static/vendor/highlightjs-line-numbers/highlightjs-line-numbers.min.css?version=5.8.1"/>
|
||||
<style nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
.hljs {
|
||||
background: #fff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body id="home">
|
||||
|
||||
<!-- start masthead -->
|
||||
<nav class="navbar navbar-light masthead p-0 navbar-expand">
|
||||
<div class="container">
|
||||
<a href="/" class="navbar-brand">
|
||||
<img height=40px src="/theme/static/pagure-logo.png?version=5.8.1"
|
||||
alt="pagure Logo" id="pagureLogo"/>
|
||||
</a>
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-primary" href="/login/?next=https://src.fedoraproject.org/rpms/java-11-openjdk/blob/master/f/jdk8236039-status_request_extension.patch">Log In</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<!-- close masthead-->
|
||||
|
||||
<div class="bodycontent">
|
||||
|
||||
|
||||
<div class="bg-light border border-bottom pt-3">
|
||||
<div class="container">
|
||||
<div class="row mb-3">
|
||||
<div class="col-6">
|
||||
<div class="row">
|
||||
<div class="col-auto pr-0">
|
||||
<h3>
|
||||
<i class="fa fa-archive text-muted"></i></h3>
|
||||
</div>
|
||||
<div class="col-auto pl-2">
|
||||
<h3 class="mb-0">
|
||||
<a href="/projects/rpms/%2A">rpms</a> / <a href="/rpms/java-11-openjdk"><strong>java-11-openjdk</strong></a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<div class="btn-group">
|
||||
<div class="btn-group">
|
||||
<a href="#"
|
||||
class="btn btn-sm dropdown-toggle btn-outline-primary"
|
||||
data-toggle="dropdown" id="watch-button">
|
||||
<i class="fa fa-clone fa-fw"></i>
|
||||
<span>Clone</span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<div class="m-3" id="source-dropdown" class="pointer">
|
||||
<div>
|
||||
<h5><strong>Source Code</strong></h5>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend"><span class="input-group-text">GIT</span></div>
|
||||
<input class="form-control bg-white select-on-focus" type="text" value="https://src.fedoraproject.org/rpms/java-11-openjdk.git" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-tabs nav-small border-bottom-0">
|
||||
<li class="nav-item mr-2 text-dark">
|
||||
<a class="nav-link active" href="/rpms/java-11-openjdk">
|
||||
<i class="fa fa-code fa-fw text-muted"></i>
|
||||
<span class="d-none d-md-inline">Source</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mr-2 text-dark">
|
||||
<a class="nav-link" href="https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&classification=Fedora&product=Fedora&component=java-11-openjdk">
|
||||
<i class="fa fa-fw text-muted fa-exclamation-circle"></i>
|
||||
<span class="d-none d-md-inline">Issues </span>
|
||||
<span class="fa fa-external-link"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mr-2 text-dark">
|
||||
<a class="nav-link" href="/rpms/java-11-openjdk/pull-requests">
|
||||
<i class="fa fa-fw text-muted fa-arrow-circle-down"></i>
|
||||
<span class="d-none d-md-inline">Pull Requests </span>
|
||||
<span class="badge badge-secondary py-0 d-none d-md-inline">
|
||||
3
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="nav-item mr-2 text-dark">
|
||||
<a class="nav-link" href="/rpms/java-11-openjdk/stats">
|
||||
<i class="fa fa-line-chart fa-fw text-muted"></i>
|
||||
<span class="d-none d-md-inline">Stats</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container pt-5 repo-body-container">
|
||||
<div class="row">
|
||||
<div class="col-2">
|
||||
<nav class="nav nav-tabs nav-sidetabs flex-column">
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
"
|
||||
href="/rpms/java-11-openjdk">
|
||||
<i class="fa fa-home text-muted fa-fw"></i> <span class="d-none d-md-inline">Overview</span>
|
||||
</a>
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
active"
|
||||
href="/rpms/java-11-openjdk/tree/master">
|
||||
<i class="fa fa-file-code-o text-muted fa-fw"></i> Files
|
||||
</a>
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
"
|
||||
href="/rpms/java-11-openjdk/commits/master">
|
||||
<i class="fa fa-list-alt text-muted fa-fw" data-glyph="spreadsheet"></i> Commits
|
||||
</a>
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
"
|
||||
href="/rpms/java-11-openjdk/branches?branchname=master">
|
||||
<i class="fa fa-random text-muted fa-fw"></i> Branches
|
||||
</a>
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
"
|
||||
href="/rpms/java-11-openjdk/forks">
|
||||
<i class="fa fa-code-fork text-muted fa-fw"></i> Forks
|
||||
</a>
|
||||
<a class=
|
||||
"nav-link nowrap
|
||||
"
|
||||
href="/rpms/java-11-openjdk/releases">
|
||||
<i class="fa fa-tags text-muted fa-fw"></i> Releases
|
||||
</a>
|
||||
|
||||
<div class="col-xs-2 line-height-1"></div>
|
||||
<p>Monitoring status:</p>
|
||||
<div class="btn-group">
|
||||
<button title="Monitoring status" class="btn btn-sm btn-outline-primary disabled"
|
||||
id="monitoring-button">
|
||||
<i id="monitoring-icon" class="fa fa-fw fa-eye"></i>
|
||||
<span id="monitoring-label" class="fa fa-circle-o-notch fa-spin fa-1x fa-fw"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
window.addEventListener('load', function() {
|
||||
|
||||
set_up_monitoring = function(status){
|
||||
var _label = "Disabled"
|
||||
if (status === "monitoring") {
|
||||
_label = "Monitoring";
|
||||
$("#monitoring-icon").attr("class", "fa fa-fw fa-eye")
|
||||
} else if (status === "monitoring-with-scratch") {
|
||||
_label = "Scratch builds"
|
||||
$("#monitoring-icon").attr("class", "fa fa-fw fa-eye")
|
||||
} else {
|
||||
$("#monitoring-icon").attr("class", "fa fa-fw fa-eye-slash")
|
||||
}
|
||||
|
||||
$("#monitoring-label").text(_label);
|
||||
$("#monitoring-label").removeClass("fa fa-circle-o-notch fa-spin fa-1x fa-fw");
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "/_dg/anitya/rpms/java-11-openjdk",
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
success: function(res) {
|
||||
console.log(res);
|
||||
set_up_monitoring(res.monitoring)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</nav> </div>
|
||||
<div class="col-10">
|
||||
<div class="row mb-1">
|
||||
<div class="col-sm-6">
|
||||
<h3>
|
||||
Files
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<div class="float-right">
|
||||
<div class="btn-group">
|
||||
<a href="#" class="btn btn-outline-light border-secondary text-dark btn-sm dropdown-toggle"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="fa fa-random fa-fw"></span> Branch: <span class="font-weight-bold">master</span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/cups-libs">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">cups-libs</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f27">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f27</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f28">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f28</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f29">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f29</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f30">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f30</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f31">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f31</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 " href="/rpms/java-11-openjdk/tree/f32">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="">f32</span>
|
||||
</a>
|
||||
<a class="dropdown-item pl-1 active" href="/rpms/java-11-openjdk/tree/master">
|
||||
<span class="fa fa-random fa-fw"></span> <span class="font-weight-bold">master</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">
|
||||
<ol class="breadcrumb p-0 bg-transparent mb-0">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="/rpms/java-11-openjdk/tree/master">
|
||||
<span class="fa fa-random">
|
||||
</span> master
|
||||
</a>
|
||||
</li>
|
||||
<li class="active breadcrumb-item">
|
||||
<span class="fa fa-file" data-glyph="">
|
||||
</span> jdk8236039-status_request_extension.patch
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0">
|
||||
<div class="bg-light border text-right pr-2">
|
||||
<form class="btn btn-sm" method="POST" name="fork_project"
|
||||
action="/fork_edit/rpms/java-11-openjdk/edit/master/f/jdk8236039-status_request_extension.patch">
|
||||
<button class="btn btn-sm btn-secondary fork_project_btn">
|
||||
Fork and Edit
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
<a class="btn btn-secondary btn-sm" href="/rpms/java-11-openjdk/blob/master/f/jdk8236039-status_request_extension.patch" title="View as blob">Blob</a>
|
||||
|
||||
<a class="btn btn-secondary btn-sm" href="/rpms/java-11-openjdk/blame/jdk8236039-status_request_extension.patch?identifier=master" title="View git blame">Blame</a>
|
||||
|
||||
<a class="btn btn-secondary btn-sm" href="/rpms/java-11-openjdk/raw/master/f/jdk8236039-status_request_extension.patch" title="View as raw">Raw</a>
|
||||
</div>
|
||||
|
||||
<pre class="syntaxhighlightblock"><code class="lang-diff"># 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)
|
||||
};
|
||||
</code></pre>
|
||||
</div>
|
||||
</div> <!-- end .card-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer pt-4 text-white">
|
||||
<div class="container">
|
||||
<div class="d-flex align-items-center">
|
||||
<div>
|
||||
<div>Powered by <a href="https://pagure.io/pagure" class="notblue">Pagure</a> 5.8.1</div>
|
||||
<div>
|
||||
<a href="https://docs.pagure.org/pagure/usage/index.html" class="notblue">Documentation</a> •
|
||||
<a href="https://pagure.io/pagure/new_issue" class="notblue">File an Issue</a> •
|
||||
<a href="/about">About this Instance</a> •
|
||||
<a href="/ssh_info" class="notblue">SSH Hostkey/Fingerprint</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ml-auto text-right">
|
||||
<div>© 2014-2019 Red Hat, Inc. and others.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F" src="/static/vendor/jquery/jquery.min.js?version=5.8.1"></script>
|
||||
|
||||
<script src="/static/vendor/bootstrap/bootstrap.bundle.min.js?version=5.8.1"></script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
$('[data-toggle="tooltip"]').tooltip({placement : 'bottom'});
|
||||
$(".cancel_btn").click(function() {
|
||||
history.back();
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F" src="/static/vendor/lazyload/lazyload.min.js?version=5.8.1"></script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
window.addEventListener("load", function(event) {
|
||||
lazyload();
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
$("#giturl-toggle").on('click', function(event){
|
||||
event.stopPropagation();
|
||||
$("#giturl-more").toggle();
|
||||
$("#giturl-toggle").hide();
|
||||
})
|
||||
|
||||
$(".fork_project_btn").click(function() {
|
||||
$('#fork_project').submit();
|
||||
});
|
||||
|
||||
$(".select-on-focus").on("focus", function() {
|
||||
$(this).select();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F" src="/static/vendor/highlight.js/highlight.pack.js?version=5.8.1"></script>
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F" src="/static/vendor/highlightjs-line-numbers/highlightjs-line-numbers.min.js?version=5.8.1"></script>
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F" src="/static/vendor/highlight.js/spec.js?version=5.8.1"></script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
$(document).ready(function() {
|
||||
$('.fork_project_btn').click($("[name=fork_project]").submit);
|
||||
|
||||
$('pre.syntaxhighlightblock code').each(function(i, block) {
|
||||
hljs.highlightBlock(block);
|
||||
hljs.lineNumbersBlock(block);
|
||||
});
|
||||
|
||||
var cls = "highlighted-line";
|
||||
var lines = location.hash.substr(2).split('-').map(function (x) { return parseInt(x, 10) });
|
||||
if (! isNaN(lines[0]))
|
||||
{
|
||||
for (var i = lines[lines.length - 1]; i >= lines[0]; i--) {
|
||||
$('#_' + i).parent().parent().addClass(cls);
|
||||
}
|
||||
setTimeout(function(){
|
||||
$("#_" + lines[0]).get(0).scrollIntoView({behavior: "instant", block: "start", inline: "nearest"});
|
||||
}, 50);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" nonce="nxj3waVrXu0uApedibTzBvT7F">
|
||||
|
||||
function updateHighlight() {
|
||||
var cls = "highlighted-line";
|
||||
$('.' + cls).removeClass(cls)
|
||||
if (location.hash !== '') {
|
||||
var lines = location.hash.substr(2).split('-').map(function (x) { return parseInt(x, 10) });
|
||||
for (var i = lines[lines.length - 1]; i >= lines[0]; i--) {
|
||||
$('[data-line-number=' + i + ']').closest('tr').addClass(cls);
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
$(window).on('hashchange', updateHighlight);
|
||||
var selected = [];
|
||||
$("[data-line-number]").click(function (ev) {
|
||||
var line = $(this).attr('data-line-number');
|
||||
if (ev.shiftKey) {
|
||||
selected = selected.slice(-1).concat(line);
|
||||
} else {
|
||||
selected = [line];
|
||||
}
|
||||
|
||||
var hash = '_' + selected[0];
|
||||
if (selected.length === 2) {
|
||||
hash = '_' + Math.min(selected[0], selected[1]) + '-' + Math.max(selected[0], selected[1]);
|
||||
}
|
||||
window.location.hash = hash;
|
||||
return false;
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,24 +1,52 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Arguments: <JDK TREE> <MINIMAL|FULL>
|
||||
TREE=${1}
|
||||
TYPE=${2}
|
||||
|
||||
ZIP_SRC=src/java.base/share/native/libzip/zlib/
|
||||
JPEG_SRC=src/java.desktop/share/native/libjavajpeg/
|
||||
GIF_SRC=src/java.desktop/share/native/libsplashscreen/giflib/
|
||||
PNG_SRC=src/java.desktop/share/native/libsplashscreen/libpng/
|
||||
LCMS_SRC=src/java.desktop/share/native/liblcms/
|
||||
|
||||
cd openjdk
|
||||
if test "x${TREE}" = "x"; then
|
||||
echo "$0 <JDK_TREE> (MINIMAL|FULL)";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if test "x${TYPE}" = "x"; then
|
||||
TYPE=minimal;
|
||||
fi
|
||||
|
||||
if test "x${TYPE}" != "xminimal" -a "x${TYPE}" != "xfull"; then
|
||||
echo "Type must be minimal or full";
|
||||
exit 2;
|
||||
fi
|
||||
|
||||
echo "Removing in-tree libraries from ${TREE}"
|
||||
echo "Cleansing operation: ${TYPE}";
|
||||
|
||||
cd ${TREE}
|
||||
|
||||
echo "Removing built-in libs (they will be linked)"
|
||||
|
||||
# On full runs, allow for zlib having already been deleted by minimal
|
||||
echo "Removing zlib"
|
||||
if [ ! -d ${ZIP_SRC} ]; then
|
||||
if [ "x${TYPE}" = "xminimal" -a ! -d ${ZIP_SRC} ]; then
|
||||
echo "${ZIP_SRC} does not exist. Refusing to proceed."
|
||||
exit 1
|
||||
fi
|
||||
rm -rvf ${ZIP_SRC}
|
||||
|
||||
# Minimal is limited to just zlib so finish here
|
||||
if test "x${TYPE}" = "xminimal"; then
|
||||
echo "Finished.";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
echo "Removing libjpeg"
|
||||
if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that sound definitely exist
|
||||
if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that should definitely exist
|
||||
echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed."
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
diff -r 5b86f66575b7 src/share/lib/security/java.security-linux
|
||||
--- openjdk/src/java.base/share/conf/security/java.security Tue May 16 13:29:05 2017 -0700
|
||||
+++ openjdk/src/java.base/share/conf/security/java.security Tue Jun 06 14:05:12 2017 +0200
|
||||
@@ -83,6 +83,7 @@
|
||||
#ifndef solaris
|
||||
security.provider.tbd=SunPKCS11
|
||||
diff -r e3f940bd3c8f src/java.base/share/conf/security/java.security
|
||||
--- openjdk/src/java.base/share/conf/security/java.security Thu Jun 11 21:54:51 2020 +0530
|
||||
+++ openjdk/src/java.base/share/conf/security/java.security Mon Aug 24 10:14:31 2020 +0200
|
||||
@@ -77,7 +77,7 @@
|
||||
#ifdef macosx
|
||||
security.provider.tbd=Apple
|
||||
#endif
|
||||
-security.provider.tbd=SunPKCS11
|
||||
+#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
|
||||
|
||||
#
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
diff --git openjdk.orig/make/modules/java.base/Launcher.gmk openjdk/make/modules/java.base/Launcher.gmk
|
||||
index 700ddefda49..2882de68eb2 100644
|
||||
--- openjdk.orig/make/modules/java.base/Launcher.gmk
|
||||
+++ openjdk/make/modules/java.base/Launcher.gmk
|
||||
@@ -41,6 +41,14 @@ $(eval $(call SetupBuildLauncher, java, \
|
||||
OPTIMIZATION := HIGH, \
|
||||
))
|
||||
|
||||
+#Wno-error=cpp is present to allow commented warning in ifdef part of main.c
|
||||
+$(eval $(call SetupBuildLauncher, alt-java, \
|
||||
+ CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES -DREDHAT_ALT_JAVA -Wno-error=cpp, \
|
||||
+ EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
|
||||
+ VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
|
||||
+ OPTIMIZATION := HIGH, \
|
||||
+))
|
||||
+
|
||||
ifeq ($(call isTargetOs, windows), true)
|
||||
$(eval $(call SetupBuildLauncher, javaw, \
|
||||
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
||||
diff --git openjdk.orig/src/java.base/share/native/launcher/alt_main.h openjdk/src/java.base/share/native/launcher/alt_main.h
|
||||
new file mode 100644
|
||||
index 00000000000..697df2898ac
|
||||
--- /dev/null
|
||||
+++ openjdk/src/java.base/share/native/launcher/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/src/java.base/share/native/launcher/main.c openjdk/src/java.base/share/native/launcher/main.c
|
||||
index b734fe2ba78..79dc8307650 100644
|
||||
--- openjdk.orig/src/java.base/share/native/launcher/main.c
|
||||
+++ openjdk/src/java.base/share/native/launcher/main.c
|
||||
@@ -34,6 +34,14 @@
|
||||
#include "jli_util.h"
|
||||
#include "jni.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
|
||||
|
4
sources
4
sources
|
@ -1,2 +1,2 @@
|
|||
SHA512 (jdk-updates-jdk14u-jdk-14.0.2+12.tar.xz) = c347bafb3d69fa6ddb43b4d693a2ec9994107446bf67215081dd009fef4e13b3fec3eb2efc88f7dd5eabc2c121b39d88bffa93983660490192e1c2d86bfb6348
|
||||
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) = cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
|
||||
SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671
|
||||
SHA512 (openjdk-jdk16u-jdk-16.0.1+9.tar.xz) = ff06d5c97377cac4d5e8921766c61d4d96dc0c968913263b5371f0d3d0e98bb6a5ccf5b1cbb3ddaff3380bf4499ff6501e73f96e0e922b2294d1f7c1ec3eee23
|
||||
|
|
|
@ -33,9 +33,8 @@ fi
|
|||
|
||||
# OpenJDK from Shenandoah project
|
||||
export PROJECT_NAME="jdk"
|
||||
export REPO_NAME="jdk12"
|
||||
# warning, clonning without shenadnaoh suffix, you will clone pure jdk - thus without shenandaoh GC
|
||||
export VERSION="jdk-12+25"
|
||||
export REPO_NAME="jdk15"
|
||||
export VERSION="jdk-15+36"
|
||||
export COMPRESSION=xz
|
||||
# unset tapsets overrides
|
||||
export OPENJDK_URL=""
|
||||
|
|
Loading…
Reference in New Issue