Hi,
When trying to build Open MPI (r9843) with romio configured with pfvs2
support,
I noticed that the configure from romio was failing because of missing
libraries.
Because the pvfs2 library was not in the standard search path, I needed to
specify custom
LDFLAGS and LIBS for the toplevel Open MPI configure. However, these were not
passed on
to the configure script from romio.
Probably because of a misspelled LDFLAGS in the following code fragment
(mca/io/romio/configure.m4)
io_romio_flags=
AS_IF([test "$cross_compiling" = "yes"],
[AS_IF([test ! -z $build],
[io_romio_flags="$io_romio_flags --build=$build"])
AS_IF([test ! -z $host],
[io_romio_flags="$io_romio_flags --host=$host"])
AS_IF([test ! -z $target],
[io_romio_flags="$io_romio_flags
--target=$target"])])
io_romio_flags="$io_romio_flags CFLAGS="'"'"$CFLAGS"'"'"
CPPFLAGS="'"'"$CPPFLAGS"'"'" FFLAGS="'"'"$FFLAGS"'"'" LDFLAGS="'"'"$LSFLAGS"'"'"
^^^^^^^^
--$io_romio_shared-shared --$io_romio_static-static $io_romio_flags
$io_romio_prefix_arg
--with-mpi=open_mpi"
ompi_show_subtitle "Configuring ROMIO distribution"
OMPI_CONFIG_SUBDIR([ompi/mca/io/romio/romio],
[$io_romio_flags],
[io_romio_happy=1], [io_romio_happy=0])
As a consequence, romio failed to configure properly
(C compiler unable to create executables, because of -lpvfs2 in LIBS and no
LDFLAGS specifying -L...),
"io_romio_happy" was set to 0 and
I ended up with an Open MPI build looking and installing ok but
failing every MPI_File_xxxx call.
I searched the entire code for other references to 'LSFLAGS', but couldn't find
any.
This probably means LSFLAGS is a typo? (After all, S is next to D on the
keyboard ;-)
Anyway, changing LSFLAGS to LDFLAGS makes everything work again.
Greetings,
Dries
PS. Shouldn't configure warn if no io mca can be built?
Granted, configure cannot know if another one can be loaded dynamically later
on,
but I did specify --enable-io-romio (which actually is the default), so an
error/warning
would be a appreciated. Otherwise, if you happen to miss the one-line output in
the total configure output mentioning that romio will not be built, you end up
with an MPI implementation returning an error code for every MPI_File call.
I only found out that no MPI-IO was being included in Open MPI after trying to
debug a non-existent
function ;-)
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm