From: dtucker Date: Tue, 16 Jun 2009 06:11:02 +0000 (+0000) Subject: - (dtucker) [configure.ac defines.h] Bug #1607: handle the case where fsid_t X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/commitdiff_plain/87562a58a3961ef10dd936b1b8f437bba42b0a0f - (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. --- diff --git a/ChangeLog b/ChangeLog index 79dc3770..82d5c20c 100644 --- 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 diff --git a/configure.ac b/configure.ac index c8d1e903..b6c70e6a 100644 --- a/configure.ac +++ b/configure.ac @@ -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 +#include +#ifdef HAVE_SYS_TIME_H +# include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_STATVFS_H +#include +#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 #include ], -[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 +#include ], + [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, [ diff --git a/defines.h b/defines.h index 2f845728..dc25cdc3 100644 --- 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