toolchain/share/doc/ld.html/Orphan-Sections.html

80 lines
3.7 KiB
HTML
Raw Normal View History

2024-01-10 05:24:32 +00:00
<html lang="en">
<head>
<title>Orphan Sections - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Expressions.html#Expressions" title="Expressions">
<link rel="prev" href="Symbols.html#Symbols" title="Symbols">
<link rel="next" href="Location-Counter.html#Location-Counter" title="Location Counter">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU linker LD
(GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))
version 2.33.1.
Copyright (C) 1991-2019 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.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 Free Documentation License''.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Orphan-Sections"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Location-Counter.html#Location-Counter">Location Counter</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Symbols.html#Symbols">Symbols</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Expressions.html#Expressions">Expressions</a>
<hr>
</div>
<h4 class="subsection">3.10.4 Orphan Sections</h4>
<p><a name="index-orphan-566"></a>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 by either finding, or creating a suitable output section
in which to place the orphaned input section.
<p>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.
<p>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.
<p>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. On most modern targets, the
linker 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, or your target lacks this
support, the orphan section is placed at the end of the file.
<p>The command-line options &lsquo;<samp><span class="samp">--orphan-handling</span></samp>&rsquo; and &lsquo;<samp><span class="samp">--unique</span></samp>&rsquo;
(see <a href="Options.html#Options">Command-line Options</a>) can be used to control which
output sections an orphan is placed in.
</body></html>