|
||
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 |
---|---|---|
|
V5 |
Thumb |
|
V6 |
Thumb |
|
V6 |
Thumb-2 |
|
V7 |
Thumb-2 |
Note: Code built for the build targets listed above can interoperate with code built by other compilers for ARM targets.
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.
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.
For information on building ROMs containing GCC binaries, see the Compiler setting section of the ROM building guide.
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.