Forum: Ruby-dev [ruby-trunk - Bug #6689][Open] r36284: symbol referenceng error: atomic_swap_long in Solaris

Posted by ngoto (Naohisa Goto) (Guest)
on 2012-07-03 16:23
(Received via mailing list)
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))
Posted by SASADA Koichi (Guest)
on 2012-07-03 16:43
(Received via mailing list)
そもそも,gc.c の変更は本当に必要なんでしょうか.
Posted by Nobuyoshi Nakada (nobu)
on 2012-07-04 05:24
(Received via mailing list)
$B$J$+$@$G$9!#(B

At Tue, 3 Jul 2012 23:17:20 +0900,
ngoto (Naohisa Goto) wrote in [ruby-dev:45904]:
> $B$H$3$m$G!"(Br36284$B$GDI2C$5$l$?(B ATOMIC_SIZE_**** $B$H$$$&%^%/%m72$O!"(B
> gc.c $B$KD>=q$-$G$O$J$/!"0JA0$+$i(Batomic$BA`:n4XO"$N%^%/%m$rCV$$$F$$$k(B
> atomic.h $B$KDI2C$7$F!"$=$l$r(B#include$B$9$k7A$K$7$?$[$&$,!"(B
> #if $B$N>r7o$N%a%s%F%J%s%9$,3Z$K$J$k$?$aBgJQ$"$j$,$?$$$N$G$9$,!"(B
> $B2DG=$G$7$g$&$+!)(B

$BF0$+$J$$$@$m$&$3$H$,$o$+$C$F$$$?(BWin64$B$,=$@5$5$l$?$N$G!"(Batomic.h
$B$G9MN8$5$l$F$$$k%W%i%C%H%U%)!<%`$OBP1~$5$l$?$3$H$K$J$j$^$9$+$i!"(B
$B$b$&0\F0$7$F$b9=$o$J$$$s$8$c$J$$$G$7$g$&$+!#(B
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.