gnustep-dev
[Top][All Lists]
Advanced

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

Re: libobjc2: clang not found?


From: David Chisnall
Subject: Re: libobjc2: clang not found?
Date: Tue, 28 May 2013 11:02:09 +0100

Hi,


On 28 May 2013, at 04:47, David Wetzel <address@hidden> wrote:

> WARNING: It is strongly recommended that you compile with clang

CMake will default to using whatever CC and CXX are set to.  To explicitly 
configure the compiler to use, you can add -DCMAKE_C_COMPILER=clang 
-DCMAKE_CXX_COMPILER=clang++ on the CMake command line.  See the INSTALL 
document for more details...

> -- Using /usr/lib/libsupc++.a as the C++ runtime library

This is a bug.  It should be rejecting .a and only finding the .so version.  If 
your system doesn't provide the .so, then you'll get libobjc and libobjcxx (you 
can force it to use libstdc++.so or libc++.so as the runtime lib if you don't 
mind forcing every ObjC program to link against the C++ standard library, but I 
prefer to avoid this for non-ObjC++ code).  

This should be fixed in trunk now.

> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c: In function 
> 'init_trampolines':
> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c:43:2: warning: 
> implicit declaration of function 'asprintf'

This should be fixed in trunk.

> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c: In function 
> 'imp_implementationWithBlock':
> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c:81:11: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c:82:9: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c:86:11: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/block_to_imp.c:87:9: warning: 
> taking address of expression of type 'void'

These are recent-gcc warnings and are safe to ignore.

> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m: In function 'retain':
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:170:13: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:171:13: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m: In function 'release':
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:188:13: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:193:14: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:194:14: warning: taking 
> address of expression of type 'void'
> In file included from /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:499:0:
> /Users/dave/projects/gnustep/libobjc2/trunk/hash_table.h: In function 
> 'weak_ref_table_get_cell':
> /Users/dave/projects/gnustep/libobjc2/trunk/hash_table.h:343:3: warning: 
> passing argument 1 of 'weak_ref_compare' discards qualifiers from pointer 
> target type
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:467:12: note: expected 'id' 
> but argument is of type 'const void *'
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m: In function 
> '_Block_copy':
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m:244:18: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m:248:14: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m:258:24: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m: In function 
> '_Block_release':
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m:276:6: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/blocks_runtime.m:280:11: warning: 
> taking address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/hash_table.h:352:4: warning: 
> passing argument 1 of 'weak_ref_compare' discards qualifiers from pointer 
> target type
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:467:12: note: expected 'id' 
> but argument is of type 'const void *'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m: In function 
> 'objc_storeWeak':
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:542:6: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:551:6: warning: taking 
> address of expression of type 'void'
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m: In function 
> 'objc_loadWeakRetained':
> /Users/dave/projects/gnustep/libobjc2/trunk/arc.m:642:6: warning: taking 
> address of expression of type 'void'

These also all look safe to ignore (and, in some cases, spurious).  

> [ 48%] Building CXX object CMakeFiles/objc.dir/objcxx_eh.cc.o
> Linking C shared library libobjc.so
> ld: /usr/lib/libsupc++.a(si_class_type_info.o): relocation R_X86_64_32S 
> against `_ZTVN10__cxxabiv120__si_class_type_infoE' can not be used when 
> making a shared object; recompile with -fPIC
> /usr/lib/libsupc++.a: could not read symbols: Bad value

This is caused by it trying to use libsupc++.a instead of libsupc++.so (which 
you don't have) and should now be fixed.

Thanks for testing!

David

-- Sent from my STANTEC-ZEBRA




reply via email to

[Prev in Thread] Current Thread [Next in Thread]