changeset 15368:6f48a9a9a38e

pthread_sigmask: Ensure declaration in <signal.h>. * lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, include <pthread.h>. * doc/posix-functions/pthread_sigmask.texi: Mention the header file problem.
author Bruno Haible <bruno@clisp.org>
date Fri, 08 Jul 2011 02:24:27 +0200
parents eec152efe2a3
children ff0056fd6295
files ChangeLog doc/posix-functions/pthread_sigmask.texi lib/signal.in.h
diffstat 3 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+	pthread_sigmask: Ensure declaration in <signal.h>.
+	* lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, include
+	<pthread.h>.
+	* doc/posix-functions/pthread_sigmask.texi: Mention the header file
+	problem.
+
 2011-07-07  Bruno Haible  <bruno@clisp.org>
 
 	pthread_sigmask: Document the module.
--- a/doc/posix-functions/pthread_sigmask.texi
+++ b/doc/posix-functions/pthread_sigmask.texi
@@ -11,6 +11,10 @@
 @item
 This function is missing on some platforms:
 Solaris 2.4, mingw, BeOS.
+@item
+This function is declared in @code{<pthread.h>} instead of @code{<signal.h>}
+on some platforms:
+MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -55,6 +55,15 @@
 #ifndef _@GUARD_PREFIX@_SIGNAL_H
 #define _@GUARD_PREFIX@_SIGNAL_H
 
+/* MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0 declare pthread_sigmask in
+   <pthread.h>, not in <signal.h>.
+   But avoid namespace pollution on glibc systems.*/
+#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
+    && ((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__) \
+    && ! defined __GLIBC__
+# include <pthread.h>
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */