Issue #6689 has been reported by ngoto (Naohisa Goto).

----------------------------------------
Bug #6689: r36284: symbol referenceng error: atomic_swap_long in Solaris
https://bugs.ruby-lang.org/issues/6689

Author: ngoto (Naohisa Goto)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: -


r36284以降、sparc上の Solaris 10 + Oracle Solaris Studio 12 にて、
atomic_swap_long が見つからない symbol referenceng error になり、
minirubyが出来ません。以下のパッチで治りました。

ところで、r36284で追加された ATOMIC_SIZE_**** というマクロ群は、
gc.c に直書きではなく、以前からatomic操作関連のマクロを置いている
atomic.h に追加して、それを#includeする形にしたほうが、
#if の条件のメンテナンスが楽になるため大変ありがたいのですが、
可能でしょうか?

Index: gc.c
===================================================================
--- gc.c        (revision 36289)
+++ gc.c        (working copy)
@@ -79,7 +79,7 @@
 # define ATOMIC_SIZE_SUB(var, val) atomic_add_long(&(var), -(val))
 # define ATOMIC_SIZE_INC(var) atomic_inc_ulong(&(var))
 # define ATOMIC_SIZE_DEC(var) atomic_dec_ulong(&(var))
-# define ATOMIC_SIZE_EXCHANGE(var, val) atomic_swap_long(&(var), (val))
+# define ATOMIC_SIZE_EXCHANGE(var, val) atomic_swap_ulong(&(var), (val))
 # else
 # define ATOMIC_SIZE_ADD(var, val) atomic_add_int(&(var), (val))
 # define ATOMIC_SIZE_SUB(var, val) atomic_add_int(&(var), -(val))



-- 
http://bugs.ruby-lang.org/