On 06/09/2011 04:44 AM, Bruno Haible wrote: > Hi Eric, > >> the new cygwin cross-compiler for mingw: >> >> i686-pc-mingw32-gcc (GCC) 4.5.2 > > Ah, interesting. > > There is also a new cross-compiler i686-w64-mingw32-gcc.
And a new x86_64-w64-mingw32-gcc, as well! > It also produces > native Win32 executables. Do you know what's the difference between > i686-pc-mingw32 and i686-w64-mingw32? i686-pc-mingw32 is the old mingw32 project; it is not as actively maintained today, but is still the project used by cygwin. Right now, it uses dwarf exceptions. i686-w64-mingw32 is the new mingw (aka mingw64) project; it is currently more actively maintained, and the Fedora project is trying to switch over to this cross-compiler. However, it still uses sjlj exceptions (worse performance on C++ code). This generates 32-bit executables (despite the w64 in the name, and the mingw32 is a bit of a misnomer as well - but that's historical). x86_64-w64-mingw32 also stems from the mingw (aka mingw64) project; it is the 64-bit counterpart. There is work underway to make the mingw64 project a multilib compiler (one gcc producing either 32- or 64-bit executables depending on options), but it's not available on cygwin yet. If cygwin is ever ready for compilation on 64-bit windows, this would be the project to use; but it requires switching away from sjlj exceptions first. I could be misrepresenting things though; for more authoritative answers, ask Chuck Wilson on the cygwin lists for details about the current state of cygwin cross-compilers for mingw. -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature