Symbian3/SDK/Source/GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita
changeset 0 89d6a7a84779
--- /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 @@
+<?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>
\ No newline at end of file