On Oct 22, 2013, at 02:41 , David Chisnall <[email protected]> wrote:
> On 21 Oct 2013, at 21:01, Lloyd Sargent <[email protected]> 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. This was far more helpful than the previous post and clarifies much. >> 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. Yes. The error message implied as such. I understood what the message meant, what I didn't understand was how to get all the pieces aligned correctly. I figured it out on my own yesterday (my time). >> 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. So is gnustep-1.7 the latest? Is this documented somewhere (other than the bowels of the mail list)? >> 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: To which I would say "if I had a choice of OS's I would have picked OS X and be done with it as it Just Works". Telling me to use a different OS is not very helpful. > Configure -make with --enable-objc-nonfragile-abi > --enable-native-objc-exceptions Okay, this is helpful. I did not enable native OBJ exceptions, so I will change my script. Thanks. > 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). Yes, I finally figured this one out. > 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. I do not build .app because under Linux they are a) poor implementations that vaguely mimick OS X and b) 99.9% of the time no one is using a resource that needs to change. The goal is a single file. I would really LIKE to use the .app mechanism, but it appears that neither KDE nor GNOME are going to implement it. Using open-app is also pretty silly. Hence, I do not use GNUstep-make. Not because it isn't a good piece of software, but because the result does not meet my end criteria: an executable where the resources reside in the executable. The requirement to use open-app just makes it even clunkier. Thank you for the helpful information regarding exceptions. Cheers, Lloyd _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
