RFR: Isolate shenandoahVerifier from stray headers

Aleksey Shipilev shade at redhat.com
Tue Apr 24 08:12:13 UTC 2018


We have the name clash against macroAssembler_arm.hpp / verify_oop macro with Verifier, see for
example here:
  https://bugs.openjdk.java.net/browse/JDK-8200103

The easiest way to avoid this is separate shenandoahVerifier from those headers. There is an
accidental path via shenandoahPacer.inline.hpp too, which should not have include precompiled.hpp to
begin with.

diff -r fa755ee8fe3b src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp	Mon Apr 23 23:03:19 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp	Tue Apr 24 10:07:56 2018 +0200
@@ -24,7 +24,6 @@
 #ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
 #define SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP

-#include "precompiled.hpp"
 #include "gc/shenandoah/shenandoahPacer.hpp"

 inline void ShenandoahPacer::report_mark(size_t words) {
diff -r fa755ee8fe3b src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Mon Apr 23 23:03:19 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Tue Apr 24 10:07:56 2018 +0200
@@ -20,7 +20,8 @@
  * questions.
  *
  */
-#include "precompiled.hpp"
+
+// Deliberately avoids precompiled headers, to break name clashes and accidental dependencies

 #include "gc/shenandoah/brooksPointer.hpp"
 #include "gc/shenandoah/shenandoahAsserts.hpp"


Testing: x86_64 non-PCH build + hotspot_fast_gc_shenandoah, arm32 PCH build

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list