[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libobjc2 build broken on OS X
From: |
Ivan Vučica |
Subject: |
Re: libobjc2 build broken on OS X |
Date: |
Tue, 4 Dec 2012 16:16:42 +0100 |
1. 12. 2012., u 15:02, Fred Kiefer <address@hidden> je napisao:
> On 01.12.2012 10:44, Charalampos Emmanouilidis wrote:
>> I want to use GNUstep for cross platform development (OS X, Linux, iOS,
>> Android, Windows) and
>> I need to get libobjc2 and gnustep-base running on OS X.
>
> Not sure if I understand this correctly. But I would expect that as long as
> you don't require binary exchange of data between the different platforms it
> should be better to you Cocoa on OS X and iOS instead of GNUstep. I would
> suggest that you write your application in OS X with the native libraries and
> tools and restrict yourself to using the interfaces published by Foundation.
> Then it should be rather simple to port that to GNUstep.
An argument for compiling on OS X is -- using as much of GNUstep code as
possible without rebooting or using a virtual machine (which chews up RAM).
1. 12. 2012., u 12:31, David Chisnall <address@hidden> je napisao:
> P.S. libobjc2 is developed in subversion, not git, so I have no idea what the
> git master branch is, or whether it's even remotely current...
I think Charalampos referred to Gregory's automatically-synced repositories
hosted to GitHub. So it should be fairly recent. (I'm not advocating using
these backup repositories as primary source, just mentioning that they're
probably up to date.)
I would like to add to Charalampos's report with the following error output:
==========
machine-name:libobjc2 ivucica$ cc -v
Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
machine-name:libobjc2 ivucica$ make
Assembling block_trampolines.S...
block_trampolines.S:26:Unknown pseudo-op: .type
block_trampolines.S:26:Rest of line ignored. 1st junk character valued 95 (_).
block_trampolines.S:29:Unknown pseudo-op: .type
block_trampolines.S:29:Rest of line ignored. 1st junk character valued 95 (_).
clang: error: assembler command failed with exit code 1 (use -v to see
invocation)
make: *** [block_trampolines.o] Error 1
========
On the other hand, compiling with Makefile.clang works up to the linking phase.
machine-name:libobjc2 ivucica$ make -f Makefile.clang clean && make -f
Makefile.clang
<<< snip >>>
Compiling toydispatch.c...
Linking bitcode...
Generating native object code...
Linking shared library...
ld: warning: section __DATA/__objc_imageinfo has unexpectedly large size 56 in
libobjc.o
Undefined symbols for architecture x86_64:
"___cxa_allocate_exception", referenced from:
___gnustep_objcxx_personality_v0 in libobjc.o
"___gxx_personality_v0", referenced from:
___gnustep_objcxx_personality_v0 in libobjc.o
"___objc_block_trampoline", referenced from:
_imp_implementationWithBlock in libobjc.o
"___objc_block_trampoline_end", referenced from:
_imp_implementationWithBlock in libobjc.o
"___objc_block_trampoline_end_sret", referenced from:
_imp_implementationWithBlock in libobjc.o
"___objc_block_trampoline_sret", referenced from:
_imp_implementationWithBlock in libobjc.o
"___objc_personality_v0", referenced from:
Dwarf Exception Unwind Info (__eh_frame) in libobjc.o
"__objc_empty_cache", referenced from:
_OBJC_METACLASS_$_Object in libobjc.o
_OBJC_METACLASS_$_Protocol in libobjc.o
_OBJC_CLASS_$_Object in libobjc.o
_OBJC_CLASS_$_Protocol in libobjc.o
_OBJC_METACLASS_$_Protocol2 in libobjc.o
_OBJC_CLASS_$_Protocol2 in libobjc.o
_OBJC_CLASS_$___ObjC_Protocol_Holder_Ugly_Hack in libobjc.o
...
"__objc_empty_vtable", referenced from:
_OBJC_METACLASS_$_Object in libobjc.o
_OBJC_METACLASS_$_Protocol in libobjc.o
_OBJC_CLASS_$_Object in libobjc.o
_OBJC_CLASS_$_Protocol in libobjc.o
_OBJC_METACLASS_$_Protocol2 in libobjc.o
_OBJC_CLASS_$_Protocol2 in libobjc.o
_OBJC_CLASS_$___ObjC_Protocol_Holder_Ugly_Hack in libobjc.o
...
"_objc_init_cxx_exception", referenced from:
___gnustep_objcxx_personality_v0 in libobjc.o
"_objc_msgSend", referenced from:
_objc_autoreleasePoolPop in libobjc.o
_emptyPool in libobjc.o
_objc_release in libobjc.o
_cleanupPools in libobjc.o
_objc_setAssociatedObject in libobjc.o
_objc_setProperty in libobjc.o
"_objc_msgSend_fixup", referenced from:
l_objc_msgSend_fixup_retain in libobjc.o
l_objc_msgSend_fixup_release in libobjc.o
l_objc_msgSend_fixup_autorelease in libobjc.o
l_objc_msgSend_fixup_class in libobjc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libobjc.so.4.6.0] Error 1
=============
machine-name:libobjc2 ivucica$ which clang
/usr/local/clang/bin/clang
machine-name:libobjc2 ivucica$ clang -v
clang version 3.0 (tags/RELEASE_30/final)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
--
Ivan Vučica
address@hidden - http://ivan.vucica.net/