Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


GCCE build target

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

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 summarises the GCC build targets available for various ARM architectures:

Build target ARM architecture Instruction set

GCCE

V5

Thumb

GCCEV6

V6

Thumb

GCCEV6t2

V6

Thumb-2

GCCEV7A

V7

Thumb-2

Note: Code built for the build targets listed above 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 GCCEV7A

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

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

> bldmake bldfiles

> abld build gcce | gccev6 | gccev6t2 | gccev7a [udeb | urel]

Note: To build for GCCEV6t2 and GCCEV7A, you need GCCE 2006-Q3 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

For information on building ROMs containing GCC binaries, see the Compiler setting section of the ROM building guide.

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.