elf2e32: new release!

I finally fix bug causes broken code section in symbian binaries. Some motherfucker move out of loop pointer increment. Maybe there was some “bomb” for other developers who unaffiled with nokia? It was so heavy to find…

There was another bug: sizeof(char*) in visual studio compiler have 4 bytes but in mingw – 8! Hehe, correctness binary not affected that bug.

There some things need be done:

  1. rewrite binary generator logic because one test failes and debugger cant help
  2. Write more tests
  3. Print variables in writable static data section
elf2e32: new release!

Raptor & abld build system

I always wonders why they depends on gnu make? Why not drop that staff? It’s so simple – get sources from .mmp file and feed gcc.

Build system already have mmp parser writen on perl. It’s funny but original make can’t handle generated makefile 🙂 SDK has special vetsion.

Abld build system depends from artificial ActivePerl(Rasberry Perl doesn’t work). There exist patches for new Active perl usage in sdks. But patched sdk may generate help files incorrectly.

Raptor aka sbs build system require again artificial perl, bash(even on windows!) and python 2.6 only. Yeah, Raptor use parts from abld… Why doesn’t use python to build binaries?

Carbide builtin mmp parser also generates makefile. Why doesn’t ant use?

Raptor & abld build system

elf2e32: stable release out!

Stable release out after 4 month fixing runtime and compile-time failures. Grab source code here and build as x32(x64 version not tested).

There remains small bug – garbadge 8bit bit gap between export and import sections. Also –e32dump still displays raw data for some fields.

Well, I succesfully build pys60 on early bugfix state. Testcases succeeded and I want investigate why abld so slow on big projects.

Anyway my main goal – port symbian to rasberry pi. Why? It has open gpu driver with manufacture documentation.


elf2e32: stable release out!


error: narrowing conversion of ‘2150115144u’ from ‘unsigned int’ to ‘TInt32 {aka long int}’ inside { } [-Wnarrowing]
const TUid KUidCustomCrossCheck={KUidCustomCrossCheckValue};

warning: narrowing conversion of ‘aUid’ from ‘TInt {aka int}’ to ‘TUint32 {aka long unsigned int}’ inside { } [-Wnarrowing]
{TUid uid={aUid};return uid;}

Change in e32cmn.h TUid member type iUid in c++14 and errors became varnings! Code:

#if (__cplusplus >= 201402L)
TUint32 iUid; // warnings
TInt32 iUid; // errors