[haiku-development] Re: hybrid questions -- not "how" to build, but why?

  • From: Colin Günther <coling@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 28 Dec 2009 16:29:18 +0100

Stéphane Charette wrote:
This e-mail is about the "why" behind hybrid builds. (I'll start a different e-mail thread to handle my questions regarding "how".) I've make some newbie assumptions:

ASSUMPTION #1: gcc 2.95.3 is solely for people with old BeOS apps hanging around

ASSUMPTION #2: gcc 4 is almost ten years older then gcc 2, contains a truckload of fixes and new stuff, and thus must be better than gcc 2 at many things (remember, gross newbie assumptions here!)

Here are my questions:

QUESTION #1: Without starting a flame war over semantics or code/implementation/theory details, are assumptions #1 and #2 valid?

When refining assumption #1 to old BeOS apps and *drivers*. Then I would say it is valid.
QUESTION #2: As a new developer to Haiku, with no old BeOS software hanging around on my shelves, should I want a hybrid build, or should I just build with gcc4?
It depends, if you are solely developing userland apps then it doesn't matter. Only keep in mind that the R1 release will be a gcc2hybrid supposedly. So you may want to test your app on such a build from time to time.

QUESTION #3: What is the difference between the two hybrid flavours, GCC2/4 and GCC4/2?
The hybrid is for userspace apps, only. Though when developing C++ based drivers (e.g. a VirtualBox mouse driver ;) you will encounter differences between a gcc2/4 and a gcc4/2 build. As the driver built for gcc2 will then not work on a gcc4, due to different name mangling. And I think you can generalize this for every C++ software acting solely in kernel space (everything in src/add-ons/kernel).

QUESTION #4: If the answer to question #2 is that I should use a hybrid, how do I know if I should use GCC2/4 or GCC4/2?
If you wanne support Haiku R1 you should use GCC2/4. R1 will supposedly use this combo because it is the only GCC combination allowing binary compatibility to BeOS R5 at the moment.

-Colin


Other related posts: