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.

10.23 About symbol versioning<br />

10.23.1 Version<br />

10.23.2 Default version<br />

10.23.3 Creating versioned symbols<br />

10.23.4 See also<br />

BPABI and SysV shared libraries and executables<br />

Symbol versioning records extra information about symbols imported from, and exported by, a<br />

dynamic shared object. The dynamic loader uses this extra information to ensure that all <strong>the</strong><br />

symbols required by an image are available at load time.<br />

Symbol versioning enables shared object creators to produce new versions of symbols for use<br />

by all new clients, while maintaining compatibility with clients linked against old versions of<br />

<strong>the</strong> shared object.<br />

Symbol versioning adds <strong>the</strong> concept of a version to <strong>the</strong> dynamic symbol table. A version is a<br />

name that symbols are associated with. When a dynamic loader tries to resolve a symbol<br />

reference associated with a version name, it can only match against a symbol definition with <strong>the</strong><br />

same version name.<br />

Note<br />

A version might be associated with previous version names to show <strong>the</strong> revision history of <strong>the</strong><br />

shared object.<br />

While a shared object might have multiple versions of <strong>the</strong> same symbol, a client of <strong>the</strong> shared<br />

object can only bind against <strong>the</strong> latest version.<br />

This is called <strong>the</strong> default version of <strong>the</strong> symbol.<br />

By default, <strong>the</strong> linker does not create versioned symbols for a non Base Platform Application<br />

Binary Interface (BPABI) shared object.<br />

Reference<br />

• Symbol versioning script file on page 10-28.<br />

<strong>Using</strong> <strong>the</strong> fromelf Image Converter:<br />

• --symbolversions, --no_symbolversions on page 4-72.<br />

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

ID080411 Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!