discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Compiling GNUstep under Debian


From: Ivan Vučica
Subject: Re: Compiling GNUstep under Debian
Date: Fri, 15 Apr 2011 12:58:08 +0200

I noticed I failed to mention which version I'm using. This is latest SVN of the core module:

ivucica@theevilmacbook:~/Programs/gnustep/modules/core$ svn info | grep Revision
Revision: 32865


On Fri, Apr 15, 2011 at 12:56, Ivan Vučica <ivucica@gmail.com> wrote:
Hi!

I currently have GNUstep installed, but I don't think there's a conflict at the moment. I have GCC 4.4.5 installed, and clang 1.1.

Here's what I'm doing. I am forcing use of clang as a compiler, I am telling GNUstep where to find the runtime (using beautiful trick that Jason Felice added to Zcode's configure) and I'm telling gnustep-base where to find libffi.

cd gnustep/modules/core/make

CFLAGS=-I`gcc -E - <<< '#include <objc/objc.h>' | grep objc/objc.h | sed -n -e '1{
               s/^# [0-9]* "//
               s/".*//
               s/\/objc\/objc\.h//
               p
       }'` ./configure CC=clang

make
sudo make install

cd ../base

CFLAGS=-I`gcc -E - <<< '#include <objc/objc.h>' | grep objc/objc.h | sed -n -e '1{
               s/^# [0-9]* "//
               s/".*//
               s/\/objc\/objc\.h//
               p
       }'` ./configure CC=clang --with-ffi-include=/usr/include/i486-linux-gnu

make


(I have hardcoded location of libffi.)

This is where the thing falls apart:

ivucica@theevilmacbook:~/Programs/gnustep/modules/core/base$ make
This is gnustep-make 2.6.0. Type 'make print-gnustep-make-help' for help.
Making all in Source ...
Making all in ObjectiveC2 ...
Making all for subproject ObjectiveC2...
 Compiling file runtime.c ...
In file included from runtime.c:34:
/usr/lib/gcc/i486-linux-gnu/4.4.5/include/objc/objc.h:42:24: error: 
      redefinition of typedef 'BOOL' is invalid in C [-Wtypedef-redefinition]
typedef unsigned char  BOOL;
                       ^
In file included from runtime.c:1:
../../Headers/ObjectiveC2/runtime.h:71:23: note: previous definition is here
typedef unsigned char BOOL;
                      ^
2 diagnostics generated.
make[4]: *** [obj/ObjectiveC2.obj/runtime.c.o] Error 1
make[3]: *** [internal-subproject-all_] Error 2
make[2]: *** [ObjectiveC2.all.subproject.variables] Error 2
make[1]: *** [internal-all] Error 2
make: *** [internal-all] Error 2


As you can see, GCC 4.4's runtime, which is required to compile base, conflicts with ObjectiveC2 subproject. (I presume objectivec2 is libobjc2?)

It is required because, if I run with ./configure CC=clang, objc/objc.h cannot be found:
....
....
checking the Objective-C runtime... GNU
checking for custom shared objc library... NONE
checking objc/runtime.h usability... no
checking objc/runtime.h presence... no
checking for objc/runtime.h... no
checking objc/objc.h usability... no
checking objc/objc.h presence... no
checking for objc/objc.h... no
Check to make sure you have a full installation of the GCC
compiler that includes the Objective-C headers and libraries
configure: error: Could not find Objective-C headers

How do I get out of this dependency loop?
--
Ivan Vučica
ivan@vucica.net
Coming soon for iPhone, Zombie Ball - http://j.mp/zbivmail





--
Ivan Vučica
ivan@vucica.net
Coming soon for iPhone, Zombie Ball - http://j.mp/zbivmail



reply via email to

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