[8] Shenandoah: Fix build failure with +JFR -PCH
Aleksey Shipilev
shade at redhat.com
Tue Jun 2 11:04:38 UTC 2020
Hi,
Current sh/jdk8 build fails if configured --enable-jfr and --disable-precompiled-headers like this:
In file included from
/home/shade/trunks/shenandoah-jdk8/hotspot/src/share/vm/jfr/instrumentation/jfrJvmtiAgent.cpp:29:0:
/home/shade/trunks/shenandoah-jdk8/hotspot/src/share/vm/jfr/jni/jfrUpcalls.hpp:57:10: error:
‘instanceKlassHandle’ does not name a type; did you mean ‘InstanceKlass’?
static instanceKlassHandle load_event_handler_proxy_class(TRAPS);
^~~~~~~~~~~~~~~~~~~
InstanceKlass
I notice we already have this upstream difference in os.hpp that unties the header circularity:
--- old/src/share/vm/runtime/os.hpp 2020-06-02 01:08:37.190316031 +0200
+++ new/src/share/vm/runtime/os.hpp 2020-06-02 01:08:37.110316134 +0200
@@ -28,7 +28,6 @@
#include "jvmtifiles/jvmti.h"
#include "runtime/atomic.hpp"
#include "runtime/extendedPC.hpp"
-#include "runtime/handles.hpp"
#include "utilities/top.hpp"
#ifdef TARGET_OS_FAMILY_linux
# include "jvm_linux.h"
@@ -54,6 +53,7 @@
#endif
class AgentLibrary;
+class methodHandle;
I tried to revert that block and solve it by rearranging Shenandoah includes a bit, but to no avail.
So, this is my plan B that seems to solve the build failure:
diff -r 4439a43801a4 src/share/vm/runtime/os.hpp
--- a/src/share/vm/runtime/os.hpp Mon Jun 01 19:14:49 2020 +0200
+++ b/src/share/vm/runtime/os.hpp Tue Jun 02 11:17:51 2020 +0200
@@ -52,10 +52,11 @@
# endif
#endif
class AgentLibrary;
class methodHandle;
+class instanceKlassHandle;
// os defines the interface to operating system; this includes traditional
// OS services (time, I/O) as well as other functionality with system-
// dependent code.
Testing: Linux x86_64 builds with {+JFR, -JFR} x {+PCH, -PCH} x {release, fastdebug, slowdebug}
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list