Line 386 of MTT/Test/Run.pm sets LD_LIBRARY_PATH. This appears to have masked a problem in my wrapper compiler (missing -R/foo/lib flags).
if ($mpi_install->{libdir}) { if (exists($ENV{LD_LIBRARY_PATH})) { $ENV{LD_LIBRARY_PATH} = "$mpi_install->{libdir}:" . $ENV{LD_LIBRARY_PATH}; } else { $ENV{LD_LIBRARY_PATH} = $mpi_install->{libdir}; } } Is the rationale for setting LD_LIBRARY_PATH for the mpirun's the same as the rationale described below (from GNU_Install.pm)? my %ENV_SAVE = %ENV; $ENV{TMPDIR} = "$config->{installdir}/tmp"; mkdir($ENV{TMPDIR}, 0777); # The intent here is just to ensure that the LD_LIBRARY_PATH # in the environment does not point to shared libraries # outside of MTT's scope that would interfere with "make # check" (e.g., another libmpi.so outside of MTT). Just # prepend our own $libdir to LD_LIBRARY_PATH and hope that # that's Good Enough. :-) if (exists($ENV{LD_LIBRARY_PATH})) { $ENV{LD_LIBRARY_PATH} = "$config->{libdir}:$ENV{LD_LIBRARY_PATH}"; } else { $ENV{LD_LIBRARY_PATH} = "$config->{libdir}"; } If so, could we make MTT a little smarter. E.g., actually check for a libmpi.so (and/or other possibly conflicting DSOs), and if there's no conflict then skip the LD_LIBRARY_PATH setting. (This way a wrapper compiler issue is not masked.) -Ethan