they were POSIX.1 compliant, because users have misinterpreted the spec and
have written programs that depend on -1 being returned when a signal number
is out of range. This made initialization of signal masks significantly
more expensive.
This change uses GCC's inline function extension to provide macro-like
signal mask manipulation functions. Since most of the time constants
like SIGINT is used, gcc is able to remove unused range checking code.
Gcc is also smart enough to coalesce adjacent sigemptyset(), sigaddset(),
sigdelset(), and sigfullset() calls into a single assignment.