[Bf-committers] BlenderCE - the adventure continue...
Salvatore Russo
salvatore.russo at laposte.net
Fri Aug 19 08:21:01 CEST 2005
Hallo,
I reworked on Ghost to have a GostCE working with char and not wchar_t. And the same think with BlenderCE. I am
quite happy now for GhostCE
now, only a couple of additional files and 2 minor modifications in the old ghost tree
are now necessary to make Ghost work for WinCE.
For Blender, you were right! So I wrote some additional functions to locally solve this Unicode story
only
locally. I looks really better like that :=)
Now Blender runs ok until:
MEM_mallocN(unsigned int 22992, char * 0x00555504) line 188
dna_sdna_from_data(void * 0x005593e0 DNAstr, int 22992, int 0) line 479 + 12 bytes
filedata_new() line 848 + 20 bytes
blo_openblendermemory(void * 0x0055fe08 datatoc_B_blend, int 93008) line 902 + 4 bytes
BLO_read_from_memory(void * 0x0055fe08 datatoc_B_blend, int 93008, int * 0x2469f9fc) line 278 + 12 bytes
BKE_read_file_from_memory(char * 0x0055fe08 datatoc_B_blend, int 93008, void * 0x00000000) line 465 + 16 bytes
BIF_read_homefile() line 301 + 20 bytes
BIF_init() line 610
main(int 1, char * * 0x006a0180) line 448
and craches here:
memh= (MemHead *)malloc(len+sizeof(MemHead)+sizeof(MemTail));
with the following exception:
First chance exception in BlenderCE.exe: 0x80000002 Datatype misalignment.
My complile option (in debug mode) in EVC4 are:
/nologo /GX /Zi /Od /Gy /I "..\intern\img\extern /I... /D "DEBUG" /D "POCKETCONSOLE" /D "ARM" /D "_ARM_" /D
"ARMV4" /D "MS_WINDOWS" /D "__CUSTOM_STREAM" /D "WIN32" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D
UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /FR"ARMV4Dbg/" /Fp"ARMV4Dbg/BlenderCE.pch" /YX /Fo"ARMV4Dbg/"
/Fd"ARMV4Dbg/" /M$(CECrtMTDebug) /c
I was obliged to add /Gy to solve (for some functions) the error:
cannot adjust code at offset=offset, va=value
LINK was unable to pad the code as required.
Certain instructions are not allowed to cross page boundaries on some processors. LINK attempts to add pads to
correct this situation. In this case, LINK could not work around the problem.
I also tried with /Zp1 and /Zp 16 to have a structure member alignement of 1 or 16. By default it is 8 but no
improvement! I found in genfile.c the following remark:
IMPORTANT:
- aligment of variables has to be done in such a way, that any system does
not create 'padding' (gaps) in structures. So make sure that:
- short: 2 aligned
- int: 4 aligned
- float: 4 aligned
- double: 8 aligned
- long: 8 aligned
- struct: 8 aligned
So it should work with an alignmenent of 8 :=( No? But I am not really understanding all what this imply...
I read these last days some documentations on WinCE memory management
For example, the following article is very
interesting:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/advmemmgmt.asp
(especially until dll load problem
I dont think Windows mobile 2003 is concerned by this problem
)
Has someone any idea where the problem is coming from? Do you think that I missed any important requirements to
take care to compile Blender?
especially about the memory management critical on WinCE?
I have on my pocketpc the wonderful grey color of Blender
it is already a first thing :=) And the console say me
to continue happily!
Sorry for this long post...
Thanks guys for your help,
Salvatore
Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,34/mn) ; tél : 08 92 68 13 50 (0,34/mn)
More information about the Bf-committers
mailing list