The following switches are available with gnatbind; details will be presented in subsequent sections.
--version
--help
-a
-aO
-aI
-A[=`filename']
-b
stderr
even if verbose mode set.
-c
-d`nn'[k|m]
[k|m]
suffix, this switch is equivalent,
in effect, to completing all task specs with
pragma Storage_Size (nn);
When they do not already have such a pragma.
-D`nn'[k|m]
The secondary stack is used to deal with functions that return a variable sized result, for example a function returning an unconstrained String. There are two ways in which this secondary stack is allocated.
For most targets, the secondary stack is growing on demand and is allocated as a chain of blocks in the heap. The -D option is not very relevant. It only give some control over the size of the allocated blocks (whose size is the minimum of the default secondary stack size value, and the actual size needed for the current allocation request).
For certain targets, notably VxWorks 653, the secondary stack is allocated by carving off a fixed ratio chunk of the primary task stack. The -D option is used to define the size of the environment task's secondary stack.
-e
-E
See also the packages GNAT.Traceback and GNAT.Traceback.Symbolic for more information. Note that on x86 ports, you must not use `-fomit-frame-pointer' `gcc' option.
-F
-h
-H32
-H64
-I
-I-
-l
-L`xxx'
-M`xyz'
-m`n'
-n
-nostdinc
-nostdlib
--RTS=`rts-path'
-o `file'
b~`xxx
.adb`).
Note that if this option is used, then linking must be done manually,
gnatlink cannot be used.
-O[=`filename']
-p
-P
-R
-Ra
-s
-S`xxx'
in
for an invalid value*.
If zero is invalid for the discrete type in question, then the scalar value is set to all zero bits. For signed discrete types, the largest possible negative value of the underlying scalar is set (i.e. a one bit followed by all zero bits). For unsigned discrete types, the underlying scalar value is set to all one bits. For floating-point types, a NaN value is set (see body of package System.Scalar_Values for exact values).
lo
for low value.
If zero is invalid for the discrete type in question, then the scalar value is set to all zero bits. For signed discrete types, the largest possible negative value of the underlying scalar is set (i.e. a one bit followed by all zero bits). For unsigned discrete types, the underlying scalar value is set to all zero bits. For floating-point, a small value is set (see body of package System.Scalar_Values for exact values).
hi
for high value.
If zero is invalid for the discrete type in question, then the scalar value is set to all one bits. For signed discrete types, the largest possible positive value of the underlying scalar is set (i.e. a zero bit followed by all one bits). For unsigned discrete types, the underlying scalar value is set to all one bits. For floating-point, a large value is set (see body of package System.Scalar_Values for exact values).
The underlying scalar is set to a value consisting of repeated bytes, whose
value corresponds to the given value. For example if BF
is given,
then a 32-bit scalar value will be set to the bit patterm 16#BFBFBFBF#
.
In addition, you can specify `-Sev' to indicate that the value is
to be set at run time. In this case, the program will look for an environment
variable of the form GNAT_INIT_SCALARS=`yy'
, where yy is one
of `in/lo/hi/`xx*` with the same meanings as above.
If no environment variable is found, or if it does not have a valid value,
then the default is *in' (invalid values).
-static
-shared
-t
-T`n'
A value of zero is treated specially. It turns off time slicing, and in addition, indicates to the tasking run time that the semantics should match as closely as possible the Annex D requirements of the Ada RM, and in particular sets the default scheduling policy to FIFO_Within_Priorities.
-u`n'
-v
stdout
.
-w`x'
-Wx`e'
-x
-X`nnn'
-y
-z
You may obtain this listing of switches by running gnatbind with no arguments.