|
||
Symbian OS natively runs on ARM processors. To build code for a phone, a compiler based on the Application Binary Interface (ABI) for the ARM Architecture is needed. This is a standard for the interfaces of binary code running in ARM environments, and is intended to allow inter-operation of binaries produced by different compilers that conform to the standard. The specification is published by ARM at http://www.arm.com/products/DevTools/ABI.html.
The Symbian OS build tools define native build targets that invoke either ARM's RealView Compiler Tools (RVCT), or a suitable version of the GNU Compiler Collection (GCC), known as GCCE. ARM RVCT (http://www.arm.com/products/DevTools/RealViewDevSuite.html) is particularly intended for licensees building ROMs for phones. GCCE is delivered on Symbian OS kits, and is also freely available from http://www.codesourcery.com.
There are two versions of the ARM ABI, referred to as v1 and v2 respectively. RVCT can be used to build for either of these ABI versions, and GCCE can only be used to build for ARM ABI v2.
In addition, the toolchain supports building to three versions of the ARM architecture; v5, v6, and v7. See http://www.arm.com/products/CPUs/architecture.html for details of the ARM architectures.
The build targets are intended to generate generic code suitable for execution on processors based on these architectures. The toolchain allows customisation by licensees, for example, in order to target a specific processor more closely: see ARMV5 build customisation.
A summary of the available targets is shown below:
Target name |
Instruction set |
Compiler |
ABI |
|
v5 |
RVCT 2.2 |
v1 |
|
v5 |
RVCT 2.2 |
v2 |
|
v6 |
RVCT 2.2 |
v1 |
|
v6 |
RVCT 2.2 |
v2 |
|
v6 |
RVCT 2.2 |
v2 |
|
v7 |
RVCT 3.0 |
v2 |
|
v5 |
GCCE |
v2 |
|
v6 |
GCCE |
v2 |
|
v6 |
GCCE |
v2 |
|
v7 |
GCCE 2006-Q3 |
v2 |
Note: From Symbian OS v9.4 onwards, the target names to
build a binary conforming to ABIv2 are ARMV5
and
ARMV6
, and for ABIv1 they are ARMV5_ABIv1
and
ARMV6_ABIv1
. You can switch back to the old approach when
required, as per the table above. For more details, refer to
Switching between ABI modes.
For details of these targets, see:
For information on building ROMs using binaries built with these targets, see the Rebuilding Symbian OS reference ROMs section of the ROM building guide.