Symbian3/SDK/Source/GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F" xml:lang="en"><title>ARMV5
build targets</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The <codeph>ARMV5</codeph> build target builds to the <codeph>ARMV5</codeph> architecture.
It is built to conform to a binary standard developed by ARM (the <i>ABI for
the ARM architecture</i>). Details of the standard are published at <xref href="http://www.arm.com/products/DevTools/ABI.html" scope="external">http://www.arm.com/products/DevTools/ABI.html</xref>. </p>
<p>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 <xref href="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita">ABIv1
to ABIv2 toolchain changes</xref>. </p>
<p>This page includes the following sections, which describe RVCT compiler
versions for the ARM platform and ABI versions of ARM: </p>
<ul>
<li id="GUID-2CAEAF2F-4B75-56D9-900A-D4C3811C119D"><p> <xref href="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita#GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F/GUID-374DB9AB-19E3-5B82-BDB0-D261103ECEAE">ARM RVCT compiler versions</xref>  </p> </li>
<li id="GUID-B01D47CF-91DF-5449-9D4C-F9D4931DEC29"><p> <xref href="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita#GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F/GUID-2273DA41-3621-5B13-9513-8A278B95C5B8">ARMV5 (ABI v1 mode)</xref>  </p> </li>
<li id="GUID-034B8599-B418-50B0-8294-E5FF3764FFAF"><p> <xref href="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita#GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F/GUID-8C586003-B24B-5D37-85E8-837164CE9200">ARMV5 (ABI v2 mode)</xref>  </p> </li>
</ul>
<section id="GUID-374DB9AB-19E3-5B82-BDB0-D261103ECEAE"><title>ARM RVCT compiler
versions</title> <p>The <codeph>ARMV5</codeph> build targets are built using
ARM's own RealView Compiler Tools (RVCT) (<xref href="http://www.arm.com/products/DevTools/RealViewDevSuite.html" scope="external">http://www.arm.com/products/DevTools/RealViewDevSuite.html</xref>). </p> <p>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. </p> <p>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. </p> <p><b>Compiler
set-up for v9.2, v9.3 and v9.4 builds</b> </p> <p>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 <codeph>path</codeph> variable. You will
need to modify this setting yourself when moving between development kits. </p> <p>Assuming
the tools are installed to <filepath>C:\apps\</filepath>: </p> <ul>
<li id="GUID-3A9540E5-2C0F-594E-A40E-96128B198D16"><p>When working with v9.2,
include build 435 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
PATH=C:\apps\ARM\RVCT\Programs\2.2\435\win_32-pentium;%path%</userinput> </p> </li>
<li id="GUID-E0C51545-3668-5459-BC13-2CDE4ACEDDBB"><p>When working with v9.3,
include build 559 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
PATH=C:\apps\ARM\RVCT\Programs\2.2\559\win_32-pentium;%path%</userinput> </p> </li>
<li id="GUID-0F57E1FC-7A80-5490-AD45-C0EB9C773F74"><p>When working with v9.4,
include build 616 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
PATH=C:\apps\ARM\RVCT\Programs\2.2\616\win_32-pentium;%path%</userinput> </p> </li>
</ul> <p>To know which version is currently installed on your PC, use the
following command: </p> <p><userinput>armcc --vsn</userinput> </p> <p>This
reports the compiler version and build number. </p> </section>
<section id="GUID-2273DA41-3621-5B13-9513-8A278B95C5B8"><title>ARMV5 (ABI
v1 mode)</title> <p>Use this target to create binaries conforming to the ABI
v1. </p> <p>To build for <codeph>ARMV5</codeph> (ABI v1) with <filepath>abld</filepath> on
Symbian OS v9.3 and earlier versions, use: </p> <p><userinput>abld build ARMV5
[udeb | urel]</userinput> </p> <p>To build for <codeph>ARMV5</codeph> (ABI
v1) with <filepath>abld</filepath> on Symbian OS v9.4 and later versions,
use: </p> <p><userinput>abld build ARMV5_ABIv1 [udeb | urel]</userinput> </p> <p>Binaries
are generated in the <filepath>udeb</filepath> and/or <filepath>urel</filepath> sub-directories
of the <filepath>epoc32\release\ARMV5\</filepath> directory. From Symbian
OS v9.4 onwards, the binaries are generated in <filepath>epoc32\release\ARMV5_ABIv1\</filepath>. </p> <p>Library
export (<filepath>.lib</filepath>) files are generated in the <filepath>epoc32\release\ARMV5\lib\</filepath> directory. </p> </section>
<section id="GUID-8C586003-B24B-5D37-85E8-837164CE9200"><title>ARMV5 (ABI
v2 mode)</title> <p>Use this target to create binaries conforming to the ABI
v2. </p> <p>To build for <codeph>ARMV5</codeph> (ABI v2) with <filepath>abld</filepath> on
Symbian OS v9.3 and earlier versions, use: </p> <p><userinput>abld build ARMV5_ABIv2
[udeb | urel]</userinput> </p> <p>To build for <codeph>ARMV5</codeph> (ABI
v2) with <filepath>abld</filepath> on Symbian OS v9.4 and later versions,
use: </p> <p><userinput>abld build ARMV5 [udeb | urel]</userinput> </p> <p>Binaries
are generated in the <filepath>udeb</filepath> and/or <filepath>urel</filepath> sub-directories
of the <filepath>epoc32\release\ARMV5_ABIv2\</filepath> directory. From Symbian
OS v9.4 onwards, the binaries are generated in <filepath>epoc32\release\ARMV5\</filepath>. </p> <p>Library
export (<filepath>.dso</filepath>) files are generated in the <filepath>epoc32\release\ARMV5\lib\</filepath> directory.
The ABI v2 toolchain need to support multiple ABI v2 compatible compilers
to have a common directory for the import library files. </p> <p>From Symbian
OS v9.4 and later, ABI v2 is the default platform. So, a simple <codeph>abld
build</codeph> command will create a binary conforming to ABI v2. To create
a binary conforming to ABI v1, use <codeph>abld build           ARMV5_ABIv1</codeph>. </p> <p>You
can switch back to the old approach, where the targets <codeph>ARMV5</codeph> and <codeph>ARMV5_ABIv2</codeph> will
build binaries conforming to ABI v1 and ABI v2 respectively. For more details
on this, refer to <xref href="GUID-8061E4C1-4E63-53F6-9863-D0D7BB8A2E5D.dita">Switching
between ABI modes</xref>. </p> </section>
</conbody></concept>