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.


Discuss-gnustep mailing list

Reply via email to