[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Android NDK - libobjc2
From: |
Ivan Vučica |
Subject: |
Re: Android NDK - libobjc2 |
Date: |
Sat, 9 Mar 2013 14:29:19 +0100 |
On 9. 3. 2013., at 10:41, Emmanuel Maillard <address@hidden> wrote:
> Hi all,
>
> I had submit a patch to fix _Unwind_Action more than two weeks ago, but still
> don't have any answers.
> http://lists.gnu.org/archive/html/bug-gnustep/2013-02/msg00053.html
>
> Cheers
> Emmanuel
>
> NB : I have a script and a set of patches to build libobjc2 and
> gnustep-base-1.24.0 for Android.
>
Hello,
I've attached the updated script. It now patches libobjc2 with _Unwind_Action
(thanks to Emmanuel for the solution). In addition to Emmanuel's change, it
also disables pthread on Android more neatly, and also adds #include <stdint.h>
on top of unwind-arm.h (since otherwise clang screams wildly about not
recognizing uint32_t).
(David, should I commit these changes to lock.h and unwind-arm.h? They don't
seem like they could break other platforms, and certainly help here.)
Finally, when building libobjc2, the script disables tests by passing
TESTS=FALSE to cmake.
Having built libobjc2 (and installed it systemwide, for now!), I've made a few
baby steps by building and installing gnustep-make. I had to update config.sub
to a newer version that recognizes the "androideabi" part of
"arm-linux-androideabi".
(Should I commit the updated config.sub [1]?)
Unfortunately, gnustep-base is still screaming obscenities about pthread. Looks
like on Android, one does not need to link in the libpthread.a library by
"-lpthread". I've removed all mention of "-lpthread" from configure, but did
not incorporate that into the script. That change belongs in configure.ac,
anyway.
Configure now passes, but I get all sorts of nastiness when punching in "make":
Making all in ObjectiveC2 ...
Making all for subproject ObjectiveC2...
Compiling file caps.c ...
Compiling file runtime.c ...
In file included from /usr/local/include/objc/objc.h:1:0,
from runtime.c:34:
/usr/local/include/objc/runtime.h:143:31: error: conflicting types for
'objc_property_t'
../../Headers/ObjectiveC2/objc/runtime.h:83:15: note: previous declaration of
'objc_property_t' was here
In file included from /usr/local/include/objc/runtime.h:215:0,
from /usr/local/include/objc/objc.h:1,
from runtime.c:34:
/usr/local/include/objc/message.h:25:4: error: 'gnu_objc_msg_lookup' declared
as function returning a function
In file included from /usr/local/include/objc/objc.h:1:0,
from runtime.c:34:
/usr/local/include/objc/runtime.h:232:6: error: conflicting types for
'class_addMethod'
../../Headers/ObjectiveC2/objc/runtime.h:119:6: note: previous declaration of
'class_addMethod' was here
....
....
....
For now, I'm pausing. But the progress (along with Emmanuel working on the same
thing!) is promising.
[1]: http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree
android-gnustep.sh
Description: Binary data
--
Ivan Vučica
address@hidden - http://ivan.vucica.net/