From: "U.Nakamura" Date: 2005-08-31T14:32:42+09:00 Subject: [ruby-dev:26929] Re: fail on make install こんにちは、なかむら(う)です。 In message "[ruby-dev:26928] Re: fail on make install" on Aug.31,2005 14:28:27, wrote: | > | こちらはコンパイラの問題のようです。最適化を禁止すると問題が発生しなく | > | なりましたのでコンパイラのオプティマイザのバグをつついたようです。XPで | > | 発生しないのは良くわかりませんが。 | > | > どうもありがとうございます。 | > ひょっとして | > nmake OPTFLAGS=-O2b2xg- | > だけで直りますか? | | 試してみたところ、それでなおりました。 ありがとうございます。 さて、どうしたものかな。やっぱりVC7(.1)でも Og は禁止するしか ないかなあ。 | > | > ただし、make clean すると | > | > ・RELEASE_DATE が 7/1 以降のもの(これ以前は調べてません)の場合、 | > | > miniruby が アプリケーションエラーを起こす。 | > | | > | こちらは、minirubyのコマンドライン引数のglobingを行う際にrubyの内部 | > | ルーチンを呼び出していて、その流れでスレッド情報を(スレッドの初期化を | > | していないにも関わらず)更新しようとしてSEGVしてました。根が深そうです。 | > | > むむ。"cross-thread violation on rb_gc()" ですかね? | | eval.c の | | static void | push_thread_anchor(ip) | struct ruby_env *ip; | { | ip->tag = prot_tag; | ip->frame = ruby_frame; | ip->block = ruby_block; | ip->scope = ruby_scope; | ip->iter = ruby_iter; | ip->cref = ruby_cref; | ip->prev = curr_thread->anchor; | curr_thread->anchor = ip; | } | | で、ip->prev = curr_thread->anchor のところで curr_thread が NULLなので | こけてます。ここを、curr_thread が NULL のときはスキップするようにすると | | > むむ。"cross-thread violation on rb_gc()" ですかね? | | で落ちるようになります。 | | 情報になれば。 どうもありがとうございます。 思ってたのの一つ手前でひっかかっちゃってましたか。 さて、こっちはどうしたものかな。 なかださんに相談かしら。 それでは。 -- U.Nakamura