From: "akira yamada / やまだあきら" Date: 2003-07-22T21:42:04+09:00 Subject: [ruby-dev:20788] Re: 1.8.0 on IA64 etc. >>>>> In [ruby-dev : No.20683] >>>>> akira yamada / やまだあきら wrote: > 「きちんと」と言えるかどうか分かりませんが > > * http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/20422 > の変更によってIA64でも一通りbuildできるようになった。 > * しかしmake testは失敗した。状況としては > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/75644 > のmake testの部分と同じ。 > > という状況だと思います。 現状のCVS版を使ってIA64上でmake testしてみました。 最適化オプションが-O2または-O1の場合、 次のようになってdl/extのbuildができませんでした。 make[1]: Entering directory `/home/akira/ruby_HEAD/ext/dl' Generating callback.func /home/akira/ruby_HEAD/rbconfig.rb:144: method `dup' called on terminated object (0x20000000004be5e0) (NotImplementedError) from /home/akira/ruby_HEAD/rbconfig.rb:144:in `each' from /home/akira/ruby_HEAD/rbconfig.rb:144 from /home/akira/ruby_HEAD/lib/mkmf.rb:4:in `require' from /home/akira/ruby_HEAD/lib/mkmf.rb:4 from /home/akira/ruby_HEAD/ext/dl/mkcallback.rb:3:in `require' from /home/akira/ruby_HEAD/ext/dl/mkcallback.rb:3 make[1]: *** [callback.func] Error 1 make[1]: Leaving directory `/home/akira/ruby_HEAD/ext/dl' またmake testは失敗します。 -O2でbuildしたrubyを使って sample/test.rbを直接実行すると次のところでsegvになっていました。 (略) gc ok 1 zsh: segmentation fault ./ruby -I. -Ilib sample/test.rb gcの2つめのテストは以下のものです。 class S def initialize(a) @a = a end end l=nil 43076.times { l = S.new(l) } GC.start このテストだけ取り出してコマンドラインから実行してみましたが 同じようにsegvになりました。gdbからやってみました: (gdb) run -I. -Ilib -e'class S; def initialize(a) @a = a; end; end; l=nil; 100000.times {l = S.new(l)}; GC.start' Starting program: /home/akira/ruby_HEAD/ruby -I. -Ilib -e'class S; def initialize(a) @a = a; end; end; l=nil; 100000.times {l = S.new(l)}; GC.start' Program received signal SIGSEGV, Segmentation fault. st_foreach (table=0x60000000002e2bf0, func=0x400000000013b480 , arg=0) at st.c:487 487 { # btすると延々終わらないので途中で止めました。 意味があるかどうかわかりませんが 繰り返しの回数を少なくしていってみたところ (使用した環境では?)43076までは問題なく43077で問題が出るようでした。 そこでsample/test.rbの問題の部分を書き換えて make testをしてみたところ、2つ目のテストは通るようになりましたが 3つ目のテストでsegvになりました。 ただし3つ目のテストだけを取り出して コマンドラインから実行しても問題が発生せず、 また2つ目と3つ目のテストだけを取り出して実行しても 問題が発生しませんでした(2つめのテストの紹り返しは43076回にしました)。 最適化オプションが-O0の場合にはbuildも完了し、 make testにも成功しました。 -- やまだあきら / akira yamada Vine Caves, Ltd. (akira@arika.org, akira@debian.org or akira@vinecaves.com)