summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/signal.in.h11
2 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 730460b591..88bd009004 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-09-18 Bruno Haible <bruno@clisp.org>
+
+ signal: Fix a C++ compilation error due to sched_yield on OpenBSD 6.0.
+ * lib/signal.in.h: On OpenBSD, include <sys/param.h>. Don't include
+ <pthread.h> on OpenBSD ≥ 5.1.
+
2022-09-17 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero-tests: robustify a bit
diff --git a/lib/signal.in.h b/lib/signal.in.h
index 5d2d80c99d..c0d4848db0 100644
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -55,12 +55,19 @@
#ifndef _@GUARD_PREFIX@_SIGNAL_H
#define _@GUARD_PREFIX@_SIGNAL_H
-/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android,
+/* For testing the OpenBSD version. */
+#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
+ && defined __OpenBSD__
+# include <sys/param.h>
+#endif
+
+/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD < 5.1, OSF/1 4.0, Solaris 2.6, Android,
OS/2 kLIBC 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__ && __FreeBSD__ < 8) || defined __OpenBSD__ \
+ || (defined __FreeBSD__ && __FreeBSD__ < 8) \
+ || (defined __OpenBSD__ && OpenBSD < 201205) \
|| defined __osf__ || defined __sun || defined __ANDROID__ \
|| defined __KLIBC__) \
&& ! defined __GLIBC__