Re: Concerns regarding some library functions

Subject: Re: Concerns regarding some library functions

Date: Thu, 29 Sep 2011 16:15:36 -0400

To: David Bremner

Cc: notmuch@notmuchmail.org

From: Austin Clements


Quoth David Bremner on Sep 29 at  4:59 pm:
> On Thu, 29 Sep 2011 10:51:29 -0400, Austin Clements <amdragon@MIT.EDU> wrote:
> 
> > Yes.  We could just deal with that (there aren't *that* many API
> > consumers).  For binary compatibility, I suppose we could even use
> > symbol versioning.
> 
> I noticed a similar remark in lib/Makefile.local. But I'm not sure how
> this work if the interface of a given library function changed.  Can
> someone point me to some more explanation? 

With symbol versioning we'd still provide the old function (presumably
re-implemented in terms of the new function).  Both would wind up in
the .so and old binaries would still link against the old symbol.  It
doesn't help that much once something gets recompiled; assuming the
source isn't requesting a specific version of a symbol, it will try to
use the latest version.

That, however, is about the extent of my knowledge on symbol
versioning.  It's possible this simply doesn't work with symbols that
don't already have a version; I'm not sure.

Thread: