| 1 | <?xml version="1.0" encoding="ISO-8859-1"?>
|
|---|
| 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|---|
| 3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|---|
| 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 |
|
|---|
| 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 but these are generally not recommended for most uses.</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. aapcs-linux is recommended over
|
|---|
| 22 | aapcs.</para>
|
|---|
| 23 |
|
|---|
| 24 | <para os="c">The OABI (old ABI) is called apcs-gnu and supports ARMv4 and
|
|---|
| 25 | older cores. Generally the OABI is not used by modern ARM processors.</para>
|
|---|
| 26 |
|
|---|
| 27 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
|---|
| 28 | href="../common/abi.xml"
|
|---|
| 29 | xpointer="xpointer(//*[@os='a'])"/>
|
|---|
| 30 |
|
|---|
| 31 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
|---|
| 32 | href="../common/abi.xml"
|
|---|
| 33 | xpointer="xpointer(//*[@os='b'])"/>
|
|---|
| 34 |
|
|---|
| 35 | <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
|
|---|
| 36 | href="../common/abi.xml"
|
|---|
| 37 | xpointer="xpointer(//*[@os='c'])"/>
|
|---|
| 38 |
|
|---|
| 39 | <table>
|
|---|
| 40 | <title>List of Build Variables</title>
|
|---|
| 41 | <?dbfo table-width="3in" ?>
|
|---|
| 42 |
|
|---|
| 43 | <tgroup cols="3">
|
|---|
| 44 |
|
|---|
| 45 | <colspec colnum="1" colwidth="1.5in" colname="ABI to Select"/>
|
|---|
| 46 | <colspec colnum="2" colwidth="1.5in" colname="Variable Value"/>
|
|---|
| 47 | <colspec colnum="3" colwidth="2in" colname="Note"/>
|
|---|
| 48 |
|
|---|
| 49 | <thead>
|
|---|
| 50 | <row>
|
|---|
| 51 | <entry>ABI</entry>
|
|---|
| 52 | <entry>CLFS_ABI=Value</entry>
|
|---|
| 53 | <entry>Note</entry>
|
|---|
| 54 | </row>
|
|---|
| 55 | </thead>
|
|---|
| 56 |
|
|---|
| 57 | <tbody>
|
|---|
| 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>
|
|---|
| 63 | <row>
|
|---|
| 64 | <entry>apcs-gnu</entry>
|
|---|
| 65 | <entry>apcs-gnu</entry>
|
|---|
| 66 | <entry>Recommended for OABI</entry>
|
|---|
| 67 | </row>
|
|---|
| 68 | <row>
|
|---|
| 69 | <entry>atpcs</entry>
|
|---|
| 70 | <entry>atpcs</entry>
|
|---|
| 71 | <entry>Thumb ABI</entry>
|
|---|
| 72 | </row>
|
|---|
| 73 | <row>
|
|---|
| 74 | <entry>aapcs</entry>
|
|---|
| 75 | <entry>aapcs</entry>
|
|---|
| 76 | <entry>EABI w/ variable size enums</entry>
|
|---|
| 77 | </row>
|
|---|
| 78 | <row>
|
|---|
| 79 | <entry>iwmmxt</entry>
|
|---|
| 80 | <entry>iwmmxt</entry>
|
|---|
| 81 | <entry>Supports Intel XScale MMX extensions</entry>
|
|---|
| 82 | </row>
|
|---|
| 83 | </tbody>
|
|---|
| 84 |
|
|---|
| 85 | </tgroup>
|
|---|
| 86 |
|
|---|
| 87 | </table>
|
|---|
| 88 |
|
|---|
| 89 | </sect1>
|
|---|
| 90 |
|
|---|