This is the mail archive of the
mailing list for the GCC project.
Default -fabi-version=0 for 4.9
- From: Jason Merrill <jason at redhat dot com>
- To: GCC <gcc at gcc dot gnu dot org>
- Cc: Mark Mitchell <mark at codesourcery dot com>
- Date: Mon, 04 Mar 2013 13:31:36 -0500
- Subject: Default -fabi-version=0 for 4.9
Our policy on mangling bugs has been that we don't change the mangling
unless users explicitly specify -fabi-version. Over time, this means
that quite a few bugs have been found but continue to accumulate. Most
of these are C++11-specific, which means that as users use C++11 more
frequently, the bugs are more likely to affect code in the wild.
For templates, it also seems to me that mangling changes have very
little negative impact; in most cases the worst that will happen is that
a program ends up with two compatible versions of the same function.
And none of the changes affect libstdc++.so. For non-template code, any
failures will be at link time, making them straightforward to deal with.
The only non-mangling ABI change since version 2 is to argument
promotion of C++11 scoped enums, and since we've been telling people
that they need to rebuild all their C++11 code with every major release
anyway, I don't think that's an obstacle.
So, for GCC 4.9 I would like to propose that we switch the default ABI
version to 0 so that by default we use the most correct mangling. If
people really need backward compatible mangling for some reason they can
specify the flag appropriately.