summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-16 16:55:54 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-16 16:55:54 +0400
commita7ba58fb17205dc9b776bf4d988cf8d867c89be6 (patch)
tree8658ff0949b23d2394973cf347025cb2251e1506
parent605782ae1322f449de7ba87de27b46d95cfe8a90 (diff)
downloadgcl-a7ba58fb17205dc9b776bf4d988cf8d867c89be6.tar.gz
Reverted SIGFPE handler for __sun__
-rw-r--r--gcl/o/usig.c25
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);