diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-02 10:36:15 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-02 10:36:15 +0000 |
commit | 5236d9f4b78e6d6bd620f92334ab4a82b393a21a (patch) | |
tree | 89cb9b543c3451d8512a002e8807ce04bbc885d3 /gcc/ada/s-taprop-vxworks.adb | |
parent | dc74650f2613d95f4ff4798d77b8e77a55e06bf8 (diff) | |
download | gcc-5236d9f4b78e6d6bd620f92334ab4a82b393a21a.tar.gz |
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
No_Dispatching_Calls, do not look for the Assign primitive, because
predefined primitives are not created in this case.
2011-08-02 Bob Duff <duff@adacore.com>
* stylesw.ads: Minor comment fixes.
2011-08-02 Robert Dewar <dewar@adacore.com>
* freeze.adb (Add_To_Result): New procedure.
2011-08-02 Jose Ruiz <ruiz@adacore.com>
* exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
time, if the specific run-time routines for handling streams of strings
are not available, use the default mechanism.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* s-regpat.ads: Fix typo.
2011-08-02 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
not null, call it to create the in memory config project file without
parsing an existing default config project file.
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_elim.adb: an abstract subprogram does not need an eliminate
pragma for its descendant to be eliminable.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: revert to handling before previous checkin for VxWorks
* s-intman-vxworks.adb: delete unnecessary declarations related to
using Ada interrupt facilities for handling signals.
Delete Initialize_Interrupts. Use __gnat_install_handler instead.
* s-intman-vxworks.ads: Import __gnat_install_handler as
Initialize_Interrupts.
* s-taprop-vxworks.adb: Delete Signal_Mask.
(Abort_Handler): change construction of mask to unblock exception
signals.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177130 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-taprop-vxworks.adb')
-rw-r--r-- | gcc/ada/s-taprop-vxworks.adb | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/gcc/ada/s-taprop-vxworks.adb b/gcc/ada/s-taprop-vxworks.adb index 207b465c579..c2b04a55c57 100644 --- a/gcc/ada/s-taprop-vxworks.adb +++ b/gcc/ada/s-taprop-vxworks.adb @@ -19,10 +19,10 @@ -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- -- -- --- You should have received a copy of the GNU General Public License and -- --- a copy of the GCC Runtime Library Exception along with this program; -- --- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- --- <http://www.gnu.org/licenses/>. -- +-- In particular, you can freely distribute your programs built with the -- +-- GNAT Pro compiler, including any required library run-time units, using -- +-- any licensing terms of your choosing. See the AdaCore Software License -- +-- for full details. -- -- -- -- GNARL was developed by the GNARL team at Florida State University. -- -- Extensive contributions were provided by Ada Core Technologies, Inc. -- @@ -94,11 +94,6 @@ package body System.Task_Primitives.Operations is Mutex_Protocol : Priority_Type; - Signal_Mask : aliased sigset_t; - pragma Import (C, Signal_Mask, "__gnat_signal_mask"); - -- Mask indicating that all exception signals are to be masked - -- when a signal is propagated. - Single_RTS_Lock : aliased RTS_Lock; -- This is a lock to allow only one thread of control in the RTS at a -- time; it is used to execute in mutual exclusion from all other tasks. @@ -180,11 +175,14 @@ package body System.Task_Primitives.Operations is procedure Abort_Handler (signo : Signal) is pragma Unreferenced (signo); - Self_ID : constant Task_Id := Self; - Old_Set : aliased sigset_t; - Result : int; + Self_ID : constant Task_Id := Self; + Old_Set : aliased sigset_t; + Unblocked_Mask : aliased sigset_t; + Result : int; pragma Warnings (Off, Result); + use System.Interrupt_Management; + begin -- It is not safe to raise an exception when using ZCX and the GCC -- exception handling mechanism. @@ -201,10 +199,26 @@ package body System.Task_Primitives.Operations is -- Make sure signals used for RTS internal purposes are unmasked + Result := sigemptyset (Unblocked_Mask'Access); + pragma Assert (Result = 0); + Result := + sigaddset + (Unblocked_Mask'Access, + Signal (Abort_Task_Interrupt)); + pragma Assert (Result = 0); + Result := sigaddset (Unblocked_Mask'Access, SIGBUS); + pragma Assert (Result = 0); + Result := sigaddset (Unblocked_Mask'Access, SIGFPE); + pragma Assert (Result = 0); + Result := sigaddset (Unblocked_Mask'Access, SIGILL); + pragma Assert (Result = 0); + Result := sigaddset (Unblocked_Mask'Access, SIGSEGV); + pragma Assert (Result = 0); + Result := pthread_sigmask (SIG_UNBLOCK, - Signal_Mask'Access, + Unblocked_Mask'Access, Old_Set'Access); pragma Assert (Result = 0); |