[Top][All Lists]

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

Re: Error compiling libobjc2 - unwind.h not found

From: David Chisnall
Subject: Re: Error compiling libobjc2 - unwind.h not found
Date: Sun, 4 Oct 2009 16:16:01 +0100

Hi Chris,

It doesn't build yet with clang because of the missing header. You can try grabbing it from GCC, or building with GCC. To use the newer features, you will need to compile Objective-C code with clang -fobjc- nonfragile-abi, but the library itself can be built with GCC.

Please also be aware that it is still in active development. I may still change the non-fragile ABI between now and the first official release. There are probably still bugs that may break things for you. There are a lot of compiler flags set in the default build that make it easier for me to track down bugs, but are going to make things very slow (for example, message sends call a few functions that are inlined normally, but the default compile flags at the moment disable inlining, so message sends are quite a lot slower than they would be with an optimised build). Until the first release, I wouldn't recommend it for anything other than experimenting.


On 4 Oct 2009, at 16:03, Christopher Armstrong wrote:

Hi David

Thanks for tracking this down so quickly.

I realised that I forgot to mention that I'm using clang (r82855) to compile it with (I presume that you need clang to compile code that uses libobjc2?). If I search the headers included with llvm, its not present. I didn't assume I should use GCC to compile libobjc2, because as suggested by Matt Rice, and now by yourself, its included with gcc (on my system at /usr/lib/gcc/i486-linux-gnu/4.3/include/ unwind.h).

I've tried with your fix, but because its not included with llvm, obviously I'm going to have to either use GCC or include this header somehow.


On 04/10/2009, at 4:57 PM, David Chisnall wrote:

Ah, well spotted. I've fixed that now. Libobjc was originally intended to be built as part of gcc (modularity is not something that gcc team are big fans of) and so used "unwind.h" to make sure it picked up the version of the header provided by GCC, not the one provided by the system, which is the exact opposite of what we want.


On 4 Oct 2009, at 15:52, Matt Rice wrote:

On Sun, Oct 4, 2009 at 7:30 AM, David Chisnall <address@hidden> wrote:
Hi Chris,

It's a private GCC header which, unfortunately, varies a little bit between platforms. I'm a bit surprised it isn't found for you; it has been on all of the platforms that I've tried so far, but in some uleb128 is defined and in others it isn't. I plan on removing this dependency soon, because the
unwind headers just contain copies of the functions from the ABI
specification (which doesn't seem to stop the FSF from slapping a GPL header
on them).

Yeah, i thought it referred to that unwind.h,
the use of "unwind.h" made me wonder though, why not <unwind.h>?

all of the 'list of files' links i've followed from those contain the header.

Gnustep-dev mailing list

-- Sent from my brain

Christopher Armstrong

Gnustep-dev mailing list

-- Sent from my PDP-11

reply via email to

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