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.