Update to aarch64-shenandoah-jdk8u202-b08.
Remove patches included upstream - JDK-8211387/PR3559 - JDK-8207057/PR3613 - JDK-8165852/PR3468 - JDK-8073139/PR1758/RH1191652 - JDK-8044235 - JDK-8172850/RH1640127 - JDK-8209639/RH1640127 - JDK-8131048/PR3574/RH1498936 - JDK-8164920/PR3574/RH1498936 Re-generate patches - JDK-8210647/RH1632174
This commit is contained in:
parent
6acda86f24
commit
2f0cb2fea7
1
.gitignore
vendored
1
.gitignore
vendored
@ -133,3 +133,4 @@
|
|||||||
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
|
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b09.tar.xz
|
||||||
/tapsets-icedtea-3.11.0.tar.xz
|
/tapsets-icedtea-3.11.0.tar.xz
|
||||||
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
|
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz
|
||||||
|
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz
|
||||||
|
@ -226,7 +226,7 @@
|
|||||||
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
|
# note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
|
||||||
%global shenandoah_project aarch64-port
|
%global shenandoah_project aarch64-port
|
||||||
%global shenandoah_repo jdk8u-shenandoah
|
%global shenandoah_repo jdk8u-shenandoah
|
||||||
%global shenandoah_revision aarch64-shenandoah-jdk8u201-b13
|
%global shenandoah_revision aarch64-shenandoah-jdk8u202-b08
|
||||||
# Define old aarch64/jdk8u tree variables for compatibility
|
# Define old aarch64/jdk8u tree variables for compatibility
|
||||||
%global project %{shenandoah_project}
|
%global project %{shenandoah_project}
|
||||||
%global repo %{shenandoah_repo}
|
%global repo %{shenandoah_repo}
|
||||||
@ -1155,8 +1155,6 @@ Patch561: jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_
|
|||||||
Patch563: jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
|
Patch563: jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch
|
||||||
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
|
# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
|
||||||
Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
|
Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch
|
||||||
# PR3559: Use ldrexd for atomic reads on ARMv7.
|
|
||||||
Patch567: pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch
|
|
||||||
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
|
# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
|
||||||
Patch571: jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
|
Patch571: jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
|
||||||
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
|
# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
|
||||||
@ -1205,35 +1203,6 @@ Patch625: jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fd
|
|||||||
# 8219772: EXTRA_CFLAGS not being picked up for assembler files
|
# 8219772: EXTRA_CFLAGS not being picked up for assembler files
|
||||||
Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
|
Patch110: jdk8219772-extra_c_cxx_flags_not_picked_for_assembler_source.patch
|
||||||
|
|
||||||
#############################################
|
|
||||||
#
|
|
||||||
# Patches appearing in 8u202
|
|
||||||
#
|
|
||||||
# This section includes patches which are present
|
|
||||||
# in the listed OpenJDK 8u release and should be
|
|
||||||
# able to be removed once that release is out
|
|
||||||
# and used by this RPM.
|
|
||||||
#############################################
|
|
||||||
# 8207057, PR3613: Enable debug information for assembly code files
|
|
||||||
Patch206: jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch
|
|
||||||
Patch207: jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch
|
|
||||||
# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
|
|
||||||
Patch210: jdk8165852-pr3468-mount_point_not_found_for_a_file_which_is_present_in_overlayfs.patch
|
|
||||||
# S8073139, RH1191652; fix name of ppc64le architecture
|
|
||||||
Patch601: jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch
|
|
||||||
Patch602: jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_jdk.patch
|
|
||||||
Patch603: jdk8073139-pr2236-rh1191652--use_ppc64le_as_the_arch_directory_on_that_platform_and_report_it_in_os_arch_aarch64_forest.patch
|
|
||||||
# 8044235: src.zip should include all sources
|
|
||||||
Patch7: jdk8044235-src_zip_should_include_all_sources.patch
|
|
||||||
# JDK-8172850, RH1640127: Anti-dependency on membar causes crash in register allocator due to invalid instruction scheduling
|
|
||||||
Patch583: jdk8172850-rh1640127-01-register_allocator_crash.patch
|
|
||||||
# JDK-8209639, RH1640127: assert failure in coalesce.cpp: attempted to spill a non-spillable item
|
|
||||||
Patch584: jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
|
|
||||||
# JDK-8131048, PR3574, RH1498936: ppc implement CRC32 intrinsic
|
|
||||||
Patch586: jdk8131048-pr3574-rh1498936-ppc_crc32.patch
|
|
||||||
# JDK-8164920, PR3574, RH1498936: ppc: enhancement of CRC32 intrinsic
|
|
||||||
Patch587: jdk8164920-pr3574-rh1498936-ppc_crc32_enhancement.patch
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
# Patches appearing in 8u211
|
# Patches appearing in 8u211
|
||||||
@ -1596,18 +1565,13 @@ sh %{SOURCE12}
|
|||||||
%patch202
|
%patch202
|
||||||
%patch203
|
%patch203
|
||||||
|
|
||||||
# Debugging fixes
|
# System security policy fixes
|
||||||
%patch206
|
|
||||||
%patch207
|
|
||||||
%patch210
|
|
||||||
|
|
||||||
%patch300
|
%patch300
|
||||||
%patch301
|
%patch301
|
||||||
|
|
||||||
%patch1
|
%patch1
|
||||||
%patch3
|
%patch3
|
||||||
%patch5
|
%patch5
|
||||||
%patch7
|
|
||||||
|
|
||||||
# s390 build fixes
|
# s390 build fixes
|
||||||
%patch102
|
%patch102
|
||||||
@ -1619,11 +1583,6 @@ sh %{SOURCE12}
|
|||||||
# x86 fixes
|
# x86 fixes
|
||||||
%patch105
|
%patch105
|
||||||
|
|
||||||
# ppc64le fixes
|
|
||||||
%patch603
|
|
||||||
%patch601
|
|
||||||
%patch602
|
|
||||||
|
|
||||||
# Upstreamable fixes
|
# Upstreamable fixes
|
||||||
%patch502
|
%patch502
|
||||||
%patch504
|
%patch504
|
||||||
@ -1643,7 +1602,6 @@ sh %{SOURCE12}
|
|||||||
%patch561
|
%patch561
|
||||||
%patch563
|
%patch563
|
||||||
%patch564
|
%patch564
|
||||||
%patch567
|
|
||||||
%patch571
|
%patch571
|
||||||
%patch572
|
%patch572
|
||||||
%patch573
|
%patch573
|
||||||
@ -1657,11 +1615,7 @@ sh %{SOURCE12}
|
|||||||
%patch623
|
%patch623
|
||||||
%patch624
|
%patch624
|
||||||
%patch625
|
%patch625
|
||||||
%patch583
|
|
||||||
%patch584
|
|
||||||
%patch585
|
%patch585
|
||||||
%patch586
|
|
||||||
%patch587
|
|
||||||
%patch588
|
%patch588
|
||||||
%patch110
|
%patch110
|
||||||
|
|
||||||
@ -2331,6 +2285,21 @@ require "copy_jdk_configs.lua"
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Apr 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.202.b08-0
|
||||||
|
- Update to aarch64-shenandoah-jdk8u202-b08.
|
||||||
|
- Remove patches included upstream
|
||||||
|
- JDK-8211387/PR3559
|
||||||
|
- JDK-8207057/PR3613
|
||||||
|
- JDK-8165852/PR3468
|
||||||
|
- JDK-8073139/PR1758/RH1191652
|
||||||
|
- JDK-8044235
|
||||||
|
- JDK-8172850/RH1640127
|
||||||
|
- JDK-8209639/RH1640127
|
||||||
|
- JDK-8131048/PR3574/RH1498936
|
||||||
|
- JDK-8164920/PR3574/RH1498936
|
||||||
|
- Re-generate patches
|
||||||
|
- JDK-8210647/RH1632174
|
||||||
|
|
||||||
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b13-0
|
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.201.b13-0
|
||||||
- Update to aarch64-shenandoah-jdk8u201-b13.
|
- Update to aarch64-shenandoah-jdk8u201-b13.
|
||||||
- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
|
- Drop JDK-8160748 & JDK-8189170 AArch64 patches now applied upstream.
|
||||||
|
@ -1,109 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User omajid
|
|
||||||
# Date 1401638044 14400
|
|
||||||
# Sun Jun 01 11:54:04 2014 -0400
|
|
||||||
# Node ID fd78f7e83f3f1ce7d363b681b97583138218afcb
|
|
||||||
# Parent 8d0af21b5b9789f97b05edacc221a63f851d13b8
|
|
||||||
8044235: src.zip should include all sources
|
|
||||||
Reviewed-by: andrew, dholmes
|
|
||||||
|
|
||||||
diff --git a/make/CreateJars.gmk b/make/CreateJars.gmk
|
|
||||||
--- openjdk/jdk/make/CreateJars.gmk
|
|
||||||
+++ openjdk/jdk/make/CreateJars.gmk
|
|
||||||
@@ -584,40 +584,53 @@
|
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
|
|
||||||
-SRC_ZIP_INCLUDES = \
|
|
||||||
- com/sun/corba \
|
|
||||||
- com/sun/image/codec/jpeg \
|
|
||||||
- com/sun/imageio \
|
|
||||||
- com/sun/java_cup \
|
|
||||||
- com/sun/javadoc \
|
|
||||||
- com/sun/java/swing \
|
|
||||||
- com/sun/jmx \
|
|
||||||
- com/sun/naming \
|
|
||||||
- com/sun/org/apache \
|
|
||||||
- com/sun/security/auth \
|
|
||||||
- com/sun/security/jgss \
|
|
||||||
- com/sun/source \
|
|
||||||
- java \
|
|
||||||
- javax/accessibility \
|
|
||||||
- javax/annotation \
|
|
||||||
- javax/imageio \
|
|
||||||
- javax/lang \
|
|
||||||
- javax/management \
|
|
||||||
- javax/naming \
|
|
||||||
- javax/print \
|
|
||||||
- javax/rmi \
|
|
||||||
- javax/script \
|
|
||||||
- javax/security \
|
|
||||||
- javax/sound \
|
|
||||||
- javax/sql \
|
|
||||||
- javax/swing \
|
|
||||||
- javax/tools \
|
|
||||||
- javax/xml \
|
|
||||||
- org/ietf \
|
|
||||||
- org/omg \
|
|
||||||
- org/w3c/dom \
|
|
||||||
- org/xml/sax \
|
|
||||||
- #
|
|
||||||
+ifdef OPENJDK
|
|
||||||
+ SRC_ZIP_INCLUDES = \
|
|
||||||
+ com \
|
|
||||||
+ java \
|
|
||||||
+ javax \
|
|
||||||
+ jdk \
|
|
||||||
+ org \
|
|
||||||
+ sun \
|
|
||||||
+ #
|
|
||||||
+ SRC_ZIP_EXCLUDES =
|
|
||||||
+else
|
|
||||||
+ SRC_ZIP_INCLUDES = \
|
|
||||||
+ com/sun/corba \
|
|
||||||
+ com/sun/image/codec/jpeg \
|
|
||||||
+ com/sun/imageio \
|
|
||||||
+ com/sun/java_cup \
|
|
||||||
+ com/sun/javadoc \
|
|
||||||
+ com/sun/java/swing \
|
|
||||||
+ com/sun/jmx \
|
|
||||||
+ com/sun/naming \
|
|
||||||
+ com/sun/org/apache \
|
|
||||||
+ com/sun/security/auth \
|
|
||||||
+ com/sun/security/jgss \
|
|
||||||
+ com/sun/source \
|
|
||||||
+ java \
|
|
||||||
+ javax/accessibility \
|
|
||||||
+ javax/annotation \
|
|
||||||
+ javax/imageio \
|
|
||||||
+ javax/lang \
|
|
||||||
+ javax/management \
|
|
||||||
+ javax/naming \
|
|
||||||
+ javax/print \
|
|
||||||
+ javax/rmi \
|
|
||||||
+ javax/script \
|
|
||||||
+ javax/security \
|
|
||||||
+ javax/sound \
|
|
||||||
+ javax/sql \
|
|
||||||
+ javax/swing \
|
|
||||||
+ javax/tools \
|
|
||||||
+ javax/xml \
|
|
||||||
+ org/ietf \
|
|
||||||
+ org/omg \
|
|
||||||
+ org/w3c/dom \
|
|
||||||
+ org/xml/sax \
|
|
||||||
+ #
|
|
||||||
+ SRC_ZIP_EXCLUDES = javax/swing/beaninfo
|
|
||||||
+endif
|
|
||||||
|
|
||||||
SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
|
|
||||||
SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc
|
|
||||||
@@ -648,7 +661,7 @@
|
|
||||||
$(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
|
|
||||||
SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
|
|
||||||
INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
|
|
||||||
- EXCLUDES := javax/swing/beaninfo, \
|
|
||||||
+ EXCLUDES := $(SRC_ZIP_EXCLUDES), \
|
|
||||||
SUFFIXES := .java .c .h, \
|
|
||||||
ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
|
|
||||||
EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
|
|
@ -1,98 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User sgehwolf
|
|
||||||
# Date 1537884792 -7200
|
|
||||||
# Tue Sep 25 16:13:12 2018 +0200
|
|
||||||
# Node ID fd140d7550992267e3f0f08a20b461b2ce9fa740
|
|
||||||
# Parent 21056af0d1eabbd04d7a223c01a28320c7010bfe
|
|
||||||
8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues with Java tooling
|
|
||||||
Reviewed-by: erikj, goetz, dholmes
|
|
||||||
|
|
||||||
diff --git openjdk.orig/jdk/make/lib/SoundLibraries.gmk openjdk/jdk/make/lib/SoundLibraries.gmk
|
|
||||||
--- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
|
|
||||||
+++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
|
|
||||||
@@ -140,6 +140,10 @@
|
|
||||||
LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
|
|
||||||
endif
|
|
||||||
|
|
||||||
+ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
|
|
||||||
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
|
|
||||||
+ endif
|
|
||||||
+
|
|
||||||
ifeq ($(OPENJDK_TARGET_CPU), aarch64)
|
|
||||||
LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
|
|
||||||
endif
|
|
||||||
diff -r 1fe56343ecc8 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
|
|
||||||
--- openjdk.orig/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12 2016 +0000
|
|
||||||
+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016 +0000
|
|
||||||
@@ -44,6 +44,8 @@
|
|
||||||
#define X_ARM 7
|
|
||||||
#define X_PPC 8
|
|
||||||
#define X_AARCH64 9
|
|
||||||
+#define X_PPC64 10
|
|
||||||
+#define X_PPC64LE 11
|
|
||||||
|
|
||||||
// **********************************
|
|
||||||
// Make sure you set X_PLATFORM and X_ARCH defines correctly.
|
|
||||||
diff --git openjdk.orig/jdk/src/solaris/bin/ppc64le/jvm.cfg openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
|
|
||||||
@@ -0,0 +1,34 @@
|
|
||||||
+# Copyright (c) 2011, 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
|
|
||||||
+# 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.
|
|
||||||
+#
|
|
||||||
+# List of JVMs that can be used as an option to java, javac, etc.
|
|
||||||
+# Order is important -- first in this list is the default JVM.
|
|
||||||
+# NOTE that this both this file and its format are UNSUPPORTED and
|
|
||||||
+# WILL GO AWAY in a future release.
|
|
||||||
+#
|
|
||||||
+# You may also select a JVM in an arbitrary location with the
|
|
||||||
+# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
|
|
||||||
+# and may not be available in a future release.
|
|
||||||
+#
|
|
||||||
+-server KNOWN
|
|
||||||
+-client IGNORE
|
|
||||||
diff --git openjdk.orig/test/sun/security/pkcs11/PKCS11Test.java openjdk/test/sun/security/pkcs11/PKCS11Test.java
|
|
||||||
--- openjdk.orig/jdk/test/sun/security/pkcs11/PKCS11Test.java
|
|
||||||
+++ openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
|
|
||||||
@@ -505,6 +505,8 @@
|
|
||||||
osMap.put("Linux-amd64-64", new String[]{
|
|
||||||
"/usr/lib/x86_64-linux-gnu/", "/usr/lib/x86_64-linux-gnu/nss/",
|
|
||||||
"/usr/lib64/"});
|
|
||||||
+ osMap.put("Linux-ppc64-64", new String[]{"/usr/lib64/"});
|
|
||||||
+ osMap.put("Linux-ppc64le-64", new String[]{"/usr/lib64/"});
|
|
||||||
osMap.put("Windows-x86-32", new String[]{
|
|
||||||
PKCS11_BASE + "/nss/lib/windows-i586/".replace('/', SEP)});
|
|
||||||
osMap.put("Windows-amd64-64", new String[]{
|
|
||||||
diff --git openjdk.orig/jdk/test/tools/launcher/Settings.java openjdk/jdk/test/tools/launcher/Settings.java
|
|
||||||
--- openjdk.orig/jdk/test/tools/launcher/Settings.java
|
|
||||||
+++ openjdk/jdk/test/tools/launcher/Settings.java
|
|
||||||
@@ -74,7 +74,7 @@
|
|
||||||
|
|
||||||
static void runTestOptionDefault() throws IOException {
|
|
||||||
String stackSize = "256"; // in kb
|
|
||||||
- if (getArch().equals("ppc64")) {
|
|
||||||
+ if (getArch().equals("ppc64") || getArch().equals("ppc64le")) {
|
|
||||||
stackSize = "800";
|
|
||||||
}
|
|
||||||
TestResult tr = null;
|
|
@ -1,47 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User asmundak
|
|
||||||
# Date 1537883922 -7200
|
|
||||||
# Tue Sep 25 15:58:42 2018 +0200
|
|
||||||
# Node ID 2fabe07c0bd8bf21400313f3bb9b8e80fcb31724
|
|
||||||
# Parent 91867683f73de3882ef88981a79995beeeb1e980
|
|
||||||
8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues with Java tooling
|
|
||||||
Reviewed-by: erikj, goetz, dholmes
|
|
||||||
Contributed-by: Andrew Hughes <gnu.andrew@redhat.com>, Alexander Smundak <asmundak@google.com>
|
|
||||||
|
|
||||||
diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
|
|
||||||
--- openjdk.orig///common/autoconf/flags.m4
|
|
||||||
+++ openjdk///common/autoconf/flags.m4
|
|
||||||
@@ -549,6 +549,9 @@
|
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
|
|
||||||
+ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
# Setup target OS define. Use OS target name but in upper case.
|
|
||||||
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
|
||||||
diff --git openjdk.orig///common/autoconf/jdk-options.m4 openjdk///common/autoconf/jdk-options.m4
|
|
||||||
--- openjdk.orig///common/autoconf/jdk-options.m4
|
|
||||||
+++ openjdk///common/autoconf/jdk-options.m4
|
|
||||||
@@ -158,7 +158,7 @@
|
|
||||||
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
|
|
||||||
INCLUDE_SA=false
|
|
||||||
fi
|
|
||||||
- if test "x$VAR_CPU" = xppc64 ; then
|
|
||||||
+ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
|
|
||||||
INCLUDE_SA=false
|
|
||||||
fi
|
|
||||||
AC_SUBST(INCLUDE_SA)
|
|
||||||
diff --git openjdk.orig///common/autoconf/platform.m4 openjdk///common/autoconf/platform.m4
|
|
||||||
--- openjdk.orig///common/autoconf/platform.m4
|
|
||||||
+++ openjdk///common/autoconf/platform.m4
|
|
||||||
@@ -67,7 +67,7 @@
|
|
||||||
VAR_CPU_ENDIAN=big
|
|
||||||
;;
|
|
||||||
powerpc64le)
|
|
||||||
- VAR_CPU=ppc64
|
|
||||||
+ VAR_CPU=ppc64le
|
|
||||||
VAR_CPU_ARCH=ppc
|
|
||||||
VAR_CPU_BITS=64
|
|
||||||
VAR_CPU_ENDIAN=little
|
|
@ -1,130 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User sgehwolf
|
|
||||||
# Date 1537885415 -7200
|
|
||||||
# Tue Sep 25 16:23:35 2018 +0200
|
|
||||||
# Node ID 5044428520866481f438bfd1375da75adbc89243
|
|
||||||
# Parent a3df1579a8647b06559f41d345da7bea162b26e9
|
|
||||||
8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues with Java tooling
|
|
||||||
Reviewed-by: erikj, goetz, dholmes
|
|
||||||
|
|
||||||
diff --git a/make/defs.make b/make/defs.make
|
|
||||||
--- openjdk/hotspot/make/defs.make
|
|
||||||
+++ openjdk/hotspot/make/defs.make
|
|
||||||
@@ -285,7 +285,7 @@ ifneq ($(OSNAME),windows)
|
|
||||||
|
|
||||||
# Use uname output for SRCARCH, but deal with platform differences. If ARCH
|
|
||||||
# is not explicitly listed below, it is treated as x86.
|
|
||||||
- SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 zero aarch64,$(ARCH)))
|
|
||||||
+ SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 ppc64le zero aarch64,$(ARCH)))
|
|
||||||
ARCH/ = x86
|
|
||||||
ARCH/sparc = sparc
|
|
||||||
ARCH/sparc64= sparc
|
|
||||||
@@ -293,6 +293,7 @@ ifneq ($(OSNAME),windows)
|
|
||||||
ARCH/amd64 = x86
|
|
||||||
ARCH/x86_64 = x86
|
|
||||||
ARCH/ppc64 = ppc
|
|
||||||
+ ARCH/ppc64le= ppc
|
|
||||||
ARCH/ppc = ppc
|
|
||||||
ARCH/zero = zero
|
|
||||||
ARCH/aarch64 = aarch64
|
|
||||||
@@ -316,7 +317,12 @@
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
- # LIBARCH is 1:1 mapping from BUILDARCH
|
|
||||||
+ # LIBARCH is 1:1 mapping from BUILDARCH, except for ARCH=ppc64le
|
|
||||||
+ ifeq ($(ARCH),ppc64le)
|
|
||||||
+ LIBARCH ?= ppc64le
|
|
||||||
+ else
|
|
||||||
+ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
|
|
||||||
+ endif
|
|
||||||
LIBARCH ?= $(LIBARCH/$(BUILDARCH))
|
|
||||||
LIBARCH/i486 = i386
|
|
||||||
LIBARCH/amd64 = amd64
|
|
||||||
diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
|
|
||||||
--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
|
|
||||||
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
|
|
||||||
@@ -1956,7 +1956,7 @@
|
|
||||||
{EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
|
|
||||||
{EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
|
|
||||||
#if defined(VM_LITTLE_ENDIAN)
|
|
||||||
- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64"},
|
|
||||||
+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64 LE"},
|
|
||||||
#else
|
|
||||||
{EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
|
|
||||||
#endif
|
|
||||||
diff --git a/src/share/tools/hsdis/Makefile b/src/share/tools/hsdis/Makefile
|
|
||||||
--- openjdk/hotspot/src/share/tools/hsdis/Makefile
|
|
||||||
+++ openjdk/hotspot/src/share/tools/hsdis/Makefile
|
|
||||||
@@ -97,6 +97,7 @@
|
|
||||||
CFLAGS/sparcv9 += -m64
|
|
||||||
CFLAGS/amd64 += -m64
|
|
||||||
CFLAGS/ppc64 += -m64
|
|
||||||
+CFLAGS/ppc64le += -m64 -DABI_ELFv2
|
|
||||||
else
|
|
||||||
ARCH=$(ARCH1:amd64=i386)
|
|
||||||
CFLAGS/i386 += -m32
|
|
||||||
diff --git a/src/share/tools/hsdis/hsdis-demo.c b/src/share/tools/hsdis/hsdis-demo.c
|
|
||||||
--- openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
|
|
||||||
+++ openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
|
|
||||||
@@ -88,7 +88,7 @@
|
|
||||||
printf("...And now for something completely different:\n");
|
|
||||||
void *start = (void*) &main;
|
|
||||||
void *end = (void*) &end_of_file;
|
|
||||||
-#if defined(__ia64) || defined(__powerpc__)
|
|
||||||
+#if defined(__ia64) || (defined(__powerpc__) && !defined(ABI_ELFv2))
|
|
||||||
/* On IA64 and PPC function pointers are pointers to function descriptors */
|
|
||||||
start = *((void**)start);
|
|
||||||
end = *((void**)end);
|
|
||||||
diff --git a/src/share/tools/hsdis/hsdis.c b/src/share/tools/hsdis/hsdis.c
|
|
||||||
--- openjdk/hotspot/src/share/tools/hsdis/hsdis.c
|
|
||||||
+++ openjdk/hotspot/src/share/tools/hsdis/hsdis.c
|
|
||||||
@@ -461,7 +461,7 @@ static const char* native_arch_name() {
|
|
||||||
#ifdef LIBARCH_sparcv9
|
|
||||||
res = "sparc:v9b";
|
|
||||||
#endif
|
|
||||||
-#ifdef LIBARCH_ppc64
|
|
||||||
+#if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le)
|
|
||||||
res = "powerpc:common64";
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
|
|
||||||
+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
|
|
||||||
@@ -187,11 +187,16 @@ const char* Abstract_VM_Version::jre_release_version() {
|
|
||||||
#ifndef CPU
|
|
||||||
#ifdef ZERO
|
|
||||||
#define CPU ZERO_LIBARCH
|
|
||||||
+#elif defined(PPC64)
|
|
||||||
+#if defined(VM_LITTLE_ENDIAN)
|
|
||||||
+#define CPU "ppc64le"
|
|
||||||
+#else
|
|
||||||
+#define CPU "ppc64"
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#define CPU IA32_ONLY("x86") \
|
|
||||||
IA64_ONLY("ia64") \
|
|
||||||
AMD64_ONLY("amd64") \
|
|
||||||
- PPC64_ONLY("ppc64") \
|
|
||||||
AARCH64_ONLY("aarch64") \
|
|
||||||
SPARC_ONLY("sparc")
|
|
||||||
#endif // ZERO
|
|
||||||
diff --git a/test/test_env.sh b/test/test_env.sh
|
|
||||||
--- openjdk/hotspot/test/test_env.sh
|
|
||||||
+++ openjdk/hotspot/test/test_env.sh
|
|
||||||
@@ -185,6 +185,15 @@
|
|
||||||
if [ $? = 0 ]
|
|
||||||
then
|
|
||||||
VM_CPU="ppc"
|
|
||||||
+ if [ $VM_BITS = "64" ]
|
|
||||||
+ then
|
|
||||||
+ VM_CPU="ppc64"
|
|
||||||
+ grep "ppc64le" vm_version.out > ${NULL}
|
|
||||||
+ if [ $? = 0 ]
|
|
||||||
+ then
|
|
||||||
+ VM_CPU="ppc64le"
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
grep "ia64" vm_version.out > ${NULL}
|
|
||||||
if [ $? = 0 ]
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,87 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User bpb
|
|
||||||
# Date 1515783982 28800
|
|
||||||
# Node ID b8843bca95b5e0eed5bbb4dc195c89c727c7aede
|
|
||||||
# Parent 61d7ce442d95f5f30c84037a50cf6361bf7c37e1
|
|
||||||
8165852: (fs) Mount point not found for a file which is present in overlayfs
|
|
||||||
Summary: Check /proc/mounts when the device ID boundary is reached
|
|
||||||
Reviewed-by: alanb
|
|
||||||
|
|
||||||
diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileStore.java
|
|
||||||
--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Tue Jul 24 05:10:45 2018 -0400
|
|
||||||
+++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Fri Jan 12 11:06:22 2018 -0800
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/*
|
|
||||||
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
+ * Copyright (c) 2008, 2018, 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
|
|
||||||
@@ -66,6 +66,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
// step 2: find mount point
|
|
||||||
+ List<UnixMountEntry> procMountsEntries =
|
|
||||||
+ fs.getMountEntries("/proc/mounts");
|
|
||||||
UnixPath parent = path.getParent();
|
|
||||||
while (parent != null) {
|
|
||||||
UnixFileAttributes attrs = null;
|
|
||||||
@@ -74,16 +76,23 @@
|
|
||||||
} catch (UnixException x) {
|
|
||||||
x.rethrowAsIOException(parent);
|
|
||||||
}
|
|
||||||
- if (attrs.dev() != dev())
|
|
||||||
- break;
|
|
||||||
+ if (attrs.dev() != dev()) {
|
|
||||||
+ // step 3: lookup mounted file systems (use /proc/mounts to
|
|
||||||
+ // ensure we find the file system even when not in /etc/mtab)
|
|
||||||
+ byte[] dir = path.asByteArray();
|
|
||||||
+ for (UnixMountEntry entry : procMountsEntries) {
|
|
||||||
+ if (Arrays.equals(dir, entry.dir()))
|
|
||||||
+ return entry;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
path = parent;
|
|
||||||
parent = parent.getParent();
|
|
||||||
}
|
|
||||||
|
|
||||||
- // step 3: lookup mounted file systems (use /proc/mounts to ensure we
|
|
||||||
- // find the file system even when not in /etc/mtab)
|
|
||||||
+ // step 3: lookup mounted file systems (use /proc/mounts to
|
|
||||||
+ // ensure we find the file system even when not in /etc/mtab)
|
|
||||||
byte[] dir = path.asByteArray();
|
|
||||||
- for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts")) {
|
|
||||||
+ for (UnixMountEntry entry : procMountsEntries) {
|
|
||||||
if (Arrays.equals(dir, entry.dir()))
|
|
||||||
return entry;
|
|
||||||
}
|
|
||||||
diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
|
|
||||||
--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Tue Jul 24 05:10:45 2018 -0400
|
|
||||||
+++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Fri Jan 12 11:06:22 2018 -0800
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/*
|
|
||||||
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
+ * Copyright (c) 2008, 2018, 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
|
|
||||||
@@ -75,7 +75,7 @@
|
|
||||||
/**
|
|
||||||
* Returns object to iterate over the mount entries in the given fstab file.
|
|
||||||
*/
|
|
||||||
- Iterable<UnixMountEntry> getMountEntries(String fstab) {
|
|
||||||
+ List<UnixMountEntry> getMountEntries(String fstab) {
|
|
||||||
ArrayList<UnixMountEntry> entries = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r"));
|
|
||||||
@@ -101,7 +101,7 @@
|
|
||||||
* Returns object to iterate over the mount entries in /etc/mtab
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
- Iterable<UnixMountEntry> getMountEntries() {
|
|
||||||
+ List<UnixMountEntry> getMountEntries() {
|
|
||||||
return getMountEntries("/etc/mtab");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,213 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User thartmann
|
|
||||||
# Date 1539594027 -7200
|
|
||||||
# Node ID e044997c2edaeae97866394a7f8e2ddebbd41392
|
|
||||||
# Parent 99212080341058548d449a22d1381e79353ec5b5
|
|
||||||
8172850: Anti-dependency on membar causes crash in register allocator due to invalid instruction scheduling
|
|
||||||
Summary: Regression test and additional asserts. The problem is fixed by 8087341.
|
|
||||||
Reviewed-by: kvn
|
|
||||||
|
|
||||||
diff -r 992120803410 -r e044997c2eda src/share/vm/opto/cfgnode.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 22 05:26:38 2018 -0400
|
|
||||||
+++ openjdk/hotspot/src/share/vm/opto/cfgnode.cpp Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
@@ -2016,6 +2016,7 @@
|
|
||||||
uint ideal_reg = _type->ideal_reg();
|
|
||||||
assert( ideal_reg != Node::NotAMachineReg, "invalid type at Phi" );
|
|
||||||
if( ideal_reg == 0 ) return RegMask::Empty;
|
|
||||||
+ assert(ideal_reg != Op_RegFlags, "flags register is not spillable");
|
|
||||||
return *(Compile::current()->matcher()->idealreg2spillmask[ideal_reg]);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -r 992120803410 -r e044997c2eda src/share/vm/opto/coalesce.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 22 05:26:38 2018 -0400
|
|
||||||
+++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
@@ -292,7 +292,14 @@
|
|
||||||
// Copy any flags as well
|
|
||||||
_phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map);
|
|
||||||
} else {
|
|
||||||
- const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()];
|
|
||||||
+ int ireg = m->ideal_reg();
|
|
||||||
+ if (ireg == 0 || ireg == Op_RegFlags) {
|
|
||||||
+ assert(false, err_msg("attempted to spill a non-spillable item: %d: %s, ireg = %d",
|
|
||||||
+ m->_idx, m->Name(), ireg));
|
|
||||||
+ C->record_method_not_compilable("attempted to spill a non-spillable item");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
|
|
||||||
copy = new (C) MachSpillCopyNode(m, *rm, *rm);
|
|
||||||
// Find a good place to insert. Kinda tricky, use a subroutine
|
|
||||||
insert_copy_with_overlap(pred,copy,phi_name,src_name);
|
|
||||||
@@ -326,7 +333,14 @@
|
|
||||||
b->insert_node(copy, l++);
|
|
||||||
l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map);
|
|
||||||
} else {
|
|
||||||
- const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()];
|
|
||||||
+ int ireg = m->ideal_reg();
|
|
||||||
+ if (ireg == 0 || ireg == Op_RegFlags) {
|
|
||||||
+ assert(false, err_msg("attempted to spill a non-spillable item: %d: %s, ireg = %d",
|
|
||||||
+ m->_idx, m->Name(), ireg));
|
|
||||||
+ C->record_method_not_compilable("attempted to spill a non-spillable item");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
|
|
||||||
copy = new (C) MachSpillCopyNode(m, *rm, *rm);
|
|
||||||
// Insert the copy in the basic block, just before us
|
|
||||||
b->insert_node(copy, l++);
|
|
||||||
@@ -373,7 +387,14 @@
|
|
||||||
if( k < b->_num_succs )
|
|
||||||
continue; // Live out; do not pre-split
|
|
||||||
// Split the lrg at this use
|
|
||||||
- const RegMask *rm = C->matcher()->idealreg2spillmask[inp->ideal_reg()];
|
|
||||||
+ int ireg = inp->ideal_reg();
|
|
||||||
+ if (ireg == 0 || ireg == Op_RegFlags) {
|
|
||||||
+ assert(false, err_msg("attempted to spill a non-spillable item: %d: %s, ireg = %d",
|
|
||||||
+ inp->_idx, inp->Name(), ireg));
|
|
||||||
+ C->record_method_not_compilable("attempted to spill a non-spillable item");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
|
|
||||||
Node *copy = new (C) MachSpillCopyNode( inp, *rm, *rm );
|
|
||||||
// Insert the copy in the use-def chain
|
|
||||||
n->set_req(inpidx, copy );
|
|
||||||
diff -r 992120803410 -r e044997c2eda src/share/vm/opto/machnode.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 22 05:26:38 2018 -0400
|
|
||||||
+++ openjdk/hotspot/src/share/vm/opto/machnode.cpp Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
@@ -619,6 +619,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
// Values outside the domain represent debug info
|
|
||||||
+ assert(in(idx)->ideal_reg() != Op_RegFlags, "flags register is not spillable");
|
|
||||||
return *Compile::current()->matcher()->idealreg2spillmask[in(idx)->ideal_reg()];
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -r 992120803410 -r e044997c2eda src/share/vm/opto/matcher.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 22 05:26:38 2018 -0400
|
|
||||||
+++ openjdk/hotspot/src/share/vm/opto/matcher.cpp Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
@@ -95,6 +95,7 @@
|
|
||||||
idealreg2spillmask [Op_VecD] = NULL;
|
|
||||||
idealreg2spillmask [Op_VecX] = NULL;
|
|
||||||
idealreg2spillmask [Op_VecY] = NULL;
|
|
||||||
+ idealreg2spillmask [Op_RegFlags] = NULL;
|
|
||||||
|
|
||||||
idealreg2debugmask [Op_RegI] = NULL;
|
|
||||||
idealreg2debugmask [Op_RegN] = NULL;
|
|
||||||
@@ -106,6 +107,7 @@
|
|
||||||
idealreg2debugmask [Op_VecD] = NULL;
|
|
||||||
idealreg2debugmask [Op_VecX] = NULL;
|
|
||||||
idealreg2debugmask [Op_VecY] = NULL;
|
|
||||||
+ idealreg2debugmask [Op_RegFlags] = NULL;
|
|
||||||
|
|
||||||
idealreg2mhdebugmask[Op_RegI] = NULL;
|
|
||||||
idealreg2mhdebugmask[Op_RegN] = NULL;
|
|
||||||
@@ -117,6 +119,7 @@
|
|
||||||
idealreg2mhdebugmask[Op_VecD] = NULL;
|
|
||||||
idealreg2mhdebugmask[Op_VecX] = NULL;
|
|
||||||
idealreg2mhdebugmask[Op_VecY] = NULL;
|
|
||||||
+ idealreg2mhdebugmask[Op_RegFlags] = NULL;
|
|
||||||
|
|
||||||
debug_only(_mem_node = NULL;) // Ideal memory node consumed by mach node
|
|
||||||
}
|
|
||||||
diff -r 992120803410 -r e044997c2eda test/compiler/gcbarriers/TestMembarDependencies.java
|
|
||||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
||||||
+++ openjdk/hotspot/test/compiler/gcbarriers/TestMembarDependencies.java Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
@@ -0,0 +1,98 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2017, 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
|
|
||||||
+ * 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 TestMembarDependencies
|
|
||||||
+ * @bug 8172850
|
|
||||||
+ * @summary Tests correct scheduling of memory loads around MembarVolatile emitted by GC barriers.
|
|
||||||
+ * @library /testlibrary
|
|
||||||
+ * @run driver compiler.membars.TestMembarDependencies
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+package compiler.membars;
|
|
||||||
+
|
|
||||||
+import com.oracle.java.testlibrary.*;
|
|
||||||
+
|
|
||||||
+public class TestMembarDependencies {
|
|
||||||
+ private static TestMembarDependencies f1;
|
|
||||||
+ private static TestMembarDependencies f2;
|
|
||||||
+
|
|
||||||
+ public static void main(String args[]) throws Throwable {
|
|
||||||
+ if (args.length == 0) {
|
|
||||||
+ // For debugging, add "-XX:+TraceOptoPipelining"
|
|
||||||
+ OutputAnalyzer oa = ProcessTools.executeTestJvm("-XX:+IgnoreUnrecognizedVMOptions",
|
|
||||||
+ "-XX:-TieredCompilation", "-XX:-BackgroundCompilation", "-XX:+PrintOpto",
|
|
||||||
+ "-XX:CompileCommand=compileonly,compiler.membars.TestMembarDependencies::test*",
|
|
||||||
+ "-XX:CompileCommand=dontinline,compiler.membars.TestMembarDependencies::test_m1",
|
|
||||||
+ TestMembarDependencies.class.getName(), "run");
|
|
||||||
+ // C2 should not crash or bail out from compilation
|
|
||||||
+ oa.shouldHaveExitValue(0);
|
|
||||||
+ oa.shouldNotMatch("Bailout: Recompile without subsuming loads");
|
|
||||||
+ System.out.println(oa.getOutput());
|
|
||||||
+ } else {
|
|
||||||
+ f2 = new TestMembarDependencies();
|
|
||||||
+ // Trigger compilation of test1 and test2
|
|
||||||
+ for (int i = 0; i < 10_000; ++i) {
|
|
||||||
+ f2.test1(f2);
|
|
||||||
+ f2.test2(f2);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public void test_m1() { }
|
|
||||||
+ public void test_m2() { }
|
|
||||||
+
|
|
||||||
+ public void test1(TestMembarDependencies obj) {
|
|
||||||
+ // Try/catch/finally is used to create a CFG block without a test + jmpCon
|
|
||||||
+ // allowing GCM to schedule the testN_mem_reg0 instruction into that block.
|
|
||||||
+ try {
|
|
||||||
+ // Method call defines memory state that is then
|
|
||||||
+ // used by subsequent instructions/blocks (see below).
|
|
||||||
+ test_m1();
|
|
||||||
+ } catch (Exception e) {
|
|
||||||
+
|
|
||||||
+ } finally {
|
|
||||||
+ // Oop write to field emits a GC post-barrier with a MembarVolatile
|
|
||||||
+ // which has a wide memory effect (kills all memory). This creates an
|
|
||||||
+ // anti-dependency on all surrounding memory loads.
|
|
||||||
+ f1 = obj;
|
|
||||||
+ }
|
|
||||||
+ // The empty method m2 is inlined but the null check of f2 remains. It is encoded
|
|
||||||
+ // as CmpN(LoadN(MEM), NULL) where MEM is the memory after the call to test_m1().
|
|
||||||
+ // This is matched to testN_mem_reg0 on x86 which is scheduled before the barrier
|
|
||||||
+ // in the try/catch block due to the anti-dependency on the MembarVolatile.
|
|
||||||
+ // C2 crashes in the register allocator when trying to spill the flag register
|
|
||||||
+ // to keep the result of the testN instruction live from the try/catch block
|
|
||||||
+ // until it is here.
|
|
||||||
+ f2.test_m2();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ public void test2(TestMembarDependencies obj) {
|
|
||||||
+ // Same as test1 but without try/catch/finally.
|
|
||||||
+ // This causes C2 to bail out in block local scheduling because testN_mem_reg0 is
|
|
||||||
+ // scheduled into a block that already contains another test + jmpCon instruction.
|
|
||||||
+ test_m1();
|
|
||||||
+ f1 = obj;
|
|
||||||
+ f2.test_m2();
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
--- openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.933127667 +0200
|
|
||||||
+++ openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.831127850 +0200
|
|
||||||
@@ -184,6 +184,10 @@
|
|
||||||
LFLAGS += $(ARCHFLAG)
|
|
||||||
ASFLAGS += $(ARCHFLAG)
|
|
||||||
|
|
||||||
+ifeq ($(DEBUG_BINARIES), true)
|
|
||||||
+ ASFLAGS += $(ASFLAGS_DEBUG_SYMBOLS)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
# Use C++ Interpreter
|
|
||||||
ifdef CC_INTERP
|
|
||||||
CFLAGS += -DCC_INTERP
|
|
@ -1,52 +0,0 @@
|
|||||||
diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4
|
|
||||||
--- openjdk.orig///common/autoconf/flags.m4
|
|
||||||
+++ openjdk///common/autoconf/flags.m4
|
|
||||||
@@ -282,9 +282,11 @@
|
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
|
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g1"
|
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g1"
|
|
||||||
+ ASFLAGS_DEBUG_SYMBOLS="-g1"
|
|
||||||
else
|
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
|
||||||
+ ASFLAGS_DEBUG_SYMBOLS="-g"
|
|
||||||
fi
|
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g -xs"
|
|
||||||
@@ -295,6 +297,7 @@
|
|
||||||
fi
|
|
||||||
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
|
|
||||||
AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
|
|
||||||
+ AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
|
|
||||||
|
|
||||||
# Optimization levels
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
|
||||||
diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/spec.gmk.in
|
|
||||||
--- openjdk.orig///common/autoconf/spec.gmk.in
|
|
||||||
+++ openjdk///common/autoconf/spec.gmk.in
|
|
||||||
@@ -414,6 +414,7 @@
|
|
||||||
# Options for generating debug symbols
|
|
||||||
ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
|
|
||||||
CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
|
|
||||||
+ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
|
|
||||||
CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
|
|
||||||
ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
|
|
||||||
STRIP_POLICY:=@STRIP_POLICY@
|
|
||||||
diff --git openjdk.orig///make/common/NativeCompilation.gmk openjdk///make/common/NativeCompilation.gmk
|
|
||||||
--- openjdk.orig///make/common/NativeCompilation.gmk
|
|
||||||
+++ openjdk///make/common/NativeCompilation.gmk
|
|
||||||
@@ -351,12 +351,14 @@
|
|
||||||
# Always add debug symbols
|
|
||||||
$1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
|
|
||||||
$1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
|
|
||||||
+ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
|
|
||||||
else
|
|
||||||
# Programs don't get the debug symbols added in the old build. It's not clear if
|
|
||||||
# this is intentional.
|
|
||||||
ifeq ($$($1_PROGRAM),)
|
|
||||||
$1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS)
|
|
||||||
$1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS)
|
|
||||||
+ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
@ -1,114 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User roland
|
|
||||||
# Date 1540370574 -7200
|
|
||||||
# Node ID d853bac073f8a4851e313ba8fa9768b38396a204
|
|
||||||
# Parent e044997c2edaeae97866394a7f8e2ddebbd41392
|
|
||||||
8209639: assert failure in coalesce.cpp: attempted to spill a non-spillable item
|
|
||||||
Reviewed-by: neliasso, kvn
|
|
||||||
|
|
||||||
diff -r e044997c2eda -r d853bac073f8 src/share/vm/opto/coalesce.cpp
|
|
||||||
--- openjdk/hotspot/src/share/vm/opto/coalesce.cpp Mon Oct 15 11:00:27 2018 +0200
|
|
||||||
+++ openjdk/hotspot/src/share/vm/opto/coalesce.cpp Wed Oct 24 10:42:54 2018 +0200
|
|
||||||
@@ -25,6 +25,7 @@
|
|
||||||
#include "precompiled.hpp"
|
|
||||||
#include "memory/allocation.inline.hpp"
|
|
||||||
#include "opto/block.hpp"
|
|
||||||
+#include "opto/c2compiler.hpp"
|
|
||||||
#include "opto/cfgnode.hpp"
|
|
||||||
#include "opto/chaitin.hpp"
|
|
||||||
#include "opto/coalesce.hpp"
|
|
||||||
@@ -294,9 +295,13 @@
|
|
||||||
} else {
|
|
||||||
int ireg = m->ideal_reg();
|
|
||||||
if (ireg == 0 || ireg == Op_RegFlags) {
|
|
||||||
- assert(false, err_msg("attempted to spill a non-spillable item: %d: %s, ireg = %d",
|
|
||||||
- m->_idx, m->Name(), ireg));
|
|
||||||
- C->record_method_not_compilable("attempted to spill a non-spillable item");
|
|
||||||
+ if (C->subsume_loads()) {
|
|
||||||
+ C->record_failure(C2Compiler::retry_no_subsuming_loads());
|
|
||||||
+ } else {
|
|
||||||
+ assert(false, err_msg("attempted to spill a non-spillable item: %d: %s, ireg = %d",
|
|
||||||
+ m->_idx, m->Name(), ireg));
|
|
||||||
+ C->record_method_not_compilable("attempted to spill a non-spillable item");
|
|
||||||
+ }
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const RegMask *rm = C->matcher()->idealreg2spillmask[ireg];
|
|
||||||
diff -r e044997c2eda -r d853bac073f8 test/compiler/c2/SubsumingLoadsCauseFlagSpill.java
|
|
||||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
||||||
+++ openjdk/hotspot/test/compiler/c2/SubsumingLoadsCauseFlagSpill.java Wed Oct 24 10:42:54 2018 +0200
|
|
||||||
@@ -0,0 +1,72 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2018, 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 8209639
|
|
||||||
+ * @summary assert failure in coalesce.cpp: attempted to spill a non-spillable item
|
|
||||||
+ *
|
|
||||||
+ * @run main/othervm -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,SubsumingLoadsCauseFlagSpill::not_inlined -Xmx1024m SubsumingLoadsCauseFlagSpill
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+public class SubsumingLoadsCauseFlagSpill {
|
|
||||||
+ private static Object field;
|
|
||||||
+ private static boolean do_throw;
|
|
||||||
+ private static volatile boolean barrier;
|
|
||||||
+
|
|
||||||
+ public static void main(String[] args) {
|
|
||||||
+ for (int i = 0; i < 20_000; i++) {
|
|
||||||
+ do_throw = true;
|
|
||||||
+ field = null;
|
|
||||||
+ test(0);
|
|
||||||
+ do_throw = false;
|
|
||||||
+ field = new Object();
|
|
||||||
+ test(0);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ private static float test(float f) {
|
|
||||||
+ Object v = null;
|
|
||||||
+ try {
|
|
||||||
+ not_inlined();
|
|
||||||
+ v = field;
|
|
||||||
+ } catch (MyException me) {
|
|
||||||
+ v = field;
|
|
||||||
+ barrier = true;
|
|
||||||
+ }
|
|
||||||
+ if (v == null) {
|
|
||||||
+ return f * f;
|
|
||||||
+ }
|
|
||||||
+ return f;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ private static void not_inlined() throws MyException{
|
|
||||||
+ if (do_throw) {
|
|
||||||
+ throw new MyException();
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ private static class MyException extends Throwable {
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
|
|
@ -20,4 +20,4 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make openjdk/hotspot
|
|||||||
+ $(SA_OPT_FLAGS) \
|
+ $(SA_OPT_FLAGS) \
|
||||||
$(EXTRA_CFLAGS) \
|
$(EXTRA_CFLAGS) \
|
||||||
-o $@ \
|
-o $@ \
|
||||||
-lthread_db
|
-lthread_db -ldl
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User aph
|
|
||||||
# Date 1338206478 14400
|
|
||||||
# Mon May 28 08:01:18 2012 -0400
|
|
||||||
# Node ID 6275d7b419091092752d5a1854194c98897892ba
|
|
||||||
# Parent be1379a186ba527b32c93a83e04c9600735fe44b
|
|
||||||
PR3559: Use ldrexd for atomic reads on ARMv7.
|
|
||||||
|
|
||||||
2012-05-28 Andrew Haley <aph@redhat.com>
|
|
||||||
|
|
||||||
* os_linux_zero.hpp (atomic_copy64): Use ldrexd for atomic reads
|
|
||||||
on ARMv7.
|
|
||||||
|
|
||||||
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
||||||
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
||||||
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
|
|
||||||
@@ -54,6 +54,12 @@
|
|
||||||
"std %0, %1\n"
|
|
||||||
: "=&f"(tmp), "=Q"(*(volatile double*)dst)
|
|
||||||
: "Q"(*(volatile double*)src));
|
|
||||||
+#elif defined(__ARM_ARCH_7A__)
|
|
||||||
+ jlong tmp;
|
|
||||||
+ asm volatile ("ldrexd %0, [%1]\n"
|
|
||||||
+ : "=r"(tmp)
|
|
||||||
+ : "r"(src), "m"(src));
|
|
||||||
+ *(jlong *) dst = tmp;
|
|
||||||
#else
|
|
||||||
*(jlong *) dst = *(jlong *) src;
|
|
||||||
#endif
|
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
|||||||
SHA512 (tapsets-icedtea-3.11.0.tar.xz) = f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
|
SHA512 (tapsets-icedtea-3.11.0.tar.xz) = f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e
|
||||||
SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u201-b13.tar.xz) = d7191695ed8f034ceae973bfa065f8fa7f92d17977903d7a8e75dcd04b159ce1157e3033aabbef446604f63da428dc5d4990016639f85b3e62724522526ea390
|
SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u202-b08.tar.xz) = 5c2fde5b6595a8daeb2216c0eed0a9a5b311d651745fa5d299d8d6da674c27133ce23726e3f8ec32314c929d5a814d8167d9a33877fbf5237a2595b3f488585e
|
||||||
|
Loading…
Reference in New Issue
Block a user