On Tue, May 20, 2014 at 19:47:48 +0200, Andreas Metzler wrote: > On 2014-05-20 Julien Cristau <jcris...@debian.org> wrote: > > On Mon, May 19, 2014 at 19:04:43 +0200, Julien Cristau wrote: > > > On Sun, May 18, 2014 at 08:52:53 +0200, Andreas Metzler wrote: > [...] > > > Apparently loading both versions of gnutls in the same process leads to > > > crashes. That screams at bugs in gnutls symbol versioning. Are you > > > aware of such issues? > > BTW: Do you have a reference to (one of) these issues? > Andreas Henriksson was having issues with totem-pl-parser. IIRC he had a backtrace mixing the two gnutlses. They're no longer on paste.debian.net though so I'm hoping he'll be able to fill the gaps :)
> > So one issue seems to be that while gnutls26 and gnutls28 use versioned > > symbols, they use the same versions for their symbols. Meaning you get > > the same issues as without versions, i.e. calling some functions from > > each. Is there a good reason gnutls28 can't use its own separate set of > > symbol versions? > > Afaict it originated here > http://lists.gnu.org/archive/html/gnutls-devel/2007-02/msg00006.html > and somehow actually appeared at some later point starting here > <https://www.gitorious.org/gnutls/gnutls/commit/5fe8d8687eb193df0c105e2e6fe926e3676b1bb8> > and there was some discussion following > <http://lists.gnu.org/archive/html/gnutls-devel/2009-05/msg00067.html> > > The main rationale seemed to be that one gets better automatic > dependency info on rpm based distributions. (I have not used rpm for a > long time, so I do not know.) As a side-effect it helps as > documentation. > > Anyway, my understanding of symbol versioning is that > soname.0: foo@0 bar@0 > soname.1 foo@0 bar@1 baz@1 > would work perfectly well if foo() did exactly the same thing in > soname.0 and soname.1 and it would not matter whether the version from > soname.0 or soname.1 was chosen at runtime. And that was what upstream > was aiming for. Obviously it is a lot easier to get wrong. > Indeed. > Afaik it is not possible to change the versioning scheme and move from > soname.1 foo@0 bar@1 baz@1 > to > soname.1 foo@1 bar@1 baz@1 > without breaking the ABI, is it? > Yep. I wonder if building gnutls with -Bsymbolic wouldn't already be an improvement, by avoiding internal calls getting resolved to the wrong lib... Cheers, Julien
signature.asc
Description: Digital signature