Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Re-locate OpenMPI installation on OS X
From: Nathan Hjelm (hjelmn_at_[hidden])
Date: 2013-08-16 11:24:59


You may also need to update where the binaries and libraries look. See
the man pages for otool and install_name_tool for more information. Here
is a basic example:

bash-3.2# otool -L libmpi.dylib
libmpi.dylib:
        /opt/local/lib/libmpi.1.dylib (compatibility version 3.0.0, current version 3.2.0)
        /opt/local/lib/libopen-rte.5.dylib (compatibility version 6.0.0, current version 6.2.0)
        /opt/local/lib/libopen-pal.5.dylib (compatibility version 6.0.0, current version 6.2.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

bash-3.2# install_name_tool -change /opt/local/lib/libopen-rte.5.dylib @loader_path/libopen-rte.5.dylib libmpi.dylib
bash-3.2# install_name_tool -id /some/path/lib/libmpi.1.dylib libmpi.1.dylib

bash-3.2# otool -L libmpi.dylib
libmpi.dylib:
        /some/path/lib/libmpi.1.dylib (compatibility version 3.0.0, current version 3.2.0)
        @loader_path/libopen-rte.5.dylib (compatibility version 6.0.0, current version 6.2.0)
        /opt/local/lib/libopen-pal.5.dylib (compatibility version 6.0.0, current version 6.2.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

@loader_path is a special token to look in directory containing the
library/binary. You can also set an rpath using install_name_tool -rpath
then use the @rpath token.

-Nathan

On Fri, Aug 16, 2013 at 03:21:56PM +0200, Reuti wrote:
> Hi,
>
> Am 16.08.2013 um 01:33 schrieb Eric Heien:
>
> > I'm compiling OpenMPI 1.6.5 on a set of different machines with different operating systems. I install OpenMPI in directory A, then later move it to directory B and compile my own code with mpicc or mpic++. Of course I need to set the OPAL_PREFIX environment variable to point to directory B. This works fine on all my platforms (RedHat, Ubuntu, Fedora, Debian, etc) but still fails on Mac OS X 10.7 and 10.8 with the following error:
> >
> > [xxx] ~ > env | grep OPAL
> > OPAL_PREFIX=/Users/eheien/B/
> > [xxx] ~ > mpicc
> > dyld: Library not loaded: /Users/eheien/A/lib/libopen-pal.4.dylib
> > Referenced from: /Users/eheien/B/bin/mpicc
>
> Besides setting the OPAL_PREFIX, also the DYLD_LIBRARY_PATH needs to be adjusted to point to the new /Users/eheien/B/lib location.
>
> -- Reuti
>
>
> > Reason: image not found
> > Trace/BPT trap: 5
> >
> > It appears the libopen-pal path is hardcoded into the opal_wrapper on OS X (I can also find it in the binary). Does this sound like correct behavior? If so, is there a way to get this to work correctly with OPAL_PREFIX like it does on the other operating systems?
> >
> > Thank you for your help,
> >
> > -Eric
> >
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users