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.

Attachment: 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

Reply via email to