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: libstdc++ c++98 & c++11 ABI incompatibility


Hi,

On 07/02/2012 07:24 PM, Richard Guenther wrote:
On Mon, Jul 2, 2012 at 7:00 PM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
On 2 July 2012 17:43, Jeff Law <law@redhat.com> wrote:
On 07/02/2012 10:26 AM, Michael Meeks wrote:

On Thu, 2012-06-14 at 15:14 +0200, Matthias Klose wrote:
While PR53646 claims that c++98 and c++11 should be ABI
compatible (modulo bugs), the addition of the _M_size member
to std::_List_base::_List_impl makes libraries using
std::list in headers incompatible

This is pretty nasty for LibreOffice (and no doubt others). We can, and often do depend on rather a number of system C++ libraries and at a very minimum, having no simple way to detect which C++ ABI we have to build against 'old' vs. 'new' - is profoundly unpleasant.

         Is there no chance of having a bug fix that is a revision of the
(unintended?) ABI breakage in this compiler series ?
That's the direction I'd prefer to see (reversion until we're ready to make
the wholesale ABI changes).  Not sure what the libstdc++ maintainers are
thinking right now.
I'm wondering why the libstdc++ list was taken out of the CC list ;-)

I don't know what the others think but rather than just reverting it
 From a RM point of view please go ahead and revert unintended ABI
breakage on all affected branches.  Add an entry to the respective
changes file to warn users about the incompatibility present on branches.
I cannot say to have followed all the details of this discussion (neither to fully agree with quite a few statements I read in it ;) but since I added the _M_size member in 4_7-branch (to fix 49561 and of course in order to provide C++11 conforming complexities for the various operations) I'm simply going to revert the change from branch and mainline. Consider it done. Then, it would be great if Jon could devise something more sophisticated, not throwing away the baby, so to speak ;)

I also want to mention (I don't think somebody did already in the thread) that at some point, with Jason too, we discussed the idea of adding to each binary a marker about the ABI version which then would be used by the linker to warn or error out. This vague idea goes of course well beyond our specific needs for the C++98 conforming std::list vs the C++11 conforming version of it.

Thanks,
Paolo.


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