FX's binaries at quatramaran.ens.fr and OpenMP: no success

Harald Anlauf anlauf@gmx.de
Fri Jul 14 22:29:00 GMT 2006


Hi,

I wanted to experiment with OpenMP with FX's binaries from

http://quatramaran.ens.fr/~coudert/gfortran/

on both a SuSE 8.2 and a Debian 3.1r1 based system
by first trying out a simpler C example
(that definitely works with Intel's icc version 9):

openmp0.c:

#include <stdio.h>
#ifdef _OPENMP
#include <omp.h>
#endif

int main(int argc, char *argv[])
{
#ifdef _OPENMP
     printf("Number of Processors: %d\n", omp_get_num_procs());
     printf("This is thread %3d out of %3d\n",
            omp_get_thread_num(), omp_get_num_threads());
#else
     printf("OpenMP not available.\n");
#endif /* _OPENMP */
     printf("Done.\n");
     return 0;
}

I compiled it with:

% /tmp/irun/bin/gfortran -g -static -fopenmp openmp0.c -I 
/tmp/irun/include -v
Driving: /tmp/irun/bin/gfortran -g -static -fopenmp openmp0.c -I 
/tmp/irun/inclu
de -v -lgfortranbegin -lgfortran -lm
Using built-in specs.
Target: i386-linux
Configured with: ../gcc/configure 
--prefix=/cosmic/coudert/tmp/gfortran-20060714
/irun --enable-languages=c,fortran --host=i386-linux 
--with-gmp=/cosmic/coudert/
tmp/gfortran-20060714/gfortran_libs
Thread model: posix
gcc version 4.2.0 20060714 (experimental)
  /tmp/irun/bin/../libexec/gcc/i386-linux/4.2.0/cc1 -quiet -v -I 
/tmp/irun/includ
e -iprefix /tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/ -D_REENTRANT 
openmp0.c -qu
iet -dumpbase openmp0.c -mtune=i386 -auxbase openmp0 -g -version 
-fopenmp -o /tm
p/ccgKp2IX.s
ignoring nonexistent directory 
"/tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/../../
../../i386-linux/include"
ignoring nonexistent directory 
"/cosmic/coudert/tmp/gfortran-20060714/irun/inclu
de"
ignoring nonexistent directory 
"/cosmic/coudert/tmp/gfortran-20060714/irun/lib/g
cc/i386-linux/4.2.0/include"
ignoring nonexistent directory 
"/cosmic/coudert/tmp/gfortran-20060714/irun/i386-
linux/include"
#include "..." search starts here:
#include <...> search starts here:
  /tmp/irun/include
  /tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/include
  /usr/local/include
  /usr/include
End of search list.
GNU C version 4.2.0 20060714 (experimental) (i386-linux)
         compiled by GNU C version 4.2.0 20060714 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: d10919e112e08b6e02123c5aa7c4a32e
  as -V -Qy -o /tmp/ccZK7kJX.o /tmp/ccgKp2IX.s
GNU assembler version 2.14.90.0.5 (i586-suse-linux) using BFD version 
2.14.90.0.
5 20030722 (SuSE Linux)
Reading specs from 
/tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/../../../libgomp.spec
  /tmp/irun/bin/../libexec/gcc/i386-linux/4.2.0/collect2 -m elf_i386 
-static /usr
/lib/crt1.o /usr/lib/crti.o 
/tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/crtbeginT.
o -L/tmp/irun/bin/../lib/gcc/i386-linux/4.2.0 -L/tmp/irun/bin/../lib/gcc 
-L/tmp/
irun/bin/../lib/gcc/i386-linux/4.2.0/../../.. /tmp/ccZK7kJX.o 
-lgfortranbegin -l
gfortran -lm -lgomp -lrt -lpthread --start-group -lgcc -lgcc_eh 
-lpthread -lc --
end-group /tmp/irun/bin/../lib/gcc/i386-linux/4.2.0/crtend.o /usr/lib/crtn.o

Running gdb on the resulting a.out I find:
(gdb) run
Starting program: /tmp/a.out

Program received signal SIGSEGV, Segmentation fault.
0x08048816 in initialize_team () at sem.h:75
75      sem.h: No such file or directory.
         in sem.h
(gdb) where
#0  0x08048816 in initialize_team () at sem.h:75
#1  0x080a31ba in __do_global_ctors_aux ()
#2  0x08048109 in _init ()
#3  0x0804f601 in __libc_csu_init () at elf-init.c:60
#4  0x0804f41f in __libc_start_main (main=0x8048208 <main>, argc=1,
     ubp_av=0xbffff034, init=0x804f5d0 <__libc_csu_init>,
     fini=0x804f630 <__libc_csu_fini>, rtld_fini=0, stack_end=0x804880c)
     at ../sysdeps/generic/libc-start.c:176
(gdb)

I get exactly the same result on the Debian system.
Does anybody know what I might be doing wrong?

Cheers,
-ha



More information about the Fortran mailing list