|
Hi!
Today I started new attempt to compile a working 32bit vm. Determined
to not give up before success I eventually found the culprit. Among
other things I compared the file sqMemoryAccess.h from an old version
(that did work on amd64) with the new one. I should have done this
right away because two things imediately stroke me:
* the old version only has inline functions while the new one has
macros in addition
* the macro version of oopForPointer is different from the inline
function version:
# define oopForPointer(ptr) ((sqInt)(ptr))
vs
static inline sqInt oopForPointer(char *ptr)
{ return (sqInt)(ptr - sqMemoryBase); }
From here on it was easy to verify that the macro
USE_INLINE_MEMORY_ACCESSORS is not defined anywhere and that forcing
the use of the inline version results in a working vm.
Now the big question is: should I use the inline versions or the
macros (after fixing them). I'm using gcc 4.1.2 by the way.
Martin
|