[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#748535: transition: gnutls28



On Tue, May 20, 2014 at 19:47:48 +0200, Andreas Metzler wrote:

> On 2014-05-20 Julien Cristau <jcristau@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

Attachment: signature.asc
Description: Digital signature


Reply to: