diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2004-03-18 16:18:36 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2004-03-18 16:18:36 +0100 |
commit | a336eacaf1fe8e0ac28decabbc59c7972766f742 (patch) | |
tree | c005e46c28cc0d31445b8654f494f202ecaac7fd /gcc/ada/s-stache.ads | |
parent | 214ee4a2c634d178c3725178a36c341bb08c4397 (diff) | |
download | gcc-a336eacaf1fe8e0ac28decabbc59c7972766f742.zip gcc-a336eacaf1fe8e0ac28decabbc59c7972766f742.tar.gz gcc-a336eacaf1fe8e0ac28decabbc59c7972766f742.tar.bz2 |
[multiple changes]
2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
* 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
Code clean up:
* 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
Specific.Set instead of direct call to e.g pthread_setspecific.
2004-03-18 Thomas Quinot <quinot@act-europe.fr>
* adaint.c: Update comments.
* Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
GNATLIB_SHARED for FreeBSD.
2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
* init.c [VxWorks]: Do not fix the stack size for the environment task.
When needed (stack checking) the stack size is retrieved
from the VxWorks kernel.
* Makefile.in: Flag -nostdinc is required when building the run time
for avoiding looking for files in the base compiler.
Add the VxWorks specific version of the package body for
System.Stack_checking.Operations (5zstchop.adb).
* Make-lang.in: Add the object file for
System.Stack_Checking.Operations.
* Makefile.rtl: Add object file for the package
System.Stack_Checking.Operations.
* s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
* s-stache.ads, s-stache.adb: Move the operations related to stack
checking from this package to package System.Stack_Checking.Operations.
This way, stack checking operations are only linked in the final
executable when using the -fstack-check flag.
2004-03-18 Doug Rupp <rupp@gnat.com>
* Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
Reorganize ifeq's.
* 5qsystem.ads, 5xcrtl.ads: New files.
2004-03-18 Vincent Celier <celier@gnat.com>
* prj.adb (Reset): Reset hash table Files_Htable
* prj-env.adb (Source_Paths, Object_Paths): New tables.
(Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
the procedures Add_To_Path_File.
(Set_Ada_Paths): Accumulate source and object dirs in the tables,
making sure that each directory is present only once and, for object
dirs, when a directory already present is added, the duplicate is
removed and the directory is always put as the last in the table.
Write the path files at the end of these accumulations.
* prj-nmsc.adb (Record_Source): Add source file name in hash table
Files_Htable for all sources.
* prj-proc.adb (Process): Remove restrictions between not directly
related extending projects.
2004-03-18 Emmanuel Briot <briot@act-europe.fr>
* prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
(Find_Sources): Minor speed optimization.
* prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
parameter Trusted_Mode.
2004-03-18 Sergey Rybin <rybin@act-europe.fr>
* scn.adb (Determine_License): Take into account a degenerated case
when the source contains only comments.
2004-03-18 Ed Schonberg <schonberg@gnat.com>
* sem_warn.adb (Check_References): For a warning on a selected
component that does not come from source, locate an uninitialized
component of the record type to produce a more precise error message.
From-SVN: r79623
Diffstat (limited to 'gcc/ada/s-stache.ads')
-rw-r--r-- | gcc/ada/s-stache.ads | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/gcc/ada/s-stache.ads b/gcc/ada/s-stache.ads index f253eb2..932ecf1 100644 --- a/gcc/ada/s-stache.ads +++ b/gcc/ada/s-stache.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2003 Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2004 Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- @@ -33,14 +33,16 @@ -- This package provides a system-independent implementation of stack -- checking using comparison with stack base and limit. +-- This package defines basic types and objects. Operations related +-- to stack checking can be found in package +-- System.Stack_Checking.Operations. with System.Storage_Elements; -pragma Polling (Off); --- Turn off polling, we do not want polling to take place during stack --- checking operations. It causes infinite loops and other problems. - package System.Stack_Checking is + + pragma Elaborate_Body; + type Stack_Info is record Limit : System.Address := System.Null_Address; Base : System.Address := System.Null_Address; @@ -59,30 +61,7 @@ package System.Stack_Checking is -- upgrowing stack) may contain any address that is part of another stack. -- The Stack_Access may be part of a larger data structure. - Multi_Processor : constant Boolean := False; -- Not supported yet - - ---------------------- - -- Client Interface -- - ---------------------- - - procedure Set_Stack_Size - (Stack_Size : System.Storage_Elements.Storage_Offset); - -- Specify the stack size for the current task. - - procedure Update_Stack_Cache (Stack : Stack_Access); - -- Set the stack cache for the current task. Note that this is only - -- for optimization purposes, nothing can be assumed about the - -- contents of the cache at any time, see Set_Stack_Info. - - procedure Invalidate_Stack_Cache (Any_Stack : Stack_Access); - -- Invalidate cache entries for the task T that owns Any_Stack. - -- This causes the Set_Stack_Info function to be called during - -- the next stack check done by T. This can be used to interrupt - -- task T asynchronously. - -- Stack_Check should be called in loops for this to work reliably. - - function Stack_Check (Stack_Address : System.Address) return Stack_Access; - -- This version of Stack_Check should not be inlined. + Multi_Processor : constant Boolean := False; -- Not supported yet private @@ -92,14 +71,8 @@ private Size => 0); -- Use explicit assignment to avoid elaboration code (call to init proc). - Null_Stack : constant Stack_Access := Null_Stack_Info'Access; + Null_Stack : constant Stack_Access := Null_Stack_Info'Access; -- Stack_Access value that will return a Stack_Base and Stack_Limit -- that fail any stack check. - Cache : aliased Stack_Access := Null_Stack; - - pragma Export (C, Cache, "_gnat_stack_cache"); - pragma Export (C, Stack_Check, "_gnat_stack_check"); - pragma Export (C, Set_Stack_Size, "__gnat_set_stack_size"); - end System.Stack_Checking; |