+2023-11-09 Bruno Haible <bruno@clisp.org>
+
+ sigsegv: Port to CHERI.
+ * lib/sigsegv.c: Treat __aarch64__ like __arm64__.
+ (SIGSEGV_FOR_ALL_SIGNALS): Treat SIGPROT like SIGSEGV and SIGBUS.
+
2023-11-09 Paul Eggert <eggert@cs.ucla.edu>
stdio: port better to older macOS
#if defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ /* GNU/kFreeBSD, FreeBSD */
-# if defined __arm__ || defined __armhf__ || defined __arm64__
+# if defined __arm__ || defined __armhf__ || (defined __arm64__ || defined __aarch64__)
# define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, siginfo_t *sip, void *ucp
# define SIGSEGV_FAULT_ADDRESS sip->si_addr
|| defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ \
|| defined __NetBSD__ || defined __OpenBSD__ \
|| (defined __APPLE__ && defined __MACH__)
-# define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
- { int var; var = SIGSEGV; { body } var = SIGBUS; { body } }
+# if defined __CHERI__
+# define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
+ { int var; \
+ var = SIGSEGV; { body } \
+ var = SIGBUS; { body } \
+ var = SIGPROT; { body } \
+ }
+# else
+# define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
+ { int var; \
+ var = SIGSEGV; { body } \
+ var = SIGBUS; { body } \
+ }
+# endif
#else
# define SIGSEGV_FOR_ALL_SIGNALS(var,body) \
{ int var; var = SIGSEGV; { body } }