README.symbian raw
1 Instructions for Symbian:
2 1. Build: use libgc.mmp (the sample for s60v3 is provided below)
3 2. Limitations
4 2.1. No multi-threaded support yet
5 2.2. Be careful with limitation that emulator introduces: Static roots are not
6 dynamically accessible (there are Symbian APIs for this purpose but are just
7 stubs, returning irrelevant values).
8 Consequently, on emulator, you can only use dlls or exe, and retrieve static
9 roots by calling global_init_static_root per dll (or exe).
10 On target, only libs are supported, because static roots are retrieved by
11 linker flags, by calling global_init_static_root in main exe.
12
13
14 bld.inf sample contents:
15
16 PRJ_PLATFORMS
17 default armv5
18
19 PRJ_MMPFILES
20 libgc.mmp
21
22
23 libgc.mmp sample contents:
24
25 TARGET libgc.dll
26
27 TARGETTYPE dll
28 UID 0x1000008d 0x200107C2 // check uid
29
30 EXPORTUNFROZEN
31 EPOCALLOWDLLDATA
32
33 CAPABILITY PowerMgmt ReadDeviceData ReadUserData WriteDeviceData WriteUserData SwEvent LocalServices NetworkServices UserEnvironment
34
35 MACRO ALL_INTERIOR_POINTERS
36 MACRO NO_EXECUTE_PERMISSION
37 MACRO USE_MMAP
38 MACRO GC_ATOMIC_UNCOLLECTABLE
39 MACRO GC_DONT_REGISTER_MAIN_STATIC_DATA
40 MACRO GC_DLL
41 MACRO JAVA_FINALIZATION
42 MACRO SYMBIAN
43 MACRO ENABLE_DISCLAIM
44
45 USERINCLUDE .\include
46 USERINCLUDE .\include\private
47
48 SYSTEMINCLUDE \epoc32\include
49 SYSTEMINCLUDE \epoc32\include\stdapis
50
51 SOURCEPATH .
52
53 SOURCE extra/gc.c
54 SOURCE extra/symbian.cpp
55
56 SOURCE extra/symbian/global_end.cpp
57 SOURCE extra/symbian/global_start.cpp
58 SOURCE extra/symbian/init_global_static_roots.cpp
59
60 STATICLIBRARY libcrt0.lib
61 LIBRARY libc.lib
62 LIBRARY euser.lib
63 LIBRARY efsrv.lib
64 LIBRARY avkon.lib
65 LIBRARY eikcore.lib
66