Package: gcc-3.4
Severity: important

--enable-threads=posix results in pthreads (instead of cthreads) being
used on hurd-i386. However, there is a problem with this, resulting in
libgcc_s.so having undefined references. Jeroen Dekkers has summarized
the problem as follows:

|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.

(This is from
http://lists.gnu.org/archive/html/bug-hurd/2004-07/msg00106.html
)

Could you please not add --enable-threads=posix to $CONFARGS on
hurd-i386 for the time being, while the problem is being worked on
upstream?


thanks,

Michael


Reply via email to