This is the mail archive of the
mailing list for the libstdc++ project.
Re: Dealing with C++98/11 ABI incompatibilities
- From: Jason Merrill <jason at redhat dot com>
- To: GCC <gcc at gcc dot gnu dot org>
- Cc: libstdc++ <libstdc++ at gcc dot gnu dot org>, Jakub Jelinek <jakub at redhat dot com>, Jeffrey Yasskin <jyasskin at google dot com>
- Date: Tue, 03 Jul 2012 17:01:29 -0400
- Subject: Re: Dealing with C++98/11 ABI incompatibilities
- References: <4FF3458A.firstname.lastname@example.org>
On 07/03/2012 03:18 PM, Jason Merrill wrote:
It seems that ELF symbol versioning could be useful for this purpose. If
we were to extend the visibility attribute to also handle symbol
versions, that could handle a lot of issues. If Wrap uses the GLIBCXX_4
version of string, then Wrap would also be marked with the GLIBCXX_4
version, and any functions that deal with Wrap would be marked with that
version, and so on.
I'm not familiar enough with the intricacies of ELF versioning to be
confident that this would work; is anyone else? In particular I'm not
sure how the interaction of versioned and non-versioned code will work.
Jakub pointed out to me on IRC that there's no way to specify the
version of an undefined symbol, which would be necessary to make this
work. So we're back to some change to the mangled name.