Luis Lavena wrote:
>  On Wed, Jul 28, 2010 at 1:54 PM, Earnie
>  <[email protected]> wrote:
> >
> >>> My personal preference for a config.guess return string would
> >>> be x86_64-w64-mingw.
> >>>
> >>
> >> I believe this was already established as "x86_64-w64-mingw32" ?
> >>
> >
> > The problem with the -mingw32 here is it is confusing!!!  Changing
> > it to -mingw would remove the confusion and the WTF factor.  I
> > understand that other things may need to change if the string
> > changes and I am coming in late but I am striving for cohesiveness
> > between projects.
> >
>
>  I'm happy to hear this Earnie.
>
>  Just to clarify something:
>
>  i686-pc-mingw32 is what official MinGW project reports, and stand
>  for 32bits binaries.
>
>  i686-w64-mingw32 is what mingw-w64 project has set as platform for
>  32bits binaries compiled using their toolset
>
>  x86_64-w64-mingw32 is what mingw-w64 project has set as platform for
>  64bits binaries compiled using their toolset.
>
>  According to GNU triplets:
>
>  http://gcc.gnu.org/install/specific.html#x-x-mingw32
>

<snippet>
Intel 32-bit versions

The 32-bit versions of Windows, including Windows 95, Windows NT, 
Windows XP, and Windows Vista, are supported by several different target 
platforms. These targets differ in which Windows subsystem they target 
and which C libraries are used.

* Cygwin *-*-cygwin 
<http://gcc.gnu.org/install/specific.html#x-x-cygwin>: Cygwin provides a 
user-space Linux API emulation layer in the Win32 subsystem.
* Interix *-*-interix 
<http://gcc.gnu.org/install/specific.html#x-x-interix>: The Interix 
subsystem provides native support for POSIX.
* MinGW *-*-mingw32 
<http://gcc.gnu.org/install/specific.html#x-x-mingw32>: MinGW is a 
native GCC port for the Win32 subsystem that provides a subset of POSIX.
* MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ 
for more information.

Intel 64-bit versions

GCC contains support for x86-64 using the mingw-w64 runtime library, 
available from http://mingw-w64.sourceforge.net/. This library should be 
used with the target triple x86_64-pc-mingw32.

Presently Windows for Itanium is not supported.
</snippet>

Misinformation abounds and we cannot keep up with what others say.  For 
instance from *-*-mingw32 the description adds "provides a subset of 
POSIX" which is simply false.  We have never proclaimed to provide a 
subset of POSIX.  We have proclaimed additions to the windows runtime to 
provide ANSI C99 compliance.  There may be a few POSIX items we've added 
to aid in porting from POSIX to Windows API but only where there is a 
clear and logical method in Windows already and those are few.

>  The suggested target triplet for 64bits is x86_64-pc-mingw32
>
>  Notice the "pc" part, which indicates vendor "pc" (mingw.org) vs.
>  w64 (mingw-w64 project).
>

Yes, as I said misinformation abounds.

>  I undestand that 64, w64 and mingw32 all in one sentence can confuse
>  users (indeed it confuses me), but I believe is less confusing than
>  running:

The original project is MinGW, no 32.  It was named such so that when 64 
bit Windows was developed it would create *-*-mingw64 to imply a 64 bit 
Windows ABI.  The *-*-mingw32 is meant only to imply 32 bit Windows ABI 
as provided by the MinGW project.

>
>  sh -c "./config.guess"
>
>  and getting the completely wrong platform.
>
>  If supplying MSYSTEM=MINGW32-W64 can target i686-w64-mingw32 and
>  MSYS=MINGW64 can target x86_x64-w64-mingw32, I believe one less
>  error-prone and WTF moment could been eliminated.
>

This is just wrong.  *-*-mingw32 implies a target of 32 bit Windows ABI 
so MSYSTEM=MINGW32-W64 is meaningless.  I also think it is wrong to 
introduce i686-w64-mingw32 as a triplet, it should remain 
i686-pc-mingw32 regardless of which project is producing the binaries.

>  I appreciate all your comments. I can create a patch upstream for
>  this if we agree on the outcome.

Thanks for the offer for upstream patching but let's make sure everyone 
agrees before patching anything.

IMO, there should be only two triplets to identify MinGW (where MinGW is 
a reference to both projects).  The first part of the triplet identifies 
the CPU and for Windows that will be either i?86 or x86_64 and is 
derived from ``uname -m''.  The second part of the triplet identifies 
the processor ``uname -p'' which MSYS uname gives unknown but 
config.guess/config.sub can modified to the more commonly know *-pc-*.  
The third part of the triplet gives the kernel (or runtime) name ``uname 
-s'' and for MSYS this is where MSYSTEM comes into play.  Given this my 
opinion is that we should only have i[3456]86-pc-mingw32 and 
x86_x64-pc-mingw64.  Feel free to express your opinions.

I don't have a 64 bit windows machine to test on.  What does uname -m 
give for the value?

Earnie

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to