Project

General

Profile

Actions

Bug #12527

closed

warning: macro redefined: REG_PC and REG_SP on Solaris 10

Added by ngoto (Naohisa Goto) almost 8 years ago. Updated over 7 years ago.

Status:
Closed
Target version:
-
[ruby-dev:49693]

Description

Solaris 10 上にて、vm.c のコンパイル中に、以下のマクロ再定義のwarningが出ます。

cc -errtags=yes  -xO4 -xtarget=sparc64viiplus -m64 -DRUBY_EXPORT -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include  -D_XOPEN_SOURCE=500   -I. -I.ext/include/sparc64-solaris2.10 -I./include -I. -o vm.o -c vm.c
"vm_insnhelper.h", line 45: warning: macro redefined: REG_PC (E_MACRO_REDEFINED)
"vm_insnhelper.h", line 46: warning: macro redefined: REG_SP (E_MACRO_REDEFINED)

具体的には、/usr/include/sys/regset.h の以下の定義と衝突しています。

#define REG_PC  (1)
#define REG_SP  REG_O6

(厳密に確認はしていませんがおそらく) _XOPEN_SOURCE=500 以上を定義した場合に、これらのマクロが有効となるようです。

値は異なるようですが、 x86 (amd64) でも定義されているようです。
http://dtrace.org/blogs/rm/2011/03/14/a-trip-down-into-sysregset-h/

幸い、今のところは、vm.c や vm.c がincludeしているファイル内では、システム側のマクロは直接・間接関わらず使用されていないように見えます。

Actions

Also available in: Atom PDF

Like0
Like0Like0