Moving gnustep to clang/llvm

Jakub Jelinek jakub at redhat.com
Wed Jan 18 17:10:37 UTC 2012


On Wed, Jan 18, 2012 at 06:03:05PM +0100, Jochen Schmitt wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 18.01.2012 17:57, Andrew Haley wrote:
> >
> >> The issue was, that during thu build of gnustep-base I have got a
> >> error messag which told me, that the file objc/objc-api.h was not
> >> found.
> >>
> >> So I have ask upstream for support to solve this issue.
> >
> > Right, so it's probably not a gcc issue but a real bug in
> > gnustep.
> >
> >
> 
> The cited file objc/objc-api.h was provided by the gcc-objc package and
> was removed by gcc-4.7.0, so the reason for my issue depends on the
> gcc-4.7.0 packages.

GCC 4.6 objc-api.h said:
/* This file declares the "traditional" GNU Objective-C Runtime API.                                                                               
   It is the API supported by older versions of the GNU Objective-C                                                                                
   Runtime.  Include this file to use it.                                                                                                          
                                                                                                                                                   
   This API is being replaced by the "modern" GNU Objective-C Runtime                                                                              
   API, which is declared in objc/runtime.h.  The "modern" API is very                                                                             
   similar to the API used by the modern Apple/NeXT runtime.                                                                                       
                                                                                                                                                   
   The last version of GCC supporting the traditional API is GCC 4.6.                                                                              
   This file will not exist in later versions of GCC.                                                                                              
                                                                                                                                                   
   Because the two APIs have some conflicting definitions (in                                                                                      
   particular, Method and Category are defined differently) you should                                                                             
   include either objc/objc-api.h (to use the traditional GNU                                                                                      
   Objective-C Runtime API) or objc/runtime.h (to use the modern GNU                                                                               
   Objective-C Runtime API), but not both.  */                                                                                                     
so it is surprising that gnustep maintainers didn't bother to do anything
to move toward objc/runtime.h.  And it surprises me that clang actually
didn't remove that header too, I'd have thought that Nicola Pero
removed it because it was gone in clang/llvm too.

	Jakub


More information about the devel mailing list