Eric Blake <[email protected]> writes:
>> > It fails to build on IRIX 5.3 due to missing siginterrupt function:
>> > ld: ERROR 33: Unresolved text symbol "siginterrupt" -- 1st referenced by
>> > tests.o.
>> >
>> > Since gnulib does not provide a siginterrupt replacement I instead added
>> > the replacement used by bash 4.0 to tests.c:
>>
>> Thanks for the report, I believe this should be fixed in gnulib.
>
> I'm not so sure. POSIX lists siginterrupt as obsolete (in other
> words, the better action would be fixing your code to comply
> to modern POSIX, rather than making it easy to rely on a
> crutch for using an obsolete interface, similar to how we
> recommend memset over bzero).
Oh. I didn't notice that. There is a slight difference though, since
siginterrupt is still part of POSIX but bzero is not.
However, I share your concern, and no longer feel it is important to
push this into gnulib. I'm going to fix my code to use sigaction
instead.
I noticed my code does something like this:
#ifndef _WIN32
old = siginterrupt (SIGALRM, 1);
alarm (secs);
#else
setsockopt ((int) gnutls_transport_get_ptr (session), SOL_SOCKET,
SO_RCVTIMEO, (char *) &secs, sizeof (int));
#endif
I'm thinking that using setsockopt may be more elegant than using a
SIGALRM signal, but I'm not sure. Any advice?
/Simon