$

でーびっどさんに聞いてみたところ、gccだけの問題っぽいけど対応が面倒なので、あげてもむだじゃないか、と言っていた。どこかに制限かかれたページないかさがしたところ、http://gcc.gnu.org/onlinedocs/gcc/Interoperation.html にいきあたり、最後の行に$は -fdollars-in-identifiers をつかってもAIXではダメと書いてあるのに試したら使えたので、これを採択する方向。すこし古いgccでも試してみよう。とりあえず次はverconf.hが空になる件を調査予定。先はながい。[追記] "on the RS/6000 "のRS/6000てのがそもそもえらい古い話なのか。

$ in function name

$ make  
        CC = gcc
        LD = ld
        LDSHARED = gcc -Wl,-G
        CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=implicit-function-declaration -ansi -std=iso9899:199409
        XCFLAGS = -D_FORTIFY_SOURCE=2 -fno-strict-overflow -DRUBY_EXPORT -fPIE
        CPPFLAGS =   -I. -I.ext/include/powerpc-aix7.1.0.0 -I../trunk/include -I../trunk
        DLDFLAGS = -Wl,-bE:ruby.imp -Wl,-brtl -Wl,-blibpath:/home/kanemoto/trunk/lib:/usr/lib:/lib -pie
        SOLIBS =
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/freeware/libexec/gcc/powerpc-ibm-aix7.1.0.0/4.8.1/lto-wrapper
Target: powerpc-ibm-aix7.1.0.0
Configured with: ../gcc-4.8.1/configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran --prefix=/opt/freeware --mandir=/opt/freeware/man --infodir=/opt/freeware/info --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --host=powerpc-ibm-aix7.1.0.0
Thread model: aix
gcc version 4.8.1 (GCC)
compiling ../trunk/main.c
In file included from ../trunk/include/ruby.h:33:0,
                 from ../trunk/main.c:13:
../trunk/include/ruby/ruby.h:570:1: error: stray '$' in program
 int ruby$safe_level$4(void) __attribute__((error("$SAFE=4 is obsolete")));
 ^
../trunk/include/ruby/ruby.h:570:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'safe_level'
 int ruby$safe_level$4(void) __attribute__((error("$SAFE=4 is obsolete")));
          ^
../trunk/include/ruby/ruby.h:570:10: error: stray '$' in program
make: *** [main.o] Error 1

さてどうしたものか。

[追記]gcc 4.8から変ったのかと思いきや、gcc on AIXの問題の模様。手元のAIXの4.7.2でおきて、plinuxの4.7.2でおきなかった。

アカウントもらえました。

返事がくるのに2週間かかりましたが、GCC Compile Farmのアカウントもらえました。power linuxでは0E0Fでした。しかし、わたしの反応がおそかったらしく、例の方がしびれを切らせてchkbuildの結果を公開することを模索しはじめてしまいました。やってくれるのはありがたいけど、なんかもうしわけない。俺やりますよみたいな交渉中。いや、とろい自分よりやってもらったほうがrubyのためか。

GCC Compile Farm

というプロジェクト(http://gcc.gnu.org/wiki/CompileFarm)に、いずれAIX on Powerも追加するという話でした。というわけで、わたしの少ない貢献で受けいれてもらえるかわかりませんが、アカウントお願いのメールを打ってみました。すでにrubyで利用されている方がいらっしゃいました。

会社のマシンがあいていたら試せるぐらいの状況だったし、もし会社に切られてしまったらもうAIXさわれないと思っていたので、もしアカウントもらえたらそういう心配がなくなってうれしい。しかし、どこまで面倒をみてもらえるものなんだろうか。依存しているライブラリはどうなるんだろうか。前途多難なのはかわらない。ぜんぜん関係ないけど、libffiにまた最近AIXサポートがリストされていたのがよかった。

最近AIXのためのpatchをくれていた人

実は中の人だった。ぜんぜん作業できなくてごめんなさい。power7のbuildbotいらんか?と私信で言ってきてくれています。rubyciに結果を載せたいそうです。chkbuildうごかして、rubyciからfetchしてもらう必要があると思うんだけどそういうアクセスできるか聞いてみた。何人かにアカウントもくれるといっているので、そういうアクセスができるとわかってからruby-devに聞いてみようと思っています。が、私が勝手に話をすすめるのはどうなんだろうか。俺ただのきまぐれボランティアだけど、相手は会社だしなぁ。どうしていいか誰に相談していいかわからない。