謎解きみたいな質問で申し訳ないのですが。
あるアプリケーション(ハードウェアのツールです)で外部ファイルとして dll を用意し、
そのアプリケーションで所定の手続きを行うと、用意したdll内部の関数を呼び出すこ
とが出来ます。
このdllをmingwのgccで下記のように作成したところ正常に動作しました。
gcc -c -o hoge.o hoge.c
gcc -shared -o hoge.dll hoge.o
全く同じ方法でcygwinのgccでdllを作成したところ正常に動作しませんでした。
上記の状況は何故起こるのでしょうか?

尚、Hellow world のような普通のアプリケーションはmingwでもcygwinでも、同じよう
に正常動作します。