From: Doug Rupp <r...@adacore.com>

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.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/init.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index acb8c7cc57e..93e73f53c64 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 */
-- 
2.45.1

Reply via email to