Hi,
I spent some time cross compiling all of Wine with MinGW according to this recipe:
http://winehq.com/?issue=123#Cross-compiling Wine
and I thought you might be interested in the results. I can report a bug in Wine's makefiles right away: having those vxd's in subdirectories that end in .vxd causes make to barf on targets like this one:
ifsmgr.vxd$(DLLEXT): ifsmgr.vxd/ifsmgr.vxd$(DLLEXT) $(RM) $@ && $(LN_S) ifsmgr.vxd/ifsmgr.vxd$(DLLEXT) $@
because, if $(DLLEXT) is empty, it will try to create a link with a name that's already there as a directory.
Of all dlls these don't compile:
x11drv kernel32 gdi32 ws2_32 comctl32 icmp iphlapi msvcrt ntdll rpcrt4 shlwapi vnb.vxd wininet wsock32
x11drv, kernel32, gdi32 and ntdll being predictable, because they build directly on X11 and Unix API's. Same goes for the networking related dlls (ws2_32, icmp and iphlpapi, vnb.vxd, wininet, wsock32). msvcrt is close to building because what I saw was mostly header clashes, which could be fixed with proper guards I think.
rpcrt4 fails because it uses one Unix API, gettimeofday, and both comctl32 and shlwapi suffer from the bug in dlltool that Dmitry reported and fixed recently.
-Hans