]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - ld/ld.info
Imported binutils-2.20
[msp430-binutils.git] / ld / ld.info
index 28646e94c7eb756568315f3b171a08ded76dff82..6022958a842961afa53ac58f5beb7c6e461ed730 100644 (file)
@@ -4,13 +4,14 @@ START-INFO-DIR-ENTRY
 * Ld: (ld).                       The GNU linker.
 END-INFO-DIR-ENTRY
 
-   This file documents the GNU linker LD (GNU Binutils) version 2.17.90.
+   This file documents the GNU linker LD (GNU Binutils) version 2.20.
 
    Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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
+under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
 Texts.  A copy of the license is included in the section entitled "GNU
@@ -22,11 +23,11 @@ File: ld.info,  Node: Top,  Next: Overview,  Up: (dir)
 LD
 **
 
-This file documents the GNU linker ld (GNU Binutils) version 2.17.90.
+This file documents the GNU linker ld (GNU Binutils) version 2.20.
 
    This document is distributed under the terms of the GNU Free
-Documentation License.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
+Documentation License version 1.3.  A copy of the license is included
+in the section entitled "GNU Free Documentation License".
 
 * Menu:
 
@@ -130,9 +131,11 @@ augments the main linker script used for the link (either the default
 linker script or the one specified by using `-T').  This feature
 permits the linker to link against a file which appears to be an object
 or an archive, but actually merely defines some symbol values, or uses
-`INPUT' or `GROUP' to load other objects.  Note that specifying a
-script in this way merely augments the main linker script; use the `-T'
-option to replace the default linker script entirely.  *Note Scripts::.
+`INPUT' or `GROUP' to load other objects.  Specifying a script in this
+way merely augments the main linker script, with the extra commands
+placed after the main script; use the `-T' option to replace the
+default linker script entirely, but note the effect of the `INSERT'
+command.  *Note Scripts::.
 
    For options whose names are a single letter, option arguments must
 either follow the option letter without intervening whitespace, or be
@@ -158,10 +161,17 @@ driver (e.g. `gcc') then all the linker command line options should be
 prefixed by `-Wl,' (or whatever is appropriate for the particular
 compiler driver) like this:
 
-       gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup
+       gcc -Wl,--start-group foo.o bar.o -Wl,--end-group
 
    This is important, because otherwise the compiler driver program may
-silently drop the linker options, resulting in a bad link.
+silently drop the linker options, resulting in a bad link.  Confusion
+may also arise when passing options that require values through a
+driver, as the use of a space between option and argument acts as a
+separator, and causes the driver to pass only the option to the linker
+and the argument to the compiler.  In this case, it is simplest to use
+the joined forms of both single- and multiple-letter options, such as:
+
+       gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map
 
    Here is a table of the generic command line switches accepted by the
 GNU linker:
@@ -180,14 +190,14 @@ GNU linker:
      additional @FILE options; any such options will be processed
      recursively.
 
-`-aKEYWORD'
+`-a KEYWORD'
      This option is supported for HP/UX compatibility.  The KEYWORD
      argument must be one of the strings `archive', `shared', or
      `default'.  `-aarchive' is functionally equivalent to `-Bstatic',
      and the other two keywords are functionally equivalent to
      `-Bdynamic'.  This option may be used any number of times.
 
-`-AARCHITECTURE'
+`-A ARCHITECTURE'
 `--architecture=ARCHITECTURE'
      In the current release of `ld', this option is useful only for the
      Intel 960 family of architectures.  In that `ld' configuration, the
@@ -254,7 +264,7 @@ GNU linker:
 
 `--exclude-libs LIB,LIB,...'
      Specifies a list of archive libraries from which symbols should
-     not be automatically exported. The library names may be delimited
+     not be automatically exported.  The library names may be delimited
      by commas or colons.  Specifying `--exclude-libs ALL' excludes
      symbols in all archive libraries from automatic export.  This
      option is available only for the i386 PE targeted port of the
@@ -263,15 +273,32 @@ GNU linker:
      this option.  For ELF targeted ports, symbols affected by this
      option will be treated as hidden.
 
+`--exclude-modules-for-implib MODULE,MODULE,...'
+     Specifies a list of object files or archive members, from which
+     symbols should not be automatically exported, but which should be
+     copied wholesale into the import library being generated during
+     the link.  The module names may be delimited by commas or colons,
+     and must match exactly the filenames used by `ld' to open the
+     files; for archive members, this is simply the member name, but
+     for object files the name listed must include and match precisely
+     any path used to specify the input file on the linker's
+     command-line.  This option is available only for the i386 PE
+     targeted port of the linker.  Symbols explicitly listed in a .def
+     file are still exported, regardless of this option.
+
 `-E'
 `--export-dynamic'
-     When creating a dynamically linked executable, add all symbols to
-     the dynamic symbol table.  The dynamic symbol table is the set of
-     symbols which are visible from dynamic objects at run time.
-
-     If you do not use this option, the dynamic symbol table will
-     normally contain only those symbols which are referenced by some
-     dynamic object mentioned in the link.
+`--no-export-dynamic'
+     When creating a dynamically linked executable, using the `-E'
+     option or the `--export-dynamic' option causes the linker to add
+     all symbols to the dynamic symbol table.  The dynamic symbol table
+     is the set of symbols which are visible from dynamic objects at
+     run time.
+
+     If you do not use either of these options (or use the
+     `--no-export-dynamic' option to restore the default behavior), the
+     dynamic symbol table will normally contain only those symbols
+     which are referenced by some dynamic object mentioned in the link.
 
      If you use `dlopen' to load a dynamic object which needs to refer
      back to the symbols defined by the program, rather than some other
@@ -282,6 +309,10 @@ GNU linker:
      be added to the dynamic symbol table if the output format supports
      it.  See the description of `--dynamic-list'.
 
+     Note that this option is specific to ELF targeted ports.  PE
+     targets support a similar function to export all symbols from a
+     DLL or EXE; see the description of `--export-all-symbols' below.
+
 `-EB'
      Link big-endian objects.  This affects the default output format.
 
@@ -289,8 +320,8 @@ GNU linker:
      Link little-endian objects.  This affects the default output
      format.
 
-`-f'
-`--auxiliary NAME'
+`-f NAME'
+`--auxiliary=NAME'
      When creating an ELF shared object, set the internal DT_AUXILIARY
      field to the specified name.  This tells the dynamic linker that
      the symbol table of the shared object should be used as an
@@ -311,7 +342,7 @@ GNU linker:
      command line.
 
 `-F NAME'
-`--filter NAME'
+`--filter=NAME'
      When creating an ELF shared object, set the internal DT_FILTER
      field to the specified name.  This tells the dynamic linker that
      the symbol table of the shared object which is being created
@@ -334,7 +365,7 @@ GNU linker:
      environment variable.  The GNU linker will ignore the `-F' option
      when not creating an ELF shared object.
 
-`-fini NAME'
+`-fini=NAME'
      When creating an ELF executable or shared object, call NAME when
      the executable or shared object is unloaded, by setting DT_FINI to
      the address of the function.  By default, the linker uses `_fini'
@@ -343,7 +374,7 @@ GNU linker:
 `-g'
      Ignored.  Provided for compatibility with other tools.
 
-`-GVALUE'
+`-G VALUE'
 `--gpsize=VALUE'
      Set the maximum size of objects to be optimized using the GP
      register to SIZE.  This is only meaningful for object file formats
@@ -351,7 +382,7 @@ GNU linker:
      into different sections.  This is ignored for other object file
      formats.
 
-`-hNAME'
+`-h NAME'
 `-soname=NAME'
      When creating an ELF shared object, set the internal DT_SONAME
      field to the specified name.  When an executable is linked with a
@@ -363,18 +394,18 @@ GNU linker:
 `-i'
      Perform an incremental link (same as option `-r').
 
-`-init NAME'
+`-init=NAME'
      When creating an ELF executable or shared object, call NAME when
      the executable or shared object is loaded, by setting DT_INIT to
      the address of the function.  By default, the linker uses `_init'
      as the function to call.
 
-`-lNAMESPEC'
+`-l NAMESPEC'
 `--library=NAMESPEC'
      Add the archive or object file specified by NAMESPEC to the list
      of files to link.  This option may be used any number of times.
      If NAMESPEC is of the form `:FILENAME', `ld' will search the
-     library path for a file called FILENAME, otherise it will search
+     library path for a file called FILENAME, otherwise it will search
      the library path for a file called `libNAMESPEC.a'.
 
      On systems which support shared libraries, `ld' may also search for
@@ -402,7 +433,7 @@ GNU linker:
      However, if you are using `ld' on AIX, note that it is different
      from the behaviour of the AIX linker.
 
-`-LSEARCHDIR'
+`-L SEARCHDIR'
 `--library-path=SEARCHDIR'
      Add path SEARCHDIR to the list of paths that `ld' will search for
      archive libraries and `ld' control scripts.  You may use this
@@ -410,7 +441,9 @@ GNU linker:
      order in which they are specified on the command line.
      Directories specified on the command line are searched before the
      default directories.  All `-L' options apply to all `-l' options,
-     regardless of the order in which the options appear.
+     regardless of the order in which the options appear.  `-L' options
+     do not affect how `ld' searches for a linker script unless `-T'
+     option is specified.
 
      If SEARCHDIR begins with `=', then the `=' will be replaced by the
      "sysroot prefix", a path specified when the linker is configured.
@@ -424,7 +457,7 @@ GNU linker:
      at the point in which the linker script appears in the command
      line.
 
-`-mEMULATION'
+`-m EMULATION'
      Emulate the EMULATION linker.  You can list the available
      emulations with the `--verbose' or `-V' options.
 
@@ -761,11 +794,13 @@ GNU linker:
      mentioned on the command line after the `--as-needed' option.
      Normally, the linker will add a DT_NEEDED tag for each dynamic
      library mentioned on the command line, regardless of whether the
-     library is actually needed.  `--as-needed' causes DT_NEEDED tags
-     to only be emitted for libraries that satisfy some symbol
-     reference from regular objects which is undefined at the point
-     that the library was linked.  `--no-as-needed' restores the
-     default behaviour.
+     library is actually needed.  `--as-needed' causes a DT_NEEDED tag
+     to only be emitted for a library that satisfies a symbol reference
+     from regular objects which is undefined at the point that the
+     library was linked, or, if the library is not found in the
+     DT_NEEDED lists of other libraries linked up to that point, a
+     reference from another dynamic library.  `--no-as-needed' restores
+     the default behaviour.
 
 `--add-needed'
 `--no-add-needed'
@@ -857,7 +892,9 @@ GNU linker:
      will produce suitable error messages.  The linker does know about,
      and does make allowances for sections in overlays.  The default
      behaviour can be restored by using the command line switch
-     `--check-sections'.
+     `--check-sections'.  Section overlap is not usually checked for
+     relocatable links.  You can force checking in that case by using
+     the `--check-sections' option.
 
 `--cref'
      Output a cross reference table.  If a linker map file is being
@@ -887,7 +924,7 @@ GNU linker:
      duplicate when there are many dynamic modules with specialized
      search paths for runtime symbol resolution.
 
-`--defsym SYMBOL=EXPRESSION'
+`--defsym=SYMBOL=EXPRESSION'
      Create a global symbol in the output file, containing the absolute
      address given by EXPRESSION.  You may use this option as many
      times as necessary to define multiple symbols in the command line.
@@ -913,14 +950,17 @@ GNU linker:
      default unless the environment variable `COLLECT_NO_DEMANGLE' is
      set.  These options may be used to override the default.
 
-`--dynamic-linker FILE'
+`-IFILE'
+`--dynamic-linker=FILE'
      Set the name of the dynamic linker.  This is only meaningful when
      generating dynamically linked ELF executables.  The default dynamic
      linker is normally correct; don't use this unless you know what
      you are doing.
 
 `--fatal-warnings'
-     Treat all warnings as errors.
+`--no-fatal-warnings'
+     Treat all warnings as errors.  The default behaviour can be
+     restored with the option `--no-fatal-warnings'.
 
 `--force-exe-suffix'
      Make sure that an output file has a .exe suffix.
@@ -935,11 +975,25 @@ GNU linker:
 `--gc-sections'
 `--no-gc-sections'
      Enable garbage collection of unused input sections.  It is ignored
-     on targets that do not support this option.  This option is not
-     compatible with `-r' or `--emit-relocs'. The default behaviour (of
-     not performing this garbage collection) can be restored by
+     on targets that do not support this option.  The default behaviour
+     (of not performing this garbage collection) can be restored by
      specifying `--no-gc-sections' on the command line.
 
+     `--gc-sections' decides which input sections are used by examining
+     symbols and relocations.  The section containing the entry symbol
+     and all sections containing symbols undefined on the command-line
+     will be kept, as will sections containing symbols referenced by
+     dynamic objects.  Note that when building shared libraries, the
+     linker must assume that any visible symbol is referenced.  Once
+     this initial set of sections has been determined, the linker
+     recursively marks as used any section referenced by their
+     relocations.  See `--entry' and `--undefined'.
+
+     This option can be set when doing a partial link (enabled with
+     option `-r').  In this case the root of symbols kept must be
+     explicitely specified either by an `--entry' or `--undefined'
+     option or by a `ENTRY' command in the linker script.
+
 `--print-gc-sections'
 `--no-print-gc-sections'
      List all sections removed by garbage collection.  The listing is
@@ -957,7 +1011,7 @@ GNU linker:
      Print a summary of all target specific options on the standard
      output and exit.
 
-`-Map MAPFILE'
+`-Map=MAPFILE'
      Print a link map to the file MAPFILE.  See the description of the
      `-M' option, above.
 
@@ -984,22 +1038,31 @@ GNU linker:
 
 `--allow-shlib-undefined'
 `--no-allow-shlib-undefined'
-     Allows (the default) or disallows undefined symbols in shared
-     libraries.  This switch is similar to `--no-undefined' except that
-     it determines the behaviour when the undefined symbols are in a
-     shared library rather than a regular object file.  It does not
-     affect how undefined symbols in regular object files are handled.
-
-     The reason that `--allow-shlib-undefined' is the default is that
-     the shared library being specified at link time may not be the
-     same as the one that is available at load time, so the symbols
-     might actually be resolvable at load time.  Plus there are some
-     systems, (eg BeOS) where undefined symbols in shared libraries is
-     normal.  (The kernel patches them at load time to select which
-     function is most appropriate for the current architecture.  This
-     is used for example to dynamically select an appropriate memset
-     function).  Apparently it is also normal for HPPA shared libraries
-     to have undefined symbols.
+     Allows or disallows undefined symbols in shared libraries.  This
+     switch is similar to `--no-undefined' except that it determines
+     the behaviour when the undefined symbols are in a shared library
+     rather than a regular object file.  It does not affect how
+     undefined symbols in regular object files are handled.
+
+     The default behaviour is to report errors for any undefined symbols
+     referenced in shared libraries if the linker is being used to
+     create an executable, but to allow them if the linker is being
+     used to create a shared library.
+
+     The reasons for allowing undefined symbol references in shared
+     libraries specified at link time are that:
+
+        * A shared library specified at link time may not be the same
+          as the one that is available at load time, so the symbol
+          might actually be resolvable at load time.
+
+        * There are some operating systems, eg BeOS and HPPA, where
+          undefined symbols in shared libraries are normal.
+
+          The BeOS kernel for example patches shared libraries at load
+          time to select whichever function is most appropriate for the
+          current architecture.  This is used, for example, to
+          dynamically select an appropriate memset function.
 
 `--no-undefined-version'
      Normally when a symbol has an undefined version, the linker will
@@ -1043,7 +1106,7 @@ GNU linker:
      (including linker scripts specified on the command line) are
      ignored.
 
-`--oformat OUTPUT-FORMAT'
+`--oformat=OUTPUT-FORMAT'
      `ld' may be configured to support more than one kind of object
      file.  If your `ld' is configured this way, you can use the
      `--oformat' option to specify the binary format for the output
@@ -1093,7 +1156,7 @@ GNU linker:
      On platforms where this is not supported, `--relax' is accepted,
      but ignored.
 
-`--retain-symbols-file FILENAME'
+`--retain-symbols-file=FILENAME'
      Retain _only_ the symbols listed in the file FILENAME, discarding
      all others.  FILENAME is simply a flat file, with one symbol name
      per line.  This option is especially useful in environments (such
@@ -1106,7 +1169,7 @@ GNU linker:
      You may only specify `--retain-symbols-file' once in the command
      line.  It overrides `-s' and `-S'.
 
-`-rpath DIR'
+`-rpath=DIR'
      Add a directory to the runtime library search path.  This is used
      when linking an ELF executable with shared objects.  All `-rpath'
      arguments are concatenated and passed to the runtime linker, which
@@ -1129,7 +1192,7 @@ GNU linker:
      followed by a directory name, rather than a file name, it is
      treated as the `-rpath' option.
 
-`-rpath-link DIR'
+`-rpath-link=DIR'
      When using ELF or SunOS, one shared library may require another.
      This happens when an `ld -shared' link includes a shared library
      as one of the input files.
@@ -1160,15 +1223,15 @@ GNU linker:
           only supported by native linkers and cross linkers which have
           been configured with the `--with-sysroot' option.
 
-       3. On an ELF system, if the `-rpath' and `rpath-link' options
-          were not used, search the contents of the environment variable
-          `LD_RUN_PATH'. It is for the native linker only.
+       3. On an ELF system, for native linkers, if the `-rpath' and
+          `-rpath-link' options were not used, search the contents of
+          the environment variable `LD_RUN_PATH'.
 
        4. On SunOS, if the `-rpath' option was not used, search any
           directories specified using `-L' options.
 
-       5. For a native linker, the contents of the environment variable
-          `LD_LIBRARY_PATH'.
+       5. For a native linker, the search the contents of the
+          environment variable `LD_LIBRARY_PATH'.
 
        6. For a native ELF linker, the directories in `DT_RUNPATH' or
           `DT_RPATH' of a shared library are searched for shared
@@ -1192,26 +1255,30 @@ GNU linker:
      used and there are undefined symbols in the link.
 
 `--sort-common'
-     This option tells `ld' to sort the common symbols by size when it
-     places them in the appropriate output sections.  First come all
-     the one byte symbols, then all the two byte, then all the four
-     byte, and then everything else.  This is to prevent gaps between
-     symbols due to alignment constraints.
-
-`--sort-section name'
+`--sort-common=ascending'
+`--sort-common=descending'
+     This option tells `ld' to sort the common symbols by alignment in
+     ascending or descending order when it places them in the
+     appropriate output sections.  The symbol alignments considered are
+     sixteen-byte or larger, eight-byte, four-byte, two-byte, and
+     one-byte. This is to prevent gaps between symbols due to alignment
+     constraints.  If no sorting order is specified, then descending
+     order is assumed.
+
+`--sort-section=name'
      This option will apply `SORT_BY_NAME' to all wildcard section
      patterns in the linker script.
 
-`--sort-section alignment'
+`--sort-section=alignment'
      This option will apply `SORT_BY_ALIGNMENT' to all wildcard section
      patterns in the linker script.
 
-`--split-by-file [SIZE]'
+`--split-by-file[=SIZE]'
      Similar to `--split-by-reloc' but creates a new output section for
      each input file when SIZE is reached.  SIZE defaults to a size of
      1 if not given.
 
-`--split-by-reloc [COUNT]'
+`--split-by-reloc[=COUNT]'
      Tries to creates extra sections in the output file so that no
      single output section in the file contains more than COUNT
      relocations.  This is useful when generating huge relocatable
@@ -1245,7 +1312,7 @@ GNU linker:
      program (`gdb' has no trouble).  The `--traditional-format' switch
      tells `ld' to not combine duplicate entries.
 
-`--section-start SECTIONNAME=ORG'
+`--section-start=SECTIONNAME=ORG'
      Locate a section in the output file at the absolute address given
      by ORG.  You may use this option as many times as necessary to
      locate multiple sections in the command line.  ORG must be a
@@ -1254,12 +1321,16 @@ GNU linker:
      values.  _Note:_ there should be no white space between
      SECTIONNAME, the equals sign ("<=>"), and ORG.
 
-`-Tbss ORG'
-`-Tdata ORG'
-`-Ttext ORG'
-     Same as -section-start, with `.bss', `.data' or `.text' as the
+`-Tbss=ORG'
+`-Tdata=ORG'
+`-Ttext=ORG'
+     Same as `--section-start', with `.bss', `.data' or `.text' as the
      SECTIONNAME.
 
+`-Ttext-segment=ORG'
+     When creating an ELF executable or shared object, it will set the
+     address of the first byte of the text segment.
+
 `--unresolved-symbols=METHOD'
      Determine how to handle unresolved symbols.  There are four
      possible values for `method':
@@ -1299,8 +1370,12 @@ GNU linker:
      Specify the name of a version script to the linker.  This is
      typically used when creating shared libraries to specify
      additional information about the version hierarchy for the library
-     being created.  This option is only meaningful on ELF platforms
-     which support shared libraries.  *Note VERSION::.
+     being created.  This option is only fully supported on ELF
+     platforms which support shared libraries; see *Note VERSION::.  It
+     is partially supported on PE platforms, which can use version
+     scripts to filter symbol visibility in auto-export mode: any
+     symbols marked `local' in the version script will not be exported.
+     *Note WIN32::.
 
 `--warn-common'
      Warn when a common symbol is combined with another common symbol
@@ -1403,6 +1478,9 @@ GNU linker:
 `--warn-shared-textrel'
      Warn if the linker adds a DT_TEXTREL to a shared object.
 
+`--warn-alternate-em'
+     Warn if an object has alternate ELF machine code.
+
 `--warn-unresolved-symbols'
      If the linker is going to report an unresolved symbol (see the
      option `--unresolved-symbols') it will normally generate an error.
@@ -1426,7 +1504,7 @@ GNU linker:
      list of archives, because gcc will add its own list of archives to
      your link and you may not want this flag to affect those as well.
 
-`--wrap SYMBOL'
+`--wrap=SYMBOL'
      Use a wrapper function for SYMBOL.  Any undefined reference to
      SYMBOL will be resolved to `__wrap_SYMBOL'.  Any undefined
      reference to `__real_SYMBOL' will be resolved to SYMBOL.
@@ -1549,6 +1627,28 @@ by either a space or an equals sign.
      `-shared' or specify a `LIBRARY' in a given `.def' file.  [This
      option is specific to the i386 PE targeted port of the linker]
 
+`--enable-long-section-names'
+`--disable-long-section-names'
+     The PE variants of the Coff object format add an extension that
+     permits the use of section names longer than eight characters, the
+     normal limit for Coff.  By default, these names are only allowed
+     in object files, as fully-linked executable images do not carry
+     the Coff string table required to support the longer names.  As a
+     GNU extension, it is possible to allow their use in executable
+     images as well, or to (probably pointlessly!)  disallow it in
+     object files, by using these two options.  Executable images
+     generated with these long section names are slightly non-standard,
+     carrying as they do a string table, and may generate confusing
+     output when examined with non-GNU PE-aware tools, such as file
+     viewers and dumpers.  However, GDB relies on the use of PE long
+     section names to find Dwarf-2 debug information sections in an
+     executable image at runtime, and so if neither option is specified
+     on the command-line, `ld' will enable long section names,
+     overriding the default and technically correct behaviour, when it
+     finds the presence of debug information while linking an executable
+     image and not stripping symbols.  [This option is valid for all PE
+     targeted ports of the linker]
+
 `--enable-stdcall-fixup'
 `--disable-stdcall-fixup'
      If the link finds a symbol that it cannot resolve, it will attempt
@@ -1709,6 +1809,12 @@ by either a space or an equals sign.
      image file to be made writable. This does not conform to the
      PE-COFF format specification published by Microsoft.
 
+     Note - use of the 'auto-import' extension will also cause read only
+     data which would normally be placed into the .rdata section to be
+     placed into the .data section instead.  This is in order to work
+     around a problem with consts that is described here:
+     http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
+
      Using 'auto-import' generally will 'just work' - but sometimes you
      may see this message:
 
@@ -1860,6 +1966,38 @@ by either a space or an equals sign.
      also.  Numeric values are also accepted for WHICH.  [This option
      is specific to the i386 PE targeted port of the linker]
 
+     The following options set flags in the `DllCharacteristics' field
+     of the PE file header: [These options are specific to PE targeted
+     ports of the linker]
+
+`--dynamicbase'
+     The image base address may be relocated using address space layout
+     randomization (ASLR).  This feature was introduced with MS Windows
+     Vista for i386 PE targets.
+
+`--forceinteg'
+     Code integrity checks are enforced.
+
+`--nxcompat'
+     The image is compatible with the Data Execution Prevention.  This
+     feature was introduced with MS Windows XP SP2 for i386 PE targets.
+
+`--no-isolation'
+     Although the image understands isolation, do not isolate the image.
+
+`--no-seh'
+     The image does not use SEH. No SE handler may be called from this
+     image.
+
+`--no-bind'
+     Do not bind this image.
+
+`--wdmdriver'
+     The driver uses the MS Windows Driver Model.
+
+`--tsaware'
+     The image is Terminal Server aware.
+
 
 2.1.2 Options specific to Motorola 68HC11 and 68HC12 targets
 ------------------------------------------------------------
@@ -1880,6 +2018,18 @@ memory bank switching mapping and trampoline code generation.
      to compute paging and addresses within the memory window.
 
 
+2.1.3 Options specific to Motorola 68K target
+---------------------------------------------
+
+The following options are supported to control handling of GOT
+generation when linking for 68K targets.
+
+`--got=TYPE'
+     This option tells the linker which GOT generation scheme to use.
+     TYPE should be one of `single', `negative', `multigot' or
+     `target'.  For more information refer to the Info entry for `ld'.
+
+
 \1f
 File: ld.info,  Node: Environment,  Prev: Options,  Up: Invocation
 
@@ -2120,6 +2270,7 @@ In this section we describe the simple linker script commands.
 
 * Format Commands::            Commands dealing with object file formats
 
+* REGION_ALIAS::               Assign alias names to memory regions
 * Miscellaneous Commands::     Other linker script commands
 
 \1f
@@ -2160,6 +2311,9 @@ Several linker script commands deal with files.
      specified with the `-L' option.  You can nest calls to `INCLUDE'
      up to 10 levels deep.
 
+     You can place `INCLUDE' directives at the top level, in `MEMORY' or
+     `SECTIONS' commands, or in output section descriptions.
+
 `INPUT(FILE, FILE, ...)'
 `INPUT(FILE FILE ...)'
      The `INPUT' command directs the linker to include the named files
@@ -2232,7 +2386,7 @@ Several linker script commands deal with files.
      start of the first file.
 
 \1f
-File: ld.info,  Node: Format Commands,  Next: Miscellaneous Commands,  Prev: File Commands,  Up: Simple Commands
+File: ld.info,  Node: Format Commands,  Next: REGION_ALIAS,  Prev: File Commands,  Up: Simple Commands
 
 3.4.3 Commands Dealing with Object File Formats
 -----------------------------------------------
@@ -2274,9 +2428,150 @@ A couple of linker script commands deal with object file formats.
      used to set the format for the output file.  *Note BFD::.
 
 \1f
-File: ld.info,  Node: Miscellaneous Commands,  Prev: Format Commands,  Up: Simple Commands
+File: ld.info,  Node: REGION_ALIAS,  Next: Miscellaneous Commands,  Prev: Format Commands,  Up: Simple Commands
+
+3.4.4 Assign alias names to memory regions
+------------------------------------------
+
+Alias names can be added to existing memory regions created with the
+*Note MEMORY:: command.  Each name corresponds to at most one memory
+region.
+
+     REGION_ALIAS(ALIAS, REGION)
 
-3.4.4 Other Linker Script Commands
+   The `REGION_ALIAS' function creates an alias name ALIAS for the
+memory region REGION.  This allows a flexible mapping of output sections
+to memory regions.  An example follows.
+
+   Suppose we have an application for embedded systems which come with
+various memory storage devices.  All have a general purpose, volatile
+memory `RAM' that allows code execution or data storage.  Some may have
+a read-only, non-volatile memory `ROM' that allows code execution and
+read-only data access.  The last variant is a read-only, non-volatile
+memory `ROM2' with read-only data access and no code execution
+capability.  We have four output sections:
+
+   * `.text' program code;
+
+   * `.rodata' read-only data;
+
+   * `.data' read-write initialized data;
+
+   * `.bss' read-write zero initialized data.
+
+   The goal is to provide a linker command file that contains a system
+independent part defining the output sections and a system dependent
+part mapping the output sections to the memory regions available on the
+system.  Our embedded systems come with three different memory setups
+`A', `B' and `C':
+Section            Variant A          Variant B          Variant C
+.text              RAM                ROM                ROM
+.rodata            RAM                ROM                ROM2
+.data              RAM                RAM/ROM            RAM/ROM2
+.bss               RAM                RAM                RAM
+   The notation `RAM/ROM' or `RAM/ROM2' means that this section is
+loaded into region `ROM' or `ROM2' respectively.  Please note that the
+load address of the `.data' section starts in all three variants at the
+end of the `.rodata' section.
+
+   The base linker script that deals with the output sections follows.
+It includes the system dependent `linkcmds.memory' file that describes
+the memory layout:
+     INCLUDE linkcmds.memory
+
+     SECTIONS
+       {
+         .text :
+           {
+             *(.text)
+           } > REGION_TEXT
+         .rodata :
+           {
+             *(.rodata)
+             rodata_end = .;
+           } > REGION_RODATA
+         .data : AT (rodata_end)
+           {
+             data_start = .;
+             *(.data)
+           } > REGION_DATA
+         data_size = SIZEOF(.data);
+         data_load_start = LOADADDR(.data);
+         .bss :
+           {
+             *(.bss)
+           } > REGION_BSS
+       }
+
+   Now we need three different `linkcmds.memory' files to define memory
+regions and alias names.  The content of `linkcmds.memory' for the three
+variants `A', `B' and `C':
+`A'
+     Here everything goes into the `RAM'.
+          MEMORY
+            {
+              RAM : ORIGIN = 0, LENGTH = 4M
+            }
+
+          REGION_ALIAS("REGION_TEXT", RAM);
+          REGION_ALIAS("REGION_RODATA", RAM);
+          REGION_ALIAS("REGION_DATA", RAM);
+          REGION_ALIAS("REGION_BSS", RAM);
+
+`B'
+     Program code and read-only data go into the `ROM'.  Read-write
+     data goes into the `RAM'.  An image of the initialized data is
+     loaded into the `ROM' and will be copied during system start into
+     the `RAM'.
+          MEMORY
+            {
+              ROM : ORIGIN = 0, LENGTH = 3M
+              RAM : ORIGIN = 0x10000000, LENGTH = 1M
+            }
+
+          REGION_ALIAS("REGION_TEXT", ROM);
+          REGION_ALIAS("REGION_RODATA", ROM);
+          REGION_ALIAS("REGION_DATA", RAM);
+          REGION_ALIAS("REGION_BSS", RAM);
+
+`C'
+     Program code goes into the `ROM'.  Read-only data goes into the
+     `ROM2'.  Read-write data goes into the `RAM'.  An image of the
+     initialized data is loaded into the `ROM2' and will be copied
+     during system start into the `RAM'.
+          MEMORY
+            {
+              ROM : ORIGIN = 0, LENGTH = 2M
+              ROM2 : ORIGIN = 0x10000000, LENGTH = 1M
+              RAM : ORIGIN = 0x20000000, LENGTH = 1M
+            }
+
+          REGION_ALIAS("REGION_TEXT", ROM);
+          REGION_ALIAS("REGION_RODATA", ROM2);
+          REGION_ALIAS("REGION_DATA", RAM);
+          REGION_ALIAS("REGION_BSS", RAM);
+
+   It is possible to write a common system initialization routine to
+copy the `.data' section from `ROM' or `ROM2' into the `RAM' if
+necessary:
+     #include <string.h>
+
+     extern char data_start [];
+     extern char data_size [];
+     extern char data_load_start [];
+
+     void copy_data(void)
+     {
+       if (data_start != data_load_start)
+         {
+           memcpy(data_start, data_load_start, (size_t) data_size);
+         }
+     }
+
+\1f
+File: ld.info,  Node: Miscellaneous Commands,  Prev: REGION_ALIAS,  Up: Simple Commands
+
+3.4.5 Other Linker Script Commands
 ----------------------------------
 
 There are a few other linker scripts commands.
@@ -2302,6 +2597,32 @@ There are a few other linker scripts commands.
      command-line option: to make `ld' omit the assignment of addresses
      to common symbols even for a non-relocatable output file.
 
+`INSERT [ AFTER | BEFORE ] OUTPUT_SECTION'
+     This command is typically used in a script specified by `-T' to
+     augment the default `SECTIONS' with, for example, overlays.  It
+     inserts all prior linker script statements after (or before)
+     OUTPUT_SECTION, and also causes `-T' to not override the default
+     linker script.  The exact insertion point is as for orphan
+     sections.  *Note Location Counter::.  The insertion happens after
+     the linker has mapped input sections to output sections.  Prior to
+     the insertion, since `-T' scripts are parsed before the default
+     linker script, statements in the `-T' script occur before the
+     default linker script statements in the internal linker
+     representation of the script.  In particular, input section
+     assignments will be made to `-T' output sections before those in
+     the default script.  Here is an example of how a `-T' script using
+     `INSERT' might look:
+
+          SECTIONS
+          {
+            OVERLAY :
+            {
+              .ov1 { ov1*(.text) }
+              .ov2 { ov2*(.text) }
+            }
+          }
+          INSERT AFTER .text;
+
 `NOCROSSREFS(SECTION SECTION ...)'
      This command may be used to tell `ld' to issue an error about any
      references among certain output sections.
@@ -2591,7 +2912,10 @@ File: ld.info,  Node: Output Section Description,  Next: Output Section Name,  U
 
 The full description of an output section looks like this:
      SECTION [ADDRESS] [(TYPE)] :
-       [AT(LMA)] [ALIGN(SECTION_ALIGN)] [SUBALIGN(SUBSECTION_ALIGN)]
+       [AT(LMA)]
+       [ALIGN(SECTION_ALIGN)]
+       [SUBALIGN(SUBSECTION_ALIGN)]
+       [CONSTRAINT]
        {
          OUTPUT-SECTION-COMMAND
          OUTPUT-SECTION-COMMAND
@@ -2671,7 +2995,8 @@ do something like this:
 aligned upward to the specified value.
 
    Specifying ADDRESS for a section will change the value of the
-location counter.
+location counter, provided that the section is non-empty.  (Empty
+sections are ignored).
 
 \1f
 File: ld.info,  Node: Input Section,  Next: Output Section Data,  Prev: Output Section Address,  Up: SECTIONS
@@ -2733,18 +3058,40 @@ file.  You would do this if one or more of your files contain special
 data that needs to be at a particular location in memory.  For example:
      data.o(.data)
 
+   You can also specify files within archives by writing a pattern
+matching the archive, a colon, then the pattern matching the file, with
+no whitespace around the colon.
+
+`archive:file'
+     matches file within archive
+
+`archive:'
+     matches the whole archive
+
+`:file'
+     matches file but not one in an archive
+
+   Either one or both of `archive' and `file' can contain shell
+wildcards.  On DOS based file systems, the linker will assume that a
+single letter followed by a colon is a drive specifier, so `c:myfile.o'
+is a simple file specification, not `myfile.o' within an archive called
+`c'.  `archive:file' filespecs may also be used within an
+`EXCLUDE_FILE' list, but may not appear in other linker script
+contexts.  For instance, you cannot extract a file from an archive by
+using `archive:file' in an `INPUT' command.
+
    If you use a file name without a list of sections, then all sections
 in the input file will be included in the output section.  This is not
 commonly done, but it may by useful on occasion.  For example:
      data.o
 
-   When you use a file name which does not contain any wild card
-characters, the linker will first see if you also specified the file
-name on the linker command line or in an `INPUT' command.  If you did
-not, the linker will attempt to open the file as an input file, as
-though it appeared on the command line.  Note that this differs from an
-`INPUT' command, because the linker will not search for the file in the
-archive search path.
+   When you use a file name which is not an `archive:file' specifier
+and does not contain any wild card characters, the linker will first
+see if you also specified the file name on the linker command line or
+in an `INPUT' command.  If you did not, the linker will attempt to open
+the file as an input file, as though it appeared on the command line.
+Note that this differs from an `INPUT' command, because the linker will
+not search for the file in the archive search path.
 
 \1f
 File: ld.info,  Node: Input Section Wildcards,  Next: Input Section Common,  Prev: Input Section Basics,  Up: Input Section
@@ -3105,14 +3452,19 @@ File: ld.info,  Node: Output Section Attributes,  Next: Overlay Description,  Pr
 
 We showed above that the full description of an output section looked
 like this:
+
      SECTION [ADDRESS] [(TYPE)] :
-       [AT(LMA)] [ALIGN(SECTION_ALIGN)] [SUBALIGN(SUBSECTION_ALIGN)]
+       [AT(LMA)]
+       [ALIGN(SECTION_ALIGN)]
+       [SUBALIGN(SUBSECTION_ALIGN)]
+       [CONSTRAINT]
        {
          OUTPUT-SECTION-COMMAND
          OUTPUT-SECTION-COMMAND
          ...
        } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP]
-We've already described SECTION, ADDRESS, and
+
+   We've already described SECTION, ADDRESS, and
 OUTPUT-SECTION-COMMAND.  In this section we will describe the remaining
 section attributes.
 
@@ -3122,6 +3474,7 @@ section attributes.
 * Output Section LMA::         Output section LMA
 * Forced Output Alignment::    Forced Output Alignment
 * Forced Input Alignment::     Forced Input Alignment
+* Output Section Constraint::   Output section constraint
 * Output Section Region::      Output section region
 * Output Section Phdr::                Output section phdr
 * Output Section Fill::                Output section fill
@@ -3231,7 +3584,7 @@ File: ld.info,  Node: Forced Output Alignment,  Next: Forced Input Alignment,  P
 You can increase an output section's alignment by using ALIGN.
 
 \1f
-File: ld.info,  Node: Forced Input Alignment,  Next: Output Section Region,  Prev: Forced Output Alignment,  Up: Output Section Attributes
+File: ld.info,  Node: Forced Input Alignment,  Next: Output Section Constraint,  Prev: Forced Output Alignment,  Up: Output Section Attributes
 
 3.6.8.4 Forced Input Alignment
 ..............................
@@ -3241,9 +3594,20 @@ SUBALIGN.  The value specified overrides any alignment given by input
 sections, whether larger or smaller.
 
 \1f
-File: ld.info,  Node: Output Section Region,  Next: Output Section Phdr,  Prev: Forced Input Alignment,  Up: Output Section Attributes
+File: ld.info,  Node: Output Section Constraint,  Next: Output Section Region,  Prev: Forced Input Alignment,  Up: Output Section Attributes
+
+3.6.8.5 Output Section Constraint
+.................................
+
+You can specify that an output section should only be created if all of
+its input sections are read-only or all of its input sections are
+read-write by using the keyword `ONLY_IF_RO' and `ONLY_IF_RW'
+respectively.
+
+\1f
+File: ld.info,  Node: Output Section Region,  Next: Output Section Phdr,  Prev: Output Section Constraint,  Up: Output Section Attributes
 
-3.6.8.5 Output Section Region
+3.6.8.6 Output Section Region
 .............................
 
 You can assign a section to a previously defined region of memory by
@@ -3256,7 +3620,7 @@ using `>REGION'.  *Note MEMORY::.
 \1f
 File: ld.info,  Node: Output Section Phdr,  Next: Output Section Fill,  Prev: Output Section Region,  Up: Output Section Attributes
 
-3.6.8.6 Output Section Phdr
+3.6.8.7 Output Section Phdr
 ...........................
 
 You can assign a section to a previously defined program segment by
@@ -3273,7 +3637,7 @@ segment at all.
 \1f
 File: ld.info,  Node: Output Section Fill,  Prev: Output Section Phdr,  Up: Output Section Attributes
 
-3.6.8.7 Output Section Fill
+3.6.8.8 Output Section Fill
 ...........................
 
 You can set the fill pattern for an entire section by using `=FILLEXP'.
@@ -3424,7 +3788,9 @@ wish.  The syntax is:
 The region name has no meaning outside of the linker script.  Region
 names are stored in a separate name space, and will not conflict with
 symbol names, file names, or section names.  Each memory region must
-have a distinct name.
+have a distinct name within the `MEMORY' command.  However you can add
+later alias names to existing memory regions with the *Note
+REGION_ALIAS:: command.
 
    The ATTR string is an optional list of attributes that specify
 whether to use a particular memory region for an input section which is
@@ -3708,7 +4074,11 @@ depends upon `VERS_1.2'.  The scripts binds the symbols `bar1' and
 specifically bound to a version node, it will effectively bind it to an
 unspecified base version of the library.  You can bind all otherwise
 unspecified symbols to a given version node by using `global: *;'
-somewhere in the version script.
+somewhere in the version script.  Note that it's slightly crazy to use
+wildcards in a global spec except on the last version node.  Global
+wildcards elsewhere run the risk of accidentally adding symbols to the
+set exported for an old version.  That's wrong since older versions
+ought to have a fixed set of symbols.
 
    The names of the version nodes have no specific meaning other than
 what they might suggest to the person reading them.  The `2.0' version
@@ -3824,6 +4194,7 @@ in expressions.
 * Menu:
 
 * Constants::                  Constants
+* Symbolic Constants::          Symbolic constants
 * Symbols::                    Symbol Names
 * Orphan Sections::            Orphan Sections
 * Location Counter::           The Location Counter
@@ -3833,7 +4204,7 @@ in expressions.
 * Builtin Functions::          Builtin Functions
 
 \1f
-File: ld.info,  Node: Constants,  Next: Symbols,  Up: Expressions
+File: ld.info,  Node: Constants,  Next: Symbolic Constants,  Up: Expressions
 
 3.10.1 Constants
 ----------------
@@ -3842,19 +4213,49 @@ All constants are integers.
 
    As in C, the linker considers an integer beginning with `0' to be
 octal, and an integer beginning with `0x' or `0X' to be hexadecimal.
-The linker considers other integers to be decimal.
+Alternatively the linker accepts suffixes of `h' or `H' for
+hexadeciaml, `o' or `O' for octal, `b' or `B' for binary and `d' or `D'
+for decimal.  Any integer value without a prefix or a suffix is
+considered to be decimal.
 
    In addition, you can use the suffixes `K' and `M' to scale a
-constant by `1024' or `1024*1024' respectively. For example, the
+constant by `1024' or `1024*1024' respectively.  For example, the
 following all refer to the same quantity:
+
      _fourk_1 = 4K;
      _fourk_2 = 4096;
      _fourk_3 = 0x1000;
+     _fourk_4 = 10000o;
+
+   Note - the `K' and `M' suffixes cannot be used in conjunction with
+the base suffixes mentioned above.
 
 \1f
-File: ld.info,  Node: Symbols,  Next: Orphan Sections,  Prev: Constants,  Up: Expressions
+File: ld.info,  Node: Symbolic Constants,  Next: Symbols,  Prev: Constants,  Up: Expressions
 
-3.10.2 Symbol Names
+3.10.2 Symbolic Constants
+-------------------------
+
+It is possible to refer to target specific constants via the use of the
+`CONSTANT(NAME)' operator, where NAME is one of:
+
+`MAXPAGESIZE'
+     The target's maximum page size.
+
+`COMMONPAGESIZE'
+     The target's default page size.
+
+   So for example:
+
+       .text ALIGN (CONSTANT (MAXPAGESIZE)) : { *(.text) }
+
+   will create a text section aligned to the largest page boundary
+supported by the target.
+
+\1f
+File: ld.info,  Node: Symbols,  Next: Orphan Sections,  Prev: Symbolic Constants,  Up: Expressions
+
+3.10.3 Symbol Names
 -------------------
 
 Unless quoted, symbol names start with a letter, underscore, or period
@@ -3872,7 +4273,7 @@ symbol, whereas `A - B' is an expression involving subtraction.
 \1f
 File: ld.info,  Node: Orphan Sections,  Next: Location Counter,  Prev: Symbols,  Up: Expressions
 
-3.10.3 Orphan Sections
+3.10.4 Orphan Sections
 ----------------------
 
 Orphan sections are sections present in the input files which are not
@@ -3887,10 +4288,17 @@ then it places at the end of the file.
    For ELF targets, the attribute of the section includes section type
 as well as section flag.
 
+   If an orphaned section's name is representable as a C identifier then
+the linker will automatically *note PROVIDE:: two symbols:
+__start_SECNAME and __end_SECNAME, where SECNAME is the name of the
+section.  These indicate the start address and end address of the
+orphaned section respectively.  Note: most section names are not
+representable as C identifiers because they contain a `.' character.
+
 \1f
 File: ld.info,  Node: Location Counter,  Next: Operators,  Prev: Orphan Sections,  Up: Expressions
 
-3.10.4 The Location Counter
+3.10.5 The Location Counter
 ---------------------------
 
 The special linker variable "dot" `.' always contains the current
@@ -4016,7 +4424,7 @@ write:
 \1f
 File: ld.info,  Node: Operators,  Next: Evaluation,  Prev: Location Counter,  Up: Expressions
 
-3.10.5 Operators
+3.10.6 Operators
 ----------------
 
 The linker recognizes the standard C set of arithmetic operators, with
@@ -4040,7 +4448,7 @@ the standard bindings and precedence levels:
 \1f
 File: ld.info,  Node: Evaluation,  Next: Expression Section,  Prev: Operators,  Up: Expressions
 
-3.10.6 Evaluation
+3.10.7 Evaluation
 -----------------
 
 The linker evaluates expressions lazily.  It only computes the value of
@@ -4077,7 +4485,7 @@ address'.
 \1f
 File: ld.info,  Node: Expression Section,  Next: Builtin Functions,  Prev: Evaluation,  Up: Expressions
 
-3.10.7 The Section of an Expression
+3.10.8 The Section of an Expression
 -----------------------------------
 
 When the linker evaluates an expression, the result is either absolute
@@ -4112,7 +4520,7 @@ section `.data':
 \1f
 File: ld.info,  Node: Builtin Functions,  Prev: Expression Section,  Up: Expressions
 
-3.10.8 Builtin Functions
+3.10.9 Builtin Functions
 ------------------------
 
 The linker script language includes a number of builtin functions for
@@ -4349,6 +4757,8 @@ not listed.
 
 * HPPA ELF32::                  `ld' and HPPA 32-bit ELF
 
+* M68K::                       `ld' and the Motorola 68K family
+
 * MMIX::                       `ld' and MMIX
 
 * MSP430::                     `ld' and MSP430
@@ -4443,6 +4853,15 @@ relative `bal' and `cal' instructions, respectively.  `ld' also turns
 target subroutine is a leaf routine (that is, the target subroutine does
 not itself call any subroutines).
 
+   The `--fix-cortex-a8' switch enables a link-time workaround for an
+erratum in certain Cortex-A8 processors.  The workaround is enabled by
+default if you are targeting the ARM v7-A architecture profile.  It can
+be enabled otherwise by specifying `--fix-cortex-a8', or disabled
+unconditionally by specifying `--no-fix-cortex-a8'.
+
+   The erratum only affects Thumb-2 code.  Please contact ARM for
+further details.
+
 \1f
 File: ld.info,  Node: M68HC11/68HC12,  Next: PowerPC ELF32,  Prev: MSP430,  Up: Machine Dependent
 
@@ -4481,11 +4900,6 @@ instead of the function address. This is typically the case when a
 pointer to a function is taken. The pointer will in fact point to the
 function trampoline.
 
-   The `--pic-veneer' switch makes the linker use PIC sequences for
-ARM/Thumb interworking veneers, even if the rest of the binary is not
-PIC.  This avoids problems on uClinux targets where `--emit-relocs' is
-used to generate relocatable binaries.
-
 \1f
 File: ld.info,  Node: ARM,  Next: HPPA ELF32,  Prev: i960,  Up: Machine Dependent
 
@@ -4509,6 +4923,11 @@ sets the bottom bit of the address, so that it can be branched to using
 a BX instruction, and the program will start executing in Thumb mode
 straight away.
 
+   The `--use-nul-prefixed-import-tables' switch is specifying, that
+the import tables idata4 and idata5 have to be generated with a zero
+elememt prefix for import libraries. This is the old style to generate
+import tables. By default this option is turned off.
+
    The `--be8' switch instructs `ld' to generate BE8 format
 executables.  This option is only valid when linking big-endian objects.
 The resulting image will contain big-endian data and little-endian code.
@@ -4543,6 +4962,18 @@ PC,rM', since v4 processors do not have a `BX' instruction.
    In the former case, the switch should not be used, and `R_ARM_V4BX'
 relocations are ignored.
 
+   Replace `BX rM' instructions identified by `R_ARM_V4BX' relocations
+with a branch to the following veneer:
+
+     TST rM, #1
+     MOVEQ PC, rM
+     BX Rn
+
+   This allows generation of libraries/applications that work on ARMv4
+cores and are still interworking safe.  Note that the above veneer
+clobbers the condition flags, so may cause incorrect progrm behavior in
+rare cases.
+
    The `--use-blx' switch enables the linker to use ARM/Thumb BLX
 instructions (available on ARMv5t and above) in various situations.
 Currently it is used to perform calls via the PLT from Thumb code using
@@ -4587,8 +5018,46 @@ object file using 32-bit enumeration values with another using
 enumeration values fitted into the smallest possible space will not be
 diagnosed.
 
+   The `--no-wchar-size-warning' switch prevents the linker from
+warning when linking object files that specify incompatible EABI
+`wchar_t' size attributes.  For example, with this switch enabled,
+linking of an object file using 32-bit `wchar_t' values with another
+using 16-bit `wchar_t' values will not be diagnosed.
+
+   The `--pic-veneer' switch makes the linker use PIC sequences for
+ARM/Thumb interworking veneers, even if the rest of the binary is not
+PIC.  This avoids problems on uClinux targets where `--emit-relocs' is
+used to generate relocatable binaries.
+
+   The linker will automatically generate and insert small sequences of
+code into a linked ARM ELF executable whenever an attempt is made to
+perform a function call to a symbol that is too far away.  The
+placement of these sequences of instructions - called stubs - is
+controlled by the command line option `--stub-group-size=N'.  The
+placement is important because a poor choice can create a need for
+duplicate stubs, increasing the code sizw.  The linker will try to
+group stubs together in order to reduce interruptions to the flow of
+code, but it needs guidance as to how big these groups should be and
+where they should be placed.
+
+   The value of `N', the parameter to the `--stub-group-size=' option
+controls where the stub groups are placed.  If it is negative then all
+stubs are placed after the first branch that needs them.  If it is
+positive then the stubs can be placed either before or after the
+branches that need them.  If the value of `N' is 1 (either +1 or -1)
+then the linker will choose exactly where to place groups of stubs,
+using its built in heuristics.  A value of `N' greater than 1 (or
+smaller than -1) tells the linker that a single group of stubs can
+service at most `N' bytes from the input sections.
+
+   The default, if `--stub-group-size=' is not specified, is `N = +1'.
+
+   Farcalls stubs insertion is fully supported for the ARM-EABI target
+only, because it relies on object files properties not present
+otherwise.
+
 \1f
-File: ld.info,  Node: HPPA ELF32,  Next: MMIX,  Prev: ARM,  Up: Machine Dependent
+File: ld.info,  Node: HPPA ELF32,  Next: M68K,  Prev: ARM,  Up: Machine Dependent
 
 4.5 `ld' and HPPA 32-bit ELF Support
 ====================================
@@ -4619,9 +5088,27 @@ create a larger group (of one section).  If input sections are too
 large, it may not be possible for a branch to reach its stub.
 
 \1f
-File: ld.info,  Node: MMIX,  Next: MSP430,  Prev: HPPA ELF32,  Up: Machine Dependent
+File: ld.info,  Node: M68K,  Next: MMIX,  Prev: HPPA ELF32,  Up: Machine Dependent
+
+4.6 `ld' and the Motorola 68K family
+====================================
+
+The `--got=TYPE' option lets you choose the GOT generation scheme.  The
+choices are `single', `negative', `multigot' and `target'.  When
+`target' is selected the linker chooses the default GOT generation
+scheme for the current target.  `single' tells the linker to generate a
+single GOT with entries only at non-negative offsets.  `negative'
+instructs the linker to generate a single GOT with entries at both
+negative and positive offsets.  Not all environments support such GOTs.
+`multigot' allows the linker to generate several GOTs in the output
+file.  All GOT references from a single input object file access the
+same GOT, but references from different input object files might access
+different GOTs.  Not all environments support such GOTs.
+
+\1f
+File: ld.info,  Node: MMIX,  Next: MSP430,  Prev: M68K,  Up: Machine Dependent
 
-4.6 `ld' and MMIX
+4.7 `ld' and MMIX
 =================
 
 For MMIX, there is a choice of generating `ELF' object files or `mmo'
@@ -4638,10 +5125,10 @@ register multiplied by 8.  Register `$255' is not included in this
 section; it is always set to the program entry, which is at the symbol
 `Main' for `mmo' files.
 
-   Symbols with the prefix `__.MMIX.start.', for example
-`__.MMIX.start..text' and `__.MMIX.start..data' are special; there must
-be only one each, even if they are local.  The default linker script
-uses these to set the default start address of a section.
+   Global symbols with the prefix `__.MMIX.start.', for example
+`__.MMIX.start..text' and `__.MMIX.start..data' are special.  The
+default linker script uses these to set the default start address of a
+section.
 
    Initial and trailing multiples of zero-valued 32-bit words in a
 section, are left out from an mmo file.
@@ -4649,7 +5136,7 @@ section, are left out from an mmo file.
 \1f
 File: ld.info,  Node: MSP430,  Next: M68HC11/68HC12,  Prev: MMIX,  Up: Machine Dependent
 
-4.7 `ld' and MSP430
+4.8 `ld' and MSP430
 ===================
 
 For the MSP430 it is possible to select the MPU architecture.  The flag
@@ -4683,7 +5170,7 @@ specific:
 \1f
 File: ld.info,  Node: PowerPC ELF32,  Next: PowerPC64 ELF64,  Prev: M68HC11/68HC12,  Up: Machine Dependent
 
-4.8 `ld' and PowerPC 32-bit ELF Support
+4.9 `ld' and PowerPC 32-bit ELF Support
 =======================================
 
 Branches on PowerPC processors are limited to a signed 26-bit
@@ -4691,7 +5178,10 @@ displacement, which may result in `ld' giving `relocation truncated to
 fit' errors with very large programs.  `--relax' enables the generation
 of trampolines that can access the entire 32-bit address space.  These
 trampolines are inserted at section boundaries, so may not themselves
-be reachable if an input section exceeds 33M in size.
+be reachable if an input section exceeds 33M in size.  You may combine
+`-r' and `--relax' to add trampolines in a partial link.  In that case
+both branches to undefined symbols and inter-section branches are also
+considered potentially out of range, and trampolines inserted.
 
 `--bss-plt'
      Current PowerPC GCC accepts a `-msecure-plt' option that generates
@@ -4736,8 +5226,8 @@ be reachable if an input section exceeds 33M in size.
 \1f
 File: ld.info,  Node: PowerPC64 ELF64,  Next: SPU ELF,  Prev: PowerPC ELF32,  Up: Machine Dependent
 
-4.9 `ld' and PowerPC64 64-bit ELF Support
-=========================================
+4.10 `ld' and PowerPC64 64-bit ELF Support
+==========================================
 
 `--stub-group-size'
      Long branch stubs, PLT call stubs  and TOC adjusting stubs are
@@ -4784,8 +5274,8 @@ File: ld.info,  Node: PowerPC64 ELF64,  Next: SPU ELF,  Prev: PowerPC ELF32,  Up
 `--no-opd-optimize'
      PowerPC64 `ld' normally removes `.opd' section entries
      corresponding to deleted link-once functions, or functions removed
-     by the action of `--gc-sections' or linker scrip `/DISCARD/'.  Use
-     this option to disable `.opd' optimization.
+     by the action of `--gc-sections' or linker script `/DISCARD/'.
+     Use this option to disable `.opd' optimization.
 
 `--non-overlapping-opd'
      Some PowerPC64 compilers have an option to generate compressed
@@ -4821,7 +5311,7 @@ File: ld.info,  Node: PowerPC64 ELF64,  Next: SPU ELF,  Prev: PowerPC ELF32,  Up
 \1f
 File: ld.info,  Node: SPU ELF,  Next: TI COFF,  Prev: PowerPC64 ELF64,  Up: Machine Dependent
 
-4.10 `ld' and SPU ELF Support
+4.11 `ld' and SPU ELF Support
 =============================
 
 `--plugin'
@@ -4877,7 +5367,7 @@ File: ld.info,  Node: SPU ELF,  Next: TI COFF,  Prev: PowerPC64 ELF64,  Up: Mach
 \1f
 File: ld.info,  Node: TI COFF,  Next: WIN32,  Prev: SPU ELF,  Up: Machine Dependent
 
-4.11 `ld''s Support for Various TI COFF Versions
+4.12 `ld''s Support for Various TI COFF Versions
 ================================================
 
 The `--format' switch allows selection of one of the various TI COFF
@@ -4889,7 +5379,7 @@ depends on the default specified by the specific target.
 \1f
 File: ld.info,  Node: WIN32,  Next: Xtensa,  Prev: TI COFF,  Up: Machine Dependent
 
-4.12 `ld' and WIN32 (cygwin/mingw)
+4.13 `ld' and WIN32 (cygwin/mingw)
 ==================================
 
 This section describes some of the win32 specific `ld' issues.  See
@@ -4918,9 +5408,24 @@ _exporting DLL symbols_
 
              * -exclude-libs
 
-          If, however, `--export-all-symbols' is not given explicitly
-          on the command line, then the default auto-export behavior
-          will be _disabled_ if either of the following are true:
+             * -exclude-modules-for-implib
+
+             * -version-script
+
+          When auto-export is in operation, `ld' will export all the
+          non-local (global and common) symbols it finds in a DLL, with
+          the exception of a few symbols known to belong to the
+          system's runtime and libraries.  As it will often not be
+          desirable to export all of a DLL's symbols, which may include
+          private functions that are not part of any public interface,
+          the command-line options listed above may be used to filter
+          symbols out from the list for exporting.  The `--output-def'
+          option can be used in order to see the final list of exported
+          symbols with all exclusions taken into effect.
+
+          If `--export-all-symbols' is not given explicitly on the
+          command line, then the default auto-export behavior will be
+          _disabled_ if either of the following are true:
 
              * A DEF file is used.
 
@@ -5289,10 +5794,21 @@ _weak externals_
      symbol are supported.  If the symbol is undefined when linking,
      the symbol uses a default value.
 
+_aligned common symbols_
+     As a GNU extension to the PE file format, it is possible to
+     specify the desired alignment for a common symbol.  This
+     information is conveyed from the assembler or compiler to the
+     linker by means of GNU-specific commands carried in the object
+     file's `.drectve' section, which are recognized by `ld' and
+     respected when laying out the common symbols.  Native tools will
+     be able to process object files employing this GNU extension, but
+     will fail to respect the alignment instructions, and may issue
+     noisy warnings about unknown linker directives.
+
 \1f
 File: ld.info,  Node: Xtensa,  Prev: WIN32,  Up: Machine Dependent
 
-4.13 `ld' and Xtensa Processors
+4.14 `ld' and Xtensa Processors
 ===============================
 
 The default `ld' behavior for Xtensa processors is to interpret
@@ -6243,252 +6759,276 @@ LD Index
 * Menu:
 
 * ":                                     Symbols.            (line    6)
-* -(:                                    Options.            (line  643)
-* --accept-unknown-input-arch:           Options.            (line  661)
-* --add-needed:                          Options.            (line  683)
-* --add-stdcall-alias:                   Options.            (line 1450)
-* --allow-multiple-definition:           Options.            (line  892)
-* --allow-shlib-undefined:               Options.            (line  898)
-* --architecture=ARCH:                   Options.            (line  104)
-* --as-needed:                           Options.            (line  671)
-* --auxiliary:                           Options.            (line  205)
-* --bank-window:                         Options.            (line 1789)
-* --base-file:                           Options.            (line 1455)
-* --be8:                                 ARM.                (line   23)
-* --bss-plt:                             PowerPC ELF32.      (line   13)
-* --build-id:                            Options.            (line 1412)
-* --build-id=STYLE:                      Options.            (line 1412)
-* --check-sections:                      Options.            (line  765)
-* --cref:                                Options.            (line  775)
-* --default-imported-symver:             Options.            (line  926)
-* --default-script=SCRIPT:               Options.            (line  488)
-* --default-symver:                      Options.            (line  922)
-* --defsym SYMBOL=EXP:                   Options.            (line  803)
-* --demangle[=STYLE]:                    Options.            (line  816)
-* --disable-auto-image-base:             Options.            (line 1602)
-* --disable-auto-import:                 Options.            (line 1731)
-* --disable-new-dtags:                   Options.            (line 1375)
-* --disable-runtime-pseudo-reloc:        Options.            (line 1744)
-* --disable-stdcall-fixup:               Options.            (line 1465)
-* --discard-all:                         Options.            (line  534)
-* --discard-locals:                      Options.            (line  538)
-* --dll:                                 Options.            (line 1460)
-* --dll-search-prefix:                   Options.            (line 1608)
+* -(:                                    Options.            (line  675)
+* --accept-unknown-input-arch:           Options.            (line  693)
+* --add-needed:                          Options.            (line  717)
+* --add-stdcall-alias:                   Options.            (line 1527)
+* --allow-multiple-definition:           Options.            (line  945)
+* --allow-shlib-undefined:               Options.            (line  951)
+* --architecture=ARCH:                   Options.            (line  113)
+* --as-needed:                           Options.            (line  703)
+* --auxiliary=NAME:                      Options.            (line  235)
+* --bank-window:                         Options.            (line 1926)
+* --base-file:                           Options.            (line 1532)
+* --be8:                                 ARM.                (line   28)
+* --bss-plt:                             PowerPC ELF32.      (line   16)
+* --build-id:                            Options.            (line 1489)
+* --build-id=STYLE:                      Options.            (line 1489)
+* --check-sections:                      Options.            (line  799)
+* --cref:                                Options.            (line  811)
+* --default-imported-symver:             Options.            (line  988)
+* --default-script=SCRIPT:               Options.            (line  520)
+* --default-symver:                      Options.            (line  984)
+* --defsym=SYMBOL=EXP:                   Options.            (line  839)
+* --demangle[=STYLE]:                    Options.            (line  852)
+* --disable-auto-image-base:             Options.            (line 1701)
+* --disable-auto-import:                 Options.            (line 1836)
+* --disable-long-section-names:          Options.            (line 1542)
+* --disable-new-dtags:                   Options.            (line 1452)
+* --disable-runtime-pseudo-reloc:        Options.            (line 1849)
+* --disable-stdcall-fixup:               Options.            (line 1564)
+* --discard-all:                         Options.            (line  566)
+* --discard-locals:                      Options.            (line  570)
+* --dll:                                 Options.            (line 1537)
+* --dll-search-prefix:                   Options.            (line 1707)
 * --dotsyms:                             PowerPC64 ELF64.    (line   33)
-* --dynamic-linker FILE:                 Options.            (line  829)
-* --dynamic-list-cpp-new:                Options.            (line  757)
-* --dynamic-list-cpp-typeinfo:           Options.            (line  761)
-* --dynamic-list-data:                   Options.            (line  754)
-* --dynamic-list=DYNAMIC-LIST-FILE:      Options.            (line  741)
-* --eh-frame-hdr:                        Options.            (line 1371)
-* --emit-relocs:                         Options.            (line  423)
+* --dynamic-linker=FILE:                 Options.            (line  865)
+* --dynamic-list-cpp-new:                Options.            (line  791)
+* --dynamic-list-cpp-typeinfo:           Options.            (line  795)
+* --dynamic-list-data:                   Options.            (line  788)
+* --dynamic-list=DYNAMIC-LIST-FILE:      Options.            (line  775)
+* --dynamicbase:                         Options.            (line 1885)
+* --eh-frame-hdr:                        Options.            (line 1448)
+* --emit-relocs:                         Options.            (line  455)
 * --emit-stack-syms:                     SPU ELF.            (line   46)
-* --emit-stub-syms <1>:                  SPU ELF.            (line   15)
-* --emit-stub-syms <2>:                  PowerPC64 ELF64.    (line   29)
-* --emit-stub-syms:                      PowerPC ELF32.      (line   44)
-* --enable-auto-image-base:              Options.            (line 1594)
-* --enable-auto-import:                  Options.            (line 1617)
-* --enable-extra-pe-debug:               Options.            (line 1749)
-* --enable-new-dtags:                    Options.            (line 1375)
-* --enable-runtime-pseudo-reloc:         Options.            (line 1736)
-* --enable-stdcall-fixup:                Options.            (line 1465)
-* --entry=ENTRY:                         Options.            (line  158)
-* --error-unresolved-symbols:            Options.            (line 1324)
-* --exclude-libs:                        Options.            (line  168)
-* --exclude-symbols:                     Options.            (line 1507)
-* --export-all-symbols:                  Options.            (line 1483)
-* --export-dynamic:                      Options.            (line  179)
+* --emit-stub-syms <1>:                  PowerPC ELF32.      (line   47)
+* --emit-stub-syms <2>:                  SPU ELF.            (line   15)
+* --emit-stub-syms:                      PowerPC64 ELF64.    (line   29)
+* --enable-auto-image-base:              Options.            (line 1693)
+* --enable-auto-import:                  Options.            (line 1716)
+* --enable-extra-pe-debug:               Options.            (line 1854)
+* --enable-long-section-names:           Options.            (line 1542)
+* --enable-new-dtags:                    Options.            (line 1452)
+* --enable-runtime-pseudo-reloc:         Options.            (line 1841)
+* --enable-stdcall-fixup:                Options.            (line 1564)
+* --entry=ENTRY:                         Options.            (line  167)
+* --error-unresolved-symbols:            Options.            (line 1401)
+* --exclude-libs:                        Options.            (line  177)
+* --exclude-modules-for-implib:          Options.            (line  188)
+* --exclude-symbols:                     Options.            (line 1606)
+* --export-all-symbols:                  Options.            (line 1582)
+* --export-dynamic:                      Options.            (line  201)
 * --extra-overlay-stubs:                 SPU ELF.            (line   19)
-* --fatal-warnings:                      Options.            (line  835)
-* --file-alignment:                      Options.            (line 1513)
-* --filter:                              Options.            (line  226)
-* --fix-v4bx:                            ARM.                (line   44)
-* --force-dynamic:                       Options.            (line  432)
-* --force-exe-suffix:                    Options.            (line  838)
-* --format=FORMAT:                       Options.            (line  115)
+* --fatal-warnings:                      Options.            (line  872)
+* --file-alignment:                      Options.            (line 1612)
+* --filter=NAME:                         Options.            (line  256)
+* --fix-cortex-a8:                       i960.               (line   39)
+* --fix-v4bx:                            ARM.                (line   49)
+* --fix-v4bx-interworking:               ARM.                (line   62)
+* --force-dynamic:                       Options.            (line  464)
+* --force-exe-suffix:                    Options.            (line  877)
+* --forceinteg:                          Options.            (line 1890)
+* --format=FORMAT:                       Options.            (line  124)
 * --format=VERSION:                      TI COFF.            (line    6)
-* --gc-sections:                         Options.            (line  848)
-* --gpsize:                              Options.            (line  259)
-* --hash-size=NUMBER:                    Options.            (line 1384)
-* --hash-style=STYLE:                    Options.            (line 1392)
-* --heap:                                Options.            (line 1519)
-* --help:                                Options.            (line  865)
-* --image-base:                          Options.            (line 1526)
-* --just-symbols=FILE:                   Options.            (line  455)
-* --kill-at:                             Options.            (line 1535)
-* --large-address-aware:                 Options.            (line 1540)
-* --library-path=DIR:                    Options.            (line  318)
-* --library=NAMESPEC:                    Options.            (line  285)
+* --gc-sections:                         Options.            (line  887)
+* --got:                                 Options.            (line 1939)
+* --got=TYPE:                            M68K.               (line    6)
+* --gpsize=VALUE:                        Options.            (line  289)
+* --hash-size=NUMBER:                    Options.            (line 1461)
+* --hash-style=STYLE:                    Options.            (line 1469)
+* --heap:                                Options.            (line 1618)
+* --help:                                Options.            (line  918)
+* --image-base:                          Options.            (line 1625)
+* --just-symbols=FILE:                   Options.            (line  487)
+* --kill-at:                             Options.            (line 1634)
+* --large-address-aware:                 Options.            (line 1639)
+* --library-path=DIR:                    Options.            (line  348)
+* --library=NAMESPEC:                    Options.            (line  315)
 * --local-store=lo:hi:                   SPU ELF.            (line   24)
-* --major-image-version:                 Options.            (line 1549)
-* --major-os-version:                    Options.            (line 1554)
-* --major-subsystem-version:             Options.            (line 1558)
-* --minor-image-version:                 Options.            (line 1563)
-* --minor-os-version:                    Options.            (line 1568)
-* --minor-subsystem-version:             Options.            (line 1572)
-* --mri-script=MRI-CMDFILE:              Options.            (line  139)
+* --major-image-version:                 Options.            (line 1648)
+* --major-os-version:                    Options.            (line 1653)
+* --major-subsystem-version:             Options.            (line 1657)
+* --minor-image-version:                 Options.            (line 1662)
+* --minor-os-version:                    Options.            (line 1667)
+* --minor-subsystem-version:             Options.            (line 1671)
+* --mri-script=MRI-CMDFILE:              Options.            (line  148)
 * --multi-subspace:                      HPPA ELF32.         (line    6)
-* --nmagic:                              Options.            (line  387)
-* --no-accept-unknown-input-arch:        Options.            (line  661)
-* --no-add-needed:                       Options.            (line  683)
-* --no-allow-shlib-undefined:            Options.            (line  898)
-* --no-as-needed:                        Options.            (line  671)
-* --no-check-sections:                   Options.            (line  765)
-* --no-define-common:                    Options.            (line  787)
-* --no-demangle:                         Options.            (line  816)
+* --nmagic:                              Options.            (line  419)
+* --no-accept-unknown-input-arch:        Options.            (line  693)
+* --no-add-needed:                       Options.            (line  717)
+* --no-allow-shlib-undefined:            Options.            (line  951)
+* --no-as-needed:                        Options.            (line  703)
+* --no-bind:                             Options.            (line 1904)
+* --no-check-sections:                   Options.            (line  799)
+* --no-define-common:                    Options.            (line  823)
+* --no-demangle:                         Options.            (line  852)
 * --no-dotsyms:                          PowerPC64 ELF64.    (line   33)
-* --no-enum-size-warning:                ARM.                (line   94)
-* --no-gc-sections:                      Options.            (line  848)
-* --no-keep-memory:                      Options.            (line  877)
+* --no-enum-size-warning:                ARM.                (line  111)
+* --no-export-dynamic:                   Options.            (line  201)
+* --no-fatal-warnings:                   Options.            (line  872)
+* --no-fix-cortex-a8:                    i960.               (line   39)
+* --no-gc-sections:                      Options.            (line  887)
+* --no-isolation:                        Options.            (line 1897)
+* --no-keep-memory:                      Options.            (line  930)
 * --no-multi-toc:                        PowerPC64 ELF64.    (line   74)
-* --no-omagic:                           Options.            (line  401)
+* --no-omagic:                           Options.            (line  433)
 * --no-opd-optimize:                     PowerPC64 ELF64.    (line   48)
 * --no-overlays:                         SPU ELF.            (line    9)
-* --no-print-gc-sections:                Options.            (line  856)
+* --no-print-gc-sections:                Options.            (line  909)
 * --no-relax:                            Xtensa.             (line   56)
-* --no-tls-optimize <1>:                 PowerPC64 ELF64.    (line   43)
-* --no-tls-optimize:                     PowerPC ELF32.      (line   48)
+* --no-seh:                              Options.            (line 1900)
+* --no-tls-optimize <1>:                 PowerPC ELF32.      (line   51)
+* --no-tls-optimize:                     PowerPC64 ELF64.    (line   43)
 * --no-toc-optimize:                     PowerPC64 ELF64.    (line   60)
-* --no-trampoline:                       Options.            (line 1783)
-* --no-undefined:                        Options.            (line  884)
-* --no-undefined-version:                Options.            (line  917)
-* --no-warn-mismatch:                    Options.            (line  930)
-* --no-warn-search-mismatch:             Options.            (line  939)
-* --no-whole-archive:                    Options.            (line  943)
-* --noinhibit-exec:                      Options.            (line  947)
+* --no-trampoline:                       Options.            (line 1920)
+* --no-undefined:                        Options.            (line  937)
+* --no-undefined-version:                Options.            (line  979)
+* --no-warn-mismatch:                    Options.            (line  992)
+* --no-warn-search-mismatch:             Options.            (line 1001)
+* --no-wchar-size-warning:               ARM.                (line  118)
+* --no-whole-archive:                    Options.            (line 1005)
+* --noinhibit-exec:                      Options.            (line 1009)
 * --non-overlapping-opd:                 PowerPC64 ELF64.    (line   54)
-* --oformat:                             Options.            (line  959)
-* --omagic:                              Options.            (line  392)
-* --out-implib:                          Options.            (line 1585)
-* --output-def:                          Options.            (line 1577)
-* --output=OUTPUT:                       Options.            (line  407)
-* --pic-executable:                      Options.            (line  972)
-* --pic-veneer:                          M68HC11/68HC12.     (line   38)
+* --nxcompat:                            Options.            (line 1893)
+* --oformat=OUTPUT-FORMAT:               Options.            (line 1021)
+* --omagic:                              Options.            (line  424)
+* --out-implib:                          Options.            (line 1684)
+* --output-def:                          Options.            (line 1676)
+* --output=OUTPUT:                       Options.            (line  439)
+* --pic-executable:                      Options.            (line 1034)
+* --pic-veneer:                          ARM.                (line  124)
 * --plugin:                              SPU ELF.            (line    6)
-* --print-gc-sections:                   Options.            (line  856)
-* --print-map:                           Options.            (line  350)
-* --reduce-memory-overheads:             Options.            (line 1398)
-* --relax:                               Options.            (line  988)
+* --print-gc-sections:                   Options.            (line  909)
+* --print-map:                           Options.            (line  382)
+* --reduce-memory-overheads:             Options.            (line 1475)
+* --relax:                               Options.            (line 1050)
 * --relax on i960:                       i960.               (line   31)
 * --relax on PowerPC:                    PowerPC ELF32.      (line    6)
 * --relax on Xtensa:                     Xtensa.             (line   27)
-* --relocatable:                         Options.            (line  436)
-* --script=SCRIPT:                       Options.            (line  479)
-* --sdata-got:                           PowerPC ELF32.      (line   30)
-* --section-alignment:                   Options.            (line 1754)
-* --section-start SECTIONNAME=ORG:       Options.            (line 1161)
-* --secure-plt:                          PowerPC ELF32.      (line   23)
-* --sort-common:                         Options.            (line 1108)
-* --sort-section alignment:              Options.            (line 1118)
-* --sort-section name:                   Options.            (line 1114)
-* --split-by-file:                       Options.            (line 1122)
-* --split-by-reloc:                      Options.            (line 1127)
-* --stack:                               Options.            (line 1760)
+* --relocatable:                         Options.            (line  468)
+* --retain-symbols-file=FILENAME:        Options.            (line 1071)
+* --script=SCRIPT:                       Options.            (line  511)
+* --sdata-got:                           PowerPC ELF32.      (line   33)
+* --section-alignment:                   Options.            (line 1859)
+* --section-start=SECTIONNAME=ORG:       Options.            (line 1227)
+* --secure-plt:                          PowerPC ELF32.      (line   26)
+* --sort-common:                         Options.            (line 1169)
+* --sort-section=alignment:              Options.            (line 1184)
+* --sort-section=name:                   Options.            (line 1180)
+* --split-by-file:                       Options.            (line 1188)
+* --split-by-reloc:                      Options.            (line 1193)
+* --stack:                               Options.            (line 1865)
 * --stack-analysis:                      SPU ELF.            (line   29)
-* --stats:                               Options.            (line 1140)
-* --strip-all:                           Options.            (line  466)
-* --strip-debug:                         Options.            (line  470)
+* --stats:                               Options.            (line 1206)
+* --strip-all:                           Options.            (line  498)
+* --strip-debug:                         Options.            (line  502)
 * --stub-group-size:                     PowerPC64 ELF64.    (line    6)
+* --stub-group-size=N <1>:               ARM.                (line  129)
 * --stub-group-size=N:                   HPPA ELF32.         (line   12)
-* --subsystem:                           Options.            (line 1767)
+* --subsystem:                           Options.            (line 1872)
 * --support-old-code:                    ARM.                (line    6)
-* --sysroot:                             Options.            (line 1144)
-* --target-help:                         Options.            (line  869)
-* --target1-abs:                         ARM.                (line   27)
-* --target1-rel:                         ARM.                (line   27)
-* --target2=TYPE:                        ARM.                (line   32)
+* --sysroot=DIRECTORY:                   Options.            (line 1210)
+* --target-help:                         Options.            (line  922)
+* --target1-abs:                         ARM.                (line   32)
+* --target1-rel:                         ARM.                (line   32)
+* --target2=TYPE:                        ARM.                (line   37)
 * --thumb-entry=ENTRY:                   ARM.                (line   17)
-* --trace:                               Options.            (line  475)
-* --trace-symbol=SYMBOL:                 Options.            (line  544)
-* --traditional-format:                  Options.            (line 1149)
-* --undefined=SYMBOL:                    Options.            (line  501)
-* --unique[=SECTION]:                    Options.            (line  519)
-* --unresolved-symbols:                  Options.            (line 1176)
-* --use-blx:                             ARM.                (line   57)
-* --verbose:                             Options.            (line 1205)
-* --version:                             Options.            (line  528)
-* --version-script=VERSION-SCRIPTFILE:   Options.            (line 1211)
-* --vfp11-denorm-fix:                    ARM.                (line   66)
-* --warn-common:                         Options.            (line 1218)
-* --warn-constructors:                   Options.            (line 1286)
-* --warn-multiple-gp:                    Options.            (line 1291)
-* --warn-once:                           Options.            (line 1305)
-* --warn-section-align:                  Options.            (line 1309)
-* --warn-shared-textrel:                 Options.            (line 1316)
-* --warn-unresolved-symbols:             Options.            (line 1319)
-* --whole-archive:                       Options.            (line 1328)
-* --wrap:                                Options.            (line 1342)
-* -AARCH:                                Options.            (line  103)
-* -aKEYWORD:                             Options.            (line   96)
-* -assert KEYWORD:                       Options.            (line  693)
-* -b FORMAT:                             Options.            (line  115)
-* -Bdynamic:                             Options.            (line  696)
-* -Bgroup:                               Options.            (line  706)
-* -Bshareable:                           Options.            (line 1100)
-* -Bstatic:                              Options.            (line  713)
-* -Bsymbolic:                            Options.            (line  728)
-* -Bsymbolic-functions:                  Options.            (line  735)
-* -c MRI-CMDFILE:                        Options.            (line  139)
-* -call_shared:                          Options.            (line  696)
-* -d:                                    Options.            (line  149)
-* -dc:                                   Options.            (line  149)
-* -dn:                                   Options.            (line  713)
-* -dp:                                   Options.            (line  149)
-* -dT SCRIPT:                            Options.            (line  488)
-* -dy:                                   Options.            (line  696)
-* -E:                                    Options.            (line  179)
-* -e ENTRY:                              Options.            (line  158)
-* -EB:                                   Options.            (line  198)
-* -EL:                                   Options.            (line  201)
-* -F:                                    Options.            (line  226)
-* -f:                                    Options.            (line  205)
-* -fini:                                 Options.            (line  250)
-* -G:                                    Options.            (line  259)
-* -g:                                    Options.            (line  256)
-* -hNAME:                                Options.            (line  267)
-* -i:                                    Options.            (line  276)
-* -IFILE:                                Options.            (line  829)
-* -init:                                 Options.            (line  279)
-* -LDIR:                                 Options.            (line  318)
-* -lNAMESPEC:                            Options.            (line  285)
-* -M:                                    Options.            (line  350)
-* -m EMULATION:                          Options.            (line  340)
-* -Map:                                  Options.            (line  873)
-* -N:                                    Options.            (line  392)
-* -n:                                    Options.            (line  387)
-* -non_shared:                           Options.            (line  713)
-* -nostdlib:                             Options.            (line  953)
-* -O LEVEL:                              Options.            (line  413)
-* -o OUTPUT:                             Options.            (line  407)
-* -pie:                                  Options.            (line  972)
-* -q:                                    Options.            (line  423)
-* -qmagic:                               Options.            (line  982)
-* -Qy:                                   Options.            (line  985)
-* -r:                                    Options.            (line  436)
-* -R FILE:                               Options.            (line  455)
-* -rpath:                                Options.            (line 1023)
-* -rpath-link:                           Options.            (line 1045)
-* -S:                                    Options.            (line  470)
-* -s:                                    Options.            (line  466)
-* -shared:                               Options.            (line 1100)
-* -soname=NAME:                          Options.            (line  267)
-* -static:                               Options.            (line  713)
-* -t:                                    Options.            (line  475)
-* -T SCRIPT:                             Options.            (line  479)
-* -Tbss ORG:                             Options.            (line 1170)
-* -Tdata ORG:                            Options.            (line 1170)
-* -Ttext ORG:                            Options.            (line 1170)
-* -u SYMBOL:                             Options.            (line  501)
-* -Ur:                                   Options.            (line  509)
-* -V:                                    Options.            (line  528)
-* -v:                                    Options.            (line  528)
-* -X:                                    Options.            (line  538)
-* -x:                                    Options.            (line  534)
-* -Y PATH:                               Options.            (line  553)
-* -y SYMBOL:                             Options.            (line  544)
-* -z defs:                               Options.            (line  884)
-* -z KEYWORD:                            Options.            (line  557)
-* -z muldefs:                            Options.            (line  892)
+* --trace:                               Options.            (line  507)
+* --trace-symbol=SYMBOL:                 Options.            (line  576)
+* --traditional-format:                  Options.            (line 1215)
+* --tsaware:                             Options.            (line 1910)
+* --undefined=SYMBOL:                    Options.            (line  533)
+* --unique[=SECTION]:                    Options.            (line  551)
+* --unresolved-symbols:                  Options.            (line 1246)
+* --use-blx:                             ARM.                (line   74)
+* --use-nul-prefixed-import-tables:      ARM.                (line   23)
+* --verbose:                             Options.            (line 1275)
+* --version:                             Options.            (line  560)
+* --version-script=VERSION-SCRIPTFILE:   Options.            (line 1281)
+* --vfp11-denorm-fix:                    ARM.                (line   83)
+* --warn-alternate-em:                   Options.            (line 1393)
+* --warn-common:                         Options.            (line 1292)
+* --warn-constructors:                   Options.            (line 1360)
+* --warn-multiple-gp:                    Options.            (line 1365)
+* --warn-once:                           Options.            (line 1379)
+* --warn-section-align:                  Options.            (line 1383)
+* --warn-shared-textrel:                 Options.            (line 1390)
+* --warn-unresolved-symbols:             Options.            (line 1396)
+* --wdmdriver:                           Options.            (line 1907)
+* --whole-archive:                       Options.            (line 1405)
+* --wrap=SYMBOL:                         Options.            (line 1419)
+* -A ARCH:                               Options.            (line  112)
+* -a KEYWORD:                            Options.            (line  105)
+* -assert KEYWORD:                       Options.            (line  727)
+* -b FORMAT:                             Options.            (line  124)
+* -Bdynamic:                             Options.            (line  730)
+* -Bgroup:                               Options.            (line  740)
+* -Bshareable:                           Options.            (line 1162)
+* -Bstatic:                              Options.            (line  747)
+* -Bsymbolic:                            Options.            (line  762)
+* -Bsymbolic-functions:                  Options.            (line  769)
+* -c MRI-CMDFILE:                        Options.            (line  148)
+* -call_shared:                          Options.            (line  730)
+* -d:                                    Options.            (line  158)
+* -dc:                                   Options.            (line  158)
+* -dn:                                   Options.            (line  747)
+* -dp:                                   Options.            (line  158)
+* -dT SCRIPT:                            Options.            (line  520)
+* -dy:                                   Options.            (line  730)
+* -E:                                    Options.            (line  201)
+* -e ENTRY:                              Options.            (line  167)
+* -EB:                                   Options.            (line  228)
+* -EL:                                   Options.            (line  231)
+* -F NAME:                               Options.            (line  256)
+* -f NAME:                               Options.            (line  235)
+* -fini=NAME:                            Options.            (line  280)
+* -g:                                    Options.            (line  286)
+* -G VALUE:                              Options.            (line  289)
+* -h NAME:                               Options.            (line  297)
+* -i:                                    Options.            (line  306)
+* -IFILE:                                Options.            (line  865)
+* -init=NAME:                            Options.            (line  309)
+* -L DIR:                                Options.            (line  348)
+* -l NAMESPEC:                           Options.            (line  315)
+* -M:                                    Options.            (line  382)
+* -m EMULATION:                          Options.            (line  372)
+* -Map=MAPFILE:                          Options.            (line  926)
+* -N:                                    Options.            (line  424)
+* -n:                                    Options.            (line  419)
+* -non_shared:                           Options.            (line  747)
+* -nostdlib:                             Options.            (line 1015)
+* -O LEVEL:                              Options.            (line  445)
+* -o OUTPUT:                             Options.            (line  439)
+* -pie:                                  Options.            (line 1034)
+* -q:                                    Options.            (line  455)
+* -qmagic:                               Options.            (line 1044)
+* -Qy:                                   Options.            (line 1047)
+* -r:                                    Options.            (line  468)
+* -R FILE:                               Options.            (line  487)
+* -rpath-link=DIR:                       Options.            (line 1107)
+* -rpath=DIR:                            Options.            (line 1085)
+* -s:                                    Options.            (line  498)
+* -S:                                    Options.            (line  502)
+* -shared:                               Options.            (line 1162)
+* -soname=NAME:                          Options.            (line  297)
+* -static:                               Options.            (line  747)
+* -t:                                    Options.            (line  507)
+* -T SCRIPT:                             Options.            (line  511)
+* -Tbss=ORG:                             Options.            (line 1236)
+* -Tdata=ORG:                            Options.            (line 1236)
+* -Ttext-segment=ORG:                    Options.            (line 1242)
+* -Ttext=ORG:                            Options.            (line 1236)
+* -u SYMBOL:                             Options.            (line  533)
+* -Ur:                                   Options.            (line  541)
+* -V:                                    Options.            (line  560)
+* -v:                                    Options.            (line  560)
+* -X:                                    Options.            (line  570)
+* -x:                                    Options.            (line  566)
+* -Y PATH:                               Options.            (line  585)
+* -y SYMBOL:                             Options.            (line  576)
+* -z defs:                               Options.            (line  937)
+* -z KEYWORD:                            Options.            (line  589)
+* -z muldefs:                            Options.            (line  945)
 * .:                                     Location Counter.   (line    6)
 * /DISCARD/:                             Output Section Discarding.
                                                              (line   21)
@@ -6515,17 +7055,18 @@ LD Index
 * ALIGN(EXP,ALIGN):                      Builtin Functions.  (line   36)
 * ALIGN(SECTION_ALIGN):                  Forced Output Alignment.
                                                              (line    6)
+* aligned common symbols:                WIN32.              (line  418)
 * ALIGNOF(SECTION):                      Builtin Functions.  (line   62)
 * allocating memory:                     MEMORY.             (line    6)
 * architecture:                          Miscellaneous Commands.
-                                                             (line   46)
-* architectures:                         Options.            (line  103)
-* archive files, from cmd line:          Options.            (line  285)
-* archive search path in linker script:  File Commands.      (line   71)
+                                                             (line   72)
+* architectures:                         Options.            (line  112)
+* archive files, from cmd line:          Options.            (line  315)
+* archive search path in linker script:  File Commands.      (line   74)
 * arithmetic:                            Expressions.        (line    6)
 * arithmetic operators:                  Operators.          (line    6)
 * ARM interworking support:              ARM.                (line    6)
-* AS_NEEDED(FILES):                      File Commands.      (line   51)
+* AS_NEEDED(FILES):                      File Commands.      (line   54)
 * ASSERT:                                Miscellaneous Commands.
                                                              (line    9)
 * assertion in linker script:            Miscellaneous Commands.
@@ -6533,14 +7074,14 @@ LD Index
 * assignment in scripts:                 Assignments.        (line    6)
 * AT(LMA):                               Output Section LMA. (line    6)
 * AT>LMA_REGION:                         Output Section LMA. (line    6)
-* automatic data imports:                WIN32.              (line  170)
+* automatic data imports:                WIN32.              (line  185)
 * back end:                              BFD.                (line    6)
 * BASE (MRI):                            MRI.                (line   54)
-* BE8:                                   ARM.                (line   23)
+* BE8:                                   ARM.                (line   28)
 * BFD canonical format:                  Canonical format.   (line   11)
 * BFD requirements:                      BFD.                (line   16)
-* big-endian objects:                    Options.            (line  198)
-* binary input format:                   Options.            (line  115)
+* big-endian objects:                    Options.            (line  228)
+* binary input format:                   Options.            (line  124)
 * BLOCK(EXP):                            Builtin Functions.  (line   75)
 * bug criteria:                          Bug Criteria.       (line    6)
 * bug reports:                           Bug Reporting.      (line    6)
@@ -6551,28 +7092,33 @@ LD Index
                                                              (line   19)
 * CHIP (MRI):                            MRI.                (line   58)
 * COLLECT_NO_DEMANGLE:                   Environment.        (line   29)
-* combining symbols, warnings on:        Options.            (line 1218)
+* combining symbols, warnings on:        Options.            (line 1292)
 * command files:                         Scripts.            (line    6)
 * command line:                          Options.            (line    6)
-* common allocation:                     Options.            (line  149)
+* common allocation:                     Options.            (line  158)
 * common allocation in linker script:    Miscellaneous Commands.
                                                              (line   20)
 * common symbol placement:               Input Section Common.
                                                              (line    6)
-* compatibility, MRI:                    Options.            (line  139)
+* COMMONPAGESIZE:                        Symbolic Constants. (line   13)
+* compatibility, MRI:                    Options.            (line  148)
+* CONSTANT:                              Symbolic Constants. (line    6)
 * constants in linker scripts:           Constants.          (line    6)
+* constraints on output sections:        Output Section Constraint.
+                                                             (line    6)
 * CONSTRUCTORS:                          Output Section Keywords.
                                                              (line   19)
-* constructors:                          Options.            (line  509)
+* constructors:                          Options.            (line  541)
 * constructors, arranging in link:       Output Section Keywords.
                                                              (line   19)
+* Cortex-A8 erratum workaround:          i960.               (line   39)
 * crash of linker:                       Bug Criteria.       (line    9)
 * CREATE_OBJECT_SYMBOLS:                 Output Section Keywords.
                                                              (line    9)
-* creating a DEF file:                   WIN32.              (line  137)
-* cross reference table:                 Options.            (line  775)
+* creating a DEF file:                   WIN32.              (line  152)
+* cross reference table:                 Options.            (line  811)
 * cross references:                      Miscellaneous Commands.
-                                                             (line   30)
+                                                             (line   56)
 * current output location:               Location Counter.   (line    6)
 * data:                                  Output Section Data.
                                                              (line    6)
@@ -6580,32 +7126,32 @@ LD Index
                                                              (line   80)
 * DATA_SEGMENT_END(EXP):                 Builtin Functions.  (line  101)
 * DATA_SEGMENT_RELRO_END(OFFSET, EXP):   Builtin Functions.  (line  107)
-* dbx:                                   Options.            (line 1154)
-* DEF files, creating:                   Options.            (line 1577)
+* dbx:                                   Options.            (line 1220)
+* DEF files, creating:                   Options.            (line 1676)
 * default emulation:                     Environment.        (line   21)
 * default input format:                  Environment.        (line    9)
 * DEFINED(SYMBOL):                       Builtin Functions.  (line  118)
-* deleting local symbols:                Options.            (line  534)
+* deleting local symbols:                Options.            (line  566)
 * demangling, default:                   Environment.        (line   29)
-* demangling, from command line:         Options.            (line  816)
-* direct linking to a dll:               WIN32.              (line  218)
+* demangling, from command line:         Options.            (line  852)
+* direct linking to a dll:               WIN32.              (line  233)
 * discarding sections:                   Output Section Discarding.
                                                              (line    6)
 * discontinuous memory:                  MEMORY.             (line    6)
-* DLLs, creating:                        Options.            (line 1483)
-* DLLs, linking to:                      Options.            (line 1608)
+* DLLs, creating:                        Options.            (line 1676)
+* DLLs, linking to:                      Options.            (line 1707)
 * dot:                                   Location Counter.   (line    6)
 * dot inside sections:                   Location Counter.   (line   36)
 * dot outside sections:                  Location Counter.   (line   66)
-* dynamic linker, from command line:     Options.            (line  829)
-* dynamic symbol table:                  Options.            (line  179)
+* dynamic linker, from command line:     Options.            (line  865)
+* dynamic symbol table:                  Options.            (line  201)
 * ELF program headers:                   PHDRS.              (line    6)
-* emulation:                             Options.            (line  340)
+* emulation:                             Options.            (line  372)
 * emulation, default:                    Environment.        (line   21)
 * END (MRI):                             MRI.                (line   62)
-* endianness:                            Options.            (line  198)
+* endianness:                            Options.            (line  228)
 * entry point:                           Entry Point.        (line    6)
-* entry point, from command line:        Options.            (line  158)
+* entry point, from command line:        Options.            (line  167)
 * entry point, thumb:                    ARM.                (line   17)
 * ENTRY(SYMBOL):                         Entry Point.        (line    6)
 * error on valid input:                  Bug Criteria.       (line   12)
@@ -6627,56 +7173,58 @@ LD Index
                                                              (line    6)
 * FILL(EXPRESSION):                      Output Section Data.
                                                              (line   39)
-* finalization function:                 Options.            (line  250)
-* first input file:                      File Commands.      (line   79)
+* finalization function:                 Options.            (line  280)
+* first input file:                      File Commands.      (line   82)
 * first instruction:                     Entry Point.        (line    6)
-* FIX_V4BX:                              ARM.                (line   44)
+* FIX_V4BX:                              ARM.                (line   49)
+* FIX_V4BX_INTERWORKING:                 ARM.                (line   62)
 * FORCE_COMMON_ALLOCATION:               Miscellaneous Commands.
                                                              (line   20)
 * forcing input section alignment:       Forced Input Alignment.
                                                              (line    6)
 * forcing output section alignment:      Forced Output Alignment.
                                                              (line    6)
-* forcing the creation of dynamic sections: Options.         (line  432)
+* forcing the creation of dynamic sections: Options.         (line  464)
 * FORMAT (MRI):                          MRI.                (line   66)
 * functions in expressions:              Builtin Functions.  (line    6)
-* garbage collection <1>:                Input Section Keep. (line    6)
-* garbage collection:                    Options.            (line  848)
-* generating optimized output:           Options.            (line  413)
+* garbage collection <1>:                Options.            (line  909)
+* garbage collection <2>:                Input Section Keep. (line    6)
+* garbage collection:                    Options.            (line  887)
+* generating optimized output:           Options.            (line  445)
 * GNU linker:                            Overview.           (line    6)
 * GNUTARGET:                             Environment.        (line    9)
-* GROUP(FILES):                          File Commands.      (line   44)
-* grouping input files:                  File Commands.      (line   44)
-* groups of archives:                    Options.            (line  643)
+* GROUP(FILES):                          File Commands.      (line   47)
+* grouping input files:                  File Commands.      (line   47)
+* groups of archives:                    Options.            (line  675)
 * H8/300 support:                        H8/300.             (line    6)
 * header size:                           Builtin Functions.  (line  183)
-* heap size:                             Options.            (line 1519)
-* help:                                  Options.            (line  865)
+* heap size:                             Options.            (line 1618)
+* help:                                  Options.            (line  918)
 * holes:                                 Location Counter.   (line   12)
 * holes, filling:                        Output Section Data.
                                                              (line   39)
 * HPPA multiple sub-space stubs:         HPPA ELF32.         (line    6)
 * HPPA stub grouping:                    HPPA ELF32.         (line   12)
 * i960 support:                          i960.               (line    6)
-* image base:                            Options.            (line 1526)
+* image base:                            Options.            (line 1625)
 * implicit linker scripts:               Implicit Linker Scripts.
                                                              (line    6)
 * import libraries:                      WIN32.              (line   10)
 * INCLUDE FILENAME:                      File Commands.      (line    9)
 * including a linker script:             File Commands.      (line    9)
-* including an entire archive:           Options.            (line 1328)
-* incremental link:                      Options.            (line  276)
+* including an entire archive:           Options.            (line 1405)
+* incremental link:                      Options.            (line  306)
 * INHIBIT_COMMON_ALLOCATION:             Miscellaneous Commands.
                                                              (line   25)
-* initialization function:               Options.            (line  279)
+* initialization function:               Options.            (line  309)
 * initialized data in ROM:               Output Section LMA. (line   26)
 * input file format in linker script:    Format Commands.    (line   35)
 * input filename symbols:                Output Section Keywords.
                                                              (line    9)
-* input files in linker scripts:         File Commands.      (line   16)
-* input files, displaying:               Options.            (line  475)
-* input format:                          Options.            (line  115)
-* input object files in linker scripts:  File Commands.      (line   16)
+* input files in linker scripts:         File Commands.      (line   19)
+* input files, displaying:               Options.            (line  507)
+* input format:                          Options.            (line  124)
+* input object files in linker scripts:  File Commands.      (line   19)
 * input section alignment:               Forced Input Alignment.
                                                              (line    6)
 * input section basics:                  Input Section Basics.
@@ -6684,114 +7232,126 @@ LD Index
 * input section wildcards:               Input Section Wildcards.
                                                              (line    6)
 * input sections:                        Input Section.      (line    6)
-* INPUT(FILES):                          File Commands.      (line   16)
+* INPUT(FILES):                          File Commands.      (line   19)
+* INSERT:                                Miscellaneous Commands.
+                                                             (line   30)
+* insert user script into default script: Miscellaneous Commands.
+                                                             (line   30)
 * integer notation:                      Constants.          (line    6)
-* integer suffixes:                      Constants.          (line   12)
+* integer suffixes:                      Constants.          (line   15)
 * internal object-file format:           Canonical format.   (line   11)
 * invalid input:                         Bug Criteria.       (line   14)
-* K and M integer suffixes:              Constants.          (line   12)
+* K and M integer suffixes:              Constants.          (line   15)
 * KEEP:                                  Input Section Keep. (line    6)
-* l =:                                   MEMORY.             (line   72)
+* l =:                                   MEMORY.             (line   74)
 * lazy evaluation:                       Evaluation.         (line    6)
 * ld bugs, reporting:                    Bug Reporting.      (line    6)
 * LDEMULATION:                           Environment.        (line   21)
-* len =:                                 MEMORY.             (line   72)
-* LENGTH =:                              MEMORY.             (line   72)
+* len =:                                 MEMORY.             (line   74)
+* LENGTH =:                              MEMORY.             (line   74)
 * LENGTH(MEMORY):                        Builtin Functions.  (line  135)
-* library search path in linker script:  File Commands.      (line   71)
-* link map:                              Options.            (line  350)
-* link-time runtime library search path: Options.            (line 1045)
+* library search path in linker script:  File Commands.      (line   74)
+* link map:                              Options.            (line  382)
+* link-time runtime library search path: Options.            (line 1107)
 * linker crash:                          Bug Criteria.       (line    9)
 * linker script concepts:                Basic Script Concepts.
                                                              (line    6)
 * linker script example:                 Simple Example.     (line    6)
 * linker script file commands:           File Commands.      (line    6)
 * linker script format:                  Script Format.      (line    6)
-* linker script input object files:      File Commands.      (line   16)
+* linker script input object files:      File Commands.      (line   19)
 * linker script simple commands:         Simple Commands.    (line    6)
 * linker scripts:                        Scripts.            (line    6)
 * LIST (MRI):                            MRI.                (line   77)
-* little-endian objects:                 Options.            (line  201)
+* little-endian objects:                 Options.            (line  231)
 * LOAD (MRI):                            MRI.                (line   84)
 * load address:                          Output Section LMA. (line    6)
 * LOADADDR(SECTION):                     Builtin Functions.  (line  138)
 * loading, preventing:                   Output Section Type.
                                                              (line   22)
-* local symbols, deleting:               Options.            (line  538)
+* local symbols, deleting:               Options.            (line  570)
 * location counter:                      Location Counter.   (line    6)
 * LONG(EXPRESSION):                      Output Section Data.
                                                              (line    6)
-* M and K integer suffixes:              Constants.          (line   12)
+* M and K integer suffixes:              Constants.          (line   15)
 * M68HC11 and 68HC12 support:            M68HC11/68HC12.     (line    6)
 * machine architecture:                  Miscellaneous Commands.
-                                                             (line   46)
+                                                             (line   72)
 * machine dependencies:                  Machine Dependent.  (line    6)
 * mapping input sections to output sections: Input Section.  (line    6)
 * MAX:                                   Builtin Functions.  (line  143)
+* MAXPAGESIZE:                           Symbolic Constants. (line   10)
 * MEMORY:                                MEMORY.             (line    6)
-* memory region attributes:              MEMORY.             (line   32)
+* memory region attributes:              MEMORY.             (line   34)
 * memory regions:                        MEMORY.             (line    6)
 * memory regions and sections:           Output Section Region.
                                                              (line    6)
-* memory usage:                          Options.            (line  877)
+* memory usage:                          Options.            (line  930)
 * MIN:                                   Builtin Functions.  (line  146)
+* Motorola 68K GOT generation:           M68K.               (line    6)
 * MRI compatibility:                     MRI.                (line    6)
 * MSP430 extra sections:                 MSP430.             (line   11)
 * NAME (MRI):                            MRI.                (line   90)
 * name, section:                         Output Section Name.
                                                              (line    6)
 * names:                                 Symbols.            (line    6)
-* naming the output file:                Options.            (line  407)
+* naming the output file:                Options.            (line  439)
 * NEXT(EXP):                             Builtin Functions.  (line  150)
-* NMAGIC:                                Options.            (line  387)
-* NO_ENUM_SIZE_WARNING:                  ARM.                (line   94)
+* NMAGIC:                                Options.            (line  419)
+* NO_ENUM_SIZE_WARNING:                  ARM.                (line  111)
+* NO_WCHAR_SIZE_WARNING:                 ARM.                (line  118)
 * NOCROSSREFS(SECTIONS):                 Miscellaneous Commands.
-                                                             (line   30)
+                                                             (line   56)
 * NOLOAD:                                Output Section Type.
                                                              (line   22)
 * not enough room for program headers:   Builtin Functions.  (line  188)
-* o =:                                   MEMORY.             (line   67)
+* o =:                                   MEMORY.             (line   69)
 * objdump -i:                            BFD.                (line    6)
 * object file management:                BFD.                (line    6)
 * object files:                          Options.            (line   29)
 * object formats available:              BFD.                (line    6)
-* object size:                           Options.            (line  259)
-* OMAGIC:                                Options.            (line  392)
+* object size:                           Options.            (line  289)
+* OMAGIC:                                Options.            (line  424)
+* ONLY_IF_RO:                            Output Section Constraint.
+                                                             (line    6)
+* ONLY_IF_RW:                            Output Section Constraint.
+                                                             (line    6)
 * opening object files:                  BFD outline.        (line    6)
 * operators for arithmetic:              Operators.          (line    6)
 * options:                               Options.            (line    6)
 * ORDER (MRI):                           MRI.                (line   95)
-* org =:                                 MEMORY.             (line   67)
-* ORIGIN =:                              MEMORY.             (line   67)
+* org =:                                 MEMORY.             (line   69)
+* ORIGIN =:                              MEMORY.             (line   69)
 * ORIGIN(MEMORY):                        Builtin Functions.  (line  156)
 * orphan:                                Orphan Sections.    (line    6)
-* output file after errors:              Options.            (line  947)
+* output file after errors:              Options.            (line 1009)
 * output file format in linker script:   Format Commands.    (line   10)
-* output file name in linker script:     File Commands.      (line   61)
+* output file name in linker script:     File Commands.      (line   64)
 * output section alignment:              Forced Output Alignment.
                                                              (line    6)
 * output section attributes:             Output Section Attributes.
                                                              (line    6)
 * output section data:                   Output Section Data.
                                                              (line    6)
-* OUTPUT(FILENAME):                      File Commands.      (line   61)
+* OUTPUT(FILENAME):                      File Commands.      (line   64)
 * OUTPUT_ARCH(BFDARCH):                  Miscellaneous Commands.
-                                                             (line   46)
+                                                             (line   72)
 * OUTPUT_FORMAT(BFDNAME):                Format Commands.    (line   10)
 * OVERLAY:                               Overlay Description.
                                                              (line    6)
 * overlays:                              Overlay Description.
                                                              (line    6)
-* partial link:                          Options.            (line  436)
-* PHDRS:                                 PHDRS.              (line    6)
-* PIC_VENEER:                            M68HC11/68HC12.     (line   38)
-* position independent executables:      Options.            (line  974)
-* PowerPC ELF32 options:                 PowerPC ELF32.      (line   13)
-* PowerPC GOT:                           PowerPC ELF32.      (line   30)
+* partial link:                          Options.            (line  468)
+* PE import table prefixing:             ARM.                (line   23)
+* PHDRS:                                 PHDRS.              (line   61)
+* PIC_VENEER:                            ARM.                (line  124)
+* position independent executables:      Options.            (line 1036)
+* PowerPC ELF32 options:                 PowerPC ELF32.      (line   16)
+* PowerPC GOT:                           PowerPC ELF32.      (line   33)
 * PowerPC long branches:                 PowerPC ELF32.      (line    6)
-* PowerPC PLT:                           PowerPC ELF32.      (line   13)
-* PowerPC stub symbols:                  PowerPC ELF32.      (line   44)
-* PowerPC TLS optimization:              PowerPC ELF32.      (line   48)
+* PowerPC PLT:                           PowerPC ELF32.      (line   16)
+* PowerPC stub symbols:                  PowerPC ELF32.      (line   47)
+* PowerPC TLS optimization:              PowerPC ELF32.      (line   51)
 * PowerPC64 dot symbols:                 PowerPC64 ELF64.    (line   33)
 * PowerPC64 ELF64 options:               PowerPC64 ELF64.    (line    6)
 * PowerPC64 multi-TOC:                   PowerPC64 ELF64.    (line   74)
@@ -6815,43 +7375,46 @@ LD Index
 * QUAD(EXPRESSION):                      Output Section Data.
                                                              (line    6)
 * quoted symbol names:                   Symbols.            (line    6)
-* read-only text:                        Options.            (line  387)
-* read/write from cmd line:              Options.            (line  392)
+* read-only text:                        Options.            (line  419)
+* read/write from cmd line:              Options.            (line  424)
+* region alias:                          REGION_ALIAS.       (line    6)
+* region names:                          REGION_ALIAS.       (line    6)
+* REGION_ALIAS(ALIAS, REGION):           REGION_ALIAS.       (line    6)
 * regions of memory:                     MEMORY.             (line    6)
 * relative expressions:                  Expression Section. (line    6)
-* relaxing addressing modes:             Options.            (line  988)
+* relaxing addressing modes:             Options.            (line 1050)
 * relaxing on H8/300:                    H8/300.             (line    9)
 * relaxing on i960:                      i960.               (line   31)
 * relaxing on M68HC11:                   M68HC11/68HC12.     (line   12)
 * relaxing on Xtensa:                    Xtensa.             (line   27)
 * relocatable and absolute symbols:      Expression Section. (line    6)
-* relocatable output:                    Options.            (line  436)
+* relocatable output:                    Options.            (line  468)
 * removing sections:                     Output Section Discarding.
                                                              (line    6)
 * reporting bugs in ld:                  Reporting Bugs.     (line    6)
 * requirements for BFD:                  BFD.                (line   16)
-* retain relocations in final executable: Options.           (line  423)
-* retaining specified symbols:           Options.            (line 1009)
+* retain relocations in final executable: Options.           (line  455)
+* retaining specified symbols:           Options.            (line 1071)
 * ROM initialized data:                  Output Section LMA. (line   26)
 * round up expression:                   Builtin Functions.  (line   36)
 * round up location counter:             Builtin Functions.  (line   36)
-* runtime library name:                  Options.            (line  267)
-* runtime library search path:           Options.            (line 1023)
-* runtime pseudo-relocation:             WIN32.              (line  196)
-* scaled integers:                       Constants.          (line   12)
+* runtime library name:                  Options.            (line  297)
+* runtime library search path:           Options.            (line 1085)
+* runtime pseudo-relocation:             WIN32.              (line  211)
+* scaled integers:                       Constants.          (line   15)
 * scommon section:                       Input Section Common.
                                                              (line   20)
-* script files:                          Options.            (line  479)
+* script files:                          Options.            (line  520)
 * scripts:                               Scripts.            (line    6)
-* search directory, from cmd line:       Options.            (line  318)
-* search path in linker script:          File Commands.      (line   71)
-* SEARCH_DIR(PATH):                      File Commands.      (line   71)
+* search directory, from cmd line:       Options.            (line  348)
+* search path in linker script:          File Commands.      (line   74)
+* SEARCH_DIR(PATH):                      File Commands.      (line   74)
 * SECT (MRI):                            MRI.                (line  109)
 * section address:                       Output Section Address.
                                                              (line    6)
 * section address in expression:         Builtin Functions.  (line   17)
 * section alignment:                     Builtin Functions.  (line   62)
-* section alignment, warnings on:        Options.            (line 1309)
+* section alignment, warnings on:        Options.            (line 1383)
 * section data:                          Output Section Data.
                                                              (line    6)
 * section fill pattern:                  Output Section Fill.
@@ -6870,10 +7433,10 @@ LD Index
 * SECTIONS:                              SECTIONS.           (line    6)
 * sections, discarding:                  Output Section Discarding.
                                                              (line    6)
-* segment origins, cmd line:             Options.            (line 1170)
+* segment origins, cmd line:             Options.            (line 1236)
 * SEGMENT_START(SEGMENT, DEFAULT):       Builtin Functions.  (line  159)
 * segments, ELF:                         PHDRS.              (line    6)
-* shared libraries:                      Options.            (line 1102)
+* shared libraries:                      Options.            (line 1164)
 * SHORT(EXPRESSION):                     Output Section Data.
                                                              (line    6)
 * SIZEOF(SECTION):                       Builtin Functions.  (line  167)
@@ -6895,61 +7458,64 @@ LD Index
 * SPU plugins:                           SPU ELF.            (line    6)
 * SQUAD(EXPRESSION):                     Output Section Data.
                                                              (line    6)
-* stack size:                            Options.            (line 1760)
+* stack size:                            Options.            (line 1865)
 * standard Unix system:                  Options.            (line    7)
 * start of execution:                    Entry Point.        (line    6)
-* STARTUP(FILENAME):                     File Commands.      (line   79)
-* strip all symbols:                     Options.            (line  466)
-* strip debugger symbols:                Options.            (line  470)
-* stripping all but some symbols:        Options.            (line 1009)
+* STARTUP(FILENAME):                     File Commands.      (line   82)
+* strip all symbols:                     Options.            (line  498)
+* strip debugger symbols:                Options.            (line  502)
+* stripping all but some symbols:        Options.            (line 1071)
+* STUB_GROUP_SIZE:                       ARM.                (line  129)
 * SUBALIGN(SUBSECTION_ALIGN):            Forced Input Alignment.
                                                              (line    6)
-* suffixes for integers:                 Constants.          (line   12)
+* suffixes for integers:                 Constants.          (line   15)
 * symbol defaults:                       Builtin Functions.  (line  118)
 * symbol definition, scripts:            Assignments.        (line    6)
 * symbol names:                          Symbols.            (line    6)
-* symbol tracing:                        Options.            (line  544)
+* symbol tracing:                        Options.            (line  576)
 * symbol versions:                       VERSION.            (line    6)
-* symbol-only input:                     Options.            (line  455)
-* symbols, from command line:            Options.            (line  803)
+* symbol-only input:                     Options.            (line  487)
+* symbolic constants:                    Symbolic Constants. (line    6)
+* symbols, from command line:            Options.            (line  839)
 * symbols, relocatable and absolute:     Expression Section. (line    6)
-* symbols, retaining selectively:        Options.            (line 1009)
-* synthesizing linker:                   Options.            (line  988)
+* symbols, retaining selectively:        Options.            (line 1071)
+* synthesizing linker:                   Options.            (line 1050)
 * synthesizing on H8/300:                H8/300.             (line   14)
 * TARGET(BFDNAME):                       Format Commands.    (line   35)
-* TARGET1:                               ARM.                (line   27)
-* TARGET2:                               ARM.                (line   32)
+* TARGET1:                               ARM.                (line   32)
+* TARGET2:                               ARM.                (line   37)
+* text segment origin, cmd line:         Options.            (line 1243)
 * thumb entry point:                     ARM.                (line   17)
 * TI COFF versions:                      TI COFF.            (line    6)
-* traditional format:                    Options.            (line 1149)
+* traditional format:                    Options.            (line 1215)
 * trampoline generation on M68HC11:      M68HC11/68HC12.     (line   31)
 * trampoline generation on M68HC12:      M68HC11/68HC12.     (line   31)
 * unallocated address, next:             Builtin Functions.  (line  150)
-* undefined symbol:                      Options.            (line  501)
+* undefined symbol:                      Options.            (line  533)
 * undefined symbol in linker script:     Miscellaneous Commands.
                                                              (line   13)
-* undefined symbols, warnings on:        Options.            (line 1305)
+* undefined symbols, warnings on:        Options.            (line 1379)
 * uninitialized data placement:          Input Section Common.
                                                              (line    6)
 * unspecified memory:                    Output Section Data.
                                                              (line   39)
-* usage:                                 Options.            (line  865)
-* USE_BLX:                               ARM.                (line   57)
-* using a DEF file:                      WIN32.              (line   42)
+* usage:                                 Options.            (line  918)
+* USE_BLX:                               ARM.                (line   74)
+* using a DEF file:                      WIN32.              (line   57)
 * using auto-export functionality:       WIN32.              (line   22)
-* Using decorations:                     WIN32.              (line  141)
+* Using decorations:                     WIN32.              (line  156)
 * variables, defining:                   Assignments.        (line    6)
-* verbose:                               Options.            (line 1205)
-* version:                               Options.            (line  528)
+* verbose:                               Options.            (line 1275)
+* version:                               Options.            (line  560)
 * version script:                        VERSION.            (line    6)
-* version script, symbol versions:       Options.            (line 1211)
+* version script, symbol versions:       Options.            (line 1281)
 * VERSION {script text}:                 VERSION.            (line    6)
 * versions of symbols:                   VERSION.            (line    6)
-* VFP11_DENORM_FIX:                      ARM.                (line   66)
-* warnings, on combining symbols:        Options.            (line 1218)
-* warnings, on section alignment:        Options.            (line 1309)
-* warnings, on undefined symbols:        Options.            (line 1305)
-* weak externals:                        WIN32.              (line  386)
+* VFP11_DENORM_FIX:                      ARM.                (line   83)
+* warnings, on combining symbols:        Options.            (line 1292)
+* warnings, on section alignment:        Options.            (line 1383)
+* warnings, on undefined symbols:        Options.            (line 1379)
+* weak externals:                        WIN32.              (line  401)
 * what is this?:                         Overview.           (line    6)
 * wildcard file name patterns:           Input Section Wildcards.
                                                              (line    6)
@@ -6959,83 +7525,87 @@ LD Index
 
 \1f
 Tag Table:
-Node: Top\7f750
-Node: Overview\7f1524
-Node: Invocation\7f2638
-Node: Options\7f3046
-Node: Environment\7f83631
-Node: Scripts\7f85391
-Node: Basic Script Concepts\7f87125
-Node: Script Format\7f89832
-Node: Simple Example\7f90695
-Node: Simple Commands\7f93791
-Node: Entry Point\7f94242
-Node: File Commands\7f95001
-Node: Format Commands\7f98867
-Node: Miscellaneous Commands\7f100833
-Node: Assignments\7f103063
-Node: Simple Assignments\7f103554
-Node: PROVIDE\7f105290
-Node: PROVIDE_HIDDEN\7f106495
-Node: Source Code Reference\7f106739
-Node: SECTIONS\7f110319
-Node: Output Section Description\7f112210
-Node: Output Section Name\7f113263
-Node: Output Section Address\7f114139
-Node: Input Section\7f115788
-Node: Input Section Basics\7f116589
-Node: Input Section Wildcards\7f118939
-Node: Input Section Common\7f123672
-Node: Input Section Keep\7f125154
-Node: Input Section Example\7f125644
-Node: Output Section Data\7f126612
-Node: Output Section Keywords\7f129389
-Node: Output Section Discarding\7f132958
-Node: Output Section Attributes\7f134139
-Node: Output Section Type\7f135143
-Node: Output Section LMA\7f136297
-Node: Forced Output Alignment\7f138810
-Node: Forced Input Alignment\7f139078
-Node: Output Section Region\7f139463
-Node: Output Section Phdr\7f139893
-Node: Output Section Fill\7f140557
-Node: Overlay Description\7f141699
-Node: MEMORY\7f146002
-Node: PHDRS\7f150202
-Node: VERSION\7f155241
-Node: Expressions\7f163033
-Node: Constants\7f163911
-Node: Symbols\7f164472
-Node: Orphan Sections\7f165210
-Node: Location Counter\7f165973
-Node: Operators\7f170409
-Node: Evaluation\7f171331
-Node: Expression Section\7f172695
-Node: Builtin Functions\7f174184
-Node: Implicit Linker Scripts\7f182151
-Node: Machine Dependent\7f182926
-Node: H8/300\7f183897
-Node: i960\7f185522
-Node: M68HC11/68HC12\7f187207
-Node: ARM\7f188910
-Node: HPPA ELF32\7f193760
-Node: MMIX\7f195383
-Node: MSP430\7f196600
-Node: PowerPC ELF32\7f197649
-Node: PowerPC64 ELF64\7f200263
-Node: SPU ELF\7f204677
-Node: TI COFF\7f207309
-Node: WIN32\7f207835
-Node: Xtensa\7f226192
-Node: BFD\7f229314
-Node: BFD outline\7f230769
-Node: BFD information loss\7f232055
-Node: Canonical format\7f234572
-Node: Reporting Bugs\7f238929
-Node: Bug Criteria\7f239623
-Node: Bug Reporting\7f240322
-Node: MRI\7f247361
-Node: GNU Free Documentation License\7f252004
-Node: LD Index\7f271721
+Node: Top\7f759
+Node: Overview\7f1542
+Node: Invocation\7f2656
+Node: Options\7f3064
+Node: Environment\7f90607
+Node: Scripts\7f92367
+Node: Basic Script Concepts\7f94101
+Node: Script Format\7f96808
+Node: Simple Example\7f97671
+Node: Simple Commands\7f100767
+Node: Entry Point\7f101273
+Node: File Commands\7f102032
+Node: Format Commands\7f106033
+Node: REGION_ALIAS\7f107989
+Node: Miscellaneous Commands\7f112821
+Node: Assignments\7f116197
+Node: Simple Assignments\7f116688
+Node: PROVIDE\7f118424
+Node: PROVIDE_HIDDEN\7f119629
+Node: Source Code Reference\7f119873
+Node: SECTIONS\7f123453
+Node: Output Section Description\7f125344
+Node: Output Section Name\7f126431
+Node: Output Section Address\7f127307
+Node: Input Section\7f129027
+Node: Input Section Basics\7f129828
+Node: Input Section Wildcards\7f133046
+Node: Input Section Common\7f137779
+Node: Input Section Keep\7f139261
+Node: Input Section Example\7f139751
+Node: Output Section Data\7f140719
+Node: Output Section Keywords\7f143496
+Node: Output Section Discarding\7f147065
+Node: Output Section Attributes\7f148246
+Node: Output Section Type\7f149347
+Node: Output Section LMA\7f150501
+Node: Forced Output Alignment\7f153014
+Node: Forced Input Alignment\7f153282
+Node: Output Section Constraint\7f153671
+Node: Output Section Region\7f154099
+Node: Output Section Phdr\7f154532
+Node: Output Section Fill\7f155196
+Node: Overlay Description\7f156338
+Node: MEMORY\7f160641
+Node: PHDRS\7f164974
+Node: VERSION\7f170013
+Node: Expressions\7f178088
+Node: Constants\7f179017
+Node: Symbolic Constants\7f179892
+Node: Symbols\7f180443
+Node: Orphan Sections\7f181190
+Node: Location Counter\7f182354
+Node: Operators\7f186790
+Node: Evaluation\7f187712
+Node: Expression Section\7f189076
+Node: Builtin Functions\7f190565
+Node: Implicit Linker Scripts\7f198532
+Node: Machine Dependent\7f199307
+Node: H8/300\7f200323
+Node: i960\7f201948
+Node: M68HC11/68HC12\7f204049
+Node: ARM\7f205503
+Node: HPPA ELF32\7f213015
+Node: M68K\7f214638
+Node: MMIX\7f215547
+Node: MSP430\7f216712
+Node: PowerPC ELF32\7f217761
+Node: PowerPC64 ELF64\7f220597
+Node: SPU ELF\7f225013
+Node: TI COFF\7f227645
+Node: WIN32\7f228171
+Node: Xtensa\7f247895
+Node: BFD\7f251017
+Node: BFD outline\7f252472
+Node: BFD information loss\7f253758
+Node: Canonical format\7f256275
+Node: Reporting Bugs\7f260632
+Node: Bug Criteria\7f261326
+Node: Bug Reporting\7f262025
+Node: MRI\7f269064
+Node: GNU Free Documentation License\7f273707
+Node: LD Index\7f293424
 \1f
 End Tag Table