Subject: Re: bind9 on -current/sparc (pthread problem?)
To: Martin Husemann <martin@duskware.de>
From: Christian Limpach <chris@pin.lu>
List: current-users
Date: 01/11/2004 16:15:08
From: "Martin Husemann" <martin@duskware.de>
> On Sun, Jan 11, 2004 at 02:21:10PM +0100, Markus W Kilbinger wrote:
> >   Loaded symbols for /usr/lib/libc.so.12
> >   #0  0x1039b760 in pthread__lock_ras_end () from
/usr/lib/libpthread.so.0
> >   (gdb) bt
> >   #0  0x1039b760 in pthread__lock_ras_end () from
/usr/lib/libpthread.so.0
> >   #1  0x1039b8d8 in pthread_spinlock () from /usr/lib/libpthread.so.0
>
> Huh, did I botch something? While sparc64 does define __HAVE_RAS, the
sparc
> port should not do it. So libpthread should use pthread__atomic_simple_*,
> and not pthread__ras_simple_*.
>
> But maybe the stack is just confused?

we use: (pthread__lockprim_init in pthread_lock.c)
 if (ncpu == 1 && rasctl((void *)pthread__lock_ras_start,
     (size_t)((uintptr_t)pthread__lock_ras_end -
              (uintptr_t)pthread__lock_ras_start),
     RAS_INSTALL) == 0) {
to decide which locking operations to use.  You can check which are used by
looking at pthread__lock_ops, which should be either pthread__lock_ops_ras
or pthread__lock_ops_atomic.

    christian