diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,120 @@ + + + + + +GCCE +build targets +

Introduction

+

The GCCE build target builds ARM code using a version +of the freely available GNU Compiler Collection (GCC) tools. The GCC compiler +is intended only for building applications, and cannot be used to compile +the complete Symbian platform.

+

The GCC binaries conform to ABIv2 for the ARM architecture. Details about +the ABI standard are published at http://www.arm.com/products/DevTools/ABI.html.

+

The following table lists the GCC build targets available for various ARM +architectures that use Thumb or Thumb2 instruction sets:

+ + + + +Build target +ARM architecture +Instruction set + + + + +

GCCE

+

V5

+

Thumb

+
+ +

GCCEV6

+

V6

+

Thumb

+
+ +

GCCEV6t2

+

V6

+

Thumb-2

+
+ +

GCCEV7

+

V7

+

Thumb-2

+
+ + +
+

Note: Code built for the targets listed in the earlier table can +interoperate with code built by other compilers for ARM targets.

+

Prerequisite

+

To build for the GCC targets, you must install the GCC CSL ARM toolchain. +The installer, arm-none-symbianelf-2005-q1c.exe, is supplied +with the OS kit, and is located at epoc32\tools\distrib\. +Run this program to start the installation wizard. By default, the compiler +is installed to C:\Program Files\CSL Arm Toolchain\.

+

The installation wizard does not modify the Windows PATH environment +variable. You must manually add the bin sub-directory +of the installed tools to the PATH variable. For example, +if the compiler is installed to C:\gcce, then C:\gcce\bin must +be added to the PATH environment variable.

+

Building for GCC targets

+

GCC targets are not the default build targets. To build a program for any +GCC target, you must explicitly specify the targets as supported platforms +in the component's BLD.INF file, using prj_platforms statement.

+

For example:

+PRJ_PLATFORMS +WINSCW GCCE GCCEV6 GCCEV6t2 GCCEV7 +

allows the component to be built for WINSCW, GCCE, GCCEV6, GCCEV6t2, +and GCCEV7.

+

You can build component for the GCC targets using the following bldmake and abld commands:

+

bldmake bldfiles

+

abld build gcce | gccev6 | gccev6t2 | gccev7 [udeb | urel]

+

Note: To build for GCCEV6t2 and GCCEV7, +you need GCCE v4.2 that supports building ARM code for Thumb-2.

+

Binaries are generated in the udeb and urel sub-directories +of the epoc32\release\<GCC platform>\ directory.

+

Import library (.dso) files are generated in the epoc32\release\ARMV5\lib\ directory. +This directory is used, as the library file format has not changed since ARMV5.

+

Note: These are the same directories that are used for import libraries +generated by RVCT for different build targets, such as ARMV5, ARMV6, +and so on. This allows other applications to link to any library, regardless +of the build target for which they are generated.

+

ROM building

+

The compiler setting allows the Symbian OS base components to include the +correct compiler-specific run-time libraries in the ROM image.

+

The default compiler used to build the reference OS is ARM RVCT. +This compiler is indicated to buildrom using the argument -DRVCT. +

+

The toolchain in OS v9.1 also supports binaries built with the GCCE compiler. +Binaries built with this compiler can be combined in ROM with binaries built +with RVCT to the ABIv2. To do this, use +the -D_GCCE macro:

+

buildrom -D_EABI=ARMV5 -D_GCCE -otechview.img h2 techview

+

By default, if the binaries are not available in GCCE, they are taken from +the ARMV5_ABIV2 directory, and if not in there +also, they are be taken from the ARMV5 directory. (ARMV5 is +necessary as some of the runtime DLLs will be present only in that directory.) +

+

The order in which buildrom searches directories to get binaries to put +into ROM can also be specified explicitly using a BINARY_SELECTION_ORDER command +in an oby file. For example:

+

BINARY_SELECTION_ORDER = GCCE, ARMV5_ABIv2, ARMV5

+

The preceding command specifies explicitly that binaries should taken from GCCE, +then ARMV5_ABIv2, and then ARMV5.

+

Source issues

+

The GCCE build target uses the same DEF file format as +the ARMV5 target. By default, the GCC toolchian looks for +the DEF files in the project's EABI directory.

+

Note: The GCC compiler is very strict in checking that the source +code conforms to the ANSI C++ standard. Therefore, source code that previously +compiled with less strict compilers, such as RVCT 2.1, may no longer compile.

+
\ No newline at end of file