sync with rhel7
This commit is contained in:
parent
c2cceb304c
commit
d904612421
@ -1,23 +0,0 @@
|
||||
--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12 2013 -0700
|
||||
+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33 2013 +0000
|
||||
@@ -4797,9 +4797,19 @@
|
||||
// size. Add a page for compiler2 recursion in main thread.
|
||||
// Add in 2*BytesPerWord times page size to account for VM stack during
|
||||
// class initialization depending on 32 or 64 bit VM.
|
||||
+
|
||||
+
|
||||
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
|
||||
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
|
||||
- (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
|
||||
+ (2*BytesPerWord COMPILER2_PRESENT(+1))
|
||||
+ *
|
||||
+#ifdef PPC
|
||||
+ NOT_ZERO ( Linux::vm_default_page_size() )
|
||||
+ ZERO_ONLY ( Linux::page_size() )
|
||||
+#else
|
||||
+ ( Linux::vm_default_page_size() )
|
||||
+#endif
|
||||
+ );
|
||||
|
||||
size_t threadStackSizeInBytes = ThreadStackSize * K;
|
||||
if (threadStackSizeInBytes != 0 &&
|
45
atomic_linux_zero.inline.hpp.patch
Normal file
45
atomic_linux_zero.inline.hpp.patch
Normal file
@ -0,0 +1,45 @@
|
||||
diff --git a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
|
||||
--- jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
|
||||
+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
|
||||
@@ -222,31 +222,35 @@
|
||||
|
||||
inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) {
|
||||
#ifdef ARM
|
||||
- return arm_lock_test_and_set(dest, exchange_value);
|
||||
+ jint result = arm_lock_test_and_set(dest, exchange_value);
|
||||
#else
|
||||
#ifdef M68K
|
||||
- return m68k_lock_test_and_set(dest, exchange_value);
|
||||
+ jint result = m68k_lock_test_and_set(dest, exchange_value);
|
||||
#else
|
||||
// __sync_lock_test_and_set is a bizarrely named atomic exchange
|
||||
// operation. Note that some platforms only support this with the
|
||||
// limitation that the only valid value to store is the immediate
|
||||
// constant 1. There is a test for this in JNI_CreateJavaVM().
|
||||
- return __sync_lock_test_and_set (dest, exchange_value);
|
||||
+ jint result = __sync_lock_test_and_set (dest, exchange_value);
|
||||
+ __sync_synchronize();
|
||||
#endif // M68K
|
||||
#endif // ARM
|
||||
+ return result;
|
||||
}
|
||||
|
||||
inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value,
|
||||
volatile intptr_t* dest) {
|
||||
#ifdef ARM
|
||||
- return arm_lock_test_and_set(dest, exchange_value);
|
||||
+ intptr_t result = arm_lock_test_and_set(dest, exchange_value);
|
||||
#else
|
||||
#ifdef M68K
|
||||
- return m68k_lock_test_and_set(dest, exchange_value);
|
||||
+ intptr_t result = m68k_lock_test_and_set(dest, exchange_value);
|
||||
#else
|
||||
- return __sync_lock_test_and_set (dest, exchange_value);
|
||||
+ intptr_t result = __sync_lock_test_and_set (dest, exchange_value);
|
||||
+ __sync_synchronize();
|
||||
#endif // M68K
|
||||
#endif // ARM
|
||||
+ return result;
|
||||
}
|
||||
|
||||
inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) {
|
13
fix_ZERO_ARCHDEF_ppc.patch
Normal file
13
fix_ZERO_ARCHDEF_ppc.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
|
||||
--- jdk8/common/autoconf/platform.m4
|
||||
+++ jdk8/common/autoconf/platform.m4
|
||||
@@ -367,7 +367,8 @@
|
||||
|
||||
# ZERO_ARCHDEF is used to enable architecture-specific code
|
||||
case "${OPENJDK_TARGET_CPU}" in
|
||||
- ppc*) ZERO_ARCHDEF=PPC ;;
|
||||
+ ppc) ZERO_ARCHDEF=PPC32 ;;
|
||||
+ ppc64) ZERO_ARCHDEF=PPC64 ;;
|
||||
s390*) ZERO_ARCHDEF=S390 ;;
|
||||
sparc*) ZERO_ARCHDEF=SPARC ;;
|
||||
x86_64*) ZERO_ARCHDEF=AMD64 ;;
|
@ -1,18 +0,0 @@
|
||||
diff -up jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
|
||||
--- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 2013-02-22 19:02:06.000000000 +0100
|
||||
+++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2013-04-18 16:21:24.897403406 +0200
|
||||
@@ -32,11 +32,11 @@
|
||||
//
|
||||
|
||||
define_pd_global(bool, DontYieldALot, false);
|
||||
-define_pd_global(intx, ThreadStackSize, 1536);
|
||||
+define_pd_global(intx, ThreadStackSize, 1664);
|
||||
#ifdef _LP64
|
||||
-define_pd_global(intx, VMThreadStackSize, 1024);
|
||||
+define_pd_global(intx, VMThreadStackSize, 1664);
|
||||
#else
|
||||
-define_pd_global(intx, VMThreadStackSize, 512);
|
||||
+define_pd_global(intx, VMThreadStackSize, 1152);
|
||||
#endif // _LP64
|
||||
define_pd_global(intx, CompilerThreadStackSize, 0);
|
||||
define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
|
@ -123,7 +123,7 @@
|
||||
|
||||
Name: java-%{javaver}-%{origin}
|
||||
Version: %{javaver}.%{updatever}
|
||||
Release: 9.%{buildver}%{?dist}
|
||||
Release: 10.%{buildver}%{?dist}
|
||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
|
||||
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
||||
# also included the epoch in their virtual provides. This created a
|
||||
@ -177,8 +177,6 @@ Source101: config.sub
|
||||
# Ignore AWTError when assistive technologies are loaded
|
||||
Patch1: %{name}-accessible-toolkit.patch
|
||||
|
||||
# RHBZ 1015432
|
||||
Patch2: 1015432.patch
|
||||
# Restrict access to java-atk-wrapper classes
|
||||
Patch3: java-atk-wrapper-security.patch
|
||||
# RHBZ 808293
|
||||
@ -195,23 +193,22 @@ Patch11: hotspot-build-j-directive.patch
|
||||
#
|
||||
# OpenJDK specific patches
|
||||
#
|
||||
Patch666: stackoverflow-ppc32_64-20140828.patch
|
||||
|
||||
|
||||
# JVM heap size changes for s390 (thanks to aph)
|
||||
Patch100: %{name}-s390-java-opts.patch
|
||||
# Type fixing for s390
|
||||
Patch102: %{name}-size_t.patch
|
||||
|
||||
# Patch for PPC/PPC64
|
||||
Patch103: %{name}-ppc-zero-hotspot.patch
|
||||
|
||||
Patch201: system-libjpeg.patch
|
||||
Patch202: system-libpng.patch
|
||||
Patch203: system-lcms.patch
|
||||
|
||||
Patch300: jstack-pr1845.patch
|
||||
|
||||
Patch400: ppc_stack_overflow_fix.patch
|
||||
Patch401: fix_ZERO_ARCHDEF_ppc.patch
|
||||
Patch402: atomic_linux_zero.inline.hpp.patch
|
||||
|
||||
Patch9999: enableArm64.patch
|
||||
|
||||
BuildRequires: autoconf
|
||||
@ -444,16 +441,11 @@ sh %{SOURCE12}
|
||||
%patch9999
|
||||
%endif
|
||||
|
||||
%ifnarch %{aarch64}
|
||||
%patch666
|
||||
%endif
|
||||
|
||||
%patch201
|
||||
%patch202
|
||||
%patch203
|
||||
|
||||
%patch1
|
||||
#%%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
@ -467,10 +459,11 @@ sh %{SOURCE12}
|
||||
%patch102
|
||||
%endif
|
||||
|
||||
%ifarch ppc %{power64}
|
||||
# PPC fixes
|
||||
%patch103
|
||||
%endif
|
||||
# Zero PPC fixes.
|
||||
# TODO: propose them upstream
|
||||
%patch400
|
||||
%patch401
|
||||
%patch402
|
||||
|
||||
# Extract systemtap tapsets
|
||||
%if %{with_systemtap}
|
||||
@ -517,7 +510,13 @@ export ARCH_DATA_MODEL=64
|
||||
export CFLAGS="$CFLAGS -mieee"
|
||||
%endif
|
||||
|
||||
export CFLAGS="$CFLAGS -fstack-protector-strong"
|
||||
EXTRA_CFLAGS="-fstack-protector-strong"
|
||||
# PPC/PPC64 needs -fno-tree-vectorize since -O3 would
|
||||
# otherwise generate wrong code producing segfaults.
|
||||
%ifarch %{power64} ppc
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-tree-vectorize"
|
||||
%endif
|
||||
export EXTRA_CFLAGS
|
||||
|
||||
(cd jdk8/common/autoconf
|
||||
bash ./autogen.sh
|
||||
@ -550,9 +549,10 @@ bash ../../configure \
|
||||
--with-libpng=system \
|
||||
--with-lcms=system \
|
||||
--with-stdc++lib=dynamic \
|
||||
--with-num-cores="$NUM_PROC" \
|
||||
--with-extra-cflags="-fno-devirtualize" \
|
||||
--with-extra-cxxflags="-fno-devirtualize"
|
||||
--with-extra-cxxflags="-fno-devirtualize" \
|
||||
--with-extra-cflags="$EXTRA_CFLAGS" \
|
||||
--with-num-cores="$NUM_PROC"
|
||||
|
||||
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
|
||||
# disables FDS for all build configs and reverts to pre-FDS make logic.
|
||||
@ -1326,6 +1326,9 @@ exit 0
|
||||
%{_jvmdir}/%{jredir}/lib/accessibility.properties
|
||||
|
||||
%changelog
|
||||
* Thu Sep 25 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.20-10.b26
|
||||
- sync with rhel7
|
||||
|
||||
* Wed Sep 17 2014 Omair Majid <omajid@redhat.com> - 1:1.8.0.20-9.b26
|
||||
- Remove LIBDIR and funny definition of _libdir.
|
||||
- Fix rpmlint warnings about macros in comments.
|
||||
|
48
ppc_stack_overflow_fix.patch
Normal file
48
ppc_stack_overflow_fix.patch
Normal file
@ -0,0 +1,48 @@
|
||||
diff --git a/src/cpu/zero/vm/stack_zero.hpp b/src/cpu/zero/vm/stack_zero.hpp
|
||||
--- jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
|
||||
+++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.hpp
|
||||
@@ -99,7 +99,7 @@
|
||||
int shadow_pages_size() const {
|
||||
return _shadow_pages_size;
|
||||
}
|
||||
- int abi_stack_available(Thread *thread) const;
|
||||
+ ssize_t abi_stack_available(Thread *thread) const;
|
||||
|
||||
public:
|
||||
void overflow_check(int required_words, TRAPS);
|
||||
diff --git a/src/cpu/zero/vm/stack_zero.inline.hpp b/src/cpu/zero/vm/stack_zero.inline.hpp
|
||||
--- jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
|
||||
+++ jdk8/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
|
||||
@@ -47,10 +47,11 @@
|
||||
// This method returns the amount of ABI stack available for us
|
||||
// to use under normal circumstances. Note that the returned
|
||||
// value can be negative.
|
||||
-inline int ZeroStack::abi_stack_available(Thread *thread) const {
|
||||
- int stack_used = thread->stack_base() - (address) &stack_used;
|
||||
- int stack_free = thread->stack_size() - stack_used;
|
||||
- return stack_free - shadow_pages_size();
|
||||
+inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const {
|
||||
+ ssize_t stack_used = thread->stack_base() - (address) &stack_used
|
||||
+ + (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
|
||||
+ ssize_t stack_free = thread->stack_size() - stack_used;
|
||||
+ return stack_free;
|
||||
}
|
||||
|
||||
#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
|
||||
diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
|
||||
--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp
|
||||
+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp
|
||||
@@ -4700,6 +4700,13 @@
|
||||
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
|
||||
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
|
||||
(2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
|
||||
+#ifdef ZERO
|
||||
+ // If this is Zero, allow at the very minimum one page each for the
|
||||
+ // Zero stack and the native stack. This won't make any difference
|
||||
+ // for 4k pages, but is significant for large pages.
|
||||
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
|
||||
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+2) * Linux::page_size());
|
||||
+#endif
|
||||
|
||||
size_t threadStackSizeInBytes = ThreadStackSize * K;
|
||||
if (threadStackSizeInBytes != 0 &&
|
@ -1,37 +0,0 @@
|
||||
diff -r f0d8ef4d9f93 src/os/linux/vm/os_linux.cpp
|
||||
--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Aug 13 15:49:58 2014 +0100
|
||||
+++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Aug 28 09:51:18 2014 +0000
|
||||
@@ -4843,6 +4843,7 @@
|
||||
|
||||
pthread_mutex_init(&dl_mutex, NULL);
|
||||
|
||||
+NOT_ZERO (
|
||||
// If the pagesize of the VM is greater than 8K determine the appropriate
|
||||
// number of initial guard pages. The user can change this with the
|
||||
// command line arguments, if needed.
|
||||
@@ -4851,6 +4852,7 @@
|
||||
StackRedPages = 1;
|
||||
StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()), vm_page_size()) / vm_page_size();
|
||||
}
|
||||
+ )
|
||||
}
|
||||
|
||||
// To install functions for atexit system call
|
||||
@@ -4903,10 +4905,16 @@
|
||||
// size. Add a page for compiler2 recursion in main thread.
|
||||
// Add in 2*BytesPerWord times page size to account for VM stack during
|
||||
// class initialization depending on 32 or 64 bit VM.
|
||||
+NOT_ZERO (
|
||||
os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
|
||||
(size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
|
||||
(2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
|
||||
-
|
||||
+ )
|
||||
+ZERO_ONLY (
|
||||
+ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
|
||||
+ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
|
||||
+ 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
|
||||
+ )
|
||||
size_t threadStackSizeInBytes = ThreadStackSize * K;
|
||||
if (threadStackSizeInBytes != 0 &&
|
||||
threadStackSizeInBytes < os::Linux::min_stack_allowed) {
|
Loading…
Reference in New Issue
Block a user