[patch][pr12684] Use the new mingw abi

Rafael EspĂ­ndola rafael.espindola at gmail.com
Tue Nov 19 13:30:08 PST 2013


On 19 November 2013 16:20, Reid Kleckner <rnk at google.com> wrote:
> I guess this is http://llvm.org/bugs/show_bug.cgi?id=12684 .
>
> Is this worth a flag, or should we just tell people to go use 3.3?

I can add a flag, but note that 3.4 already branched. I would not
backport this patch to 3.4. So we would have

* 3.4 builds with gcc >= 4.5 and uses the gcc 4.6 abi on mingw
* 3.5 build with gcc >= 4.7 and uses the 4.7 abi on mingw.

> GCC
> seems to have an -mabi=(sysv|ms) flag that looks like a much weaker form of
> our -cxx-abi flag, in that it only tries to solve COM ABI compatibility.
>
> gcc users appear to wish they had a flag
> (http://gcc.gnu.org/ml/gcc/2012-05/msg00325.html), but the only reason that
> particular user wanted a flag was due to our own mingw ABI incompatibility!
> Oops.
>
> ----
>
> There's one other huge thing here: "- Windows mingw targets are using the
> -mms-bitfields option by default."
>
> Our -[fm]ms-bitfields support is not very good.  The logic is now duplicated
> between MicrosoftRecordLayoutBuilder and the normal RecordLayoutBuilder, and
> I've heard from Warren that the existing logic is incorrect in some cases
> anyway.
>
> IMO we should factor it so that have separate code doing the C++ object
> record layout which then calls down into shared bitfield layout code when it
> encounters a string of bitfields.

I might end up looking at this. I got into this by trying to bootstrap
with mingw to test a completely different issues :-(

Cheers,
Rafael



More information about the cfe-commits mailing list