emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 b1bda8228e5: More fixes for NetBSD/vax


From: Po Lu
Subject: emacs-29 b1bda8228e5: More fixes for NetBSD/vax
Date: Fri, 5 May 2023 02:15:39 -0400 (EDT)

branch: emacs-29
commit b1bda8228e5788391cefbb4721af24f5713a0e37
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]