[8520e58] | 1 | <?xml version="1.0" encoding="ISO-8859-1"?>
|
---|
[bd48e48] | 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
---|
| 3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
---|
[8520e58] | 4 | <!ENTITY % general-entities SYSTEM "../../general.ent">
|
---|
| 5 | %general-entities;
|
---|
| 6 | ]>
|
---|
| 7 |
|
---|
| 8 | <sect1 id="ch-system-abi">
|
---|
| 9 | <?dbhtml filename="abi.html"?>
|
---|
| 10 |
|
---|
| 11 | <title>ABI Variables</title>
|
---|
| 12 |
|
---|
[9cbe486] | 13 | <para os="a">On the ARM architecture, there are two major ABI types to choose
|
---|
| 14 | from: EABI and OABI. There is also a Thumb ABI and an Intel IWMMX specific
|
---|
[2e5c4b9] | 15 | ABI but these are generally not recommended for most uses.</para>
|
---|
[9cbe486] | 16 |
|
---|
| 17 | <para os="b">The EABI (Embedded ABI) is newer and supports additional
|
---|
| 18 | features, faster software floating point operations, and Thumb interworking,
|
---|
| 19 | but is only compatible with ARMv4t and newer cores. The EABI has
|
---|
| 20 | sub-ABIs of: aapcs-linux and aapcs. aapcs-linux has standard Linux 4 byte
|
---|
[2e5c4b9] | 21 | enums while aapcs has variable length enums. aapcs-linux is recommended over
|
---|
| 22 | aapcs.</para>
|
---|
[9cbe486] | 23 |
|
---|
| 24 | <para os="c">The OABI (old ABI) is called apcs-gnu and supports ARMv4 and
|
---|
[2e5c4b9] | 25 | older cores. Generally the OABI is not used by modern ARM processors.</para>
|
---|
[9cbe486] | 26 |
|
---|
[d599ff5] | 27 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 28 | href="../common/abi.xml"
|
---|
[d599ff5] | 29 | xpointer="xpointer(//*[@os='a'])"/>
|
---|
[8520e58] | 30 |
|
---|
[d599ff5] | 31 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 32 | href="../common/abi.xml"
|
---|
[d599ff5] | 33 | xpointer="xpointer(//*[@os='b'])"/>
|
---|
[8520e58] | 34 |
|
---|
[d599ff5] | 35 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 36 | href="../common/abi.xml"
|
---|
[d599ff5] | 37 | xpointer="xpointer(//*[@os='c'])"/>
|
---|
[8520e58] | 38 |
|
---|
| 39 | <table>
|
---|
| 40 | <title>List of Build Variables</title>
|
---|
[3ca2208] | 41 | <?dbfo table-width="3in" ?>
|
---|
| 42 |
|
---|
| 43 | <tgroup cols="2">
|
---|
| 44 |
|
---|
| 45 | <colspec colnum="1" colwidth="1.5in" colname="ABI to Select"/>
|
---|
| 46 | <colspec colnum="2" colwidth="1.5in" colname="Variable Value"/>
|
---|
[23b90d8] | 47 | <colspec colnum="3" colwidth="2in" colname="Note"/>
|
---|
[3ca2208] | 48 |
|
---|
[8520e58] | 49 | <thead>
|
---|
| 50 | <row>
|
---|
| 51 | <entry>ABI</entry>
|
---|
[d5c7418] | 52 | <entry>CLFS_ABI=Value</entry>
|
---|
[23b90d8] | 53 | <entry>Note</entry>
|
---|
[8520e58] | 54 | </row>
|
---|
| 55 | </thead>
|
---|
[3ca2208] | 56 |
|
---|
[8520e58] | 57 | <tbody>
|
---|
[2e5c4b9] | 58 | <row>
|
---|
| 59 | <entry>aapcs-linux</entry>
|
---|
| 60 | <entry>aapcs-linux</entry>
|
---|
| 61 | <entry>Recommended for EABI. Standard Linux 32 bit (int) enums</entry>
|
---|
| 62 | </row>
|
---|
[8520e58] | 63 | <row>
|
---|
[d599ff5] | 64 | <entry>apcs-gnu</entry>
|
---|
[a6b5527] | 65 | <entry>apcs-gnu</entry>
|
---|
[2e5c4b9] | 66 | <entry>Recommended for OABI</entry>
|
---|
[8520e58] | 67 | </row>
|
---|
| 68 | <row>
|
---|
[d599ff5] | 69 | <entry>atpcs</entry>
|
---|
[a6b5527] | 70 | <entry>atpcs</entry>
|
---|
[23b90d8] | 71 | <entry>Thumb ABI</entry>
|
---|
[8520e58] | 72 | </row>
|
---|
| 73 | <row>
|
---|
[d599ff5] | 74 | <entry>aapcs</entry>
|
---|
[a6b5527] | 75 | <entry>aapcs</entry>
|
---|
[23b90d8] | 76 | <entry>EABI w/ variable size enums</entry>
|
---|
[8520e58] | 77 | </row>
|
---|
| 78 | <row>
|
---|
[d599ff5] | 79 | <entry>iwmmxt</entry>
|
---|
[a6b5527] | 80 | <entry>iwmmxt</entry>
|
---|
[23b90d8] | 81 | <entry>Supports Intel XScale MMX extensions</entry>
|
---|
[8520e58] | 82 | </row>
|
---|
| 83 | </tbody>
|
---|
[3ca2208] | 84 |
|
---|
[8520e58] | 85 | </tgroup>
|
---|
[3ca2208] | 86 |
|
---|
[8520e58] | 87 | </table>
|
---|
| 88 |
|
---|
| 89 | </sect1>
|
---|
[d599ff5] | 90 |
|
---|