< prev index next >

src/share/vm/utilities/globalDefinitions_xlc.hpp

Print this page
rev 12685 : 8176442: [aix] assert(_thr_current == 0L) failed: Thread::current already initialized
Summary: Revert Thread::current() back to pthread library based TLS on AIX.
Reviewed-by:


 136 
 137 // Portability macros
 138 #define PRAGMA_INTERFACE             #pragma interface
 139 #define PRAGMA_IMPLEMENTATION        #pragma implementation
 140 #define VALUE_OBJ_CLASS_SPEC
 141 
 142 // Formatting.
 143 #ifdef _LP64
 144 #define FORMAT64_MODIFIER "l"
 145 #else // !_LP64
 146 #define FORMAT64_MODIFIER "ll"
 147 #endif // _LP64
 148 
 149 // Cannot use xlc's offsetof as implementation of hotspot's
 150 // offset_of(), because xlc warns about applying offsetof() to non-POD
 151 // object and xlc cannot compile the expression offsetof(DataLayout,
 152 // _cells[index]) in DataLayout::cell_offset() .  Therefore we define
 153 // offset_of as it is defined for gcc.
 154 #define offset_of(klass,field) (size_t)((intx)&(((klass*)16)->field) - 16)
 155 



 156 #ifndef USE_LIBRARY_BASED_TLS_ONLY
 157 #define THREAD_LOCAL_DECL __thread
 158 #endif
 159 
 160 // Inlining support
 161 #define NOINLINE
 162 #define ALWAYSINLINE inline __attribute__((always_inline))
 163 
 164 #endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_XLC_HPP


 136 
 137 // Portability macros
 138 #define PRAGMA_INTERFACE             #pragma interface
 139 #define PRAGMA_IMPLEMENTATION        #pragma implementation
 140 #define VALUE_OBJ_CLASS_SPEC
 141 
 142 // Formatting.
 143 #ifdef _LP64
 144 #define FORMAT64_MODIFIER "l"
 145 #else // !_LP64
 146 #define FORMAT64_MODIFIER "ll"
 147 #endif // _LP64
 148 
 149 // Cannot use xlc's offsetof as implementation of hotspot's
 150 // offset_of(), because xlc warns about applying offsetof() to non-POD
 151 // object and xlc cannot compile the expression offsetof(DataLayout,
 152 // _cells[index]) in DataLayout::cell_offset() .  Therefore we define
 153 // offset_of as it is defined for gcc.
 154 #define offset_of(klass,field) (size_t)((intx)&(((klass*)16)->field) - 16)
 155 
 156 // AIX 5.3 has buggy __thread support. (see JDK-8176442).
 157 #define USE_LIBRARY_BASED_TLS_ONLY 1
 158 
 159 #ifndef USE_LIBRARY_BASED_TLS_ONLY
 160 #define THREAD_LOCAL_DECL __thread
 161 #endif
 162 
 163 // Inlining support
 164 #define NOINLINE
 165 #define ALWAYSINLINE inline __attribute__((always_inline))
 166 
 167 #endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
< prev index next >