Bug #5159

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

Added by Naohisa Goto over 2 years ago. Updated over 2 years ago.

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

Description

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 がマクロならプロトタイプ宣言しないようにしたら、治りました。

solaris-gcc-signbit.diff Magnifier (1002 Bytes) Naohisa Goto, 08/05/2011 03:43 PM

Associated revisions

Revision 32858
Added by Naohisa Goto over 2 years ago

  • complex.c (f_signbit): fix compile error in gcc4 on Solaris with
    CFLAGS="-std=gnu99". fix [Bug #5159]

  • math.c: ditto.

History

#1 Updated by Naohisa Goto over 2 years ago

  • Status changed from Open to Closed

This issue was solved with changeset r32858.
Naohisa, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • complex.c (f_signbit): fix compile error in gcc4 on Solaris with
    CFLAGS="-std=gnu99". fix [Bug #5159]

  • math.c: ditto.

Also available in: Atom PDF