[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUstep on Darwin!

From: Bill Northcott
Subject: Re: GNUstep on Darwin!
Date: Tue, 25 Nov 2003 08:07:08 +1100

> On Sunday, November 23, 2003, at 03:07 PM, John Davidorff Pell wrote:
> > I've successfully build and installed all the way up through -base on
> > darwin using gnu-gnu-gnu. I used GNUstep's libobjc, and pyobjc's
> > libffi. In gui I am getting this error:

> > P.S. I plan on making a guide for building on darwin, if I can get the
> > rest to compile happily. I am using apple's gcc, and most of the
> > modifications have simply been to add "-lobjc" to a whole bunch of
> > make files. :-) For base I had to add "-framework CoreFoundation" to
> > resolve "___CFConstant...comething...blah..."

> Well, no one has gotten GNUstep to work with the Apple compiler as far
> as I know, so you are probably in for some fun. Have you actually been
> able to get GNUstep base to work (i.e. run some of the tests in the
> Testing directory or some of the Tools)?

I think the current Apple gcc-3.3 should build GNUstep.  If you add the 
patch from gcc bug 11754 the code will probably even work.  You can find 
such a patched compiler which is a drop replacement for the Apple one on 
the Swarm site at http://savannah.nongnu.org/projects/swarm.  The patched 
compiler is functionally identical to the Apple one except when building 
Objective-C with the -fgnu-runtime flag.

> If you are doing gnu-gnu-gnu, then you probably want to add
> -fgnu-runtime to the compile flags (GNUstep make might be doing that
> automatically, but make sure). Also, it's likely you'll have to remove
> the libobjc.dylib that comes with Apple's GCC, or at least make sure
> the the GNUstep libobjc.a is named libobjc.dylib so it's properly
> linked (see http://www.gnustep.org/information/machines_1.html#SEC2).

The libobjc linking is a real problem.  Using -fgu-runtime will ensure 
that the runtime calls are in GNU runtime format, -lobjc is likely to link 
the Apple runtime. You have to use the linker flags to supress the normal 
system libraries.  We did manage to get it to work for Swarm, but it made 
things much cleaner and cross platform to change the name of the Swarm 
libobjc (a modified GNU libobjc) to libswarmobjc.dylib.  I think it would 
be a really bad idea to remove the system's runtime.
(as an aside, that library is NOT part of Apple's gcc, but in a separate 
package objc4)

Bill Northcott
PS The code affected by the patch 11754 has now been dropped from the 
Apple cvs sources.  So the next release is likely to be quite diferent.  I 
have not yet determined whether the new code works properly with the 
-fgnu-runtime flag.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]