Путеводитель по Руководству 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  |

M680x0

These are the -m options defined for M680x0 and ColdFire
       processors.  The default settings depend on which architecture
       was selected when the compiler was configured; the defaults for
       the most common choices are given below.

       -march=arch
           Generate code for a specific M680x0 or ColdFire instruction
           set architecture.  Permissible values of arch for M680x0
           architectures are: 68000, 68010, 68020, 68030, 68040, 68060
           and cpu32.  ColdFire architectures are selected according to
           Freescale's ISA classification and the permissible values
           are: isaa, isaaplus, isab and isac.

           GCC defines a macro "__mcfarch__" whenever it is generating
           code for a ColdFire target.  The arch in this macro is one of
           the -march arguments given above.

           When used together, -march and -mtune select code that runs
           on a family of similar processors but that is optimized for a
           particular microarchitecture.

       -mcpu=cpu
           Generate code for a specific M680x0 or ColdFire processor.
           The M680x0 cpus are: 68000, 68010, 68020, 68030, 68040,
           68060, 68302, 68332 and cpu32.  The ColdFire cpus are given
           by the table below, which also classifies the CPUs into
           families:

           Family : -mcpu arguments
           51 : 51 51ac 51ag 51cn 51em 51je 51jf 51jg 51jm 51mm 51qe
           51qm
           5206 : 5202 5204 5206
           5206e : 5206e
           5208 : 5207 5208
           5211a : 5210a 5211a
           5213 : 5211 5212 5213
           5216 : 5214 5216
           52235 : 52230 52231 52232 52233 52234 52235
           5225 : 5224 5225
           52259 : 52252 52254 52255 52256 52258 52259
           5235 : 5232 5233 5234 5235 523x
           5249 : 5249
           5250 : 5250
           5271 : 5270 5271
           5272 : 5272
           5275 : 5274 5275
           5282 : 5280 5281 5282 528x
           53017 : 53011 53012 53013 53014 53015 53016 53017
           5307 : 5307
           5329 : 5327 5328 5329 532x
           5373 : 5372 5373 537x
           5407 : 5407
           5475 : 5470 5471 5472 5473 5474 5475 547x 5480 5481 5482 5483
           5484 5485

           -mcpu=cpu overrides -march=arch if arch is compatible with
           cpu.  Other combinations of -mcpu and -march are rejected.

           GCC defines the macro "__mcf_cpu_cpu" when ColdFire target
           cpu is selected.  It also defines "__mcf_family_family",
           where the value of family is given by the table above.

       -mtune=tune
           Tune the code for a particular microarchitecture within the
           constraints set by -march and -mcpu.  The M680x0
           microarchitectures are: 68000, 68010, 68020, 68030, 68040,
           68060 and cpu32.  The ColdFire microarchitectures are: cfv1,
           cfv2, cfv3, cfv4 and cfv4e.

           You can also use -mtune=68020-40 for code that needs to run
           relatively well on 68020, 68030 and 68040 targets.
           -mtune=68020-60 is similar but includes 68060 targets as
           well.  These two options select the same tuning decisions as
           -m68020-40 and -m68020-60 respectively.

           GCC defines the macros "__mcarch" and "__mcarch__" when
           tuning for 680x0 architecture arch.  It also defines "mcarch"
           unless either -ansi or a non-GNU -std option is used.  If GCC
           is tuning for a range of architectures, as selected by
           -mtune=68020-40 or -mtune=68020-60, it defines the macros for
           every architecture in the range.

           GCC also defines the macro "__muarch__" when tuning for
           ColdFire microarchitecture uarch, where uarch is one of the
           arguments given above.

       -m68000
       -mc68000
           Generate output for a 68000.  This is the default when the
           compiler is configured for 68000-based systems.  It is
           equivalent to -march=68000.

           Use this option for microcontrollers with a 68000 or EC000
           core, including the 68008, 68302, 68306, 68307, 68322, 68328
           and 68356.

       -m68010
           Generate output for a 68010.  This is the default when the
           compiler is configured for 68010-based systems.  It is
           equivalent to -march=68010.

       -m68020
       -mc68020
           Generate output for a 68020.  This is the default when the
           compiler is configured for 68020-based systems.  It is
           equivalent to -march=68020.

       -m68030
           Generate output for a 68030.  This is the default when the
           compiler is configured for 68030-based systems.  It is
           equivalent to -march=68030.

       -m68040
           Generate output for a 68040.  This is the default when the
           compiler is configured for 68040-based systems.  It is
           equivalent to -march=68040.

           This option inhibits the use of 68881/68882 instructions that
           have to be emulated by software on the 68040.  Use this
           option if your 68040 does not have code to emulate those
           instructions.

       -m68060
           Generate output for a 68060.  This is the default when the
           compiler is configured for 68060-based systems.  It is
           equivalent to -march=68060.

           This option inhibits the use of 68020 and 68881/68882
           instructions that have to be emulated by software on the
           68060.  Use this option if your 68060 does not have code to
           emulate those instructions.

       -mcpu32
           Generate output for a CPU32.  This is the default when the
           compiler is configured for CPU32-based systems.  It is
           equivalent to -march=cpu32.

           Use this option for microcontrollers with a CPU32 or CPU32+
           core, including the 68330, 68331, 68332, 68333, 68334, 68336,
           68340, 68341, 68349 and 68360.

       -m5200
           Generate output for a 520X ColdFire CPU.  This is the default
           when the compiler is configured for 520X-based systems.  It
           is equivalent to -mcpu=5206, and is now deprecated in favor
           of that option.

           Use this option for microcontroller with a 5200 core,
           including the MCF5202, MCF5203, MCF5204 and MCF5206.

       -m5206e
           Generate output for a 5206e ColdFire CPU.  The option is now
           deprecated in favor of the equivalent -mcpu=5206e.

       -m528x
           Generate output for a member of the ColdFire 528X family.
           The option is now deprecated in favor of the equivalent
           -mcpu=528x.

       -m5307
           Generate output for a ColdFire 5307 CPU.  The option is now
           deprecated in favor of the equivalent -mcpu=5307.

       -m5407
           Generate output for a ColdFire 5407 CPU.  The option is now
           deprecated in favor of the equivalent -mcpu=5407.

       -mcfv4e
           Generate output for a ColdFire V4e family CPU (e.g.
           547x/548x).  This includes use of hardware floating-point
           instructions.  The option is equivalent to -mcpu=547x, and is
           now deprecated in favor of that option.

       -m68020-40
           Generate output for a 68040, without using any of the new
           instructions.  This results in code that can run relatively
           efficiently on either a 68020/68881 or a 68030 or a 68040.
           The generated code does use the 68881 instructions that are
           emulated on the 68040.

           The option is equivalent to -march=68020 -mtune=68020-40.

       -m68020-60
           Generate output for a 68060, without using any of the new
           instructions.  This results in code that can run relatively
           efficiently on either a 68020/68881 or a 68030 or a 68040.
           The generated code does use the 68881 instructions that are
           emulated on the 68060.

           The option is equivalent to -march=68020 -mtune=68020-60.

       -mhard-float
       -m68881
           Generate floating-point instructions.  This is the default
           for 68020 and above, and for ColdFire devices that have an
           FPU.  It defines the macro "__HAVE_68881__" on M680x0 targets
           and "__mcffpu__" on ColdFire targets.

       -msoft-float
           Do not generate floating-point instructions; use library
           calls instead.  This is the default for 68000, 68010, and
           68832 targets.  It is also the default for ColdFire devices
           that have no FPU.

       -mdiv
       -mno-div
           Generate (do not generate) ColdFire hardware divide and
           remainder instructions.  If -march is used without -mcpu, the
           default is "on" for ColdFire architectures and "off" for
           M680x0 architectures.  Otherwise, the default is taken from
           the target CPU (either the default CPU, or the one specified
           by -mcpu).  For example, the default is "off" for -mcpu=5206
           and "on" for -mcpu=5206e.

           GCC defines the macro "__mcfhwdiv__" when this option is
           enabled.

       -mshort
           Consider type "int" to be 16 bits wide, like "short int".
           Additionally, parameters passed on the stack are also aligned
           to a 16-bit boundary even on targets whose API mandates
           promotion to 32-bit.

       -mno-short
           Do not consider type "int" to be 16 bits wide.  This is the
           default.

       -mnobitfield
       -mno-bitfield
           Do not use the bit-field instructions.  The -m68000, -mcpu32
           and -m5200 options imply -mnobitfield.

       -mbitfield
           Do use the bit-field instructions.  The -m68020 option
           implies -mbitfield.  This is the default if you use a
           configuration designed for a 68020.

       -mrtd
           Use a different function-calling convention, in which
           functions that take a fixed number of arguments return with
           the "rtd" instruction, which pops their arguments while
           returning.  This saves one instruction in the caller since
           there is no need to pop the arguments there.

           This calling convention is incompatible with the one normally
           used on Unix, so you cannot use it if you need to call
           libraries compiled with the Unix compiler.

           Also, you must provide function prototypes for all functions
           that take variable numbers of arguments (including "printf");
           otherwise incorrect code is generated for calls to those
           functions.

           In addition, seriously incorrect code results if you call a
           function with too many arguments.  (Normally, extra arguments
           are harmlessly ignored.)

           The "rtd" instruction is supported by the 68010, 68020,
           68030, 68040, 68060 and CPU32 processors, but not by the
           68000 or 5200.

           The default is -mno-rtd.

       -malign-int
       -mno-align-int
           Control whether GCC aligns "int", "long", "long long",
           "float", "double", and "long double" variables on a 32-bit
           boundary (-malign-int) or a 16-bit boundary (-mno-align-int).
           Aligning variables on 32-bit boundaries produces code that
           runs somewhat faster on processors with 32-bit busses at the
           expense of more memory.

           Warning: if you use the -malign-int switch, GCC aligns
           structures containing the above types differently than most
           published application binary interface specifications for the
           m68k.

       -mpcrel
           Use the pc-relative addressing mode of the 68000 directly,
           instead of using a global offset table.  At present, this
           option implies -fpic, allowing at most a 16-bit offset for
           pc-relative addressing.  -fPIC is not presently supported
           with -mpcrel, though this could be supported for 68020 and
           higher processors.

       -mno-strict-align
       -mstrict-align
           Do not (do) assume that unaligned memory references are
           handled by the system.

       -msep-data
           Generate code that allows the data segment to be located in a
           different area of memory from the text segment.  This allows
           for execute-in-place in an environment without virtual memory
           management.  This option implies -fPIC.

       -mno-sep-data
           Generate code that assumes that the data segment follows the
           text segment.  This is the default.

       -mid-shared-library
           Generate code that supports shared libraries via the library
           ID method.  This allows for execute-in-place and shared
           libraries in an environment without virtual memory
           management.  This option implies -fPIC.

       -mno-id-shared-library
           Generate code that doesn't assume ID-based shared libraries
           are being used.  This is the default.

       -mshared-library-id=n
           Specifies the identification number of the ID-based shared
           library being compiled.  Specifying a value of 0 generates
           more compact code; specifying other values forces the
           allocation of that number to the current library, but is no
           more space- or time-efficient than omitting this option.

       -mxgot
       -mno-xgot
           When generating position-independent code for ColdFire,
           generate code that works if the GOT has more than 8192
           entries.  This code is larger and slower than code generated
           without this option.  On M680x0 processors, this option is
           not needed; -fPIC suffices.

           GCC normally uses a single instruction to load values from
           the GOT.  While this is relatively efficient, it only works
           if the GOT is smaller than about 64k.  Anything larger causes
           the linker to report an error such as:

                   relocation truncated to fit: R_68K_GOT16O foobar

           If this happens, you should recompile your code with -mxgot.
           It should then work with very large GOTs.  However, code
           generated with -mxgot is less efficient, since it takes 4
           instructions to fetch the value of a global symbol.

           Note that some linkers, including newer versions of the GNU
           linker, can create multiple GOTs and sort GOT entries.  If
           you have such a linker, you should only need to use -mxgot
           when compiling a single object file that accesses more than
           8192 GOT entries.  Very few do.

           These options have no effect unless GCC is generating
           position-independent code.

       -mlong-jump-table-offsets
           Use 32-bit offsets in "switch" tables.  The default is to use
           16-bit offsets.