discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "undefined reference to ’objc_msgSend’"


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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]