------- Comment #2 from jb at gcc dot gnu dot org 2005-12-13 16:13 ------- Unfortunately the goto blas library where I noticed this error is not free software. But here is a simple testcase that shows the same problem.
File hello.c: #include <pthread.h> #include <stdio.h> #include <stdlib.h> #define NUM_THREADS 2 void *PrintHello(void *threadid) { printf("\n%d: Hello World!\n", threadid); pthread_exit(NULL); } void fhellomt_ () { pthread_t threads[NUM_THREADS]; pthread_attr_t attr; int rc, t, status; pthread_attr_init (&attr); pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_JOINABLE); for(t=0; t<NUM_THREADS; t++){ printf("Creating thread %d\n", t); rc = pthread_create(&threads[t], &attr, PrintHello, (void *)t); if (rc){ printf("ERROR; return code from pthread_create() is %d\n", rc); exit(-1); } } pthread_attr_destroy (&attr); for(t=0; t<NUM_THREADS; t++) { rc = pthread_join(threads[t], (void **)&status); if (rc) { printf("ERROR; return code from pthread_join() is %d\n", rc); exit(-1); } printf("Completed join with thread %d status= %d\n",t, status); } } File fpthello.f90: ! Pthreads hello world program fpthello implicit none call fhellomt () print *, 'done' end program fpthello Compiled with: gcc -c hello.c gfortran fpthello.f90 hello.o -lpthread Running it produces: ./a.out Creating thread 0 Creating thread 1 0: Hello World! Completed join with thread 0 status= 0 1: Hello World! Completed join with thread 1 status= 0 done zsh: segmentation fault ./a.out -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25377