My experience with symbol versioning is a few years ago with php.

They were able to use symbol versioning giving benefits on platforms that supported it.

I'm not clear in this case of symbol versioning provides optional benefits or would be a requirement.

I vote to not require gnu ld, but to use it to full advantage where available.

Sam


-----Original Message-----
From: Stefan (metze) Metzmacher
Sent: 05 June 2008 18:31
To: Stefan (metze) Metzmacher
Cc: Gerald (Jerry) Carter ; Samba Technical
Subject: Please vote! (Re: Symbol versioning)

Hi *,

>>> 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?


I've done some further testing with compat libraries.
And they work fine, but only without symbol versioning.
Compat libraries together with symbol versioning works for some cases
and maybe there's some more magic to get it working for every case,
but I don't nḱnow a solution yet:-(

I'm fine with removing symbol versioning again...

So please vote now, what we should do.

metze