Re: Symbol versioning errors in libthr

From: Alexander Kabaev <kabaev_at_gmail.com>
Date: Sun, 3 Feb 2008 12:11:12 -0500
On Sun, 3 Feb 2008 18:29:18 +0200
Kostik Belousov <kostikbel_at_gmail.com> wrote:

> On Sun, Feb 03, 2008 at 08:59:45AM -0700, Peter Wemm wrote:
> > On Feb 3, 2008 8:16 AM, Dag-Erling Sm?rgrav <des_at_des.no> wrote:
> > > Here's an excerpt from the RELENG_7 vs HEAD diff of libthr's
> > > symbol map:
> > >
> > > --- pthread.map 13 May 2007 14:12:39 -0000      1.18
> > > +++ pthread.map 20 Dec 2007 04:32:28 -0000      1.21
> > > _at__at_ -84,9 +84,13 _at__at_
> > >         pthread_multi_np;
> > >         pthread_mutex_destroy;
> > >         pthread_mutex_getprioceiling;
> > > +       pthread_mutex_getspinloops_np;
> > > +       pthread_mutex_getyieldloops_np;
> > >         pthread_mutex_init;
> > >         pthread_mutex_lock;
> > >         pthread_mutex_setprioceiling;
> > > +       pthread_mutex_setspinloops_np;
> > > +       pthread_mutex_setyieldloops_np;
> > >         pthread_mutex_timedlock;
> > >         pthread_mutex_trylock;
> > >         pthread_mutex_unlock;
> > >
> > > These functions are all in FBSD_1.0, but they were introduced
> > > after the branch and never MFCed, so if I understand how we've
> > > implemented symbol versioning, they should be in FBSD_1.1.
> > >
> > > Unless someone argues credibly for keeping them in FBSD_1.0, I
> > > will move them to FBSD_1.1 in a few days.
> > >
> > > DES
> > 
> > I'm not sure I see the point in that.  Consider the
> > not-moving-to-1.1 case.  If somebody takes an 8.0 binary and runs
> > it on 7.x, then they'll get a 'symbol not found' error.  On the
> > other hand, if they're moved and somebody tries the same thing,
> > then they still get the same kind of 'symbol not found' error but
> > with just one character different.
> Additional difference is that presence of the version itself is
> checked when the image is activated. This means that instead of abort
> in the middle of the execution since the
> rtld cannot find the symbol, the program gives error on the start.o
> 
> AFAIR, this is original (Sun) usage of the versioning, before GNU
> extended it to allow individual version per symbol.

This is absolutely correct description of the desired use of version
names, according to both GNU and Sun.
 
> I support DES to fix this in the proposed way.

Same here.
-- 
Alexander Kabaev

Received on Sun Feb 03 2008 - 16:11:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:26 UTC