<html lang="en">
<head>
<title>Evaluation - 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="Operators.html#Operators" title="Operators">
<link rel="next" href="Expression-Section.html#Expression-Section" title="Expression Section">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU linker LD
(Sourcery G++ Lite 2011.03-41)
version 2.20.51.

Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Evaluation"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Expression-Section.html#Expression-Section">Expression Section</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Operators.html#Operators">Operators</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Expressions.html#Expressions">Expressions</a>
<hr>
</div>

<h4 class="subsection">3.10.7 Evaluation</h4>

<p><a name="index-lazy-evaluation-515"></a><a name="index-expression-evaluation-order-516"></a>The linker evaluates expressions lazily.  It only computes the value of
an expression when absolutely necessary.

   <p>The linker needs some information, such as the value of the start
address of the first section, and the origins and lengths of memory
regions, in order to do any linking at all.  These values are computed
as soon as possible when the linker reads in the linker script.

   <p>However, other values (such as symbol values) are not known or needed
until after storage allocation.  Such values are evaluated later, when
other information (such as the sizes of output sections) is available
for use in the symbol assignment expression.

   <p>The sizes of sections cannot be known until after allocation, so
assignments dependent upon these are not performed until after
allocation.

   <p>Some expressions, such as those depending upon the location counter
&lsquo;<samp><span class="samp">.</span></samp>&rsquo;, must be evaluated during section allocation.

   <p>If the result of an expression is required, but the value is not
available, then an error results.  For example, a script like the
following
<pre class="smallexample">     SECTIONS
       {
         .text 9+this_isnt_constant :
           { *(.text) }
       }
</pre>
   <p class="noindent">will cause the error message &lsquo;<samp><span class="samp">non constant expression for initial
address</span></samp>&rsquo;.

   </body></html>

