- (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.
This commit is contained in:
Darren Tucker 2009-06-16 16:11:02 +10:00
parent a422d9756e
commit 3278062bf3
3 changed files with 42 additions and 8 deletions

View File

@ -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 20090504
- (dtucker) [sshlogin.c] Move the NO_SSH_LASTLOG #ifndef line to include - (dtucker) [sshlogin.c] Move the NO_SSH_LASTLOG #ifndef line to include
variable declarations. Should prevent unused warnings anywhere it's set variable declarations. Should prevent unused warnings anywhere it's set

View File

@ -1,4 +1,4 @@
# $Id: configure.ac,v 1.419 2009/03/18 18:25:02 tim Exp $ # $Id: configure.ac,v 1.420 2009/06/16 06:11:02 dtucker Exp $
# #
# Copyright (c) 1999-2004 Damien Miller # Copyright (c) 1999-2004 Damien Miller
# #
@ -15,7 +15,7 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org)
AC_REVISION($Revision: 1.419 $) AC_REVISION($Revision: 1.420 $)
AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_SRCDIR([ssh.c])
AC_CONFIG_HEADER(config.h) AC_CONFIG_HEADER(config.h)
@ -3080,15 +3080,41 @@ if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then
file descriptor passing]) file descriptor passing])
fi fi
AC_MSG_CHECKING(if f_fsid has val members) AC_MSG_CHECKING(if struct statvfs.f_fsid is integral type)
AC_TRY_COMPILE([ AC_TRY_COMPILE([
#include <sys/types.h> #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>], #include <sys/statvfs.h>],
[struct fsid_t t; t.val[0] = 0;], [fsid_t t; t.val[0] = 0;],
[ AC_MSG_RESULT(yes) [ AC_MSG_RESULT(yes)
AC_DEFINE(FSID_HAS_VAL, 1, f_fsid has members) ], AC_DEFINE(FSID_HAS_VAL, 1, fsid_t has member val) ],
[ AC_MSG_RESULT(no) ] [ 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_CACHE_CHECK([for msg_control field in struct msghdr],
ac_cv_have_control_in_msghdr, [ ac_cv_have_control_in_msghdr, [

View File

@ -25,7 +25,7 @@
#ifndef _DEFINES_H #ifndef _DEFINES_H
#define _DEFINES_H #define _DEFINES_H
/* $Id: defines.h,v 1.154 2009/03/07 01:32:22 dtucker Exp $ */ /* $Id: defines.h,v 1.155 2009/06/16 06:11:02 dtucker Exp $ */
/* Constants */ /* Constants */
@ -594,6 +594,10 @@ struct winsize {
#define FSID_TO_ULONG(f) \ #define FSID_TO_ULONG(f) \
((((u_int64_t)(f).val[0] & 0xffffffffUL) << 32) | \ ((((u_int64_t)(f).val[0] & 0xffffffffUL) << 32) | \
((f).val[1] & 0xffffffffUL)) ((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 #else
# define FSID_TO_ULONG(f) ((f)) # define FSID_TO_ULONG(f) ((f))
#endif #endif