From the tamarin chat room: [jsudduth] On Linux-64, ReleaseDebugger build only, I'm getting the following error: In file included from ../nanojit/nanojit.h:364, from ../nanojit/LIR.cpp:41: ../nanojit/Containers.h: In member function â€˜nanojit::HashMap<K, T, H>::Node* nanojit::HashMap<K, T, H>::find(K, size_t&) [with K = int, T = int, H = nanojit::DefaultHash<int>]â€™: ../nanojit/Containers.h:178: error: dereferencing pointer â€˜dataâ€™ does break strict-aliasing rules ../nanojit/Containers.h:173: note: initialized from here ../nanojit/Containers.h:178: note: initialized from here make: *** [nanojit/LIR.o] Error 1 any ideas? [fklockii] jsudduth: What version of GCC? [jsudduth] 4.4.5 [fklockii] jsudduth: My initial assumption is that its complaining about casting a void* to a uint64_t*; we may need to put in an intermediate cast to char* .... (other potential options: changing the compiler flags, or more severe revision to the code to avoid casting...) It would be good to dissect this, and see if we can resolve it without having to downgrade the GCC version to 4.3.
To my knowledge there's no requirement as of yet that tamarin work with strict aliasing enabled, and I think it would take a concerted effort on part of the team, including the writing of coding standards, to make it work. So IMO turning off warnings is probably the way to go. (Last I got tamarin to compile with 4.4 - long time ago now - it did not run, so there may be additional issues to be resolved.)
Transferring to Jim to turn off the warning.