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
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
CPPFLAGS="'"'"$CPPFLAGS"'"'" FFLAGS="'"'"$FFLAGS"'"'" LDFLAGS="'"'"$LSFLAGS"'"'"
--$io_romio_shared-shared --$io_romio_static-static $io_romio_flags $io_romio_prefix_arg
ompi_show_subtitle "Configuring ROMIO distribution"
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.
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