Folks,

i configure'd Open MPI with

--disable-shared --enable-static --disable-dlopen

and i can no longer link a simple MPI or OpenSHMEM app

$ mpicc -g -O0 -o hello_c ../../src/ompi-master/examples/hello_c.c
/usr/bin/ld: /home/gilles/local/ompi-master-static/lib/libopen-pal.a(pdl_pdlopen_module.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line
/lib64/libdl.so.2: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status


a work around is to manually append -ldl to the mpicc command line


dlopen (and other dl* symbols) are required by the pdlopen component of the embedded pmix.

embedded pmix is configure'd with --disable-dlopen but not with --disable-pdl-dlopen, so -ldl is required.

(fwiw, this is hidden on a system with infiniband libs since libibverbs.so do depend on libdl.so)


i am not sure of how that should be fixed :

1) have Open MPI automatically add the --disable-pdl-open option to the embedded pmix when Open MPI is configure'd with --disable-dlopen

2) append -ldl to the wrappers unless both --disable-pdl-open was passed to the embedded pmix (assuming there is a way to have Open MPI do that ...)


Could someone please comment or fix that ?


Cheers,


Gilles


_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to