I have successfully compiled sources of a Windows application, but when starting up, it tries to locate and link to a windows dll to access some C library functions:
... err:module:import_dll No implementation for cw3230.DLL._strlen imported from L"Z:\local\builts\phaeaco-20031119\src\memview\memview.exe", setting to 0xdeadbeef err:module:import_dll No implementation for cw3230.DLL._strncpy imported from L"Z:\local\builts\phaeaco-20031119\src\memview\memview.exe", setting to 0xdeadbeef err:module:import_dll No implementation for cw3230.DLL._strtok imported from L"Z:\local\builts\phaeaco-20031119\src\memview\memview.exe", setting to 0xdeadbeef err:module:import_dll No implementation for cw3230.DLL._tolower imported from L"Z:\local\builts\phaeaco-20031119\src\memview\memview.exe", setting to 0xdeadbeef err:module:import_dll No implementation for cw3230.DLL._toupper imported from L"Z:\local\builts\phaeaco-20031119\src\memview\memview.exe", setting to 0xdeadbeef err:module:LdrInitializeThunk Main exe initialization failed, status c0000135
First of all: Where does the name "cw3230.DLL" come from -- Wine didn't install such a dll on my system?
Okay, I found the answer to this myself, it is quite embarrassing: Amid the sources that I got there was also the executable compiled on a Windows system by a Borland compiler. Since the winelib-generated make file creates a shared library and not an executable, the spurious native Windows executable was not overwritten by my built. The wineapploader script then started wine with the native Windows executable instead of the shared library "memview.exe.so", and the missing DLL reported above is probably Borlands C runtime library or part of it.
So forget about the other questions in my previous posting.
Now the problem is that the applicaiton doesn't start but immediately fails with a Segmentation Fault. The problem seems to be in the function GetFullName in files/dos_fs.c; here are the last four lines of a startup trace:
0009:trace:nls:WideCharToMultiByte cp 65010 L"memview.exe" -> "memview.exe" 0009:trace:dosfs:DOSFS_FindUnixName (/local/builts/phaeaco-20031119/src/memview,L"memview.exe") -> L"memview.exe" (L"MEMVIEW.EXE") 0009:trace:heap:RtlFreeHeap (0x401e0000,00000002,401e0918): returning TRUE 0009:trace:dosfs:DOSFS_GetFullName returning /local/builts/phaeaco-20031119/src/memview/memview.exe = L"Z:\LOCAL\BUILTS\PHAE~WVJ\SRC\MEMVI\ EW\MEMVIEW.EXE" Segmentation fault
(Note: I had renamed the file "memview.exe.so" to "memview.exe").
I haven't looked into and tried to fix GetFullName yet but will do so next week. Of course, I hope somebody who knows the code well will come up with a fix before I try. :-)
Thanks for the Wine, Ralf