Jeff,

What I meant is the default Linux behavior is to first lookup dependencies in the rpath, and then fallback to LD_LIBRARY_PATH

*unless* -Wl,--enable-new-dtags was used at link time.


In the case of Open MPI, -Wl,--enable-new-dtags is added to the MPI wrappers,

but Open MPI is *not* built with this option.


That means, that by default, mca_pml_ucx.so and friends will get libuc?.so libraries at runtime from rpath

(and that cannot be overridden by LD_LIBRARY_PATH).


Cheers,


Gilles


On 1/28/2021 12:52 AM, Jeff Squyres (jsquyres) wrote:
On Jan 27, 2021, at 2:00 AM, Gilles Gouaillardet via devel <devel@lists.open-mpi.org <mailto:devel@lists.open-mpi.org>> wrote:

Tim,

a simple option is to

configure ... LDFLAGS="-Wl,--enable-new-dtags"


If Open MPI is built with this option, then LD_LIBRARY_PATH takes precedence over rpath

(the default is the opposite as correctly pointed by Yossi in an earlier message)

Are you sure about the default?  I just did a default Open MPI v4.1.0 build on Linux with gcc 8.x:

$ mpicc --showme
gcc -I/home/jsquyres/bogus/include -pthread -Wl,-rpath -Wl,/home/jsquyres/bogus/lib -Wl,--enable-new-dtags -L/home/jsquyres/bogus/lib -lmpi

--
Jeff Squyres
jsquy...@cisco.com <mailto:jsquy...@cisco.com>

Reply via email to