summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/signalmodule.c4
-rwxr-xr-xconfigure12
-rw-r--r--configure.ac2
-rw-r--r--pyconfig.h.in3
6 files changed, 25 insertions, 0 deletions
diff --git a/Misc/ACKS b/Misc/ACKS
index a5465a2af9..467f3aae0e 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1671,6 +1671,7 @@ Florent Xicluna
Arnon Yaari
Alakshendra Yadav
Hirokazu Yamamoto
+Masayuki Yamamoto
Ka-Ping Yee
Chi Hsuan Yen
Jason Yeo
diff --git a/Misc/NEWS b/Misc/NEWS
index 8a0dac9fb5..9d48ff8a0d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -173,6 +173,9 @@ Windows
Build
-----
+- Issue #21085: Add configure check for siginfo_t.si_band, which Cygwin does
+ not provide. Patch by Masayuki Yamamoto with review and rebase by Erik Bray.
+
- Issue #28258: Fixed build with Estonian locale (python-config and distclean
targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis.
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index e27075b200..bc36d41648 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -957,7 +957,11 @@ fill_siginfo(siginfo_t *si)
PyStructSequence_SET_ITEM(result, 4, _PyLong_FromUid(si->si_uid));
PyStructSequence_SET_ITEM(result, 5,
PyLong_FromLong((long)(si->si_status)));
+#ifdef HAVE_SIGINFO_T_SI_BAND
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));
+#else
+ PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(0L));
+#endif
if (PyErr_Occurred()) {
Py_DECREF(result);
return NULL;
diff --git a/configure b/configure
index 860135b298..cff8683541 100755
--- a/configure
+++ b/configure
@@ -13089,6 +13089,18 @@ _ACEOF
fi
+# Issue #21085: In Cygwin, siginfo_t does not have si_band field.
+ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include <signal.h>
+"
+if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGINFO_T_SI_BAND 1
+_ACEOF
+
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5
$as_echo_n "checking for time.h that defines altzone... " >&6; }
diff --git a/configure.ac b/configure.ac
index d3956325b8..8465afc963 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3907,6 +3907,8 @@ AC_CHECK_MEMBERS([struct passwd.pw_gecos, struct passwd.pw_passwd], [], [], [[
#include <sys/types.h>
#include <pwd.h>
]])
++# Issue #21085: In Cygwin, siginfo_t does not have si_band field.
++AC_CHECK_MEMBERS([siginfo_t.si_band], [], [], [[#include <signal.h>]])
AC_MSG_CHECKING(for time.h that defines altzone)
AC_CACHE_VAL(ac_cv_header_time_altzone,[
diff --git a/pyconfig.h.in b/pyconfig.h.in
index e7a836c5d4..bfccabe2f7 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -856,6 +856,9 @@
/* Define to 1 if you have the `sigaltstack' function. */
#undef HAVE_SIGALTSTACK
+/* Define to 1 if `si_band' is a member of `siginfo_t'. */
+#undef HAVE_SIGINFO_T_SI_BAND
+
/* Define to 1 if you have the `siginterrupt' function. */
#undef HAVE_SIGINTERRUPT