gnustep-dev
[Top][All Lists]
Advanced

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

Re: Android NDK - libobjc2


From: David Chisnall
Subject: Re: Android NDK - libobjc2
Date: Mon, 11 Mar 2013 08:06:10 +0000

Hi Ivan,

First, one caveat: ARM exceptions are still broken with LLVM, so should be 
careful.  Also, Clang 3.1 doesn't emit objc_msgSend() on ARM (or, at all, I 
think) for the GNUstep runtime, so you will get bigger / slower code than with 
Clang 3.2.

For the patch, is it fixed by adding an explicit cast to pthread_mutex_t in 
INIT_LOCK()?

_Unwind_Action is my bug - I accidentally exposed it when I added the new 
exception ABI.

David

On 8 Mar 2013, at 21:39, Ivan Vučica <address@hidden> wrote:

> Cheers everyone,
> 
> Latest Android NDK, r8d, includes clang 3.1, which happens to build 
> Objective-C out of the box. So I decided to spend some time trying to get 
> libobjc2, gnustep-make and gnustep-base to be built.  To ensure joy all 
> around the step-land, I've tried to document my merry adventures along the 
> way.
> 
> NDK, naturally, does not include a runtime. What runtime could I possibly 
> decide to try to build other than libobjc2? :-)
> 
> So far, I got CMake to not scream obscenities at me, and actually generate a 
> Makefile. No joy with actually compiling the beast.
> 
> David, would you mind taking a look? I'm attaching the script which:
> - fetches the Android SDK and the NDK, 
> - fetches GNUstep and libobjc2,
> - creates a standalone NDK (with a more traditional compiler folder layout),
> - creates CMake toolchain file for Android, and 
> - runs CMake in libobjc2's folder.
> 
> The script is not really a script; more of a documentation of what commands I 
> ran. Hopefully it's clear enough.
> 
> It documents my experiments on a vanilla Ubuntu Server 12.04 32-bit, but 
> (aside for a few apt-get installs) I see no reason it shouldn't work on any 
> Linux machine. (But since I did this on a cheap cloud VPS, I could share root 
> access to the machine, if you want to save some time.)
> 
> In addition to the script, I'm also attaching:
> - output of "make" with current libobjc2 trunk
> - an ugly patch that fixes Android's pthread incompatibility (by using 
> "portable" portion of code)
> - output of "make" after the patch is applied, which reveals problems with 
> "_Unwind_Action" apparently not being supported by clang 3.1.
> 
> PS: David, you said [1] you've built portions of GNUstep for webOS, and did 
> some work on getting the configure tests to pass. Have you recently tried 
> cross-compiling an elementary build of GNUstep -- just elementary features of 
> Make and Base, with as little external dependencies as possible? If so, can 
> you share a few details about that? Maybe it's reusable for Android as well.
> 
> [1]: http://lists.gnu.org/archive/html/discuss-gnustep/2011-09/msg00117.html
> <android-gnustep.sh><log.txt><lock.patch><log2.txt>
> --
> Ivan Vučica
> address@hidden - http://ivan.vucica.net/
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev




reply via email to

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