diff options
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r-- | gcc/doc/invoke.texi | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 56a0bdadc55..3d034536a28 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -634,8 +634,8 @@ Objective-C and Objective-C++ Dialects}. -mips16 -mno-mips16 -mflip-mips16 @gol -minterlink-mips16 -mno-interlink-mips16 @gol -mabi=@var{abi} -mabicalls -mno-abicalls @gol --mshared -mno-shared -mxgot -mno-xgot -mgp32 -mgp64 @gol --mfp32 -mfp64 -mhard-float -msoft-float @gol +-mshared -mno-shared -mplt -mno-plt -mxgot -mno-xgot @gol +-mgp32 -mgp64 -mfp32 -mfp64 -mhard-float -msoft-float @gol -msingle-float -mdouble-float -mdsp -mno-dsp -mdspr2 -mno-dspr2 @gol -msmartmips -mno-smartmips @gol -mpaired-single -mno-paired-single -mdmx -mno-mdmx @gol @@ -12162,6 +12162,19 @@ executables both smaller and quicker. @option{-mshared} is the default. +@item -mplt +@itemx -mno-plt +@opindex mplt +@opindex mno-plt +Assume (do not assume) that the static and dynamic linkers +support PLTs and copy relocations. This option only affects +@samp{-mno-shared -mabicalls}. For the n64 ABI, this option +has no effect without @samp{-msym32}. + +You can make @option{-mplt} the default by configuring +GCC with @option{--with-mips-plt}. The default is +@option{-mno-plt} otherwise. + @item -mxgot @itemx -mno-xgot @opindex mxgot @@ -15207,8 +15220,34 @@ a single-threaded environment since stack overflow is automatically detected on nearly all systems if there is only one stack. Note that this switch does not actually cause checking to be done; the -operating system must do that. The switch causes generation of code -to ensure that the operating system sees the stack being extended. +operating system or the language runtime must do that. The switch causes +generation of code to ensure that they see the stack being extended. + +You can additionally specify a string parameter: @code{no} means no +checking, @code{generic} means force the use of old-style checking, +@code{specific} means use the best checking method and is equivalent +to bare @option{-fstack-check}. + +Old-style checking is a generic mechanism that requires no specific +target support in the compiler but comes with the following drawbacks: + +@enumerate +@item +Modified allocation strategy for large objects: they will always be +allocated dynamically if their size exceeds a fixed threshold. + +@item +Fixed limit on the size of the static frame of functions: when it is +topped by a particular function, stack checking is not reliable and +a warning is issued by the compiler. + +@item +Inefficiency: because of both the modified allocation strategy and the +generic implementation, the performances of the code are hampered. +@end enumerate + +Note that old-style stack checking is also the fallback method for +@code{specific} if no target support has been added in the compiler. @item -fstack-limit-register=@var{reg} @itemx -fstack-limit-symbol=@var{sym} |