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 the ARMV5 or ARMV_ABIV2 targets.
To build for the GCCE target, you must have installed the GCC CSL ARM
toolchain. The installation program is supplied on the kits at
epoc32\tools\distrib\arm-none-symbianelf-2005-q1c.exe
. 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, so it is necessary to do this manually, to add the
bin
sub-directory of the installed tools. For example, if the
compiler is installed to C:\gcce
, then C:\gcce\bin
should be added to the PATH
environment variable.
GCCE is not a default target. To build a program for the GCCE, GCCE must
be explicitly specified as a supported platform using a
prj_platforms
statement in the component's BLD.INF
file. For example:
PRJ_PLATFORMS
WINSCW GCCE
allows the component to be built for WINSCW and GCCE.
To then build the component for GCCE with bldmake
and
abld
use:
> bldmake bldfiles
> abld build gcce [udeb | urel]
Binaries are generated in the udeb
and/or urel
sub-directories of the epoc32\release\gcce\
directory.
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.
For information on building ROMs containing GCCE binaries, see the Compiler setting section of the ROM building guide.
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.