Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


ARMV6 build targets

The ARMV6 build target builds to the ARMV6 architecture. Like the ARMV5 target, the target requires the ARM's RealView Compilation Tools (RVCT) v2.2 build 616 from Symbian OS v9.4 onwards.

[Top]


Building binaries for ARMV6

To build for ARMV6 with abld, use:

> abld build ARMV6 | ARMV6_ABIv2 [udeb | urel]

Binaries are generated in the udeb and/or urel sub-directories of the epoc32\release\ARMV6\ directory for ABI v1 and epoc32\release\ARMV6_ABIv2\ directory for ABI v2.

As per the conventional approach mentioned above, the build targets ARMV6 and ARMV6_ABIv2 are used to build binaries conforming to ARMV6 ABI v1 and ABI v2 respectively. From Symbian OS v9.4 onwards, the behaviour of these native build targets (ARMV6 and ARMV6_ABIv2) has changed. The build target ARMV6 is used to build binaries conforming to ABI v2 instead of ABI v1, and ARMV6_ABIv1 is used to build binaries conforming to ABI v1. Also, the release directories have changed to epoc32\release\ARMV6\ for ABI v2 binaries and epoc32\release\ARMV6_ABIv1\ for ABI v1 binaries.

You can switch back to the old approach, where the targets ARMV6 and ARMV6_ABIv2 will build binaries conforming to ABI v1 and ABI v2 respectively. For more details on this, refer to Switching between ABI modes.

Library export (.lib or .dso) files are generated in the epoc32\release\ARMV5\lib\ directory. This directory is used, as the library file format has not changed since ARMV5.

Note: Code is not built for ARMV6 target by default. It has to be explicitly specified on the command line or with a prj_platforms statement in the component's BLD.INF file.

[Top]


Building binaries for ARMV6t2

To build binaries for ARMV6t2 with abld, use:

> abld build ARMV6t2 [udeb | urel]

The command builds binaries conforming to ABIv2 for ARMV6 architecture supporting Thumb-2 instruction set.

[Top]


IDE (CodeWarrior) support for ARMV6

To build for ARMV6 or ARMV6t2 from the CodeWarrior IDE, specify ARMV6 or ARMV6t2 as the target in the Platform Selection field, when importing a project from an .mmp file. The binaries can then be built by setting the target to ARMV6 or ARMV6t2 for UREL or UDEB.

From the command line, to generate a CodeWarrior XML project file for ARMV6 or ARMV6t2, use the following command:

> makmake <project>.mmp CW_IDE:ARMV6 | ARMV6t2

and then import the generated XML file from the IDE.

Note: The binaries for ARMV6 or ARMV6t2 target are not created by default. You must explicitly specify these targets either on the command line using makmake or in the Platform Selection field.

[Top]


Customisation for ARMV6

The build system provides the ARMV6 target by providing a build specialization file (BSF) in the epoc32\tools\ directory. For ABI v1 builds this is ARMV6.BSF; for ABI v2 builds, ARMV6_ABIv2.bsf. From Symbian OS v9.4 onwards, for ABI v1 builds the BSF file is ARMV6_ABIv1.bsf and for ABI v2 builds it is ARMV6.bsf. For more information about BSF mechanism, refer to ARMV5 build customisation.