Symbian3/SDK/Source/GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F.dita
changeset 13 48780e181b38
parent 12 80ef3a206772
child 14 578be2adaf3e
equal deleted inserted replaced
12:80ef3a206772 13:48780e181b38
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-EFF3BD37-BC29-52F5-B8AA-6362F0C3E20F" xml:lang="en"><title>ARMV5
       
    13 build targets</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>The <codeph>ARMV5</codeph> build target builds to the <codeph>ARMV5</codeph> architecture.
       
    15 It is built to conform to a binary standard developed by ARM (the <i>ABI for
       
    16 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>
       
    17 <p>The situation is complicated by there existing two versions of the ARM
       
    18 ABI, referred to as v1 and v2 respectively, both of which are supported by
       
    19 the toolchain. This page explains the build target to use in each case. For
       
    20 more information on the differences in the toolchain used for each version
       
    21 of the ABI, see <xref href="GUID-F21A1ABE-4844-54E2-83E0-4AD25E867A72.dita">ABIv1
       
    22 to ABIv2 toolchain changes</xref>. </p>
       
    23 <p>This page includes the following sections, which describe RVCT compiler
       
    24 versions for the ARM platform and ABI versions of ARM: </p>
       
    25 <ul>
       
    26 <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>
       
    27 <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>
       
    28 <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>
       
    29 </ul>
       
    30 <section id="GUID-374DB9AB-19E3-5B82-BDB0-D261103ECEAE"><title>ARM RVCT compiler
       
    31 versions</title> <p>The <codeph>ARMV5</codeph> build targets are built using
       
    32 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
       
    33 that RVCT 2.2 build 435 used with Symbian OS v9.2 is not supported from v9.3
       
    34 onwards. Symbian OS v9.3 uses RVCT 2.2 build 559 and from OS v9.4 onwards
       
    35 RVCT 2.2 build 616 is used. </p> <p>The following section discusses issues
       
    36 concerned with having RVCT 2.2 builds 435, 559 and 616 installed on a single
       
    37 PC, so as to enable development on both v9.2, v9.3 and v9.4. </p> <p><b>Compiler
       
    38 set-up for v9.2, v9.3 and v9.4 builds</b> </p> <p>If you need to develop for
       
    39 Symbian OS v9.2, v9.3 and v9.4 on the same PC, you need to have the RVCT 2.2
       
    40 builds 435, 559 and 616 installed. The build tools will use the version that
       
    41 appears first in the environment <codeph>path</codeph> variable. You will
       
    42 need to modify this setting yourself when moving between development kits. </p> <p>Assuming
       
    43 the tools are installed to <filepath>C:\apps\</filepath>: </p> <ul>
       
    44 <li id="GUID-3A9540E5-2C0F-594E-A40E-96128B198D16"><p>When working with v9.2,
       
    45 include build 435 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
       
    46 PATH=C:\apps\ARM\RVCT\Programs\2.2\435\win_32-pentium;%path%</userinput> </p> </li>
       
    47 <li id="GUID-E0C51545-3668-5459-BC13-2CDE4ACEDDBB"><p>When working with v9.3,
       
    48 include build 559 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
       
    49 PATH=C:\apps\ARM\RVCT\Programs\2.2\559\win_32-pentium;%path%</userinput> </p> </li>
       
    50 <li id="GUID-0F57E1FC-7A80-5490-AD45-C0EB9C773F74"><p>When working with v9.4,
       
    51 include build 616 version of the tools first in the path. </p> <p>For example: </p> <p><userinput>set
       
    52 PATH=C:\apps\ARM\RVCT\Programs\2.2\616\win_32-pentium;%path%</userinput> </p> </li>
       
    53 </ul> <p>To know which version is currently installed on your PC, use the
       
    54 following command: </p> <p><userinput>armcc --vsn</userinput> </p> <p>This
       
    55 reports the compiler version and build number. </p> </section>
       
    56 <section id="GUID-2273DA41-3621-5B13-9513-8A278B95C5B8"><title>ARMV5 (ABI
       
    57 v1 mode)</title> <p>Use this target to create binaries conforming to the ABI
       
    58 v1. </p> <p>To build for <codeph>ARMV5</codeph> (ABI v1) with <filepath>abld</filepath> on
       
    59 Symbian OS v9.3 and earlier versions, use: </p> <p><userinput>abld build ARMV5
       
    60 [udeb | urel]</userinput> </p> <p>To build for <codeph>ARMV5</codeph> (ABI
       
    61 v1) with <filepath>abld</filepath> on Symbian OS v9.4 and later versions,
       
    62 use: </p> <p><userinput>abld build ARMV5_ABIv1 [udeb | urel]</userinput> </p> <p>Binaries
       
    63 are generated in the <filepath>udeb</filepath> and/or <filepath>urel</filepath> sub-directories
       
    64 of the <filepath>epoc32\release\ARMV5\</filepath> directory. From Symbian
       
    65 OS v9.4 onwards, the binaries are generated in <filepath>epoc32\release\ARMV5_ABIv1\</filepath>. </p> <p>Library
       
    66 export (<filepath>.lib</filepath>) files are generated in the <filepath>epoc32\release\ARMV5\lib\</filepath> directory. </p> </section>
       
    67 <section id="GUID-8C586003-B24B-5D37-85E8-837164CE9200"><title>ARMV5 (ABI
       
    68 v2 mode)</title> <p>Use this target to create binaries conforming to the ABI
       
    69 v2. </p> <p>To build for <codeph>ARMV5</codeph> (ABI v2) with <filepath>abld</filepath> on
       
    70 Symbian OS v9.3 and earlier versions, use: </p> <p><userinput>abld build ARMV5_ABIv2
       
    71 [udeb | urel]</userinput> </p> <p>To build for <codeph>ARMV5</codeph> (ABI
       
    72 v2) with <filepath>abld</filepath> on Symbian OS v9.4 and later versions,
       
    73 use: </p> <p><userinput>abld build ARMV5 [udeb | urel]</userinput> </p> <p>Binaries
       
    74 are generated in the <filepath>udeb</filepath> and/or <filepath>urel</filepath> sub-directories
       
    75 of the <filepath>epoc32\release\ARMV5_ABIv2\</filepath> directory. From Symbian
       
    76 OS v9.4 onwards, the binaries are generated in <filepath>epoc32\release\ARMV5\</filepath>. </p> <p>Library
       
    77 export (<filepath>.dso</filepath>) files are generated in the <filepath>epoc32\release\ARMV5\lib\</filepath> directory.
       
    78 The ABI v2 toolchain need to support multiple ABI v2 compatible compilers
       
    79 to have a common directory for the import library files. </p> <p>From Symbian
       
    80 OS v9.4 and later, ABI v2 is the default platform. So, a simple <codeph>abld
       
    81 build</codeph> command will create a binary conforming to ABI v2. To create
       
    82 a binary conforming to ABI v1, use <codeph>abld build           ARMV5_ABIv1</codeph>. </p> <p>You
       
    83 can switch back to the old approach, where the targets <codeph>ARMV5</codeph> and <codeph>ARMV5_ABIv2</codeph> will
       
    84 build binaries conforming to ABI v1 and ABI v2 respectively. For more details
       
    85 on this, refer to <xref href="GUID-8061E4C1-4E63-53F6-9863-D0D7BB8A2E5D.dita">Switching
       
    86 between ABI modes</xref>. </p> </section>
       
    87 </conbody></concept>