Symbol versioning

simo idra at samba.org
Mon May 26 15:26:12 GMT 2008


On Mon, 2008-05-26 at 17:10 +0200, Stefan (metze) Metzmacher wrote:
> Hi Jerry,
> 
> >> I discussed that again with Volker, Karolin and Michael
> >> again and added it, but I also added a --enable-symbol-versioning
> >> which defaults to yes if gnu ld is used.
> > 
> > Metze, these off list discussion to decide things are not good.
> > No offense.  I know you all work together in the same office, but....
> 
> Yes, you're absolutely right.
> 
> >> We can still use a different way and update the library version
> >> and have compat libraries to handle updates
> > 
> > So now we have two different mechanisms to maintain.  Wonderful.
> 
> The things I would like to have are these:
> 
> - Make it possible to use an old smbd with a newer winbindd
> - Make it possible to use a new smbd against an older winbindd
> 
> Using symbol versioning makes that easy, as the binary always
> links against the same library soname. So a new smbd would still
> load with an old libwbclient, because the soname of the new library
> is the same and smbd only uses functions of the old interface
> and has references to the old versioned symbols only.
> Other tools like wbinfo would not be able to load with an old
> library as it will also have references to new functions.
> 
> But as we've currently symbol versioning only when using gnu ld
> it's not available on every platform we support.
> 
> We could also work with compat libraries (as you proposed, but)
> in both directions, one compat library that provides the old interfaces
> against a new library and also a library that provides the new interface
> against an old library implementing the new functions as stubs
> returning WBC_ERR_NOT_IMPLEMENTED.
> 
> I'm currently doing some testing with compat libraries and
> they may have also some portability problems, I'll continue
> some testing tomorrow and will come back with the results then.
> 
> If the compat libraries support all we need, we can think about
> removing symbol versioning and create a rc2 release...ok?

To be honest, from a distribution PoV i'd rather much prefer keeping
symbol versioning.

Although I do not have any problem updating all the components at the
same time it usually makes for a better experience.

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Senior Software Engineer at Red Hat Inc. <ssorce at redhat.com>



More information about the samba-technical mailing list