This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

siginfo_t missing member si_band


Hi all,

While trying to build python3 for cygwin, I kept encountering the following error message:

./Modules/signalmodule.c: In function ‘fill_siginfo’:
./Modules/signalmodule.c:745:60: error: ‘siginfo_t’ has no member named ‘si_band’
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));
^
Include/tupleobject.h:62:75: note: in definition of macro ‘PyTuple_SET_ITEM’ #define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v)
^
./Modules/signalmodule.c:745:5: note: in expansion of macro ‘PyStructSequence_SET_ITEM’
PyStructSequence_SET_ITEM(result, 6, PyLong_FromLong(si->si_band));

As far as I can tell, siginfo_t::si_band is mandated by POSIX.1-2001, and required for proper handling of SIGPOLL. The latter seems to correspond to async I/O with poll(2). I'm pretty sure cygwin doesn't support async I/O, but shouldn't the struct member at least exist, to avoid breaking code that assumes its existence? The alternative is to patch python3 locally so its os.sigwaitinfo function no longer touches si_band, or to file a bug upstream so that the module's configury tests for its existence before using it.

Thoughts?
Ryan


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]