[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" |
---|
[5b4806a] | 27 | href="../x86/abi.xml" |
---|
[d599ff5] | 28 | xpointer="xpointer(//*[@os='a'])"/> |
---|
[8520e58] | 29 | |
---|
[d599ff5] | 30 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" |
---|
[5b4806a] | 31 | href="../x86/abi.xml" |
---|
[d599ff5] | 32 | xpointer="xpointer(//*[@os='b'])"/> |
---|
[8520e58] | 33 | |
---|
[d599ff5] | 34 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" |
---|
[5b4806a] | 35 | href="../x86/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> |
---|
| 59 | <entry>-mabi=apcs-gnu</entry> |
---|
[23b90d8] | 60 | <entry>Legacy ABI, arm4 and older</entry> |
---|
[8520e58] | 61 | </row> |
---|
| 62 | <row> |
---|
[d599ff5] | 63 | <entry>atpcs</entry> |
---|
| 64 | <entry>-mabi=atpcs</entry> |
---|
[23b90d8] | 65 | <entry>Thumb ABI</entry> |
---|
[8520e58] | 66 | </row> |
---|
| 67 | <row> |
---|
[d599ff5] | 68 | <entry>aapcs</entry> |
---|
| 69 | <entry>-mabi=aapcs</entry> |
---|
[23b90d8] | 70 | <entry>EABI w/ variable size enums</entry> |
---|
[8520e58] | 71 | </row> |
---|
| 72 | <row> |
---|
[d599ff5] | 73 | <entry>aapcs-linux</entry> |
---|
| 74 | <entry>-mabi=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> |
---|
| 79 | <entry>-mabi=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 | |
---|