[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
|
---|
| 15 | ABI.</para>
|
---|
| 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
|
---|
| 21 | enums while aapcs has variable length enums.</para>
|
---|
| 22 |
|
---|
| 23 | <para os="c">The OABI (old ABI) is called apcs-gnu and supports ARMv4 and
|
---|
| 24 | older cores.</para>
|
---|
| 25 |
|
---|
[d599ff5] | 26 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 27 | href="../common/abi.xml"
|
---|
[d599ff5] | 28 | xpointer="xpointer(//*[@os='a'])"/>
|
---|
[8520e58] | 29 |
|
---|
[d599ff5] | 30 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 31 | href="../common/abi.xml"
|
---|
[d599ff5] | 32 | xpointer="xpointer(//*[@os='b'])"/>
|
---|
[8520e58] | 33 |
|
---|
[d599ff5] | 34 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
---|
[541ad7b] | 35 | href="../common/abi.xml"
|
---|
[d599ff5] | 36 | xpointer="xpointer(//*[@os='c'])"/>
|
---|
[8520e58] | 37 |
|
---|
| 38 | <table>
|
---|
| 39 | <title>List of Build Variables</title>
|
---|
[3ca2208] | 40 | <?dbfo table-width="3in" ?>
|
---|
| 41 |
|
---|
| 42 | <tgroup cols="2">
|
---|
| 43 |
|
---|
| 44 | <colspec colnum="1" colwidth="1.5in" colname="ABI to Select"/>
|
---|
| 45 | <colspec colnum="2" colwidth="1.5in" colname="Variable Value"/>
|
---|
[23b90d8] | 46 | <colspec colnum="3" colwidth="2in" colname="Note"/>
|
---|
[3ca2208] | 47 |
|
---|
[8520e58] | 48 | <thead>
|
---|
| 49 | <row>
|
---|
| 50 | <entry>ABI</entry>
|
---|
| 51 | <entry>BUILD=Value</entry>
|
---|
[23b90d8] | 52 | <entry>Note</entry>
|
---|
[8520e58] | 53 | </row>
|
---|
| 54 | </thead>
|
---|
[3ca2208] | 55 |
|
---|
[8520e58] | 56 | <tbody>
|
---|
| 57 | <row>
|
---|
[d599ff5] | 58 | <entry>apcs-gnu</entry>
|
---|
[a6b5527] | 59 | <entry>apcs-gnu</entry>
|
---|
[23b90d8] | 60 | <entry>Legacy ABI, arm4 and older</entry>
|
---|
[8520e58] | 61 | </row>
|
---|
| 62 | <row>
|
---|
[d599ff5] | 63 | <entry>atpcs</entry>
|
---|
[a6b5527] | 64 | <entry>atpcs</entry>
|
---|
[23b90d8] | 65 | <entry>Thumb ABI</entry>
|
---|
[8520e58] | 66 | </row>
|
---|
| 67 | <row>
|
---|
[d599ff5] | 68 | <entry>aapcs</entry>
|
---|
[a6b5527] | 69 | <entry>aapcs</entry>
|
---|
[23b90d8] | 70 | <entry>EABI w/ variable size enums</entry>
|
---|
[8520e58] | 71 | </row>
|
---|
| 72 | <row>
|
---|
[d599ff5] | 73 | <entry>aapcs-linux</entry>
|
---|
[a6b5527] | 74 | <entry>aapcs-linux</entry>
|
---|
[23b90d8] | 75 | <entry>EABI w/ standard Linux 32 bit (int) enums</entry>
|
---|
[8520e58] | 76 | </row>
|
---|
| 77 | <row>
|
---|
[d599ff5] | 78 | <entry>iwmmxt</entry>
|
---|
[a6b5527] | 79 | <entry>iwmmxt</entry>
|
---|
[23b90d8] | 80 | <entry>Supports Intel XScale MMX extensions</entry>
|
---|
[8520e58] | 81 | </row>
|
---|
| 82 | </tbody>
|
---|
[3ca2208] | 83 |
|
---|
[8520e58] | 84 | </tgroup>
|
---|
[3ca2208] | 85 |
|
---|
[8520e58] | 86 | </table>
|
---|
| 87 |
|
---|
| 88 | </sect1>
|
---|
[d599ff5] | 89 |
|
---|