On 7 Feb 2016, at 09:46, Dmitry Moskalchuk <[email protected]> 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


_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to