Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



How to troubleshoot post-linker (elf2e32) errors

The post-linker (elf2e32.exe) is a Symbian OS build tool that is run after the compiler and linker when a project is built. Its principal function is to create executables (DLLs and EXEs) in the particular format required by Symbian OS, known as the E32Image format.

In ordinary use, the post-linker is called by the make files constructed by abld or an IDE. The options with which the tool is called depend on your settings of the project being built (i.e. as specified in the project MMP file). Error and warning messages reported by the tool can indicate a problem with these settings. This page contains some help on interpreting these messages correctly.

Error

Action

DEF File <position> is not in proper format

This indicates a syntax error in an input DEF file. You need to edit or regenerate the DEF file to correct this.

ELF File <file> contains initialized writable data

By default, Symbian OS DLL's may not contain writable static data. You should change the project's source code to remove such items. For suggestions on alternatives, see Static data.

ELF File <file> contains uninitialized writable data

By default, Symbian OS DLL's may not contain writable static data. You should change the project's source code to remove such items. For suggestions on alternatives, see Static data.

Ordinal number is not in sequence

The symbol is indicates that the input DEF file has been incorrectly edited, so that the symbols are not listed in consecutive ordinal order. You need to edit or regenerate the DEF file to correct this.

Note that if you intended to remove an export from a frozen DEF file, this should be done by using the ABSENT keyword, for example:

_ZNK14Foo14BarLER12CStreamStore @ 646 NONAME ABSENT

Symbol <symbol> missing from ELF File

The input DEF file, specified by a MMP deffile statement, specifies an export that is not found in the executable.

If no binary compatibility break was intended, you should either correct your source to export the missing symbol. If a compatibility break was intended, you should fix the DEF file.

If you are not concerned with maintaining compatibility, use exportunfrozen in the project. This will stop the tool reporting this error.

Unrecognized capability

Check that the platform security capabilities, specified by a MMP capability statement, are correctly spelled. Symbian OS v9.0 Security Architecture lists the available capabilities.

Unsupported Target Type <type>

Check that the target type, specified by a MMP targettype statement, is correctly specified. The targettype reference page lists the available target types.