<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 23, 2013 at 4:54 PM, Shankar Easwaran <span dir="ltr"><<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Nick,<br>
<br>
Thanks for your reply.<div class="im"><br>
<br>
On 8/23/2013 3:40 PM, Nick Kledzik wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
These are the changes I plan to make, and some questions that I have<br>
<br>
a) Define a new contentType for DefinedAtoms to say 'Expression'<br>
b) Create a new class ExprnAtom derived from DefinedAtom<br>
c) The expression could also contain various functions that could be set in the expression, how should that be represented ?<br>
I don’t understand this.  I thought expression where like "_foo + 10”.  What do you mean by functions set in expression?<br>
</blockquote></div>
Linker scripts can set expressions to be, some of the examples that I have seen are :-<br>
<br>
foo=SIZEOF(.text)<br>
foo=14+ADDR(.data)<br>
foo=ALIGN(4096)<div class="im"><br></div></blockquote><div><br></div><div>However, the kinds of expressions allowed in --defsym is much more restricted. From the GNU ld manpage:</div><div><br></div><div><div>       --defsym=symbol=expression</div>
<div>           Create a global symbol in the output file, containing the absolute address given by expression.  You may use this option as many times as</div><div>           necessary to define multiple symbols in the command line.  <b>A limited form of arithmetic is supported for the expression in this context: you may</b></div>
<div><b>           give a hexadecimal constant or the name of an existing symbol, or use "+" and "-" to add or subtract hexadecimal constants or symbols.</b>  If you</div><div>           need more elaborate expressions, consider using the linker command language from a script.  Note: there should be no white space between symbol,</div>
<div>           the equals sign ("="), and expression.</div></div><div><br></div><div><br></div><div>The full linker script expression language is another whole can of worms, and we probably only want to implement a judiciously chosen subset of the functionality. If you haven't already, check out <<a href="http://sourceware.org/binutils/docs/ld/Expressions.html">http://sourceware.org/binutils/docs/ld/Expressions.html</a>>. It is well-written.</div>
<div><br></div><div>-- Sean Silva </div></div></div></div>