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