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

Reply via email to