-
Bug
-
Resolution: Fixed
-
P4
-
10u-open
-
master
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8202967 | 10u-cpu | Aleksey Shipilev | P4 | Resolved | Fixed | master |
JDK-8202930 | 10.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b07 |
This is the 10u-specific fix. Zero is fixed in 11 with JDK-8199220, but that bulk fix is not directly backportable to 10u.
It manifests as:
In file included from /disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/gc/shared/specialized_oop_closures.hpp:28:0,
from /disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:26:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp: In instantiation of ‘void AccessInternal::verify_types() [with long unsigned int decorators = 2048; T = volatile oop]’:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:905:32: required from ‘T AccessInternal::load(P*) [with long unsigned int decorators = 2048; P = volatile oop; T = volatile oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:450:50: required from ‘static P Access<decorators>::load(P*) [with P = volatile oop; long unsigned int decorators = 2048]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.inline.hpp:247:34: required from ‘static typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type RawAccessBarrier<decorators>::atomic_cmpxchg_maybe_locked(T, void*, T) [with long unsigned int ds = 1030; T = oop; long unsigned int decorators = 1030; typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.hpp:325:51: required from ‘static T RawAccessBarrier<decorators>::atomic_cmpxchg(T, void*, T) [with T = oop; long unsigned int decorators = 1030]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:619:37: required from ‘static typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 289798; T = oop; typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:637:71: required from ‘static typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 287750; T = oop; typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:821:67: required from ‘oop AccessInternal::atomic_cmpxchg_reduce_types(oop, HeapWord*, oop) [with long unsigned int decorators = 287748]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:942:60: required from ‘T AccessInternal::atomic_cmpxchg(T, P*, T) [with long unsigned int decorators = 262148; P = volatile HeapWord; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:492:78: required from ‘static T Access<decorators>::oop_atomic_cmpxchg(T, P*, T) [with P = volatile HeapWord; T = oop; long unsigned int decorators = 262144]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:40:78: required from here
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:29: error: incomplete type ‘STATIC_ASSERT_FAILURE<false>’ used in nested name specifier
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:47:33: note: in definition of macro ‘PASTE_TOKENS_AUX2’
#define PASTE_TOKENS_AUX2(x, y) x ## y
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:45:28: note: in expansion of macro ‘PASTE_TOKENS_AUX’
#define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
^~~~~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:16: note: in expansion of macro ‘PASTE_TOKENS’
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:873:5: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT((HasDecorator<decorators, INTERNAL_VALUE_IS_OOP>::value || // oops have already been validated
^~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp: In instantiation of ‘void AccessInternal::verify_types() [with long unsigned int decorators = 2048; T = oop]’:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:880:32: required from ‘void AccessInternal::store(P*, T) [with long unsigned int decorators = 2048; P = volatile oop; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:456:38: required from ‘static void Access<decorators>::store(P*, T) [with P = volatile oop; T = oop; long unsigned int decorators = 2048]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.inline.hpp:249:25: required from ‘static typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type RawAccessBarrier<decorators>::atomic_cmpxchg_maybe_locked(T, void*, T) [with long unsigned int ds = 1030; T = oop; long unsigned int decorators = 1030; typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.hpp:325:51: required from ‘static T RawAccessBarrier<decorators>::atomic_cmpxchg(T, void*, T) [with T = oop; long unsigned int decorators = 1030]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:619:37: required from ‘static typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 289798; T = oop; typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:637:71: required from ‘static typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 287750; T = oop; typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:821:67: required from ‘oop AccessInternal::atomic_cmpxchg_reduce_types(oop, HeapWord*, oop) [with long unsigned int decorators = 287748]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:942:60: required from ‘T AccessInternal::atomic_cmpxchg(T, P*, T) [with long unsigned int decorators = 262148; P = volatile HeapWord; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:492:78: required from ‘static T Access<decorators>::oop_atomic_cmpxchg(T, P*, T) [with P = volatile HeapWord; T = oop; long unsigned int decorators = 262144]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:40:78: required from here
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:29: error: incomplete type ‘STATIC_ASSERT_FAILURE<false>’ used in nested name specifier
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:47:33: note: in definition of macro ‘PASTE_TOKENS_AUX2’
#define PASTE_TOKENS_AUX2(x, y) x ## y
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:45:28: note: in expansion of macro ‘PASTE_TOKENS_AUX’
#define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
^~~~~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:16: note: in expansion of macro ‘PASTE_TOKENS’
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:873:5: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT((HasDecorator<decorators, INTERNAL_VALUE_IS_OOP>::value || // oops have already been validated
^~~~~~~~~~~~~
gmake[3]: *** [lib/CompileJvm.gmk:214: /disk/openjdk/upstream-sources/openjdk-10u/build/linux-x86_64-normal-zero-fastdebug/hotspot/variant-zero/libjvm/objs/objArrayOop.o] Error 1
10u-only fix:
diff -r e4530ef14c08 src/hotspot/cpu/zero/globalDefinitions_zero.hpp
--- a/src/hotspot/cpu/zero/globalDefinitions_zero.hpp Wed Mar 28 14:24:17 2018 +0100
+++ b/src/hotspot/cpu/zero/globalDefinitions_zero.hpp Wed May 02 12:03:18 2018 +0200
@@ -26,6 +26,10 @@
#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+#ifdef _LP64
+#define SUPPORTS_NATIVE_CX8
+#endif
+
#include <ffi.h>
// Indicates whether the C calling conventions require that
It manifests as:
In file included from /disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/gc/shared/specialized_oop_closures.hpp:28:0,
from /disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:26:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp: In instantiation of ‘void AccessInternal::verify_types() [with long unsigned int decorators = 2048; T = volatile oop]’:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:905:32: required from ‘T AccessInternal::load(P*) [with long unsigned int decorators = 2048; P = volatile oop; T = volatile oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:450:50: required from ‘static P Access<decorators>::load(P*) [with P = volatile oop; long unsigned int decorators = 2048]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.inline.hpp:247:34: required from ‘static typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type RawAccessBarrier<decorators>::atomic_cmpxchg_maybe_locked(T, void*, T) [with long unsigned int ds = 1030; T = oop; long unsigned int decorators = 1030; typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.hpp:325:51: required from ‘static T RawAccessBarrier<decorators>::atomic_cmpxchg(T, void*, T) [with T = oop; long unsigned int decorators = 1030]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:619:37: required from ‘static typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 289798; T = oop; typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:637:71: required from ‘static typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 287750; T = oop; typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:821:67: required from ‘oop AccessInternal::atomic_cmpxchg_reduce_types(oop, HeapWord*, oop) [with long unsigned int decorators = 287748]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:942:60: required from ‘T AccessInternal::atomic_cmpxchg(T, P*, T) [with long unsigned int decorators = 262148; P = volatile HeapWord; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:492:78: required from ‘static T Access<decorators>::oop_atomic_cmpxchg(T, P*, T) [with P = volatile HeapWord; T = oop; long unsigned int decorators = 262144]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:40:78: required from here
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:29: error: incomplete type ‘STATIC_ASSERT_FAILURE<false>’ used in nested name specifier
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:47:33: note: in definition of macro ‘PASTE_TOKENS_AUX2’
#define PASTE_TOKENS_AUX2(x, y) x ## y
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:45:28: note: in expansion of macro ‘PASTE_TOKENS_AUX’
#define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
^~~~~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:16: note: in expansion of macro ‘PASTE_TOKENS’
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:873:5: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT((HasDecorator<decorators, INTERNAL_VALUE_IS_OOP>::value || // oops have already been validated
^~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp: In instantiation of ‘void AccessInternal::verify_types() [with long unsigned int decorators = 2048; T = oop]’:
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:880:32: required from ‘void AccessInternal::store(P*, T) [with long unsigned int decorators = 2048; P = volatile oop; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:456:38: required from ‘static void Access<decorators>::store(P*, T) [with P = volatile oop; T = oop; long unsigned int decorators = 2048]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.inline.hpp:249:25: required from ‘static typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type RawAccessBarrier<decorators>::atomic_cmpxchg_maybe_locked(T, void*, T) [with long unsigned int ds = 1030; T = oop; long unsigned int decorators = 1030; typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/accessBackend.hpp:325:51: required from ‘static T RawAccessBarrier<decorators>::atomic_cmpxchg(T, void*, T) [with T = oop; long unsigned int decorators = 1030]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:619:37: required from ‘static typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 289798; T = oop; typename EnableIf<HasDecorator<decorators, 2048>::value, T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:637:71: required from ‘static typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long unsigned int decorators = 287750; T = oop; typename EnableIf<(! HasDecorator<decorators, 2048>::value), T>::type = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:821:67: required from ‘oop AccessInternal::atomic_cmpxchg_reduce_types(oop, HeapWord*, oop) [with long unsigned int decorators = 287748]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:942:60: required from ‘T AccessInternal::atomic_cmpxchg(T, P*, T) [with long unsigned int decorators = 262148; P = volatile HeapWord; T = oop]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.hpp:492:78: required from ‘static T Access<decorators>::oop_atomic_cmpxchg(T, P*, T) [with P = volatile HeapWord; T = oop; long unsigned int decorators = 262144]’
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/objArrayOop.cpp:40:78: required from here
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:29: error: incomplete type ‘STATIC_ASSERT_FAILURE<false>’ used in nested name specifier
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:47:33: note: in definition of macro ‘PASTE_TOKENS_AUX2’
#define PASTE_TOKENS_AUX2(x, y) x ## y
^
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/macros.hpp:45:28: note: in expansion of macro ‘PASTE_TOKENS_AUX’
#define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
^~~~~~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/utilities/debug.hpp:184:16: note: in expansion of macro ‘PASTE_TOKENS’
typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
^~~~~~~~~~~~
/disk/openjdk/upstream-sources/openjdk-10u/src/hotspot/share/oops/access.inline.hpp:873:5: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT((HasDecorator<decorators, INTERNAL_VALUE_IS_OOP>::value || // oops have already been validated
^~~~~~~~~~~~~
gmake[3]: *** [lib/CompileJvm.gmk:214: /disk/openjdk/upstream-sources/openjdk-10u/build/linux-x86_64-normal-zero-fastdebug/hotspot/variant-zero/libjvm/objs/objArrayOop.o] Error 1
10u-only fix:
diff -r e4530ef14c08 src/hotspot/cpu/zero/globalDefinitions_zero.hpp
--- a/src/hotspot/cpu/zero/globalDefinitions_zero.hpp Wed Mar 28 14:24:17 2018 +0100
+++ b/src/hotspot/cpu/zero/globalDefinitions_zero.hpp Wed May 02 12:03:18 2018 +0200
@@ -26,6 +26,10 @@
#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+#ifdef _LP64
+#define SUPPORTS_NATIVE_CX8
+#endif
+
#include <ffi.h>
// Indicates whether the C calling conventions require that
- backported by
-
JDK-8202930 Zero fastdebug build is broken after JDK-8189871 (Refactor GC barriers to use declarative semantics)
- Resolved
-
JDK-8202967 Zero fastdebug build is broken after JDK-8189871 (Refactor GC barriers to use declarative semantics)
- Resolved
- relates to
-
JDK-8199220 Zero build broken after 8195103, 8191102 and 8189871
- Resolved
-
JDK-8189871 Refactor GC barriers to use declarative semantics
- Resolved