Hello, Compile the following file with gcc:
void s () { pthread_cancel(); /*pthread_mutex_trylock (); */ } and the following file with gfortran: program test print*, "Bug" end program test Link both files using "gfortran -static -pthread". Note that the program dies with SEGV in pthread_mutex_trylock (weak symbol equal to 0x0). It is due to the fact that __gthread_active_p checks only for pthread_cancel and pthread_mutex_trylock is not automatically taken from libpthread.a. Un-commenting pthread_mutex_trylock in s() fixes the problem. Regards, Dima -- Summary: Incorrect __gthread_active_p version with weak symbols (pthread_cancel does not bring in pthread_mutex_trylock) Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: DumaShkurko at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41504