Linked by Thom Holwerda on Sun 10th Sep 2006 20:38 UTC, submitted by fudel
Permalink for comment 161187
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/22/13 22:23 UTC
Linked by Thom Holwerda on 05/22/13 13:38 UTC
Linked by Thom Holwerda on 05/22/13 13:30 UTC, submitted by JRepin
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
Linked by Thom Holwerda on 05/21/13 15:53 UTC
Linked by Thom Holwerda on 05/20/13 22:43 UTC
Linked by Thom Holwerda on 05/20/13 21:50 UTC
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
More News »
Sponsored Links



Member since:
2006-05-26
BUUUUUUUUZZZZZZZZZZZZZZZZZZZZTTTTTTTTT!!!!!!!!
WRONG!
GCC 2.9x and anything above it are different in the binary layout of C++ CLASSES and are *incompatible* regardless of ELF. Clearly you've not done your homework, and misunderstood what I was writing, because your ignorance on the topic shows through horribly. Sure, the C linkage stuff is still compatible (I already stated that, if you paid any attention and had the comprehension, but that appears not to be the case) but C++ between 2.9x and anything above the 2.x gcc is NOT compatible, and binaries rely on how things are done in order to work correctly. Running old 2.9x C++ applications on a gcc version that's 3.x or greater simply will not work, because of how vtables, etc. are handled, and the BeOS C++ API relies on inheritance and the FBC problem is a manifestation of the binary layout of C++ classes as compiled. If BeOS didn't have C++ in its system libraries (all the various kits) it wouldn't matter.
Thus, the only way that 2.9x binaries will run on a system built with gcc 3.x or greater is if there's something that does a conversion for calls between 2.9x and the new libraries, and keeps local copies in the space of the 2.9x binaries of all the objects, where the thunking would have to be done with libraries built using 2.9x to either send messages via IPC to the new servers or by having everything done in 2.9x C++ call C routines that then called through newer libraries, or some assembly language conversions, but the net result is that you can't simply build a library using gcc 3.x that doesn't take that into account and have 2.9x C++ binaries be able to use it.
FYI, here's a link to Apple that mentions these details: I'd advise you read before you comment further.
http://developer.apple.com/releasenotes/DeveloperTools/GCC3.html