[#37021] [RAA] RAA/2.3 — "U.Nakamura" <usa@...>

みなさんこんにちは。

20 messages 2003/01/30

[ruby-list:36887] Re: Cygwin環境でコンパイル失敗

From: Daisuke Aoki <dai@...>
Date: 2003-01-01 13:37:57 UTC
List: ruby-list #36887
青木@横浜です。

堀川 久 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 ができないんですね (^^;;

-- 
青木大輔 <dai@y7.net>

In This Thread

Prev Next