LD error while porting GCC 3.3.2 for BeOS

Eljay Love-Jensen eljay@adobe.com
Wed Mar 31 15:40:00 GMT 2004


Hi Nighteyes,

 >I'm willing to port GCC 3.3.2 on BeOS platform, but I'm confronting a 
little problem :

Related website: http://www.beosonline.com/

The biggest problems I can foresee porting GCC 3.3.2 to BeOS...
1) BeOS uses a C++ OS API, and thus the particular ABI of GCC
2) BeOS's achilles heel is the Fragile Base Class problem

#2 is more of an issue between revisions of the OS, not between versions of 
GCC.  But it's something that has to be taken into account, at least in the 
periphery of your attention.

#1 is the big one.  BeOS is very tightly bound to the C++ ABI of GCC 2.95.

Unless you retrofit the C++ ABI of GCC 3.3.2 to be compliant with GCC 2.95, 
the C++ code generated with GCC 3.3.2 cannot partake of the OS C++ API.

Retrofitting the C++ ABI of GCC 3.3.2 to GCC 2.95's C++ ABI would get you 
the Most Thankless Task Award.

Note:  not all is lost.  You can still work with the OS C API (since the C 
ABI is stable between 2.95 to 3.3).  But very little of the BeOS has a C API.

If you have access to the BeOS source code (if so... you lucky dog!), you 
could recompile the entire OS under the newer C++ ABI.  However, that's a 
demarcation point for the OS, and no existing applications will work with 
it those apps were recompiled -- or until a GCC 2.95 "thunking shim" layer 
was created.

A "thunking shim" layer has a lot of similarities to Carbon on OS X or WoW 
(Win16 on Win32) for Windows NT.  Different from OS X hosting OS 9 "penalty 
app", or NTVDM (NT Virtual Dos Machine) "penalty box".

I wish you good luck.
--Eljay

Valerie: Think it'll work?
Miracle Max: It would take a miracle.



More information about the Gcc-help mailing list