小松です。

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>