|
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> |