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