[Bf-committers] BlenderCE - the adventure continue...

Salvatore Russo salvatore.russo at laposte.net
Fri Aug 19 08:21:01 CEST 2005


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
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:
- 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 


(especially until dll load problem
 I don’t 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,

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