diff options
Diffstat (limited to 'gcc-4.9/gcc/doc/invoke.texi')
-rw-r--r-- | gcc-4.9/gcc/doc/invoke.texi | 352 |
1 files changed, 338 insertions, 14 deletions
diff --git a/gcc-4.9/gcc/doc/invoke.texi b/gcc-4.9/gcc/doc/invoke.texi index a74c6c54e..d4ced8484 100644 --- a/gcc-4.9/gcc/doc/invoke.texi +++ b/gcc-4.9/gcc/doc/invoke.texi @@ -244,7 +244,7 @@ Objective-C and Objective-C++ Dialects}. -Wno-deprecated -Wno-deprecated-declarations -Wdisabled-optimization @gol -Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare @gol -Wno-endif-labels -Werror -Werror=* @gol --Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol +-Wfatal-errors -Wfloat-equal -Wforce-warnings -Wformat -Wformat=2 @gol -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol -Wformat-security -Wformat-y2k @gol -Wframe-larger-than=@var{len} -Wno-free-nonheap-object -Wjump-misses-init @gol @@ -260,8 +260,9 @@ Objective-C and Objective-C++ Dialects}. -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol -Wpointer-arith -Wno-pointer-to-int-cast @gol --Wredundant-decls -Wno-return-local-addr @gol --Wreturn-type -Wsequence-point -Wshadow @gol +-Wredundant-decls -Wno-return-local-addr -Wipa-opt-mismatch @gol +-Wreturn-type -Wself-assign -Wself-assign-non-pod -Wsequence-point -Wshadow @gol +-Wshadow-compatible-local -Wshadow-local @gol -Wsign-compare -Wsign-conversion -Wfloat-conversion @gol -Wsizeof-pointer-memaccess @gol -Wstack-protector -Wstack-usage=@var{len} -Wstrict-aliasing @gol @@ -330,16 +331,19 @@ Objective-C and Objective-C++ Dialects}. -fenable-@var{kind}-@var{pass} @gol -fenable-@var{kind}-@var{pass}=@var{range-list} @gol -fdebug-types-section -fmem-report-wpa @gol +-fenable-@var{kind}-@var{pass} @gol +-fenable-@var{kind}-@var{pass}=@var{range-list} @gol +-fdebug-types-section @gol -fmem-report -fpre-ipa-mem-report -fpost-ipa-mem-report -fprofile-arcs @gol +-fprofile-strip=@var{suffix} -frandom-seed=@var{string} -fsched-verbose=@var{n} @gol -fopt-info @gol -fopt-info-@var{options}@r{[}=@var{file}@r{]} @gol --frandom-seed=@var{string} -fsched-verbose=@var{n} @gol -fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose @gol -fstack-usage -ftest-coverage -ftime-report -fvar-tracking @gol -fvar-tracking-assignments -fvar-tracking-assignments-toggle @gol -g -g@var{level} -gtoggle -gcoff -gdwarf-@var{version} @gol -ggdb -grecord-gcc-switches -gno-record-gcc-switches @gol --gstabs -gstabs+ -gstrict-dwarf -gno-strict-dwarf @gol +-gmlt -gstabs -gstabs+ -gstrict-dwarf -gno-strict-dwarf @gol -gvms -gxcoff -gxcoff+ @gol -fno-merge-debug-strings -fno-dwarf2-cfi-asm @gol -fdebug-prefix-map=@var{old}=@var{new} @gol @@ -359,7 +363,8 @@ Objective-C and Objective-C++ Dialects}. -fassociative-math -fauto-inc-dec -fbranch-probabilities @gol -fbranch-target-load-optimize -fbranch-target-load-optimize2 @gol -fbtr-bb-exclusive -fcaller-saves @gol --fcheck-data-deps -fcombine-stack-adjustments -fconserve-stack @gol +-fcheck-branch-annotation -fcheck-data-deps -fclone-hot-version-paths @gol +-fcombine-stack-adjustments -fconserve-stack @gol -fcompare-elim -fcprop-registers -fcrossjumping @gol -fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules @gol -fcx-limited-range @gol @@ -393,12 +398,16 @@ Objective-C and Objective-C++ Dialects}. -fpartial-inlining -fpeel-loops -fpredictive-commoning @gol -fprefetch-loop-arrays -fprofile-report @gol -fprofile-correction -fprofile-dir=@var{path} -fprofile-generate @gol --fprofile-generate=@var{path} @gol +-fprofile-generate=@var{path} -fprofile-generate-sampling @gol -fprofile-use -fprofile-use=@var{path} -fprofile-values -fprofile-reorder-functions @gol -freciprocal-math -free -frename-registers -freorder-blocks @gol +-frecord-gcc-switches-in-elf@gol -freorder-blocks-and-partition -freorder-functions @gol -frerun-cse-after-loop -freschedule-modulo-scheduled-loops @gol --frounding-math -fsched2-use-superblocks -fsched-pressure @gol +-fripa -fripa-disallow-asm-modules -fripa-disallow-opt-mismatch @gol +-fripa-inc-path-sub=@var{path_mapping} -fripa-no-promote-always-inline-func @gol +-fripa-verbose -frounding-math @gol +-fsched2-use-superblocks -fsched-pressure @gol -fsched-spec-load -fsched-spec-load-dangerous @gol -fsched-stalled-insns-dep[=@var{n}] -fsched-stalled-insns[=@var{n}] @gol -fsched-group-heuristic -fsched-critical-path-heuristic @gol @@ -658,6 +667,7 @@ Objective-C and Objective-C++ Dialects}. -mtune-ctrl=@var{feature-list} -mdump-tune-features -mno-default @gol -mfpmath=@var{unit} @gol -masm=@var{dialect} -mno-fancy-math-387 @gol +-mcopyrelocs @gol -mno-fp-ret-in-387 -msoft-float @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol @@ -981,7 +991,7 @@ See RS/6000 and PowerPC Options. -mpretend-cmove -mtas} @emph{Solaris 2 Options} -@gccoptlist{-mimpure-text -mno-impure-text @gol +@gccoptlist{-mclear-hwcap -mno-clear-hwcap -mimpure-text -mno-impure-text @gol -pthreads -pthread} @emph{SPARC Options} @@ -1473,11 +1483,20 @@ gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts diff /tmp/O2-opts /tmp/O3-opts | grep enabled @end smallexample +@item -canonical-prefixes +@opindex canonical-prefixes +Always expand any symbolic links, resolve references to @samp{/../} +or @samp{/./}, and make the path absolute when generating a relative +prefix. + @item -no-canonical-prefixes @opindex no-canonical-prefixes -Do not expand any symbolic links, resolve references to @samp{/../} +Never expand any symbolic links, resolve references to @samp{/../} or @samp{/./}, or make the path absolute when generating a relative -prefix. +prefix. If neither @option{-canonical-prefixes} nor +@option{-nocanonical-prefixes} is given, GCC tries to set an appropriate +default by looking for a target-specific subdirectory alongside the +directory containing the compiler driver. @item --version @opindex version @@ -3237,6 +3256,11 @@ This option causes the compiler to abort compilation on the first error occurred rather than trying to keep going and printing further error messages. +@item -Wforce-warnings +@opindex Wforce-warnings +This option causes the compiler to ignore @option{-Werror} and +@option{-Werror=} and suppress promotion of warnings to errors. + @end table You can request many specific warnings with options beginning with @@ -3335,6 +3359,7 @@ Options} and @ref{Objective-C and Objective-C++ Dialect Options}. -Wpointer-sign @gol -Wreorder @gol -Wreturn-type @gol +-Wripa-opt-mismatch @gol -Wsequence-point @gol -Wsign-compare @r{(only in C++)} @gol -Wstrict-aliasing @gol @@ -3573,7 +3598,7 @@ If @option{-Wformat} is specified, also warn about @code{strftime} formats that may yield only a two-digit year. @end table -@item -Wnonnull +@item -Wnonnull @r{(C and Objective-C only)} @opindex Wnonnull @opindex Wno-nonnull Warn about passing a null pointer for arguments marked as @@ -3771,6 +3796,61 @@ definitions, may be found on the GCC readings page, at This warning is enabled by @option{-Wall} for C and C++. +@item -Wself-assign +@opindex Wself-assign +@opindex Wno-self-assign +Warn about self-assignment and self-initialization. This warning is intended +for detecting accidental self-assignment due to typos, and therefore does +not warn on a statement that is semantically a self-assignment after +constant folding. Here is an example of what will trigger a self-assign +warning and what will not: + +@smallexample +@group +void func() +@{ + int i = 2; + int x = x; /* warn */ + float f = 5.0; + double a[3]; + + i = i + 0; /* not warn */ + f = f / 1; /* not warn */ + a[1] = a[1]; /* warn */ + i += 0; /* not warn */ +@} +@end group +@end smallexample + +In C++ it will not warn on self-assignment of non-POD variables unless +@option{-Wself-assign-non-pod} is also enabled. + +@item -Wself-assign-non-pod +@opindex Wself-assign-non-pod +@opindex Wno-self-assign-non-pod +Warn about self-assignment of non-POD variables. This is a C++-specific +warning and only effective when @option{-Wself-assign} is enabled. + +There are cases where self-assignment might be intentional. For example, +a C++ programmer might write code to test whether an overloaded +@code{operator=} works when the same object is assigned to itself. +One way to work around the self-assign warning in such cases when this flag +is enabled is using the functional form @code{object.operator=(object)} +instead of the assignment form @code{object = object}, as shown in the +following example. + +@smallexample +@group +void test_func() +@{ + MyType t; + + t.operator=(t); // not warn + t = t; // warn +@} +@end group +@end smallexample + @item -Wno-return-local-addr @opindex Wno-return-local-addr @opindex Wreturn-local-addr @@ -3793,6 +3873,16 @@ exceptions are @samp{main} and functions defined in system headers. This warning is enabled by @option{-Wall}. +@item -Wripa-opt-mismatch +@opindex Wripa-opt-mismatch +@opindex Wno-ripa-opt-mismatch +When doing an FDO build with @option{-fprofile-use} and @option{-fripa}, +warn if importing an axuiliary module that was built with a different +GCC command line during the profile-generate phase than the primary +module. + +This warning is enabled by @option{-Wall}. + @item -Wswitch @opindex Wswitch @opindex Wno-switch @@ -3905,6 +3995,10 @@ This warning is enabled by @option{-Wall}. To suppress this warning use the @samp{unused} attribute (@pxref{Variable Attributes}). +Note that a classic way to avoid @option{-Wunused-variable} warning is +using @code{x = x}, but that does not work with @option{-Wself-assign}. +Use @code{(void) x} or @code{static_cast<void>(x)} instead. + @item -Wunused-value @opindex Wunused-value @opindex Wno-unused-value @@ -4351,6 +4445,43 @@ parameter, type, or class member (in C++), or whenever a built-in function is shadowed. Note that in C++, the compiler warns if a local variable shadows an explicit typedef, but not if it shadows a struct/class/enum. +@item -Wshadow-local +@opindex Wshadow-local +@opindex Wno-shadow-local +Warn when a local variable shadows another local variable or parameter. + +@item -Wshadow-compatible-local +@opindex Wshadow-compatible-local +@opindex Wno-shadow-compatible-local +Warn when a local variable shadows another local variable or parameter +whose type is compatible with that of the shadowing variable. In C++, +type compatibility here means the type of the shadowing variable can be +converted to that of the shadowed variable. The creation of this flag +(in addition to @option{-Wshadow-local}) is based on the idea that when +a local variable shadows another one of incompatible type, it is most +likely intentional, not a bug or typo, as shown in the following example: + +@smallexample +@group +for (SomeIterator i = SomeObj.begin(); i != SomeObj.end(); ++i) +@{ + for (int i = 0; i < N; ++i) + @{ + ... + @} + ... +@} +@end group +@end smallexample + +Since the two variable @code{i} in the example above have incompatible types, +enabling only @option{-Wshadow-compatible-local} will not emit a warning. +Because their types are incompatible, if a programmer accidentally uses one +in place of the other, type checking will catch that and emit an error or +warning. So not warning (about shadowing) in this case will not lead to +undetected bugs. Use of this flag instead of @option{-Wshadow-local} can +possibly reduce the number of warnings triggered by intentional shadowing. + @item -Wlarger-than=@var{len} @opindex Wlarger-than=@var{len} @opindex Wlarger-than-@var{len} @@ -4955,6 +5086,12 @@ Suppress warnings from casts to pointer type of an integer of a different size. In C++, casting to a pointer type of smaller size is an error. @option{Wint-to-pointer-cast} is enabled by default. +@item max-lipo-mem +When importing auxiliary modules during profile-use, check current +memory consumption after parsing each auxiliary module. If it exceeds +this limit (specified in kb), don't import any more auxiliary modules. +Specifying a value of 0 means don't enforce this limit. This parameter +is only useful when using @option{-fprofile-use} and @option{-fripa}. @item -Wno-pointer-to-int-cast @r{(C and Objective-C only)} @opindex Wno-pointer-to-int-cast @@ -6236,7 +6373,7 @@ passes). @item missed Enable showing missed optimization information (only available in certain passes). -@item notes +@item note Enable other detailed optimization information (only available in certain passes). @item =@var{filename} @@ -7395,7 +7532,8 @@ Attempt to remove redundant extension instructions. This is especially helpful for the x86-64 architecture, which implicitly zero-extends in 64-bit registers after writing to their lower 32-bit half. -Enabled for AArch64 and x86 at levels @option{-O2}, @option{-O3}. +Enabled for Alpha, AArch64 and x86 at levels @option{-O2}, +@option{-O3}, @option{-Os}. @item -flive-range-shrinkage @opindex flive-range-shrinkage @@ -8297,6 +8435,10 @@ Also profile feedback must be available to make this option effective. See Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. +@item -freorder-functions=@var{alg} +@opindex freorder-functions +This invokes a linker plugin that globally reorders functions in the final binary according to the algorithm specified. Currently, only one type of reordering is supported, @code{callgraph}. This algorithm places functions that are connected by hot callgraph edges closer. This option also enables @option{-ffunction-sections}. Also, profile feedback must be available to makes this option effective. This option emits callgraph edge profile information in special sections named .gnu.callgraph.text. The params variable "gnu-cgraph-section-edge-threshold" can be used to only list edges above a certain threshold. + @item -fstrict-aliasing @opindex fstrict-aliasing Allow the compiler to assume the strictest aliasing rules applicable to @@ -8801,6 +8943,24 @@ and occasionally eliminate the copy. Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. +@item -fauto-profile +@itemx -fauto-profile=@var{path} +@opindex fauto-profile +Enable auto-profile feedback directed optimizations, and optimizations +generally profitable only with profile feedback available. + +The following options are enabled: @code{-fbranch-probabilities}, +@code{-funroll-loops}, @code{-fpeel-loops}. + +If @var{path} is specified, GCC will look at the @var{path} to find +the profile feedback data files. Otherwise, GCC will find fbdata.afdo +in the current directory. + +@item -fcheck-branch-annotation +@opindex -fcheck-branch-annotation +Compare branch prediction result and autofdo profile information, store the +result in a section in the generated elf file. + @item -fprofile-correction @opindex fprofile-correction Profiles collected using an instrumented binary for multi-threaded programs may @@ -8833,6 +8993,20 @@ The following options are enabled: @code{-fprofile-arcs}, @code{-fprofile-values If @var{path} is specified, GCC looks at the @var{path} to find the profile feedback data files. See @option{-fprofile-dir}. +@item -fprofile-generate-sampling +@opindex -fprofile-generate-sampling + +Enable sampling for instrumented binaries. Instead of recording every event, +record only every N-th event, where N (the sampling period) can be set either +at compile time using +@option{--param profile-generate-sampling-period=@var{value}}, or at +execution start time through environment variable @samp{GCOV_SAMPLING_PERIOD}. + +At this time sampling applies only to branch counters. A sampling period of 100 +decreases instrumentated binary slowdown from up to 20x for heavily threaded +applications down to around 2x. @option{-fprofile-correction} is always +needed with sampling. + @item -fprofile-use @itemx -fprofile-use=@var{path} @opindex fprofile-use @@ -8850,6 +9024,59 @@ code. If @var{path} is specified, GCC looks at the @var{path} to find the profile feedback data files. See @option{-fprofile-dir}. + +@item -fprofile-strip=@var{base_suffix} +@opindex fprofile-strip + +The option causes the compiler to strip @var{base_suffix} from the +base file name and use that to find the gcda file. + +@item -fripa +@opindex fripa +Perform dynamic inter-procedural analysis. This is used in conjunction with +the @option{-fprofile-generate} and @option{-fprofile-use} options. +During the @option{-fprofile-generate} phase, this flag turns on some additional +instrumentation code that enables dynamic call-graph analysis. +During the @option{-fprofile-use} phase, this flag enables cross-module +optimizations such as inlining. + +@item -fripa-disallow-asm-modules +@opindex fripa-disallow-asm-modules +During profile-gen, if this flag is enabled, and the module has asm statements, +arrange so that a bit recording this information will be set in the profile +feedback data file. +During profile-use, if this flag is enabled, and the same bit in auxiliary +module's profile feedback data is set, don't import this auxiliary module. +If this is the primary module, don't export it. + +@item -fripa-disallow-opt-mismatch +@opindex fripa-disallow-opt-mismatch +Don't import an auxiliary module, if the GCC command line options used for this +auxiliary module during the profile-generate stage were different from those used +for the primary module. Note that any mismatches in warning-related options are +ignored for this comparison. + +@item -fripa-inc-path-sub=@var{path_mapping} +@opindex fripa-inc-path-sub +This option allows LIPO profile data associated with one compiler to be usable +by another compiler at different installation path. A user can use this option +to specify an include search path mapping so that the compiler can convert include +search paths stored in gcda files into exisiting paths. The mapping is specified +as a comma separated sub path pairs in the form: OLD_SUBPATH:NEW_SUBPATH. + +@item -fripa-no-promote-always-inline-func +@opindex fripa-no-promote-always-inline-func +Do not promote static functions with always inline attribute in LIPO compilation. + +@item -fripa-verbose +@opindex fripa-verbose +Enable printing of verbose information about dynamic inter-procedural optimizations. +This is used in conjunction with the @option{-fripa}. + +@item -frecord-gcc-switches-in-elf +@opindex frecord-gcc-switches-in-elf +Record the command line options in the .gnu.switches.text elf section for sample +based LIPO to do module grouping. @end table The following options control compiler behavior regarding floating-point @@ -9079,6 +9306,12 @@ whether the result of a complex multiplication or division is @code{NaN The default is @option{-fno-cx-fortran-rules}. +@item min-mcf-cancel-iters +The minimum number of iterations of negative cycle cancellation during +MCF profile correction before early termination. This parameter is +only useful when using @option{-fprofile-correction}. + + @end table The following options control optimizations that may improve @@ -9171,6 +9404,14 @@ the loop is entered. This usually makes programs run more slowly. @option{-funroll-all-loops} implies the same options as @option{-funroll-loops}. +@item -funroll-codesize-limit +@opindex funroll-codesize-limit +Limit loop unrolling of non-const non-FP loops in a profile feedback compilation +under estimates of a large code footprint. Enabled by default with +@option{-fprofile-use}. Code size and execution weight thresholds are controlled +by the @option{unrollpeel-codesize-threshold} and +@option{unrollpeel-hotness-threshold} parameters. + @item -fpeel-loops @opindex fpeel-loops Peels loops for which there is enough information that they do not @@ -9179,6 +9420,14 @@ roll much (from profile feedback). It also turns on complete loop peeling Enabled with @option{-fprofile-use}. +@item -fpeel-codesize-limit +@opindex fpeel-codesize-limit +Limit loop peeling of non-const non-FP loops in a profile feedback compilation +under estimates of a large code footprint. Enabled by default with +@option{-fprofile-use}. Code size and execution weight thresholds are controlled +by the @option{unrollpeel-codesize-threshold} and +@option{unrollpeel-hotness-threshold} parameters. + @item -fmove-loop-invariants @opindex fmove-loop-invariants Enables the loop invariant motion pass in the RTL loop optimizer. Enabled @@ -9548,12 +9797,27 @@ The maximum number of iterations of a loop to be suitable for complete peeling. @item max-completely-peel-loop-nest-depth The maximum depth of a loop nest suitable for complete peeling. +@item unrollpeel-codesize-threshold +Maximum profile-based code size footprint estimate for loop unrolling and +peeling. + +@item unrollpeel-hotness-threshold +Maximum ratio of total execution count to loop entry block count under which +most profile-based code size estimates will be ignored for loop unrolling and +peeling. + @item max-unswitch-insns The maximum number of insns of an unswitched loop. @item max-unswitch-level The maximum number of branches unswitched in a single loop. +@item min-iter-unroll-with-branches +Minimum iteration count to ignore branch effects when unrolling. + +@item unroll-outer-loop-branch-budget +Maximum number of branches allowed in hot outer loop region after unroll. + @item lim-expensive The minimum cost of an expensive expression in the loop invariant motion. @@ -10010,6 +10274,28 @@ parameter in order to propagate them and perform devirtualization. @option{ipa-cp-value-list-size} is the maximum number of values and types it stores per one formal parameter of a function. +@item ipa-cp-eval-threshold +IPA-CP calculates its own score of cloning profitability heuristics +and performs those cloning opportunities with scores that exceed +@option{ipa-cp-eval-threshold}. + +@item ipa-max-agg-items +IPA-CP is also capable to propagate a number of scalar values passed +in an aggregate. @option{ipa-max-agg-items} controls the maximum +number of such values per one parameter. + +@item ipa-cp-loop-hint-bonus +When IPA-CP determines that a cloning candidate would make the number +of iterations of a loop known, it adds a bonus of +@option{ipa-cp-loop-hint-bonus} bonus to the profitability score of +the candidate. + +@item ipa-cp-array-index-hint-bonus +When IPA-CP determines that a cloning candidate would make the index of +an array access known, it adds a bonus of +@option{ipa-cp-array-index-hint-bonus} bonus to the profitability +score of the candidate. + @item lto-partitions Specify desired number of partitions produced during WHOPR compilation. The number of partitions should exceed the number of CPUs used for compilation. @@ -10082,6 +10368,14 @@ The default choice depends on the target. Set the maximum number of existing candidates that will be considered when seeking a basis for a new straight-line strength reduction candidate. +@item coverage-callback +Set to 1 to instrument a callback function together with +arc counter update. The name of the callback function +is "__coverage_callback". + +@item coverage-exec_once +Set to 1 to update each arc counter only once. + @item asan-globals Enable buffer overflow detection for global objects. This kind of protection is enabled by default if you are using @@ -10194,6 +10488,9 @@ recognize. If you want to pass an option that takes an argument, you must use @option{-Xassembler} twice, once for the option and once for the argument. +@item profile-generate-sampling-rate +Set the sampling rate with @option{-fprofile-generate-sampling}. + @end table @node Link Options @@ -10457,6 +10754,11 @@ systems using the GNU linker. On some targets, such as bare-board targets without an operating system, the @option{-T} option may be required when linking to avoid references to undefined symbols. +@item -Xclang-only @var{option} +@opindex Xclang-only +Ignore @var{option}. This is used by some custom drivers to pass options +to Clang but not GCC. + @item -Xlinker @var{option} @opindex Xlinker Pass @var{option} as an option to the linker. You can use this to @@ -11188,6 +11490,12 @@ given to GCC, substitutes @code{Y}; else substitutes @code{D}. There can be as many clauses as you need. This may be combined with @code{.}, @code{,}, @code{!}, @code{|}, and @code{*} as needed. +@item max-lipo-mem +When importing auxiliary modules during profile-use, check current +memory consumption after parsing each auxiliary module. If it exceeds +this limit (specified in kb), don't import any more auxiliary modules. +Specifying a value of 0 means don't enforce this limit. This parameter +is only useful when using @option{-fprofile-use} and @option{-fripa}. @end table @@ -14990,6 +15298,15 @@ Control whether or not the compiler uses IEEE floating-point comparisons. These correctly handle the case where the result of a comparison is unordered. +@item -mcopyrelocs +@itemx -mno-copyrelocs +@opindex mcopyrelocs +@opindex mno-copyrelocs +With @option{-fpie} and @option{fPIE}, copy relocations support allows the +compiler to assume that all symbol references are local. This allows the +compiler to skip the GOT for global accesses and this applies only to the +x86-64 architecture. + @item -msoft-float @opindex msoft-float Generate output containing library calls for floating point. @@ -20853,6 +21170,13 @@ patterns. This can result in faster code on the SH4 processor. These @samp{-m} options are supported on Solaris 2: @table @gcctabopt +@item -mclear-hwcap +@opindex mclear-hwcap +@option{-mclear-hwcap} tells the compiler to remove the hardware +capabilities generated by the Solaris assembler. This is only necessary +when object files use ISA extensions not supported by the current +machine, but check at runtime whether or not to use them. + @item -mimpure-text @opindex mimpure-text @option{-mimpure-text}, used in addition to @option{-shared}, tells |