[3.10] bpo-41498: Fix build on platforms without sigset_t (GH-29770) (GH-29773)
(cherry picked from commit dc19e8698327cae3d6274b73c135375955f1d0d0)
Co-authored-by: Christian Heimes <christian@python.org>
Automerge-Triggered-By: GH:tiran
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 5c4ed18..96881d4 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -58,6 +58,8 @@ module signal
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b0301a3bde5fe9d3]*/
+#ifdef HAVE_SETSIG_T
+
/*[python input]
class sigset_t_converter(CConverter):
@@ -66,6 +68,7 @@ class sigset_t_converter(CConverter):
[python start generated code]*/
/*[python end generated code: output=da39a3ee5e6b4b0d input=b5689d14466b6823]*/
+#endif
/*
NOTES ON THE INTERACTION BETWEEN SIGNALS AND THREADS
@@ -930,6 +933,7 @@ signal_getitimer_impl(PyObject *module, int which)
#endif // HAVE_GETITIMER
+#ifdef HAVE_SIGSET_T
#if defined(PYPTHREAD_SIGMASK) || defined(HAVE_SIGPENDING)
static PyObject*
sigset_to_set(sigset_t mask)
@@ -1061,9 +1065,9 @@ signal_sigwait_impl(PyObject *module, sigset_t sigset)
}
#endif /* #ifdef HAVE_SIGWAIT */
+#endif /* #ifdef HAVE_SIGSET_T */
-
-#if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS)
+#if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS)
/*[clinic input]
signal.valid_signals
@@ -1101,7 +1105,8 @@ signal_valid_signals_impl(PyObject *module)
#endif
}
-#endif /* #if defined(HAVE_SIGFILLSET) || defined(MS_WINDOWS) */
+#endif /* #if (defined(HAVE_SIGFILLSET) && defined(HAVE_SIGSET_T)) || defined(MS_WINDOWS) */
+
#if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT)
@@ -1166,6 +1171,7 @@ fill_siginfo(siginfo_t *si)
}
#endif
+#ifdef HAVE_SIGSET_T
#ifdef HAVE_SIGWAITINFO
/*[clinic input]
@@ -1268,6 +1274,7 @@ signal_sigtimedwait_impl(PyObject *module, sigset_t sigset,
}
#endif /* #ifdef HAVE_SIGTIMEDWAIT */
+#endif /* #ifdef HAVE_SIGSET_T */
#if defined(HAVE_PTHREAD_KILL)