Skip to content

Commit

Permalink
Issue #21085: add configure check for siginfo_t.si_band
Browse files Browse the repository at this point in the history
Patch by Masayuki Yamamoto, reviewed and rebased by Erik Bray.

This is a first step on the long road toward resupporting Cygwin, which does
not provide siginfo_t.si_band.
  • Loading branch information
zware committed Oct 1, 2016
1 parent 00758b2 commit 7ff93cf
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 0 deletions.
1 change: 1 addition & 0 deletions Misc/ACKS
Original file line number Diff line number Diff line change
Expand Up @@ -1671,6 +1671,7 @@ Florent Xicluna
Arnon Yaari
Alakshendra Yadav
Hirokazu Yamamoto
Masayuki Yamamoto
Ka-Ping Yee
Chi Hsuan Yen
Jason Yeo
Expand Down
3 changes: 3 additions & 0 deletions Misc/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
4 changes: 4 additions & 0 deletions Modules/signalmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
12 changes: 12 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -13087,6 +13087,18 @@ cat >>confdefs.h <<_ACEOF
_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


Expand Down
2 changes: 2 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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,[
Expand Down
3 changes: 3 additions & 0 deletions pyconfig.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit 7ff93cf

Please sign in to comment.