From: Daisuke Aoki Date: 2003-01-01T22:37:57+09:00 Subject: [ruby-list:36887] Re: Cygwin環境でコンパイル失敗 青木@横浜です。 堀川 久 wrote: > Cygwinをクリーンインストールしました。 略 > Install For "Just Me"でインストールしなおしました。 > > そうすると、Rubyは、何の問題もなくインストールできました。 「Install For "All Users"」だと HKEY_LOCAL_MACHINE が 「Install For "Just Me"」だと HKEY_CURRENT_USER が Cygwin のレジストリでの設定に使われるみたいです。 解決したのはなりよりですが、同じことやってもうちは一向にダメだったりします。 環境: Windows 95、Cygwin (1.3.18(0.69/3/2)) で、状況は make -f GNUmakefile で、 compiling Win32API /cygdrive/y/work/ruby/ruby/lib/mkmf.rb:107: [BUG] Segmentation fault ruby 1.8.0 (2002-12-26) [i386-cygwin] Signal 6 MAKE: *** [all] Error 134 ヒープが壊れてしまうみたいで、原因の特定は私には無理です。 ext/extmk.rb 実行中で system() が実行された直後にヒープが壊れます。 例えば、system() 直後に、p String とやると "〜" というふうに不適な応答が 来ます。この文字列は system() 近辺での処理でできた文字列であることが 多いです。 とにかく、どこかで壊れ始めてて system() で一気に壊れるのか、Cygwin の バグで子プロセスが起動されると Ruby のヒープを壊してしまうのか分かりません。 system() で必ず壊れるわけでもなく echo とか軽いものは大丈夫で gcc みたいな 重いものがだめのような感じがします。 応急措置的には process.c の security() を空にするとなんとか回避できる ようですが、security() を突き詰めていくと、rb_str_new() にぶち当たります。 それ以上は調べる気力が出ません。多分、オブジェクトを管理している ところ(GC?)がいかれるんじゃないのかなと思いますが、なんとなく潜在する バグの予感がします。単なる Cygwin のバグかもしれませんが。 # Windows 95 だと dumper で core ができないんですね (^^;; -- 青木大輔