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.