kFreeBSD fix from David Bremner
This commit is contained in:
parent
71770ee285
commit
ffbaaa3c3b
|
@ -134,10 +134,14 @@ void fault_handler(int sn, siginfo_t *si, void *ctx)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
# define NEED_SIGACTION
|
# define NEED_SIGACTION
|
||||||
# if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__FreeBSD_kernel__)
|
# if (defined(__FreeBSD__) && (__FreeBSD_version < 700000))
|
||||||
# define USE_SIGACTON_SIGNAL_KIND SIGBUS
|
# define USE_SIGACTON_SIGNAL_KIND SIGBUS
|
||||||
# else
|
# else
|
||||||
# define USE_SIGACTON_SIGNAL_KIND SIGSEGV
|
# define USE_SIGACTON_SIGNAL_KIND SIGSEGV
|
||||||
|
# ifdef __FreeBSD_kernel__
|
||||||
|
/* Some versions of the kFreeBSD C library use SIGBUS */
|
||||||
|
# define USE_ANOTHER_SIGACTON_SIGNAL_KIND SIGBUS
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -230,6 +234,9 @@ static void initialize_signal_handler(GCTYPE *gc)
|
||||||
act.sa_flags |= SA_ONSTACK;
|
act.sa_flags |= SA_ONSTACK;
|
||||||
# endif
|
# endif
|
||||||
sigaction(USE_SIGACTON_SIGNAL_KIND, &act, &oact);
|
sigaction(USE_SIGACTON_SIGNAL_KIND, &act, &oact);
|
||||||
|
# ifdef USE_ANOTHER_SIGACTON_SIGNAL_KIND
|
||||||
|
sigaction(USE_ANOTHER_SIGACTON_SIGNAL_KIND, &act, &oact);
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef NEED_SIGWIN
|
# ifdef NEED_SIGWIN
|
||||||
|
@ -263,6 +270,9 @@ static void remove_signal_handler(GCTYPE *gc)
|
||||||
sigemptyset(&act.sa_mask);
|
sigemptyset(&act.sa_mask);
|
||||||
act.sa_flags = SA_SIGINFO;
|
act.sa_flags = SA_SIGINFO;
|
||||||
sigaction(USE_SIGACTON_SIGNAL_KIND, &act, &oact);
|
sigaction(USE_SIGACTON_SIGNAL_KIND, &act, &oact);
|
||||||
|
# ifdef USE_ANOTHER_SIGACTON_SIGNAL_KIND
|
||||||
|
sigaction(USE_ANOTHER_SIGACTON_SIGNAL_KIND, &act, &oact);
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef NEED_SIGWIN
|
# ifdef NEED_SIGWIN
|
||||||
|
|
Loading…
Reference in New Issue
Block a user