-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2005 Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2006, 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- --
-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
-- Boston, MA 02110-1301, USA. --
-- --
+-- As a special exception, if other files instantiate generics from this --
+-- unit, or you link this unit with other files to produce an executable, --
+-- this unit does not by itself cause the resulting executable to be --
+-- covered by the GNU General Public License. This exception does not --
+-- however invalidate any other reasons why the executable file might be --
+-- covered by the GNU Public License. --
+-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
-- then the flag Opt.Address_Is_Private is set True, otherwise this flag
-- is set False.
- Restrictions_On_Target : Restrictions_Info;
+ Restrictions_On_Target : Restrictions_Info := No_Restrictions;
-- Records restrictions specified by system.ads. Only the Set and Value
-- members are modified. The Violated and Count fields are never modified.
-- Note that entries can be set either by a pragma Restrictions or by
-- The name should contain only letters A-Z, digits 1-9, spaces,
-- and underscores.
+ --------------------------
+ -- Executable Extension --
+ --------------------------
+
+ Executable_Extension_On_Target : Name_Id := No_Name;
+ -- Executable extension on the target.
+ -- This name is useful for setting the executable extension in a
+ -- dynamic way, e.g. depending on the run-time used, rather than
+ -- using a configure-time macro as done by Get_Target_Executable_Suffix.
+ -- If not set (No_Name), use GNAT.OS_Lib.Get_Target_Executable_Suffix.
+
-----------------------
-- Target Parameters --
-----------------------
-- Controlling the selection of methods
- -- The Front-End Longjmp/Setjmp approach is always available in
- -- all implementations. If it is not the default method, then it
- -- may be explicitly specified by the use of -gnatL. Note however
- -- that there is a requirement that all Ada units in a partition
- -- be compiled with this overriding option if it is not the default.
-
- -- On some, but not all, implementations of GNAT, one of the two
- -- ZCX approaches (but not both) is implemented. If this is the
- -- case, and ZCX is not the default mechanism, then ZCX handling
- -- (front-end or back-end according to the implementation) may be
- -- specified by use of the -gnatZ switch. Again, this switch must
- -- be used to compile all Ada units in a partition. The use of
- -- the -gnatZ switch will cause termination with a fatal error.
-
- -- Finally the debug option -gnatdX can be used to force the
- -- compiler to operate in front-end ZCX exception mode and force
- -- the front end to generate exception tables. This is only useful
- -- for debugging purposes for implementations which do not provide
- -- the possibility of front-end ZCX mode. The resulting object file
- -- is unusable, but this debug switch may still be useful (e.g. in
- -- conjunction with -gnatG) for front-end debugging purposes.
+ -- On most implementations, back-end zero-cost exceptions are used.
+ -- Otherwise, Front-End Longjmp/Setjmp approach is used.
+ -- Note that there is a requirement that all Ada units in a partition
+ -- be compiled with the same exception model.
-- Control of Available Methods and Defaults
- -- The following switches specify which of the two ZCX methods
- -- (if any) is available in an implementation, and which method
- -- is the default method.
+ -- The following switches specify whether ZCX is available, and
+ -- whether it is enabled by default.
ZCX_By_Default_On_Target : Boolean := False;
-- Indicates if zero cost exceptions are active by default. If this
-- variable is False, then the only possible exception method is the
-- front-end setjmp/longjmp approach, and this is the default. If
- -- this variable is True, then one of the following two flags must
- -- be True, and represents the method to be used by default.
+ -- this variable is True, then GCC ZCX is used.
GCC_ZCX_Support_On_Target : Boolean := False;
- -- Indicates that when ZCX is active, the mechanism to be used is the
- -- back-end ZCX exception approach. If this variable is set to True,
- -- then Front_End_ZCX_Support_On_Target must be False.
-
- Front_End_ZCX_Support_On_Target : Boolean := False;
- -- Indicates that when ZCX is active, the mechanism to be used is the
- -- front-end ZCX exception approach. If this variable is set to True,
- -- then GCC_ZCX_Support_On_Target must be False.
+ -- Indicates that the target supports GCC Exceptions
------------------------------------
-- Run-Time Library Configuration --
-- with the exception of the priority of the environment task, which
-- is needed by the Ravenscar run-time.
--
- -- The generation of exception tables is suppressed for front end
- -- ZCX exception handling (since we assume no exception handling).
- --
-- The calls to __gnat_initialize and __gnat_finalize are omitted
--
-- All finalization and initialization (controlled types) is omitted
-- Set to True for targets where S'Machine_Overflows is True
Signed_Zeros_On_Target : Boolean := True;
- -- Set to False on targets that do not reliably support signed zeros.
+ -- Set to False on targets that do not reliably support signed zeros
-------------------------------------------
-- Boolean-Valued Fixed-Point Attributes --