Usage: gcc [options] file... Options:
-pass-exit-codes Exit with highest error code from a phase
--help Display this information
--target-help Display target specific command line options
--help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]
Display specific types of command line options
--version Display compiler version information
-dumpspecs Display all of the built in spec strings
-dumpversion Display the version of the compiler
-dumpmachine Display the compiler's target processor
-print-search-dirs Display the directories in the compiler's search path
-print-libgcc-file-name Display the name of the compiler's companion library
-print-file-name=<lib> Display the full path to library <lib>
-print-prog-name=<prog> Display the full path to compiler component <prog>
-print-multi-directory Display the root directory for versions of libgcc
-print-multi-lib Display the mapping between command line options and
multiple library search directories
-print-multi-os-directory Display the relative path to OS libraries
-print-sysroot Display the target libraries directory
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers
-Wa,<options> Pass comma-separated <options> on to the assembler
-Wp,<options> Pass comma-separated <options> on to the preprocessor
-Wl,<options> Pass comma-separated <options> on to the linker
-Xassembler <arg> Pass <arg> on to the assembler
-Xpreprocessor <arg> Pass <arg> on to the preprocessor
-Xlinker <arg> Pass <arg> on to the linker
-combine Pass multiple source files to compiler at once
-save-temps Do not delete intermediate files
-pipe Use pipes rather than intermediate files
-time Time the execution of each subprocess
-specs=<file> Override built-in specs with the contents of <file>
-std=<standard> Assume that the input sources are for <standard>
--sysroot=<directory> Use <directory> as the root directory for headers
and libraries
-B <directory> Add <directory> to the compiler's search paths
-b <machine> Run gcc for target <machine>, if installed
-V <version> Run gcc version number <version>, if installed
-v Display the programs invoked by the compiler
-### Like -v but options quoted and commands not executed
-E Preprocess only; do not compile, assemble or link
-S Compile only; do not assemble or link
-c Compile and assemble, but do not link
-o <file> Place the output into <file>
-x <language> Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
Options starting with -g, -f, -m, -O, -W, or –param are automatically passed on to the various sub-processes invoked by gcc. In order to pass other options on to these processes the -W<letter> options must be used.
The following options are specific to just the language Ada:
-fRTS=
-feliminate-unused-debug-types Perform unused type elimination in debug info
-gant
-gdwarf+
-gnat<options> Specify options to GNAT
-gnatO
-nostdlib
The following options are specific to just the language C:
-lang-asm
The following options are specific to just the language C++:
None found. Use --help=C++ to show *all* the options supported by the C++ front-end
The following options are specific to just the language Fortran:
-J<directory> Put MODULE files in 'directory'
-Waliasing Warn about possible aliasing of dummy arguments
-Walign-commons Warn about alignment of COMMON blocks
-Wampersand Warn about missing ampersand in continued
character constants
-Warray-temporaries Warn about creation of array temporaries
-Wcharacter-truncation Warn about truncated character expressions
-Wimplicit-interface Warn about calls with implicit interface
-Wintrinsic-shadow Warn if a user-procedure has the same name as an
intrinsic
-Wintrinsics-std Warn on intrinsics not part of the selected
standard
-Wline-truncation Warn about truncated source lines
-Wsurprising Warn about "suspicious" constructs
-Wtabs Permit nonconforming uses of the tab character
-Wunderflow Warn about underflow of numerical constant
expressions
-cpp Enable preprocessing
-falign-commons Enable alignment of COMMON blocks
-fall-intrinsics All intrinsics procedures are available
regardless of selected standard
-fallow-leading-underscore
-fautomatic Do not treat local variables and COMMON blocks as
if they were named in SAVE statements
-fbackslash Specify that backslash in string introduces an
escape character
-fbacktrace Produce a backtrace when a runtime error is
encountered
-fblas-matmul-limit= -fblas-matmul-limit=<n> Size of the
smallest matrix for which matmul will use BLAS
-fcheck-array-temporaries Produce a warning at runtime if a array temporary
has been created for a procedure argument
-fconvert=big-endian Use big-endian format for unformatted files
-fconvert=little-endian Use little-endian format for unformatted files
-fconvert=native Use native format for unformatted files
-fconvert=swap Swap endianness for unformatted files
-fcray-pointer Use the Cray Pointer extension
-fd-lines-as-code Ignore 'D' in column one in fixed form
-fd-lines-as-comments Treat lines with 'D' in column one as comments
-fdefault-double-8 Set the default double precision kind to an 8
byte wide type
-fdefault-integer-8 Set the default integer kind to an 8 byte wide
type
-fdefault-real-8 Set the default real kind to an 8 byte wide type
-fdollar-ok Allow dollar signs in entity names
-fdump-core Dump a core file when a runtime error occurs
-fdump-parse-tree Display the code tree after parsing
-fexternal-blas Specify that an external BLAS library should be
used for matmul calls on large-size arrays
-ff2c Use f2c calling convention
-ffixed-form Assume that the source file is fixed form
-ffixed-line-length-<n> Use n as character line width in fixed mode
-ffixed-line-length-none Allow arbitrary character line width in fixed mode
-ffpe-trap=[..] Stop on following floating point exceptions
-ffree-form Assume that the source file is free form
-ffree-line-length-<n> Use n as character line width in free mode
-ffree-line-length-none Allow arbitrary character line width in free mode
-fimplicit-none Specify that no implicit typing is allowed,
unless overridden by explicit IMPLICIT statements
-finit-character= -finit-character=<n> Initialize local character
variables to ASCII value n
-finit-integer= -finit-integer=<n> Initialize local integer
variables to n
-finit-local-zero Initialize local variables to zero (from g77)
-finit-logical= -finit-logical=<true|false> Initialize local
logical variables
-finit-real= -finit-real=<zero|nan|inf|-inf> Initialize local
real variables
-fintrinsic-modules-path Specify where to find the compiled intrinsic
modules
-fmax-array-constructor= -fmax-array-constructor=<n> Maximum number
of objects in an array constructor
-fmax-errors=<n> Maximum number of errors to report
-fmax-identifier-length=<n> Maximum identifier length
-fmax-stack-var-size=<n> Size in bytes of the largest array that will be
put on the stack
-fmax-subrecord-length=<n> Maximum length for subrecords
-fmodule-private Set default accessibility of module entities to
PRIVATE.
-fpack-derived Try to lay out derived types as compactly as
possible
-frange-check Enable range checking during compilation
-frecord-marker=4 Use a 4-byte record marker for unformatted files
-frecord-marker=8 Use an 8-byte record marker for unformatted files
-frecursive Allocate local variables on the stack to allow
indirect recursion
-frepack-arrays Copy array sections into a contiguous block on
procedure entry
-fsecond-underscore Append a second underscore if the name already
contains an underscore
-fsign-zero Apply negative sign to zero values
-funderscoring Append underscores to externally visible names
-nocpp Disable preprocessing
-static-libgfortran Statically link the GNU Fortran helper library
(libgfortran)
-std=f2003 Conform to the ISO Fortran 2003 standard
-std=f2008 Conform to the ISO Fortran 2008 standard
-std=f95 Conform to the ISO Fortran 95 standard
-std=gnu Conform to nothing in particular
-std=legacy Accept extensions to support legacy code
The following options are specific to just the language Java:
-MD_
-MMD_
-Wall-deprecation
-Wall-javadoc
-Wassert-identifier
-Wboxing
-Wchar-concat
-Wcondition-assign
-Wconstructor-name
-Wdep-ann
-Wdiscouraged
-Wempty-block
-Wenum-identifier
-Wenum-switch
-Wextraneous-semicolon Warn if deprecated empty statements are found
-Wfallthrough
-Wfield-hiding
-Wfinal-bound
-Wfinally
-Wforbidden
-Whiding
-Windirect-static
-Wintf-annotation
-Wintf-non-inherited
-Wjavadoc
-Wlocal-hiding
-Wmasked-catch-block
-Wnls
-Wno-effect-assign
-Wnull
-Wout-of-date Warn if .class files are out of date
-Wover-ann
-Wparam-assign
-Wpkg-default-method
-Wraw
-Wredundant-modifiers Warn if modifiers are specified when not necessary
-Wserial
-Wspecial-param-hiding
-Wstatic-access
-Wstatic-receiver
-Wsuppress
-Wsynthetic-access
-Wtasks
-Wtype-hiding
-Wuncheck
-Wunnecessary-else
-Wunqualified-field
-Wunused Enable all -Wunused- warnings
-Wunused-argument
-Wunused-import
-Wunused-label Warn when a label is unused
-Wunused-local
-Wunused-private
-Wunused-thrown
-Wuseless-type-check
-Wvarargs-cast
-Wwarning-token
--CLASSPATH Deprecated; use --classpath instead
-fassert Permit the use of the assert keyword
-fassume-compiled
-fassume-compiled=
-faux-classpath
--bootclasspath=<path> Replace system path
-fbootstrap-classes Generated should be loaded by bootstrap loader
-fcheck-references Generate checks for references to NULL
--classpath=<path> Set class path
-fcompile-resource=
-fdisable-assertions
-fdisable-assertions=
-femit-class-file Output a class file
-femit-class-files Alias for -femit-class-file
-fenable-assertions
-fenable-assertions=
--encoding=<encoding> Choose input encoding (defaults from your locale)
--extdirs=<path> Set the extension directory path
-ffilelist-file Input file is a file with a list of filenames to
compile
-fforce-classes-archive-check Always check for non gcj generated classes
archives
-fhash-synchronization Assume the runtime uses a hash table to map an
object to its synchronization structure
-findirect-classes Generate instances of Class at runtime
-findirect-dispatch Use offset tables for virtual method calls
-finline-functions Integrate simple functions into their callers
-fjni Assume native functions are implemented using JNI
-foptimize-static-class-initialization Enable optimization of static class
initialization code
-foutput-class-dir=
-freduced-reflection Reduce the amount of reflection meta-data
generated
-fsaw-java-file
-fsource-filename=
-fsource= Set the source language version
-fstore-check Enable assignability checks for stores into
object arrays
-ftarget= Set the target VM version
-fuse-boehm-gc Generate code for the Boehm GC
-fuse-divide-subroutine Call a library routine to do integer divisions
-version Display the compiler's version
The following options are specific to just the language ObjC:
None found. Use --help=ObjC to show *all* the options supported by the ObjC front-end
The following options are specific to just the language ObjC++:
-fobjc-call-cxx-cdtors Generate special Objective-C methods to
initialize/destroy non-POD C++ ivars, if needed
The following options are language-related:
--output-pch=
-A<question>=<answer> Assert the <answer> to <question>. Putting '-'
before <question> disables the <answer> to
<question>
-C Do not discard comments
-CC Do not discard comments in macro expansions
-D<macro>[=<val>] Define a <macro> with <val> as its value. If
just <macro> is given, <val> is taken to be 1
-E
-F <dir> Add <dir> to the end of the main framework
include path
-H Print the name of header files as they are used
-I <dir> Add <dir> to the end of the main include path
-M Generate make dependencies
-MD Generate make dependencies and compile
-MF <file> Write dependency output to the given file
-MG Treat missing header files as generated files
-MM Like -M but ignore system header files
-MMD Like -MD but ignore system header files
-MP Generate phony targets for all headers
-MQ <target> Add a MAKE-quoted target
-MT <target> Add an unquoted target
-P Do not generate #line directives
-U<macro> Undefine <macro>
-Wabi Warn about things that will change when compiling
with an ABI-compliant compiler
-Waddress Warn about suspicious uses of memory addresses
-Wall Enable most warning messages
-Wassign-intercept Warn whenever an Objective-C assignment is being
intercepted by the garbage collector
-Wbad-function-cast Warn about casting functions to incompatible types
-Wbuiltin-macro-redefined Warn when a built-in preprocessor macro is
undefined or redefined
-Wc++-compat Warn about C constructs that are not in the
common subset of C and C++
-Wc++0x-compat Warn about C++ constructs whose meaning differs
between ISO C++ 1998 and ISO C++ 200x
-Wcast-qual Warn about casts which discard qualifiers
-Wchar-subscripts Warn about subscripts whose type is "char"
-Wclobbered Warn about variables that might be changed by
"longjmp" or "vfork"
-Wcomment Warn about possibly nested block comments, and
C++ comments spanning more than one physical line
-Wcomments Synonym for -Wcomment
-Wconversion Warn for implicit type conversions that may
change a value
-Wctor-dtor-privacy Warn when all constructors and destructors are
private
-Wdeclaration-after-statement Warn when a declaration is found after a
statement
-Wdeprecated Warn if a deprecated compiler feature, class,
method, or field is used
-Wdiv-by-zero Warn about compile-time integer division by zero
-Weffc++ Warn about violations of Effective C++ style rules
-Wempty-body Warn about an empty body in an if or else
statement
-Wendif-labels Warn about stray tokens after #elif and #endif
-Wenum-compare Warn about comparison of different enum types
-Werror Treat all warnings as errors
-Werror-implicit-function-declaration This switch is deprecated; use
-Werror=implicit-function-declaration instead
-Wfloat-equal Warn if testing floating point numbers for
equality
-Wformat Warn about printf/scanf/strftime/strfmon format
string anomalies
-Wformat-contains-nul Warn about format strings that contain NUL bytes
-Wformat-extra-args Warn if passing too many arguments to a function
for its format string
-Wformat-nonliteral Warn about format strings that are not literals
-Wformat-security Warn about possible security problems with format
functions
-Wformat-y2k Warn about strftime formats yielding 2-digit years
-Wformat-zero-length Warn about zero-length formats
-Wformat=
-Wignored-qualifiers Warn whenever type qualifiers are ignored.
-Wimplicit
-Wimplicit-function-declaration Warn about implicit function declarations
-Wimplicit-int Warn when a declaration does not specify a type
-Wimport
-Winit-self Warn about variables which are initialized to
themselves
-Wint-to-pointer-cast Warn when there is a cast to a pointer from an
integer of a different size
-Winvalid-offsetof Warn about invalid uses of the "offsetof" macro
-Winvalid-pch Warn about PCH files that are found but not used
-Wlong-long Do not warn about using "long long" when -pedantic
-Wmain Warn about suspicious declarations of "main"
-Wmissing-braces Warn about possibly missing braces around
initializers
-Wmissing-declarations Warn about global functions without previous
declarations
-Wmissing-field-initializers Warn about missing fields in struct initializers
-Wmissing-format-attribute Warn about functions which might be candidates
for format attributes
-Wmissing-include-dirs Warn about user-specified include directories
that do not exist
-Wmissing-parameter-type Warn about function parameters declared without a
type specifier in K&R-style functions
-Wmissing-prototypes Warn about global functions without prototypes
-Wmultichar Warn about use of multi-character character
constants
-Wnested-externs Warn about "extern" declarations not at file scope
-Wnon-template-friend Warn when non-templatized friend functions are
declared within a template
-Wnon-virtual-dtor Warn about non-virtual destructors
-Wnonnull Warn about NULL being passed to argument slots
marked as requiring non-NULL
-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
-Wold-style-cast Warn if a C-style cast is used in a program
-Wold-style-declaration Warn for obsolescent usage in a declaration
-Wold-style-definition Warn if an old-style parameter definition is used
-Woverlength-strings Warn if a string is longer than the maximum
portable length specified by the standard
-Woverloaded-virtual Warn about overloaded virtual function names
-Woverride-init Warn about overriding initializers without side
effects
-Wpacked-bitfield-compat Warn about packed bit-fields whose offset changed
in GCC 4.4
-Wparentheses Warn about possibly missing parentheses
-Wpedantic-ms-format Warn about none ISO msvcrt scanf/printf width
extensions
-Wpmf-conversions Warn when converting the type of pointers to
member functions
-Wpointer-arith Warn about function pointer arithmetic
-Wpointer-sign Warn when a pointer differs in signedness in an
assignment
-Wpointer-to-int-cast Warn when a pointer is cast to an integer of a
different size
-Wpragmas Warn about misuses of pragmas
-Wprotocol Warn if inherited methods are unimplemented
-Wpsabi
-Wredundant-decls Warn about multiple declarations of the same
object
-Wreorder Warn when the compiler reorders code
-Wreturn-type Warn whenever a function's return type defaults
to "int" (C), or about inconsistent return types
(C++)
-Wselector Warn if a selector has multiple methods
-Wsequence-point Warn about possible violations of sequence point
rules
-Wsign-compare Warn about signed-unsigned comparisons
-Wsign-conversion Warn for implicit type conversions between signed
and unsigned integers
-Wsign-promo Warn when overload promotes from unsigned to
signed
-Wstrict-null-sentinel Warn about uncasted NULL used as sentinel
-Wstrict-prototypes Warn about unprototyped function declarations
-Wstrict-selector-match Warn if type signatures of candidate methods do
not match exactly
-Wsync-nand Warn when __sync_fetch_and_nand and
__sync_nand_and_fetch built-in functions are used
-Wsynth Deprecated. This switch has no effect
-Wsystem-headers Do not suppress warnings from system headers
-Wtraditional Warn about features not present in traditional C
-Wtraditional-conversion Warn of prototypes causing type conversions
different from what would happen in the absence
of prototype
-Wtrigraphs Warn if trigraphs are encountered that might
affect the meaning of the program
-Wundeclared-selector Warn about @selector()s without previously
declared methods
-Wundef Warn if an undefined macro is used in an #if
directive
-Wunknown-pragmas Warn about unrecognized pragmas
-Wunused-macros Warn about macros defined in the main file that
are not used
-Wvariadic-macros Do not warn about using variadic macros when
-pedantic
-Wvla Warn if a variable length array is used
-Wvolatile-register-var Warn when a register variable is declared volatile
-Wwrite-strings In C++, nonzero means warn about deprecated
conversion from string literals to `char *'. In
C, similar warning, except that the conversion is
of course not deprecated by the ISO C standard.
-ansi A synonym for -std=c89 (for C) or -std=c++98 (for
C++)
-d<letters> Enable dumps from specific passes of the compiler
-faccess-control Enforce class member access control semantics
-fall-virtual
-falt-external-templates Change when template instances are emitted
-fasm Recognize the "asm" keyword
-fbuiltin Recognize built-in functions
-fbuiltin-
-fcheck-new Check the return value of new
-fcond-mismatch Allow the arguments of the '?' operator to have
different types
-fconserve-space Reduce the size of object files
-fconst-string-class=<name> Use class <name> for constant strings
-fdefault-inline Inline member functions by default
-fdirectives-only Preprocess directives only.
-fdollars-in-identifiers Permit '$' as an identifier character
-felide-constructors
-femit-struct-debug-baseonly Aggressive reduced debug info for structs
-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for
structs
-femit-struct-debug-reduced Conservative reduced debug info for structs
-fenforce-eh-specs Generate code to check exception specifications
-fenum-int-equiv
-fexec-charset=<cset> Convert all strings and character constants to
character set <cset>
-fextended-identifiers Permit universal character names (\u and \U) in
identifiers
-fexternal-templates
-ffor-scope Scope of for-init-statement variables is local to
the loop
-ffreestanding Do not assume that standard C libraries and
"main" exist
-ffriend-injection Inject friend functions into enclosing namespace
-fgnu-keywords Recognize GNU-defined keywords
-fgnu-runtime Generate code for GNU runtime environment
-fgnu89-inline Use traditional GNU semantics for inline functions
-fguiding-decls
-fhandle-exceptions
-fhonor-std
-fhosted Assume normal C execution environment
-fhuge-objects Enable support for huge objects
-fimplement-inlines Export functions even if they can be inlined
-fimplicit-inline-templates Emit implicit instantiations of inline templates
-fimplicit-templates Emit implicit instantiations of templates
-finput-charset=<cset> Specify the default character set for source files
-flabels-ok
-flax-vector-conversions Allow implicit conversions between vectors with
differing numbers of subparts and/or differing
element types.
-fms-extensions Don't warn about uses of Microsoft extensions
-fname-mangling-version-
-fnew-abi
-fnext-runtime Generate code for NeXT (Apple Mac OS X) runtime
environment
-fnil-receivers Assume that receivers of Objective-C messages may
be nil
-fnonansi-builtins
-fnonnull-objects
-fobjc-direct-dispatch Allow fast jumps to the message dispatcher
-fobjc-exceptions Enable Objective-C exception and synchronization
syntax
-fobjc-gc Enable garbage collection (GC) in Objective-C/
Objective-C++ programs
-fobjc-sjlj-exceptions Enable Objective-C setjmp exception handling
runtime
-fopenmp Enable OpenMP (implies -frecursive in Fortran)
-foperator-names Recognize C++ keywords like "compl" and "xor"
-foptional-diags Enable optional diagnostics
-fpch-deps
-fpch-preprocess Look for and use PCH files even when preprocessing
-fpermissive Downgrade conformance errors to warnings
-fpreprocessed Treat the input file as already preprocessed
-freplace-objc-classes Used in Fix-and-Continue mode to indicate that
object files may be swapped in at runtime
-frepo Enable automatic template instantiation
-frtti Generate run time type descriptor information
-fshort-double Use the same size for double as for float
-fshort-enums Use the narrowest integer type possible for
enumeration types
-fshort-wchar Force the underlying type for "wchar_t" to be
"unsigned short"
-fshow-column Show column numbers in diagnostics, when
available. Default off
-fsigned-bitfields When "signed" or "unsigned" is not given make the
bitfield signed
-fsigned-char Make "char" signed by default
-fsquangle
-fstats Display statistics accumulated during compilation
-fstrict-prototype
-ftabstop=<number> Distance between tab stops for column reporting
-ftemplate-depth-<number> Specify maximum template instantiation depth
-fthis-is-variable
-fno-threadsafe-statics Do not generate thread-safe code for initializing
local statics
-funsigned-bitfields When "signed" or "unsigned" is not given make the
bitfield unsigned
-funsigned-char Make "char" unsigned by default
-fuse-cxa-atexit Use __cxa_atexit to register destructors
-fuse-cxa-get-exception-ptr Use __cxa_get_exception_ptr in exception handling
-fvisibility-inlines-hidden Marks all inlined methods as having hidden
visibility
-fvisibility-ms-compat Changes visibility to match Microsoft Visual
Studio by default
-fvtable-gc Discard unused virtual functions
-fvtable-thunks Implement vtables using thunks
-fweak Emit common-like symbols as weak symbols
-fwide-exec-charset=<cset> Convert all wide strings and character constants
to character set <cset>
-fworking-directory Generate a #line directive pointing at the
current working directory
-fxref Emit cross referencing information
-fzero-link Generate lazy class lookup (via objc_getClass())
for use in Zero-Link mode
-gen-decls Dump declarations to a .decl file
-idirafter <dir> Add <dir> to the end of the system include path
-imacros <file> Accept definition of macros in <file>
-imultilib -imultilib <dir> Set <dir> to be the multilib
include subdirectory
-include <file> Include the contents of <file> before other files
-iprefix <path> Specify <path> as a prefix for next two options
-iquote <dir> Add <dir> to the end of the quote include path
-isysroot <dir> Set <dir> to be the system root directory
-isystem <dir> Add <dir> to the start of the system include path
-iwithprefix <dir> Add <dir> to the end of the system include path
-iwithprefixbefore <dir> Add <dir> to the end of the main include path
-lang-objc
-nostdinc Do not search standard system include directories
(those specified with -isystem will still be used)
-nostdinc++ Do not search standard system include directories
for C++
-o <file> Place output into <file>
-pedantic Issue warnings needed for strict compliance to
the standard
-pedantic-errors Like -pedantic but issue them as errors
-print-objc-runtime-info Generate C header of platform-specific features
-print-pch-checksum Print a checksum of the executable for PCH
validity checking, and stop
-remap Remap file names when including files
-std=c++0x Conform to the ISO 1998 C++ standard, with
extensions that are likely to become a part of
the upcoming ISO C++ standard, dubbed C++0x. Note
that the extensions enabled by this mode are
experimental and may be removed in future
releases of GCC.
-std=c++98 Conform to the ISO 1998 C++ standard
-std=c89 Conform to the ISO 1990 C standard
-std=c99 Conform to the ISO 1999 C standard
-std=c9x Deprecated in favor of -std=c99
-std=gnu++0x Conform to the ISO 1998 C++ standard, with GNU
extensions and extensions that are likely to
become a part of the upcoming ISO C++ standard,
dubbed C++0x. Note that the extensions enabled by
this mode are experimental and may be removed in
future releases of GCC.
-std=gnu++98 Conform to the ISO 1998 C++ standard with GNU
extensions
-std=gnu89 Conform to the ISO 1990 C standard with GNU
extensions
-std=gnu99 Conform to the ISO 1999 C standard with GNU
extensions
-std=gnu9x Deprecated in favor of -std=gnu99
-std=iso9899:1990 Conform to the ISO 1990 C standard
-std=iso9899:199409 Conform to the ISO 1990 C standard as amended in
1994
-std=iso9899:1999 Conform to the ISO 1999 C standard
-std=iso9899:199x Deprecated in favor of -std=iso9899:1999
-traditional-cpp Enable traditional preprocessing
-trigraphs Support ISO C trigraphs
-undef Do not predefine system-specific and GCC-specific
macros
-v Enable verbose output
-w Suppress warnings
The –param option recognizes the following as parameters:
sra-max-structure-size The maximum structure size (in bytes) for which
GCC will use by-element copies
sra-max-structure-count The maximum number of structure fields for which
GCC will use by-element copies
sra-field-structure-ratio The threshold ratio between instantiated fields
and the total structure size
struct-reorg-cold-struct-ratio The threshold ratio between current and
hottest structure counts
predictable-branch-outcome Maximal esitmated outcome of branch considered
predictable
max-inline-insns-single The maximum number of instructions in a single
function eligible for inlining
max-inline-insns-auto The maximum number of instructions when
automatically inlining
max-inline-insns-recursive The maximum number of instructions inline
function can grow to via recursive inlining
max-inline-insns-recursive-auto The maximum number of instructions non-inline
function can grow to via recursive inlining
max-inline-recursive-depth The maximum depth of recursive inlining for
inline functions
max-inline-recursive-depth-auto The maximum depth of recursive inlining for
non-inline functions
min-inline-recursive-probability Inline recursively only when the probability
of call being executed exceeds the parameter
max-variable-expansions-in-unroller If -fvariable-expansion-in-unroller is
used, the maximum number of times that an
individual variable will be expanded during loop
unrolling
min-vect-loop-bound If -ftree-vectorize is used, the minimal loop
bound of a loop to be considered for vectorization
max-delay-slot-insn-search The maximum number of instructions to consider to
fill a delay slot
max-delay-slot-live-search The maximum number of instructions to consider to
find accurate live register information
max-pending-list-length The maximum length of scheduling's pending
operations list
large-function-insns The size of function body to be considered large
large-function-growth Maximal growth due to inlining of large function
(in percent)
large-unit-insns The size of translation unit to be considered
large
inline-unit-growth how much can given compilation unit grow because
of the inlining (in percent)
ipcp-unit-growth how much can given compilation unit grow because
of the interprocedural constant propagation (in
percent)
inline-call-cost expense of call operation relative to ordinary
arithmetic operations
large-stack-frame The size of stack frame to be considered large
large-stack-frame-growth Maximal stack frame growth due to inlining (in
percent)
max-gcse-memory The maximum amount of memory to be allocated by
GCSE
max-gcse-passes The maximum number of passes to make when doing
GCSE
gcse-after-reload-partial-fraction The threshold ratio for performing partial
redundancy elimination after reload
gcse-after-reload-critical-fraction The threshold ratio of critical edges
execution count that permit performing redundancy
elimination after reload
max-unrolled-insns The maximum number of instructions to consider to
unroll in a loop
max-average-unrolled-insns The maximum number of instructions to consider to
unroll in a loop on average
max-unroll-times The maximum number of unrollings of a single loop
max-peeled-insns The maximum number of insns of a peeled loop
max-peel-times The maximum number of peelings of a single loop
max-completely-peeled-insns The maximum number of insns of a completely
peeled loop
max-completely-peel-times The maximum number of peelings of a single loop
that is peeled completely
max-once-peeled-insns The maximum number of insns of a peeled loop that
rolls only once
max-unswitch-insns The maximum number of insns of an unswitched loop
max-unswitch-level The maximum number of unswitchings in a single
loop
max-iterations-to-track Bound on the number of iterations the brute force
# of iterations analysis algorithm evaluates
max-iterations-computation-cost Bound on the cost of an expression to compute
the number of iterations
sms-max-ii-factor A factor for tuning the upper bound that swing
modulo scheduler uses for scheduling a loop
sms-dfa-history The number of cycles the swing modulo scheduler
considers when checking conflicts using DFA
sms-loop-average-count-threshold A threshold on the average loop count
considered by the swing modulo scheduler
hot-bb-count-fraction Select fraction of the maximal count of
repetitions of basic block in program given basic
block needs to have to be considered hot
hot-bb-frequency-fraction Select fraction of the maximal frequency of
executions of basic block in function given basic
block needs to have to be considered hot
align-threshold Select fraction of the maximal frequency of
executions of basic block in function given basic
block get alignment
align-loop-iterations Loops iterating at least selected number of
iterations will get loop alignement.
max-predicted-iterations The maximum number of loop iterations we predict
statically
tracer-dynamic-coverage-feedback The percentage of function, weighted by
execution frequency, that must be covered by
trace formation. Used when profile feedback is
available
tracer-dynamic-coverage The percentage of function, weighted by execution
frequency, that must be covered by trace
formation. Used when profile feedback is not
available
tracer-max-code-growth Maximal code growth caused by tail duplication
(in percent)
tracer-min-branch-ratio Stop reverse growth if the reverse probability of
best edge is less than this threshold (in percent)
tracer-min-branch-probability-feedback Stop forward growth if the probability
of best edge is less than this threshold (in
percent). Used when profile feedback is available
tracer-min-branch-probability Stop forward growth if the probability of best
edge is less than this threshold (in percent).
Used when profile feedback is not available
max-crossjump-edges The maximum number of incoming edges to consider
for crossjumping
min-crossjump-insns The minimum number of matching instructions to
consider for crossjumping
max-grow-copy-bb-insns The maximum expansion factor when copying basic
blocks
max-goto-duplication-insns The maximum number of insns to duplicate when
unfactoring computed gotos
max-cse-path-length The maximum length of path considered in cse
max-cse-insns The maximum instructions CSE process before
flushing
lim-expensive The minimum cost of an expensive expression in
the loop invariant motion
iv-consider-all-candidates-bound Bound on number of candidates below that all
candidates are considered in iv optimizations
iv-max-considered-uses Bound on number of iv uses in loop optimized in
iv optimizations
iv-always-prune-cand-set-bound If number of candidates in the set is smaller,
we always try to remove unused ivs during its
optimization
scev-max-expr-size Bound on size of expressions used in the scalar
evolutions analyzer
omega-max-vars Bound on the number of variables in Omega
constraint systems
omega-max-geqs Bound on the number of inequalities in Omega
constraint systems
omega-max-eqs Bound on the number of equalities in Omega
constraint systems
omega-max-wild-cards Bound on the number of wild cards in Omega
constraint systems
omega-hash-table-size Bound on the size of the hash table in Omega
constraint systems
omega-max-keys Bound on the number of keys in Omega constraint
systems
omega-eliminate-redundant-constraints When set to 1, use expensive methods to
eliminate all redundant constraints
vect-max-version-for-alignment-checks Bound on number of runtime checks
inserted by the vectorizer's loop versioning for
alignment check
vect-max-version-for-alias-checks Bound on number of runtime checks inserted
by the vectorizer's loop versioning for alias
check
max-cselib-memory-locations The maximum memory locations recorded by cselib
ggc-min-expand Minimum heap expansion to trigger garbage
collection, as a percentage of the total size of
the heap
ggc-min-heapsize Minimum heap size before we start collecting
garbage, in kilobytes
max-reload-search-insns The maximum number of instructions to search
backward when looking for equivalent reload
max-aliased-vops The maximum number of virtual operators that a
function is allowed to have before triggering
memory partitioning heuristics
avg-aliased-vops The average number of virtual operators that
memory statements are allowed to have before
triggering memory partitioning heuristics
max-sched-region-blocks The maximum number of blocks in a region to be
considered for interblock scheduling
max-sched-region-insns The maximum number of insns in a region to be
considered for interblock scheduling
max-pipeline-region-blocks The maximum number of blocks in a region to be
considered for interblock scheduling
max-pipeline-region-insns The maximum number of insns in a region to be
considered for interblock scheduling
min-spec-prob The minimum probability of reaching a source
block for interblock speculative scheduling
max-sched-extend-regions-iters The maximum number of iterations through CFG
to extend regions
max-sched-insn-conflict-delay The maximum conflict delay for an insn to be
considered for speculative motion
sched-spec-prob-cutoff The minimal probability of speculation success
(in percents), so that speculative insn will be
scheduled.
selsched-max-lookahead The maximum size of the lookahead window of
selective scheduling
selsched-max-sched-times Maximum number of times that an insn could be
scheduled
selsched-insns-to-rename Maximum number of instructions in the ready list
that are considered eligible for renaming
sched-mem-true-dep-cost Minimal distance between possibly conflicting
store and load
max-last-value-rtl The maximum number of RTL nodes that can be
recorded as combiner's last value
integer-share-limit The upper bound for sharing integer constants
min-virtual-mappings Minimum number of virtual mappings to consider
switching to full virtual renames
virtual-mappings-ratio Ratio between virtual mappings and virtual
symbols to do full virtual renames
ssp-buffer-size The lower bound for a buffer to be considered for
stack smashing protection
max-jump-thread-duplication-stmts Maximum number of statements allowed in a
block that needs to be duplicated when threading
jumps
max-fields-for-field-sensitive Maximum number of fields in a structure before
pointer analysis treats the structure as a single
variable
max-sched-ready-insns The maximum number of instructions ready to be
issued to be considered by the scheduler during
the first scheduling pass
prefetch-latency The number of insns executed before prefetch is
completed
simultaneous-prefetches The number of prefetches that can run at the same
time
l1-cache-size The size of L1 cache
l1-cache-line-size The size of L1 cache line
l2-cache-size The size of L2 cache
use-canonical-types Whether to use canonical types
max-partial-antic-length Maximum length of partial antic set when
performing tree pre optimization
sccvn-max-scc-size Maximum size of a SCC before SCCVN stops
processing a function
ira-max-loops-num max loops number for regional RA
ira-max-conflict-table-size max size of conflict table in MB
switch-conversion-max-branch-ratio The maximum ratio between array size and
switch branches for a switch conversion to take
place
loop-invariant-max-bbs-in-loop max basic blocks number in loop for loop
invariant motion
The following options control compiler warning messages:
-Waggregate-return Warn about returning structures, unions or arrays
-Warray-bounds Warn if an array is accessed out of bounds
-Wattributes Warn about inappropriate attribute usage
-Wcast-align Warn about pointer casts which increase alignment
-Wcoverage-mismatch Warn instead of error in case profiles in
-fprofile-use do not match
-Wdeprecated-declarations Warn about uses of __attribute__((deprecated))
declarations
-Wdisabled-optimization Warn when an optimization pass is disabled
-Wextra Print extra (possibly unwanted) warnings
-Winline Warn when an inlined function cannot be inlined
-Wlarger-than-
-Wlarger-than=<number> Warn if an object is larger than <number> bytes
-Wlogical-op Warn when a logical operator is suspicously
always evaluating to true or false
-Wmissing-noreturn Warn about functions which might be candidates
for __attribute__((noreturn))
-Wmudflap Warn about constructs not instrumented by
-fmudflap
-Woverflow Warn about overflow in arithmetic expressions
-Wpacked Warn when the packed attribute has no effect on
struct layout
-Wpadded Warn when padding is required to align structure
members
-Wshadow Warn when one local variable shadows another
-Wstack-protector Warn when not issuing stack smashing protection
for some reason
-Wstrict-aliasing Warn about code which might break strict aliasing
rules
-Wstrict-aliasing= Warn about code which might break strict aliasing
rules
-Wstrict-overflow Warn about optimizations that assume that signed
overflow is undefined
-Wstrict-overflow= Warn about optimizations that assume that signed
overflow is undefined
-Wswitch Warn about enumerated switches, with no default,
missing a case
-Wswitch-default Warn about enumerated switches missing a
"default:" statement
-Wswitch-enum Warn about all enumerated switches missing a
specific case
-Wtype-limits Warn if a comparison is always true or always
false due to the limited range of the data type
-Wuninitialized Warn about uninitialized automatic variables
-Wunreachable-code Warn about code that will never be executed
-Wunsafe-loop-optimizations Warn if the loop cannot be optimized due to
nontrivial assumptions.
-Wunused-function Warn when a function is unused
-Wunused-parameter Warn when a function parameter is unused
-Wunused-value Warn when an expression value is unused
-Wunused-variable Warn when a variable is unused
The following options control optimizations:
-O<number> Set optimization level to <number>
-Os Optimize for space rather than speed
-falign-functions Align the start of functions
-falign-jumps Align labels which are only reached by jumping
-falign-labels Align all labels
-falign-loops Align the start of loops
-fargument-alias Specify that arguments may alias each other and
globals
-fargument-noalias Assume arguments may alias globals but not each
other
-fargument-noalias-anything Assume arguments alias no other storage
-fargument-noalias-global Assume arguments alias neither each other nor
globals
-fasynchronous-unwind-tables Generate unwind tables that are exact at each
instruction boundary
-fbranch-count-reg Replace add, compare, branch with branch on count
register
-fbranch-probabilities Use profiling information for branch probabilities
-fbranch-target-load-optimize Perform branch target load optimization before
prologue / epilogue threading
-fbranch-target-load-optimize2 Perform branch target load optimization after
prologue / epilogue threading
-fbtr-bb-exclusive Restrict target load migration not to re-use
registers in any basic block
-fcaller-saves Save registers around function calls
-fcommon Do not put uninitialized globals in the common
section
-fconserve-stack Do not perform optimizations increasing
noticeably stack usage
-fcprop-registers Perform a register copy-propagation optimization
pass
-fcrossjumping Perform cross-jumping optimization
-fcse-follow-jumps When running CSE, follow jumps to their targets
-fcse-skip-blocks When running CSE, follow conditional jumps
-fcx-fortran-rules Complex multiplication and division follow
Fortran rules
-fcx-limited-range Omit range reduction step when performing complex
division
-fdata-sections Place data items into their own section
-fdce Use the RTL dead code elimination pass
-fdefer-pop Defer popping functions args from stack until
later
-fdelayed-branch Attempt to fill delay slots of branch instructions
-fdelete-null-pointer-checks Delete useless null pointer checks
-fdse Use the RTL dead store elimination pass
-fearly-inlining Perform early inlining
-fexceptions Enable exception handling
-fexpensive-optimizations Perform a number of minor, expensive optimizations
-ffinite-math-only Assume no NaNs or infinities are generated
-ffloat-store Don't allocate floats and doubles in extended-
precision registers
-fforward-propagate Perform a forward propagation pass on RTL
-fgcse Perform global common subexpression elimination
-fgcse-after-reload Perform global common subexpression elimination
after register allocation has finished
-fgcse-las Perform redundant load after store elimination in
global common subexpression elimination
-fgcse-lm Perform enhanced load motion during global common
subexpression elimination
-fgcse-sm Perform store motion after global common
subexpression elimination
-fgraphite-identity Enable Graphite Identity transformation
-fguess-branch-probability Enable guessing of branch probabilities
-fif-conversion Perform conversion of conditional jumps to
branchless equivalents
-fif-conversion2 Perform conversion of conditional jumps to
conditional execution
-finline-functions-called-once Integrate functions called once into their
callers
-finline-small-functions Integrate simple functions into their callers
when code size is known to not growth
-fipa-cp Perform Interprocedural constant propagation
-fipa-cp-clone Perform cloning to make Interprocedural constant
propagation stronger
-fipa-matrix-reorg Perform matrix layout flattening and transposing
based on profiling information.
-fipa-pta Perform interprocedural points-to analysis
-fipa-pure-const Discover pure and const functions
-fipa-reference Discover readonly and non addressable static
variables
-fipa-type-escape Type based escape and alias analysis
-fivopts Optimize induction variables on trees
-fjump-tables Use jump tables for sufficiently large switch
statements
-floop-block Enable Loop Blocking transformation
-floop-interchange Enable Loop Interchange transformation
-floop-strip-mine Enable Loop Strip Mining transformation
-fmath-errno Set errno after built-in math functions
-fmerge-all-constants Attempt to merge identical constants and constant
variables
-fmerge-constants Attempt to merge identical constants across
compilation units
-fmodulo-sched Perform SMS based modulo scheduling before the
first scheduling pass
-fmove-loop-invariants Move loop invariant computations out of loops
-fnon-call-exceptions Support synchronous non-call exceptions
-fomit-frame-pointer When possible do not generate stack frames
-foptimize-register-move Do the full register move optimization pass
-foptimize-sibling-calls Optimize sibling and tail recursive calls
-fpack-struct Pack structure members together without holes
-fpack-struct=<number> Set initial maximum structure member alignment
-fpeel-loops Perform loop peeling
-fpeephole Enable machine specific peephole optimizations
-fpeephole2 Enable an RTL peephole pass before sched2
-fpredictive-commoning Run predictive commoning optimization.
-fprefetch-loop-arrays Generate prefetch instructions, if available, for
arrays in loops
-freg-struct-return Return small aggregates in registers
-fregmove Enables a register move optimization
-frename-registers Perform a register renaming optimization pass
-freorder-blocks Reorder basic blocks to improve code placement
-freorder-blocks-and-partition Reorder basic blocks and partition into hot
and cold sections
-freorder-functions Reorder functions to improve code placement
-frerun-cse-after-loop Add a common subexpression elimination pass after
loop optimizations
-freschedule-modulo-scheduled-loops Enable/Disable the traditional scheduling
in loops that already passed modulo scheduling
-frounding-math Disable optimizations that assume default FP
rounding behavior
-frtl-abstract-sequences Perform sequence abstraction optimization on RTL
-fsched-interblock Enable scheduling across basic blocks
-fsched-spec Allow speculative motion of non-loads
-fsched-spec-load Allow speculative motion of some loads
-fsched-spec-load-dangerous Allow speculative motion of more loads
-fsched-stalled-insns Allow premature scheduling of queued insns
-fsched-stalled-insns-dep Set dependence distance checking in premature
scheduling of queued insns
-fsched2-use-superblocks If scheduling post reload, do superblock
scheduling
-fsched2-use-traces If scheduling post reload, do trace scheduling
-fschedule-insns Reschedule instructions before register allocation
-fschedule-insns2 Reschedule instructions after register allocation
-fsection-anchors Access data in the same section from shared
anchor points
-fsel-sched-pipelining Perform software pipelining of inner loops during
selective scheduling
-fsel-sched-pipelining-outer-loops Perform software pipelining of outer loops
during selective scheduling
-fsel-sched-reschedule-pipelined Reschedule pipelined regions without
pipelining
-fselective-scheduling Schedule instructions using selective scheduling
algorithm
-fselective-scheduling2 Run selective scheduling after reload
-fsignaling-nans Disable optimizations observable by IEEE
signaling NaNs
-fsigned-zeros Disable floating point optimizations that ignore
the IEEE signedness of zero
-fsingle-precision-constant Convert floating point constants to single
precision constants
-fsplit-ivs-in-unroller Split lifetimes of induction variables when loops
are unrolled
-fsplit-wide-types Split wide types into independent registers
-fstrict-aliasing Assume strict aliasing rules apply
-fthread-jumps Perform jump threading optimizations
-ftoplevel-reorder Reorder top level functions, variables, and asms
-ftrapping-math Assume floating-point operations can trap
-ftrapv Trap for signed overflow in addition, subtraction
and multiplication
-ftree-builtin-call-dce Enable conditional dead code elimination for
builtin calls
-ftree-ccp Enable SSA-CCP optimization on trees
-ftree-ch Enable loop header copying on trees
-ftree-copy-prop Enable copy propagation on trees
-ftree-copyrename Replace SSA temporaries with better names in
copies
-ftree-cselim Transform condition stores into unconditional ones
-ftree-dce Enable SSA dead code elimination optimization on
trees
-ftree-dominator-opts Enable dominator optimizations
-ftree-dse Enable dead store elimination
-ftree-fre Enable Full Redundancy Elimination (FRE) on trees
-ftree-loop-distribution Enable loop distribution on trees
-ftree-loop-im Enable loop invariant motion on trees
-ftree-loop-ivcanon Create canonical induction variables in loops
-ftree-loop-linear Enable linear loop transforms on trees
-ftree-loop-optimize Enable loop optimizations on tree level
-ftree-lrs Perform live range splitting during the SSA-
>normal pass
-ftree-pre Enable SSA-PRE optimization on trees
-ftree-reassoc Enable reassociation on tree level
-ftree-scev-cprop Enable copy propagation of scalar-evolution
information.
-ftree-sink Enable SSA code sinking on trees
-ftree-sra Perform scalar replacement of aggregates
-ftree-switch-conversion Perform conversions of switch initializations.
-ftree-ter Replace temporary expressions in the SSA->normal
pass
-ftree-vect-loop-version Enable loop versioning when doing loop
vectorization on trees
-ftree-vectorize Enable loop vectorization on trees
-ftree-vrp Perform Value Range Propagation on trees
-funit-at-a-time Compile whole compilation unit at a time
-funroll-all-loops Perform loop unrolling for all loops
-funroll-loops Perform loop unrolling when iteration count is
known
-funsafe-loop-optimizations Allow loop optimizations to assume that the loops
behave in normal way
-funsafe-math-optimizations Allow math optimizations that may violate IEEE or
ISO standards
-funswitch-loops Perform loop unswitching
-funwind-tables Just generate unwind tables for exception handling
-fvar-tracking Perform variable tracking
-fvar-tracking-uninit Perform variable tracking and also tag variables
that are uninitialized
-fvariable-expansion-in-unroller Apply variable expansion when loops are
unrolled
-fvect-cost-model Enable use of cost model in vectorization
-fvpt Use expression value profiles in optimizations
-fweb Construct webs and split unrelated uses of single
variable
-fwhole-program Perform whole program optimizations
-fwrapv Assume signed arithmetic overflow wraps around
The following options are target specific:
-m128bit-long-double sizeof(long double) is 16
-m32 Generate 32bit i386 code
-m3dnow Support 3DNow! built-in functions
-m3dnowa Support Athlon 3Dnow! built-in functions
-m64 Generate 64bit x86-64 code
-m80387 Use hardware fp
-m96bit-long-double sizeof(long double) is 12
-mabm Support code generation of Advanced Bit
Manipulation (ABM) instructions.
-maccumulate-outgoing-args Reserve space for outgoing arguments in the
function prologue
-maes Support AES built-in functions and code generation
-malign-double Align some doubles on dword boundary
-malign-functions= Function starts are aligned to this power of 2
-malign-jumps= Jump targets are aligned to this power of 2
-malign-loops= Loop code aligned to this power of 2
-malign-stringops Align destination of the string operations
-march= Generate code for given CPU
-masm= Use given assembler dialect
-mavx Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2 and AVX built-in functions and code
generation
-mbranch-cost= Branches are this expensive (1-5, arbitrary units)
-mcld Generate cld instruction in the function prologue.
-mcmodel= Use given x86-64 code model
-mconsole Create console application
-mcx16 Support code generation of cmpxchg16b instruction.
-mcygwin Use the Cygwin interface
-mdll Generate code for a DLL
-mfancy-math-387 Generate sin, cos, sqrt for FPU
-mfma Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX and FMA built-in functions and code
generation
-mforce-drap Always use Dynamic Realigned Argument Pointer
(DRAP) to realign stack
-mfp-ret-in-387 Return values of functions in FPU registers
-mfpmath= Generate floating point mathematics using given
instruction set
-mfused-madd Enable automatic generation of fused floating
point multiply-add instructions if the ISA
supports such instructions. The -mfused-madd
option is on by default.
-mhard-float Use hardware fp
-mieee-fp Use IEEE math for fp comparisons
-mincoming-stack-boundary= Assume incoming stack aligned to this power of 2
-minline-all-stringops Inline all known string operations
-minline-stringops-dynamically Inline memset/memcpy string operations, but
perform inline version only for small blocks
-mintel-syntax
-mlarge-data-threshold= Data greater than given threshold will go into
.ldata section in x86-64 medium model
-mmmx Support MMX built-in functions
-mms-bitfields Use native (MS) bitfield layout
-mno-align-stringops
-mno-fancy-math-387
-mno-fused-madd
-mno-push-args
-mno-red-zone
-mno-sse4 Do not support SSE4.1 and SSE4.2 built-in
functions and code generation
-mnop-fun-dllimport Ignore dllimport for functions
-momit-leaf-frame-pointer Omit the frame pointer in leaf functions
-mpc Set 80387 floating-point precision (-mpc32,
-mpc64, -mpc80)
-mpclmul Support PCLMUL built-in functions and code
generation
-mpopcnt Support code generation of popcnt instruction.
-mpreferred-stack-boundary= Attempt to keep stack aligned to this power of 2
-mpush-args Use push instructions to save outgoing arguments
-mrecip Generate reciprocals instead of divss and sqrtss.
-mred-zone Use red-zone in the x86-64 code
-mregparm= Number of registers used to pass integer arguments
-mrtd Alternate calling convention
-msahf Support code generation of sahf instruction in
64bit x86-64 code.
-msoft-float Do not use hardware fp
-msse Support MMX and SSE built-in functions and code
generation
-msse2 Support MMX, SSE and SSE2 built-in functions and
code generation
-msse2avx Encode SSE instructions with VEX prefix
-msse3 Support MMX, SSE, SSE2 and SSE3 built-in
functions and code generation
-msse4 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and
SSE4.2 built-in functions and code generation
-msse4.1 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1
built-in functions and code generation
-msse4.2 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and
SSE4.2 built-in functions and code generation
-msse4a Support MMX, SSE, SSE2, SSE3 and SSE4A built-in
functions and code generation
-msse5 Support SSE5 built-in functions and code
generation
-msseregparm Use SSE register passing conventions for SF and
DF mode
-mssse3 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in
functions and code generation
-mstack-arg-probe Enable stack probing
-mstackrealign Realign stack in prologue
-mstringop-strategy= Chose strategy to generate stringop using
-mthreads Use Mingw-specific thread support
-mtls-dialect= Use given thread-local storage dialect
-mtls-direct-seg-refs Use direct references against %gs when accessing
tls data
-mtune= Schedule code for given CPU
-mveclibabi= Vector library ABI to use
-mwin32 Set Windows defines
-mwindows Create GUI application
The following options are language-independent:
--help Display this information
--help=<class> Display descriptions of a specific class of
options. <class> is one or more of optimizers,
target, warnings, undocumented, params
--param <param>=<value> Set parameter <param> to value. See below for a
complete list of parameters
--target-help Alias for --help=target
--version
-G<number> Put global and static data smaller than <number>
bytes into a special section (on some targets)
-W This switch is deprecated; use -Wextra instead
-Werror= Treat specified warning as error
-Wfatal-errors Exit on the first error occurred
-Wframe-larger-than= -Wframe-larger-than=<number> Warn if a function's
stack frame requires more than <number> bytes
-aux-info <file> Emit declaration information into <file>
-aux-info=
-auxbase
-auxbase-strip
-dumpbase <file> Set the file basename to be used for dumps
-fPIC Generate position-independent code if possible
(large mode)
-fPIE Generate position-independent code for
executables if possible (large mode)
-fabi-version=
-falign-functions=
-falign-jumps=
-falign-labels=
-falign-loops=
-fassociative-math Allow optimization for floating-point arithmetic
which may change the result of the operation due
to rounding.
-fauto-inc-dec Generate auto-inc/dec instructions
-fbounds-check Generate code to check bounds before indexing
arrays
-fcall-saved-<register> Mark <register> as being preserved across
functions
-fcall-used-<register> Mark <register> as being corrupted by function
calls
-fcheck-data-deps Compare the results of several data dependence
analyzers.
-fdbg-cnt-list List all available debugging counters with their
limits and counts.
-fdbg-cnt= -fdbg-
cnt=<counter>:<limit>[,<counter>:<limit>,...]
Set the debug counter limit.
-fdebug-prefix-map= Map one directory name to another in debug
information
-fdiagnostics-show-location=[once|every-line] How often to emit source
location at the beginning of line-wrapped
diagnostics
-fdiagnostics-show-option Amend appropriate diagnostic messages with the
command line option that controls them
-fdump-<type> Dump various compiler internals to a file
-fdump-noaddr Suppress output of addresses in debugging dumps
-fdump-unnumbered Suppress output of instruction numbers, line
number notes and addresses in debugging dumps
-fdwarf2-cfi-asm Enable CFI tables via GAS assembler directives.
-feliminate-dwarf2-dups Perform DWARF2 duplicate elimination
-feliminate-unused-debug-symbols Perform unused type elimination in debug info
-femit-class-debug-always Do not suppress C++ class debug information.
-ffast-math
-ffixed-<register> Mark <register> as being unavailable to the
compiler
-fforce-addr Does nothing. Preserved for backward
compatibility.
-ffunction-cse Allow function addresses to be held in registers
-ffunction-sections Place each function into its own section
-fgraphite Enable in and out of Graphite representation
-fhelp
-fhelp=
-fident Process #ident directives
-findirect-inlining Perform indirect inlining
-finhibit-size-directive Do not generate .size directives
-finline Pay attention to the "inline" keyword
-finline-limit-
-finline-limit=<number> Limit the size of inlined functions to <number>
-finstrument-functions Instrument function entry and exit with profiling
calls
-finstrument-functions-exclude-file-list= -finstrument-functions-exclude-file-
list=filename,... Do not instrument functions
listed in files
-finstrument-functions-exclude-function-list= -finstrument-functions-exclude-
function-list=name,... Do not instrument listed
functions
-fipa-struct-reorg Perform structure layout optimizations based on
profiling information.
-fira-algorithm= -fira-algorithm=[CB|priority] Set the used IRA
algorithm
-fira-coalesce Do optimistic coalescing.
-fira-region= -fira-region=[one|all|mixed] Set regions for IRA
-fira-share-save-slots Share slots for saving different hard registers.
-fira-share-spill-slots Share stack slots for spilled pseudo-registers.
-fira-verbose= -fira-verbose=<number> Control IRA's level of
diagnostic messages.
-fkeep-inline-functions Generate code for functions even if they are
fully inlined
-fkeep-static-consts Emit static const variables even if they are not
used
-fleading-underscore Give external symbols a leading underscore
-floop-optimize Does nothing. Preserved for backward
compatibility.
-fmem-report Report on permanent memory allocation
-fmerge-debug-strings Attempt to merge identical debug strings across
compilation units
-fmessage-length=<number> Limit diagnostics to <number> characters per
line. 0 suppresses line-wrapping
-fmodulo-sched-allow-regmoves Perform SMS based modulo scheduling with
register moves allowed
-fmudflap Add mudflap bounds-checking instrumentation for
single-threaded program
-fmudflapir Ignore read operations when inserting mudflap
instrumentation
-fmudflapth Add mudflap bounds-checking instrumentation for
multi-threaded program
-fpcc-struct-return Return small aggregates in memory, not registers
-fpic Generate position-independent code if possible
(small mode)
-fpie Generate position-independent code for
executables if possible (small mode)
-fpost-ipa-mem-report Report on memory allocation before
interprocedural optimization
-fpre-ipa-mem-report Report on memory allocation before
interprocedural optimization
-fprofile Enable basic program profiling code
-fprofile-arcs Insert arc-based program profiling code
-fprofile-correction Enable correction of flow inconsistent profile
data input
-fprofile-dir= Set the top-level directory for storing the
profile data. The default is 'pwd'.
-fprofile-generate Enable common options for generating profile info
for profile feedback directed optimizations
-fprofile-generate= Enable common options for generating profile info
for profile feedback directed optimizations, and
set -fprofile-dir=
-fprofile-use Enable common options for performing profile
feedback directed optimizations
-fprofile-use= Enable common options for performing profile
feedback directed optimizations, and set
-fprofile-dir=
-fprofile-values Insert code to profile values of expressions
-frandom-seed
-frandom-seed=<string> Make compile reproducible using <string>
-freciprocal-math Same as -fassociative-math for expressions which
include division.
-frecord-gcc-switches Record gcc command line switches in the object
file.
-frerun-loop-opt Does nothing. Preserved for backward
compatibility.
-fsched-stalled-insns-dep=<number> Set dependence distance checking in
premature scheduling of queued insns
-fsched-stalled-insns=<number> Set number of queued insns that can be
prematurely scheduled
-fsched-verbose=<number> Set the verbosity level of the scheduler
-fsee Eliminate redundant sign extensions using LCM.
-fstack-check Insert stack checking code into the program.
Same as -fstack-check=specific
-fstack-check=[no|generic|specific] Insert stack checking code into the
program
-fstack-limit
-fstack-limit-register=<register> Trap if the stack goes past <register>
-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
-fstack-protector Use propolice as a stack protection method
-fstack-protector-all Use a stack protection method for every function
-fstrength-reduce Does nothing. Preserved for backward
compatibility.
-fstrict-overflow Treat signed overflow as undefined
-fsyntax-only Check for syntax errors, then stop
-ftarget-help
-ftest-coverage Create data files needed by "gcov"
-ftime-report Report the time taken by each compiler pass
-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the
default thread-local storage code generation model
-ftracer Perform superblock formation via tail duplication
-ftree-parallelize-loops= Enable automatic parallelization of loops
-ftree-salias Does nothing. Preserved for backward
compatibility.
-ftree-store-ccp Does nothing. Preserved for backward
compatibility.
-ftree-store-copy-prop Does nothing. Preserved for backward
compatibility.
-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
-fverbose-asm Add extra commentary to assembler output
-fvisibility=[default|internal|hidden|protected] Set the default symbol
visibility
-fzero-initialized-in-bss Put zero initialized data in the bss section
-g Generate debug information in default format
-gcoff Generate debug information in COFF format
-gdwarf-2 Generate debug information in DWARF v2 format
-ggdb Generate debug information in default extended
format
-gstabs Generate debug information in STABS format
-gstabs+ Generate debug information in extended STABS
format
-gvms Generate debug information in VMS format
-gxcoff Generate debug information in XCOFF format
-gxcoff+ Generate debug information in extended XCOFF
format
-p Enable function profiling
-pie Create a position independent executable
-quiet Do not display functions compiled or elapsed time
-shared Create a shared library
Usage: c:/tools/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/as.exe [option...] [asmfile...] Options:
-a[sub-option...] turn on listings
Sub-options [default hls]:
c omit false conditionals
d omit debugging directives
g include general info
h include high-level source
l include assembly
m include macro expansions
n omit forms processing
s include symbols
=FILE list to FILE (must be last sub-option)
--alternate initially turn on alternate macro syntax
-D produce assembler debugging messages
--debug-prefix-map OLD=NEW Map OLD to NEW in debug information
--defsym SYM=VAL define symbol SYM to given value
-f skip whitespace and comment preprocessing
-g --gen-debug generate debugging information
--gstabs generate STABS debugging information
--gstabs+ generate STABS debug info with GNU extensions
--gdwarf-2 generate DWARF2 debugging information
--hash-size=<value> set the hash table size close to <value>
--help show this message and exit
--target-help show target specific options
-I DIR add DIR to search list for .include directives
-J don't warn about signed overflow
-K warn when differences altered for long displacements
-L,--keep-locals keep local symbols (e.g. starting with `L')
-M,--mri assemble in MRI compatibility mode
--MD FILE write dependency information in FILE (default none)
-nocpp ignored
-o OBJFILE name the object-file output OBJFILE (default a.out)
-R fold data section into text section
--reduce-memory-overheads
prefer smaller memory use at the cost of longer
assembly times
--statistics print various measured statistics from execution
--strip-local-absolute strip local absolute symbols
--traditional-format Use same format as native assembler when possible
--version print assembler version number and exit
-W --no-warn suppress warnings
--warn don't suppress warnings
--fatal-warnings treat warnings as errors
-w ignored
-X ignored
-Z generate object file even after errors
--listing-lhs-width set the width in words of the output data column of
the listing
--listing-lhs-width2 set the width in words of the continuation lines
of the output data column; ignored if smaller than
the width of the first line
--listing-rhs-width set the max width in characters of the lines from
the source file
--listing-cont-lines set the maximum number of continuation lines used
for the output data column of the listing
@FILE read options from FILE
-n Do not optimize code alignment
-q quieten some warnings
--32/--64 generate 32bit/64bit code
--divide ignored
-march=CPU[,+EXTENSION...]
generate code for CPU and EXTENSION, CPU is one of:
i8086, i186, i286, i386, i486, pentium, pentiumpro,
pentiumii, pentiumiii, pentium4, prescott, nocona,
core, core2, corei7, l1om, k6, k6_2, athlon, k8,
amdfam10, generic32, generic64
EXTENSION is combination of:
8087, 287, 387, no87, mmx, nommx, sse, sse2, sse3,
ssse3, sse4.1, sse4.2, sse4, nosse, avx, noavx,
vmx, smx, xsave, movbe, ept, aes, pclmul, fma,
clflush, syscall, rdtscp, 3dnow, 3dnowa, sse4a,
svme, abm, padlock, fma4
-mtune=CPU optimize for CPU, CPU is one of:
i8086, i186, i286, i386, i486, pentium, pentiumpro,
pentiumii, pentiumiii, pentium4, prescott, nocona,
core, core2, corei7, l1om, k6, k6_2, athlon, k8,
amdfam10, generic32, generic64
-msse2avx encode SSE instructions with VEX prefix
-msse-check=[none|error|warning]
check SSE instructions
-mmnemonic=[att|intel] use AT&T/Intel mnemonic
-msyntax=[att|intel] use AT&T/Intel syntax
-mindex-reg support pseudo index registers
-mnaked-reg don't require `%' prefix for registers
-mold-gcc support old (<= 2.8.1) versions of gcc
Report bugs to <http://www.sourceware.org/bugzilla/> Usage: c:/tools/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe [options] file... Options:
-a KEYWORD Shared library control for HP/UX compatibility
-A ARCH, --architecture ARCH
Set architecture
-b TARGET, --format TARGET Specify target for following input files
-c FILE, --mri-script FILE Read MRI format linker script
-d, -dc, -dp Force common symbols to be defined
-e ADDRESS, --entry ADDRESS Set start address
-E, --export-dynamic Export all dynamic symbols
--no-export-dynamic Undo the effect of --export-dynamic
-EB Link big-endian objects
-EL Link little-endian objects
-f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table
-F SHLIB, --filter SHLIB Filter for shared object symbol table
-g Ignored
-G SIZE, --gpsize SIZE Small data size (if no size, same as --shared)
-h FILENAME, -soname FILENAME
Set internal name of shared library
-I PROGRAM, --dynamic-linker PROGRAM
Set PROGRAM as the dynamic linker to use
-l LIBNAME, --library LIBNAME
Search for library LIBNAME
-L DIRECTORY, --library-path DIRECTORY
Add DIRECTORY to library search path
--sysroot=<DIRECTORY> Override the default sysroot location
-m EMULATION Set emulation
-M, --print-map Print map file on standard output
-n, --nmagic Do not page align data
-N, --omagic Do not page align data, do not make text readonly
--no-omagic Page align data, make text readonly
-o FILE, --output FILE Set output file name
-O Optimize output file
-Qy Ignored for SVR4 compatibility
-q, --emit-relocs Generate relocations in final output
-r, -i, --relocatable Generate relocatable output
-R FILE, --just-symbols FILE
Just link symbols (if directory, same as --rpath)
-s, --strip-all Strip all symbols
-S, --strip-debug Strip debugging symbols
--strip-discarded Strip symbols in discarded sections
--no-strip-discarded Do not strip symbols in discarded sections
-t, --trace Trace file opens
-T FILE, --script FILE Read linker script
--default-script FILE, -dT Read default linker script
-u SYMBOL, --undefined SYMBOL
Start with undefined reference to SYMBOL
--unique [=SECTION] Don't merge input [SECTION | orphan] sections
-Ur Build global constructor/destructor tables
-v, --version Print version information
-V Print version and emulation information
-x, --discard-all Discard all local symbols
-X, --discard-locals Discard temporary local symbols (default)
--discard-none Don't discard any local symbols
-y SYMBOL, --trace-symbol SYMBOL
Trace mentions of SYMBOL
-Y PATH Default search path for Solaris compatibility
-(, --start-group Start a group
-), --end-group End a group
--accept-unknown-input-arch Accept input files whose architecture cannot be determined
--no-accept-unknown-input-arch
Reject input files whose architecture is unknown
--add-needed Set DT_NEEDED tags for DT_NEEDED entries in
following dynamic libs
--no-add-needed Do not set DT_NEEDED tags for DT_NEEDED entries
in following dynamic libs
--as-needed Only set DT_NEEDED for following dynamic libs if used
--no-as-needed Always set DT_NEEDED for following dynamic libs
-assert KEYWORD Ignored for SunOS compatibility
-Bdynamic, -dy, -call_shared
Link against shared libraries
-Bstatic, -dn, -non_shared, -static
Do not link against shared libraries
-Bsymbolic Bind global references locally
-Bsymbolic-functions Bind global function references locally
--check-sections Check section addresses for overlaps (default)
--no-check-sections Do not check section addresses for overlaps
--cref Output cross reference table
--defsym SYMBOL=EXPRESSION Define a symbol
--demangle [=STYLE] Demangle symbol names [using STYLE]
--embedded-relocs Generate embedded relocs
--fatal-warnings Treat warnings as errors
--no-fatal-warnings Do not treat warnings as errors (default)
-fini SYMBOL Call SYMBOL at unload-time
--force-exe-suffix Force generation of file with .exe suffix
--gc-sections Remove unused sections (on some targets)
--no-gc-sections Don't remove unused sections (default)
--print-gc-sections List removed unused sections on stderr
--no-print-gc-sections Do not list removed unused sections
--hash-size=<NUMBER> Set default hash table size close to <NUMBER>
--help Print option help
-init SYMBOL Call SYMBOL at load-time
-Map FILE Write a map file
--no-define-common Do not define Common storage
--no-demangle Do not demangle symbol names
--no-keep-memory Use less memory and more disk I/O
--no-undefined Do not allow unresolved references in object files
--allow-shlib-undefined Allow unresolved references in shared libaries
--no-allow-shlib-undefined Do not allow unresolved references in shared libs
--allow-multiple-definition Allow multiple definitions
--no-undefined-version Disallow undefined version
--default-symver Create default symbol version
--default-imported-symver Create default symbol version for imported symbols
--no-warn-mismatch Don't warn about mismatched input files
--no-warn-search-mismatch Don't warn on finding an incompatible library
--no-whole-archive Turn off --whole-archive
--noinhibit-exec Create an output file even if errors occur
-nostdlib Only use library directories specified on
the command line
--oformat TARGET Specify target of output file
-qmagic Ignored for Linux compatibility
--reduce-memory-overheads Reduce memory overheads, possibly taking much longer
--relax Relax branches on certain targets
--retain-symbols-file FILE Keep only symbols listed in FILE
-rpath PATH Set runtime shared library search path
-rpath-link PATH Set link time shared library search path
-shared, -Bshareable Create a shared library
-pie, --pic-executable Create a position independent executable
--sort-common [=ascending|descending]
Sort common symbols by alignment [in specified order]
--sort-section name|alignment
Sort sections by name or maximum alignment
--spare-dynamic-tags COUNT How many tags to reserve in .dynamic section
--split-by-file [=SIZE] Split output sections every SIZE octets
--split-by-reloc [=COUNT] Split output sections every COUNT relocs
--stats Print memory usage statistics
--target-help Display target specific options
--task-link SYMBOL Do task level linking
--traditional-format Use same format as native linker
--section-start SECTION=ADDRESS
Set address of named section
-Tbss ADDRESS Set address of .bss section
-Tdata ADDRESS Set address of .data section
-Ttext ADDRESS Set address of .text section
-Ttext-segment ADDRESS Set address of text segment
--unresolved-symbols=<method>
How to handle unresolved symbols. <method> is:
ignore-all, report-all, ignore-in-object-files,
ignore-in-shared-libs
--verbose Output lots of information during link
--version-script FILE Read version information script
--version-exports-section SYMBOL
Take export symbols list from .exports, using
SYMBOL as the version.
--dynamic-list-data Add data symbols to dynamic list
--dynamic-list-cpp-new Use C++ operator new/delete dynamic list
--dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
--dynamic-list FILE Read dynamic list
--warn-common Warn about duplicate common symbols
--warn-constructors Warn if global constructors/destructors are seen
--warn-multiple-gp Warn if the multiple GP values are used
--warn-once Warn only once per undefined symbol
--warn-section-align Warn if start of section changes due to alignment
--warn-shared-textrel Warn if shared object has DT_TEXTREL
--warn-alternate-em Warn if an object has alternate ELF machine code
--warn-unresolved-symbols Report unresolved symbols as warnings
--error-unresolved-symbols Report unresolved symbols as errors
--whole-archive Include all objects from following archives
--wrap SYMBOL Use wrapper functions for SYMBOL
@FILE Read options from FILE
c:/tools/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: supported targets: pe-i386 pei-i386 elf32-i386 elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex c:/tools/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: supported emulations: i386pe c:/tools/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: emulation specific options: i386pe:
--base_file <basefile> Generate a base file for relocatable DLLs
--dll Set image base to the default for DLLs
--file-alignment <size> Set file alignment
--heap <size> Set initial size of the heap
--image-base <address> Set start address of the executable
--major-image-version <number> Set version number of the executable
--major-os-version <number> Set minimum required OS version
--major-subsystem-version <number> Set minimum required OS subsystem version
--minor-image-version <number> Set revision number of the executable
--minor-os-version <number> Set minimum required OS revision
--minor-subsystem-version <number> Set minimum required OS subsystem revision
--section-alignment <size> Set section alignment
--stack <size> Set size of the initial stack
--subsystem <name>[:<version>] Set required OS subsystem [& version]
--support-old-code Support interworking with old code
--thumb-entry=<symbol> Set the entry point to be Thumb <symbol>
--add-stdcall-alias Export symbols with and without @nn
--disable-stdcall-fixup Don't link _sym to _sym@nn
--enable-stdcall-fixup Link _sym to _sym@nn without warnings
--exclude-symbols sym,sym,... Exclude symbols from automatic export
--exclude-libs lib,lib,... Exclude libraries from automatic export
--exclude-modules-for-implib mod,mod,...
Exclude objects, archive members from auto
export, place into import library instead.
--export-all-symbols Automatically export all globals to DLL
--kill-at Remove @nn from exported symbols
--out-implib <file> Generate import library
--output-def <file> Generate a .DEF file for the built DLL
--warn-duplicate-exports Warn about duplicate exports.
--compat-implib Create backward compatible import libs;
create __imp_<SYMBOL> as well.
--enable-auto-image-base Automatically choose image base for DLLs
unless user specifies one
--disable-auto-image-base Do not auto-choose image base. (default)
--dll-search-prefix=<string> When linking dynamically to a dll without
an importlib, use <string><basename>.dll
in preference to lib<basename>.dll
--enable-auto-import Do sophistcated linking of _sym to
__imp_sym for DATA references
--disable-auto-import Do not auto-import DATA items from DLLs
--enable-runtime-pseudo-reloc Work around auto-import limitations by
adding pseudo-relocations resolved at
runtime.
--disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for
auto-imported DATA.
--enable-extra-pe-debug Enable verbose debug output when building
or linking to DLLs (esp. auto-import)
--large-address-aware Executable supports virtual addresses
greater than 2 gigabytes
--enable-long-section-names Use long COFF section names even in
executable image files
--disable-long-section-names Never use long COFF section names, even
in object files
--dynamicbase Image base address may be relocated using
address space layout randomization (ASLR)
--forceinteg Code integrity checks are enforced
--nxcompat Image is compatible with data execution prevention
--no-isolation Image understands isolation but do not isolate the image
--no-seh Image does not use SEH. No SE handler may
be called in this image
--no-bind Do not bind this image
--wdmdriver Driver uses the WDM model
--tsaware Image is Terminal Server aware
Report bugs to <http://www.sourceware.org/bugzilla/>
For bug reporting instructions, please see: http://gcc.gnu.org/bugs.html