@@ -1284,6 +1284,47 @@ if test "$ac_cv_sizeof_MPI_Offset" -lt "8"; then
12841284 -----------------------------------------------------------------------] )
12851285fi
12861286
1287+ MPI_OFFSET_FMT="%lld"
1288+ if test "x$GCC" = xyes ; then
1289+ # check if MPI_Offset is long long int or long int.
1290+ AC_MSG_CHECKING ( [ MPI_Offset type] )
1291+ saved_CFLAGS=$CFLAGS
1292+ MPI_Offset_type="unknown"
1293+ CFLAGS="$CFLAGS -Werror=format"
1294+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ [ #include <stdio.h>
1295+ #include <mpi.h>] ] ,
1296+ [ [ printf("%lld\n", (MPI_Offset)1);] ] ) ] ,
1297+ [ MPI_Offset_is_long_long=yes] ,
1298+ [ MPI_Offset_is_long_long=no] )
1299+ if test $MPI_Offset_is_long_long = no ; then
1300+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ [ #include <stdio.h>
1301+ #include <mpi.h>] ] ,
1302+ [ [ printf("%ld\n", (MPI_Offset)1);] ] ) ] ,
1303+ [ MPI_Offset_is_long=yes] ,
1304+ [ MPI_Offset_is_long=no] )
1305+ if test $MPI_Offset_is_long = no ; then
1306+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ [ #include <stdio.h>
1307+ #include <mpi.h>] ] ,
1308+ [ [ printf("%d\n", (MPI_Offset)1);] ] ) ] ,
1309+ [ MPI_Offset_is_int=yes] ,
1310+ [ MPI_Offset_is_int=no] )
1311+ if test $MPI_Offset_is_int = yes ; then
1312+ MPI_Offset_type="int"
1313+ MPI_OFFSET_FMT="%d"
1314+ fi
1315+ else
1316+ MPI_Offset_type="long"
1317+ MPI_OFFSET_FMT="%ld"
1318+ fi
1319+ else
1320+ MPI_Offset_type="long long"
1321+ MPI_OFFSET_FMT="%lld"
1322+ fi
1323+ AC_MSG_RESULT ( [ $MPI_Offset_type] )
1324+ CFLAGS=$saved_CFLAGS
1325+ fi
1326+ AC_DEFINE_UNQUOTED ( [ OFFFMT] , [ "$MPI_OFFSET_FMT"] , [ MPI_Offset printf format] )
1327+
12871328AC_CHECK_SIZEOF ( [ MPI_Aint] , [ ] , [ #include <mpi.h>] )
12881329AM_CONDITIONAL(SIZEOF_MPI_AINT_IS_4, [ test x$ac_cv_sizeof_MPI_Aint = x4] )
12891330
0 commit comments