From: matz@... (Yukihiro Matsumoto) Date: 1999-04-27T12:14:12+09:00 Subject: [ruby-dev:6668] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation まつもと ゆきひろです In message "[ruby-dev:6664] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation" on 99/04/26, Katsuyuki Komatsu writes: |これ、1.1.1.2.2.14の間違いですね (1.1.1.2.2.15はconfigure)。 |CVSでdiffとれば良かった。 いや,これは大丈夫です.目で見て変更してますから. |(1) make distcleanでparse.cが消えてしまうが、ソース展開後の状態に | 戻らないので望ましくない気がする。 おっしゃる通りです.realcleanで消すようにします. |(2) make distcleanでruby.impが消えない。 | Makefileで消すかextmk.rbで消すべきか? 追加します. |(3) ruby_1_3のブランチにruby/missing/isinf.cが入っていない。 finite.c, isnan.c も入ってませんでした. |(4) minirubyを作るときに-Wl,-bE:ruby.impがつくがrubyを作るときに付かない。 | Makefile.inで$(XLDFLAGS)を追加する行がおかしい? 確かに.ちょっと変更してみました. |(5) ruby.impが作られない。 | たとえば、Makefile.inを以下のようにして、configure.inで | EXTLDFILES=ruby.impとし、ruby.impが作られるようにする方法があるが、 | この方式だとconfigure.inとMakefile.inを変更する必要があるので、 | ext/extmk.rbで作った方が手っとり早いか? | (4)もextmk.rbでやった方が楽かもしれない。 extmk.rbの中で if PLATFORM =~ /ibm-aix/ load "./aix_mksym.rb" end としてるつもりだったのですが.そういえば PLATFORM には ibm のようなベンダー文字列はなかったですね. |(6) ruby.impを作るためaix_mksym.rbをたとえば以下のように起動としたとき、 | エラーが出る。 | |% ./miniruby -Xext aix_mksym.rb |aix_mksym.rb:33: undefined method `older' for # (NameError) |% | | これは、依存関係を外出しにするなら、 外出しにしましょう. |(7) extmk.rbが、$ruby_inc = ".."として生成される。 | $ruby_inc = "../.."とするか$top_srcdirになるようにする必要がある。 昨夜気がついたのでした.これは修正しました. |(8) rbconfig.rbが、 | | CONFIG["DLDFLAGS"] = "-eInit_#{CONFIG[\"TARGET\"]} -bI:#{CONFIG[\"ruby_inc\"]}/ruby.imp -bM:SRE -T512 -H512 -lc" | | と生成されるが、 | | CONFIG["DLDFLAGS"] = "-eInit_$(TARGET:.so=) -bI:$(ruby_inc)/ruby.imp -bM:SRE -T512 -H512 -lc" | | とならなければならない。$(TARGET:.so=)とするのはextconf.rbで作った | MakefileのTARGETはたとえばuconvなら、TARGET=uconv.soとなっているため。 | mkconfig.rb (とconfigure.in?) を変える必要があると思われる。 mkconfig.rbで対応してみました.うまく行くかな. |(9) ext/readlineのリンクでlibreadline.aが/usr/local/libにあるため、 | -L/usr/local/libが必要になった。 これはAIXでのインストールの状態に依存しますね.これは別の方 法で対応しようと思ってます(--with-readline-dir=/usr/local の ような).もう暫くお待ち下さい. 上記の変更をチェックインしておきます.