This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: Partial success with prerelease.
- To: satchell at merry dot dra dot hmg dot gb
- Subject: Re: Partial success with prerelease.
- From: Gary Houston <ghouston at freewire dot co dot uk>
- Date: 20 Sep 1999 22:04:38 -0000
- CC: GUILE at sourceware dot cygnus dot com
- References: <009DE715.E3300EB6.7@merry.dera.gov.uk>
| I have downloaded and built the 1.3.4-pre snapshot. No problems on Redhat 5.2 Linux.
| On Ultrix (MIPS) 4.2, with gcc 2.7.2.1, I found a problem. This system is said
| by configure to have restartable system calls, but does NOT define SA_RESTART.
I hadn't realised that could happen. I've modified scmsig.c to use
siginterrupt if it's available before falling back to sigaction/SA_RESTART,
or nothing at all.
| This makes libguile/scmsigs.c uncompileable at line 452. I added a nasty extra
| pair of #ifdef SA_RESTART around the if, and then it compiles and runs OK.
|
| I have not tried this change on the Linux machine, but it seems likely to always
| be safe. I have no idea if the Ultrix guile will suffer from horrible problems;
| can anybody suggest a way to check if the change is harmful.
It's probably not harmful, since configure is indicating that system
calls are restartable by default. Setting the action for every signal
at initialisation is now just for paranoia value (since the EINTR
loops won't be compiled around every system call).
The previous behaviour of libguile was to set up all signals to restart
system calls if SA_RESTART was defined, but that doesn't seem correct.