GCCE build target
=================

Introduction
------------

The GCCE build target builds ARM code using a version of the freely available GNU Compiler Collection (GCC) tools. 
The GCCE compiler is intended only for building applications. It cannot be used to compile the full OS.

The binaries that it produces conform to version 2 of the ABI for the ARM architecture (referred to here as ABIv2). 
Details of the standard are published at http://www.arm.com/products/DevTools/ABI.html.

Code built for this target can inter-operate with code built by other compilers to ABIv2; in particular,
with code built using ARM RVCT 2.2 using the ABIv2 version of the ARMV5 target. 
GCCE built code is not compatible with code built to ABIv1 using ARM RVCT 2.1.

Enable GCCE 4.4.1 support
=========================

Prerequisites:
--------------
Installed CSL ARM tool chain

1. Download http://www.codesourcery.com/sgpp/lite/arm/portal/release1258
																or
2. Install symbian-adt-4.4-172-arm-none-symbianelf.exe from epoc32/tools/distrib/


Building with SBSv2 
-------------------
- set SBS_GCCE441BIN to GCCE4 bin
  Ex: SET SBS_GCCE441BIN=C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin

- Note that GCCE 4.4.1 is strict with coding standards, hence throws compilation errors to supress these errors
  Set -fpermissive against CC_ERRORS_CONTROL_OPTION in <Nokia_Symbian^3_SDK_installation_directory>epoc32\tools\sbs\lib\config\gcce.xml
  Ex: <set name="CC_ERRORS_CONTROL_OPTION" value="-fpermissive"/> 

- Use ARMV5_UREL_GCCE4_4_1 configuration to build for GCCE 4
  Ex: sbs -c ARMV5_UREL_GCCE4_4_1
  
  
Building with ABLD tools
------------------------

Remove extra qualifiers from the SDK's header files
---------------------------------------------------
While building for gcce target, compiler throws an error on usage of extra qualifiers in symbian header files
To supress the compiler checking for extra qualiefiers use MMP file keyword OPTION. User can specify compiler options for 
project (represented by MMP file) agaist specific toolchain. 

For example: 
OPTION GCCE -fpermissive


Import library (.dso) files are generated in the epoc32\release\armv5\lib\ directory. This is the same directory used for import libraries generated by ARMV5 builds: 
this allows other applications to link against all libraries regardless of which build target generated them.

Source issues
-------------

This target uses the same DEF file format as the ARMV5 target. The tools defaults to looking for DEF files in the project's EABI directory.

The GCCE compiler is very strict in checking that the source code conforms to the ANSI C++ standard. Therefore some source code which previously compiled 
with less strict compilers (e.g. RVCT 2.1) may no longer compile.


-------------------------------------------------------------------------------------------------------------
Copyright 2005  Symbian Ltd. 
 
