Chapter 4. GCC Command Options
-fstack-limit-register=
-fstack-limit-symbol=
-fno-stack-limit
Generate code to ensure that the stack does not grow beyond a certain value, either the value of
a register or the address of a symbol. If the stack would grow beyond the value, a signal is raised.
For most targets, the signal is raised before the stack overruns the boundary, so it is possible to
catch the signal without taking special precautions.
For instance, if the stack starts at absolute
downwards, you can use the flags
-Wl,-defsym,__stack_limit=0x7ffe0000
this may only work with the GNU linker.
-fargument-alias
-fargument-noalias
-fargument-noalias-global
Specify the possible relationships among parameters and between parameters and global data.
-fargument-alias
global storage.
-fargument-noalias
alias global storage.
other and do not alias global storage.
Each language will automatically use whatever option is required by the language standard. You
should not need to use these options yourself.
-fleading-underscore
This option and its counterpart,
bols are represented in the object file. One use is to help link with legacy assembly code.
Warning: the
-fleading-underscore
compatible with code generated without that switch. Use it to conform to a non-default applica-
tion binary interface. Not all targets provide complete support for this switch.
-ftls-model=
model
Alter the thread-local storage model to be used (Section 6.49 Thread-Local Storage). The
argument should be one of
model
.
local-exec
The default without
-fvisibility=
default|internal|hidden|protected
Set the default ELF image symbol visibility to the specified option - all symbols will be marked
with this unless overrided within the code. Using this feature can very substantially improve
linking and load times of shared object libraries, produce more optimised code, provide near-
perfect API export and prevent symbol clashes. It is strongly recommended that you use this in
any shared objects you distribute.
Despite the nomenclature,
outside the shared object.
the only other commonly used option will be
ie; make every symbol public - this causes the same behaviour as previous versions of
default
GCC.
A good explanation of the benefits offered by ensuring ELF symbols have the correct visibil-
ity is given by "How To Write Shared Libraries" by Ulrich Drepper (which can be found at
http://people.redhat.com/~drepper/) - however a superior solution made possible by this option
reg
sym
specifies that arguments (parameters) may alias each other and may alias
specifies that arguments do not alias each other, but may
-fargument-noalias-global
-fno-leading-underscore
global-dynamic
is
-fpic
initial-exec
always means public ie; available to be linked against from
default
and
protected
address
-fstack-limit-symbol=__stack_limit
to enforce a stack limit of 128KB. Note that
specifies that arguments do not alias each
switch causes GCC to generate code that is not binary
,
local-dynamic
; with
the default is
-fpic
are pretty useless in real-world usage so
internal
. The default if -fvisibility isn't specified is
hidden
0x80000000
, forcibly change the way C sym-
,
initial-exec
global-dynamic
117
and grows
and
or
.
Need help?
Do you have a question about the ENTERPRISE LINUX 4 and is the answer not in the manual?