Remove trailing spaces in ld
[binutils-gdb.git] / ld / ld.texinfo
index e12b64affb509cd4f9ea8840785b37e73860c950..cf3b586a0e2df99497711122b2e6c2b6f47bfc60 100644 (file)
@@ -973,6 +973,22 @@ modules from standard libraries.  @samp{-u} may be repeated with
 different option arguments to enter additional undefined symbols.  This
 option is equivalent to the @code{EXTERN} linker script command.
 
+If this option is being used to force additional modules to be pulled
+into the link, and if it is an error for the symbol to remain
+undefined, then the option @option{--require-defined} should be used
+instead.
+
+@kindex --require-defined=@var{symbol}
+@cindex symbols, require defined
+@cindex defined symbol
+@item --require-defined=@var{symbol}
+Require that @var{symbol} is defined in the output file.  This option
+is the same as option @option{--undefined} except that if @var{symbol}
+is not defined in the output file then the linker will issue an error
+and exit.  The same effect can be achieved in a linker script by using
+@code{EXTERN}, @code{ASSERT} and @code{DEFINED} together.  This option
+can be used multiple times to require additional symbols.
+
 @kindex -Ur
 @cindex constructors
 @item -Ur
@@ -1436,7 +1452,9 @@ it ends in a @code{.exe} suffix.
 Enable garbage collection of unused input sections.  It is ignored on
 targets that do not support this option.  The default behaviour (of not
 performing this garbage collection) can be restored by specifying
-@samp{--no-gc-sections} on the command line.
+@samp{--no-gc-sections} on the command line.  Note that garbage
+collection for COFF and PE format targets is supported, but the
+implementation is currently considered to be experimental.
 
 @samp{--gc-sections} decides which input sections are used by
 examining symbols and relocations.  The section containing the entry
@@ -2094,7 +2112,7 @@ which refers to it.
 @item --warn-orphan
 The @option{--warn-orphan} option tells the linker to generate a
 warning message whenever it has to place an orphan section into the
-output file.  @xref{Orphan Sections}  The @option{--no-warn-orphan}
+output file.  @xref{Orphan Sections}.  The @option{--no-warn-orphan}
 option restores the default behaviour of just silently placing these
 sections.
 
@@ -2226,11 +2244,12 @@ hash tables.  The default is @code{sysv}.
 @itemx --compress-debug-sections=zlib-gabi
 On ELF platforms , these options control how DWARF debug sections are
 compressed using zlib.  @option{--compress-debug-sections=none} doesn't
-compress DWARF debug sections.  @option{--compress-debug-sections=zlib}
-and @option{--compress-debug-sections=zlib-gnu} compress DWARF debug
+compress DWARF debug sections.
+@option{--compress-debug-sections=zlib-gnu} compresses DWARF debug
 sections and rename debug section names to begin with @samp{.zdebug}
-instead of @samp{.debug}.  @option{--compress-debug-sections=zlib-gabi}
-compresses DWARF debug sections with SHF_COMPRESSED from the ELF ABI.
+instead of @samp{.debug}.  @option{--compress-debug-sections=zlib}
+and @option{--compress-debug-sections=zlib-gabi}
+compress DWARF debug sections with SHF_COMPRESSED from the ELF ABI.
 
 @kindex --reduce-memory-overheads
 @item --reduce-memory-overheads
@@ -4967,9 +4986,10 @@ set section addresses based on the memory regions, and will warn about
 regions that become too full.  The linker will not shuffle sections
 around to fit into the available regions.
 
-A linker script may contain at most one use of the @code{MEMORY}
-command.  However, you can define as many blocks of memory within it as
-you wish.  The syntax is:
+A linker script may contain many uses of the @code{MEMORY} command,
+however, all memory blocks defined are treated as if they were
+specified inside a single @code{MEMORY} command.  The syntax for
+@code{MEMORY} is:
 @smallexample
 @group
 MEMORY
@@ -5972,7 +5992,7 @@ to the next @var{align} boundary.  The single operand @code{ALIGN}
 doesn't change the value of the location counter---it just does
 arithmetic on it.  The two operand @code{ALIGN} allows an arbitrary
 expression to be aligned upwards (@code{ALIGN(@var{align})} is
-equivalent to @code{ALIGN(., @var{align})}).
+equivalent to @code{ALIGN(ABSOLUTE(.), @var{align})}).
 
 Here is an example which aligns the output @code{.data} section to the
 next @code{0x2000} byte boundary after the preceding section and sets a