Whamcloud - gitweb
configure.in: Clean up checks for dirent.d_reclen, ssize_t,
authorTheodore Ts'o <tytso@mit.edu>
Wed, 19 Jan 2005 17:59:48 +0000 (12:59 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 19 Jan 2005 17:59:48 +0000 (12:59 -0500)
llseek, lseek64, sockaddr.sa_len and make the lseek checks
immune to compiler warnings, so that they can be compiled
with Intel C++ 8.1.

Patch from: Matthias Andree <matthias.andree@gmx.de>

ChangeLog
configure
configure.in

index ce35cf9..56395d9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-19  Matthias Andree <matthias.andree@gmx.de>
+
+       * configure.in: Clean up checks for dirent.d_reclen, ssize_t,
+               llseek, lseek64, sockaddr.sa_len and make the lseek checks
+               immune to compiler warnings, so that they can be compiled
+               with Intel C++ 8.1.
+
 2005-01-18  Theodore Ts'o  <tytso@mit.edu>
 
        * configure.in: Make configure.in script check for prerequisite
index f6255df..1e786e6 100644 (file)
--- a/configure
+++ b/configure
@@ -11216,9 +11216,9 @@ fi
 done
 
 
-echo "$as_me:$LINENO: checking whether d_reclen declared in dirent" >&5
-echo $ECHO_N "checking whether d_reclen declared in dirent... $ECHO_C" >&6
-if test "${e2fsprogs_cv_have_d_reclen_dirent+set}" = set; then
+echo "$as_me:$LINENO: checking for struct dirent.d_reclen" >&5
+echo $ECHO_N "checking for struct dirent.d_reclen... $ECHO_C" >&6
+if test "${ac_cv_member_struct_dirent_d_reclen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -11228,10 +11228,13 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <dirent.h>
+
 int
 main ()
 {
-struct dirent de; de.d_reclen = 0;
+static struct dirent ac_aggr;
+if (ac_aggr.d_reclen)
+return 0;
   ;
   return 0;
 }
@@ -11257,27 +11260,73 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  e2fsprogs_cv_have_d_reclen_dirent=yes
+  ac_cv_member_struct_dirent_d_reclen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-e2fsprogs_cv_have_d_reclen_dirent=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <dirent.h>
+
+int
+main ()
+{
+static struct dirent ac_aggr;
+if (sizeof ac_aggr.d_reclen)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_dirent_d_reclen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_dirent_d_reclen=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$as_me:$LINENO: result: $e2fsprogs_cv_have_d_reclen_dirent" >&5
-echo "${ECHO_T}$e2fsprogs_cv_have_d_reclen_dirent" >&6
-if test "$e2fsprogs_cv_have_d_reclen_dirent" = yes; then
-   cat >>confdefs.h <<\_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_dirent_d_reclen" >&5
+echo "${ECHO_T}$ac_cv_member_struct_dirent_d_reclen" >&6
+if test $ac_cv_member_struct_dirent_d_reclen = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_RECLEN_DIRENT 1
 _ACEOF
 
 fi
-echo "$as_me:$LINENO: checking whether ssize_t declared" >&5
-echo $ECHO_N "checking whether ssize_t declared... $ECHO_C" >&6
-if test "${e2fsprogs_cv_have_ssize_t+set}" = set; then
+
+echo "$as_me:$LINENO: checking for ssize_t" >&5
+echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
+if test "${ac_cv_type_ssize_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -11287,10 +11336,14 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/types.h>
+
 int
 main ()
 {
-ssize_t a = 0;
+if ((ssize_t *) 0)
+  return 0;
+if (sizeof (ssize_t))
+  return 0;
   ;
   return 0;
 }
@@ -11316,27 +11369,27 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  e2fsprogs_cv_have_ssize_t=yes
+  ac_cv_type_ssize_t=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-e2fsprogs_cv_have_ssize_t=no
+ac_cv_type_ssize_t=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$as_me:$LINENO: result: $e2fsprogs_cv_have_ssize_t" >&5
-echo "${ECHO_T}$e2fsprogs_cv_have_ssize_t" >&6
-if test "$e2fsprogs_cv_have_ssize_t" = yes; then
-   cat >>confdefs.h <<\_ACEOF
+echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
+echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
+if test $ac_cv_type_ssize_t = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_TYPE_SSIZE_T 1
 _ACEOF
 
 fi
-echo "$as_me:$LINENO: checking whether llseek declared in unistd.h" >&5
-echo $ECHO_N "checking whether llseek declared in unistd.h... $ECHO_C" >&6
-if test "${e2fsprogs_cv_have_llseek_prototype+set}" = set; then
+
+echo "$as_me:$LINENO: checking whether llseek is declared" >&5
+echo $ECHO_N "checking whether llseek is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_llseek+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -11346,10 +11399,14 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <unistd.h>
+
 int
 main ()
 {
-extern int llseek(int);
+#ifndef llseek
+  char *p = (char *) llseek;
+#endif
+
   ;
   return 0;
 }
@@ -11375,27 +11432,27 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  e2fsprogs_cv_have_llseek_prototype=no
+  ac_cv_have_decl_llseek=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-e2fsprogs_cv_have_llseek_prototype=yes
+ac_cv_have_decl_llseek=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$as_me:$LINENO: result: $e2fsprogs_cv_have_llseek_prototype" >&5
-echo "${ECHO_T}$e2fsprogs_cv_have_llseek_prototype" >&6
-if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then
-   cat >>confdefs.h <<\_ACEOF
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_llseek" >&5
+echo "${ECHO_T}$ac_cv_have_decl_llseek" >&6
+if test $ac_cv_have_decl_llseek = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_LLSEEK_PROTOTYPE 1
 _ACEOF
 
 fi
-echo "$as_me:$LINENO: checking whether lseek64 declared in unistd.h" >&5
-echo $ECHO_N "checking whether lseek64 declared in unistd.h... $ECHO_C" >&6
-if test "${e2fsprogs_cv_have_lseek64_prototype+set}" = set; then
+
+echo "$as_me:$LINENO: checking whether lseek64 is declared" >&5
+echo $ECHO_N "checking whether lseek64 is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_lseek64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -11405,12 +11462,16 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #define _LARGEFILE_SOURCE
-#define _LARGEFILE64_SOURCE
-#include <unistd.h>
+                #define _LARGEFILE64_SOURCE
+                #include <unistd.h>
+
 int
 main ()
 {
-extern int lseek64(int);
+#ifndef lseek64
+  char *p = (char *) lseek64;
+#endif
+
   ;
   return 0;
 }
@@ -11436,24 +11497,24 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  e2fsprogs_cv_have_lseek64_prototype=no
+  ac_cv_have_decl_lseek64=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-e2fsprogs_cv_have_lseek64_prototype=yes
+ac_cv_have_decl_lseek64=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$as_me:$LINENO: result: $e2fsprogs_cv_have_lseek64_prototype" >&5
-echo "${ECHO_T}$e2fsprogs_cv_have_lseek64_prototype" >&6
-if test "$e2fsprogs_cv_have_lseek64_prototype" = yes; then
-   cat >>confdefs.h <<\_ACEOF
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_lseek64" >&5
+echo "${ECHO_T}$ac_cv_have_decl_lseek64" >&6
+if test $ac_cv_have_decl_lseek64 = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_LSEEK64_PROTOTYPE 1
 _ACEOF
 
 fi
+
 if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then
   # if cross-compiling, with no cached values, just assume something common.
   ac_cv_sizeof_short=2
@@ -13649,9 +13710,9 @@ _ACEOF
 
   fi
 fi
-echo "$as_me:$LINENO: checking whether struct sockaddr contains sa_len" >&5
-echo $ECHO_N "checking whether struct sockaddr contains sa_len... $ECHO_C" >&6
-if test "${e2fsprogs_cv_sockaddr_sa_len+set}" = set; then
+echo "$as_me:$LINENO: checking for struct sockaddr.sa_len" >&5
+echo $ECHO_N "checking for struct sockaddr.sa_len... $ECHO_C" >&6
+if test "${ac_cv_member_struct_sockaddr_sa_len+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -13661,13 +13722,14 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/types.h>
-#include <sys/socket.h>
+        #include <sys/socket.h>
 
 int
 main ()
 {
-struct sockaddr sa;
-sa.sa_len;
+static struct sockaddr ac_aggr;
+if (ac_aggr.sa_len)
+return 0;
   ;
   return 0;
 }
@@ -13693,19 +13755,65 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  e2fsprogs_cv_sockaddr_sa_len=yes
+  ac_cv_member_struct_sockaddr_sa_len=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-e2fsprogs_cv_sockaddr_sa_len=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+        #include <sys/socket.h>
+
+int
+main ()
+{
+static struct sockaddr ac_aggr;
+if (sizeof ac_aggr.sa_len)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_sockaddr_sa_len=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_sockaddr_sa_len=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$as_me:$LINENO: result: $e2fsprogs_cv_sockaddr_sa_len" >&5
-echo "${ECHO_T}$e2fsprogs_cv_sockaddr_sa_len" >&6
-if test $e2fsprogs_cv_sockaddr_sa_len = yes; then
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_sa_len" >&5
+echo "${ECHO_T}$ac_cv_member_struct_sockaddr_sa_len" >&6
+if test $ac_cv_member_struct_sockaddr_sa_len = yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_SA_LEN 1
@@ -13731,6 +13839,7 @@ fi
 
 
 
+
 for ac_func in chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
index 5055ba3..bbc5076 100644 (file)
@@ -560,44 +560,17 @@ AC_CHECK_HEADERS(net/if.h,,,
 AC_FUNC_VPRINTF
 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
 dnl is not decleared.
-AC_MSG_CHECKING(whether d_reclen declared in dirent)
-AC_CACHE_VAL(e2fsprogs_cv_have_d_reclen_dirent,
-       AC_TRY_COMPILE(
-[#include <dirent.h>], [struct dirent de; de.d_reclen = 0; ],
-       [e2fsprogs_cv_have_d_reclen_dirent=yes],
-       [e2fsprogs_cv_have_d_reclen_dirent=no]))
-AC_MSG_RESULT($e2fsprogs_cv_have_d_reclen_dirent)
-if test "$e2fsprogs_cv_have_d_reclen_dirent" = yes; then
-   AC_DEFINE(HAVE_RECLEN_DIRENT)
-fi
+AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
+               [#include <dirent.h>])
 dnl Check to see if ssize_t was decleared
-AC_MSG_CHECKING(whether ssize_t declared)
-AC_CACHE_VAL(e2fsprogs_cv_have_ssize_t,
-       AC_TRY_COMPILE(
-[#include <sys/types.h>], [ssize_t a = 0; ],
-       [e2fsprogs_cv_have_ssize_t=yes],
-       [e2fsprogs_cv_have_ssize_t=no]))
-AC_MSG_RESULT($e2fsprogs_cv_have_ssize_t)
-if test "$e2fsprogs_cv_have_ssize_t" = yes; then
-   AC_DEFINE(HAVE_TYPE_SSIZE_T)
-fi
+AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
+             [#include <sys/types.h>])
 dnl
 dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
 dnl it is, and on others it isn't..... Thank you glibc developers....
 dnl
-dnl Warning!  Use of --enable-gcc-wall may throw off this test.
-dnl
-dnl
-AC_MSG_CHECKING(whether llseek declared in unistd.h)
-AC_CACHE_VAL(e2fsprogs_cv_have_llseek_prototype,
-       AC_TRY_COMPILE(
-[#include <unistd.h>], [extern int llseek(int);],
-       [e2fsprogs_cv_have_llseek_prototype=no],
-       [e2fsprogs_cv_have_llseek_prototype=yes]))
-AC_MSG_RESULT($e2fsprogs_cv_have_llseek_prototype)
-if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then
-   AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)
-fi
+AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
+             [#include <unistd.h>])
 dnl
 dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
 dnl are so convoluted that I can't tell whether it will always be defined,
@@ -607,18 +580,10 @@ dnl
 dnl Warning!  Use of --enable-gcc-wall may throw off this test.
 dnl
 dnl
-AC_MSG_CHECKING(whether lseek64 declared in unistd.h)
-AC_CACHE_VAL(e2fsprogs_cv_have_lseek64_prototype,
-       AC_TRY_COMPILE(
-[#define _LARGEFILE_SOURCE
-#define _LARGEFILE64_SOURCE
-#include <unistd.h>], [extern int lseek64(int);],
-       [e2fsprogs_cv_have_lseek64_prototype=no],
-       [e2fsprogs_cv_have_lseek64_prototype=yes]))
-AC_MSG_RESULT($e2fsprogs_cv_have_lseek64_prototype)
-if test "$e2fsprogs_cv_have_lseek64_prototype" = yes; then
-   AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)
-fi
+AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
+               [#define _LARGEFILE_SOURCE
+                #define _LARGEFILE64_SOURCE
+                #include <unistd.h>])
 dnl
 dnl Word sizes...
 dnl
@@ -674,18 +639,10 @@ fi
 dnl
 dnl Check for the presence of SA_LEN
 dnl
-AC_MSG_CHECKING(whether struct sockaddr contains sa_len) 
-AC_CACHE_VAL(e2fsprogs_cv_sockaddr_sa_len,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-],
-[struct sockaddr sa;
-sa.sa_len;],
-e2fsprogs_cv_sockaddr_sa_len=yes,e2fsprogs_cv_sockaddr_sa_len=no)])
-AC_MSG_RESULT([$]e2fsprogs_cv_sockaddr_sa_len)
-if test $e2fsprogs_cv_sockaddr_sa_len = yes; then
-  AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len])
-fi
+AC_CHECK_MEMBER(struct sockaddr.sa_len,
+               AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
+       [#include <sys/types.h>
+        #include <sys/socket.h>])
 dnl
 AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc)
 dnl