Compare commits

...

31 Commits

Author SHA1 Message Date
David Abdurachmanov 72d9c1254e
Set buildjdkver to 11
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
2021-05-24 18:55:28 +03:00
David Abdurachmanov a4777e614b
Use OpenJDK 11 and ignore GDB check
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2021-05-24 17:29:13 +03:00
David Abdurachmanov a46faec420
Add support for RISCV (riscv64)
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
2021-05-07 15:23:41 +03:00
Jiri e4b8afc785 Disable copy-jdk-configs for Flatpak builds 2021-05-04 10:01:35 +02:00
Jiri 921ff9bba6 adapted to debug handling in newer cjc
The rest of the "rpm 4.17" patch must NOT be backported, as on rpm 4.16 and down, it would casue double execution
2021-05-04 10:00:20 +02:00
Petra Mikova 6069fcb198 Add forgotten changelog 2021-04-26 12:46:28 +02:00
Petra Mikova c4f65b09a1 April CPU update
Generated new sources and removed obsoleted patch
2021-04-25 12:56:14 +02:00
Severin Gehwolf 145f513b98 Perform static library build on a separate source tree with bundled image libraries
Make static library build optional
Ported from java-11-openjdk. Work of Andrew Hughes.
2021-04-25 12:56:14 +02:00
Jiri 5995adcda5 bumped buildjdkver to build by itself - 16 2021-04-25 12:56:00 +02:00
Jiri c27aa9f364 fixed suggests of wrong pcsc-lite-devel%{?_isa} to correct pcsc-lite-libs%{?_isa} 2021-03-11 08:23:47 +01:00
Andrew John Hughes a487c73622 Update to jdk-16.0.0.0+36
Update tarball generation script to use git following OpenJDK's move to github
Update tarball generation script to use PR3823 which handles JDK-8235710 changes
Use upstream default for version-pre rather than setting it to "ea" or ""
Drop libsunec.so which is no longer generated, thanks to JDK-8235710
Drop unnecessary compiler flags, dating back to work on GCC 6 & 10
Adapt RH1750419 alt-java patch to still apply after some variable re-naming in the makefiles
Update filever to remove any trailing zeros, as in the OpenJDK build, and use for source filename
Use system harfbuzz now this is supported.
Pass SOURCE_DATE_EPOCH to build for reproducible builds
2021-03-11 08:23:36 +01:00
Andrew John Hughes db7c86a12e Hardcode /usr/sbin/alternatives for Flatpak builds
/usr/sbin/alternatives is not under the Flatpak build's %{_prefix},
which is set to /app.

(See <https://pagure.io/packaging-committee/issue/848> "Clarify the
use of path macros with respect to build dependencies").

Found when trying to do a LibreOffice Flatpak build from RHEL RPM
specs, which includes java-1.8.0-openjdk among its components.
2021-03-11 08:23:28 +01:00
Fedora Release Engineering bfdeb40bb4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-03-11 08:23:18 +01:00
Jiri Vanek 383ed4f978 Backport of recent changes from master and update to jdk-15.0.2.0+7
Included commits:
Fixed typo in variable
Add BuildRequires: make
Use -march=i686 for x86 builds if -fcf-protection is detected (needs CMOV)
Update to jdk-15.0.2.0+7
2021-01-25 10:14:15 +01:00
Jiri 54ec9bd9fc fixed missing condition for fastdebug packages being counted as debug ones 2020-12-22 11:42:45 +01:00
Jiri 692c6aeb30 removed lib-style provides for fastdebug_suffix_unquoted 2020-12-22 07:57:49 +01:00
Jiri adc3dfca6c Added few missing majorver into descriptions 2020-12-22 07:57:49 +01:00
Jiri ba44abe729 many cosmetic changes taken from more maintained jdk11
- introduced debug_arches, bootstrap_arches, systemtap_arches, fastdebug_arches, sa_arches, share_arches, shenandoah_arches, zgc_arches
  instead of various hardcoded ifarches
- updated systemtap
- added requires excludes for debug pkgs
- removed redundant logic around jsa files
- added runtime requires of lksctp-tools and libXcomposite%
- added and used Source15 TestSecurityProperties.java, but is made always positive as jdk15 now does not honor system policies
- s390x excluded form fastdebug build
2020-12-22 07:57:49 +01:00
Jiri Vanek dd485dcd4e Added checks and restrictions around alt-java 2020-12-19 14:53:55 +01:00
Jiri Vanek c2143101b0 Fixed not-including fastdebugbuild in case of --without fastdebug 2020-12-19 14:53:55 +01:00
Jiri Vanek bc6ed4dabe moved wrongly placed icenses to acompany other ones
this bad placement was killng parallel-installability and thus having bad impact to leapp if used
2020-12-19 14:53:55 +01:00
Jiri 81ad8a3a4d Redeffined linux -> __linux__ and __x86_64 -> __x86_64__; should be backported to jdk11 and jdk8 2020-12-19 14:53:55 +01:00
Jiri 20d245ecd7 Fixes comment for speculative store bypass patch 2020-12-19 14:53:55 +01:00
Jiri faca292328 Replaced alt-java palceholder by real pathced alt-java
- added patch600, rh1750419-redhat_alt_java.patch, suprassing removed patch
- no longer copying of java->alt-java as it is created by  patch600
2020-12-19 14:53:55 +01:00
Jiri ffd7bb2927 Create a copy of java as alt-java with alternatives and man pages
- java-11-openjdk doesn't have a JRE tree, so don't try and copy alt-java there...
2020-11-24 10:48:59 +01:00
Petra Mikova 6174c4b1e0 October CPU 2020 update 2020-11-01 15:21:08 +01:00
Severin Gehwolf 2fe44f457e Fix directory ownership of static-libs sub-package 2020-11-01 15:20:47 +01:00
Jiri Vanek 33cac71abd Build static-libs-image and add resulting files via -static-libs sub-package. 2020-11-01 15:20:27 +01:00
Petra Mikova f4cd97b8db Add support for fastdebug builds on 64 bit architectures 2020-10-12 12:38:12 +02:00
Severin Gehwolf 874ffcc633 Update for JDK 15 GA 2020-09-16 12:22:27 +02:00
Petra Mikova 9d68467bef Update to OpenJDK 15
- Update to jdk 15.0.0.36 tag
- Modify rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
- Update vendor version string to 20.9
- Remove jjs binaries from files after JEP 372: Nashorn removal
- Remove rmic binaries from files after JDK-8225319
2020-09-16 08:28:19 +02:00
17 changed files with 4764 additions and 1632 deletions

6
.gitignore vendored
View File

@ -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

154
NEWS Normal file
View File

@ -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

View File

@ -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);
}
}
}

1704
config.guess vendored Normal file

File diff suppressed because it is too large Load Diff

1864
config.sub vendored Normal file

File diff suppressed because it is too large Load Diff

40
generate_source_tarball.sh Normal file → Executable file
View File

@ -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

97
icedtea_sync.sh Executable file
View File

@ -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

View File

@ -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);

View File

@ -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;
+ }
+}

View File

@ -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);

View File

@ -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>&nbsp;/&nbsp;<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&nbsp;</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&nbsp;</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>&nbsp;<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>&nbsp;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>&nbsp;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>&nbsp;Branches
</a>
<a class=
"nav-link nowrap
"
href="/rpms/java-11-openjdk/forks">
<i class="fa fa-code-fork text-muted fa-fw"></i>&nbsp;Forks
</a>
<a class=
"nav-link nowrap
"
href="/rpms/java-11-openjdk/releases">
<i class="fa fa-tags text-muted fa-fw"></i>&nbsp;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>&nbsp; master
</a>
</li>
<li class="active breadcrumb-item">
<span class="fa fa-file" data-glyph="">
</span>&nbsp; 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(&#34;,\n&#34;);
}
- extBuilder.append(
- &#34;{\n&#34; + Utilities.indent(ext.toString()) + &#34;}&#34;);
+ extBuilder.append(&#34;{\n&#34;).
+ append(Utilities.indent(ext.toString())).
+ append(&#34;}&#34;);
}
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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
SSLLogger.fine(
&#34;Ignore unavailable extension: &#34; +
- 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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
SSLLogger.fine(&#34;Ignore unavailable extension: &#34; +
- 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 &amp;&amp;
!shc.negotiatedProtocol.useTLS13PlusSpec()) {
shc.handshakeProducers.put(SSLHandshake.CERTIFICATE_STATUS.id,
@@ -654,13 +651,12 @@
// In response to &#34;status_request&#34; 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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
- SSLLogger.finest(
- &#34;Ignore unavailable extension: &#34; +
- CH_STATUS_REQUEST.name);
+ SSLLogger.finest(&#34;Ignore unavailable extension: &#34; +
+ 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 &#34;status_request&#34; 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,
&#34;Unexpected status_request extension in ServerHello&#34;);
@@ -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&#39;ve received a legitimate status_request in the
// ServerHello, stapling is active if it&#39;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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
SSLLogger.finest(
&#34;Ignore unavailable status_request_v2 extension&#34;);
@@ -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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
SSLLogger.finest(
&#34;Ignore unavailable status_request_v2 extension&#34;);
@@ -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 &#34;status_request_v2&#34; 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 &amp;&amp; SSLLogger.isOn(&#34;ssl,handshake&#34;)) {
@@ -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 &#34;status_request&#34; 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,
&#34;Unexpected status_request_v2 extension in ServerHello&#34;);
@@ -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&#39;ve received a legitimate status_request in the
// ServerHello, stapling is active if it&#39;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, &#34;status_request&#34;),
CT_STATUS_REQUEST (0x0005, &#34;status_request&#34;,
SSLHandshake.CERTIFICATE,
@@ -124,6 +123,7 @@
null,
null,
CertStatusExtension.certStatusRespStringizer),
+
// extensions defined in RFC 4681
USER_MAPPING (0x0006, &#34;user_mapping&#34;),
@@ -515,6 +515,16 @@
return null;
}
+ static String nameOf(int extensionType) {
+ for (SSLExtension ext : SSLExtension.values()) {
+ if (ext.id == extensionType) {
+ return ext.name;
+ }
+ }
+
+ return &#34;unknown extension&#34;;
+ }
+
static boolean isConsumable(int extensionType) {
for (SSLExtension ext : SSLExtension.values()) {
if (ext.id == extensionType &amp;&amp;
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 @@
&#34;Received buggy supported_groups extension &#34; +
&#34;in the ServerHello handshake message&#34;);
}
- } else {
+ } else if (handshakeType == SSLHandshake.SERVER_HELLO) {
throw hm.handshakeContext.conContext.fatal(
- Alert.UNSUPPORTED_EXTENSION,
- &#34;extension (&#34; + extId +
- &#34;) should not be presented in &#34; + handshakeType.name);
+ Alert.UNSUPPORTED_EXTENSION, &#34;extension (&#34; +
+ extId + &#34;) should not be presented in &#34; +
+ 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(
- &#34;\&#34;unknown extension ({0})\&#34;: &#39;{&#39;\n&#34; +
- &#34;{1}\n&#34; +
+ &#34;\&#34;{0} ({1})\&#34;: &#39;{&#39;\n&#34; +
+ &#34;{2}\n&#34; +
&#34;&#39;}&#39;&#34;,
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> &bull;
<a href="https://pagure.io/pagure/new_issue" class="notblue">File an Issue</a> &bull;
<a href="/about">About this Instance</a> &bull;
<a href="/ssh_info" class="notblue">SSH Hostkey/Fingerprint</a>
</div>
</div>
<div class="ml-auto text-right">
<div>&copy; 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>

View File

@ -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

View File

@ -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
#

View File

@ -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

View File

@ -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

View File

@ -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=""