I wrote some simple application in C (for test) - GCC 9.3.0 on CYGWIN (x86_64-pc-cygwin) on Windows 10. And it worked fine. But 1-2 days ago Windows 10 was updated (Feature Update 1909 (2)). I dont know is the update a reason of the next error, but now the application can sometimes work, but more often it fails with an error:
$ ./xxx.exe 0 [main] xxx (7152) D:\prj\xxx\xxx.exe: *** fatal error - cygheap base mismatch detected - 0x180343408/0x1093408.This problem is probably due to using incompatible versions of the cygwin DLL.Search for cygwin1.dll using the Windows Start->Find/Search facilityand 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 haveinstalled the cygwin distribution. Rebooting is also suggested if youare unable to find another cygwin DLL.
This happens when it's running in the Cygwin console (bash) - Cygwin.bat. I dont see strange things in the bash environment. But it always works fine being running in the PowerShell (cygwin1.dll is in the same folder as the app).ldd xxx.exe
in the Cygwin's bash shows:
$ ldd xxx.exe ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7fff5e440000) KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7fff5da50000) KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7fff5b860000) cygwin1.dll => /cygdrive/d/prj/xxx/cygwin1.dll (0xcc0000) FreeImage.dll => /cygdrive/d/prj/xxx/FreeImage.dll (0x180000000) WS2_32.dll => /cygdrive/c/WINDOWS/System32/WS2_32.dll (0x7fff5d870000) VCOMP140.DLL => /cygdrive/c/WINDOWS/SYSTEM32/VCOMP140.DLL (0x7fff55550000) RPCRT4.dll => /cygdrive/c/WINDOWS/System32/RPCRT4.dll (0x7fff5d750000) USER32.dll => /cygdrive/c/WINDOWS/System32/USER32.dll (0x7fff5e0b0000) win32u.dll => /cygdrive/c/WINDOWS/System32/win32u.dll (0x7fff5bd40000) GDI32.dll => /cygdrive/c/WINDOWS/System32/GDI32.dll (0x7fff5cac0000) gdi32full.dll => /cygdrive/c/WINDOWS/System32/gdi32full.dll (0x7fff5b570000) msvcp_win.dll => /cygdrive/c/WINDOWS/System32/msvcp_win.dll (0x7fff5b3d0000) ucrtbase.dll => /cygdrive/c/WINDOWS/System32/ucrtbase.dll (0x7fff5b470000) cygwin1.dll => /cygdrive/d/prj/xxx/cygwin1.dll (0xec0000)
I build the app with:
...CC = d:/apps/cygwin/gccLIBS := libFreeImage.a...$(EXE): $(OBJECTS) $(HEADERS) $(CC) $(CFLAGS) $(OBJECTS) -o $(EXE) $(LIBS)
What's wrong here? Where can there be the error?