discuss-gnustep
[Top][All Lists]
Advanced

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

Re: incompatible ABI when using the GUI


From: David Chisnall
Subject: Re: incompatible ABI when using the GUI
Date: Tue, 22 Oct 2013 08:41:55 +0100

On 21 Oct 2013, at 21:01, Lloyd Sargent <lloyd.sargent@gmail.com> wrote:

> Okay, much of you answer is clear as mud to me as I don't know what they mean:
> 
> 1. non-fragile ABI is indicated by the -fobjc-nonfragile-abi if I'm not 
> correct. I have compiled the sample program and get the same issue.

That's the legacy mechanism for doing it.  Now, it's largely subsumed by the 
-fobjc-runtime= flag.  If you specify gnustep then it will generate code 
understandable by ANY version of the GNUstep runtime.  This version of the ABI 
is incompatible with the version required by ARC.  If you specify 
-fobjc-nonfragile-abi, then it will use the pre-ARC modern ABI, which is 
compatible with ARC.

> 2. If the issue is that EVERYTHING needs to be compiled with the 
> -objc-nonfragile-abi, then I'm at a loss at how to do this - nor does the 
> GNUstep website indicate how to do so.

Everything must be compiled with an ABI that is compatible with the ABI that is 
required for ARC.

> 3. What does gnustep-1.7 mean? Is that the legacy (non-ARC) or the (ARC) or 
> GC or something altogether different?

-fobjc-runtime=gnustep-1.7 means generate code that will work on version 1.7 
(or later) of the GNUstep Objective-C runtime.  This will generate object code 
with an ABI that is compatible with ARC.

> 4. I appreciate your answer, but it still doesn't suggest a way for me to get 
> from where I am (code not running) to where I want to be. BTW, libdispatch 
> and base appear to work just fine, it is the gui that crashes and burns.

Well, the easiest way is to use FreeBSD, where you have out-of-the-box packages 
that Just Work, but in the absence of that:

Configure -make with --enable-objc-nonfragile-abi 
--enable-native-objc-exceptions

I'd also recommend configuring -base with --disable-mixedabi (this isn't 
essential, but if you're building everything with the non-fragile ABI then it 
will save some memory).

For good measure, I generally set OBJCFLAGS='-fobjc-runtime=gnustep-1.7 
-fblocks'  GNUstep-make ought to do this automatically, I think, but it doesn't 
seem to.

David




reply via email to

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