Symbian
Symbian OS Library

FAQ-1293 What is the GCC-E Compiler?

[Index][spacer] [Previous] [Next]



 

Classification: C++ Category: Development
Created: 07/19/2005 Modified: 07/27/2005
Number: FAQ-1293
Platform: Symbian OS v9

Question:
What is the GCC-E Compiler?
Will the GCC-E compiler be free in licensee SDKs?


Answer:
What is the GCC-E Compiler?
    Symbian OS v9 introduces support for the GCC-E compiler. This compiler is EABI-compliant, and allows developers to create binaries which can inter-operate with binaries produced using other EABI compliant compilers (e.g. RVCT 2.2 that has been used to build the underlying Symbian OS v8.1b, v9.x). The GCC-E compiler is available in Symbian OS v9 DevKits from week 200526.

    Steps to compile using GCC-E

    The following steps are required to enable GCC-E to be used on a DevKit:

    • Get a Symbian OS v9 DevKit 200526 release or beyond.
    • Install the GCC-E compiler. The installation package has been included in the kits and can be found at the location below. Note that the "2005-q1c" is a version number and so any later version should also be acceptable.
          \epoc32\tools\distrib\arm-none-symbianelf-2005-q1c.exe
        • Executing this file will install the compiler. The compiler can be installed anywhere as long as the PATH environment is updated to make the compiler accessible to the toolchain. This compiler can coexist with the GCC98r2 compiler that has been used on EKA1.
        • To use the GCC-E compiler for a component, add GCCE to the bld.inf file in the PRJ_PLATFORMS section, e.g.:
              PRJ_PLATFORMS
              DEFAULT GCCE
            • For the abld command use the GCCE platform wherever the ARMV5 would normally be used, e.g:
                  abld build gcce
                  The GCC-E compiler is stricter than RVCT, so you may have to update some of your sources to be more ISO C++ compliant to use GCC-E.

                  Building ROMs with GCC-E binaries

                  Binaries created by GCC-E can be included in a ROM image by passing the –D_GCCE option to the buildrom command. This will automatically look for GCC-E binaries before RVCT binaries, and it will include an ARMv5 binary if it cannot find a GCC-E binary.

                  Limitations

                  GCC-E cannot handle files containing inline assembler and some target types for the kernel. So it cannot be used for compiling some base files. The current list of target types not supported is KDLL, KEXT, PDD, VAR and LDD.

                  Will the GCC-E compiler be free in licensee SDKs?

                  The compiler is publicly available (free) from http://www.codesourcery.com/gnu_toolchains/arm/, but you also need the correct build system toolchain (i.e. bldmake etc.) to be able to compile with GCC-E.

                  The plan of record at time of writing is that:

                  • Series60 3.0 and UIQ 3.0 SDKs will include the compiler and the buildsystem.
                  • CW3.1 will support building using GCC-E (but will require the SDK to have the buildsystem).
                  • Eclipse tools (in development) will support building GCC-E and will include the buildsystem