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: [RFC] C++1x breaking the ABI in one more place :(


Ian Lance Taylor wrote:

> Hmmm, that is true.  Perhaps we need a way to include a version number
> in the symbol mangling. 

There was a proposal at one point to implement HP's mangling algorithm
in G++.  They had a method that did mangle version numbers all the way
through the symbols.  But, here, I think you really want there to be
only one std::foo type in your program.

The problem is that in C++ much, much more is exposed to applications
than in C.  That's also the benefit; you can do all this inlining and so
forth.  But, in C your ABI is generally functions (which can be
versioned) and data structures (which are often pointers opaque to the
application).  In C++, with so much of the library in header files, API
changes are much more likely to lead to ABI breakage.

> It appears that the C++ ABI committee unfortunately did not consider
> how to handle ABI changes over time.

I think we ought to just plan for an increment in the libstdc++.so
version number.  We should do that when we think we have all the
ABI-breaking changes implemented.  The world won't end if we don't
implement some C++1x changes until that point.

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713


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