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