[haiku-development] Re: Enforcing gcc2h

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 29 May 2011 22:42:38 +0100

Not sure because I still think gcc4 stuff should work if compiled on gcc4 system 
and transfer over the gcc4 libraries and programs to gcc2 system.  The gcc4 
libraries (&  program) would be identical on both systems so if any breakage 
happened it would have to be with the kernel (or linking to gcc4 server)?  Maybe 
another dev can give more info here.
I think main issue is that people install gcc4 libraries in gcc2 folders and 
also the ABI change that happened breaking many gcc4 programs.  Most gcc4 
programs still have not been updated on Haikuware and could be affected (ie, 

We don't need another dev, I can explain it myself :)

The problems are :
* Libs installed in the wrong place : if you run a gcc2h system and put some gcc4 libs in boot/system/libs/, then gcc4 apps will still work, but gcc2 ones will be broken (because they expect a gcc2 lib here) * there are more subtle problems with add-ons too : they are handled through C functions ; so this will work, but then they usually contain C++ code, which isn't compatible accross gcc2/4. This create all kinds of weird problems. We have support for it in some parts of the system (the translatiors will work for example) but an app directly looking for add-ons may do unexpected things sometimes. This can be seen for example with BGameSound trying to instanciate a BMixer - it always tries the gcc2 one, even if compiled with gcc4.

That is fine but that still does not solve any ABI changes that break gcc4 apps 
later on.  See my first reply.  And people use a zip file to install gcc4 
libraries which means gcc4 libs will end up in /boot/common/lib (which is gcc2 
lib folder on gcc2 system).  That is why I brought up BASH script to do gcc4 
library install on gcc2 release for non-experts.

This is just wrongly packaged libs. These wouldn't get the haiku-compatible logo, so people know they are on their own with them.
This will eventually get solved when we get a package manager, anyway.


Other related posts: