An EPOC Release 5 SDK for Linux

The C++ SDK from symbian is hosted on Microsoft Windows.  It is using  the cygnus toolchain which is a GNU product. The gcc and the binutils  in this SDK are used to create a PE (i.e. windows) executable which is converted with a tool  petran.exe from symbian.  Using the cygnus toolchain for the arm-pe target on Linux and some tweaking of the SDK one can get a useable platform for compiling code for the psion.

This SDK has many rough edgdes, please use it at your own risk. You will find more hints for using and compiling it on

For additional information, and port to recent releases of the symbian os please have a look at the gnupoc project at



Installing the Linux SDK: (You may download it  in ASCII FORMAT)

Unpack linux-sdk-cygnus-2.7.x.tgz:

cd / ; tar zxvf linux-sdk-cygnus-2.7.x.tgz

Mount the SDK CDROM or the installed EPOC SDK and copy it to your Linux system:

perl copysdk /cdrom ~/epoc

Configure wine, that it is possible to call petran.

I examined to output of the makmake scripts for determing the correct flags and commands when I compiled perl.exe for the psion5:

arm-pe-gcc -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/ -c -O -fomit-frame-pointer -DNDEBUG -nostdinc -Wno-ctor-dtor-privacy   -mcpu-arm710 -mapcs-32 -mshort-load-bytes -msoft-float -fcheck-new    -fvtable-thunks -D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__    -D__EPOC32__  -D__MARM__ -D__EXE__ -I ~/epoc/include/ -I ~/epoc/include/libc *.c

arm-pe-ld -s -e _E32Startup --base-file perl.bas -o perlpe.exe ~/epoc/lib/eexe.o *.o ~/epoc/lib/ecrt0.o ~/epoc/lib/estlib.lib ~/epoc/lib/euser.lib

arm-pe-dlltool --as=arm-pe-as --output-exp perl.exp --base-file perl.bas ~/epoc/lib/eexe.o *.o ~/epoc/lib/ecrt0.o ~/epoc/lib/estlib.lib  ~/epoc/lib/euser.lib

arm-pe-ld -s -e  _E32Startup -o perlpe.exe perl.exp ~/epoc/lib/eexe.o *.o ~/epoc/lib/ecrt0.o ~/epoc/lib/estlib.lib  ~/epoc/lib/euser.lib

wine "$HOME/epoc/bin/petran.exe perlpe.exe perl.exe -nocall -heap 0x00000400 0x00200000 -stack 0x0000c000 -uid1 0x1000007a -uid2 0x100051d8 -uid3 0x00000000"


Thanks to CYGNUS for supporting GNU Software, the WINE team, SYMBIAN for choosing the gcc and giving away their SDK for free.