diff options
Diffstat (limited to 'dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch')
-rw-r--r-- | dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch new file mode 100644 index 000000000000..561c012a23e6 --- /dev/null +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch @@ -0,0 +1,113 @@ +--- a/gcc/ada/s-rident.ads 2018-11-18 18:47:39.042412895 +0100 ++++ b/gcc/ada/s-rident.ads 2018-11-18 19:02:31.736559044 +0100 +@@ -378,15 +378,17 @@ + type Profile_Name is + (No_Profile, + No_Implementation_Extensions, ++ Restricted_Tasking, ++ Restricted, + Ravenscar, + GNAT_Extended_Ravenscar, +- Restricted); ++ GNAT_Ravenscar_EDF); + -- Names of recognized profiles. No_Profile is used to indicate that a + -- restriction came from pragma Restrictions[_Warning], as opposed to + -- pragma Profile[_Warning]. + + subtype Profile_Name_Actual is Profile_Name +- range No_Implementation_Extensions .. Restricted; ++ range No_Implementation_Extensions .. Profile_Name'Last; + -- Actual used profile names + + type Profile_Data is record +@@ -456,6 +458,40 @@ + Max_Task_Entries => 0, + others => 0)), + ++ -- Restricted_Tasking Profile ++ ++ Restricted_Tasking => ++ ++ -- Restrictions for Restricted_Tasking profile ++ ++ (Set => ++ (No_Abort_Statements => True, ++ No_Asynchronous_Control => True, ++ No_Dynamic_Attachment => True, ++ No_Dynamic_Priorities => True, ++ No_Entry_Queue => True, ++ No_Local_Protected_Objects => True, ++ No_Protected_Type_Allocators => True, ++ No_Requeue_Statements => True, ++ No_Task_Allocators => True, ++ No_Task_Attributes_Package => True, ++ No_Task_Hierarchy => True, ++ No_Terminate_Alternatives => True, ++ Max_Asynchronous_Select_Nesting => True, ++ Max_Protected_Entries => True, ++ Max_Select_Alternatives => True, ++ Max_Task_Entries => True, ++ others => False), ++ ++ -- Value settings for Restricted profile ++ ++ Value => ++ (Max_Asynchronous_Select_Nesting => 0, ++ Max_Protected_Entries => 1, ++ Max_Select_Alternatives => 0, ++ Max_Task_Entries => 0, ++ others => 0)), ++ + -- Ravenscar Profile + + -- Note: the table entries here only represent the +@@ -509,6 +545,49 @@ + Max_Task_Entries => 0, + others => 0)), + ++ GNAT_Ravenscar_EDF => ++ ++ -- Restrictions for Ravenscar = Restricted profile .. ++ ++ (Set => ++ (No_Abort_Statements => True, ++ No_Asynchronous_Control => True, ++ No_Dynamic_Attachment => True, ++ No_Dynamic_Priorities => True, ++ No_Entry_Queue => True, ++ No_Local_Protected_Objects => True, ++ No_Protected_Type_Allocators => True, ++ No_Requeue_Statements => True, ++ No_Task_Allocators => True, ++ No_Task_Attributes_Package => True, ++ No_Task_Hierarchy => True, ++ No_Terminate_Alternatives => True, ++ Max_Asynchronous_Select_Nesting => True, ++ Max_Protected_Entries => True, ++ Max_Select_Alternatives => True, ++ Max_Task_Entries => True, ++ ++ -- plus these additional restrictions: ++ ++ No_Calendar => True, ++ No_Implicit_Heap_Allocations => True, ++ No_Local_Timing_Events => True, ++ No_Relative_Delay => True, ++ No_Select_Statements => True, ++ No_Specific_Termination_Handlers => True, ++ No_Task_Termination => True, ++ Simple_Barriers => True, ++ others => False), ++ ++ -- Value settings for Ravenscar (same as Restricted) ++ ++ Value => ++ (Max_Asynchronous_Select_Nesting => 0, ++ Max_Protected_Entries => 1, ++ Max_Select_Alternatives => 0, ++ Max_Task_Entries => 0, ++ others => 0)), ++ + GNAT_Extended_Ravenscar => + + -- Restrictions for GNAT_Extended_Ravenscar = |