A recent change in the definition of struct sigaction and sigset_t has
broken almost every application I've built under > 2.1.69 or so.
I've been forced to do something like this (one of at least a half-dozen
such patches required to build Midnight Commander):
*** tcputil.c.orig Fri Oct 3 12:47:12 1997
--- tcputil.c Sat Dec 6 11:42:48 1997
***************
*** 252,264 ****
void tcp_init (void)
{
! struct sigaction sa;
got_sigpipe = 0;
sa.sa_handler = sig_pipe;
sa.sa_flags = 0;
sigemptyset (&sa.sa_mask);
! sigaction (SIGPIPE, &sa, NULL);
}
int get_remote_port (struct sockaddr_in *sin, int *version)
--- 252,264 ----
void tcp_init (void)
{
! struct old_sigaction sa;
got_sigpipe = 0;
sa.sa_handler = sig_pipe;
sa.sa_flags = 0;
sigemptyset (&sa.sa_mask);
! sigaction (SIGPIPE, (struct sigaction *)&sa, NULL);
}
int get_remote_port (struct sockaddr_in *sin, int *version)
I am using the "traditional" libc, libc.so.5.4.33 to be precise. Is there
something else that should be defined to properly revert to the older
behavior from the kernel headers?
Steve