[Ruby 1.9 - Bug #5159][Open] r32777のためSolaris上のgcc-4.4でCFLAGS="-std=gnu99"のときコンパイルエラー

Issue #5159 has been reported by Naohisa G…


Bug #5159: r32777のためSolaris上のgcc-4.4でCFLAGS="-std=gnu99"のときコンパイルエラー

Author: Naohisa G.
Status: Open
Priority: Normal
Assignee: Naohisa G.
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 がマクロならプロトタイプ宣言しないようにしたら、治りました。