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

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 28 Dec 2009 20:56:11 +0100

On 2009-12-28 at 12:24:58 [+0100], Stéphane Charette 
<stephanecharette@xxxxxxxxx> 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

Nope. gcc 2 is also for developers writing applications that they want to run 
on future Haiku releases without binary compatibility issues. The gcc 2 API 
(the public non-experimental part that is) comes with binary compatibility 
guarantee. The gcc 4 interface does not -- it's very likely that we'll break 
things.

> 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!)

Yep. AFAIK the only downside is that gcc 4 is slower than gcc 2 (the 
compiler, not the produced code), if that is of any importance to you.

> Here are my questions:
> 
> QUESTION #1:  Without starting a flame war over semantics or
> code/implementation/theory details, are assumptions #1 and #2 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?

If you don't care about binary compatibility either, then a non-hybrid gcc 4 
is just fine. Please note that a hybrid installation will add convenience, 
though, since you will be able to run binary packages of applications 
regardless of the compiler flavor.

> QUESTION #3:  What is the difference between the two hybrid flavours, GCC2/4
> and GCC4/2?

The former is a system completely built with gcc 2, additionally including a 
set of libraries and some add-ons built with gcc 4. Most gcc 4 applications 
will run on it without problems. You will probably run into problems with 
applications that use add-ons, if the compiler for the application and the 
add-ons don't match.

> 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?

I would recommend a hybrid installation for convenience. Which one doesn't 
matter all that much. Personally I'm usually using a gcc 4/2 installation, 
mainly because that's the compiler Haiku will eventually switch to, and 
because I prefer working with gcc 4. The latter isn't a real argument though, 
since one can easily switch between compilers anyway.

CU, Ingo

Other related posts: