summaryrefslogtreecommitdiff
path: root/lib/signal.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/signal.in.h')
-rw-r--r--lib/signal.in.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/signal.in.h b/lib/signal.in.h
index ce844b1a9cc..9e140ca5e83 100644
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -20,6 +20,12 @@
#endif
@PRAGMA_COLUMNS@
+/* Deactivate the mingw <pthread_signal.h>, that provides an unusable definition
+ of pthread_sigmask(). We need to do this before including <signal.h>. */
+#ifndef WIN_PTHREADS_SIGNAL_H
+#define WIN_PTHREADS_SIGNAL_H
+#endif
+
#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _@GUARD_PREFIX@_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T)
/* Special invocation convention:
- Inside glibc header files.
@@ -68,12 +74,13 @@
/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD < 5.1, Solaris 2.6, Android,
OS/2 kLIBC declare pthread_sigmask in <pthread.h>, not in <signal.h>.
- But avoid namespace pollution on glibc systems.*/
+ But avoid namespace pollution on glibc systems. */
#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
&& ((defined __APPLE__ && defined __MACH__) \
|| (defined __FreeBSD__ && __FreeBSD__ < 8) \
|| (defined __OpenBSD__ && OpenBSD < 201205) \
- || defined __sun || defined __ANDROID__ \
+ || (defined __sun && !defined __cplusplus) \
+ || defined __ANDROID__ \
|| defined __KLIBC__) \
&& ! defined __GLIBC__
# include <pthread.h>