[mpich-discuss] libmpich.so -> libmpl.so dependency

Steve Krueger Steve.Krueger at sas.com
Mon Apr 11 13:25:08 CDT 2011


In my environment, I dynamically load libmpich.so with dlopen(),
and fetch the entrypoints I need with dlsym(). I've been using
1.2 (with MPD) and this method works well. I just switched to 1.3.2p1
(with HYDRA), and ran into a dependency issue. libmpich.so uses symbols 
from libmpl.so:

$ objdump -t libmpich.so | grep MPL
0000000000000000         *UND*  0000000000000000              MPL_trfree
0000000000000000         *UND*  0000000000000000              MPL_env2str

but does not have a dependency against libmpl.so:

$ ldd libmpich.so
        librt.so.1 => /lib64/librt.so.1 (0x00002aaaaaea3000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaab0ac000)
        libc.so.6 => /lib64/libc.so.6 (0x00002aaaab2c7000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003c37000000)

So, if I try to dlopen("libmpich.so"), I get a failure. Adding
this environment variable gets me around the issue:

export LD_PRELOAD=/rdstore/mpich2-1.3.2p1/lib/libmpl.so

but it would be great if I didn't have to do that. Would it be possible
to add libmpl.so to the link of libmpich.so so I don't need the preload?

Thanks,

sk






More information about the mpich-discuss mailing list