X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=ld%2Fld.info;h=6022958a842961afa53ac58f5beb7c6e461ed730;hp=28646e94c7eb756568315f3b171a08ded76dff82;hb=88750007d7869f178f0ba528f41efd3b74c424cf;hpb=6df9443a374e2b81278c61b8afc0a1eef7db280b diff --git a/ld/ld.info b/ld/ld.info index 28646e9..6022958 100644 --- a/ld/ld.info +++ b/ld/ld.info @@ -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'. + +  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  @@ -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.  -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::.  -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 + + 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); + } + } + + +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).  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.  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.  -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.  -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. + + +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::.  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.  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  -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.  -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. + + +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.  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. +  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:  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:  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'.  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':  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. +  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. -  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. +  -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.  -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. + + +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.  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:  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.  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  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  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.  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. +  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  Tag Table: -Node: Top750 -Node: Overview1524 -Node: Invocation2638 -Node: Options3046 -Node: Environment83631 -Node: Scripts85391 -Node: Basic Script Concepts87125 -Node: Script Format89832 -Node: Simple Example90695 -Node: Simple Commands93791 -Node: Entry Point94242 -Node: File Commands95001 -Node: Format Commands98867 -Node: Miscellaneous Commands100833 -Node: Assignments103063 -Node: Simple Assignments103554 -Node: PROVIDE105290 -Node: PROVIDE_HIDDEN106495 -Node: Source Code Reference106739 -Node: SECTIONS110319 -Node: Output Section Description112210 -Node: Output Section Name113263 -Node: Output Section Address114139 -Node: Input Section115788 -Node: Input Section Basics116589 -Node: Input Section Wildcards118939 -Node: Input Section Common123672 -Node: Input Section Keep125154 -Node: Input Section Example125644 -Node: Output Section Data126612 -Node: Output Section Keywords129389 -Node: Output Section Discarding132958 -Node: Output Section Attributes134139 -Node: Output Section Type135143 -Node: Output Section LMA136297 -Node: Forced Output Alignment138810 -Node: Forced Input Alignment139078 -Node: Output Section Region139463 -Node: Output Section Phdr139893 -Node: Output Section Fill140557 -Node: Overlay Description141699 -Node: MEMORY146002 -Node: PHDRS150202 -Node: VERSION155241 -Node: Expressions163033 -Node: Constants163911 -Node: Symbols164472 -Node: Orphan Sections165210 -Node: Location Counter165973 -Node: Operators170409 -Node: Evaluation171331 -Node: Expression Section172695 -Node: Builtin Functions174184 -Node: Implicit Linker Scripts182151 -Node: Machine Dependent182926 -Node: H8/300183897 -Node: i960185522 -Node: M68HC11/68HC12187207 -Node: ARM188910 -Node: HPPA ELF32193760 -Node: MMIX195383 -Node: MSP430196600 -Node: PowerPC ELF32197649 -Node: PowerPC64 ELF64200263 -Node: SPU ELF204677 -Node: TI COFF207309 -Node: WIN32207835 -Node: Xtensa226192 -Node: BFD229314 -Node: BFD outline230769 -Node: BFD information loss232055 -Node: Canonical format234572 -Node: Reporting Bugs238929 -Node: Bug Criteria239623 -Node: Bug Reporting240322 -Node: MRI247361 -Node: GNU Free Documentation License252004 -Node: LD Index271721 +Node: Top759 +Node: Overview1542 +Node: Invocation2656 +Node: Options3064 +Node: Environment90607 +Node: Scripts92367 +Node: Basic Script Concepts94101 +Node: Script Format96808 +Node: Simple Example97671 +Node: Simple Commands100767 +Node: Entry Point101273 +Node: File Commands102032 +Node: Format Commands106033 +Node: REGION_ALIAS107989 +Node: Miscellaneous Commands112821 +Node: Assignments116197 +Node: Simple Assignments116688 +Node: PROVIDE118424 +Node: PROVIDE_HIDDEN119629 +Node: Source Code Reference119873 +Node: SECTIONS123453 +Node: Output Section Description125344 +Node: Output Section Name126431 +Node: Output Section Address127307 +Node: Input Section129027 +Node: Input Section Basics129828 +Node: Input Section Wildcards133046 +Node: Input Section Common137779 +Node: Input Section Keep139261 +Node: Input Section Example139751 +Node: Output Section Data140719 +Node: Output Section Keywords143496 +Node: Output Section Discarding147065 +Node: Output Section Attributes148246 +Node: Output Section Type149347 +Node: Output Section LMA150501 +Node: Forced Output Alignment153014 +Node: Forced Input Alignment153282 +Node: Output Section Constraint153671 +Node: Output Section Region154099 +Node: Output Section Phdr154532 +Node: Output Section Fill155196 +Node: Overlay Description156338 +Node: MEMORY160641 +Node: PHDRS164974 +Node: VERSION170013 +Node: Expressions178088 +Node: Constants179017 +Node: Symbolic Constants179892 +Node: Symbols180443 +Node: Orphan Sections181190 +Node: Location Counter182354 +Node: Operators186790 +Node: Evaluation187712 +Node: Expression Section189076 +Node: Builtin Functions190565 +Node: Implicit Linker Scripts198532 +Node: Machine Dependent199307 +Node: H8/300200323 +Node: i960201948 +Node: M68HC11/68HC12204049 +Node: ARM205503 +Node: HPPA ELF32213015 +Node: M68K214638 +Node: MMIX215547 +Node: MSP430216712 +Node: PowerPC ELF32217761 +Node: PowerPC64 ELF64220597 +Node: SPU ELF225013 +Node: TI COFF227645 +Node: WIN32228171 +Node: Xtensa247895 +Node: BFD251017 +Node: BFD outline252472 +Node: BFD information loss253758 +Node: Canonical format256275 +Node: Reporting Bugs260632 +Node: Bug Criteria261326 +Node: Bug Reporting262025 +Node: MRI269064 +Node: GNU Free Documentation License273707 +Node: LD Index293424  End Tag Table