On Mon, 24 Oct 2011 22:59:20 +0900
Tanaka Akira <akr / fsij.org> wrote:

> ついでに、dln.c に
> #if defined(sun) && defined(sparc)
> というのがあって気がついたんですが、もしかして sparc も __sparc とかのほうが
> いいですかね。
> (うぅむ。SPARC の ABI を見ても載っていなかった...)

Sun(Oracle) の cc では sparc と __sparc 両方定義がありますが、
ドキュメントでは __sparc を使うように指示がされています。
http://developers.sun.com/sunstudio/documentation/ss12u1/mr/READMEs/c++_faq.html#Vers6

ISO C厳密準拠モード(-Xc)でのみ sparc や sun は消えます。
ただし、このモードではRubyのコンパイルは通らないと思います。
http://download.oracle.com/docs/cd/E19205-01/820-1209/bjaii/index.html

私の手元にある他のコンパイラ(fcc, gcc)でも同様に
sparc と __sparc の両方が定義されています。
OpenSolaris, Illumos はおそらくSunと同様と思います。

しかし、Sparc Linux (Debianなど), NetBSD, FreeBSD, OpenBSD
など、他のsparc上のUNIX系OSでの状況はわかりませんでした。
__sparcv9 のことも考えるとさらに面倒。

-- 
後藤 直久  ngoto / gen-info.osaka-u.ac.jp