On Thursday, March 28, 2013, Óscar Fuentes  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chandler Carruth <<a href="javascript:;" onclick="_e(event, 'cvml', 'chandlerc@google.com')">chandlerc@google.com</a>> writes:<br>

<br>
>> And here there is no "Windows ABI" here at all. Because every compiler<br>
>> (MSVC, gcc / clang, Borland) does its own stuff. This is why I said<br>
>> that the proposal naming is confusing.<br>
>><br>
><br>
> I don't know anything about Borland, and I don't think that matters. But I<br>
> think that the Windows ABI is, and really must be, the ABI followed by the<br>
> system compiler: MSVC.<br>
<br>
MSVC is not the system compiler. Certainly, it is not distributed with<br>
the system. Actually, MSVC was a secondary player on Windows for a long<br>
time, with several other C++ ABI-incompatible options available.</blockquote><div><br></div><div>It isn't shipped with the system, but it's freely available as part of the Windows SDK, and most binary library packages for Windows are shipped as MSVC binaries.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
This is so wrong.<br>
<br>
OTOH, do you really want to present MSVC++ as the canonical Windows<br>
compiler? That not only puts down MinGW (let's forget about the<br>
propietary Borland/Embarcadero compiler for a moment) but it is against<br>
Clang++ too, which is not going to reach MSVC++ compatibility anytime<br>
soon, but it is not far away from being usable for Windows development,<br>
as MinGW g++ is. You are effectively proposing that we should send the<br>
message that Clang++ is a second class citizen on Windows development.<br>
</blockquote><div><br></div><div>*-*-win32 and *-*-mingw32 are different targets. Aside from C++, it's useful to be able to use Clang as an MSVC compatible C99 compiler, since MSVC itself only supports C89, and it's useful for LLVM to be usable by other frontends that want MSVC compatibility. The win32 target can provide that independent of the mingw target, which should of course remain compatible with mingw's ABI.</div>
<div><br></div><div>-Joe<span></span></div>