zero debug still broken after 8189871

Thomas Stüfe thomas.stuefe at gmail.com
Fri Nov 24 17:21:31 UTC 2017


Hi all,

seems that "8191663: Zero variant broken after 8189170 and 8189871" was
alone not sufficient to fix zero debug.

When building zero (fast|slow)debug, I get this error:

---
In file included from
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/gc/shared/specialized_oop_closures.hpp:28:0,
                 from
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/objArrayOop.cpp:26:
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.inline.hpp:
In instantiation of ‘void AccessInternal::verify_types() [with long
unsigned int decorators = 2048ul; T = volatile oop]’:
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.inline.hpp:905:32:
 required from ‘T AccessInternal::load(P*) [with long unsigned int
decorators = 2048ul; P = volatile oop; T = volatile oop]’
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.hpp:450:50:
 required from ‘static P Access<decorators>::load(P*) [with P = volatile
oop; long unsigned int decorators = 2048ul]’
/shared/projects/openjdk/jdk-hs/source/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 = 1030ul; T = oop; long unsigned int decorators
= 1030ul; typename EnableIf<AccessInternal::PossiblyLockedAccess<T>::value,
T>::type = oop]’
/shared/projects/openjdk/jdk-hs/source/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 = 1030ul]’
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.inline.hpp:619:37:
 required from ‘static typename EnableIf<HasDecorator<decorators,
2048ul>::value, T>::type
AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long
unsigned int decorators = 289798ul; T = oop; typename
EnableIf<HasDecorator<decorators, 2048ul>::value, T>::type = oop]’
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.inline.hpp:637:71:
 required from ‘static typename EnableIf<(! HasDecorator<decorators,
2048ul>::value), T>::type
AccessInternal::PreRuntimeDispatch::atomic_cmpxchg(T, void*, T) [with long
unsigned int decorators = 287750ul; T = oop; typename EnableIf<(!
HasDecorator<decorators, 2048ul>::value), T>::type = oop]’
/shared/projects/openjdk/jdk-hs/source/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 = 287748ul]’
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/access.inline.hpp:942:60:
 required from ‘T AccessInternal::atomic_cmpxchg(T, P*, T) [with long
unsigned int decorators = 262148ul; P = volatile HeapWord; T = oop]’
/shared/projects/openjdk/jdk-hs/source/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 =
262144ul]’
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/oops/objArrayOop.cpp:40:78:
 required from here
/shared/projects/openjdk/jdk-hs/source/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__)[ \
                             ^
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/utilities/macros.hpp:47:33:
note: in definition of macro ‘PASTE_TOKENS_AUX2’
 #define PASTE_TOKENS_AUX2(x, y) x ## y
                                 ^
/shared/projects/openjdk/jdk-hs/source/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)
                            ^
/shared/projects/openjdk/jdk-hs/source/src/hotspot/share/utilities/debug.hpp:184:16:
note: in expansion of macro ‘PASTE_TOKENS’
   typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \
                ^
/shared/projects/openjdk/jdk-hs/source/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
     ^
--

with

CONFIGURE_COMMAND_LINE:=--with-boot-jdk=/shared/projects/openjdk/jdks/openjdk9
--with-debug-level=fastdebug --with-jvm-variants=zero
--with-native-debug-symbols=internal --disable-precompiled-headers
--with-build-jdk=../output-release/images/jdk

on Ubuntu 16.4. x64

The error also happens in slow and fastdebug, with precompiled headers
enabled or not. Release is fine (in a fashion, I need
disable-warnings-as-errors to get it built, but I guess that is another
bug).

Thanks, ThomasIt seems triggered by "8189871: Refactor GC barriers to use
declarative semantics", but I stared at this error message for half an hour
now with not much progress... I do not really understand why the
STATIC_ASSERT is failing here. Does anyone have an idea?


Thanks, Thomas


More information about the hotspot-dev mailing list