aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/s-soflin.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/s-soflin.adb')
-rw-r--r--gcc/ada/s-soflin.adb91
1 files changed, 10 insertions, 81 deletions
diff --git a/gcc/ada/s-soflin.adb b/gcc/ada/s-soflin.adb
index d18d020..02b57bf 100644
--- a/gcc/ada/s-soflin.adb
+++ b/gcc/ada/s-soflin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -35,26 +35,26 @@ pragma Polling (Off);
-- We must turn polling off for this unit, because otherwise we get
-- an infinite loop from the code within the Poll routine itself.
-with System.Machine_State_Operations; use System.Machine_State_Operations;
--- Used for Create_TSD, Destroy_TSD
-
with System.Parameters;
-- Used for Sec_Stack_Ratio
+pragma Warnings (Off);
+-- Disable warnings since System.Secondary_Stack is currently not
+-- Preelaborate
with System.Secondary_Stack;
+pragma Warnings (On);
package body System.Soft_Links is
package SST renames System.Secondary_Stack;
- -- Allocate an exception stack for the main program to use.
- -- We make sure that the stack has maximum alignment. Some systems require
- -- this (e.g. Sun), and in any case it is a good idea for efficiency.
-
NT_Exc_Stack : array (0 .. 8192) of aliased Character;
for NT_Exc_Stack'Alignment use Standard'Maximum_Alignment;
+ -- Allocate an exception stack for the main program to use.
+ -- This is currently only used under VMS.
NT_TSD : TSD;
+ -- Note: we rely on the default initialization of NT_TSD.
--------------------
-- Abort_Defer_NT --
@@ -116,10 +116,6 @@ package body System.Soft_Links is
SST.SS_Init
(New_TSD.Sec_Stack_Addr, SST.Default_Secondary_Stack_Size);
end if;
-
- New_TSD.Machine_State_Addr :=
- System.Address
- (System.Machine_State_Operations.Allocate_Machine_State);
end Create_TSD;
-----------------------
@@ -138,8 +134,6 @@ package body System.Soft_Links is
procedure Destroy_TSD (Old_TSD : in out TSD) is
begin
SST.SS_Free (Old_TSD.Sec_Stack_Addr);
- System.Machine_State_Operations.Free_Machine_State
- (Machine_State (Old_TSD.Machine_State_Addr));
end Destroy_TSD;
---------------------
@@ -166,14 +160,14 @@ package body System.Soft_Links is
function Get_Exc_Stack_Addr_NT return Address is
begin
- return NT_TSD.Exc_Stack_Addr;
+ return NT_Exc_Stack (NT_Exc_Stack'Last)'Address;
end Get_Exc_Stack_Addr_NT;
-----------------------------
-- Get_Exc_Stack_Addr_Soft --
-----------------------------
- function Get_Exc_Stack_Addr_Soft return Address is
+ function Get_Exc_Stack_Addr_Soft return Address is
begin
return Get_Exc_Stack_Addr.all;
end Get_Exc_Stack_Addr_Soft;
@@ -205,24 +199,6 @@ package body System.Soft_Links is
return Get_Jmpbuf_Address.all;
end Get_Jmpbuf_Address_Soft;
- -------------------------------
- -- Get_Machine_State_Addr_NT --
- -------------------------------
-
- function Get_Machine_State_Addr_NT return Address is
- begin
- return NT_TSD.Machine_State_Addr;
- end Get_Machine_State_Addr_NT;
-
- ---------------------------------
- -- Get_Machine_State_Addr_Soft --
- ---------------------------------
-
- function Get_Machine_State_Addr_Soft return Address is
- begin
- return Get_Machine_State_Addr.all;
- end Get_Machine_State_Addr_Soft;
-
---------------------------
-- Get_Sec_Stack_Addr_NT --
---------------------------
@@ -260,26 +236,6 @@ package body System.Soft_Links is
end Null_Adafinal;
---------------------------
- -- Set_Exc_Stack_Addr_NT --
- ---------------------------
-
- procedure Set_Exc_Stack_Addr_NT (Self_ID : Address; Addr : Address) is
- pragma Warnings (Off, Self_ID);
-
- begin
- NT_TSD.Exc_Stack_Addr := Addr;
- end Set_Exc_Stack_Addr_NT;
-
- -----------------------------
- -- Set_Exc_Stack_Addr_Soft --
- -----------------------------
-
- procedure Set_Exc_Stack_Addr_Soft (Self_ID : Address; Addr : Address) is
- begin
- Set_Exc_Stack_Addr (Self_ID, Addr);
- end Set_Exc_Stack_Addr_Soft;
-
- ---------------------------
-- Set_Jmpbuf_Address_NT --
---------------------------
@@ -293,24 +249,6 @@ package body System.Soft_Links is
Set_Jmpbuf_Address (Addr);
end Set_Jmpbuf_Address_Soft;
- -------------------------------
- -- Set_Machine_State_Addr_NT --
- -------------------------------
-
- procedure Set_Machine_State_Addr_NT (Addr : Address) is
- begin
- NT_TSD.Machine_State_Addr := Addr;
- end Set_Machine_State_Addr_NT;
-
- ---------------------------------
- -- Set_Machine_State_Addr_Soft --
- ---------------------------------
-
- procedure Set_Machine_State_Addr_Soft (Addr : Address) is
- begin
- Set_Machine_State_Addr (Addr);
- end Set_Machine_State_Addr_Soft;
-
---------------------------
-- Set_Sec_Stack_Addr_NT --
---------------------------
@@ -365,13 +303,4 @@ package body System.Soft_Links is
return "main_task";
end Task_Name_NT;
- -------------------------
- -- Package Elaboration --
- -------------------------
-
-begin
- NT_TSD.Exc_Stack_Addr := NT_Exc_Stack (8192)'Address;
- Ada.Exceptions.Save_Occurrence
- (NT_TSD.Current_Excep, Ada.Exceptions.Null_Occurrence);
-
end System.Soft_Links;