318 |
|
AC_LANG_CPLUSPLUS |
319 |
|
AC_TRY_RUN([ |
320 |
|
#include <unistd.h> |
321 |
+ |
#include <stdlib.h> |
322 |
|
#include <signal.h> |
323 |
|
#include <fcntl.h> |
324 |
|
#include <sys/mman.h> |
333 |
|
int main() |
334 |
|
{ if ((zero_fd = open("/dev/zero", O_RDWR)) < 0) exit(1); |
335 |
|
if ((mem = (caddr_t)mmap(0, getpagesize(), PROT_READ, MAP_PRIVATE, zero_fd, 0)) == (caddr_t)MAP_FAILED) exit(1); |
336 |
< |
struct sigaction sa; sa.sa_sigaction = segfault_handler; sa.sa_flags = 0; |
336 |
> |
struct sigaction sa; sa.sa_sigaction = segfault_handler; sa.sa_flags = SA_SIGINFO; |
337 |
|
sigaction(SIGSEGV, &sa, 0); |
338 |
|
mem[0] = 0; |
339 |
|
exit(1); // should not be reached |
373 |
|
{ if ((zero_fd = open("/dev/zero", O_RDWR)) < 0) exit(1); |
374 |
|
if ((mem = (caddr_t)mmap(0, getpagesize(), PROT_READ, MAP_PRIVATE, zero_fd, 0)) == (caddr_t)MAP_FAILED) exit(1); |
375 |
|
struct sigaction sa; sa.sa_flags = 0; |
376 |
< |
sa.sa_handler = (RETSIGTYPE (*)(int))segfault_handler; |
376 |
> |
sa.sa_handler = (RETSIGTYPE (*)(int))segfault_handler; |
377 |
|
sigaction(SIGSEGV, &sa, 0); |
378 |
|
mem[0] = 0; |
379 |
|
exit(1); // should not be reached |
384 |
|
) |
385 |
|
AC_LANG_RESTORE |
386 |
|
]) |
387 |
< |
AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, $ac_cv_have_sigcontext_hack) |
387 |
> |
AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, $ac_cv_have_sigcontext_hack) |
388 |
|
fi |
389 |
|
;; |
390 |
|
esac |