[haiku-commits] Re: haiku: hrev47012 - src/apps/haiku-depot

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: "haiku-commits@xxxxxxxxxxxxx" <haiku-commits@xxxxxxxxxxxxx>
  • Date: Sun, 16 Mar 2014 12:44:53 -0400

On Sunday, March 16, 2014, Jonathan Schleifer <js-haiku-commits@xxxxxxxxxxx>
wrote:

> Am 16.03.2014 um 13:03 schrieb Ingo Weinhold 
> <ingo_weinhold@xxxxxx<javascript:;>
> >:
>
> > I believe the naming scheme is visible to the user only wrt. the image
> names (though the official "gcc2hybrid" doesn't actually mention gcc 4).
> The architecture names are "x86_gcc2" and "x86".
>
> I'm not having a problem with the names visible to the user, but even
> those are quite unlucky. Telling people to get a "GCC2 hybrid" image
> usually leads to reply similar to "OMG, GCC 2? Are you serious?" and you
> need to explain them first that it's actually only for ABI compatibility
> and that modern software is built with GCC 4.
>
> > As for the naming in the developer domain (CPP macros and build system),
> I wouldn't mind renaming, but it would be quite a bit of work. And it isn't
> like clang introduced a new ABI, anyway. It just uses the one gcc 4 used
> already.
>
> Yes, it uses the same ABI GCC 4 does. But I see problems with checks like
>
> if $(gccVersion[1]) >= 4
>
> Clang has no GCC version, since it is not GCC. Well yes, it defines
> __GNUC__ for compatibility and fakes a GCC 4.2.1 - but I'm not sure if it
> does that on all platforms and for how long. What that check really wants
> to do is check the ABI version, and not the GCC version. That check should
> be something like if $(cxxAbi >= 2) (assuming 1 is the GCC 2 ABI).
>
> > Moreover, "Current ABI" isn't a particular good name (it should be an
> alias at best). I believe a widely used name for the ABI is "Itanium ABI",
> which isn't really any better wrt. obviousness.
>
> Yes, indeed. Current ABI was just an example. Itanium ABI is actually
> quite a good name, because that's what it is. So GCC2 ABI and Itanium ABI
> maybe? But I think having it as a version makes comparisons easier. So
> maybe ABI version 1 -> GCC2, ABI version 2 -> Itanium?
>

Forgive my ignorance but isn't Itanium the name of the Intel 64 bit
platform not to be confused with AMD's x86_64 archecture? I don't
understand why that would be a good name for the API.

The gcc2 API should be called the Be API while the gcc4/clang API should be
called the Haiku API version 1 I suppose.

Other related posts: