ruby on AIX

いやちがうな。

coreをみると、Init_etcとかすでに呼びにいってる。Loadに成功しちゃってる。とすると。。。

そうじゃない

> minirubyが大事な関数をエクスポートしていないので、coredumpする。。。という流れのようだ。 いや、やっぱりそんな理由だけでcoredumpしたらいかんだろ。モジュールを呼んだときのerror処理かなにかを追い掛けたほうがよさそうだ。

Load時に

必要な関数がエクスポートされてるかどうかわからないらしい。minirubyの作成時に-bE:ruby.impするしか。

testunitのテスト

最近testunitのテストで失敗するようになった。--basedirオプションの実装で、テストとの整合性が取れなくなったようだ。testunitのdirのcollector(?)のテストのときに作った仮想ファイルシステムで'/'をルートディレクトリにしているのに、それにbaseをつけ…

compileできなくなった件について。

configure.inのAIXのところのLDFLAGSをXLDFLAGSにすると吉。というのがわかった。ユーザに選べる権利残しておかないとね。ただ、minirubyに-bE:ruby.impがいかなくなる。たまになんでかそのせいでモジュールのコンパイルに失敗するときがある。ruby-devの過…

だめだー。なんかいろいろだめだ。

コンパイルできないのは、 * lib/mkmf.rb (init_mkmf): set default $LDFLAGS. Patch by Michal Suchanek . [ruby-talk:216256] の原因だということがわかった。でも、1.8でもだめになってるぅぅぅぅぅ。なにこれ。でも便利なのかもしれない。やること増えた…

上のテストを無理やりバイパスする似非パッチを作ってみた。

1.9でも試してみました。拡張ライブラリの作成時に、ruby.impがないといわれました。。。1.8と何かが違うみたいだ。調べないと。しかしこうなると、だれもAIXで1.9使ってないみたいだ。ハハハハハハハ。

というわけでリンク

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/29249

remove_destination

どうもスルーされてしまったようだ。私の書いた恥ずかしいコード(?)を駆逐できるので、いつかもう一度メールしてみよう。 #いらない改行が入ってしまうかも。ていうかメールのアーカイブへのリンクでいいんじゃないか。

書き忘れたこと。

古いAIXの環境を考慮して、dlopenとか使わない方向にしてあります。というわけで現状の差異。なんと言ってもこれでやっとスタート地点。

AIX4.3.3で。

どうもgetaddrinfoなどの行儀がよくないようだ。druby://:0 とかで、serviceが0なときに怒られます。かえされたstruct addrinfoにprotocolとかセットされていないみたい。どうも他にもそういうプラットフォームがあるらしい。というわけで、4.3.3用にパッチ…

--enable-sharedについて

今回のconfigure.inとcommon.mkへの修正では、--enable-sharedをつけなくてもコンパイルできるようにしてみました。staticのlibrubyを拡張モジュールにそれぞれリンクしたのか、というとそうではなく、rubyをリンクするときに、-bE:ruby.imp をつけて、libru…

gccのコンパイル

VisualAgeC++6で失敗したので、Welcome to Bull AIX freeware siteからとってきたGCCでGCC4.1.1をコンパイルした。

説明不足。

config.hが標準ヘッダの間にインクルードされるとなぜコンパイルに失敗するか。 もうすこし具体的なことを書くと、こんな感じで再現できます。 $ cat test.c #include #include "ruby.h" #include int i;$ xlc -c test.cstdio.hに入るときに_LARGE_FILESが定…

AIX4.3.3でGCC4.1.1のコンパイル中。

むーん。えらい時間かかってる。非力すぎ。準備したマシンにはVisualAgeC++のVer.6をいれてみた。AIXでGCCをコンパイルするには ulimit -m unlimited ulimit -d unlimited (追記してみた) export CONFIG_SHELL=/bin/bash をやっておくと吉。

気づいたこと

configure.inとcommon.mkに手を入れました。これで--enable-sharedがあってもなくてもよくなったし、--without-gccでgccとccの切り替えができるし、リンカへのオプションもそれぞれで対応したので…ということで色々やりました。大分コンパイルが楽になりまし…

報告済みの件について

採用された形跡はありませんが、もうひとつ報告しました。 簡単に言うと、 config.hはすべての標準ヘッダあるいはそれらをインクルードしているヘッダの前にインクルードしてほしい。 ということでした。_ALL_SOURCEがredefinedだ、といわれることがなくなる…