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.

7.17 Reading a symdefs file<br />

7.17.1 See also<br />

Accessing and managing symbols with armlink<br />

A symdefs file can be considered as an object file with symbol information but no code or data.<br />

To read a symdefs file, add it to your file list as you do for any object file. The linker reads <strong>the</strong><br />

file and adds <strong>the</strong> symbols and <strong>the</strong>ir values to <strong>the</strong> output symbol table. The added symbols have<br />

ABSOLUTE and GLOBAL attributes.<br />

If a partial link is being performed, <strong>the</strong> symbols are added to <strong>the</strong> output object symbol table. If<br />

a full link is being performed, <strong>the</strong> symbols are added to <strong>the</strong> image symbol table.<br />

The linker generates error messages for invalid rows in <strong>the</strong> file. A row is invalid if:<br />

• any of <strong>the</strong> columns are missing<br />

• any of <strong>the</strong> columns have invalid values.<br />

The symbols extracted from a symdefs file are treated in exactly <strong>the</strong> same way as symbols<br />

extracted from an object symbol table. The same restrictions apply regarding multiple symbol<br />

definitions.<br />

Note<br />

The same function name or symbol name cannot be defined in both <strong>ARM</strong> code and in Thumb<br />

code.<br />

Reference<br />

• Symdefs file format on page 7-21.<br />

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

ID080411 Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!