[8u] RFR: Shenandoah: Zero build fails after recent Atomic cleanup in Pacer

Aleksey Shipilev shade at redhat.com
Wed Jul 29 06:54:07 UTC 2020


sh/jdk8 build pipelines still fail, now in Zero builds:

In file included from build/hotspot/src/share/vm/memory/specialized_oop_closures.hpp:28:0,
                 from build/hotspot/src/share/vm/oops/oop.hpp:30,
                 from build/hotspot/src/share/vm/oops/markOop.hpp:28,
                 from build/hotspot/src/share/vm/gc_implementation/shared/ageTable.hpp:28,
                 from build/hotspot/src/share/vm/oops/oop.inline.hpp:28,
                 from build/hotspot/src/share/vm/gc_implementation/shared/markBitMap.hpp:29,
                 from build/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp:27,
                 from build/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.hpp:28,
                 from build/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp:26:
build/hotspot/src/share/vm/runtime/atomic.hpp:52:22: error: inline function ‘static void
Atomic::store_ptr(intptr_t, volatile intptr_t*)’ used but never defined [-Werror]
   inline static void store_ptr(intptr_t store_value, volatile intptr_t* dest);
                      ^~~~~~~~~

This happens because Zero has CV-unqualified method only, so we need the other one:

diff -r 144156910d02 src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
--- a/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp     Tue Jul 28 09:28:15 2020 +0200
+++ b/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp     Wed Jul 29 08:42:17 2020 +0200
@@ -168,8 +168,12 @@
 inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) {
   *dest = store_value;
 }

+inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) {
+  *dest = store_value;
+}
+
 inline jint Atomic::add(jint add_value, volatile jint* dest) {
 #ifdef ARM
   return arm_add_and_fetch(dest, add_value);
 #else
diff -r 144156910d02 src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp
--- a/src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp     Tue Jul 28 09:28:15 2020 +0200
+++ b/src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp     Wed Jul 29 08:42:17 2020 +0200
@@ -27,8 +27,9 @@
 #include "gc_implementation/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc_implementation/shenandoah/shenandoahPacer.hpp"
 #include "gc_implementation/shenandoah/shenandoahPhaseTimings.hpp"
 #include "runtime/mutexLocker.hpp"
+#include "runtime/atomic.inline.hpp"

 /*
  * In normal concurrent cycle, we have to pace the application to let GC finish.
  *


Testing: hotspot_gc_shenandoah; Linux x86_64 zero builds

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list