------- Comment #13 from kgardas at objectsecurity dot com  2006-04-04 15:53 
-------
Subject: Re:  linking of C++ app fail on OpenBSD 3.9 due
 POSIX threading unresolved symbols

Hello,
I've rebuild todays trunk and configured it as:

$ gcc -v
Using built-in specs.
Target: i386-unknown-openbsd3.9
Configured with: /home/karel/svn/gcc/trunk/configure 
--prefix=/home/karel/usr/local/gcc-trunk-20060404 --enable-shared 
--enable-threads --enable-languages=c++,objc --disable-checking 
--disable-nls --disable-werror
Thread model: posix
gcc version 4.2.0 20060404 (experimental)
$

now I've tested your ObjC test and compilation fails with:

$ gcc test.m
/tmp//ccsP4264.o(.text+0x18): In function `main':
: undefined reference to `objc_get_class'
/tmp//ccsP4264.o(.text+0x2c): In function `main':
: undefined reference to `objc_msg_lookup'
/tmp//ccsP4264.o(.text+0x62): In function `__objc_gnu_init':
: undefined reference to `__objc_exec_class'
/tmp//ccsP4264.o(.data+0x40): undefined reference to 
`__objc_class_name_Object'
collect2: ld returned 1 exit status
$

as it seems gcc does not link against libobjc automatically I also tried 
this:

$ gcc test.m -lobjc

and I finally got some POSIX threading related undefined symbols:

$ gcc test.m -lobjc
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
warning: strcpy() is almost always misused, please use strlcpy()
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
warning: sprintf() is often misused, please use snprintf()
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_cond_signal'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_attr_destroy'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_create'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_getspecific'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_attr_init'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_exit'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_key_delete'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_cond_broadcast'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_once'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_key_create'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_cond_init'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_mutex_unlock'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_self'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_mutex_destroy'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_mutex_lock'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_cond_wait'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_mutex_trylock'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_cond_destroy'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_mutex_init'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_attr_setdetachstate'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `sched_yield'
/home/karel/usr/local/gcc-trunk-20060404/lib/gcc/i386-unknown-openbsd3.9/4.2.0/../../../libobjc.so.2.0:
 
undefined reference to `pthread_setspecific'
collect2: ld returned 1 exit status
$

Please let me know what else to test or try in order to help with fixing 
this issue.

Thanks,
Karel


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26966

Reply via email to