Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   gcc    ( 1 )

компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)

  Name  |  Synopsis  |  Description  |  Options  |    Options detail    |  Environment  |  Bugs  |  Note  |  See also  |

Параметры подробно (Options detail)


  Controlling the Kind of Output  |  Compiling C++ Programs  |  Controlling C Dialect  |  Controlling C++ Dialect  |  Controlling Objective-C and Objective-C++ Dialects  |  Control Diagnostic Messages Formatting  |  Request or Suppress Warnings 1  |  Request or Suppress Warnings 2  |  Request or Suppress Warnings 3  |  Debugging Your Program  |  Control Optimization 1  |  Control Optimization 2  |  Control Optimization 3  |  Control Optimization 4  |  Program Instrumentation  |  Controlling the Preprocessor  |  Linking  |  Directory Search  |  Code Generation Conventions  |  GCC Developer  |  Machine-Dependent  |  AArch64  |  Adapteva Epiphany  |  AMD GCN  |  ARC  |  ARM  |  AVR  |  Blackfin  |  C6X  |  CRIS  |  CR16  |  C-SKY  |  Darwin  |  DEC Alpha  |  FR30  |  FT32  |  FRV  |  GNU/Linux  |  H8/300  |  HPPA  |  IA-64  |  LM32  |  M32C  |  M32R/D  |  M680x0  |  MCore  |  MeP  |  MicroBlaze  |  MIPS  |  MMIX  |  MN10300  |  Moxie  |  MSP430  |  NDS32  |  Nios II  |  Nvidia PTX  |  OpenRISC  |  PDP-11  |  picoChip  |  RISC-V  |  RL78  |  IBM RS/6000 and PowerPC  |  RX  |  S/390 and zSeries  |  Score  |  SH  |  Solaris 2  |  SPARC  |  SPU  |  System V  |  TILE-Gx  |  TILEPro  |  V850  |  VAX  |  Visium  |  VMS  |  VxWorks  |  x86 1  |  x86 2  |  x86 Windows  |  Xstormy16  |    Xtensa    |

Xtensa

These options are supported for Xtensa targets:

       -mconst16
       -mno-const16
           Enable or disable use of "CONST16" instructions for loading
           constant values.  The "CONST16" instruction is currently not
           a standard option from Tensilica.  When enabled, "CONST16"
           instructions are always used in place of the standard "L32R"
           instructions.  The use of "CONST16" is enabled by default
           only if the "L32R" instruction is not available.

       -mfused-madd
       -mno-fused-madd
           Enable or disable use of fused multiply/add and
           multiply/subtract instructions in the floating-point option.
           This has no effect if the floating-point option is not also
           enabled.  Disabling fused multiply/add and multiply/subtract
           instructions forces the compiler to use separate instructions
           for the multiply and add/subtract operations.  This may be
           desirable in some cases where strict IEEE 754-compliant
           results are required: the fused multiply add/subtract
           instructions do not round the intermediate result, thereby
           producing results with more bits of precision than specified
           by the IEEE standard.  Disabling fused multiply add/subtract
           instructions also ensures that the program output is not
           sensitive to the compiler's ability to combine multiply and
           add/subtract operations.

       -mserialize-volatile
       -mno-serialize-volatile
           When this option is enabled, GCC inserts "MEMW" instructions
           before "volatile" memory references to guarantee sequential
           consistency.  The default is -mserialize-volatile.  Use
           -mno-serialize-volatile to omit the "MEMW" instructions.

       -mforce-no-pic
           For targets, like GNU/Linux, where all user-mode Xtensa code
           must be position-independent code (PIC), this option disables
           PIC for compiling kernel code.

       -mtext-section-literals
       -mno-text-section-literals
           These options control the treatment of literal pools.  The
           default is -mno-text-section-literals, which places literals
           in a separate section in the output file.  This allows the
           literal pool to be placed in a data RAM/ROM, and it also
           allows the linker to combine literal pools from separate
           object files to remove redundant literals and improve code
           size.  With -mtext-section-literals, the literals are
           interspersed in the text section in order to keep them as
           close as possible to their references.  This may be necessary
           for large assembly files.  Literals for each function are
           placed right before that function.

       -mauto-litpools
       -mno-auto-litpools
           These options control the treatment of literal pools.  The
           default is -mno-auto-litpools, which places literals in a
           separate section in the output file unless
           -mtext-section-literals is used.  With -mauto-litpools the
           literals are interspersed in the text section by the
           assembler.  Compiler does not produce explicit ".literal"
           directives and loads literals into registers with "MOVI"
           instructions instead of "L32R" to let the assembler do
           relaxation and place literals as necessary.  This option
           allows assembler to create several literal pools per function
           and assemble very big functions, which may not be possible
           with -mtext-section-literals.

       -mtarget-align
       -mno-target-align
           When this option is enabled, GCC instructs the assembler to
           automatically align instructions to reduce branch penalties
           at the expense of some code density.  The assembler attempts
           to widen density instructions to align branch targets and the
           instructions following call instructions.  If there are not
           enough preceding safe density instructions to align a target,
           no widening is performed.  The default is -mtarget-align.
           These options do not affect the treatment of auto-aligned
           instructions like "LOOP", which the assembler always aligns,
           either by widening density instructions or by inserting NOP
           instructions.

       -mlongcalls
       -mno-longcalls
           When this option is enabled, GCC instructs the assembler to
           translate direct calls to indirect calls unless it can
           determine that the target of a direct call is in the range
           allowed by the call instruction.  This translation typically
           occurs for calls to functions in other source files.
           Specifically, the assembler translates a direct "CALL"
           instruction into an "L32R" followed by a "CALLX" instruction.
           The default is -mno-longcalls.  This option should be used in
           programs where the call target can potentially be out of
           range.  This option is implemented in the assembler, not the
           compiler, so the assembly code generated by GCC still shows
           direct call instructions---look at the disassembled object
           code to see the actual instructions.  Note that the assembler
           uses an indirect call for every cross-file call, not just
           those that really are out of range.