gnustep-dev
[Top][All Lists]
Advanced

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

Re: Android NDK - libobjc2


From: Emmanuel Maillard
Subject: Re: Android NDK - libobjc2
Date: Tue, 12 Mar 2013 18:05:43 +0100

Hi,

Using an explicit cast to pthread_mutex_t in INIT_LOCK is the fix i used, to 
solve the error while cross-compiling for Android.

Cheers
Emmanuel

Le 11 mars 2013 à 09:06, David Chisnall <address@hidden> a écrit :

> 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
> 
> 
> _______________________________________________
> 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]