小松です。 In the message of [ruby-list:19841] Re: can not pass make test on cygwin on 1999/12/22 19:01:34 kusano / mr-system.co.jp wrote: >cygwinのミラーサイトのftp://ring.aist.go.jp/archives/pc/gnu-win32/latest/ >から、cygwin1-20.1.dll.bz2を再度持ってきてみたのですが、やっぱり >だめでした。 make testを通すには、少なくともcygwin1-19990115.dll.gz以降の cygwin1.dllが必要です。 昔試した結果がどこかに……ああ、ありました。 テスト対象は、Cygwin B20.1 + Cygwin CD 1.0のcygwin1.dllを使って ./configure --enable-shared で作成したものです。 □make test結果 (NT4.0+SP5) DLL 結果 備考 cygwin1-20.1.dll × Access Violationで落ちる cygwin1-19990115.dll ○ Ruby本のCD-ROMの/のDLLはこれ *1 cygwin1-19990115+fix.dll ○ http://www.jaist.ac.jp/~fujieda/cygwin/ cygwin1-19990518.dll ○ http://www.os.rim.or.jp/~eban/ cygwin1-1.0.dll ○ Cygwin 1.0のCD-ROM (ChangeLogは1999-09-10まで) cygwin1-19991109.dll × DuplicateHandle failed, Win32 error 6でダメ cygwin1-19991218.dll × だいたい動くがsignal関係がだめっぽい *2 *1 ftp://sourceware.cygnus.com/pub/cygwin/snapshot-19990115/ *2 こんな感じ bash-2.02$ make test /lang/ruby-1.5.0/sample/test.rb:913:in ``': Interrupted system call (Errno::EINTR) from /lang/ruby-1.5.0/sample/test.rb:913 not ok signal 1 -- /lang/ruby-1.5.0/sample/test.rb:783 not ok signal 2 -- /lang/ruby-1.5.0/sample/test.rb:794 test failed make: *** [test] Error 1 bash-2.02$ make test not ok signal 1 -- /lang/ruby-1.5.0/sample/test.rb:783 not ok signal 2 -- /lang/ruby-1.5.0/sample/test.rb:794 test failed make: *** [test] Error 1 bash-2.02$ >あと、minirubyのほうでsample/test.rbを動かしてみると、なぜか >引っかからず、最後まで実行できます。(system()関連もokがでています) cygwin1-20.1.dllを使った場合、exeからではなくdllからfork() しているような場合はうまく動かないみたいです。たとえば、 ./configure --with-static-linked-ext で作れば、cygwin1-20.1.dllでもmake testが通ります。 minirubyの場合は、miniruby.exeからfork()しているので動いて いるのでしょう。 -- 小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>