svn commit: r441965 - in head/java/openjdk7: . files
Greg Lewis
glewis at FreeBSD.org
Mon May 29 04:16:02 UTC 2017
Author: glewis
Date: Mon May 29 04:16:00 2017
New Revision: 441965
URL: https://svnweb.freebsd.org/changeset/ports/441965
Log:
. Update to 7u131.
Deleted:
head/java/openjdk7/files/patch-hotspot_src_os_bsd_vm_os__bsd.cpp
head/java/openjdk7/files/patch-hotspot_src_os_bsd_vm_os__bsd.hpp
Modified:
head/java/openjdk7/Makefile
head/java/openjdk7/distinfo
head/java/openjdk7/files/patch-bsd
Modified: head/java/openjdk7/Makefile
==============================================================================
--- head/java/openjdk7/Makefile Sun May 28 23:22:54 2017 (r441964)
+++ head/java/openjdk7/Makefile Mon May 29 04:16:00 2017 (r441965)
@@ -3,7 +3,6 @@
PORTNAME= openjdk
PORTVERSION= ${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER}
-PORTREVISION= 4
PORTEPOCH= 1
CATEGORIES= java devel
MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}u${JDK_MINOR_VERSION}/promoted/b${JDK_BUILD_NUMBER}/ \
@@ -31,7 +30,9 @@ PATCHFILES= patch-7u45-b30.xz \
patch-7u91-b02.xz \
patch-7u95-b00.xz \
patch-7u101-b00.xz \
- patch-7u111-b01.xz
+ patch-7u111-b01.xz \
+ patch-7u121-b00.xz \
+ patch-7u131-b00.xz
MAINTAINER?= glewis at FreeBSD.org
COMMENT?= Java Development Kit 7
@@ -74,8 +75,8 @@ JAVAVMS_COMMENT+= JRE
INSTALLDIR= ${PREFIX}/${PORTNAME}${JDK_MAJOR_VERSION}-jre
.endif
-PORT_MINOR_VERSION= 111
-PORT_BUILD_NUMBER= 01
+PORT_MINOR_VERSION= 131
+PORT_BUILD_NUMBER= 00
JDK_MAJOR_VERSION= 7
JDK_MINOR_VERSION= 40
JDK_BUILD_NUMBER= 43
Modified: head/java/openjdk7/distinfo
==============================================================================
--- head/java/openjdk7/distinfo Sun May 28 23:22:54 2017 (r441964)
+++ head/java/openjdk7/distinfo Mon May 29 04:16:00 2017 (r441965)
@@ -1,4 +1,4 @@
-TIMESTAMP = 1472019396
+TIMESTAMP = 1496029291
SHA256 (openjdk-7u40-fcs-src-b43-26_aug_2013.zip) = 00f8ea561876cbcad174ba3ca7a9ae10b50df46a782ac64c2ac57ac357b50596
SIZE (openjdk-7u40-fcs-src-b43-26_aug_2013.zip) = 104575196
SHA256 (apache-ant-1.9.7-bin.zip) = b28c5ea0b5ea90bb4ad6bab229b6a56ac4461760a251a12567803a69259cd9de
@@ -29,3 +29,7 @@ SHA256 (patch-7u101-b00.xz) = 8406d9f453
SIZE (patch-7u101-b00.xz) = 121752
SHA256 (patch-7u111-b01.xz) = d46ffd30a6fa6d8ce40231e6dadcabf491a347e2afea87302f38bab5e2bee523
SIZE (patch-7u111-b01.xz) = 273552
+SHA256 (patch-7u121-b00.xz) = e8cba92ab639210471db536fb316593eef300d67bbf36146922eef0a41b6e86b
+SIZE (patch-7u121-b00.xz) = 670484
+SHA256 (patch-7u131-b00.xz) = 5c7b4f9be1d7bc3336ba19c288c882ff5cbd1b1b0ee403f84229cd8807452024
+SIZE (patch-7u131-b00.xz) = 769172
Modified: head/java/openjdk7/files/patch-bsd
==============================================================================
--- head/java/openjdk7/files/patch-bsd Sun May 28 23:22:54 2017 (r441964)
+++ head/java/openjdk7/files/patch-bsd Mon May 29 04:16:00 2017 (r441965)
@@ -1,5 +1,5 @@
---- ./.hgtags Wed Jul 20 04:05:01 2016 +0100
-+++ ./.hgtags Sat Aug 20 11:56:17 2016 -0700
+--- ./.hgtags Fri Oct 28 03:35:31 2016 +0100
++++ ./.hgtags Sun May 21 11:12:34 2017 -0700
@@ -123,6 +123,7 @@
2d38c2a79c144c30cd04d143d83ee7ec6af40771 jdk7-b146
3ac30b3852876ccad6bd61697b5f9efa91ca7bc6 jdk7u1-b01
@@ -8,13 +8,13 @@
34451dc0580d5c95d97b95a564e6198f36545d68 jdk7u1-b02
bf735d852f79bdbb3373c777eec3ff27e035e7ba jdk7u1-b03
f66a2bada589f4157789e6f66472954d2f1c114e jdk7u1-b04
-@@ -605,3 +606,4 @@
- 251bb2a6d5cfbb76c0f4bdfecea4ca9c8af21558 jdk7u99-b00
- 12491db47c7ccffcc3e881df68f4c2f727b44e5d jdk7u101-b00
+@@ -607,3 +608,4 @@
bade1889699bab14082e84de3b40901964b52483 jdk7u111-b00
-+9b95c1ef81fe7bb010a6938d1cb97843b9a1fc68 jdk7u111-b01
---- ./corba/.hgtags Wed Jul 20 04:05:02 2016 +0100
-+++ ./corba/.hgtags Sat Aug 20 11:56:18 2016 -0700
+ 9b95c1ef81fe7bb010a6938d1cb97843b9a1fc68 jdk7u111-b01
+ 974935f4e21dae1170b5247a8af362617d105e1c jdk7u121-b00
++259e6ca7faf17e2b96fb0733f30e62327a7acdfa jdk7u131-b00
+--- ./corba/.hgtags Fri Oct 28 03:35:33 2016 +0100
++++ ./corba/.hgtags Sun May 21 11:12:35 2017 -0700
@@ -123,6 +123,7 @@
770227a4087e4e401fe87ccd19738440111c3948 jdk7-b146
36f0efbc66ef8ace3cca8aa8d0c88f3334080f8a jdk7u1-b01
@@ -23,13 +23,13 @@
9515a2d034b4727c11aeea36354a549fbc469c4f jdk7u1-b02
dd71cb354c573c1addcda269a7dd9144bfce9587 jdk7u1-b03
eaee830124aa453627591d8f9eccb39d7e040876 jdk7u1-b04
-@@ -607,3 +608,4 @@
- adda687205a9a40573fdb538240a5699fdc7dbd6 jdk7u99-b00
- 9c164195bcc97da6c6567e6e6d55ea349f1c583d jdk7u101-b00
+@@ -609,3 +610,4 @@
c1def4cc27fb92914168a5f65658eba4a1754dfe jdk7u111-b00
-+36715cc029596f86e977d486e547f62bb07eed74 jdk7u111-b01
---- ./hotspot/.hgtags Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/.hgtags Sat Aug 20 11:56:24 2016 -0700
+ 36715cc029596f86e977d486e547f62bb07eed74 jdk7u111-b01
+ ad3a33a23c69608ae140d4564d045b62533f45a3 jdk7u121-b00
++d93d13bcb01d7b635d0e021877e1102e34bae8fb jdk7u131-b00
+--- ./hotspot/.hgtags Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/.hgtags Sun May 21 11:12:48 2017 -0700
@@ -182,6 +182,7 @@
38fa55e5e79232d48f1bb8cf27d88bc094c9375a hs21-b16
81d815b05abb564aa1f4100ae13491c949b9a07e jdk7-b147
@@ -38,13 +38,13 @@
9b0ca45cd756d538c4c30afab280a91868eee1a5 jdk7u2-b01
0cc8a70952c368e06de2adab1f2649a408f5e577 jdk8-b01
31e253c1da429124bb87570ab095d9bc89850d0a jdk8-b02
-@@ -839,3 +840,4 @@
- 631da593499ee184ea8efb2bc5491e0d99ac636d jdk7u99-b00
- 6e42747134be8a4a366d337da1fc84a847ad8381 jdk7u101-b00
+@@ -841,3 +842,4 @@
14d0f4da4a74897fc3274f8f549f41544bb4625a jdk7u111-b00
-+9efa3fae3c278a7f48badec775d7f9b2d5320b6d jdk7u111-b01
---- ./hotspot/agent/src/os/bsd/ps_proc.c Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/agent/src/os/bsd/ps_proc.c Sat Aug 20 11:56:24 2016 -0700
+ 9efa3fae3c278a7f48badec775d7f9b2d5320b6d jdk7u111-b01
+ 17b40d99ea3665de2bfffe163b68f2dfcf675cba jdk7u121-b00
++95e4ea3d479ebdab9d78725776b6b11d4add6b0e jdk7u131-b00
+--- ./hotspot/agent/src/os/bsd/ps_proc.c Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/agent/src/os/bsd/ps_proc.c Sun May 21 11:12:48 2017 -0700
@@ -131,7 +131,7 @@
static bool ptrace_continue(pid_t pid, int signal) {
@@ -54,8 +54,8 @@
print_debug("ptrace(PTRACE_CONT, ..) failed for %d\n", pid);
return false;
}
---- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Sun May 21 11:12:48 2017 -0700
@@ -33,6 +33,7 @@
import sun.jvm.hotspot.debugger.remote.*;
import sun.jvm.hotspot.debugger.windbg.*;
@@ -64,8 +64,8 @@
import sun.jvm.hotspot.memory.*;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.runtime.*;
---- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java Sun May 21 11:12:48 2017 -0700
@@ -35,6 +35,7 @@
import sun.jvm.hotspot.debugger.windbg.*;
import sun.jvm.hotspot.debugger.linux.*;
@@ -74,8 +74,8 @@
import sun.jvm.hotspot.debugger.remote.*;
import sun.jvm.hotspot.livejvm.*;
import sun.jvm.hotspot.memory.*;
---- ./hotspot/make/bsd/Makefile Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/Makefile Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/Makefile Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/Makefile Sun May 21 11:12:48 2017 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -92,7 +92,7 @@
BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
#-------------------------------------------------------------------------------
-@@ -337,9 +339,11 @@
+@@ -349,9 +351,11 @@
# Doc target. This is the same for all build options.
# Hence create a docs directory beside ...$(ARCH)_[...]
@@ -105,8 +105,8 @@
# Synonyms for win32-like targets.
compiler2: jvmg product
---- ./hotspot/make/bsd/makefiles/build_vm_def.sh Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/build_vm_def.sh Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Sun May 21 11:12:48 2017 -0700
@@ -1,12 +1,28 @@
#!/bin/sh
@@ -142,8 +142,8 @@
+ if ($3 ~ /^_ZN9Arguments17SharedArchivePathE$/) print "\t" $3 ";"
+ }' | sort -u ;;
+esac
---- ./hotspot/make/bsd/makefiles/buildtree.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/buildtree.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/buildtree.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/buildtree.make Sun May 21 11:12:48 2017 -0700
@@ -255,6 +255,16 @@
echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
[ -n "$(CFLAGS_BROWSE)" ] && \
@@ -170,8 +170,8 @@
.dbxrc: $(BUILDTREE_MAKE)
@echo Creating $@ ...
---- ./hotspot/make/bsd/makefiles/gcc.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/gcc.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/gcc.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/gcc.make Sun May 21 11:12:48 2017 -0700
@@ -117,7 +117,10 @@
CFLAGS += -fno-rtti
CFLAGS += -fno-exceptions
@@ -197,8 +197,8 @@
endif
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
---- ./hotspot/make/bsd/makefiles/jsig.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/jsig.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/jsig.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/jsig.make Sun May 21 11:12:48 2017 -0700
@@ -36,9 +36,16 @@
LIBJSIG_G = lib$(JSIG_G).so
endif
@@ -251,8 +251,8 @@
$(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done"
.PHONY: install_jsig
---- ./hotspot/make/bsd/makefiles/launcher.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/launcher.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/launcher.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/launcher.make Sun May 21 11:12:48 2017 -0700
@@ -50,7 +50,7 @@
LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS)
else
@@ -262,15 +262,15 @@
# The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a
# freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting
---- ./hotspot/make/bsd/makefiles/mapfile-vers-product Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/mapfile-vers-product Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Sun May 21 11:12:48 2017 -0700
@@ -19,237 +19,248 @@
# 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.
+-#
+#
#
--#
-# Only used for OSX/Darwin builds
# Define public interface.
@@ -278,6 +278,13 @@
- _JNI_CreateJavaVM
- _JNI_GetCreatedJavaVMs
- _JNI_GetDefaultJavaVMInitArgs
++
++SUNWprivate_1.1 {
++ global:
++ # JNI
++ JNI_CreateJavaVM;
++ JNI_GetCreatedJavaVMs;
++ JNI_GetDefaultJavaVMInitArgs;
- # _JVM
- _JVM_Accept
@@ -490,13 +497,6 @@
- _JVM_Write
- _JVM_Yield
- _JVM_handle_bsd_signal
-+SUNWprivate_1.1 {
-+ global:
-+ # JNI
-+ JNI_CreateJavaVM;
-+ JNI_GetCreatedJavaVMs;
-+ JNI_GetDefaultJavaVMInitArgs;
-+
+ # JVM
+ JVM_Accept;
+ JVM_ActiveProcessorCount;
@@ -730,15 +730,16 @@
# This is for Forte Analyzer profiling support.
- _AsyncGetCallTrace
+ AsyncGetCallTrace;
-
-- # INSERT VTABLE SYMBOLS HERE
++
+ # INSERT VTABLE SYMBOLS HERE
+- # INSERT VTABLE SYMBOLS HERE
+-
+ local:
+ *;
+};
---- ./hotspot/make/bsd/makefiles/ppc.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/ppc.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/ppc.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/ppc.make Sun May 21 11:12:48 2017 -0700
@@ -28,3 +28,6 @@
# Must also specify if CPU is big endian
CFLAGS += -DVM_BIG_ENDIAN
@@ -746,8 +747,8 @@
+ifdef E500V2
+ASFLAGS += -Wa,-mspe -Wa,--defsym -Wa,E500V2=1
+endif
---- ./hotspot/make/bsd/makefiles/saproc.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/bsd/makefiles/saproc.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/bsd/makefiles/saproc.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/bsd/makefiles/saproc.make Sun May 21 11:12:48 2017 -0700
@@ -36,6 +36,11 @@
LIBSAPROC_G = lib$(SAPROC_G).so
endif
@@ -804,8 +805,8 @@
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
fi
---- ./hotspot/make/solaris/makefiles/defs.make Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/make/solaris/makefiles/defs.make Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/make/solaris/makefiles/defs.make Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/make/solaris/makefiles/defs.make Sun May 21 11:12:48 2017 -0700
@@ -221,8 +221,8 @@
endif
ifeq ($(JVM_VARIANT_CLIENT),true)
@@ -817,8 +818,8 @@
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
ifeq ($(ARCH_DATA_MODEL),32)
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
---- ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp Sun May 21 11:12:48 2017 -0700
@@ -71,7 +71,11 @@
define_pd_global(bool, RewriteBytecodes, true);
define_pd_global(bool, RewriteFrequentPairs, true);
@@ -832,7 +833,7 @@
// GC Ergo Flags
define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Sat Aug 20 11:56:24 2016 -0700
++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Sun May 21 11:12:48 2017 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -880,9 +881,17 @@
+ return false;
+}
+
---- ./hotspot/src/os/bsd/vm/os_bsd.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Sat Aug 20 11:56:24 2016 -0700
-@@ -187,6 +187,8 @@
+--- ./hotspot/src/os/bsd/vm/os_bsd.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Sun May 21 11:12:48 2017 -0700
+@@ -163,6 +163,7 @@
+ #endif
+ pthread_t os::Bsd::_main_thread;
+ int os::Bsd::_page_size = -1;
++pthread_condattr_t os::Bsd::_condattr[1];
+ #ifndef _ALLBSD_SOURCE
+ bool os::Bsd::_is_floating_stack = false;
+ bool os::Bsd::_is_NPTL = false;
+@@ -187,6 +188,8 @@
static int SR_signum = SIGUSR2;
sigset_t SR_sigset;
@@ -891,7 +900,7 @@
////////////////////////////////////////////////////////////////////////////////
// utility functions
-@@ -355,7 +357,13 @@
+@@ -355,7 +358,13 @@
* since it returns a 64 bit value)
*/
mib[0] = CTL_HW;
@@ -905,7 +914,28 @@
len = sizeof(mem_val);
if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1) {
assert(len == sizeof(mem_val), "unexpected data size");
-@@ -1848,9 +1856,15 @@
+@@ -1625,7 +1634,10 @@
+ ::clock_gettime(CLOCK_MONOTONIC, &tp) == 0) {
+ // yes, monotonic clock is supported
+ _clock_gettime = ::clock_gettime;
+- }
++ return;
++ }
++ warning("No monotonic clock was available - timed services may " \
++ "be adversely affected if the time-of-day clock changes");
+ }
+ #else
+ void os::Bsd::clock_init() {
+@@ -1711,7 +1723,7 @@
+ jlong os::javaTimeNanos() {
+ if (Bsd::supports_monotonic_clock()) {
+ struct timespec tp;
+- int status = Bsd::clock_gettime(CLOCK_MONOTONIC, &tp);
++ int status = ::clock_gettime(CLOCK_MONOTONIC, &tp);
+ assert(status == 0, "gettime error");
+ jlong result = jlong(tp.tv_sec) * (1000 * 1000 * 1000) + jlong(tp.tv_nsec);
+ return result;
+@@ -1848,9 +1860,15 @@
return n;
}
@@ -921,7 +951,7 @@
#else
return (intx)::pthread_self();
#endif
-@@ -2401,14 +2415,14 @@
+@@ -2401,14 +2419,14 @@
}
void os::print_os_info_brief(outputStream* st) {
@@ -938,7 +968,7 @@
os::Posix::print_uname_info(st);
-@@ -2417,10 +2431,6 @@
+@@ -2417,10 +2435,6 @@
os::Posix::print_load_average(st);
}
@@ -949,7 +979,7 @@
void os::print_memory_info(outputStream* st) {
st->print("Memory:");
-@@ -2437,6 +2447,7 @@
+@@ -2437,6 +2451,7 @@
st->print("(" UINT64_FORMAT "k free)",
os::available_memory() >> 10);
#ifndef _ALLBSD_SOURCE
@@ -957,7 +987,7 @@
st->print(", swap " UINT64_FORMAT "k",
((jlong)si.totalswap * si.mem_unit) >> 10);
st->print("(" UINT64_FORMAT "k free)",
-@@ -2444,12 +2455,22 @@
+@@ -2444,12 +2459,22 @@
#endif
st->cr();
@@ -980,7 +1010,7 @@
// Taken from /usr/include/bits/siginfo.h Supposed to be architecture specific
// but they're the same for all the bsd arch that we support
// and they're the same for solaris but there's no common place to put this.
-@@ -2596,6 +2617,25 @@
+@@ -2596,6 +2621,25 @@
assert(len < buflen, "Ran out of buffer space");
jrelib_p = buf + len;
@@ -1006,7 +1036,7 @@
// Add the appropriate library subdir
snprintf(jrelib_p, buflen-len, "/jre/lib");
if (0 != access(buf, F_OK)) {
-@@ -2625,6 +2665,7 @@
+@@ -2625,6 +2669,7 @@
if (rp == NULL)
return;
}
@@ -1014,7 +1044,7 @@
}
}
}
-@@ -2728,10 +2769,14 @@
+@@ -2728,10 +2773,14 @@
bool timedwait(unsigned int sec, int nsec);
private:
jlong currenttime() const;
@@ -1030,7 +1060,7 @@
SEM_INIT(_semaphore, 0);
}
-@@ -2796,7 +2841,7 @@
+@@ -2796,7 +2845,7 @@
bool Semaphore::timedwait(unsigned int sec, int nsec) {
struct timespec ts;
@@ -1039,7 +1069,7 @@
while (1) {
int result = sem_timedwait(&_semaphore, &ts);
-@@ -3017,7 +3062,11 @@
+@@ -3017,7 +3066,11 @@
}
void os::pd_free_memory(char *addr, size_t bytes, size_t alignment_hint) {
@@ -1051,7 +1081,7 @@
}
void os::numa_make_global(char *addr, size_t bytes) {
-@@ -3864,6 +3913,7 @@
+@@ -3864,6 +3917,7 @@
return OS_OK;
#elif defined(__FreeBSD__)
int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri);
@@ -1059,9 +1089,239 @@
#elif defined(__APPLE__) || defined(__NetBSD__)
struct sched_param sp;
int policy;
---- ./hotspot/src/os/bsd/vm/os_bsd.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os/bsd/vm/os_bsd.hpp Sat Aug 20 11:56:24 2016 -0700
-@@ -103,6 +103,12 @@
+@@ -4718,6 +4772,25 @@
+ Bsd::clock_init();
+ initial_time_count = os::elapsed_counter();
+
++ // pthread_condattr initialization for monotonic clock
++ int status;
++ pthread_condattr_t* _condattr = os::Bsd::condAttr();
++ if ((status = pthread_condattr_init(_condattr)) != 0) {
++ fatal(err_msg("pthread_condattr_init: %s", strerror(status)));
++ }
++ // Only set the clock if CLOCK_MONOTONIC is available
++ if (Bsd::supports_monotonic_clock()) {
++ if ((status = pthread_condattr_setclock(_condattr, CLOCK_MONOTONIC)) != 0) {
++ if (status == EINVAL) {
++ warning("Unable to use monotonic clock with relative timed-waits" \
++ " - changes to the time-of-day clock may have adverse affects");
++ } else {
++ fatal(err_msg("pthread_condattr_setclock: %s", strerror(status)));
++ }
++ }
++ }
++ // else it defaults to CLOCK_REALTIME
++
+ #ifdef __APPLE__
+ // XXXDARWIN
+ // Work around the unaligned VM callbacks in hotspot's
+@@ -5638,21 +5711,36 @@
+
+ static struct timespec* compute_abstime(struct timespec* abstime, jlong millis) {
+ if (millis < 0) millis = 0;
+- struct timeval now;
+- int status = gettimeofday(&now, NULL);
+- assert(status == 0, "gettimeofday");
++
+ jlong seconds = millis / 1000;
+ millis %= 1000;
+ if (seconds > 50000000) { // see man cond_timedwait(3T)
+ seconds = 50000000;
+ }
+- abstime->tv_sec = now.tv_sec + seconds;
+- long usec = now.tv_usec + millis * 1000;
+- if (usec >= 1000000) {
+- abstime->tv_sec += 1;
+- usec -= 1000000;
+- }
+- abstime->tv_nsec = usec * 1000;
++
++ if (os::Bsd::supports_monotonic_clock()) {
++ struct timespec now;
++ int status = ::clock_gettime(CLOCK_MONOTONIC, &now);
++ assert_status(status == 0, status, "clock_gettime");
++ abstime->tv_sec = now.tv_sec + seconds;
++ long nanos = now.tv_nsec + millis * NANOSECS_PER_MILLISEC;
++ if (nanos >= NANOSECS_PER_SEC) {
++ abstime->tv_sec += 1;
++ nanos -= NANOSECS_PER_SEC;
++ }
++ abstime->tv_nsec = nanos;
++ } else {
++ struct timeval now;
++ int status = gettimeofday(&now, NULL);
++ assert(status == 0, "gettimeofday");
++ abstime->tv_sec = now.tv_sec + seconds;
++ long usec = now.tv_usec + millis * 1000;
++ if (usec >= 1000000) {
++ abstime->tv_sec += 1;
++ usec -= 1000000;
++ }
++ abstime->tv_nsec = usec * 1000;
++ }
+ return abstime;
+ }
+
+@@ -5744,7 +5832,7 @@
+ status = os::Bsd::safe_cond_timedwait(_cond, _mutex, &abst);
+ if (status != 0 && WorkAroundNPTLTimedWaitHang) {
+ pthread_cond_destroy (_cond);
+- pthread_cond_init (_cond, NULL) ;
++ pthread_cond_init (_cond, os::Bsd::condAttr()) ;
+ }
+ assert_status(status == 0 || status == EINTR ||
+ status == ETIMEDOUT,
+@@ -5845,32 +5933,50 @@
+
+ static void unpackTime(struct timespec* absTime, bool isAbsolute, jlong time) {
+ assert (time > 0, "convertTime");
+-
+- struct timeval now;
+- int status = gettimeofday(&now, NULL);
+- assert(status == 0, "gettimeofday");
+-
+- time_t max_secs = now.tv_sec + MAX_SECS;
+-
+- if (isAbsolute) {
+- jlong secs = time / 1000;
+- if (secs > max_secs) {
+- absTime->tv_sec = max_secs;
++ time_t max_secs = 0;
++
++ if (!os::Bsd::supports_monotonic_clock() || isAbsolute) {
++ struct timeval now;
++ int status = gettimeofday(&now, NULL);
++ assert(status == 0, "gettimeofday");
++
++ max_secs = now.tv_sec + MAX_SECS;
++
++ if (isAbsolute) {
++ jlong secs = time / 1000;
++ if (secs > max_secs) {
++ absTime->tv_sec = max_secs;
++ } else {
++ absTime->tv_sec = secs;
++ }
++ absTime->tv_nsec = (time % 1000) * NANOSECS_PER_MILLISEC;
++ } else {
++ jlong secs = time / NANOSECS_PER_SEC;
++ if (secs >= MAX_SECS) {
++ absTime->tv_sec = max_secs;
++ absTime->tv_nsec = 0;
++ } else {
++ absTime->tv_sec = now.tv_sec + secs;
++ absTime->tv_nsec = (time % NANOSECS_PER_SEC) + now.tv_usec*1000;
++ if (absTime->tv_nsec >= NANOSECS_PER_SEC) {
++ absTime->tv_nsec -= NANOSECS_PER_SEC;
++ ++absTime->tv_sec; // note: this must be <= max_secs
++ }
++ }
+ }
+- else {
+- absTime->tv_sec = secs;
+- }
+- absTime->tv_nsec = (time % 1000) * NANOSECS_PER_MILLISEC;
+- }
+- else {
++ } else {
++ // must be relative using monotonic clock
++ struct timespec now;
++ int status = ::clock_gettime(CLOCK_MONOTONIC, &now);
++ assert_status(status == 0, status, "clock_gettime");
++ max_secs = now.tv_sec + MAX_SECS;
+ jlong secs = time / NANOSECS_PER_SEC;
+ if (secs >= MAX_SECS) {
+ absTime->tv_sec = max_secs;
+ absTime->tv_nsec = 0;
+- }
+- else {
++ } else {
+ absTime->tv_sec = now.tv_sec + secs;
+- absTime->tv_nsec = (time % NANOSECS_PER_SEC) + now.tv_usec*1000;
++ absTime->tv_nsec = (time % NANOSECS_PER_SEC) + now.tv_nsec;
+ if (absTime->tv_nsec >= NANOSECS_PER_SEC) {
+ absTime->tv_nsec -= NANOSECS_PER_SEC;
+ ++absTime->tv_sec; // note: this must be <= max_secs
+@@ -5950,15 +6056,19 @@
+ jt->set_suspend_equivalent();
+ // cleared by handle_special_suspend_equivalent_condition() or java_suspend_self()
+
++ assert(_cur_index == -1, "invariant");
+ if (time == 0) {
+- status = pthread_cond_wait (_cond, _mutex) ;
++ _cur_index = REL_INDEX; // arbitrary choice when not timed
++ status = pthread_cond_wait (&_cond[_cur_index], _mutex) ;
+ } else {
+- status = os::Bsd::safe_cond_timedwait (_cond, _mutex, &absTime) ;
++ _cur_index = isAbsolute ? ABS_INDEX : REL_INDEX;
++ status = os::Bsd::safe_cond_timedwait (&_cond[_cur_index], _mutex, &absTime) ;
+ if (status != 0 && WorkAroundNPTLTimedWaitHang) {
+- pthread_cond_destroy (_cond) ;
+- pthread_cond_init (_cond, NULL);
++ pthread_cond_destroy (&_cond[_cur_index]) ;
++ pthread_cond_init (&_cond[_cur_index], isAbsolute ? NULL : os::Bsd::condAttr());
+ }
+ }
++ _cur_index = -1;
+ assert_status(status == 0 || status == EINTR ||
+ status == ETIMEDOUT,
+ status, "cond_timedwait");
+@@ -5987,17 +6097,26 @@
+ s = _counter;
+ _counter = 1;
+ if (s < 1) {
+- if (WorkAroundNPTLTimedWaitHang) {
+- status = pthread_cond_signal (_cond) ;
+- assert (status == 0, "invariant") ;
++ // thread might be parked
++ if (_cur_index != -1) {
++ // thread is definitely parked
++ if (WorkAroundNPTLTimedWaitHang) {
++ status = pthread_cond_signal (&_cond[_cur_index]);
++ assert (status == 0, "invariant");
+ status = pthread_mutex_unlock(_mutex);
+- assert (status == 0, "invariant") ;
+- } else {
++ assert (status == 0, "invariant");
++ } else {
++ // must capture correct index before unlocking
++ int index = _cur_index;
+ status = pthread_mutex_unlock(_mutex);
+- assert (status == 0, "invariant") ;
+- status = pthread_cond_signal (_cond) ;
+- assert (status == 0, "invariant") ;
+- }
++ assert (status == 0, "invariant");
++ status = pthread_cond_signal (&_cond[index]);
++ assert (status == 0, "invariant");
++ }
++ } else {
++ pthread_mutex_unlock(_mutex);
++ assert (status == 0, "invariant") ;
++ }
+ } else {
+ pthread_mutex_unlock(_mutex);
+ assert (status == 0, "invariant") ;
+--- ./hotspot/src/os/bsd/vm/os_bsd.hpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os/bsd/vm/os_bsd.hpp Sun May 21 11:12:48 2017 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2013, 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
+@@ -27,6 +27,9 @@
+
+ // Bsd_OS defines the interface to Bsd operating systems
+
++// Information about the protection of the page at address '0' on this os.
++static bool zero_page_read_protected() { return true; }
++
+ /* pthread_getattr_np comes with BsdThreads-0.9-7 on RedHat 7.1 */
+ typedef int (*pthread_getattr_func_type) (pthread_t, pthread_attr_t *);
+
+@@ -103,6 +106,12 @@
static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
@@ -1074,8 +1334,69 @@
public:
static void init_thread_fpu_state();
---- ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp Sat Aug 20 11:56:24 2016 -0700
+@@ -222,6 +231,13 @@
+ static jlong fast_thread_cpu_time(clockid_t clockid);
+ #endif
+
++ // pthread_cond clock suppport
++ private:
++ static pthread_condattr_t _condattr[1];
++
++ public:
++ static pthread_condattr_t* condAttr() { return _condattr; }
++
+ // Stack repair handling
+
+ // none present
+@@ -287,7 +303,7 @@
+ public:
+ PlatformEvent() {
+ int status;
+- status = pthread_cond_init (_cond, NULL);
++ status = pthread_cond_init (_cond, os::Bsd::condAttr());
+ assert_status(status == 0, status, "cond_init");
+ status = pthread_mutex_init (_mutex, NULL);
+ assert_status(status == 0, status, "mutex_init");
+@@ -302,14 +318,19 @@
+ void park () ;
+ void unpark () ;
+ int TryPark () ;
+- int park (jlong millis) ;
++ int park (jlong millis) ; // relative timed-wait only
+ void SetAssociation (Thread * a) { _Assoc = a ; }
+ };
+
+ class PlatformParker : public CHeapObj<mtInternal> {
+ protected:
++ enum {
++ REL_INDEX = 0,
++ ABS_INDEX = 1
++ };
++ int _cur_index; // which cond is in use: -1, 0, 1
+ pthread_mutex_t _mutex [1] ;
+- pthread_cond_t _cond [1] ;
++ pthread_cond_t _cond [2] ; // one for relative times and one for abs.
+
+ public: // TODO-FIXME: make dtor private
+ ~PlatformParker() { guarantee (0, "invariant") ; }
+@@ -317,10 +338,13 @@
+ public:
+ PlatformParker() {
+ int status;
+- status = pthread_cond_init (_cond, NULL);
+- assert_status(status == 0, status, "cond_init");
++ status = pthread_cond_init (&_cond[REL_INDEX], os::Bsd::condAttr());
++ assert_status(status == 0, status, "cond_init rel");
++ status = pthread_cond_init (&_cond[ABS_INDEX], NULL);
++ assert_status(status == 0, status, "cond_init abs");
+ status = pthread_mutex_init (_mutex, NULL);
+ assert_status(status == 0, status, "mutex_init");
++ _cur_index = -1; // mark as unused
+ }
+ };
+
+--- ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp Sun May 21 11:12:48 2017 -0700
@@ -31,10 +31,22 @@
# include "atomic_bsd_x86.inline.hpp"
# include "orderAccess_bsd_x86.inline.hpp"
@@ -1099,8 +1420,8 @@
// System includes
---- ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Sun May 21 11:12:48 2017 -0700
@@ -34,11 +34,26 @@
# include "orderAccess_bsd_x86.inline.hpp"
# include "prefetch_bsd_x86.inline.hpp"
@@ -1128,9 +1449,9 @@
// Contains inlined functions for class Thread and ThreadLocalStorage
---- ./hotspot/src/os/posix/vm/os_posix.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os/posix/vm/os_posix.cpp Sat Aug 20 11:56:24 2016 -0700
-@@ -175,11 +175,19 @@
+--- ./hotspot/src/os/posix/vm/os_posix.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os/posix/vm/os_posix.cpp Sun May 21 11:12:48 2017 -0700
+@@ -183,11 +183,19 @@
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%d", rlim.rlim_cur);
@@ -1150,8 +1471,8 @@
}
void os::Posix::print_uname_info(outputStream* st) {
---- ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Sun May 21 11:12:48 2017 -0700
@@ -945,7 +945,7 @@
if (rslt != 0)
fatal(err_msg("pthread_stackseg_np failed with err = %d", rslt));
@@ -1161,8 +1482,8 @@
*size = ss.ss_size;
#elif defined(_ALLBSD_SOURCE)
pthread_attr_t attr;
---- ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp Sun May 21 11:12:48 2017 -0700
@@ -24,7 +24,7 @@
*/
@@ -1172,28 +1493,8 @@
# include <pthread_np.h> /* For pthread_attr_get_np */
#endif
---- ./hotspot/src/share/vm/code/relocInfo.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/code/relocInfo.hpp Sat Aug 20 11:56:24 2016 -0700
-@@ -371,7 +371,7 @@
- // "immediate" in the prefix header word itself. This optimization
- // is invisible outside this module.)
-
-- inline friend relocInfo prefix_relocInfo(int datalen = 0);
-+ inline friend relocInfo prefix_relocInfo(int datalen);
-
- protected:
- // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value
-@@ -466,7 +466,7 @@
- return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit);
- }
-
--inline relocInfo prefix_relocInfo(int datalen) {
-+inline relocInfo prefix_relocInfo(int datalen = 0) {
- assert(relocInfo::fits_into_immediate(datalen), "datalen in limits");
- return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen);
- }
---- ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Sun May 21 11:12:48 2017 -0700
@@ -111,7 +111,7 @@
if (e.should_commit()) {
e.set_gcId(_shared_gc_info.id());
@@ -1203,9 +1504,81 @@
e.commit();
}
}
---- ./hotspot/src/share/vm/runtime/atomic.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/runtime/atomic.cpp Sat Aug 20 11:56:24 2016 -0700
-@@ -54,6 +54,12 @@
+--- ./hotspot/src/share/vm/opto/lcm.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/opto/lcm.cpp Sun May 21 11:12:48 2017 -0700
+@@ -57,25 +57,40 @@
+ // Check whether val is not-null-decoded compressed oop,
+ // i.e. will grab into the base of the heap if it represents NULL.
+ static bool accesses_heap_base_zone(Node *val) {
+- if (UseCompressedOops && Universe::narrow_oop_base() > 0) {
++ if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops.
+ if (val && val->is_Mach()) {
+- if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) {
+- // This assumes all Decodes with TypePtr::NotNull are matched to nodes that
+- // decode NULL to point to the heap base (Decode_NN).
+- if (val->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull) {
+- return true;
+- }
++ if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) {
++ // This assumes all Decodes with TypePtr::NotNull are matched to nodes that
++ // decode NULL to point to the heap base (Decode_NN).
++ if (val->bottom_type()->is_oopptr()->ptr() == TypePtr::NotNull) {
++ return true;
+ }
+- // Must recognize load operation with Decode matched in memory operand.
+- // We should not reach here, as os::zero_page_read_protected()
+- // returns true everywhere exept for AIX. On AIX, no such memory operands
+- // exist.
+- NOT_AIX(Unimplemented());
+ }
++ // Must recognize load operation with Decode matched in memory operand.
++ // We should not reach here exept for PPC/AIX, as os::zero_page_read_protected()
++ // returns true everywhere else. On PPC, no such memory operands
++ // exist, therefore we did not yet implement a check for such operands.
++ NOT_AIX(Unimplemented());
++ }
+ }
+ return false;
+ }
+
++static bool needs_explicit_null_check_for_read(Node *val) {
++ // On some OSes (AIX) the page at address 0 is only write protected.
++ // If so, only Store operations will trap.
++ if (os::zero_page_read_protected()) {
++ return false; // Implicit null check will work.
++ }
++ // Also a read accessing the base of a heap-based compressed heap will trap.
++ if (accesses_heap_base_zone(val) && // Hits the base zone page.
++ Universe::narrow_oop_use_implicit_null_checks()) { // Base zone page is protected.
++ return false;
++ }
++
++ return true;
++}
++
+ //------------------------------implicit_null_check----------------------------
+ // Detect implicit-null-check opportunities. Basically, find NULL checks
+ // with suitable memory ops nearby. Use the memory op to do the NULL check.
+@@ -233,14 +248,8 @@
+ // On some OSes (AIX) the page at address 0 is only write protected.
+ // If so, only Store operations will trap.
+ // But a read accessing the base of a heap-based compressed heap will trap.
+- if (!was_store && !os::zero_page_read_protected()) {
+- if (!(accesses_heap_base_zone(val) && // Hits the base zone page.
+- Universe::narrow_oop_use_implicit_null_checks())) { // Page is protected.
+- continue;
+- } else {
+- tty->print("Found load accessing heap base on AIX\n");
+- Unimplemented();
+- }
++ if (!was_store && needs_explicit_null_check_for_read(val)) {
++ continue;
+ }
+
+ // check if the offset is not too high for implicit exception
+--- ./hotspot/src/share/vm/runtime/atomic.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/runtime/atomic.cpp Sun May 21 11:12:48 2017 -0700
+@@ -57,6 +57,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "atomic_windows_x86.inline.hpp"
#endif
@@ -1218,9 +1591,9 @@
#ifdef TARGET_OS_ARCH_linux_arm
# include "atomic_linux_arm.inline.hpp"
#endif
---- ./hotspot/src/share/vm/runtime/objectMonitor.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/runtime/objectMonitor.cpp Sat Aug 20 11:56:24 2016 -0700
-@@ -1744,7 +1744,7 @@
+--- ./hotspot/src/share/vm/runtime/objectMonitor.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/runtime/objectMonitor.cpp Sun May 21 11:12:48 2017 -0700
+@@ -1740,7 +1740,7 @@
}
iterator->_notified = 1 ;
Thread * Self = THREAD;
@@ -1229,7 +1602,7 @@
ObjectWaiter * List = _EntryList ;
if (List != NULL) {
-@@ -1870,7 +1870,7 @@
+@@ -1866,7 +1866,7 @@
guarantee (iterator->_notified == 0, "invariant") ;
iterator->_notified = 1 ;
Thread * Self = THREAD;
@@ -1238,9 +1611,9 @@
if (Policy != 4) {
iterator->TState = ObjectWaiter::TS_ENTER ;
}
---- ./hotspot/src/share/vm/runtime/os.cpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/runtime/os.cpp Sat Aug 20 11:56:24 2016 -0700
-@@ -399,13 +399,6 @@
+--- ./hotspot/src/share/vm/runtime/os.cpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/runtime/os.cpp Sun May 21 11:12:48 2017 -0700
+@@ -403,13 +403,6 @@
if (_native_java_library == NULL) {
vm_exit_during_initialization("Unable to load native library", ebuf);
}
@@ -1254,8 +1627,8 @@
}
static jboolean onLoaded = JNI_FALSE;
if (onLoaded) {
---- ./hotspot/src/share/vm/runtime/os.hpp Wed Jul 20 04:05:08 2016 +0100
-+++ ./hotspot/src/share/vm/runtime/os.hpp Sat Aug 20 11:56:24 2016 -0700
+--- ./hotspot/src/share/vm/runtime/os.hpp Wed Jan 18 01:08:41 2017 +0000
++++ ./hotspot/src/share/vm/runtime/os.hpp Sun May 21 11:12:48 2017 -0700
@@ -30,6 +30,9 @@
#include "runtime/extendedPC.hpp"
#include "runtime/handles.hpp"
@@ -1266,8 +1639,8 @@
#ifdef TARGET_OS_FAMILY_linux
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-ports-all
mailing list