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
vm-dev@lists.squeakfoundation.org