(not) breaking the ABI

Theodore Papadopoulo Theodore.Papadopoulo@sophia.inria.fr
Wed May 25 14:17:00 GMT 2005

On Wed, 2005-05-25 at 14:28 +0100, chris jefferson wrote:
> d) Change a function so does something fundamentally different, as you
> don't know which the linker will choose to pull in (you can of course 
> just give your new function a new signiture and delete the old one).

You certainly cannot delete the old function expect maybe if it is a
private method. Am I missing something ?

Also, all what is templated is recompiled anyway, so ABI breakage is not
happening when you do 

> a) turn a POD into a non-POD
> b) add or remove virtual member functions of classes/structs
> c) add or remove data members of classes.

one of these for a class template that is not instantiated in the
library.so. So changes in eg containers (vector,list) seem to not incur
any breakage.

By the way while looking at the symbols in libstdc++ and at the includes
in  the src directory, I found that misc-inst.cc includes: algorithm,
vector and bits/atomicity.h. Can someone explain why they are included
in that file ??? That seems strange...

More information about the Libstdc++ mailing list