PR28902, -T script with INSERT ordering
authorAlan Modra <amodra@gmail.com>
Sat, 13 May 2023 05:20:23 +0000 (14:50 +0930)
committerAlan Modra <amodra@gmail.com>
Sat, 13 May 2023 05:42:48 +0000 (15:12 +0930)
The answer to PR28902 may be deduced from the existing INSERT
documentation that says the default script is parsed after the -T
INSERT script, if you assume (correctly) that nothing special is done
when inserting into -T scripts overriding the default script.  In both
cases INSERT handling looks for the specified output section later on
the internal list of parsed script commands.  This isn't obvious
though, so make the ordering explicit, and mention that section
assignments are the same too.

PR 28902
* ld.texi (INSERT): Specify ordering when -T is used both to
override the default script and to augment.

ld/ld.texi

index 012eec2e809d3e727d34c6d20da29a161e5d090a..8038de39106c6c357912e0c158da9f6a9d715715 100644 (file)
@@ -1085,7 +1085,8 @@ a linker bug report.
 @item -T @var{scriptfile}
 @itemx --script=@var{scriptfile}
 Use @var{scriptfile} as the linker script.  This script replaces
-@command{ld}'s default linker script (rather than adding to it), so
+@command{ld}'s default linker script (rather than adding to it),
+unless the script contains @code{INSERT}, so
 @var{commandfile} must specify everything necessary to describe the
 output file.  @xref{Scripts}.  If @var{scriptfile} does not exist in
 the current directory, @code{ld} looks for it in the directories
@@ -4442,6 +4443,12 @@ SECTIONS
 INSERT AFTER .text;
 @end smallexample
 
+Note that when @samp{-T} is used twice, once to override the default
+script and once to augment that script using @code{INSERT} the order
+of parsing and section assignments apply as for the default script.
+The script with @code{INSERT} should be specified @emph{first} on the
+command line.
+
 @item NOCROSSREFS(@var{section} @var{section} @dots{})
 @kindex NOCROSSREFS(@var{sections})
 @cindex cross references