diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,87 @@ + + + + + +ARMV5 +build targets +

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:

+ +
ARM RVCT compiler +versions

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.

Compiler +set-up for v9.2, v9.3 and v9.4 builds

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.

+
ARMV5 (ABI +v1 mode)

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.

+
ARMV5 (ABI +v2 mode)

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.

+
\ No newline at end of file