RFR (S) 8203278: AArch64/PPC64 build failures after JDK-8199712 (Flight Recorder)
Aleksey Shipilev
shade at redhat.com
Wed May 16 07:59:20 UTC 2018
Bug:
https://bugs.openjdk.java.net/browse/JDK-8203278
The trouble with AArch64 and PPC64 is that they define thread_state specially:
http://hg.openjdk.java.net/jdk/jdk/file/bf9177eac58d/src/hotspot/share/runtime/thread.hpp#l1162
So most paths that use non-trivial things from thread.hpp have to include thread.inline.hpp. It
became exposed after JFR push, I have no clear understanding how. I tried to make the fix contained
by only changing .cpp files, but after 30 minutes of whack-a-mole game, I have given up and added it
to resourceArea.hpp, where most build failures originate.
Testing: x86_64 build, aarch64 build
Fix:
# HG changeset patch
# User shade
# Date 1526457236 -7200
# Wed May 16 09:53:56 2018 +0200
# Node ID 69d14a6872028b27c207586351ec9293c00b49f3
# Parent fb66b2959eafb060ed835686c3aed08e343d6775
8203278: AArch64/PPC64 build failures after JDK-8199712 (Flight Recorder)
Reviewed-by: XXX
diff -r fb66b2959eaf -r 69d14a687202 src/hotspot/share/jfr/leakprofiler/leakProfiler.cpp
--- a/src/hotspot/share/jfr/leakprofiler/leakProfiler.cpp Tue May 15 23:37:37 2018 +0200
+++ b/src/hotspot/share/jfr/leakprofiler/leakProfiler.cpp Wed May 16 09:53:56 2018 +0200
@@ -34,6 +34,7 @@
#include "runtime/atomic.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/thread.hpp"
+#include "runtime/thread.inline.hpp"
#include "runtime/vmThread.hpp"
#include "utilities/ostream.hpp"
diff -r fb66b2959eaf -r 69d14a687202 src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp Tue May 15 23:37:37 2018 +0200
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp Wed May 16 09:53:56 2018 +0200
@@ -27,6 +27,7 @@
#include "oops/instanceKlass.hpp"
#include "oops/oop.inline.hpp"
#include "oops/symbol.hpp"
+#include "runtime/thread.inline.hpp"
JfrSymbolId::JfrSymbolId() : _symbol_id_counter(0), _sym_table(new SymbolTable(this)),
_cstring_table(new CStringTable(this)) {
assert(_sym_table != NULL, "invariant");
diff -r fb66b2959eaf -r 69d14a687202 src/hotspot/share/jfr/support/jfrEventClass.cpp
--- a/src/hotspot/share/jfr/support/jfrEventClass.cpp Tue May 15 23:37:37 2018 +0200
+++ b/src/hotspot/share/jfr/support/jfrEventClass.cpp Wed May 16 09:53:56 2018 +0200
@@ -25,6 +25,7 @@
#include "precompiled.hpp"
#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp"
#include "jfr/support/jfrEventClass.hpp"
+#include "runtime/thread.inline.hpp"
bool JdkJfrEvent::is(const Klass* k) {
return JfrTraceId::is_jdk_jfr_event(k);
diff -r fb66b2959eaf -r 69d14a687202 src/hotspot/share/memory/resourceArea.hpp
--- a/src/hotspot/share/memory/resourceArea.hpp Tue May 15 23:37:37 2018 +0200
+++ b/src/hotspot/share/memory/resourceArea.hpp Wed May 16 09:53:56 2018 +0200
@@ -27,6 +27,7 @@
#include "memory/allocation.hpp"
#include "runtime/thread.hpp"
+#include "runtime/thread.inline.hpp"
// The resource area holds temporary data structures in the VM.
// The actual allocation areas are thread local. Typical usage:
More information about the hotspot-dev
mailing list