Symbian developer community

 
wiki

Compiler Compatibility

From Symbian Developer Community

Jump to: navigation, search

Contents

Introduction

With Symbian OS being fully open source, we need to make sure that anyone in the world can work with Symbian with completely free tools on their chosen platform. For historical reasons the Symbian platform is currently compiled with RVCT 2.2, a proprietary C++ compiler from ARM Limited.

Some progress has been made to get the Symbian platform compiled with RVCT 4, which can be licensed for individuals and small companies of up to 20 people at no cost for Symbian development. But what we really want is to be able to compile the Symbian platform with an open source C++ compiler, such as GCC.

To facilitate this process we have set up the Software Freedom Fighters incubation project.

In a nutshell

Applying a new compiler to an existing codebase always seems to involve issues arising throughout the codebase, so many packages show problems with either GCCE or RVCT4 or both. The aim is to restate the troublesome pieces of code in such a way that they conform more strictly to the relevant C or C++ standard: all of the compilers will then agree on what the code actually means, and compile it correctly.

Some of the problems that occur are singular in nature, such as the support necessary from build tools like SBSv2 (Raptor) or the kernel. One enhancement to Raptor might improve the build results for all packages. The singular GCCE issues are discussed in more detail in The GCCE toolchain initiative.

Other problems are instances of the same underlying pattern; these patterns are described in more detail below. In these cases, there would only be one report raised per package, which may cover one or more pattern.

How you can help

The good news is that compiler work can be done in a distributed way, which makes it ideal for implementation by an open source community. Many compilation bugs - but not all - can be fixed by somebody who does not understand the platform well. Even if you do not fix bugs, you could help by providing compiler expertise and advising others: check out how you can do this. As the necessary changes are small but widely spread, it will be possible to take on an amount of work that is compatible with the time you have available.

If you make changes, you will be able to "make your mark" on the platform as one of the early contributors to the platform. The following article shows how this may benefit you.

The Symbian Build and Integration team will support the work by providing centralised building and publishing services, but any developer will be able to contribute to the effort by fixing some of the compatibility issues that exist.

That is why were planning to set up an incubation project. We will be working hard to make this process as easy as possible. As a result expect that this page will change and improve significantly in the next few weeks.

Recording and tracking the problems

Bugzilla, the bug tracker, is the tool for reporting compatibility problems and tracking them. It's also used to liaise with the package owners when it's time to incorporate the changes into the master codeline for the package.

Raising bugs

  • All issues reported regarding compiler compatibility should have a severity of "Enhancement". This is because it's not actually a bug that the code does not support an unsupported compiler!
  • The bugzilla reports should also be tagged with the keyword Compiler_Compatibility to make searching eaiser.

The current situation

The following dynamic bugzilla query shows all reports tagged with Compiler_Compatibility.

RVCT 4.0 issues

IDPStatusSeverityVersionProductSummary (12 tasks)  Assignee
476*
Attention_Required, Compiler_Compatibility476
P3NEWnormalPDT_1.xBuildbootstrap.mk is confused by RVCT 4.0 larry.knibb@nokia.com
640*
Attention_Required, Compiler_Compatibility640
P3NEWenhancementPDK_3.0.bipappsrvBuild errors with RVCT 4.0 paulius.meskauskas@nokia.com
641*
Attention_Required, Compiler_Compatibility641
P3NEWenhancementPDK_3.0.blocationsrvBuild errors with RVCT 4.0 Billy.2.Gibson@nokia.com
644*
Attention_Required, Compiler_Compatibility644
P3NEWenhancementPDK_3.0.bmmuifwBuild errors with RVCT 4.0 kumar.sohony@nokia.com
645*
Attention_Required, Compiler_Compatibility645
P3NEWenhancementPDK_3.0.bmmmwBuild errors with RVCT 4.0 aaron.roberts@nokia.com
646*
Attention_Required, Compiler_Compatibility646
P3NEWenhancementPDK_3.0.bopensrvBuild errors with RVCT 4.0 shrikumar-b.sharma@nokia.com
650*
Attention_Required, Compiler_Compatibility650
P3NEWenhancementPDK_3.0.bossrvBuild errors with RVCT 4.0 vinod.vijayarajan@nokia.com
664*
Attention_Required, Compiler_Compatibility664
P3NEWenhancementPDK_3.0.bphoneBuild errors with RVCT 4.0 paulius.meskauskas@nokia.com
667*
Attention_Required, Compiler_Compatibility667
P3NEWenhancementPDK_3.0.bvideoplayerBuild errors with RVCT 4.0 petri.t.laine@nokia.com
676*
Attention_Required, Compiler_Compatibility676
P3NEWenhancementPDK_3.0.bwebBuild errors with RVCT 4.0 forrest.hodgkins@nokia.com
1386*
Attention_Required, Compiler_Compatibility1386
P3NEWnormalPDK_3.xkernelhwsrvCompsupp build problems with RVCT 4.0 b650( Kernel and hardware services john.imhofe@nokia.com
680*
Attention_Required, Compiler_Compatibility680
P3PROPOSEDenhancementunspecifiedwebBuild errors with RVCT 4.0: Linker Error: L6410W forrest.hodgkins@nokia.com

GCC issues

See the Software Freedom Fighter project TODO list.

Errors already solved

IDPStatusSeverityVersionProductSummary (17 tasks)  Assignee
212*
Compiler_Compatibility212
P2CLOSEDenhancementPDT_1.xBuildSBS2 aka Raptor does not support GCCE as an option larry.knibb@nokia.com
642*
Attention_Required, Compiler_Compatibility642
P3CLOSEDenhancementPDK_3.0.bmdsBuild errors with RVCT 4.0 tuukka.p.toivonen@nokia.com
886*
Compiler_Compatibility886
P1CLOSEDcriticalPDK_3.0.bBuildsbsv2 (raptor) with RVCT 4.0 generates erroneous symbols in freeze file larry.knibb@nokia.com
675*
Compiler_Compatibility, Symbian^3675
P3RESOLVEDFeaturePDK_3.xvpnclientRVCT 4.0 support mikko.aittola@nokia.com
1641*
Compiler_Compatibility1641
P3RESOLVEDenhancementPDT_1.xBuildunrecognized option -mapcs larry.knibb@nokia.com
1686*
Compiler_Compatibility, Symbian^31686
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (35) john.imhofe@nokia.com
1703*
Compiler_Compatibility, Symbian^31703
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (1742) john.imhofe@nokia.com
1734*
Compiler_Compatibility, Symbian^31734
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (33) john.imhofe@nokia.com
1749*
Compiler_Compatibility, Symbian^31749
P3RESOLVEDenhancementPDK_3.0.emdsGCC-E compilation error in mds (1642) tuukka.p.toivonen@nokia.com
1750*
Compiler_Compatibility, Symbian^31750
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (764) john.imhofe@nokia.com
1758*
Compiler_Compatibility, Symbian^31758
P3RESOLVEDenhancementPDK_3.0.euiacceleratorGCC-E compilation error in uiaccelerator (775) markus.penttila@nokia.com
1768*
Compiler_Compatibility, Symbian^31768
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (32) john.imhofe@nokia.com
1779*
Compiler_Compatibility, Symbian^31779
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (769) john.imhofe@nokia.com
1787*
Compiler_Compatibility, Symbian^31787
P3RESOLVEDenhancementPDK_3.0.ewebGCC-E compilation error in web (1099) forrest.hodgkins@nokia.com
1793*
Compiler_Compatibility, Symbian^31793
P3RESOLVEDenhancementPDK_3.0.ecameraGCC-E compilation error in camera (1439) teemu.rossi@nokia.com
1811*
Compiler_Compatibility, Symbian^31811
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (841) john.imhofe@nokia.com
1822*
Compiler_Compatibility, Symbian^31822
P3RESOLVEDenhancementPDK_3.0.ekernelhwsrvGCC-E compilation error in kernelhwsrv (31) john.imhofe@nokia.com

Supporting each other and getting help

Many of the compiler issues are trivial, while others may require compiler expertise or some research to be resolved. To enable the community to help each other, or share your findings we created the mailing list: compiler-compatibility@lists.symbian.org. Compiler-compatibility provides a link to the archives and RSS feed of the list.

As with all mailing lists you will need to subscribe before you can use it. This avoids that the list is abused by spammers. You can send directly to compiler-compatibility@lists.symbian.org, but you won't receive any mail and a moderator will need to approve the message.

General information about the mailing list is available in Using Mailing Lists Quick Start.

The CompilerCompatibility branch and build

We created a compiler branch and build to help with the compiler work.

Common failures and Known fixes

RVCT issues

Compiler Compatibility/RVCT

GCC issues

Compiler Compatibility/GCCE

See also

Comments

Sign in to comment…