]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/doc/gcc.info-6
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / doc / gcc.info-6
diff --git a/gcc/doc/gcc.info-6 b/gcc/doc/gcc.info-6
deleted file mode 100644 (file)
index 4e33c17..0000000
+++ /dev/null
@@ -1,1209 +0,0 @@
-This is doc/gcc.info, produced by makeinfo version 4.5 from
-doc/gcc.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* gcc: (gcc).                  The GNU Compiler Collection.
-END-INFO-DIR-ENTRY
-   This file documents the use of the GNU compilers.
-
-   Published by the Free Software Foundation
-59 Temple Place - Suite 330
-Boston, MA 02111-1307 USA
-
-   Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being "GNU General Public License" and "Funding Free
-Software", the Front-Cover texts being (a) (see below), and with the
-Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the section entitled "GNU Free Documentation License".
-
-   (a) The FSF's Front-Cover Text is:
-
-   A GNU Manual
-
-   (b) The FSF's Back-Cover Text is:
-
-   You have freedom to copy and modify this GNU Manual, like GNU
-software.  Copies published by the Free Software Foundation raise
-funds for GNU development.
-
-\1f
-File: gcc.info,  Node: Spec Files,  Next: Target Options,  Prev: Directory Options,  Up: Invoking GCC
-
-Specifying subprocesses and the switches to pass to them
-========================================================
-
-   `gcc' is a driver program.  It performs its job by invoking a
-sequence of other programs to do the work of compiling, assembling and
-linking.  GCC interprets its command-line parameters and uses these to
-deduce which programs it should invoke, and which command-line options
-it ought to place on their command lines.  This behavior is controlled
-by "spec strings".  In most cases there is one spec string for each
-program that GCC can invoke, but a few programs have multiple spec
-strings to control their behavior.  The spec strings built into GCC can
-be overridden by using the `-specs=' command-line switch to specify a
-spec file.
-
-   "Spec files" are plaintext files that are used to construct spec
-strings.  They consist of a sequence of directives separated by blank
-lines.  The type of directive is determined by the first non-whitespace
-character on the line and it can be one of the following:
-
-`%COMMAND'
-     Issues a COMMAND to the spec file processor.  The commands that can
-     appear here are:
-
-    `%include <FILE>'
-          Search for FILE and insert its text at the current point in
-          the specs file.
-
-    `%include_noerr <FILE>'
-          Just like `%include', but do not generate an error message if
-          the include file cannot be found.
-
-    `%rename OLD_NAME NEW_NAME'
-          Rename the spec string OLD_NAME to NEW_NAME.
-
-
-`*[SPEC_NAME]:'
-     This tells the compiler to create, override or delete the named
-     spec string.  All lines after this directive up to the next
-     directive or blank line are considered to be the text for the spec
-     string.  If this results in an empty string then the spec will be
-     deleted.  (Or, if the spec did not exist, then nothing will
-     happened.)  Otherwise, if the spec does not currently exist a new
-     spec will be created.  If the spec does exist then its contents
-     will be overridden by the text of this directive, unless the first
-     character of that text is the `+' character, in which case the
-     text will be appended to the spec.
-
-`[SUFFIX]:'
-     Creates a new `[SUFFIX] spec' pair.  All lines after this directive
-     and up to the next directive or blank line are considered to make
-     up the spec string for the indicated suffix.  When the compiler
-     encounters an input file with the named suffix, it will processes
-     the spec string in order to work out how to compile that file.
-     For example:
-
-          .ZZ:
-          z-compile -input %i
-
-     This says that any input file whose name ends in `.ZZ' should be
-     passed to the program `z-compile', which should be invoked with the
-     command-line switch `-input' and with the result of performing the
-     `%i' substitution.  (See below.)
-
-     As an alternative to providing a spec string, the text that
-     follows a suffix directive can be one of the following:
-
-    `@LANGUAGE'
-          This says that the suffix is an alias for a known LANGUAGE.
-          This is similar to using the `-x' command-line switch to GCC
-          to specify a language explicitly.  For example:
-
-               .ZZ:
-               @c++
-
-          Says that .ZZ files are, in fact, C++ source files.
-
-    `#NAME'
-          This causes an error messages saying:
-
-               NAME compiler not installed on this system.
-
-     GCC already has an extensive list of suffixes built into it.  This
-     directive will add an entry to the end of the list of suffixes, but
-     since the list is searched from the end backwards, it is
-     effectively possible to override earlier entries using this
-     technique.
-
-
-   GCC has the following spec strings built into it.  Spec files can
-override these strings or create their own.  Note that individual
-targets can also add their own spec strings to this list.
-
-     asm          Options to pass to the assembler
-     asm_final    Options to pass to the assembler post-processor
-     cpp          Options to pass to the C preprocessor
-     cc1          Options to pass to the C compiler
-     cc1plus      Options to pass to the C++ compiler
-     endfile      Object files to include at the end of the link
-     link         Options to pass to the linker
-     lib          Libraries to include on the command line to the linker
-     libgcc       Decides which GCC support library to pass to the linker
-     linker       Sets the name of the linker
-     predefines   Defines to be passed to the C preprocessor
-     signed_char  Defines to pass to CPP to say whether `char' is signed
-                  by default
-     startfile    Object files to include at the start of the link
-
-   Here is a small example of a spec file:
-
-     %rename lib                 old_lib
-     
-     *lib:
-     --start-group -lgcc -lc -leval1 --end-group %(old_lib)
-
-   This example renames the spec called `lib' to `old_lib' and then
-overrides the previous definition of `lib' with a new one.  The new
-definition adds in some extra command-line options before including the
-text of the old definition.
-
-   "Spec strings" are a list of command-line options to be passed to
-their corresponding program.  In addition, the spec strings can contain
-`%'-prefixed sequences to substitute variable text or to conditionally
-insert text into the command line.  Using these constructs it is
-possible to generate quite complex command lines.
-
-   Here is a table of all defined `%'-sequences for spec strings.  Note
-that spaces are not generated automatically around the results of
-expanding these sequences.  Therefore you can concatenate them together
-or combine them with constant text in a single argument.
-
-`%%'
-     Substitute one `%' into the program name or argument.
-
-`%i'
-     Substitute the name of the input file being processed.
-
-`%b'
-     Substitute the basename of the input file being processed.  This
-     is the substring up to (and not including) the last period and not
-     including the directory.
-
-`%B'
-     This is the same as `%b', but include the file suffix (text after
-     the last period).
-
-`%d'
-     Marks the argument containing or following the `%d' as a temporary
-     file name, so that that file will be deleted if GCC exits
-     successfully.  Unlike `%g', this contributes no text to the
-     argument.
-
-`%gSUFFIX'
-     Substitute a file name that has suffix SUFFIX and is chosen once
-     per compilation, and mark the argument in the same way as `%d'.
-     To reduce exposure to denial-of-service attacks, the file name is
-     now chosen in a way that is hard to predict even when previously
-     chosen file names are known.  For example, `%g.s ... %g.o ... %g.s'
-     might turn into `ccUVUUAU.s ccXYAXZ12.o ccUVUUAU.s'.  SUFFIX
-     matches the regexp `[.A-Za-z]*' or the special string `%O', which
-     is treated exactly as if `%O' had been preprocessed.  Previously,
-     `%g' was simply substituted with a file name chosen once per
-     compilation, without regard to any appended suffix (which was
-     therefore treated just like ordinary text), making such attacks
-     more likely to succeed.
-
-`%uSUFFIX'
-     Like `%g', but generates a new temporary file name even if
-     `%uSUFFIX' was already seen.
-
-`%USUFFIX'
-     Substitutes the last file name generated with `%uSUFFIX',
-     generating a new one if there is no such last file name.  In the
-     absence of any `%uSUFFIX', this is just like `%gSUFFIX', except
-     they don't share the same suffix _space_, so `%g.s ... %U.s ...
-     %g.s ... %U.s' would involve the generation of two distinct file
-     names, one for each `%g.s' and another for each `%U.s'.
-     Previously, `%U' was simply substituted with a file name chosen
-     for the previous `%u', without regard to any appended suffix.
-
-`%jSUFFIX'
-     Substitutes the name of the `HOST_BIT_BUCKET', if any, and if it is
-     writable, and if save-temps is off; otherwise, substitute the name
-     of a temporary file, just like `%u'.  This temporary file is not
-     meant for communication between processes, but rather as a junk
-     disposal mechanism.
-
-`%.SUFFIX'
-     Substitutes .SUFFIX for the suffixes of a matched switch's args
-     when it is subsequently output with `%*'.  SUFFIX is terminated by
-     the next space or %.
-
-`%w'
-     Marks the argument containing or following the `%w' as the
-     designated output file of this compilation.  This puts the argument
-     into the sequence of arguments that `%o' will substitute later.
-
-`%o'
-     Substitutes the names of all the output files, with spaces
-     automatically placed around them.  You should write spaces around
-     the `%o' as well or the results are undefined.  `%o' is for use in
-     the specs for running the linker.  Input files whose names have no
-     recognized suffix are not compiled at all, but they are included
-     among the output files, so they will be linked.
-
-`%O'
-     Substitutes the suffix for object files.  Note that this is
-     handled specially when it immediately follows `%g, %u, or %U',
-     because of the need for those to form complete file names.  The
-     handling is such that `%O' is treated exactly as if it had already
-     been substituted, except that `%g, %u, and %U' do not currently
-     support additional SUFFIX characters following `%O' as they would
-     following, for example, `.o'.
-
-`%p'
-     Substitutes the standard macro predefinitions for the current
-     target machine.  Use this when running `cpp'.
-
-`%P'
-     Like `%p', but puts `__' before and after the name of each
-     predefined macro, except for macros that start with `__' or with
-     `_L', where L is an uppercase letter.  This is for ISO C.
-
-`%I'
-     Substitute a `-iprefix' option made from `GCC_EXEC_PREFIX'.
-
-`%s'
-     Current argument is the name of a library or startup file of some
-     sort.  Search for that file in a standard list of directories and
-     substitute the full name found.
-
-`%eSTR'
-     Print STR as an error message.  STR is terminated by a newline.
-     Use this when inconsistent options are detected.
-
-`%|'
-     Output `-' if the input for the current command is coming from a
-     pipe.
-
-`%(NAME)'
-     Substitute the contents of spec string NAME at this point.
-
-`%[NAME]'
-     Like `%(...)' but put `__' around `-D' arguments.
-
-`%x{OPTION}'
-     Accumulate an option for `%X'.
-
-`%X'
-     Output the accumulated linker options specified by `-Wl' or a `%x'
-     spec string.
-
-`%Y'
-     Output the accumulated assembler options specified by `-Wa'.
-
-`%Z'
-     Output the accumulated preprocessor options specified by `-Wp'.
-
-`%v1'
-     Substitute the major version number of GCC.  (For version 2.9.5,
-     this is 2.)
-
-`%v2'
-     Substitute the minor version number of GCC.  (For version 2.9.5,
-     this is 9.)
-
-`%v3'
-     Substitute the patch level number of GCC.  (For version 2.9.5,
-     this is 5.)
-
-`%a'
-     Process the `asm' spec.  This is used to compute the switches to
-     be passed to the assembler.
-
-`%A'
-     Process the `asm_final' spec.  This is a spec string for passing
-     switches to an assembler post-processor, if such a program is
-     needed.
-
-`%l'
-     Process the `link' spec.  This is the spec for computing the
-     command line passed to the linker.  Typically it will make use of
-     the `%L %G %S %D and %E' sequences.
-
-`%D'
-     Dump out a `-L' option for each directory that GCC believes might
-     contain startup files.  If the target supports multilibs then the
-     current multilib directory will be prepended to each of these
-     paths.
-
-`%M'
-     Output the multilib directory with directory separators replaced
-     with `_'.  If multilib directories are not set, or the multilib
-     directory is `.' then this option emits nothing.
-
-`%L'
-     Process the `lib' spec.  This is a spec string for deciding which
-     libraries should be included on the command line to the linker.
-
-`%G'
-     Process the `libgcc' spec.  This is a spec string for deciding
-     which GCC support library should be included on the command line
-     to the linker.
-
-`%S'
-     Process the `startfile' spec.  This is a spec for deciding which
-     object files should be the first ones passed to the linker.
-     Typically this might be a file named `crt0.o'.
-
-`%E'
-     Process the `endfile' spec.  This is a spec string that specifies
-     the last object files that will be passed to the linker.
-
-`%C'
-     Process the `cpp' spec.  This is used to construct the arguments
-     to be passed to the C preprocessor.
-
-`%c'
-     Process the `signed_char' spec.  This is intended to be used to
-     tell cpp whether a char is signed.  It typically has the
-     definition:
-          %{funsigned-char:-D__CHAR_UNSIGNED__}
-
-`%1'
-     Process the `cc1' spec.  This is used to construct the options to
-     be passed to the actual C compiler (`cc1').
-
-`%2'
-     Process the `cc1plus' spec.  This is used to construct the options
-     to be passed to the actual C++ compiler (`cc1plus').
-
-`%*'
-     Substitute the variable part of a matched option.  See below.
-     Note that each comma in the substituted string is replaced by a
-     single space.
-
-`%{`S'}'
-     Substitutes the `-S' switch, if that switch was given to GCC.  If
-     that switch was not specified, this substitutes nothing.  Note that
-     the leading dash is omitted when specifying this option, and it is
-     automatically inserted if the substitution is performed.  Thus the
-     spec string `%{foo}' would match the command-line option `-foo'
-     and would output the command line option `-foo'.
-
-`%W{`S'}'
-     Like %{`S'} but mark last argument supplied within as a file to be
-     deleted on failure.
-
-`%{`S'*}'
-     Substitutes all the switches specified to GCC whose names start
-     with `-S', but which also take an argument.  This is used for
-     switches like `-o', `-D', `-I', etc.  GCC considers `-o foo' as
-     being one switch whose names starts with `o'.  %{o*} would
-     substitute this text, including the space.  Thus two arguments
-     would be generated.
-
-`%{^`S'*}'
-     Like %{`S'*}, but don't put a blank between a switch and its
-     argument.  Thus %{^o*} would only generate one argument, not two.
-
-`%{`S'*&`T'*}'
-     Like %{`S'*}, but preserve order of `S' and `T' options (the order
-     of `S' and `T' in the spec is not significant).  There can be any
-     number of ampersand-separated variables; for each the wild card is
-     optional.  Useful for CPP as `%{D*&U*&A*}'.
-
-`%{<`S'}'
-     Remove all occurrences of `-S' from the command line.  Note--this
-     command is position dependent.  `%' commands in the spec string
-     before this option will see `-S', `%' commands in the spec string
-     after this option will not.
-
-`%{`S'*:`X'}'
-     Substitutes `X' if one or more switches whose names start with
-     `-S' are specified to GCC.  Note that the tail part of the `-S'
-     option (i.e. the part matched by the `*') will be substituted for
-     each occurrence of `%*' within `X'.
-
-`%{`S':`X'}'
-     Substitutes `X', but only if the `-S' switch was given to GCC.
-
-`%{!`S':`X'}'
-     Substitutes `X', but only if the `-S' switch was _not_ given to
-     GCC.
-
-`%{|`S':`X'}'
-     Like %{`S':`X'}, but if no `S' switch, substitute `-'.
-
-`%{|!`S':`X'}'
-     Like %{!`S':`X'}, but if there is an `S' switch, substitute `-'.
-
-`%{.`S':`X'}'
-     Substitutes `X', but only if processing a file with suffix `S'.
-
-`%{!.`S':`X'}'
-     Substitutes `X', but only if _not_ processing a file with suffix
-     `S'.
-
-`%{`S'|`P':`X'}'
-     Substitutes `X' if either `-S' or `-P' was given to GCC.  This may
-     be combined with `!' and `.' sequences as well, although they have
-     a stronger binding than the `|'.  For example a spec string like
-     this:
-
-          %{.c:-foo} %{!.c:-bar} %{.c|d:-baz} %{!.c|d:-boggle}
-
-     will output the following command-line options from the following
-     input command-line options:
-
-          fred.c        -foo -baz
-          jim.d         -bar -boggle
-          -d fred.c     -foo -baz -boggle
-          -d jim.d      -bar -baz -boggle
-
-
-   The conditional text `X' in a %{`S':`X'} or %{!`S':`X'} construct
-may contain other nested `%' constructs or spaces, or even newlines.
-They are processed as usual, as described above.
-
-   The `-O', `-f', `-m', and `-W' switches are handled specifically in
-these constructs.  If another value of `-O' or the negated form of a
-`-f', `-m', or `-W' switch is found later in the command line, the
-earlier switch value is ignored, except with {`S'*} where `S' is just
-one letter, which passes all matching options.
-
-   The character `|' at the beginning of the predicate text is used to
-indicate that a command should be piped to the following command, but
-only if `-pipe' is specified.
-
-   It is built into GCC which switches take arguments and which do not.
-(You might think it would be useful to generalize this to allow each
-compiler's spec to say which switches take arguments.  But this cannot
-be done in a consistent fashion.  GCC cannot even decide which input
-files have been specified without knowing which switches take arguments,
-and it must know which input files to compile in order to tell which
-compilers to run).
-
-   GCC also knows implicitly that arguments starting in `-l' are to be
-treated as compiler output files, and passed to the linker in their
-proper position among the other output files.
-
-\1f
-File: gcc.info,  Node: Target Options,  Next: Submodel Options,  Prev: Spec Files,  Up: Invoking GCC
-
-Specifying Target Machine and Compiler Version
-==============================================
-
-   By default, GCC compiles code for the same type of machine that you
-are using.  However, it can also be installed as a cross-compiler, to
-compile for some other type of machine.  In fact, several different
-configurations of GCC, for different target machines, can be installed
-side by side.  Then you specify which one to use with the `-b' option.
-
-   In addition, older and newer versions of GCC can be installed side
-by side.  One of them (probably the newest) will be the default, but
-you may sometimes wish to use another.
-
-`-b MACHINE'
-     The argument MACHINE specifies the target machine for compilation.
-     This is useful when you have installed GCC as a cross-compiler.
-
-     The value to use for MACHINE is the same as was specified as the
-     machine type when configuring GCC as a cross-compiler.  For
-     example, if a cross-compiler was configured with `configure
-     i386v', meaning to compile for an 80386 running System V, then you
-     would specify `-b i386v' to run that cross compiler.
-
-     When you do not specify `-b', it normally means to compile for the
-     same type of machine that you are using.
-
-`-V VERSION'
-     The argument VERSION specifies which version of GCC to run.  This
-     is useful when multiple versions are installed.  For example,
-     VERSION might be `2.0', meaning to run GCC version 2.0.
-
-     The default version, when you do not specify `-V', is the last
-     version of GCC that you installed.
-
-   The `-b' and `-V' options actually work by controlling part of the
-file name used for the executable files and libraries used for
-compilation.  A given version of GCC, for a given target machine, is
-normally kept in the directory `/usr/local/lib/gcc-lib/MACHINE/VERSION'.
-
-   Thus, sites can customize the effect of `-b' or `-V' either by
-changing the names of these directories or adding alternate names (or
-symbolic links).  If in directory `/usr/local/lib/gcc-lib/' the file
-`80386' is a link to the file `i386v', then `-b 80386' becomes an alias
-for `-b i386v'.
-
-   In one respect, the `-b' or `-V' do not completely change to a
-different compiler: the top-level driver program `gcc' that you
-originally invoked continues to run and invoke the other executables
-(preprocessor, compiler per se, assembler and linker) that do the real
-work.  However, since no real work is done in the driver program, it
-usually does not matter that the driver program in use is not the one
-for the specified target.  It is common for the interface to the other
-executables to change incompatibly between compiler versions, so unless
-the version specified is very close to that of the driver (for example,
-`-V 3.0' with a driver program from GCC version 3.0.1), use of `-V' may
-not work; for example, using `-V 2.95.2' will not work with a driver
-program from GCC 3.0.
-
-   The only way that the driver program depends on the target machine is
-in the parsing and handling of special machine-specific options.
-However, this is controlled by a file which is found, along with the
-other executables, in the directory for the specified version and
-target machine.  As a result, a single installed driver program adapts
-to any specified target machine, and sufficiently similar compiler
-versions.
-
-   The driver program executable does control one significant thing,
-however: the default version and target machine.  Therefore, you can
-install different instances of the driver program, compiled for
-different targets or versions, under different names.
-
-   For example, if the driver for version 2.0 is installed as `ogcc'
-and that for version 2.1 is installed as `gcc', then the command `gcc'
-will use version 2.1 by default, while `ogcc' will use 2.0 by default.
-However, you can choose either version with either command with the
-`-V' option.
-
-\1f
-File: gcc.info,  Node: Submodel Options,  Next: Code Gen Options,  Prev: Target Options,  Up: Invoking GCC
-
-Hardware Models and Configurations
-==================================
-
-   Earlier we discussed the standard option `-b' which chooses among
-different installed compilers for completely different target machines,
-such as VAX vs. 68000 vs. 80386.
-
-   In addition, each of these target machine types can have its own
-special options, starting with `-m', to choose among various hardware
-models or configurations--for example, 68010 vs 68020, floating
-coprocessor or none.  A single installed version of the compiler can
-compile for any model or configuration, according to the options
-specified.
-
-   Some configurations of the compiler also support additional special
-options, usually for compatibility with other compilers on the same
-platform.
-
-   These options are defined by the macro `TARGET_SWITCHES' in the
-machine description.  The default for the options is also defined by
-that macro, which enables you to change the defaults.
-
-* Menu:
-
-* M680x0 Options::
-* M68hc1x Options::
-* VAX Options::
-* SPARC Options::
-* Convex Options::
-* AMD29K Options::
-* ARM Options::
-* MN10200 Options::
-* MN10300 Options::
-* M32R/D Options::
-* M88K Options::
-* RS/6000 and PowerPC Options::
-* RT Options::
-* MIPS Options::
-* i386 and x86-64 Options::
-* HPPA Options::
-* Intel 960 Options::
-* DEC Alpha Options::
-* DEC Alpha/VMS Options::
-* Clipper Options::
-* H8/300 Options::
-* SH Options::
-* System V Options::
-* TMS320C3x/C4x Options::
-* V850 Options::
-* ARC Options::
-* NS32K Options::
-* AVR Options::
-* MCore Options::
-* IA-64 Options::
-* D30V Options::
-* S/390 and zSeries Options::
-* CRIS Options::
-* MMIX Options::
-* PDP-11 Options::
-* Xstormy16 Options::
-* Xtensa Options::
-
-\1f
-File: gcc.info,  Node: M680x0 Options,  Next: M68hc1x Options,  Up: Submodel Options
-
-M680x0 Options
---------------
-
-   These are the `-m' options defined for the 68000 series.  The default
-values for these options depends on which style of 68000 was selected
-when the compiler was configured; the defaults for the most common
-choices are given below.
-
-`-m68000'
-`-mc68000'
-     Generate output for a 68000.  This is the default when the
-     compiler is configured for 68000-based systems.
-
-     Use this option for microcontrollers with a 68000 or EC000 core,
-     including the 68008, 68302, 68306, 68307, 68322, 68328 and 68356.
-
-`-m68020'
-`-mc68020'
-     Generate output for a 68020.  This is the default when the
-     compiler is configured for 68020-based systems.
-
-`-m68881'
-     Generate output containing 68881 instructions for floating point.
-     This is the default for most 68020 systems unless `--nfp' was
-     specified when the compiler was configured.
-
-`-m68030'
-     Generate output for a 68030.  This is the default when the
-     compiler is configured for 68030-based systems.
-
-`-m68040'
-     Generate output for a 68040.  This is the default when the
-     compiler is configured for 68040-based systems.
-
-     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.
-
-     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.
-
-     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" family cpu.  This is the
-     default when the compiler is configured for 520X-based systems.
-
-     Use this option for microcontroller with a 5200 core, including
-     the MCF5202, MCF5203, MCF5204 and MCF5202.
-
-`-m68020-40'
-     Generate output for a 68040, without using any of the new
-     instructions.  This results in code which 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.
-
-`-m68020-60'
-     Generate output for a 68060, without using any of the new
-     instructions.  This results in code which 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.
-
-`-mfpa'
-     Generate output containing Sun FPA instructions for floating point.
-
-`-msoft-float'
-     Generate output containing library calls for floating point.
-     *Warning:* the requisite libraries are not available for all m68k
-     targets.  Normally the facilities of the machine's usual C
-     compiler are used, but this can't be done directly in
-     cross-compilation.  You must make your own arrangements to provide
-     suitable library functions for cross-compilation.  The embedded
-     targets `m68k-*-aout' and `m68k-*-coff' do provide software
-     floating point support.
-
-`-mshort'
-     Consider type `int' to be 16 bits wide, like `short int'.
-
-`-mnobitfield'
-     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 will be generated for calls to those functions.
-
-     In addition, seriously incorrect code will result 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.
-
-`-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 will align
-     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 will be
-     handled by the system.
-
-
-\1f
-File: gcc.info,  Node: M68hc1x Options,  Next: VAX Options,  Prev: M680x0 Options,  Up: Submodel Options
-
-M68hc1x Options
----------------
-
-   These are the `-m' options defined for the 68hc11 and 68hc12
-microcontrollers.  The default values for these options depends on
-which style of microcontroller was selected when the compiler was
-configured; the defaults for the most common choices are given below.
-
-`-m6811'
-`-m68hc11'
-     Generate output for a 68HC11.  This is the default when the
-     compiler is configured for 68HC11-based systems.
-
-`-m6812'
-`-m68hc12'
-     Generate output for a 68HC12.  This is the default when the
-     compiler is configured for 68HC12-based systems.
-
-`-mauto-incdec'
-     Enable the use of 68HC12 pre and post auto-increment and
-     auto-decrement addressing modes.
-
-`-mshort'
-     Consider type `int' to be 16 bits wide, like `short int'.
-
-`-msoft-reg-count=COUNT'
-     Specify the number of pseudo-soft registers which are used for the
-     code generation.  The maximum number is 32.  Using more pseudo-soft
-     register may or may not result in better code depending on the
-     program.  The default is 4 for 68HC11 and 2 for 68HC12.
-
-
-\1f
-File: gcc.info,  Node: VAX Options,  Next: SPARC Options,  Prev: M68hc1x Options,  Up: Submodel Options
-
-VAX Options
------------
-
-   These `-m' options are defined for the VAX:
-
-`-munix'
-     Do not output certain jump instructions (`aobleq' and so on) that
-     the Unix assembler for the VAX cannot handle across long ranges.
-
-`-mgnu'
-     Do output those jump instructions, on the assumption that you will
-     assemble with the GNU assembler.
-
-`-mg'
-     Output code for g-format floating point numbers instead of
-     d-format.
-
-\1f
-File: gcc.info,  Node: SPARC Options,  Next: Convex Options,  Prev: VAX Options,  Up: Submodel Options
-
-SPARC Options
--------------
-
-   These `-m' switches are supported on the SPARC:
-
-`-mno-app-regs'
-`-mapp-regs'
-     Specify `-mapp-regs' to generate output using the global registers
-     2 through 4, which the SPARC SVR4 ABI reserves for applications.
-     This is the default.
-
-     To be fully SVR4 ABI compliant at the cost of some performance
-     loss, specify `-mno-app-regs'.  You should compile libraries and
-     system software with this option.
-
-`-mfpu'
-`-mhard-float'
-     Generate output containing floating point instructions.  This is
-     the default.
-
-`-mno-fpu'
-`-msoft-float'
-     Generate output containing library calls for floating point.
-     *Warning:* the requisite libraries are not available for all SPARC
-     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.  The embedded
-     targets `sparc-*-aout' and `sparclite-*-*' do provide software
-     floating point support.
-
-     `-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.
-
-`-mhard-quad-float'
-     Generate output containing quad-word (long double) floating point
-     instructions.
-
-`-msoft-quad-float'
-     Generate output containing library calls for quad-word (long
-     double) floating point instructions.  The functions called are
-     those specified in the SPARC ABI.  This is the default.
-
-     As of this writing, there are no sparc implementations that have
-     hardware support for the quad-word floating point instructions.
-     They all invoke a trap handler for one of these instructions, and
-     then the trap handler emulates the effect of the instruction.
-     Because of the trap handler overhead, this is much slower than
-     calling the ABI library routines.  Thus the `-msoft-quad-float'
-     option is the default.
-
-`-mno-flat'
-`-mflat'
-     With `-mflat', the compiler does not generate save/restore
-     instructions and will use a "flat" or single register window
-     calling convention.  This model uses %i7 as the frame pointer and
-     is compatible with the normal register window model.  Code from
-     either may be intermixed.  The local registers and the input
-     registers (0-5) are still treated as "call saved" registers and
-     will be saved on the stack as necessary.
-
-     With `-mno-flat' (the default), the compiler emits save/restore
-     instructions (except for leaf functions) and is the normal mode of
-     operation.
-
-`-mno-unaligned-doubles'
-`-munaligned-doubles'
-     Assume that doubles have 8 byte alignment.  This is the default.
-
-     With `-munaligned-doubles', GCC assumes that doubles have 8 byte
-     alignment only if they are contained in another type, or if they
-     have an absolute address.  Otherwise, it assumes they have 4 byte
-     alignment.  Specifying this option avoids some rare compatibility
-     problems with code generated by other compilers.  It is not the
-     default because it results in a performance loss, especially for
-     floating point code.
-
-`-mno-faster-structs'
-`-mfaster-structs'
-     With `-mfaster-structs', the compiler assumes that structures
-     should have 8 byte alignment.  This enables the use of pairs of
-     `ldd' and `std' instructions for copies in structure assignment,
-     in place of twice as many `ld' and `st' pairs.  However, the use
-     of this changed alignment directly violates the Sparc ABI.  Thus,
-     it's intended only for use on targets where the developer
-     acknowledges that their resulting code will not be directly in
-     line with the rules of the ABI.
-
-`-mv8'
-`-msparclite'
-     These two options select variations on the SPARC architecture.
-
-     By default (unless specifically configured for the Fujitsu
-     SPARClite), GCC generates code for the v7 variant of the SPARC
-     architecture.
-
-     `-mv8' will give you SPARC v8 code.  The only difference from v7
-     code is that the compiler emits the integer multiply and integer
-     divide instructions which exist in SPARC v8 but not in SPARC v7.
-
-     `-msparclite' will give you SPARClite code.  This adds the integer
-     multiply, integer divide step and scan (`ffs') instructions which
-     exist in SPARClite but not in SPARC v7.
-
-     These options are deprecated and will be deleted in a future GCC
-     release.  They have been replaced with `-mcpu=xxx'.
-
-`-mcypress'
-`-msupersparc'
-     These two options select the processor for which the code is
-     optimized.
-
-     With `-mcypress' (the default), the compiler optimizes code for the
-     Cypress CY7C602 chip, as used in the SparcStation/SparcServer 3xx
-     series.  This is also appropriate for the older SparcStation 1, 2,
-     IPX etc.
-
-     With `-msupersparc' the compiler optimizes code for the SuperSparc
-     cpu, as used in the SparcStation 10, 1000 and 2000 series.  This
-     flag also enables use of the full SPARC v8 instruction set.
-
-     These options are deprecated and will be deleted in a future GCC
-     release.  They have been replaced with `-mcpu=xxx'.
-
-`-mcpu=CPU_TYPE'
-     Set the instruction set, register set, and instruction scheduling
-     parameters for machine type CPU_TYPE.  Supported values for
-     CPU_TYPE are `v7', `cypress', `v8', `supersparc', `sparclite',
-     `hypersparc', `sparclite86x', `f930', `f934', `sparclet',
-     `tsc701', `v9', and `ultrasparc'.
-
-     Default instruction scheduling parameters are used for values that
-     select an architecture and not an implementation.  These are `v7',
-     `v8', `sparclite', `sparclet', `v9'.
-
-     Here is a list of each supported architecture and their supported
-     implementations.
-
-              v7:             cypress
-              v8:             supersparc, hypersparc
-              sparclite:      f930, f934, sparclite86x
-              sparclet:       tsc701
-              v9:             ultrasparc
-
-`-mtune=CPU_TYPE'
-     Set the instruction scheduling parameters for machine type
-     CPU_TYPE, but do not set the instruction set or register set that
-     the option `-mcpu=CPU_TYPE' would.
-
-     The same values for `-mcpu=CPU_TYPE' can be used for
-     `-mtune=CPU_TYPE', but the only useful values are those that
-     select a particular cpu implementation.  Those are `cypress',
-     `supersparc', `hypersparc', `f930', `f934', `sparclite86x',
-     `tsc701', and `ultrasparc'.
-
-
-   These `-m' switches are supported in addition to the above on the
-SPARCLET processor.
-
-`-mlittle-endian'
-     Generate code for a processor running in little-endian mode.
-
-`-mlive-g0'
-     Treat register `%g0' as a normal register.  GCC will continue to
-     clobber it as necessary but will not assume it always reads as 0.
-
-`-mbroken-saverestore'
-     Generate code that does not use non-trivial forms of the `save' and
-     `restore' instructions.  Early versions of the SPARCLET processor
-     do not correctly handle `save' and `restore' instructions used with
-     arguments.  They correctly handle them used without arguments.  A
-     `save' instruction used without arguments increments the current
-     window pointer but does not allocate a new stack frame.  It is
-     assumed that the window overflow trap handler will properly handle
-     this case as will interrupt handlers.
-
-   These `-m' switches are supported in addition to the above on SPARC
-V9 processors in 64-bit environments.
-
-`-mlittle-endian'
-     Generate code for a processor running in little-endian mode.
-
-`-m32'
-`-m64'
-     Generate code for a 32-bit or 64-bit environment.  The 32-bit
-     environment sets int, long and pointer to 32 bits.  The 64-bit
-     environment sets int to 32 bits and long and pointer to 64 bits.
-
-`-mcmodel=medlow'
-     Generate code for the Medium/Low code model: the program must be
-     linked in the low 32 bits of the address space.  Pointers are 64
-     bits.  Programs can be statically or dynamically linked.
-
-`-mcmodel=medmid'
-     Generate code for the Medium/Middle code model: the program must
-     be linked in the low 44 bits of the address space, the text
-     segment must be less than 2G bytes, and data segment must be
-     within 2G of the text segment.  Pointers are 64 bits.
-
-`-mcmodel=medany'
-     Generate code for the Medium/Anywhere code model: the program may
-     be linked anywhere in the address space, the text segment must be
-     less than 2G bytes, and data segment must be within 2G of the text
-     segment.  Pointers are 64 bits.
-
-`-mcmodel=embmedany'
-     Generate code for the Medium/Anywhere code model for embedded
-     systems: assume a 32-bit text and a 32-bit data segment, both
-     starting anywhere (determined at link time).  Register %g4 points
-     to the base of the data segment.  Pointers are still 64 bits.
-     Programs are statically linked, PIC is not supported.
-
-`-mstack-bias'
-`-mno-stack-bias'
-     With `-mstack-bias', GCC assumes that the stack pointer, and frame
-     pointer if present, are offset by -2047 which must be added back
-     when making stack frame references.  Otherwise, assume no such
-     offset is present.
-
-\1f
-File: gcc.info,  Node: Convex Options,  Next: AMD29K Options,  Prev: SPARC Options,  Up: Submodel Options
-
-Convex Options
---------------
-
-   These `-m' options are defined for Convex:
-
-`-mc1'
-     Generate output for C1.  The code will run on any Convex machine.
-     The preprocessor symbol `__convex__c1__' is defined.
-
-`-mc2'
-     Generate output for C2.  Uses instructions not available on C1.
-     Scheduling and other optimizations are chosen for max performance
-     on C2.  The preprocessor symbol `__convex_c2__' is defined.
-
-`-mc32'
-     Generate output for C32xx.  Uses instructions not available on C1.
-     Scheduling and other optimizations are chosen for max performance
-     on C32.  The preprocessor symbol `__convex_c32__' is defined.
-
-`-mc34'
-     Generate output for C34xx.  Uses instructions not available on C1.
-     Scheduling and other optimizations are chosen for max performance
-     on C34.  The preprocessor symbol `__convex_c34__' is defined.
-
-`-mc38'
-     Generate output for C38xx.  Uses instructions not available on C1.
-     Scheduling and other optimizations are chosen for max performance
-     on C38.  The preprocessor symbol `__convex_c38__' is defined.
-
-`-margcount'
-     Generate code which puts an argument count in the word preceding
-     each argument list.  This is compatible with regular CC, and a few
-     programs may need the argument count word.  GDB and other
-     source-level debuggers do not need it; this info is in the symbol
-     table.
-
-`-mnoargcount'
-     Omit the argument count word.  This is the default.
-
-`-mvolatile-cache'
-     Allow volatile references to be cached.  This is the default.
-
-`-mvolatile-nocache'
-     Volatile references bypass the data cache, going all the way to
-     memory.  This is only needed for multi-processor code that does
-     not use standard synchronization instructions.  Making
-     non-volatile references to volatile locations will not necessarily
-     work.
-
-`-mlong32'
-     Type long is 32 bits, the same as type int.  This is the default.
-
-`-mlong64'
-     Type long is 64 bits, the same as type long long.  This option is
-     useless, because no library support exists for it.
-
-\1f
-File: gcc.info,  Node: AMD29K Options,  Next: ARM Options,  Prev: Convex Options,  Up: Submodel Options
-
-AMD29K Options
---------------
-
-   These `-m' options are defined for the AMD Am29000:
-
-`-mdw'
-     Generate code that assumes the `DW' bit is set, i.e., that byte and
-     halfword operations are directly supported by the hardware.  This
-     is the default.
-
-`-mndw'
-     Generate code that assumes the `DW' bit is not set.
-
-`-mbw'
-     Generate code that assumes the system supports byte and halfword
-     write operations.  This is the default.
-
-`-mnbw'
-     Generate code that assumes the systems does not support byte and
-     halfword write operations.  `-mnbw' implies `-mndw'.
-
-`-msmall'
-     Use a small memory model that assumes that all function addresses
-     are either within a single 256 KB segment or at an absolute
-     address of less than 256k.  This allows the `call' instruction to
-     be used instead of a `const', `consth', `calli' sequence.
-
-`-mnormal'
-     Use the normal memory model: Generate `call' instructions only when
-     calling functions in the same file and `calli' instructions
-     otherwise.  This works if each file occupies less than 256 KB but
-     allows the entire executable to be larger than 256 KB.  This is
-     the default.
-
-`-mlarge'
-     Always use `calli' instructions.  Specify this option if you expect
-     a single file to compile into more than 256 KB of code.
-
-`-m29050'
-     Generate code for the Am29050.
-
-`-m29000'
-     Generate code for the Am29000.  This is the default.
-
-`-mkernel-registers'
-     Generate references to registers `gr64-gr95' instead of to
-     registers `gr96-gr127'.  This option can be used when compiling
-     kernel code that wants a set of global registers disjoint from
-     that used by user-mode code.
-
-     Note that when this option is used, register names in `-f' flags
-     must use the normal, user-mode, names.
-
-`-muser-registers'
-     Use the normal set of global registers, `gr96-gr127'.  This is the
-     default.
-
-`-mstack-check'
-`-mno-stack-check'
-     Insert (or do not insert) a call to `__msp_check' after each stack
-     adjustment.  This is often used for kernel code.
-
-`-mstorem-bug'
-`-mno-storem-bug'
-     `-mstorem-bug' handles 29k processors which cannot handle the
-     separation of a mtsrim insn and a storem instruction (most 29000
-     chips to date, but not the 29050).
-
-`-mno-reuse-arg-regs'
-`-mreuse-arg-regs'
-     `-mno-reuse-arg-regs' tells the compiler to only use incoming
-     argument registers for copying out arguments.  This helps detect
-     calling a function with fewer arguments than it was declared with.
-
-`-mno-impure-text'
-`-mimpure-text'
-     `-mimpure-text', used in addition to `-shared', tells the compiler
-     to not pass `-assert pure-text' to the linker when linking a
-     shared object.
-
-`-msoft-float'
-     Generate output containing library calls for floating point.
-     *Warning:* the requisite libraries are not part of GCC.  Normally
-     the facilities of the machine's usual C compiler are used, but
-     this can't be done directly in cross-compilation.  You must make
-     your own arrangements to provide suitable library functions for
-     cross-compilation.
-
-`-mno-multm'
-     Do not generate multm or multmu instructions.  This is useful for
-     some embedded systems which do not have trap handlers for these
-     instructions.
-