[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shared library versioning

On Thu, Jul 07, 2005 at 06:45:13PM +0200, Alexis.Papadopoulos@imag.fr wrote:
> > That is just plain wrong. :-) With templates, you are supposed to
> > provide the template implementation either in the header or in a file
> > included by the header (convention is to name them .tcc and place them
> > next to the header). The usual rule applies: Everything that does not
> > generate code by itself should be in a header file.

> Well I did say that : "The .h file has to include the .cc one in order for the
> compilation to work."
> Now if you decide to leave the code that I put into g.cc only the .h file, it
> works too...

> > Yes, so the ABI doesn't change in this case.

> It doesn't, and the modification isn't very important so it isn't a problem. But
> that was only an example, but the body of g can be modified in a way where it
> could lead to a failure (because of the use of templates), therefore the SONAME
> muste be changed so as to force usage of the new library.

The SONAME refers to the ABI of the *shared library*.  Any template-related
code that's included in the C++ headers is not, itself, part of the shared
library, so that's no reason to change the SONAME.

Steve Langasek
postmodern programmer

Attachment: signature.asc
Description: Digital signature

Reply to: