On 24 Apr 2017, at 09:57, Richard Frith-Macdonald <richard.frith-macdon...@theengagehub.com> wrote: > > Setting variables in make is fairly straightforward, but I think only you > (and clang geeks) understand how these flags are actually supposed to work. > > How are you supposed to turn use of the non-fragile ABI on/off what flags do > you need to supply at compile time and what (if any) are supplied at link > time for > a. building with the non-fragile ABI and > b. building without non-fragile ABI
Non-fragile ABI is the default with all modern runtimes. The correct way of specifying a runtime is with -fobjc-runtime={name}-{version}. So, for a recent GNUstep runtime, you’d pass -fobjc-runtime=gnustep-1.7. The compiler will then enable all of the features that it knows that this version of the runtime supports. For example, it will use objc_msgSend on architectures where the runtime supports this, but use the two-stage lookup on other platforms. > To what extent are other features dependent on it? eg. can you have ARC > without nonfragile ABI? No, ARC requires the non-fragile ABI. David _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev