From b1bda8228e5788391cefbb4721af24f5713a0e37 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 5 May 2023 14:13:37 +0800 Subject: [PATCH] More fixes for NetBSD/vax * src/sysdep.c (init_signals) [__vax__]: Treat SIGILL as a floating point error on VAXen. Otherwise, (log 0.0) crashes Emacs. --- src/sysdep.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/sysdep.c b/src/sysdep.c index ce6a20f5302..7bac3d8935a 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -2005,7 +2005,9 @@ init_signals (void) signal (SIGPIPE, SIG_IGN); sigaction (SIGQUIT, &process_fatal_action, 0); +#ifndef __vax__ sigaction (SIGILL, &thread_fatal_action, 0); +#endif /* __vax__ */ sigaction (SIGTRAP, &thread_fatal_action, 0); /* Typically SIGFPE is thread-specific and is fatal, like SIGILL. @@ -2018,6 +2020,11 @@ init_signals (void) { emacs_sigaction_init (&action, deliver_arith_signal); sigaction (SIGFPE, &action, 0); +#ifdef __vax__ + /* NetBSD/vax generates SIGILL upon some floating point errors, + such as taking the log of 0.0. */ + sigaction (SIGILL, &action, 0); +#endif /* __vax__ */ } #ifdef SIGUSR1 -- 2.39.2