From 3c2e4f8c06cfbd28d4d373826caa6f1750655660 Mon Sep 17 00:00:00 2001 From: cebix <> Date: Sun, 8 Oct 2000 18:41:35 +0000 Subject: [PATCH] added SA_SIGINFO to sa_flags when sa_sigaction is used --- BasiliskII/src/Unix/configure.in | 7 ++++--- BasiliskII/src/Unix/video_vosf.h | 2 +- BasiliskII/src/Unix/video_x.cpp | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/BasiliskII/src/Unix/configure.in b/BasiliskII/src/Unix/configure.in index 29adc25d..3d4ba526 100644 --- a/BasiliskII/src/Unix/configure.in +++ b/BasiliskII/src/Unix/configure.in @@ -318,6 +318,7 @@ AC_CACHE_CHECK("whether your system supports extended signal handlers", AC_LANG_CPLUSPLUS AC_TRY_RUN([ #include + #include #include #include #include @@ -332,7 +333,7 @@ AC_CACHE_CHECK("whether your system supports extended signal handlers", int main() { if ((zero_fd = open("/dev/zero", O_RDWR)) < 0) exit(1); if ((mem = (caddr_t)mmap(0, getpagesize(), PROT_READ, MAP_PRIVATE, zero_fd, 0)) == (caddr_t)MAP_FAILED) exit(1); - struct sigaction sa; sa.sa_sigaction = segfault_handler; sa.sa_flags = 0; + struct sigaction sa; sa.sa_sigaction = segfault_handler; sa.sa_flags = SA_SIGINFO; sigaction(SIGSEGV, &sa, 0); mem[0] = 0; exit(1); // should not be reached @@ -372,7 +373,7 @@ if [[ "x$ac_cv_have_extended_signals" = "xno" ]]; then { if ((zero_fd = open("/dev/zero", O_RDWR)) < 0) exit(1); if ((mem = (caddr_t)mmap(0, getpagesize(), PROT_READ, MAP_PRIVATE, zero_fd, 0)) == (caddr_t)MAP_FAILED) exit(1); struct sigaction sa; sa.sa_flags = 0; - sa.sa_handler = (RETSIGTYPE (*)(int))segfault_handler; + sa.sa_handler = (RETSIGTYPE (*)(int))segfault_handler; sigaction(SIGSEGV, &sa, 0); mem[0] = 0; exit(1); // should not be reached @@ -383,7 +384,7 @@ if [[ "x$ac_cv_have_extended_signals" = "xno" ]]; then ) AC_LANG_RESTORE ]) - AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, $ac_cv_have_sigcontext_hack) + AC_TRANSLATE_DEFINE(HAVE_SIGCONTEXT_SUBTERFUGE, $ac_cv_have_sigcontext_hack) fi ;; esac diff --git a/BasiliskII/src/Unix/video_vosf.h b/BasiliskII/src/Unix/video_vosf.h index f5f9bf2e..87fd2ad7 100644 --- a/BasiliskII/src/Unix/video_vosf.h +++ b/BasiliskII/src/Unix/video_vosf.h @@ -290,7 +290,7 @@ static bool Screen_fault_handler_init() // Setup SIGSEGV handler to process writes to frame buffer sigemptyset(&vosf_sa.sa_mask); vosf_sa.sa_sigaction = Screen_fault_handler; - vosf_sa.sa_flags = 0; + vosf_sa.sa_flags = SA_SIGINFO; return (sigaction(SIGSEGV, &vosf_sa, NULL) == 0); } #elif defined(HAVE_SIGCONTEXT_SUBTERFUGE) diff --git a/BasiliskII/src/Unix/video_x.cpp b/BasiliskII/src/Unix/video_x.cpp index 3b4582c9..28860542 100644 --- a/BasiliskII/src/Unix/video_x.cpp +++ b/BasiliskII/src/Unix/video_x.cpp @@ -703,7 +703,7 @@ static bool init_xf86_dga(int width, int height) the_buffer = (uint8 *)allocate_framebuffer(the_buffer_size); memset(the_buffer, 0, the_buffer_size); } -#elif ENABLE_VOSF +#elif defined(ENABLE_VOSF) // The UAE memory handlers will already handle color conversion, if needed. use_vosf = false; #endif