diff -r 80ef3a206772 -r 48780e181b38 Symbian3/SDK/Source/GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita --- a/Symbian3/SDK/Source/GUID-E48B708E-8B0B-5CF7-80D5-B55966387021.dita Fri Jul 16 17:23:46 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ - - - - - -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 -in kits, 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 base components to include the -correct compiler-specific run-time libraries in the ROM image.

-

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

-

The toolchain from Symbian 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