Beowulf digest, Vol 1 #1482 - 2 msgs
Wolfgang.Dobler at kis.uni-freiburg.de
Mon Oct 6 12:50:06 EDT 2003
> I tried to compile a Fortran 90 MPI program by
> the Intel Frotran Compiler in the OSCAR cluster.
> I run the command:
> ifc -I /opt/mpich-1.2.5/include -Lmpi -w -Lm -o p_wg3 p_fdtd3dwg3_pml.f90
> The system failed to compile it and gave me the following information:
> 3228 Lines Compiled
> /tmp/ifcVao851.o(.text+0x5a): In function `main':
> : undefined reference to `mpi_init_'
> I wonder
> 1. why the errors happen?
> 2. Is the problem of cluster or the Intel compiler?
Looks like the infamous underscore problem. You have a library (libmpi.so
or libmpi.a) that has been built using the GNU F77 compiler without the
option `-fno-second-underscore' and accordingly the MPI symbols are called
`mpi_init__', not `mpi_init_', etc.
But the Intel compiler (and all other non-G77 compilers) expects a symbol
with only one underscore appended ( `mpi_init_'), but that one is not in
> 3. How I can solve it.
The way out is to either rebuild the library, compiling with `g77
-fno-second-underscore' or with the Intel compiler, or (the less elegant
choice) to refer to the MPI functions with one underscore in you F90 code:
There is one related question I want to ask the ld-specialists on the list:
On some machines libraries like MPICH contain all symbol names with both
underscore conventions, i.e. `mpi_init__', and `mpi_init_' at the same
time. Does anybody know whether there are easy ways of building such a
library? Is there something like `symbol aliases' and how would one create
these when generating the library?
W o l f g a n g
Beowulf mailing list, Beowulf at beowulf.org
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
More information about the Beowulf