Subject: CVS commit: pkgsrc
To: None <source-changes@netbsd.org>
From: Michael Graff <explorer@netbsd.org>
List: source-changes
Date: 11/05/1999 23:37:35
Module Name: pkgsrc
Committed By: explorer
Date: Sat Nov 6 07:37:35 UTC 1999
Modified Files:
pkgsrc/devel/mit-pthreads: Makefile
Log Message:
Fix a rather nasty problem with signals, namely SIGCHLD, that prevented
running threaded binaries if SIGCHLD was set to SIG_IGN. What happens is
that pthreads uses either sigaction() or signal() to set up signals when
switching thread state. It used HAVE_SYSCALL_SIGACTION to decide which to
use. But, while we have a FUNCTION called sigaction(), the syscall is
__sigaction14, which caused HAVE_SYSCALL_SIGACTION to not be defined.
This would have been ok if the pthread kernel didn't assume signal would
return 0 for success and non-zero for failure. Signal() returns the
previous handler. SIG_IGN != 0, so pthreads thought the call failed.
Resulting in a call to abort().
To generate a diff of this commit:
cvs rdiff -r1.22 -r1.23 pkgsrc/devel/mit-pthreads/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.