blob: b54cb8dcae611ee1538f9ef0f719b49da2ebde23 [file] [log] [blame]
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3.5. Target Dynamic Loader Requirements</title><link rel="stylesheet" href="cs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Sourcery G++ Lite"><link rel="up" href="chap-target.html" title="Chapter 3. Sourcery G++ Lite for ARM GNU/Linux"><link rel="prev" href="sec-kernel-version.html" title="3.4. Target Kernel Requirements"><link rel="next" href="included-libraries.html" title="3.6. Using Sourcery G++ Lite on GNU/Linux Targets"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.5. Target Dynamic Loader Requirements</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="sec-kernel-version.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Sourcery G++ Lite for ARM GNU/Linux</th><td width="20%" align="right"> <a accesskey="n" href="included-libraries.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec-dynamic-loader-version"></a>3.5. Target Dynamic Loader Requirements</h2></div></div></div><p>
The compiler supplied in Sourcery G++ Lite emits TLS Descriptor
sequences to access thread-local storage in position-independent
code. This is a new TLS access model, with a specification at
<a class="ulink" href="http://www.codesourcery.com/publications/RFC-TLSDESC-ARM.txt" target="_top">http://www.codesourcery.com/publications/RFC-TLSDESC-ARM.txt</a>.
It improves the performance of shared objects and
position-independent executables. This model requires dynamic
loader support. The loader included with Sourcery G++ Lite
(<code class="filename">lib/ld-linux.so.3</code>) includes the
necessary support. Support for the older ARM EABI-specified
access sequence is still provided and thus object files and
executables built by EABI-compliant toolchains, including
earlier versions of Sourcery G++ Lite, will continue to function. If
you need to use an older dynamic loader that lacks TLS
Descriptor support, you must compile all your code with
<code class="option">-mtls-dialect=arm</code>. This option selects the
previous TLS access method.
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="sec-kernel-version.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="chap-target.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="included-libraries.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.4. Target Kernel Requirements </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 3.6. Using Sourcery G++ Lite on GNU/Linux Targets</td></tr></table></div></body></html>