Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Openmpi -MacOSX-mpif90 won't compile
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-05-19 14:37:35


On May 19, 2009, at 2:07 PM, John Boccio wrote:

> I tired the whole thing again from scratch.
>
> Here is g95 and xcode info.
> Using openmpi-1.3
>

Any reason you're not using 1.3.2? (the latest release)

> sudo ./configure --enable-mpi-f77 --enable-mpi-f90 F77="/usr/bin/g95"
> FC="/usr/bin/g95" > config.out
>
> sudo make clean
>
> sudo make clean prefix=/usr/local/openmpi-1.3
>
> sudo make > make.out
>

FWIW, as long as you have filesystem write permissions, you don't need
sudo for the above steps.

> sudo make install prefix=/usr/local/openmpi-1.3 > make-install.out
>

Just to be complete: you might need sudo here because normal users
don't usually have write permissions to /usr/local.

> /usr/local/openmpi-1.3/bin/mpif90
>
> --------------------------------------------------------------------------
> Unfortunately, this installation of Open MPI was not compiled with
> Fortran 90 support. As such, the mpif90 compiler is non-functional.
> --------------------------------------------------------------------------
> ****** NEW
> *******
> /usr/local/openmpi-1.3/bin/ompi_info
> dyld: Symbol not found: _opal_memchecker_base_components_opened
> Referenced from: /usr/local/openmpi-1.3/bin/./ompi_info
> Expected in: /usr/lib/libopen-pal.0.dylib
>

Set your LD_LIBRARY_PATH to /usr/local/openmpi-1.3/lib; this will make
it look there *first* (before /usr/lib), and therefore find the
"right" libopen-pal.*.

...ah, looking closer, I see the problem. You're specifying
prefix=<foo> to "make", not "configure". You should be doing the
following:

-----
rm -rf openmpi-1.3
tar zxf openmpi-1.3.2
cd openmpi-1.3.2
./configure --enable-mpi-f77 --enable-mpi-f90 --prefix=/usr/local/
openmpi-1.3.2 \
     F77=/usr/bin/g95 FC=/usr/bin/g95 2>&1 > config.out
make -j 4 2>&1 > make.out
sudo make install 2>&1 > make-install.out
-----

If you specify "prefix=<foo>" to "make install", it'll actually
install to the <foo> free, but the compiled-in default location from
configure (i.e., defaulting to /usr/local, not <foo>) will be wrong.
Bad things will happen from there (e.g., finding the wrong shared
libraries, thinking it doesn't have Fortran support, etc.).

-- 
Jeff Squyres
Cisco Systems