[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