From: "ngoto (Naohisa Goto)" Date: 2012-07-03T23:17:20+09:00 Subject: [ruby-dev:45904] [ruby-trunk - Bug #6689][Open] r36284: symbol referenceng error: atomic_swap_long in Solaris 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/