diff options
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/signalmodule.c | 4 | ||||
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
6 files changed, 25 insertions, 0 deletions
@@ -1671,6 +1671,7 @@ Florent Xicluna Arnon Yaari Alakshendra Yadav Hirokazu Yamamoto +Masayuki Yamamoto Ka-Ping Yee Chi Hsuan Yen Jason Yeo @@ -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; @@ -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 |