aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/s-osinte-darwin.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/s-osinte-darwin.ads')
-rw-r--r--gcc/ada/s-osinte-darwin.ads16
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ada/s-osinte-darwin.ads b/gcc/ada/s-osinte-darwin.ads
index f8c67117c79..27a7860522f 100644
--- a/gcc/ada/s-osinte-darwin.ads
+++ b/gcc/ada/s-osinte-darwin.ads
@@ -117,10 +117,15 @@ package System.OS_Interface is
type Signal_Set is array (Natural range <>) of Signal;
Unmasked : constant Signal_Set :=
- (SIGTTIN, SIGTTOU, SIGSTOP, SIGTSTP);
+ (SIGTTIN, SIGTTOU, SIGSTOP, SIGTSTP);
Reserved : constant Signal_Set :=
- (SIGKILL, SIGSTOP);
+ (SIGKILL, SIGSTOP);
+
+ Exception_Signals : constant Signal_Set :=
+ (SIGFPE, SIGILL, SIGSEGV, SIGBUS);
+ -- These signals (when runtime or system) will be caught and converted
+ -- into an Ada exception.
type sigset_t is private;
@@ -279,10 +284,11 @@ package System.OS_Interface is
pragma Import (C, sigaltstack, "sigaltstack");
Alternate_Stack : aliased System.Address;
- -- This is a dummy definition, never used (Alternate_Stack_Size is null)
+ pragma Import (C, Alternate_Stack, "__gnat_alternate_stack");
+ -- The alternate signal stack for stack overflows
- Alternate_Stack_Size : constant := 0;
- -- No alternate signal stack is used on this platform
+ Alternate_Stack_Size : constant := 64 * 1024;
+ -- This must be in keeping with init.c:__gnat_alternate_stack
Stack_Base_Available : constant Boolean := False;
-- Indicates whether the stack base is available on this target. This