<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU linker LD
(Linaro_Binutils-2017.01)
version 2.24.0.

Copyright (C) 1991-2013 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". -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>LD: Output Section Address</title>

<meta name="description" content="LD: Output Section Address">
<meta name="keywords" content="LD: Output Section Address">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="LD-Index.html#LD-Index" rel="index" title="LD Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="SECTIONS.html#SECTIONS" rel="up" title="SECTIONS">
<link href="Input-Section.html#Input-Section" rel="next" title="Input Section">
<link href="Output-Section-Name.html#Output-Section-Name" rel="prev" title="Output Section Name">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Output-Section-Address"></a>
<div class="header">
<p>
Next: <a href="Input-Section.html#Input-Section" accesskey="n" rel="next">Input Section</a>, Previous: <a href="Output-Section-Name.html#Output-Section-Name" accesskey="p" rel="prev">Output Section Name</a>, Up: <a href="SECTIONS.html#SECTIONS" accesskey="u" rel="up">SECTIONS</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LD-Index.html#LD-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Output-Section-Address-1"></a>
<h4 class="subsection">3.6.3 Output Section Address</h4>
<a name="index-address_002c-section"></a>
<a name="index-section-address"></a>
<p>The <var>address</var> is an expression for the VMA (the virtual memory
address) of the output section.  This address is optional, but if it
is provided then the output address will be set exactly as specified.
</p>
<p>If the output address is not specified then one will be chosen for the
section, based on the heuristic below.  This address will be adjusted
to fit the alignment requirement of the output section.  The
alignment requirement is the strictest alignment of any input section
contained within the output section.
</p>
<p>The output section address heuristic is as follows:
</p>
<ul>
<li> If an output memory <var>region</var> is set for the section then it
is added to this region and its address will be the next free address
in that region.

</li><li> If the MEMORY command has been used to create a list of memory
regions then the first region which has attributes compatible with the
section is selected to contain it.  The section&rsquo;s output address will
be the next free address in that region; <a href="MEMORY.html#MEMORY">MEMORY</a>.

</li><li> If no memory regions were specified, or none match the section then
the output address will be based on the current value of the location
counter.
</li></ul>

<p>For example:
</p>
<div class="smallexample">
<pre class="smallexample">.text . : { *(.text) }
</pre></div>

<p>and
</p>
<div class="smallexample">
<pre class="smallexample">.text : { *(.text) }
</pre></div>

<p>are subtly different.  The first will set the address of the
&lsquo;<samp>.text</samp>&rsquo; output section to the current value of the location
counter.  The second will set it to the current value of the location
counter aligned to the strictest alignment of any of the &lsquo;<samp>.text</samp>&rsquo;
input sections.
</p>
<p>The <var>address</var> may be an arbitrary expression; <a href="Expressions.html#Expressions">Expressions</a>.
For example, if you want to align the section on a 0x10 byte boundary,
so that the lowest four bits of the section address are zero, you could
do something like this:
</p><div class="smallexample">
<pre class="smallexample">.text ALIGN(0x10) : { *(.text) }
</pre></div>
<p>This works because <code>ALIGN</code> returns the current location counter
aligned upward to the specified value.
</p>
<p>Specifying <var>address</var> for a section will change the value of the
location counter, provided that the section is non-empty.  (Empty
sections are ignored).
</p>
<hr>
<div class="header">
<p>
Next: <a href="Input-Section.html#Input-Section" accesskey="n" rel="next">Input Section</a>, Previous: <a href="Output-Section-Name.html#Output-Section-Name" accesskey="p" rel="prev">Output Section Name</a>, Up: <a href="SECTIONS.html#SECTIONS" accesskey="u" rel="up">SECTIONS</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="LD-Index.html#LD-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
