Michael Banck reported on IRC that the libgcc_s.so of the gcc 3.4
debian packages fail with the following error:
/lib/libgcc_s.so: undefined reference to `_pthread_mutex_lock'

objdump -T /lib/libgcc_s.so | grep pthread gives the following:

23:19 < azeem> 00000000      D  *UND*  00000000              _pthread_mutex_lock
23:19 < azeem> 00000000  w   D  *UND*  00000000              pthread_create
23:19 < azeem> 00000000  w   D  *UND*  00000000              pthread_once
23:19 < azeem> 00000000  w   D  *UND*  00000000              pthread_mutex_unlock

The problem here is that gcc declares all the pthread functions weak
with a #pragma weak. When calling pthread_mutex_lock() however, the
inline function from /include/bits/mutex.h
(libpthread/sysdeps/generic/bits/mutex.h in the Hurd sources) is
used. This inline function calls _pthread_mutex_lock, which of course
isn't declared weak by gcc.

I think we should just remove those inline functions, because it's
dubious whether they are a really faster and they do break
things. What do you think?

Jeroen Dekkers


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to