Compilation of the ET fails on Datura while configuring MPI (see also #1667). When running the mpic++ command directly, I get
[ianhin@login-damiana EinsteinToolkitGit]$ /cluster/openmpi/SL6/1.7.2/intel14/bin/mpic++ /cluster/openmpi/SL6/1.7.2/intel14/bin/mpic++: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory
This happens because the compiler library is not on LD_LIBRARY_PATH:
[ianhin@login-damiana EinsteinToolkitGit]$ ldd /cluster/openmpi/SL6/1.7.2/intel14/bin/mpic++ linux-vdso.so.1 => (0x00007fff2a1ff000) libopen-pal.so.5 => /cluster/openmpi/SL6/1.7.2/intel14/lib/libopen-pal.so.5 (0x00007fc755f21000) libm.so.6 => /lib64/libm.so.6 (0x00007fc755c90000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fc755a8c000) librt.so.1 => /lib64/librt.so.1 (0x00007fc755884000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fc75566a000) libutil.so.1 => /lib64/libutil.so.1 (0x00007fc755467000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc755251000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc755033000) libc.so.6 => /lib64/libc.so.6 (0x00007fc754ca0000) /lib64/ld-linux-x86-64.so.2 (0x00007fc75620e000) libimf.so => not found libsvml.so => not found libirng.so => not found libintlc.so.5 => not found
because when OpenMPI was compiled, its rpath was not set to point to the compiler installation directory.
This is because the compiler module is not loaded. The reason it is not loaded in the envsetup for the machine is that this this is specific to the version of the compiler, and one might want to use a different compiler via a different optionlist.
Since the optionlist is the only place for compiler-specific options, how can I set LD_LIBRARY_PATH so that mpicxx can run?
As a last resort, I suppose I can set all the required MPI variables in the optionlist, but MPI_DIR used to work with the old configure script. I would like it to work again now.