|
From: | David Chisnall |
Subject: | Re: "undefined reference to ’objc_msgSend’" |
Date: | Thu, 4 Apr 2019 18:05:27 +0100 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 04/04/2019 17:46, Marcus Müller wrote:
On 4. Apr 2019, at 15:28, David Chisnall <gnustep@theravensnest.org <mailto:gnustep@theravensnest.org>> wrote:On 04/04/2019 13:52, Scott Little wrote:→ -L/usr/lib/gcc/x86_64-linux-gnu/7/libobjc.so \This looks very much as if you are linking the old GCC libobjc, which doesn't provide an objc_msgSend implementation. If you wish to use this, then you must use -fobjc-runtime=gcc, not -fobjc-runtime=gnustep.-fobjc-runtime=gnustep is not recommended without an explicit version (e.g. -fobjc-runtime=gnustep-2.0).I usually select the runtime by defining `RUNTIME_VERSION`, i.e. `RUNTIME_VERSION=gnustep-2.0`. Scott wrote, however, that he's using clang-3.9. If I understood the previous conversation correctly, then you'd need at least clang-7.0 in order to use the 2.0 ABI, correct? What happens in this case? Will clang (somehow) downgrade the runtime features to the maximum version it supports?
Clang will only use the features of the newest version that it knows about. In clang 7 and newer, there's now a macro so you can detect the degree to which it's downgraded, but that won't be set with such an old version of clang. It should support the 1.8 ABI though, which should be good enough...
David
[Prev in Thread] | Current Thread | [Next in Thread] |