やつです.

In message "[ruby-list:18494] `make test' failure on Cygwin build w/ --enable-shared"
    on 99/11/09, Mimpei MORISHITA <mimpei / cac.co.jp> writes:

 |  で、付属の CD-ROM の ruby-1.4.2.tar.gz をソースから make しよ
 |うとしているのですが、どうもうまくいかないところがあるので、どな
 |たかご教授いただければ幸いです。m(__;)m

1.4.2をcygwinでsourceからcompileしたことないのですが,

 |  環境は以下の通りです。
 |・OS: Windows NT 4.0 Workstation SP5
 |・Cygwin: Cygwin B20.1、というかたぶん B20.1 だと思います。(^^;
 |  正確なバージョンチェックの仕方を知らないのですが、cygcheck -v -r -s 
 |  すると、HKEY_LOCAL_MACHINE\Software\Cygnus Solution\Cygwin B20\B20.1
 |  というキーがあること、cygwin1.dll の日付が 1998/12/04 になって

このcygwin1.dllって,古いですね.
とりあえず,cygwin1-19990115.dll.gzってのがあるので,
こいつにしといたほうが(rubyだけに限らず)いいです.
# 詳しいことはcygwin関係のWebPageなんかを見てください.

 |では Ruby 本の CD-ROM に入っていた rbcw142.zip はどうなん
 |だろうと思い、こちらは展開しただけの状態で、展開したディレクトリ
 |に CD-ROM 内に入っていた cygwin1.dll を置き、
 |
 |$ ./ruby.exe rubytest.rb
 |
 |  とすると、
 |
 |タイトル: ruby.exe アプリケーションエラー
 |内容: "0x610199f8" の命令が "0x000001c4" のメモリを参照しました。
 |      メモリが "read" になることはできませんでした。
 |というメッセージボックスが出てきます(先ほどとアドレスは違います
 |が)。ここで「キャンセル」ボタンを押して VC++ 6.0 を立ち上げると、
 |「ハンドルされていない例外は ruby.exe(CYGWIN1.DLL)にあります:
 |0xC0000005: Access Violation。」というメッセージボックスが出ます。
 |同様にコールスタックを見ると、

この時,参照されているcygwin1.dllはどれでしょう?
rbcw142.zipなruby.exeは,cygwin1-19990115.dllでないと動かな
い(と思う)ので,とりあえず $(PATH) を確認してはどうでしょう
か.

ちなみに,手元の
  WindowsNT 4.0 + SP5
  Cygwin B20.1(cygwin1-19990115.dll.gzを利用)
な環境で,rbcw142.zipのruby.exeはきちんと動いています.

# というわけで,以前inetd経由でruby.exeを使うと,CPUパワー
# を馬鹿喰いして動かないっす と騒いだのは,
# cygwin1-19990115.dllより古いcygwin1.dllが参照されていたせ
# いでした.ごめんなさい(_o_)
# 現在はきちんとinetd経由で動いてますです.

-- 
谷津昌樹
yatsu / ele.kimmon.co.jp