Classification: C++ Category: Development
Created: 01/24/2008 Modified: 01/31/2008
Number: FAQ-1574
Platform: Symbian OS v9

Question:

Global writeable static data in DLLs does not appear to work when projects are compiled with GCC-E. What can I do about this?

Answer:

Symbian OS supports global static data in DLLs (See whitepaper "Support for Writeable Static Data in Symbian OS" on the Symbian Developer Network).


    However the current supported version of GCC-E has a defect; if any global object's destructor cannot be optimised away code, the loading executable will panic when the DLL is loaded. This defect has been fixed in later versions of GCC-E but at time of writing these versions have not been validated for use with Symbian OS.

    Therefore developers have the following options:
    1. Use the ARM RVCT 2.2 Compiler
    2. Build libraries as static LIBs rather than as DLLs and incorporate directly into your EXE. This may be acceptable if the library code is not widely shared.
    3. Do not include static data in your projects
    It may also be possible to use later versions of the compiler than Q1C 2005. Symbian has not validated such versions, however it is quite possible that a specific version will work correctly.

    Note:
    • Current version of GCCE is: gcc version 3.4.3 (release) (CodeSourcery ARM Q1C 2005)

    See also:


Legal Disclaimer | Privacy Policy | Sitemap | Media center | Contact us | © 2008 Symbian Ltd