ld: Orphan section documentation

Make more explicit mention of the fact that orphan sections can cause a
new output section to be created.  Though this information is clearly
implied in the manual it might not be clear enough.

A user _might_ (incorrectly) think that orphan sections can only be
inserted into an existing output section.

ld/ChangeLog:

	* ld.texinfo (Orphan Sections): Add more detail.
This commit is contained in:
Andrew Burgess 2017-01-17 18:08:17 +00:00
parent 86fa6981e7
commit a87ded7b88
1 changed files with 20 additions and 6 deletions

View File

@ -5762,12 +5762,26 @@ whereas @samp{A - B} is an expression involving subtraction.
Orphan sections are sections present in the input files which
are not explicitly placed into the output file by the linker
script. The linker will still copy these sections into the
output file, but it has to guess as to where they should be
placed. The linker uses a simple heuristic to do this. It
attempts to place orphan sections after non-orphan sections of the
same attribute, such as code vs data, loadable vs non-loadable, etc.
If there is not enough room to do this then it places
at the end of the file.
output file by either finding, or creating a suitable output section
in which to place the orphaned input section.
If the name of an orphaned input section exactly matches the name of
an existing output section, then the orphaned input section will be
placed at the end of that output section.
If there is no output section with a matching name then new output
sections will be created. Each new output section will have the same
name as the orphan section placed within it. If there are multiple
orphan sections with the same name, these will all be combined into
one new output section.
If new output sections are created to hold orphaned input sections,
then the linker must decide where to place these new output sections
in relation to existing output sections. The linker uses a simple
heuristic to do this. It attempts to place orphan sections after
sections of the same attribute, such as code vs data, loadable vs
non-loadable, etc. If no sections with matching attributes are found,
the orphan section is placed at the end of the file.
For ELF targets, the attribute of the section includes section type as
well as section flag.