Bruno Haible <[EMAIL PROTECTED]> writes: > This will not compile on Interix 3.5, whereas the current code does.
True; how about working around that problem by inserting the following prelude into fatal-signal.c: typedef void (*sa_handler_t) (int); /* Return the handler of a signal, as a sa_handler_t value regardless of its true type. The resulting function can be compared to special values like SIG_IGN but it is not portable to call it. */ static sa_handler_t get_handler (struct sigaction const *a) { #ifdef SA_SIGINFO /* POSIX says that special values like SIG_IGN can only occur when action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4, for example, sa_sigaction and sa_handler are aliases and a signal is ignored if sa_sigaction (after casting) equals SIG_IGN. So use (and cast) sa_sigaction in that case. */ if (a->sa_flags & SA_SIGINFO) return (sa_handler_t) a->sa_sigaction; #endif return a->sa_handler; } and then using the following code in init_fatal_signals? if (sigaction (fatal_signals[i], NULL, &action) == 0 && get_handler (&action) == SIG_IGN) fatal_signals[i] = -1;