dnl ** does struct stat contain st_blksize?
AC_STRUCT_ST_BLKSIZE
+dnl ** do we have long longs?
+FPTOOLS_C_LONG_LONG
+
dnl ** what are the sizes of various types
dnl (these must come before GHC_CHECK_ALIGNMENT)
-AC_CHECK_SIZEOF(char, 1)
-AC_CHECK_SIZEOF(int, 4)
-AC_CHECK_SIZEOF(unsigned int,4)
-AC_CHECK_SIZEOF(float, 4)
-AC_CHECK_SIZEOF(double, 8)
-AC_CHECK_SIZEOF(long, 4)
-AC_CHECK_SIZEOF(void *, 4)
+AC_CHECK_SIZEOF(char, 1)
+AC_CHECK_SIZEOF(unsigned char, 1)
+AC_CHECK_SIZEOF(short, 2)
+AC_CHECK_SIZEOF(unsigned short, 2)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(unsigned int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(unsigned long, 4)
+if test "$fptools_cv_have_long_long" = yes; then
+AC_CHECK_SIZEOF(long long, 8)
+AC_CHECK_SIZEOF(unsigned long long, 8)
+fi
+AC_CHECK_SIZEOF(float, 4)
+AC_CHECK_SIZEOF(double, 8)
+AC_CHECK_SIZEOF(void *, 4)
dnl ** what are alignment constraints on various types
FPTOOLS_CHECK_ALIGNMENT(char)
+FPTOOLS_CHECK_ALIGNMENT(unsigned char)
+FPTOOLS_CHECK_ALIGNMENT(short)
+FPTOOLS_CHECK_ALIGNMENT(unsigned short)
FPTOOLS_CHECK_ALIGNMENT(int)
-FPTOOLS_CHECK_ALIGNMENT(void *)
-FPTOOLS_CHECK_ALIGNMENT(unsigned int) dnl redundant but harmless
+FPTOOLS_CHECK_ALIGNMENT(unsigned int)
FPTOOLS_CHECK_ALIGNMENT(long)
+FPTOOLS_CHECK_ALIGNMENT(unsigned long)
+if test "$fptools_cv_have_long_long" = yes; then
+FPTOOLS_CHECK_ALIGNMENT(long long)
+FPTOOLS_CHECK_ALIGNMENT(unsigned long long)
+fi
FPTOOLS_CHECK_ALIGNMENT(float)
FPTOOLS_CHECK_ALIGNMENT(double)
-
-dnl ** do we have long longs?
-FPTOOLS_C_LONG_LONG
+FPTOOLS_CHECK_ALIGNMENT(void *)
dnl ** can we open files in binary mode?
FPTOOLS_O_BINARY
byte first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
-/* Define to alignment constraint on characters */
+/* Define to alignment constraint on chars */
#undef ALIGNMENT_CHAR
+/* Define to alignment constraint on unsigned chars */
+#undef ALIGNMENT_UNSIGNED_CHAR
+
+/* Define to alignment constraint on shorts */
+#undef ALIGNMENT_SHORT
+
+/* Define to alignment constraint on unsigned shorts */
+#undef ALIGNMENT_UNSIGNED_SHORT
+
/* Define to alignment constraint on ints */
#undef ALIGNMENT_INT
-/* Define to alignment constraint on void pointers */
-#undef ALIGNMENT_VOID_P
+/* Define to alignment constraint on unsigned ints */
+#undef ALIGNMENT_UNSIGNED_INT
+
+/* Define to alignment constraint on longs */
+#undef ALIGNMENT_LONG
+
+/* Define to alignment constraint on unsigned longs */
+#undef ALIGNMENT_UNSIGNED_LONG
+
+/* Define to alignment constraint on long longs */
+#undef ALIGNMENT_LONG_LONG
+
+/* Define to alignment constraint on unsigned long longs */
+#undef ALIGNMENT_UNSIGNED_LONG_LONG
/* Define to alignment constraint on doubles */
#undef ALIGNMENT_DOUBLE
/* Define to alignment constraint on floats */
#undef ALIGNMENT_FLOAT
-/* Define to alignment constraint on doubles */
-#undef ALIGNMENT_LONG
-
-/* Define to alignment constraint on unsigned int */
-#undef ALIGNMENT_UNSIGNED_INT
+/* Define to alignment constraint on void pointers */
+#undef ALIGNMENT_VOID_P
/* Define if code lives before data in memory */
#undef CODE_BEFORE_DATA
/* The number of bytes in a char. */
#undef SIZEOF_CHAR
+/* The number of bytes in an unsigned char. */
+#undef SIZEOF_UNSIGNED_CHAR
+
+/* The number of bytes in a short. */
+#undef SIZEOF_SHORT
+
+/* The number of bytes in an unsigned short. */
+#undef SIZEOF_UNSIGNED_SHORT
+
/* The number of bytes in a int. */
#undef SIZEOF_INT
+/* The number of bytes in an unsigned int. */
+#undef SIZEOF_UNSIGNED_INT
+
+/* The number of bytes in a long. */
+#undef SIZEOF_LONG
+
+/* The number of bytes in an unsigned long. */
+#undef SIZEOF_UNSIGNED_LONG
+
+/* The number of bytes in a long long. */
+#undef SIZEOF_LONG_LONG
+
+/* The number of bytes in an unsigned long long. */
+#undef SIZEOF_UNSIGNED_LONG_LONG
+
/* The number of bytes in a double. */
#undef SIZEOF_DOUBLE
/* The number of bytes in a float. */
#undef SIZEOF_FLOAT
-/* The number of bytes in a long. */
-#undef SIZEOF_LONG
-
-/* The number of bytes in a unsigned int. */
-#undef SIZEOF_UNSIGNED_INT
-
/* The number of bytes in a void *. */
#undef SIZEOF_VOID_P