On Sun, May 08, 2005 at 05:46:49PM +0200, Peter Eisentraut wrote:
> Kurt Roeckx wrote:
> > If my memory is any good, pthread_kill_other_threads_np is
> > a linuxthreads extention and is not part of standard posix
> > threads. On amd64 we only have NPTL and do not have
> > linuxthreads.
>
> How is this then a bug with licq? A package is free to choose its build
> dependencies. If a port can't provide them, then that's the port's
> fault.
And if a port has a problem with a package not being able to
build, they file a bug report so that the maintainer of the
package is aware of the problems, or other people who wonder why
it's not available know why it's not. And that is what this is
all about.
pthread_kill_other_threads_np() is obviously part of pthread, the
posix threads. Posix does not define such a function.
Linuxthreads added an extention because linuxthreads is a hack,
and had no better way to deal with the problem. The problem is
that on linuxthreads you need to kill all other threads in some
cases which aren't normally needed, like for instance before calling
exec*(). On NPTL this is done automaticly and you do not need to
go and kill them manually.
On all arches in Debian, we have linuxthreads, except for the
amd64. Amd64 does not have it because we only support a 2.6
kernel, and on a 2.6 kernel you use NPTL. There is no reason for
us to have linuxthreads. On other arches, it selects either
linuxthreads or nptl at runtime depending on your kernel version.
This is even a problem for some programs and you might need to
set LD_ASSUME_KERNEL to get some programs working properly.
In version 1.3.0 you'll find this code in
./src/sighandler.c:licq_handle_sigsegv():
#ifdef HAVE_PTHREAD_KILL_OTHER_THREADS_NP
// only available in LinuxThreads, not in NPTL
pthread_kill_other_threads_np();
#endif
I suggest you do the same thing if you want licq to make it in amd64
sarge.
Kurt
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]