On Mon, Jun 01, 2009 at 07:59:15PM +0200, Gerald Pfeifer wrote: > Excess errors: > /pfeifer/OBJ-0531-2252/i386-unknown-freebsd7.1/./libgomp/.libs/libgomp.so: > undefined reference to `pthread_create' > > And what all of these three testcases have in common is > > { dg-options "-fno-openmp" } > > So, it seems -fno-openmp in combination with an attempt to still link > libgomp.so leads to this failure. > > > Is it possible this is an issue with the testsuite rather than with > the code on FreeBSD? >
The code is fine. The problem is with the testsuite. When -fopenmp is used on FreeBSD, the additional option -pthread is added to the list of options. REMOVE:kargl[28] gfortran -v -fopenmp -c d.f90 Using built-in specs. Target: i386-portbld-freebsd8.0 Configured with: ./..//gcc-4.3-20081120/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --with-gmp=/usr/local --program-suffix=43 --libdir=/usr/local/lib/gcc-4.3.3 --with-gxx-include-dir=/usr/local/lib/gcc-4.3.3/include/c++/ --disable-rpath --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/gcc43 --build=i386-portbld-freebsd8.0 Thread model: posix gcc version 4.3.3 20081120 (prerelease) (GCC) COLLECT_GCC_OPTIONS='-v' '-fopenmp' '-c' '-mtune=i386' '-pthread' If someone uses -fno-openmp and still tries to link to libgomp, then the -pthread option is missing and hence the test fail because -lpthread is not included. On FreeBSD, libgomp.so.1 does not show a dependency on libpthread, so the dynamic linker can't automagically work. REMOVE:kargl[30] ldd /usr/home/kargl/work/lib/libgomp.so.1 /usr/home/kargl/work/lib/libgomp.so.1: libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x481a8000) libc.so.7 => /lib/libc.so.7 (0x4808c000) -- Steve