Issue #5159 has been reported by Naohisa Goto.

----------------------------------------
Bug #5159: r32777のためSolaris上のgcc-4.4でCFLAGS="-std=gnu99"のときコンパイルエラー
http://redmine.ruby-lang.org/issues/5159

Author: Naohisa Goto
Status: Open
Priority: Normal
Assignee: Naohisa Goto
Category: build
Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-08-04) [sparc64-solaris2.10]


Solaris上のgcc 4.4 にて、C99標準+gnu拡張を指定するコンパイル時オプション
-std=gnu99 を指定するとコンパイルエラーになります。

 complex.c: In function ‘f_signbit’:
 complex.c:1177: error: expected identifier or ‘(’ before ‘sizeof’
 make: *** [complex.o] Error 1

gcc 4.x にて -std=gnu99 または -std=c99 を指定したときは、signbitはマクロで定義されるのですが、これがr32777のワークアラウンドで追加されたプロトタイプ宣言と衝突しています。

添付のパッチのように signbit がマクロならプロトタイプ宣言しないようにしたら、治りました。


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