06.02.2013 Views

ARM Compiler toolchain Using the Linker - ARM Information Center

ARM Compiler toolchain Using the Linker - ARM Information Center

ARM Compiler toolchain Using the Linker - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.17 Veneer sharing<br />

4.17.1 See also<br />

Image structure and generation<br />

If multiple objects result in <strong>the</strong> same veneer being created, <strong>the</strong> linker creates a single instance<br />

of that veneer. The veneer is <strong>the</strong>n shared by those objects.<br />

You can use <strong>the</strong> command-line option --no_veneershare to specify that veneers are not shared.<br />

This assigns ownership of <strong>the</strong> created veneer section to <strong>the</strong> object that created <strong>the</strong> veneer and so<br />

enables you to select veneers from a particular object in a scatter file, for example:<br />

LR 0x8000<br />

{<br />

ER_ROOT +0<br />

{<br />

object1.o(Veneer$$Code)<br />

}<br />

}<br />

Be aware that veneer sharing makes it impossible to assign an owning object. <strong>Using</strong><br />

--no_veneershare provides a more consistent image layout. However, this comes at <strong>the</strong> cost of<br />

a significant increase in code size, because of <strong>the</strong> extra veneers generated by <strong>the</strong> linker.<br />

Concepts<br />

• Overview of veneers on page 4-26<br />

• About scatter-loading on page 8-3.<br />

Reference<br />

<strong>Linker</strong> Reference:<br />

• --veneershare, --no_veneershare on page 2-183<br />

• Chapter 4 Formal syntax of <strong>the</strong> scatter file.<br />

<strong>ARM</strong> DUI 0474C Copyright © 2010-2011 <strong>ARM</strong>. All rights reserved. 4-27<br />

ID080411 Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!