diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-16 16:55:54 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-16 16:55:54 +0400 |
commit | a7ba58fb17205dc9b776bf4d988cf8d867c89be6 (patch) | |
tree | 8658ff0949b23d2394973cf347025cb2251e1506 | |
parent | 605782ae1322f449de7ba87de27b46d95cfe8a90 (diff) | |
download | gcl-a7ba58fb17205dc9b776bf4d988cf8d867c89be6.tar.gz |
Reverted SIGFPE handler for __sun__
-rw-r--r-- | gcl/o/usig.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/gcl/o/usig.c b/gcl/o/usig.c index a7279028..6b878173 100644 --- a/gcl/o/usig.c +++ b/gcl/o/usig.c @@ -134,6 +134,8 @@ unblock_sigusr_sigio(void) DEF_ORDINARY("FLOATING-POINT-ERROR",sSfloating_point_error,SI,""); + +#ifndef __sun__ static void sigfpe3(int sig,siginfo_t *i,void *p) { @@ -144,13 +146,15 @@ sigfpe3(int sig,siginfo_t *i,void *p) { make_fixnum((fixnum)v)); } - -/* static void */ -/* sigfpe1(int s,siginfo_t *a,void *b) */ -/* { */ -/* gcl_signal(SIGFPE, sigfpe1); */ -/* FEerror("Floating-point exception.", 0); */ -/* } */ +#else +#warning Need to port ^^^ +static void +sigfpe1(int s,siginfo_t *a,void *b) +{ + gcl_signal(SIGFPE, sigfpe1); + FEerror("Floating-point exception.", 0); +} +#endif static void sigpipe(int s,siginfo_t *a,void *b) @@ -191,7 +195,12 @@ sigio(int s,siginfo_t *a,void *b) void install_default_signals(void) -{ gcl_signal(SIGFPE, sigfpe3); +{ +#ifndef __sun__ + gcl_signal(SIGFPE, sigfpe3); +#else + gcl_signal(SIGFPE, sigfpe1); +#endif gcl_signal(SIGPIPE, sigpipe); gcl_signal(SIGINT, sigint); gcl_signal(SIGUSR1, sigusr1); |