Problems using a DLL with Cygwin 64 bit

Philip Taylor
Thu Dec 17 11:00:00 GMT 2015

Windows 7 (64 bit)
Cygwin 64 bit
GCC version: 4.9.3

To make use of a Prosilica camera, I am having to build applications using an 
externally supplied DLL (from the camera manufacturer, with no source code) in 
Cygwin64 and Cygwin32.  I am using the appropriate 32 or 64 bit version of the DLL, 
as supplied.

The most difficult problem encountered is when using Cygwin 64 bit. I was initially 
unable to link but, using pexports and dlltool, I managed to create a .lib file with 
which I linked OK. This got rid of the initial link failure message "error adding 
symbols: File in wrong format."

But having linked successfully, the application now crashes on startup:

$ ../../bin/cygwin-x86_64/prosilicaApp.exe
   6 [main] prosilicaApp (96896) 

*** fatal error - cygheap base mismatch detected - 0x1802FA400/0x6EA400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
Segmentation fault

The reference to cygwin DLL in the long error message appears spurious - there is 
only one cygwin DLL in my system and there are no problems running other Cygwin 
applications in the same environment.

I have tried with 2 different versions of the manufacturer's DLL. The same error 
occurs, but with different addresses shown in the "mismatch detected" message.

The error does not occur with a 32 bit Cygwin installation.

Any idea why this error is occurring only with 64 bit Cygwin?

Philip Taylor

(Observatory Sciences Ltd)

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list