Open MPI logo

Open MPI User's Mailing List Archives

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

From: Patrick Jessee (pj_at_[hidden])
Date: 2006-11-20 14:54:43

Hello. I'm wondering if anyone knows of a way to get OpenMPI to compile
shared libraries without hard-coding the installation directory in
them. After compiling and installing OpenMPI, the shared libraries have
the installation libraries hard-coded in them. For instance:

$ ldd =>
(0x0000002a956ea000) => /lib64/ (0x0000002a95852000) => /lib64/ (0x0000002a95968000) => /lib64/tls/ (0x0000002a95a6c000) => /lib64/tls/ (0x0000002a95bc4000) => /lib64/tls/ (0x0000002a95cd8000) =>
        /lib64/ (0x000000552aaaa000) => /lib64/ (0x0000002a9605a000)

In the above,
is hardcoded into using --rpath when is compiled.

This is problematic because the installation cannot be moved after it is
installed. It is often useful to compile/install libraries on one
machine and then move the libraries to a different location on other
machines (of course, LD_LIBRARY_PATH or some means then needs to be used
to pick up libs are runtime). This relocation is also useful when
redistributing the MPI installation with an application. The hard-coded
paths prohibit this.

I've tried to modify the "--rpath" argument in libtool and
opal/libltdl/libtool, but have not gotten this to work.

Has anyone else had experience with this? (I'm building OpenMPI 1.1.2
on linux x86_64.) Thanks in advance for any potential help.