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 <[email protected]> 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 > [email protected] - http://ivan.vucica.net/ > > _______________________________________________ > Gnustep-dev mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/gnustep-dev _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
