Fix problem with installing signal handlers on FreeBSD.
Symptom: occasional reports of 'cannot install SEGV handler...',
sometimes when the Haskell program calls 'error'.
/* FreeBSD seems to generate SIGBUS for stack overflows */
if (signal(SIGBUS, segv_handler) == SIG_ERR)
return -1;
- return ((int) signal(SIGSEGV, segv_handler));
+ if (signal(SIGSEGV, segv_handler) == SIG_ERR)
+ return -1;
+ return 0;
#else
return ((int) signal(SIGSEGV, segv_handler) == SIG_ERR);
/* I think the "== SIG_ERR" is saying "there was no