[libobjc] May I tweak objc-api.h?

Andrew Pinski pinskia@physics.uc.edu
Fri Feb 6 23:24:00 GMT 2004


On Feb 6, 2004, at 15:05, Mike Stump wrote:
> There is excellent prior art here, with exactly this issue.  The case 
> came up with X11 and C++ and a keyword, probably class, and in some 
> area that did affect api code.

Sorry but this is slightly different from X11 as they have broke 
backward compatibility with
some of their releases before (From X11R5 to X11R6 and such) but GNU's 
libobjc have been
source and binary compatible for a long time now.

> #if (__GNUC_ == 3 && __GNUC_MINOR__ < 4)
> #define super_class class
> #

No sorry but this will not work every where because you might have a 
function called
super_class and then you have binary compatibility issues.

> and then use super_class everywhere.  It compiles on both, and it easy 
> to maintain, as long as one doesn't get hit with other things called 
> super_class. :-(

See you already see the problem.

> The change breaks all user code that uses class, but sometimes an easy 
> to describe system is easier to fix than an insanely complex one.

But libobjc is source and binary compatible from 2.95.3 (and maybe 
before) up to 3.5.0.
Since this is a source level change, I am going to say this should be 
conditional on
C++/Objc++ as it will only effect new source and not old ones.

> The X11 folks grappled with this, gosh, a long long time ago.  Time to 
> enter the 90s.  :-)

Well since class is not a reserved word in C at all, we are in the 
1990s with C99 :-).

Welcome to almost compatible language hell.

Thanks,
Andrew Pinski



More information about the Gcc mailing list