The ARMV5
build target builds to the ARMV5
architecture. It is built to conform to a binary standard developed by ARM (the
ABI for the ARM architecture). Details of the standard are
published at http://www.arm.com/products/DevTools/ABI.html.
The situation is complicated by there existing two versions of the ARM ABI, referred to as v1 and v2 respectively, both of which are supported by the toolchain. This page explains the build target to use in each case. For more information on the differences in the toolchain used for each version of the ABI, see ABIv1 to ABIv2 toolchain changes.
This page includes the following sections, which describe RVCT compiler versions for the ARM platform and ABI versions of ARM:
The ARMV5
build targets are built using ARM's own RealView
Compiler Tools (RVCT) (http://www.arm.com/products/DevTools/RealViewDevSuite.html).
Note that RVCT 2.2 build 435 used with Symbian OS v9.2 is not supported from v9.3 onwards. Symbian OS v9.3 uses RVCT 2.2 build 559 and from OS v9.4 onwards RVCT 2.2 build 616 is used.
The following section discusses issues concerned with having RVCT 2.2 builds 435, 559 and 616 installed on a single PC, so as to enable development on both v9.2, v9.3 and v9.4.
If you need to develop for Symbian OS v9.2, v9.3 and v9.4 on the same
PC, you need to have the RVCT 2.2 builds 435, 559 and 616 installed. The build
tools will use the version that appears first in the environment
path
variable. You will need to modify this setting yourself when
moving between development kits.
Assuming the tools are installed to C:\apps\
:
When working with v9.2, include build 435 version of the tools first in the path.
For example:
> set
PATH=C:\apps\ARM\RVCT\Programs\2.2\435\win_32-pentium;%path%
When working with v9.3, include build 559 version of the tools first in the path.
For example:
> set
PATH=C:\apps\ARM\RVCT\Programs\2.2\559\win_32-pentium;%path%
When working with v9.4, include build 616 version of the tools first in the path.
For example:
> set
PATH=C:\apps\ARM\RVCT\Programs\2.2\616\win_32-pentium;%path%
To know which version is currently installed on your PC, use the following command:
> armcc --vsn
This reports the compiler version and build number.
Use this target to create binaries conforming to the ABI v1.
To build for ARMV5
(ABI v1) with abld
on
Symbian OS v9.3 and earlier versions, use:
> abld build ARMV5 [udeb | urel]
To build for ARMV5
(ABI v1) with abld
on
Symbian OS v9.4 and later versions, use:
> abld build ARMV5_ABIv1 [udeb | urel]
Binaries are generated in the udeb
and/or
urel
sub-directories of the epoc32\release\ARMV5\
directory. From Symbian OS v9.4 onwards, the binaries are generated in
epoc32\release\ARMV5_ABIv1\
.
Library export (.lib
) files are generated in the
epoc32\release\ARMV5\lib\
directory.
Use this target to create binaries conforming to the ABI v2.
To build for ARMV5
(ABI v2) with abld
on
Symbian OS v9.3 and earlier versions, use:
> abld build ARMV5_ABIv2 [udeb | urel]
To build for ARMV5
(ABI v2) with abld
on
Symbian OS v9.4 and later versions, use:
> abld build ARMV5 [udeb | urel]
Binaries are generated in the udeb
and/or
urel
sub-directories of the
epoc32\release\ARMV5_ABIv2\
directory. From Symbian OS v9.4
onwards, the binaries are generated in epoc32\release\ARMV5\
.
Library export (.dso
) files are generated in the
epoc32\release\ARMV5\lib\
directory. The ABI v2 toolchain need to
support multiple ABI v2 compatible compilers to have a common directory for the
import library files.
From Symbian OS v9.4 and later, ABI v2 is the default platform. So, a
simple abld build
command will create a binary conforming to ABI
v2. To create a binary conforming to ABI v1, use abld build
ARMV5_ABIv1
.
You can switch back to the old approach, where the targets
ARMV5
and ARMV5_ABIv2
will build binaries conforming
to ABI v1 and ABI v2 respectively. For more details on this, refer to
Switching between ABI modes.