aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Rupp <rupp@adacore.com>2024-06-04 10:17:57 -0700
committerMarc Poulhiès <poulhies@adacore.com>2024-06-21 10:34:20 +0200
commit3c99b1a75585b3c5ea5f79c87702c33b60e47a14 (patch)
treee6ccdb9030c6b9b5d706013e578ba95bb8697af5
parentdf0637007e08eb11ead3ba4ac76de2b69a115327 (diff)
downloadgcc-3c99b1a75585b3c5ea5f79c87702c33b60e47a14.zip
gcc-3c99b1a75585b3c5ea5f79c87702c33b60e47a14.tar.gz
gcc-3c99b1a75585b3c5ea5f79c87702c33b60e47a14.tar.bz2
ada: Revert conditional installation of signal handlers on VxWorks
The conditional installation resulted in a semantic change, and although it is likely what is ultimately wanted (since HW interrupts are being reworked on VxWorks). However it must be done in concert with other modifications for the new formulation of HW interrupts and not in isolation. gcc/ada/ * init.c [vxworks] (__gnat_install_handler): Revert to installing signal handlers without regard to interrupt_state.
-rw-r--r--gcc/ada/init.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index acb8c7c..93e73f5 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -2100,14 +2100,10 @@ __gnat_install_handler (void)
/* For VxWorks, install all signal handlers, since pragma Interrupt_State
applies to vectored hardware interrupts, not signals. */
- if (__gnat_get_interrupt_state (SIGFPE) != 's')
- sigaction (SIGFPE, &act, NULL);
- if (__gnat_get_interrupt_state (SIGILL) != 's')
- sigaction (SIGILL, &act, NULL);
- if (__gnat_get_interrupt_state (SIGSEGV) != 's')
- sigaction (SIGSEGV, &act, NULL);
- if (__gnat_get_interrupt_state (SIGBUS) != 's')
- sigaction (SIGBUS, &act, NULL);
+ sigaction (SIGFPE, &act, NULL);
+ sigaction (SIGILL, &act, NULL);
+ sigaction (SIGSEGV, &act, NULL);
+ sigaction (SIGBUS, &act, NULL);
#if defined(__leon__) && defined(_WRS_KERNEL)
/* Specific to the LEON VxWorks kernel run-time library */