Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2007-10-18 13:55:55

Ah, I see the real problem: your C and Fortran compilers are not
generating compatible code. Here's the relevant snipit from config.log:

configure:33849: checking size of Fortran 90 LOGICAL
configure:33918: gcc -DNDEBUG -O2 -g -pipe -m32 -march=i386 -
mtune=pentium4 -fno-strict-aliasing -I. -c conftest.c
configure:33925: $? = 0
configure:33935: gfortran conftestf.f90 conftest.o -o conftest
/usr/bin/ld: warning: i386 architecture of input file `conftest.o' is
incompatible with i386:x86-64 output
configure:33942: $? = 0
configure:33990: ./conftest
configure:33997: $? = 139
configure:34006: error: Could not determine size of LOGICAL

Specifically, when OMPI's configure is checking the size of various
Fortran types, it compiles a simple C object file and then compiles/
links a simple fortran program against that C object file.

In this case, you're using different flags for C and fortran, and
they're not compatible -- so it fails to compile properly. However,
the fun part is that gfortran still gives a return status of 0, so
configure thinks that the compile succeeded and tries to run the
resulting executable. The resulting executable seg faults (not
gfortran), and things go downhill from there.

 From the top of your config.log, you invoked configure with the
following command line:

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-
linux-gnu --target=i386-redhat-linux-gnu --program-prefix= --prefix=/
usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --
sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --
libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --
sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/

I don't see you overriding CFLAGS in there anywhere, but it's
possible you set that CFLAGS environment variable before invoking

The solution here is to make the compiler flags for all 4 compilers
(C, C++, F77, F90) produce object code for the same bitness/etc. So
if you're using -m32 for the C compiler, then you also need to setenv
FCFLAGS and FFLAGS to -m32 (I'm pretty sure that's the right flag for
gfortran; RTFM if it's not).

Let me know if that works.

On Oct 18, 2007, at 12:42 PM, Jim Kusznir wrote:

> Attached is the requested info. There's not much here,
> dies pretty early in.
> --Jim
> On 10/17/07, Jeff Squyres <jsquyres_at_[hidden]> wrote:
>> On Oct 17, 2007, at 12:35 PM, Jim Kusznir wrote:
>>> checking if Fortran 90 compiler supports LOGICAL... yes
>>> checking size of Fortran 90 LOGICAL... ./configure: line 34070:
>>> 7262
>>> Segmentation fault ./conftest 1>&5 2>&1
>>> configure: error: Could not determine size of LOGICAL
>> Awesome! It looks like gfortran itself is seg faulting.
>> Can you send all the information listed on the getting help page?
>> That will help confirm/deny whether it's gfortran itself that is seg
>> faulting. If it's gfortran that's seg faulting, there's not much
>> that Open MPI can do...
>> --
>> Jeff Squyres
>> Cisco Systems
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> <output.tgz>
> _______________________________________________
> users mailing list
> users_at_[hidden]

Jeff Squyres
Cisco Systems