]> andersk Git - openssh.git/commitdiff
- (dtucker) [configure.ac defines.h] Bug #1607: handle the case where fsid_t
authordtucker <dtucker>
Tue, 16 Jun 2009 06:11:02 +0000 (06:11 +0000)
committerdtucker <dtucker>
Tue, 16 Jun 2009 06:11:02 +0000 (06:11 +0000)
   is a struct with a __val member.  Fixes build on, eg, Redhat 6.2.

ChangeLog
configure.ac
defines.h

index 79dc377019e119a27ba5fd76f48112e08ab5df24..82d5c20caf037182e0a44c946d37bcaf76508b4e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+20090616
+ - (dtucker) [configure.ac defines.h] Bug #1607: handle the case where fsid_t
+   is a struct with a __val member.  Fixes build on, eg, Redhat 6.2.
+
 20090504
  - (dtucker) [sshlogin.c] Move the NO_SSH_LASTLOG #ifndef line to include
    variable declarations.  Should prevent unused warnings anywhere it's set
index c8d1e9030949642861c2d415112560fe5513ab9f..b6c70e6a050b89cb216c34789543b2b8f86882fa 100644 (file)
@@ -3080,15 +3080,41 @@ if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
                file descriptor passing])
 fi
 
-AC_MSG_CHECKING(if f_fsid has val members)
+AC_MSG_CHECKING(if struct statvfs.f_fsid is integral type)
 AC_TRY_COMPILE([
 #include <sys/types.h>
+#include <sys/stat.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+], [struct statvfs s; s.f_fsid = 0;],
+[ AC_MSG_RESULT(yes) ],
+[ AC_MSG_RESULT(no)
+
+       AC_MSG_CHECKING(if fsid_t has member val)
+       AC_TRY_COMPILE([
+#include <sys/types.h>
 #include <sys/statvfs.h>],
-[struct fsid_t t; t.val[0] = 0;],
+       [fsid_t t; t.val[0] = 0;],
        [ AC_MSG_RESULT(yes)
-         AC_DEFINE(FSID_HAS_VAL, 1, f_fsid has members) ],
-       [ AC_MSG_RESULT(no) ]
-)
+         AC_DEFINE(FSID_HAS_VAL, 1, fsid_t has member val) ],
+       [ AC_MSG_RESULT(no) ])
+
+       AC_MSG_CHECKING(if f_fsid has member __val)
+       AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/statvfs.h>],
+       [fsid_t t; t.__val[0] = 0;],
+       [ AC_MSG_RESULT(yes)
+         AC_DEFINE(FSID_HAS___VAL, 1, fsid_t has member __val) ],
+       [ AC_MSG_RESULT(no) ])
+])
 
 AC_CACHE_CHECK([for msg_control field in struct msghdr],
                ac_cv_have_control_in_msghdr, [
index 2f8457286a3e4691cbf0d1fdbd15eda6689e5c39..dc25cdc3e80efef03625a0dedff862e2c2757d6a 100644 (file)
--- a/defines.h
+++ b/defines.h
@@ -594,6 +594,10 @@ struct winsize {
 #define FSID_TO_ULONG(f) \
        ((((u_int64_t)(f).val[0] & 0xffffffffUL) << 32) | \
            ((f).val[1] & 0xffffffffUL))
+#elif defined(FSID_HAS___VAL)
+#define FSID_TO_ULONG(f) \
+       ((((u_int64_t)(f).__val[0] & 0xffffffffUL) << 32) | \
+           ((f).__val[1] & 0xffffffffUL))
 #else
 # define FSID_TO_ULONG(f) ((f))
 #endif
This page took 0.65415 seconds and 5 git commands to generate.