Do we need to bump the shared library version for 2.4.0?

Simon Josefsson simon at josefsson.org
Wed Jun 4 15:54:21 CEST 2008


Joe Orton <joe at manyfish.co.uk> writes:

> On Mon, May 26, 2008 at 04:31:31PM +0200, Simon Josefsson wrote:
>> 3) Don't increment the shared library version at all.
>> 
>>    The justification would be that we haven't removed any symbols, all
>>    symbols in libgnutls-extra are still available via libgnutls and work
>>    the same way.  The only thing that would break here is if someone is
>>    dlopen'ing libgnutls-extra.so and calls the openpgp related
>>    functions.  Strictly speaking I'm not sure this is a valid approach,
>>    since we HAVE removed symbols from libgnutls-extra.
>
> Having looked into this, I can't see why that would break.  dlsym() will 
> still find the symbols since libgnutls-extra.so is linked against 
> libgnutls; the wording in POSIX is very specific that this must be the 
> case.  Attached a test case which finds gnutls_malloc via dlopen of 
> libgnutls-extra.so for PoC.
>
> So I think it's very reasonable to argue that the ABI of libgnutls-extra 
> has not changed in this case and no soname bump is necessary.

But what about non-ELF or even systems without shared libraries?

Possibly we could decide that systems that doesn't behave like Linux
here are of too little concern to us, and that they will need to remove
the old libgnutls* when they install gnutls 2.4.x.  It would be good to
know if there is any significant system that will be affected before
deciding this though.  I'll try to build gnutls 2.2 and 2.3 on solaris
and see if I can run an openpgp application linked to 2.2 with the 2.4
libraries.

Maybe we should ask on the Libtool list, or some shared library guru
like Uli...

/Simon





More information about the Gnutls-devel mailing list