Errors building shenandoah on MacOS

Lennart Börjeson lennart.borjeson at cinnober.com
Mon Sep 11 14:00:11 UTC 2017


Lately, when trying to compile shenandoah on MacOS, I get a lot of warnings and errors like the following (warnings I can probably live with but the errors are more troublesome):

/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahConnectionMatrix.cpp:85:19: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                  r->first_alloc_seq_num(), r->last_alloc_seq_num(), count);
                  ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahConnectionMatrix.cpp:85:45: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                  r->first_alloc_seq_num(), r->last_alloc_seq_num(), count);
                                            ^~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:75:11: warning: 4 enumeration values not handled in switch: '_humongous_start', '_humongous_cont', '_cset'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:95:11: warning: enumeration values '_humongous_start', '_humongous_cont', and '_trash' not handled in switch [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:112:11: warning: 6 enumeration values not handled in switch: '_regular', '_humongous_start', '_humongous_cont'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:126:11: warning: 6 enumeration values not handled in switch: '_regular', '_humongous_start', '_humongous_cont'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:141:11: warning: 4 enumeration values not handled in switch: '_empty_uncommitted', '_empty_committed', '_cset'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:161:11: warning: 4 enumeration values not handled in switch: '_empty_uncommitted', '_empty_committed', '_cset'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:185:11: warning: 6 enumeration values not handled in switch: '_empty_uncommitted', '_empty_committed', '_humongous_start'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:198:11: warning: enumeration values '_empty_uncommitted', '_empty_committed', and '_pinned' not handled in switch [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:217:11: warning: 6 enumeration values not handled in switch: '_empty_uncommitted', '_regular', '_humongous_start'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:231:11: warning: 6 enumeration values not handled in switch: '_regular', '_humongous_start', '_humongous_cont'... [-Wswitch]
  switch (_state) {
          ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:356:40: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
  st->print("|FTS " SIZE_FORMAT_W(15), first_alloc_seq_num());
                    ~~~~~~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~~
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp:357:40: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
  st->print("|LTS " SIZE_FORMAT_W(15), last_alloc_seq_num());
                    ~~~~~~~~~~~~~~~~   ^~~~~~~~~~~~~~~~~~~~
12 warnings generated.
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/opto/shenandoahSupport.cpp:1932:65: warning: for loop has empty body [-Wempty-body]
        for (; i < regions.length() && regions.at<http://regions.at>(i) != c; i+=2);
                                                                ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/opto/shenandoahSupport.cpp:1932:65: note: put the semicolon on a separate line to silence this warning
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahVerifier.cpp:753:29: error: no matching function for call to 'load_acquire'
        size_t start_live = OrderAccess::load_acquire(&ld[r->humongous_start_region()->region_number()]);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:55:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jbyte *' (aka 'const volatile signed char *') for 1st argument
inline jbyte    OrderAccess::load_acquire(const volatile jbyte*   p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:56:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jshort *' (aka 'const volatile short *') for 1st argument
inline jshort   OrderAccess::load_acquire(const volatile jshort*  p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:57:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jint *' (aka 'const volatile int *') for 1st argument
inline jint     OrderAccess::load_acquire(const volatile jint*    p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:58:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jlong *' (aka 'const volatile long *') for 1st argument
inline jlong    OrderAccess::load_acquire(const volatile jlong*   p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:59:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jfloat *' (aka 'const volatile float *') for 1st argument
inline jfloat   OrderAccess::load_acquire(const volatile jfloat*  p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:60:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jdouble *' (aka 'const volatile double *') for 1st argument
inline jdouble  OrderAccess::load_acquire(const volatile jdouble* p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:61:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jubyte *' (aka 'const volatile unsigned char *') for 1st argument
inline jubyte   OrderAccess::load_acquire(const volatile jubyte*  p) { return (jubyte) specialized_load_acquire((const volatile jbyte*)p);  }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:62:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jushort *' (aka 'const volatile unsigned short *') for 1st argument
inline jushort  OrderAccess::load_acquire(const volatile jushort* p) { return (jushort)specialized_load_acquire((const volatile jshort*)p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:63:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile juint *' (aka 'const volatile unsigned int *') for 1st argument
inline juint    OrderAccess::load_acquire(const volatile juint*   p) { return (juint)  specialized_load_acquire((const volatile jint*)p);   }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:64:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile julong *' (aka 'const volatile unsigned long long *') for 1st argument
inline julong   OrderAccess::load_acquire(const volatile julong*  p) { return (julong) specialized_load_acquire((const volatile jlong*)p);  }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/gc/shenandoah/shenandoahVerifier.cpp:758:21: error: no matching function for call to 'load_acquire'
        verf_live = OrderAccess::load_acquire(&ld[r->region_number()]);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:55:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jbyte *' (aka 'const volatile signed char *') for 1st argument
inline jbyte    OrderAccess::load_acquire(const volatile jbyte*   p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:56:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jshort *' (aka 'const volatile short *') for 1st argument
inline jshort   OrderAccess::load_acquire(const volatile jshort*  p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:57:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jint *' (aka 'const volatile int *') for 1st argument
inline jint     OrderAccess::load_acquire(const volatile jint*    p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:58:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jlong *' (aka 'const volatile long *') for 1st argument
inline jlong    OrderAccess::load_acquire(const volatile jlong*   p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:59:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jfloat *' (aka 'const volatile float *') for 1st argument
inline jfloat   OrderAccess::load_acquire(const volatile jfloat*  p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:60:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jdouble *' (aka 'const volatile double *') for 1st argument
inline jdouble  OrderAccess::load_acquire(const volatile jdouble* p) { return specialized_load_acquire(p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:61:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jubyte *' (aka 'const volatile unsigned char *') for 1st argument
inline jubyte   OrderAccess::load_acquire(const volatile jubyte*  p) { return (jubyte) specialized_load_acquire((const volatile jbyte*)p);  }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:62:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile jushort *' (aka 'const volatile unsigned short *') for 1st argument
inline jushort  OrderAccess::load_acquire(const volatile jushort* p) { return (jushort)specialized_load_acquire((const volatile jshort*)p); }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:63:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile juint *' (aka 'const volatile unsigned int *') for 1st argument
inline juint    OrderAccess::load_acquire(const volatile juint*   p) { return (juint)  specialized_load_acquire((const volatile jint*)p);   }
                             ^
/Users/lennartb/RaT/openJDK/shenandoah-jdk10/hotspot/src/share/vm/runtime/orderAccess.inline.hpp:64:30: note: candidate function not viable: no known conversion from 'ShenandoahLivenessData *' (aka 'volatile unsigned long *') to 'const volatile julong *' (aka 'const volatile unsigned long long *') for 1st argument
inline julong   OrderAccess::load_acquire(const volatile julong*  p) { return (julong) specialized_load_acquire((const volatile jlong*)p);  }
                             ^
2 errors generated.


Sadly, I’m not sufficiently knowledgable in C++ to pinpoint the error. I’m guessing there are differences in the default types in the compiler used on MacOS.

Best regards,

/Lennart Börjeson


More information about the shenandoah-dev mailing list