1
1

- Fix some configure.ac tests for figuring out the back-end C type for

MPI_Offset
- Make the ROMIO IO component use MPI_Offset for the back-end type for
  ADIO_Offset
- Removed some extra verbage from configure warnings
- Add some logic to configure to deduce an MPI datatype that
  corresponds to MPI_Offset (because ROMIO needs it).  This is a bit
  of an abuse (i.e., ROMIO's configure should figure this out), but
  it's not too gratuitous because a) the ROMIO component is included
  in Open MPI, and b) other io components to be defined in the future
  could also use this information
- Rename MCA: MPI Component Architecture -> Modular Component
  Architecture

This commit was SVN r3742.
Этот коммит содержится в:
Jeff Squyres 2004-12-07 22:40:37 +00:00
родитель aefb119af8
Коммит c33dd84b51
2 изменённых файлов: 70 добавлений и 8 удалений

Просмотреть файл

@ -652,7 +652,7 @@ else
MPI_FORTRAN_INT_TYPE=int
MPI_FORTRAN_REAL_TYPE=float
MPI_FORTRAN_DBLPREC_TYPE=double
AC_MSG_WARN([*** WARNING: Did not detect a f77 compiler. Assuming default corresponding types])
AC_MSG_WARN([*** Did not detect a f77 compiler. Assuming default corresponding types])
AC_MSG_WARN([*** Fortran LOGICAL = C $MPI_FORTRAN_LOGICAL_TYPE])
AC_MSG_WARN([*** Fortran INTEGER = C $MPI_FORTRAN_INT_TYPE])
AC_MSG_WARN([*** Fortran REAL = C $MPI_FORTRAN_REAL_TYPE])
@ -676,31 +676,82 @@ AC_DEFINE_UNQUOTED(ompi_fortran_dblprec_t, $MPI_FORTRAN_DBLPREC_TYPE,
# search for int32_t, long long, long, int.
#
MPI_OFFSET_TYPE="not found"
MPI_OFFSET_DATATYPE="not found"
AC_MSG_CHECKING([checking for type of MPI_Offset])
if test "$ac_cv_type_int64_t" == "yes"; then
MPI_OFFSET_TYPE=int64_t
elif test "$ac_cv_type_long_long_t" == "yes" -a "$ac_cv_sizeof_long_long" == 8; then
# Need to figure out MPI_OFFSET_DATATYPE below
MPI_OFFSET_SIZE=8
elif test "$ac_cv_type_long_long" == "yes" -a "$ac_cv_sizeof_long_long" == 8; then
MPI_OFFSET_TYPE="long long"
elif test "$ac_cv_type_long_t" == "yes" -a "$ac_cv_sizeof_long" == 8; then
MPI_OFFSET_DATATYPE=MPI_LONG_LONG
MPI_OFFSET_SIZE=8
elif test "$ac_cv_type_long" == "yes" -a "$ac_cv_sizeof_long" == 8; then
MPI_OFFSET_TYPE="long"
MPI_OFFSET_DATATYPE=MPI_LONG
MPI_OFFSET_SIZE=8
elif test "ac_cv_sizeof_int" == 8; then
MPI_OFFSET_TYPE=int
MPI_OFFSET_DATATYPE=MPI_INT
MPI_OFFSET_SIZE=8
elif test "$ac_cv_type_int32_t" == "yes"; then
MPI_OFFSET_TYPE=int32_t
elif test "$ac_cv_type_long_long_t" == "yes" -a "$ac_cv_sizeof_long_long" == 4; then
# Need to figure out MPI_OFFSET_DATATYPE below
MPI_OFFSET_SIZE=4
elif test "$ac_cv_type_long_long" == "yes" -a "$ac_cv_sizeof_long_long" == 4; then
MPI_OFFSET_TYPE="long long"
elif test "$ac_cv_type_long_t" == "yes" -a "$ac_cv_sizeof_long" == 4; then
MPI_OFFSET_DATATYPE=MPI_LONG_LONG
MPI_OFFSET_SIZE=4
elif test "$ac_cv_type_long" == "yes" -a "$ac_cv_sizeof_long" == 4; then
MPI_OFFSET_TYPE="long"
MPI_OFFSET_DATATYPE=MPI_LONG
MPI_OFFSET_SIZE=4
elif test "ac_cv_sizeof_int" == 4; then
MPI_OFFSET_TYPE=int
MPI_OFFSET_DATATYPE=MPI_INT
MPI_OFFSET_SIZE=4
fi
AC_MSG_RESULT([$MPI_OFFSET_TYPE])
if test "$MPI_FINT_TYPE" = "not found"; then
AC_MSG_WARN([*** WARNING: Unable to find the right definition for MPI_Offset])
if test "$MPI_OFFSET_TYPE" = "not found"; then
AC_MSG_WARN([*** Unable to find the right definition for MPI_Offset])
AC_MSG_ERROR([Cannot continue])
fi
AC_DEFINE_UNQUOTED(MPI_Offset, $MPI_OFFSET_TYPE, [Type of MPI_Offset])
#
# If we haven't already, figure out an MPI datatype that corresponds
# to the back-end C type of MPI_Offset. We'll only not have figured
# this out already if the type of MPI_Offset is int32_t or int64_t.
#
AC_MSG_CHECKING([checking for an MPI datatype for MPI_Offset])
if test "$MPI_OFFSET_DATATYPE" = "not found"; then
echo mpi_offset_type is "$MPI_OFFSET_TYPE"
if test "$MPI_OFFSET_TYPE" = "int64_t"; then
if test "$ac_cv_type_long_long" == "yes" -a "$ac_cv_sizeof_long_long" == 8; then
MPI_OFFSET_DATATYPE=MPI_LONG_LONG
elif test "$ac_cv_type_long" == "yes" -a "$ac_cv_sizeof_long" == 8; then
MPI_OFFSET_DATATYPE=MPI_LONG
elif test "ac_cv_sizeof_int" == 8; then
MPI_OFFSET_DATATYPE=MPI_INT
fi
elif test "$MPI_OFFSET_TYPE" = "int32_t"; then
echo in int32_t if block
if test "$ac_cv_type_long_long" == "yes" -a "$ac_cv_sizeof_long_long" == 4; then
MPI_OFFSET_DATATYPE=MPI_LONG_LONG
elif test "$ac_cv_type_long" == "yes" -a "$ac_cv_sizeof_long" == 4; then
MPI_OFFSET_DATATYPE=MPI_LONG
elif test "ac_cv_sizeof_int" == 4; then
MPI_OFFSET_DATATYPE=MPI_INT
fi
fi
fi
AC_MSG_RESULT([$MPI_OFFSET_DATATYPE])
if test "$MPI_OFFSET_DATATYPE" = "not found"; then
AC_MSG_WARN([*** Unable to find an MPI datatype corresponding to MPI_Offset])
AC_MSG_ERROR([Cannot continue])
fi
AC_DEFINE_UNQUOTED(OMPI_OFFSET_DATATYPE, $MPI_OFFSET_DATATYPE, [MPI datatype corresponding to MPI_Offset])
# all: endian
@ -787,7 +838,7 @@ OMPI_CASE_SENSITIVE_FS_SETUP
# MCA
##################################
ompi_show_title "MPI Component Architecture (MCA) setup"
ompi_show_title "Modular Component Architecture (MCA) setup"
AC_MSG_CHECKING([for subdir args])
OMPI_CONFIG_SUBDIR_ARGS([ompi_subdir_args])

Просмотреть файл

@ -83,6 +83,15 @@
#define FDTYPE int
#endif
/* Open MPI: MPI_Offset is defined by ompi_config.h. Also, taking a
little liberty with the fact that we know ROMIO is a component
included in the Open MPI distribution, we've already figured out an
MPI datatype corresponding to MPI_Offset. */
#if 1
typedef MPI_Offset ADIO_Offset;
# define ADIO_OFFSET OMPI_OFFSET_DATATYPE
#else
/* Open MPI: ignores all this stuff */
#ifdef MPI_OFFSET_IS_INT
typedef int ADIO_Offset;
# define ADIO_OFFSET MPI_INT
@ -100,6 +109,8 @@
typedef long ADIO_Offset;
# define ADIO_OFFSET MPI_LONG
#endif
/* Open MPI: end of section of ignored stuff */
#endif
#ifndef SX4
# define MPI_AINT MPI_LONG /* may need to change this later */