Symbian3/SDK/Source/GUID-D0C1493F-BA2F-517B-9D96-073DCF3D7923.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 xml:lang="en" id="GUID-D0C1493F-BA2F-517B-9D96-073DCF3D7923"><title>ARMV6 build targets</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The <codeph>ARMV6</codeph> build target builds to the <codeph>ARMV6</codeph> architecture. Like the ARMV5 target, the target requires the ARM's RealView Compilation Tools (RVCT) v2.2 build 616 from Symbian OS v9.4 onwards. </p> <section><title>Building binaries for ARMV6</title> <p>To build for <codeph>ARMV6</codeph> with <filepath>abld</filepath>, use: </p> <p><userinput>abld build ARMV6 | ARMV6_ABIv2 [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\ARMV6\</filepath> directory for ABI v1 and <filepath>epoc32\release\ARMV6_ABIv2\</filepath> directory for ABI v2. </p> <p>As per the conventional approach mentioned above, the build targets <codeph>ARMV6</codeph> and <codeph>ARMV6_ABIv2</codeph> are used to build binaries conforming to <codeph>ARMV6</codeph> ABI v1 and ABI v2 respectively. From Symbian OS v9.4 onwards, the behaviour of these native build targets (<codeph>ARMV6</codeph> and <codeph>ARMV6_ABIv2</codeph>) has changed. The build target <codeph>ARMV6</codeph> is used to build binaries conforming to ABI v2 instead of ABI v1, and <codeph>ARMV6_ABIv1</codeph> is used to build binaries conforming to ABI v1. Also, the release directories have changed to <filepath>epoc32\release\ARMV6\</filepath> for ABI v2 binaries and <filepath>epoc32\release\ARMV6_ABIv1\</filepath> for ABI v1 binaries. </p> <p>You can switch back to the old approach, where the targets <codeph>ARMV6</codeph> and <codeph>ARMV6_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> <p>Library export (<filepath>.lib</filepath> or <filepath>.dso</filepath>) files are generated in the <filepath>epoc32\release\ARMV5\lib\</filepath> directory. This directory is used, as the library file format has not changed since <codeph>ARMV5</codeph>. </p> <p> <b>Note:</b> Code is not built for <codeph>ARMV6</codeph> target by default. It has to be explicitly specified on the command line or with a <codeph>prj_platforms</codeph> statement in the component's <filepath>BLD.INF</filepath> file. </p> </section> <section><title>Building binaries for ARMV6t2</title> <p>To build binaries for <codeph>ARMV6t2</codeph> with <filepath>abld</filepath>, use: </p> <p><userinput>abld build ARMV6t2 [udeb | urel]</userinput> </p> <p>The command builds binaries conforming to ABIv2 for ARMV6 architecture supporting Thumb-2 instruction set. </p> </section> <section><title>IDE (CodeWarrior) support for ARMV6</title> <p>To build for <codeph>ARMV6</codeph> or <codeph>ARMV6t2</codeph> from the CodeWarrior IDE, specify <codeph>ARMV6</codeph> or <codeph>ARMV6t2</codeph> as the target in the Platform Selection field, when importing a project from an <filepath>.mmp</filepath> file. The binaries can then be built by setting the target to <codeph>ARMV6</codeph> or <codeph>ARMV6t2</codeph> for <codeph>UREL</codeph> or <codeph>UDEB</codeph>. </p> <p>From the command line, to generate a CodeWarrior XML project file for <codeph>ARMV6</codeph> or <codeph>ARMV6t2</codeph>, use the following command: </p> <p><userinput>makmake &lt;project&gt;.mmp CW_IDE:ARMV6 | ARMV6t2</userinput> </p> <p>and then import the generated XML file from the IDE. </p> <p> <b>Note</b>: The binaries for <codeph>ARMV6</codeph> or <codeph>ARMV6t2</codeph> target are not created by default. You must explicitly specify these targets either on the command line using <filepath>makmake</filepath> or in the Platform Selection field. </p> </section> <section><title>Customisation for ARMV6</title> <p>The build system provides the ARMV6 target by providing a build specialization file (BSF) in the <filepath>epoc32\tools\</filepath> directory. For ABI v1 builds this is <filepath>ARMV6.BSF</filepath>; for ABI v2 builds, <filepath>ARMV6_ABIv2.bsf</filepath>. From Symbian OS v9.4 onwards, for ABI v1 builds the BSF file is <filepath>ARMV6_ABIv1.bsf</filepath> and for ABI v2 builds it is <filepath>ARMV6.bsf</filepath>. For more information about BSF mechanism, refer to <xref href="GUID-5B442231-6E71-5F35-A27E-B14AEC2FC105.dita">ARMV5 build customisation</xref>. </p> </section> </conbody></concept>