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
