[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/posixmodule.c b/Modules/posixmodule.c
index 18761cc..03de470 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -5930,6 +5930,7 @@ parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpg
}
+#ifdef HAVE_SIGSET_T
if (setsigmask) {
sigset_t set;
if (!_Py_Sigset_Converter(setsigmask, &set)) {
@@ -5955,6 +5956,13 @@ parse_posix_spawn_flags(PyObject *module, const char *func_name, PyObject *setpg
}
all_flags |= POSIX_SPAWN_SETSIGDEF;
}
+#else
+ if (setsigmask || setsigdef) {
+ PyErr_SetString(PyExc_NotImplementedError,
+ "sigset is not supported on this platform");
+ goto fail;
+ }
+#endif
if (scheduler) {
#ifdef POSIX_SPAWN_SETSCHEDULER