[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Newbie back again...
From: |
David Chisnall |
Subject: |
Re: Newbie back again... |
Date: |
Mon, 19 Jun 2017 10:10:09 +0100 |
On 24 Apr 2017, at 09:57, Richard Frith-Macdonald
<richard.frith-macdonald@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