Commit 88fbe180 authored by Rob Latham's avatar Rob Latham
Browse files

check for aio-lite request/presence



if we use this aio-lite implementation of aio routines, the MPICH test
suites all pass.
Signed-off-by: Sangmin Seo's avatarSangmin Seo <sseo@anl.gov>
parent b3684399
......@@ -24,7 +24,9 @@
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
#ifdef HAVE_AIO_H
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#elif defined HAVE_AIO_H
#include <aio.h>
#endif
......
......@@ -35,12 +35,16 @@
#include <signal.h>
#endif
#ifdef HAVE_AIO_H
#include <aio.h>
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif /* End of HAVE_SYS_AIO_H */
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#else
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif /* End of HAVE_AIO_LITE_H */
void ADIOI_LUSTRE_Open(ADIO_File fd, int *error_code);
void ADIOI_LUSTRE_Close(ADIO_File fd, int *error_code);
......
......@@ -18,11 +18,15 @@
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#else
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif
/* Workaround for incomplete set of definitions if __REDIRECT is not
......
......@@ -15,14 +15,20 @@
#include "adio.h"
#ifndef NO_AIO
#ifdef AIO_SUN
#include <sys/asynch.h>
#else
#include <aio.h>
#ifdef NEEDS_ADIOCB_T
typedef struct adiocb adiocb_t;
#endif
#endif
# ifdef AIO_SUN
# include <sys/asynch.h>
# else
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#else
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif
# endif
#endif
void ADIOI_PANFS_Open(ADIO_File fd, int *error_code);
......
......@@ -18,11 +18,16 @@
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#else
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif
/* Workaround for incomplete set of definitions if __REDIRECT is not
......
......@@ -16,11 +16,16 @@
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#else
#ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif
/* Workaround for incomplete set of definitions if __REDIRECT is not
......
......@@ -1137,6 +1137,22 @@ if test "$ac_cv_header_aio_h" = "yes" -o "$ac_cv_header_sys_aio_h" = "yes" -o "x
#endif] ] )
fi
# the aio-lite package provides an aio facility in case system aio library is
# buggy or does not perform well. for example, one fortran test does not pass
# its non-blocking collective I/O test
# See http://trac.mpich.org/projects/mpich/ticket/2201 for one such failure.
AC_ARG_WITH([aio-lite],
[AS_HELP_STRING([--with-aio-lite],
[use alternate external aio implementation])],
[with_aiolite=yes],
[])
AS_IF([test "x$with_aiolite" == xyes],
AC_CHECK_LIB([aio-lite], [lio_listio],
[], [], [-lpthread]
)
AC_CHECK_HEADERS([aio-lite.h])
)
# End of aio-related tests
#
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment