Reuben Thomas wrote: > (SIGPOLL is mandated by POSIX). This is not true. Look at <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html> In the table, SIGPOLL is marked with OB and XSR. - [OB] means obsolescent. - [XSR] means XSI STREAMS. This is an optional part of POSIX that only few systems implement, namely glibc, SVR4 based systems, and AIX. BSD systems don't implement XSI STREAMS.
> I'm writing Lua bindings for POSIX APIs What can signals like SIGPOLL bring you in this use-case? Given that you can't evaluate Lua code from within a signal handler (a consequence of Lua's interpreter using malloc()/realloc(), and malloc()/realloc() not being safe to be called from a signal handler), what can the user do with a C binding that offers signals? > Also, gnulib does not define _POSIX_C_SOURCE on Darwin, which is > necessary in order to get some POSIX features. It is better *not* to fiddle with _POSIX_C_SOURCE, because on many systems _POSIX_C_SOURCE has the effect of hiding many platform specific extensions. For example, on glibc systems <features.h> contains: /* If nothing (other than _GNU_SOURCE) is defined, define _BSD_SOURCE and _SVID_SOURCE. */ #if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \ !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \ !defined _XOPEN_SOURCE && !defined _XOPEN_SOURCE_EXTENDED && \ !defined _BSD_SOURCE && !defined _SVID_SOURCE) # define _BSD_SOURCE 1 # define _SVID_SOURCE 1 #endif On MacOS X systems <sys/cdefs.h> contains: * STRICT Defining _POSIX_C_SOURCE or _XOPEN_SOURCE restricts the * available APIs to exactly the set of APIs defined by the * corresponding standard, based on the value defined. Similarly, on OpenBSD, the presence of _POSIX_C_SOURCE hides some functions: #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ (_XOPEN_VERSION - 0) >= 500 ssize_t pread(int, void *, size_t, off_t); ssize_t pwrite(int, const void *, size_t, off_t); #endif > Is there anything to be done in gnulib No. SIGPOLL is definitely not in the scope of the common, widely used Unix APIs that gnulib cares about. Bruno