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

HPPA

These -m options are defined for the HPPA family of computers:

       -march=architecture-type
           Generate code for the specified architecture.  The choices
           for architecture-type are 1.0 for PA 1.0, 1.1 for PA 1.1, and
           2.0 for PA 2.0 processors.  Refer to /usr/lib/sched.models on
           an HP-UX system to determine the proper architecture option
           for your machine.  Code compiled for lower numbered
           architectures runs on higher numbered architectures, but not
           the other way around.

       -mpa-risc-1-0
       -mpa-risc-1-1
       -mpa-risc-2-0
           Synonyms for -march=1.0, -march=1.1, and -march=2.0
           respectively.

       -mcaller-copies
           The caller copies function arguments passed by hidden
           reference.  This option should be used with care as it is not
           compatible with the default 32-bit runtime.  However, only
           aggregates larger than eight bytes are passed by hidden
           reference and the option provides better compatibility with
           OpenMP.

       -mjump-in-delay
           This option is ignored and provided for compatibility
           purposes only.

       -mdisable-fpregs
           Prevent floating-point registers from being used in any
           manner.  This is necessary for compiling kernels that perform
           lazy context switching of floating-point registers.  If you
           use this option and attempt to perform floating-point
           operations, the compiler aborts.

       -mdisable-indexing
           Prevent the compiler from using indexing address modes.  This
           avoids some rather obscure problems when compiling MIG
           generated code under MACH.

       -mno-space-regs
           Generate code that assumes the target has no space registers.
           This allows GCC to generate faster indirect calls and use
           unscaled index address modes.

           Such code is suitable for level 0 PA systems and kernels.

       -mfast-indirect-calls
           Generate code that assumes calls never cross space
           boundaries.  This allows GCC to emit code that performs
           faster indirect calls.

           This option does not work in the presence of shared libraries
           or nested functions.

       -mfixed-range=register-range
           Generate code treating the given register range as fixed
           registers.  A fixed register is one that the register
           allocator cannot use.  This is useful when compiling kernel
           code.  A register range is specified as two registers
           separated by a dash.  Multiple register ranges can be
           specified separated by a comma.

       -mlong-load-store
           Generate 3-instruction load and store sequences as sometimes
           required by the HP-UX 10 linker.  This is equivalent to the
           +k option to the HP compilers.

       -mportable-runtime
           Use the portable calling conventions proposed by HP for ELF
           systems.

       -mgas
           Enable the use of assembler directives only GAS understands.

       -mschedule=cpu-type
           Schedule code according to the constraints for the machine
           type cpu-type.  The choices for cpu-type are 700 7100,
           7100LC, 7200, 7300 and 8000.  Refer to /usr/lib/sched.models
           on an HP-UX system to determine the proper scheduling option
           for your machine.  The default scheduling is 8000.

       -mlinker-opt
           Enable the optimization pass in the HP-UX linker.  Note this
           makes symbolic debugging impossible.  It also triggers a bug
           in the HP-UX 8 and HP-UX 9 linkers in which they give bogus
           error messages when linking some programs.

       -msoft-float
           Generate output containing library calls for floating point.
           Warning: the requisite libraries are not available for all
           HPPA targets.  Normally the facilities of the machine's usual
           C compiler are used, but this cannot be done directly in
           cross-compilation.  You must make your own arrangements to
           provide suitable library functions for cross-compilation.

           -msoft-float changes the calling convention in the output
           file; therefore, it is only useful if you compile all of a
           program with this option.  In particular, you need to compile
           libgcc.a, the library that comes with GCC, with -msoft-float
           in order for this to work.

       -msio
           Generate the predefine, "_SIO", for server IO.  The default
           is -mwsio.  This generates the predefines, "__hp9000s700",
           "__hp9000s700__" and "_WSIO", for workstation IO.  These
           options are available under HP-UX and HI-UX.

       -mgnu-ld
           Use options specific to GNU ld.  This passes -shared to ld
           when building a shared library.  It is the default when GCC
           is configured, explicitly or implicitly, with the GNU linker.
           This option does not affect which ld is called; it only
           changes what parameters are passed to that ld.  The ld that
           is called is determined by the --with-ld configure option,
           GCC's program search path, and finally by the user's PATH.
           The linker used by GCC can be printed using which `gcc
           -print-prog-name=ld`.  This option is only available on the
           64-bit HP-UX GCC, i.e. configured with hppa*64*-*-hpux*.

       -mhp-ld
           Use options specific to HP ld.  This passes -b to ld when
           building a shared library and passes +Accept TypeMismatch to
           ld on all links.  It is the default when GCC is configured,
           explicitly or implicitly, with the HP linker.  This option
           does not affect which ld is called; it only changes what
           parameters are passed to that ld.  The ld that is called is
           determined by the --with-ld configure option, GCC's program
           search path, and finally by the user's PATH.  The linker used
           by GCC can be printed using which `gcc -print-prog-name=ld`.
           This option is only available on the 64-bit HP-UX GCC, i.e.
           configured with hppa*64*-*-hpux*.

       -mlong-calls
           Generate code that uses long call sequences.  This ensures
           that a call is always able to reach linker generated stubs.
           The default is to generate long calls only when the distance
           from the call site to the beginning of the function or
           translation unit, as the case may be, exceeds a predefined
           limit set by the branch type being used.  The limits for
           normal calls are 7,600,000 and 240,000 bytes, respectively
           for the PA 2.0 and PA 1.X architectures.  Sibcalls are always
           limited at 240,000 bytes.

           Distances are measured from the beginning of functions when
           using the -ffunction-sections option, or when using the -mgas
           and -mno-portable-runtime options together under HP-UX with
           the SOM linker.

           It is normally not desirable to use this option as it
           degrades performance.  However, it may be useful in large
           applications, particularly when partial linking is used to
           build the application.

           The types of long calls used depends on the capabilities of
           the assembler and linker, and the type of code being
           generated.  The impact on systems that support long absolute
           calls, and long pic symbol-difference or pc-relative calls
           should be relatively small.  However, an indirect call is
           used on 32-bit ELF systems in pic code and it is quite long.

       -munix=unix-std
           Generate compiler predefines and select a startfile for the
           specified UNIX standard.  The choices for unix-std are 93, 95
           and 98.  93 is supported on all HP-UX versions.  95 is
           available on HP-UX 10.10 and later.  98 is available on HP-UX
           11.11 and later.  The default values are 93 for HP-UX 10.00,
           95 for HP-UX 10.10 though to 11.00, and 98 for HP-UX 11.11
           and later.

           -munix=93 provides the same predefines as GCC 3.3 and 3.4.
           -munix=95 provides additional predefines for "XOPEN_UNIX" and
           "_XOPEN_SOURCE_EXTENDED", and the startfile unix95.o.
           -munix=98 provides additional predefines for "_XOPEN_UNIX",
           "_XOPEN_SOURCE_EXTENDED", "_INCLUDE__STDC_A1_SOURCE" and
           "_INCLUDE_XOPEN_SOURCE_500", and the startfile unix98.o.

           It is important to note that this option changes the
           interfaces for various library routines.  It also affects the
           operational behavior of the C library.  Thus, extreme care is
           needed in using this option.

           Library code that is intended to operate with more than one
           UNIX standard must test, set and restore the variable
           "__xpg4_extended_mask" as appropriate.  Most GNU software
           doesn't provide this capability.

       -nolibdld
           Suppress the generation of link options to search libdld.sl
           when the -static option is specified on HP-UX 10 and later.

       -static
           The HP-UX implementation of setlocale in libc has a
           dependency on libdld.sl.  There isn't an archive version of
           libdld.sl.  Thus, when the -static option is specified,
           special link options are needed to resolve this dependency.

           On HP-UX 10 and later, the GCC driver adds the necessary
           options to link with libdld.sl when the -static option is
           specified.  This causes the resulting binary to be dynamic.
           On the 64-bit port, the linkers generate dynamic binaries by
           default in any case.  The -nolibdld option can be used to
           prevent the GCC driver from adding these link options.

       -threads
           Add support for multithreading with the dce thread library
           under HP-UX.  This option sets flags for both the
           preprocessor and linker.