I’ve been using Cygwin to develop programs under Win32 for quite a while. After installing a new package, various programs I had compiled earlier were broken in a strange way: they simply did nothing at all when executed. No error message, nothing.
user@box ~/svn/my_app> $ ./my_app
user@box ~/svn/my_app> $
Running the app from Windows (by double-clicking it in Explorer) gave me this error message: Cannot find entry point _feinitialise in dynamic link library cygwin1.dll.
It turned out that a partial update of Cygwin had been made when I installed the new package because Cygwin was running when I started its setup.exe to install the package. The update wanted to replace cygwin1.dll with a new version but couldn’t because it was in use. The scheduled update after the next reboot failed for some reason. And it is not guaranteed that programs compiled under older Cygwin versions work with later Cygwin versions.
So the solution is to update the dll and recompile the program. I noticed that I had a file named C:\cygwin\cygwin1.dll.new in my installation directory. After renaming that file to cygwin1.dll (making a backup of the current file of course) and recompiling my app, everything worked fine again.