Commit 298e0c6b by Yannick Moy Committed by Pierre-Marie de Rodat

[Ada] Document entries of the target parametrization file

2018-08-21  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document entries of the target parametrization file.
	* gnat_ugn.texi: Regenerate.

From-SVN: r263725
parent 78645ad8
2018-08-21 Yannick Moy <moy@adacore.com>
* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
Document entries of the target parametrization file.
* gnat_ugn.texi: Regenerate.
2018-08-21 Ed Schonberg <schonberg@adacore.com> 2018-08-21 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb: Set scope of elaboration flag for 'Access. * sem_attr.adb: Set scope of elaboration flag for 'Access.
......
...@@ -1692,13 +1692,44 @@ Alphabetical List of All Switches ...@@ -1692,13 +1692,44 @@ Alphabetical List of All Switches
Maximum_Alignment : Pos; -- Maximum permitted alignment Maximum_Alignment : Pos; -- Maximum permitted alignment
Max_Unaligned_Field : Pos; -- Maximum size for unaligned bit field Max_Unaligned_Field : Pos; -- Maximum size for unaligned bit field
Pointer_Size : Pos; -- System.Address'Size Pointer_Size : Pos; -- System.Address'Size
Short_Enums : Nat; -- Short foreign convention enums? Short_Enums : Nat; -- Foreign enums use short size?
Short_Size : Pos; -- Standard.Short_Integer'Size Short_Size : Pos; -- Standard.Short_Integer'Size
Strict_Alignment : Nat; -- Strict alignment? Strict_Alignment : Nat; -- Strict alignment?
System_Allocator_Alignment : Nat; -- Alignment for malloc calls System_Allocator_Alignment : Nat; -- Alignment for malloc calls
Wchar_T_Size : Pos; -- Interfaces.C.wchar_t'Size Wchar_T_Size : Pos; -- Interfaces.C.wchar_t'Size
Words_BE : Nat; -- Words stored big-endian? Words_BE : Nat; -- Words stored big-endian?
``Bits_Per_Unit`` is the number of bits in a storage unit, the equivalent of
GCC macro ``BITS_PER_UNIT`` documented as follows: `Define this macro to be
the number of bits in an addressable storage unit (byte); normally 8.`
``Bits_Per_Word`` is the number of bits in a machine word, the equivalent of
GCC macro ``BITS_PER_WORD`` documented as follows: `Number of bits in a word;
normally 32.`
``Double_Scalar_Alignment`` is the alignment for a scalar whose size is two
machine words. It should be the same as the alignment for C ``long_long`` on
most targets.
``Maximum_Alignment`` is the maximum alignment that the compiler might choose
by default for a type or object, which is also the maximum alignment that can
be specified in GNAT. It is computed for GCC backends as ``BIGGEST_ALIGNMENT
/ BITS_PER_UNIT`` where GCC macro ``BIGGEST_ALIGNMENT`` is documented as
follows: `Biggest alignment that any data type can require on this machine,
in bits.`
``Max_Unaligned_Field`` is the maximum size for unaligned bit field, which is
64 for the majority of GCC targets (but can be different on some targets like
AAMP).
``Strict_Alignment`` is the equivalent of GCC macro ``STRICT_ALIGNMENT``
documented as follows: `Define this macro to be the value 1 if instructions
will fail to work if given data not on the nominal alignment. If instructions
will merely go slower in that case, define this macro as 0.`
``System_Allocator_Alignment`` is the guaranteed alignment of data returned
by calls to ``malloc``.
The format of the input file is as follows. First come the values of The format of the input file is as follows. First come the values of
the variables defined above, with one line per value: the variables defined above, with one line per value:
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@copying @copying
@quotation @quotation
GNAT User's Guide for Native Platforms , Aug 17, 2018 GNAT User's Guide for Native Platforms , Aug 20, 2018
AdaCore AdaCore
...@@ -9429,7 +9429,7 @@ Long_Size : Pos; -- Standard.Long_Integer'Size ...@@ -9429,7 +9429,7 @@ Long_Size : Pos; -- Standard.Long_Integer'Size
Maximum_Alignment : Pos; -- Maximum permitted alignment Maximum_Alignment : Pos; -- Maximum permitted alignment
Max_Unaligned_Field : Pos; -- Maximum size for unaligned bit field Max_Unaligned_Field : Pos; -- Maximum size for unaligned bit field
Pointer_Size : Pos; -- System.Address'Size Pointer_Size : Pos; -- System.Address'Size
Short_Enums : Nat; -- Short foreign convention enums? Short_Enums : Nat; -- Foreign enums use short size?
Short_Size : Pos; -- Standard.Short_Integer'Size Short_Size : Pos; -- Standard.Short_Integer'Size
Strict_Alignment : Nat; -- Strict alignment? Strict_Alignment : Nat; -- Strict alignment?
System_Allocator_Alignment : Nat; -- Alignment for malloc calls System_Allocator_Alignment : Nat; -- Alignment for malloc calls
...@@ -9437,6 +9437,32 @@ Wchar_T_Size : Pos; -- Interfaces.C.wchar_t'Size ...@@ -9437,6 +9437,32 @@ Wchar_T_Size : Pos; -- Interfaces.C.wchar_t'Size
Words_BE : Nat; -- Words stored big-endian? Words_BE : Nat; -- Words stored big-endian?
@end example @end example
@code{Bits_Per_Unit} is the number of bits in a storage unit, the equivalent of
GCC macro @code{BITS_PER_UNIT} documented as follows: @cite{Define this macro to be the number of bits in an addressable storage unit (byte); normally 8.}
@code{Bits_Per_Word} is the number of bits in a machine word, the equivalent of
GCC macro @code{BITS_PER_WORD} documented as follows: @cite{Number of bits in a word; normally 32.}
@code{Double_Scalar_Alignment} is the alignment for a scalar whose size is two
machine words. It should be the same as the alignment for C @code{long_long} on
most targets.
@code{Maximum_Alignment} is the maximum alignment that the compiler might choose
by default for a type or object, which is also the maximum alignment that can
be specified in GNAT. It is computed for GCC backends as @code{BIGGEST_ALIGNMENT
/ BITS_PER_UNIT} where GCC macro @code{BIGGEST_ALIGNMENT} is documented as
follows: @cite{Biggest alignment that any data type can require on this machine@comma{} in bits.}
@code{Max_Unaligned_Field} is the maximum size for unaligned bit field, which is
64 for the majority of GCC targets (but can be different on some targets like
AAMP).
@code{Strict_Alignment} is the equivalent of GCC macro @code{STRICT_ALIGNMENT}
documented as follows: @cite{Define this macro to be the value 1 if instructions will fail to work if given data not on the nominal alignment. If instructions will merely go slower in that case@comma{} define this macro as 0.}
@code{System_Allocator_Alignment} is the guaranteed alignment of data returned
by calls to @code{malloc}.
The format of the input file is as follows. First come the values of The format of the input file is as follows. First come the values of
the variables defined above, with one line per value: the variables defined above, with one line per value:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment