gnustep-dev
[Top][All Lists]
Advanced

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

Re: undefined reference to __gnustep_objcxx_personality_v0


From: David Chisnall
Subject: Re: undefined reference to __gnustep_objcxx_personality_v0
Date: Sun, 7 Feb 2016 11:42:27 +0000

On 7 Feb 2016, at 09:46, Dmitry Moskalchuk <address@hidden> wrote:
> 
> The most important issue is that Aarch64 objc_msgSend implementation is
> broken. It doesn't even compile.

I find that hard to believe, as I tested it (albeit in QEMU and not on real 
hardware).

> I've seen
> https://github.com/gnustep/libobjc2/issues/14, but that clang's bug was
> fixed in the CrystaX NDK several months ago
> (https://github.com/crystax/android-toolchain-clang-3-7/commit/1a4b73f3828569eadb0395b693275b1e6532d5c0).
> Now, when I build libobjc2 for Aarch64, it reports the following:
> 
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S: Assembler
> messages:
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> operand 1 should be an integer register -- `br lr'
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> operand 1 should be a floating-point register -- `stp fp,lr,[sp,#192]'
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> operand 1 should be an integer or stack pointer register -- `add fp,sp,192'
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> bad register expression
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> bad register expression
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> bad register expression
> /Volumes/android/ndk/vendor/libobjc2/objc_msgSend.aarch64.S:97: Error:
> operand 1 should be a floating-point register -- `ldp fp,lr,[sp,#208]'
> CMakeFiles/objc.dir/build.make:606: recipe for target
> 'CMakeFiles/objc.dir/objc_msgSend.S.o’ failed

These all look like gas errors.  Building with gas is unsupported.  If your 
clang does not default to using the integrated assembler, try adding 
-integrated-as to the asm flags.

> Should I report new issue for this? I realize that it's hard for you to
> test since clang's Aarch64 objc support is broken on GNU/Linux,

It is not, only ARC is broken.  Non-ARC Objective-C works.  If you’re shipping 
your own clang and don’t mind breaking the iOS target, then it’s a one-line 
patch to fix it.

David
-- Send from my Jacquard Loom




reply via email to

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