Compiler Compatibility
From Symbian Developer Community
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
| ID | P | Status | Severity | Version | Product | Summary (12 tasks) ⇒ | Assignee | |
|---|---|---|---|---|---|---|---|---|
| 2477* Compiler_Compatibility2477
| P3 | ASSIGNED | normal | PDK_3.0.h | imsrv | cimcachefactory.h uses EXPORT_C instead of IMPORT_C, causing RVCT 4.0 linker problems | shrikumar-b.sharma@nokia.com | |
| 640* Attention_Required, Compiler_Compatibility640
| P3 | NEW | enhancement | PDK_3.0.b | ipappsrv | Build errors with RVCT 4.0 | paulius.meskauskas@nokia.com | |
| 644* Attention_Required, Compiler_Compatibility644
| P3 | NEW | enhancement | PDK_3.0.b | mmuifw | Build errors with RVCT 4.0 | kumar.sohony@nokia.com | |
| 645* Attention_Required, Compiler_Compatibility645
| P3 | NEW | enhancement | PDK_3.0.b | mmmw | Build errors with RVCT 4.0 | aaron.roberts@nokia.com | |
| 650* Attention_Required, Compiler_Compatibility650
| P3 | NEW | enhancement | PDK_3.0.b | ossrv | Build errors with RVCT 4.0 | vinod.vijayarajan@nokia.com | |
| 664* Attention_Required, Compiler_Compatibility664
| P3 | NEW | enhancement | PDK_3.0.b | phone | Build errors with RVCT 4.0 | samu.collan@nokia.com | |
| 667* Attention_Required, Compiler_Compatibility667
| P3 | NEW | enhancement | PDK_3.0.b | videoplayer | Build errors with RVCT 4.0 | petri.t.laine@nokia.com | |
| 676* Attention_Required, Compiler_Compatibility676
| P3 | NEW | enhancement | PDK_3.0.b | web | Build errors with RVCT 4.0 | leonid.ebril@nokia.com | |
| 3022* Compiler_Compatibility3022
| P2 | NEW | major | TESTING_TAGS_3.0 | Unclassified | RVCT 4.0 Error: L6410W | sf.integration@symbian.org | |
| 476* Attention_Required, Compiler_Compatibility, PDK_BUILD, Symbian^4476
| P3 | PROPOSED | normal | PDT_1.x | Build | bootstrap.mk is confused by RVCT 4.0 | vincent.febvre@nokia.com | |
| 680* Attention_Required, Compiler_Compatibility680
| P3 | PROPOSED | enhancement | unspecified | web | Build errors with RVCT 4.0: Linker Error: L6410W | leonid.ebril@nokia.com | |
| 2478* Compiler_Compatibility2478
| P3 | PROPOSED | normal | PDK_3.0.h | classicui | AknPhoneNumberEditor.h uses EXPORT_C instead of IMPORT_C, stops sf/app/phone compiling with RVCT 4.0 | steven.yao@nokia.com |
GCC issues
See the Software Freedom Fighter project TODO list.
Errors already solved
| ID | P | Status | Severity | Version | Product | Summary (70 tasks) ⇒ | Assignee | |
|---|---|---|---|---|---|---|---|---|
| 212* Compiler_Compatibility212
| P2 | CLOSED | enhancement | PDT_1.x | Build | SBS2 aka Raptor does not support GCCE as an option | larry.knibb@nokia.com | |
| 642* Attention_Required, Compiler_Compatibility642
| P3 | CLOSED | enhancement | PDK_3.0.b | mds | Build errors with RVCT 4.0 | tuukka.p.toivonen@nokia.com | |
| 886* Compiler_Compatibility886
| P1 | CLOSED | critical | PDK_3.0.b | Build | sbsv2 (raptor) with RVCT 4.0 generates erroneous symbols in freeze file | larry.knibb@nokia.com | |
| 1685* Compiler_Compatibility, Symbian^31685
| P3 | CLOSED | enhancement | PDK_3.0.e | accesssec | GCC-E compilation error in accesssec (1996) (missing stdint.h) fixed by Peter Fordham | panu.hamalainen@nokia.com | |
| 1722* Compiler_Compatibility, Symbian^31722
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1600) (remove unused method) fixed by Peter Fordham | markku.kaurila@nokia.com | |
| 1741* Compiler_Compatibility, Symbian^31741
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1601) (initialization in switch) fixed by Peter Fordham | markku.kaurila@nokia.com | |
| 1745* Compiler_Compatibility, Symbian^31745
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1598) (function pointers) fixed by Peter Fordham | markku.kaurila@nokia.com | |
| 1762* Compiler_Compatibility, Symbian^31762
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1594) (template name qualification) fixed by Peter Fordham | markku.kaurila@nokia.com | |
| 1767* Compiler_Compatibility, Symbian^31767
| P3 | CLOSED | enhancement | PDK_3.0.e | persistentdata | GCC-E compilation error in persistentdata (2109) | chris.dudding@nokia.com | |
| 1771* Compiler_Compatibility, Symbian^31771
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1597) ( types for passing function pointers) fixed by Peter Fordham | markku.kaurila@nokia.com | |
| 1795* Compiler_Compatibility, Symbian^31795
| P3 | CLOSED | enhancement | PDK_3.0.e | persistentdata | GCC-E compilation error in persistentdata (1045) | chris.dudding@nokia.com | |
| 1820* Compiler_Compatibility, gecko, Symbian^31820
| P3 | CLOSED | enhancement | PDK_3.0.e | contacts | GCC-E compilation error in contacts (1595) by Leo Zhengyh | markku.kaurila@nokia.com | |
| 2312* Compiler_Compatibility, Symbian^32312
| P3 | CLOSED | enhancement | PDK_3.0.g | contacts | Misc. GCC-E compilation error in contacts by Peter Fordham | markku.kaurila@nokia.com | |
| 641* Attention_Required, Compiler_Compatibility641
| P3 | RESOLVED | enhancement | PDK_3.0.b | locationsrv | Build errors with RVCT 4.0 | billy.gibson@nokia.com | |
| 646* Attention_Required, Compiler_Compatibility646
| P3 | RESOLVED | enhancement | PDK_3.0.b | opensrv | Build errors with RVCT 4.0 | shrikumar-b.sharma@nokia.com | |
| 675* Compiler_Compatibility, Symbian^3675
| P3 | RESOLVED | Feature | PDK_3.x | vpnclient | RVCT 4.0 support | mikko.aittola@nokia.com | |
| 1386* Attention_Required, Compiler_Compatibility1386
| P3 | RESOLVED | normal | PDK_3.x | kernelhwsrv | Compsupp build problems with RVCT 4.0 b650( Kernel and hardware services | john.imhofe@nokia.com | |
| 1400* Compiler_Compatibility1400
| P3 | RESOLVED | enhancement | PDT_1.x | Build | [GCCE] GCCE 4.X strictness for "extra qualification" error | larry.knibb@nokia.com | |
| 1405* Compiler_Compatibility, GCC_SURGE1405
| P3 | RESOLVED | normal | PDK_4.x | Build | GCCE: Raptor passing unknown option -mapcs to the assembler. | larry.knibb@nokia.com | |
| 1641* Compiler_Compatibility1641
| P3 | RESOLVED | enhancement | PDT_1.x | Build | unrecognized option -mapcs | larry.knibb@nokia.com | |
| 1683* Compiler_Compatibility, Symbian^31683
| P3 | RESOLVED | enhancement | PDK_3.0.b | Beagle Baseport | GCC-E compilation error in beagleboard (783) (accessibility) fixed by George Norton | arunabha@symbian.org | |
| 1686* Compiler_Compatibility, Symbian^31686
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (35) | john.imhofe@nokia.com | |
| 1687* Compiler_Compatibility, Symbian^31687
| P3 | RESOLVED | enhancement | PDK_3.0.e | wlan | GCC-E compilation error in wlan (1015) (initializer expected) | arto.j.suomi@nokia.com | |
| 1690* Compiler_Compatibility, Symbian^31690
| P3 | RESOLVED | enhancement | PDK_3.0.e | security | GCC-E compilation error in security (2065) | santosh.v.patil@nokia.com | |
| 1692* Compiler_Compatibility, gecko, Symbian^31692
| P3 | RESOLVED | enhancement | PDK_3.0.e | homescreensrv | GCC-E compilation error in homescreensrv (2099) resolved by Leo Zhengyh | jaakko.haukipuro@nokia.com | |
| 1700* Compiler_Compatibility, Symbian^31700
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (1448) | john.imhofe@nokia.com | |
| 1702* Compiler_Compatibility, Symbian^31702
| P3 | RESOLVED | enhancement | PDK_3.0.e | remoteconn | GCC-E compilation error in remoteconn (1538) | harry.he@nokia.com | |
| 1703* Compiler_Compatibility, Symbian^31703
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (1742) | john.imhofe@nokia.com | |
| 1708* Compiler_Compatibility, Symbian^31708
| P3 | RESOLVED | enhancement | PDK_3.0.h | lbs | GCC-E compilation error in lbs (1579) (_FOFF usage with array) fixed by Simon Mellor | billy.gibson@nokia.com | |
| 1715* Compiler_Compatibility, Symbian^31715
| P3 | RESOLVED | enhancement | PDK_3.0.e | remoteconn | GCC-E compilation error in usbservices (1796) | harry.he@nokia.com | |
| 1717* Compiler_Compatibility, Symbian^31717
| P3 | RESOLVED | enhancement | PDK_3.0.e | security | GCC-E compilation error in security (2062) | santosh.v.patil@nokia.com | |
| 1728* Compiler_Compatibility, Symbian^31728
| P3 | RESOLVED | enhancement | PDK_3.0.e | photos | GCC-E compilation error in photos (1422) | senthil.ganesan@nokia.com | |
| 1729* Compiler_Compatibility, Symbian^31729
| P3 | RESOLVED | enhancement | PDK_3.0.e | locationsrv | GCC-E compilation error in locationsrv (1604) (_FOFF ) fixed by Peter Fordham | billy.gibson@nokia.com | |
| 1732* Compiler_Compatibility, Symbian^31732
| P3 | RESOLVED | enhancement | PDK_3.0.e | photos | GCC-E compilation error in photos (1419) | senthil.ganesan@nokia.com | |
| 1734* Compiler_Compatibility, Symbian^31734
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (33) | john.imhofe@nokia.com | |
| 1738* Compiler_Compatibility, Symbian^31738
| P3 | RESOLVED | enhancement | PDK_3.0.e | opensrv | GCC-E compilation error in opensrv (793) | shrikumar-b.sharma@nokia.com | |
| 1748* Compiler_Compatibility, Symbian^31748
| P3 | RESOLVED | enhancement | PDK_3.0.e | remoteconn | GCC-E compilation error in usbservices (1782) | harry.he@nokia.com | |
| 1749* Compiler_Compatibility, Symbian^31749
| P3 | RESOLVED | enhancement | PDK_3.0.e | mds | GCC-E compilation error in mds (1642) | tuukka.p.toivonen@nokia.com | |
| 1750* Compiler_Compatibility, Symbian^31750
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (764) | john.imhofe@nokia.com | |
| 1758* Compiler_Compatibility, Symbian^31758
| P3 | RESOLVED | enhancement | PDK_3.0.e | uiaccelerator | GCC-E compilation error in uiaccelerator (775) by Markus Penttila | markus.penttila@nokia.com | |
| 1765* Compiler_Compatibility, Symbian^31765
| P3 | RESOLVED | enhancement | PDK_3.0.e | commonemail | GCC-E compilation error in commonemail (1357) | mikko.bertin@nokia.com | |
| 1768* Compiler_Compatibility, Symbian^31768
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (32) | john.imhofe@nokia.com | |
| 1770* Compiler_Compatibility, Symbian^31770
| P3 | RESOLVED | enhancement | PDK_3.0.e | commonemail | GCC-E compilation error in commonemail (1347 - member function syntax | mikko.bertin@nokia.com | |
| 1776* Compiler_Compatibility, Symbian^31776
| P3 | RESOLVED | enhancement | PDK_3.0.e | locationsrv | GCC-E compilation error in locationsrv (1603) (_FOFF macros) fixed by Peter Fordham | billy.gibson@nokia.com | |
| 1777* Compiler_Compatibility, Symbian^31777
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (1449) | john.imhofe@nokia.com | |
| 1779* Compiler_Compatibility, Symbian^31779
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (769) | john.imhofe@nokia.com | |
| 1784* Compiler_Compatibility, Symbian^31784
| P3 | RESOLVED | enhancement | PDK_3.0.e | camerasrv | GCC-E compilation error in camerasrv (849) fixed by Teemu Rossi | teemu.rossi@nokia.com | |
| 1786* Compiler_Compatibility, Symbian^31786
| P3 | RESOLVED | enhancement | PDK_3.0.e | commonemail | GCC-E compilation error in commonemail (1348) | mikko.bertin@nokia.com | |
| 1787* Compiler_Compatibility, Symbian^31787
| P3 | RESOLVED | enhancement | PDK_3.0.e | web | GCC-E compilation error in web (1099) | leonid.ebril@nokia.com | |
| 1788* Compiler_Compatibility, Symbian^31788
| P3 | RESOLVED | enhancement | PDK_3.0.e | drm | GCC-E compilation error in drm (1541) | simo.jarvinen@nokia.com | |
| 1792* Compiler_Compatibility, Symbian^31792
| P3 | RESOLVED | enhancement | PDK_3.0.e | imghandling | GCC-E compilation error in imghandling (1638) | henri.autio@nokia.com | |
| 1793* Compiler_Compatibility, Symbian^31793
| P3 | RESOLVED | enhancement | PDK_3.0.e | camera | GCC-E compilation error in camera (1439) by Teemu Rossi | teemu.rossi@nokia.com | |
| 1807* Compiler_Compatibility, Symbian^31807
| P3 | RESOLVED | enhancement | PDK_3.0.e | appinstall | GCC-E compilation error in appinstall (30) (ARM assembler) fixed by William Roberts | Timo.J.Heikkinen@nokia.com | |
| 1810* Attention_Required, Compiler_Compatibility, Symbian^31810
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (936) | john.imhofe@nokia.com | |
| 1811* Compiler_Compatibility, Symbian^31811
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (841) | john.imhofe@nokia.com | |
| 1814* Compiler_Compatibility, Symbian^31814
| P3 | RESOLVED | enhancement | PDK_3.0.e | wirelessacc | GCC-E compilation error in wirelessacc (1539) (misc trivial GCC fixes) by Peter Fordham | ville.leva@nokia.com | |
| 1815* Compiler_Compatibility, Symbian^31815
| P3 | RESOLVED | enhancement | PDK_3.0.e | appinstall | GCC-E compilation error in appinstall (924) fixed by Peter Fordham | Timo.J.Heikkinen@nokia.com | |
| 1822* Compiler_Compatibility, Symbian^31822
| P3 | RESOLVED | enhancement | PDK_3.0.e | kernelhwsrv | GCC-E compilation error in kernelhwsrv (31) | john.imhofe@nokia.com | |
| 1858* Compiler_Compatibility, Symbian^31858
| P2 | RESOLVED | minor | unspecified | Build | GCC-E: errors "converting to execution character set: Illegal byte sequence" | larry.knibb@nokia.com | |
| 2473* Compiler_Compatibility2473
| P3 | RESOLVED | normal | PDK_3.0.h | photos | Missing IMPORT_C and EXPORT_C cause RVCT 4.0 compilation problems | senthil.ganesan@nokia.com | |
| 2479* Compiler_Compatibility2479
| P3 | RESOLVED | normal | PDK_3.0.h | securitysrv | wimi.lib is supplied as prebuilt binary, and does not work with RVCT 4.0 | Timo.J.Heikkinen@nokia.com | |
| 2918* Compiler_Compatibility2918
| P3 | RESOLVED | normal | PDK_3.0.i | kernelhwsrv | [GCCE] GET_PC() macro asm does not compile for GCCE | john.imhofe@nokia.com | |
| 2919* Compiler_Compatibility2919
| P3 | RESOLVED | normal | PDK_3.0.i | kernelhwsrv | [GCCE] euser's BLD.INF will mistake gcce for arm gcc98 | john.imhofe@nokia.com | |
| 2930* Compiler_Compatibility2930
| P3 | RESOLVED | normal | PDK_3.0.i | kernelhwsrv | [GCCE] DProcess ctor makes ambiguous RArray ctor call for gcce | john.imhofe@nokia.com | |
| 3113* Compiler_Compatibility, GCC_SURGE3113
| P3 | RESOLVED | normal | PDK_4.x | kernelhwsrv | [GCCE] undefined references 'vtable for __cxxabiv1::__si_class_type_info', '__cxa_pure_virtual' linking _template_ekern.exe | mikek@symbian.org | |
| 3389* Compiler_Compatibility, GCC_SURGE3389
| P3 | RESOLVED | normal | PDK_4.x | kernelhwsrv | [GCCE] type_info requires std:: qualifier in cxxabi.h in e32test build. | mikek@symbian.org | |
| 1705* Compiler_Compatibility, gecko, Symbian^31705
| P3 | VERIFIED | enhancement | PDK_3.0.e | homescreen | GCC-E compilation error in homescreen (1380) fixed by Leo Zhengyh | jaakko.haukipuro@nokia.com | |
| 1726* Compiler_Compatibility, gecko, Symbian^31726
| P3 | VERIFIED | enhancement | PDK_3.0.e | homescreensrv | GCC-E compilation error in homescreensrv (2098) fixed by Leo Zhengyh | jaakko.haukipuro@nokia.com | |
| 1751* Compiler_Compatibility, gecko, Symbian^31751
| P3 | VERIFIED | enhancement | PDK_3.0.e | homescreen | GCC-E compilation error in homescreen (1379) by Leo Zhengyh | jaakko.haukipuro@nokia.com | |
| 2460* Compiler_Compatibility2460
| P3 | VERIFIED | normal | unspecified | accesssec | Problems building eapol_framework with RVCT 4.0 and GCCE | panu.hamalainen@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
GCC issues
See also
- The GCCE toolchain initiative, for particular issues with building the kernel with GCCE
Comments
Sign in to comment…

