[gnutls-dev] Symbol versioning in gnutls 1.5.x

Werner Koch wk at gnupg.org
Tue Sep 26 13:16:04 CEST 2006

On Mon, 25 Sep 2006 19:30, Andreas Metzler said:

> That is absolutely no problem *iff* the respective libraries use
> proper symbol versioning. The GnuTLS dependency chain uses symbol

As long as the platform supports this.

> problem for applications linking against libtasn1.so.2, libtasn1.so.3,
> libgnutls12, libgnutls11 and libgnutls13 simultanously.

That really depends on the library. Conflicts may arise outside of the
symbol scope.  For example if a library opens a devices and requires
exclusive access.  The second instance of the library won't be able to
properly access this device then.  It does not know that a second
instance is already running.  Locking makes this even worse because it
is often based on the pid.

>> It does. That is the whole and only point of symbol versioning, you
> won't get symbol clashes and crashes. It is no coincidence; on
> architectures that support it, symbol versioning *does* work.

No.: It may work, but there is no guarantee for that.  Symbol
versioning solves the problem of maintaining a backward compatible
ABI.  It does not help when linking two instances of a library into
one process.



More information about the Gnutls-devel mailing list