On i686-pc-linux-gnu, ObjC DejaGNU tests against mainline perform
miserably:
=== objc Summary ===
# of expected passes 466
# of unexpected failures 559
# of unresolved testcases 532
# of unsupported tests 21
Upon closer inspection, the vast majority of the failures are due to:
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.so:
undefined reference to `objc_hash_string'
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.so:
undefined reference to `objc_compare_strings'
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.so:
undefined reference to `objc_compare_ptrs'
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.so:
undefined reference to `objc_hash_ptr'
collect2: ld returned 1 exit status
The 4 symbols are all 'static inline' functions defined in objc/hash.h.
In the static archive, they appear in the modules in which they are
used, e.g.,
[EMAIL PROTECTED]:libobjc> nm
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.a |
egrep ':$|objc_hash_string'
archive.o:
0000316d t objc_hash_string
class.o:
encoding.o:
gc.o:
hash.o:
init.o:
linking.o:
misc.o:
nil_method.o:
NXConstStr.o:
Object.o:
objects.o:
Protocol.o:
sarray.o:
selector.o:
000000d1 t objc_hash_string
sendmsg.o:
thr.o:
thr-objc.o:
exception.o:
hash_compat.o:
00000109 t objc_hash_string
but the shared library winds up with undefined references, e.g.:
[EMAIL PROTECTED]:libobjc> nm
/home/zlaski/fsf/obj/HEAD/i686-pc-linux-gnu/./libobjc/.libs/libobjc.so
| egrep ':$|objc_hash_string'
00011739 t objc_hash_string
U objc_hash_string
Has anyone else seen this? I'm trying to debug any ObjC failures
caused by our (i.e., Apple's) recent ObjC/ObjC++ integration work...
I've upgraded to binutils-2.16, but that did not help things.
Thanks in advance for any suggestions,
--Zem
--------------------------------------------------------------
Ziemowit Laski 1 Infinite Loop, MS 301-2K
Mac OS X Compiler Group Cupertino, CA USA 95014-2083
Apple Computer, Inc. +1.408.974.6229 Fax .5477