sigaction & 2.1.71

Steven N. Hirsch (shirsch@ibm.net)
Sat, 6 Dec 1997 12:17:26 -0500 (EST)


All,

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