On 11/16/2011 06:04, Ruben Van Boxem wrote: > 2011/11/15 Erik Leunissen <[email protected]> > >> Hi all, >> >> Having used mingw for years as a linux-i686 hosted cross compiler >> targeting mingw32, I've recently installed an automated build[*] of a >> cross-toolchain to generate 64bit binaries (hosted on the same platform >> linux-i686). >> >> [*] downloaded from the MinGW-w64 project site at sourceforge.net >> >> While the toolchain works great (thanks a lot!), a few related questions >> have arisen regarding the prefixes used for the file names of >> executables in /bin. >> >> In case of my 32bit toolchain, I'm seeing "i386-mingw32" as a prefix. >> (And to indicate the target platform in my build configuration, I've >> been using "mingw32" all along.) >>
mingw-w64 versions are normally i686-w64-mingw32 prefixed, note the "w64" part. There isn't a mingw-w64 release that uses that triplet afaik. If a mingw-w64 toolchain uses "pc", it is either very ancient, or in compatibility mode with mingw.org, though the latter case is a rarity that often causes more problems than it attempts to solve. The "w64" part is recognized as a keyword by the gcc toolchain to activate more features specific to mingw-w64. >> In the case of the 64bit toolchain I'm seeing "x86_64-w64-mingw32" as a >> prefix, where I expect something like "x86_64-mingw64". Especially the >> combination of w64 and mingw32 is surprising to me. (And I've been >> expecting to be able to use "mingw64" as a name for target platform.) >> The mingw32 part was chosen for compatibility, so it stuck. Its easier to work through 32/64-bit incompatibility than to redo all those scripts to recognize mingw64. Also, note the "w64" part. >> It appears that I'm needing some education about the current naming >> logic, and I'd be very happy to receive that. >> >> Am I wrong in indicating the target platform for 64bit windows binaries >> as "mingw64"? >> > > This probably is mentioned somewhere on the wiki, but heck, here goes: > The "x86_64-w64-mingw32" and "i686-w64-mingw32" are target triplets: > - The first part is the archtecture: x86_64 (64-bit) and i686 (32-bit) > - w64 is the "vendor" part, usually it's pc, unknown, gnu, etc... > - mingw32 is the OS part. The 32 is somewhat confusing, but derived from > Win32, the API that all desktop Windows versions adhere to and use. It has > nothing to do with architecture. > Yes, all Windows API is called Win32 regardless of bitness. > There were movements to rename mingw32 to mingw, but that never happened > for some strange unknown-to-the-world reason. > This renaming fixes little to none at all, it will break who-knows-what ancient packages that still lurk out there. > MinGW.org (the "mingw32" as you and pretty much the rest of the > cross-compiling world call it) misused its "monopoly" before MinGW-w64 and > was lazy, reducing the triplet to a single string: mingw32, or if they were > a bit nicer, i?86-mingw32. > Arguably, they were the only ones around, so monopoly is natural, now we have to fix all of it. Its still better than software that assume windows target == MSVC.
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
