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