Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[split]The reason GCC doesn't work for us
#2
Quote:I'd like to know more about what these GCC compatibility problems are.
Put it simply, it's got to do with gcc producing a different binary layout of the classes involved, which means all virtual functions get directed to the wrong locations.

To go into more detail, the game and MSVC-compiled DLLs translate, for example, TechnoClass::GetType() to "call [edx + 84h]", but GCC translates it to "call [edx + A0h]" instead. For objects that were constructed inside GCC code, that breaks when you return control to the game, and on object pointers created by the game it breaks right off the bat. That different layout shifts the offsets for member variables as well, making their access also incompatible. I've googled for hours and I haven't seen any mention of a correction for this anywhere.
Reply


Messages In This Thread
[split]The reason GCC doesn't work for us - by Guest - 22.08.2008, 03:03:19
RE: Showtime - by DCoder - 22.08.2008, 08:45:57
RE: Showtime - by DCoder - 22.08.2008, 14:19:19
RE: Showtime - by MrNybbles - 22.08.2008, 20:56:27



Users browsing this thread: 1 Guest(s)