changeset 185:60925d3e2c4d HEAD

fixed ssize_t and off_t checks.
author Timo Sirainen <tss@iki.fi>
date Sun, 08 Sep 2002 17:53:18 +0300
parents 4223b9ed0c80
children 041fb6098877
files configure.in
diffstat 1 files changed, 37 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/configure.in	Sun Sep 08 17:39:05 2002 +0300
+++ b/configure.in	Sun Sep 08 17:53:18 2002 +0300
@@ -114,25 +114,44 @@
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
-AC_CHECK_SIZEOF(ssize_t)
+
+dnl * older autoconfs don't include sys/types.h, so do it manually
+AC_MSG_CHECKING([size of ssize_t])
+AC_TRY_RUN([
+  #include <stdio.h>
+  #include <sys/types.h>
+  int main() {
+    FILE *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+    fprintf(f, "%d\n", sizeof(ssize_t));
+    exit(0);
+  }
+], [
+  sizeof_ssize_t=`cat conftestval`
+  rm -f conftestval
+], [
+  sizeof_ssize_t=0
+  AC_ERROR([Unsupported ssize_t size])
+])
+AC_MSG_RESULT($sizeof_off_t)
 
 AC_MSG_CHECKING([size of off_t])
-sizeof_off_t=0
-for size in 4 8; do
-  AC_TRY_RUN([
-    #define _FILE_OFFSET_BITS $preferred_off_t_bits
-    #include <sys/types.h>
-    #include <unistd.h>
-    int main() { off_t size; return sizeof(size) == $size ? 0 : 1; }
-  ], [
-    sizeof_off_t=$size
-    break
-  ])
-done
-
-if test x$sizeof_off_t = x0; then
+AC_TRY_RUN([
+  #include <stdio.h>
+  #include <sys/types.h>
+  int main() {
+    FILE *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+    fprintf(f, "%d\n", sizeof(off_t));
+    exit(0);
+  }
+], [
+  sizeof_off_t=`cat conftestval`
+  rm -f conftestval
+], [
+  sizeof_off_t=0
   AC_ERROR([Unsupported off_t size])
-fi
+])
 AC_MSG_RESULT($sizeof_off_t)
 
 if test x$sizeof_off_t = x$ac_cv_sizeof_long; then
@@ -154,10 +173,10 @@
   AC_ERROR([Couldn't find integer type for off_t])
 fi
 
-if test x$ac_cv_sizeof_ssize_t = x$ac_cv_sizeof_int; then
+if test x$sizeof_ssize_t = x$ac_cv_sizeof_int; then
   AC_DEFINE_UNQUOTED(SSIZE_T_MAX, INT_MAX)
   AC_DEFINE_UNQUOTED(PRIuSIZE_T, "u")
-elif test x$ac_cv_sizeof_ssize_t = x$ac_cv_sizeof_long_long; then
+elif test x$sizeof_ssize_t = x$ac_cv_sizeof_long_long; then
   AC_DEFINE_UNQUOTED(SSIZE_T_MAX, LLONG_MAX)
   AC_DEFINE_UNQUOTED(PRIuSIZE_T, "llu")
 else