This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: string/list ABI changes


On 03/02/2013 05:09 AM, Paolo Carlini wrote:
Then what about the rest, all the other things we want to change in the
new ABI? There are C++11 related changes (eg, that additional virtual in
time) + old issues we finally would be able to fix + things that in a
new ABI we would have the leeway to do better.

OK, maybe there are other types that we want to change as well.


I'm not sure to
understand whether, as I thought, for 4.9 we really want to globally
break the ABI by default.

I don't think so. I've seen a lot of push-back against the idea of globally breaking the ABI, and in any case I don't see how we could do that thoroughly enough to prevent symbol collisions between old and new code, especially if we want to maintain compatibility with the cross-vendor ABI. Changing the soname doesn't help at all with that issue.


It seems to me that Microsoft can get away with breaking their ABI all the time because they don't have the global symbol space that we have in ELF. Given that, all ABI changes need to either change affected mangled names or have the user decide that they don't care because they're going to rebuild the world anyway. But some of our users care very much.

On top of that providing some header-only
older versions (of eg, std::list) seem easy, otherwise we would have to
maintain forever two different ABIs at the same time, thus two different
versions of a large portion (consider the interactions with locale too)
of the library at the same time, something we never even attempted
(personally I'm not sure I want to be a pioneer in this area ;)

I don't see the interactions with locale as a big deal; we just need to compile affected things in the library in both modes. The additional maintenance burden is a hassle, but I think manageable.


Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]