Instructions for Symbian:
1. Build: use libgc.mmp (the sample for s60v3 is provided below)
2. Limitations
2.1. No multi-threaded support yet
2.2. Be careful with limitation that emulator introduces: Static roots are not
dynamically accessible (there are Symbian APIs for this purpose but are just
stubs, returning irrelevant values).
Consequently, on emulator, you can only use dlls or exe, and retrieve static
roots by calling global_init_static_root per dll (or exe).
On target, only libs are supported, because static roots are retrieved by
linker flags, by calling global_init_static_root in main exe.


bld.inf sample contents:

PRJ_PLATFORMS
default armv5

PRJ_MMPFILES
libgc.mmp


libgc.mmp sample contents:

TARGET libgc.dll

TARGETTYPE dll
UID 0x1000008d 0x200107C2 // check uid

EXPORTUNFROZEN
EPOCALLOWDLLDATA

CAPABILITY PowerMgmt ReadDeviceData ReadUserData WriteDeviceData WriteUserData SwEvent LocalServices NetworkServices UserEnvironment

MACRO ALL_INTERIOR_POINTERS
MACRO NO_EXECUTE_PERMISSION
MACRO USE_MMAP
MACRO GC_ATOMIC_UNCOLLECTABLE
MACRO GC_DONT_REGISTER_MAIN_STATIC_DATA
MACRO GC_DLL
MACRO JAVA_FINALIZATION
MACRO SYMBIAN
MACRO ENABLE_DISCLAIM

USERINCLUDE .\include
USERINCLUDE .\include\private

SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE \epoc32\include\stdapis

SOURCEPATH .

SOURCE extra/gc.c
SOURCE extra/symbian.cpp

SOURCE extra/symbian/global_end.cpp
SOURCE extra/symbian/global_start.cpp
SOURCE extra/symbian/init_global_static_roots.cpp

STATICLIBRARY libcrt0.lib
LIBRARY libc.lib
LIBRARY euser.lib
LIBRARY efsrv.lib
LIBRARY avkon.lib
LIBRARY eikcore.lib
