RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Ralf S. Engelschall
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   25-Jun-2007 12:49:41
  Branch: HEAD                             Handle: 2007062511494100

  Modified files:
    rpm                     acinclude.m4 configure.ac

  Log:
    cleanup complex statfs Autoconf glue and move it to acinclude.m4 in
    order to make configure.ac more clear

  Summary:
    Revision    Changes     Path
    2.11        +150 -0     rpm/acinclude.m4
    2.135       +1  -100    rpm/configure.ac
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/acinclude.m4
  ============================================================================
  $ cvs diff -u -r2.10 -r2.11 acinclude.m4
  --- rpm/acinclude.m4  24 Jun 2007 18:32:03 -0000      2.10
  +++ rpm/acinclude.m4  25 Jun 2007 10:49:41 -0000      2.11
  @@ -528,3 +528,153 @@
     fi
   ])
   
  +dnl ##
  +dnl ##  NAME:
  +dnl ##    AC_CHECK_STATFS -- Check for "struct statfs" and friends
  +dnl ##
  +
  +AC_DEFUN([AC_CHECK_STATFS], [
  +    dnl # 1. search for struct statfs
  +    AC_MSG_CHECKING(for struct statfs)
  +    found_struct_statfs=no
  +    if test ".$found_struct_statfs" = .no; then
  +        dnl # Solaris 2.6+ wants to use "statvfs"
  +        AC_COMPILE_IFELSE([
  +            AC_LANG_PROGRAM([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#include <sys/statvfs.h>
  +            ]], [[
  +                struct statvfs sfs;
  +            ]])
  +        ], [
  +            AC_MSG_RESULT(in <sys/statvfs.h>)
  +            AC_DEFINE(STATFS_IN_SYS_STATVFS, 1, [statfs in <sys/statvfs.h> 
(for Solaris 2.6+ systems)])
  +            found_struct_statfs=yes
  +        ], [])
  +    fi
  +    if test ".$found_struct_statfs" = .no; then
  +        dnl # Linux: first try including <sys/vfs.h>
  +        AC_COMPILE_IFELSE([
  +            AC_LANG_PROGRAM([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#include <sys/vfs.h>
  +            ]], [[
  +                struct statfs sfs;
  +            ]])
  +        ],[
  +            AC_MSG_RESULT(in <sys/vfs.h>)
  +            AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for 
Linux systems)])
  +            found_struct_statfs=yes
  +        ], [])
  +    fi
  +    if test ".$found_struct_statfs" = .no; then
  +        dnl # ...next try including <sys/mount.h>
  +        AC_COMPILE_IFELSE([
  +            AC_LANG_PROGRAM([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#ifdef HAVE_SYS_PARAM_H
  +#include <sys/param.h>
  +#endif
  +#include <sys/mount.h>
  +            ]], [[
  +                struct statfs sfs;
  +            ]])
  +        ],[
  +            AC_MSG_RESULT(in <sys/mount.h>)
  +            AC_DEFINE(STATFS_IN_SYS_MOUNT, 1, [statfs in <sys/mount.h> (for 
Digital Unix 4.0D systems)])
  +            found_struct_statfs=yes
  +        ], [])
  +    fi
  +    if test ".$found_struct_statfs" = Xno; then
  +        dnl ...still no joy. Try <sys/statfs.h>
  +        AC_COMPILE_IFELSE([
  +            AC_LANG_PROGRAM([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#include <sys/statfs.h>
  +            ]], [[
  +                struct statfs sfs;
  +            ]])
  +        ], [
  +            AC_MSG_RESULT(in <sys/statfs.h>)
  +            AC_DEFINE(STATFS_IN_SYS_STATFS, 1, [statfs in <sys/statfs.h> 
(for IRIX 6.4 systems)])
  +            found_struct_statfs=yes
  +        ], [])
  +    fi
  +    if test ".$found_struct_statfs" = .no; then
  +        dnl # ...no luck. Warn the user of impending doom.
  +        AC_MSG_RESULT([not found])
  +        AC_MSG_WARN([struct statfs not found])
  +    fi
  +
  +    dnl # 2. search for f_bavail member of struct statfs
  +    if test ".$found_struct_statfs" = .yes; then
  +        AC_MSG_CHECKING(for f_bavail member in struct statfs)
  +        AC_COMPILE_IFELSE([
  +            AC_LANG_PROGRAM([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#if STATFS_IN_SYS_STATVFS
  +#include <sys/statvfs.h>
  +  typedef struct statvfs STATFS_t;
  +#else
  +  typedef struct statfs STATFS_t;
  +#if STATFS_IN_SYS_VFS
  +#include <sys/vfs.h>
  +#elif STATFS_IN_SYS_MOUNT
  +#include <sys/mouht.h>
  +#elif STATFS_IN_SYS_STATFS
  +#include <sys/statfs.h>
  +#endif
  +#endif 
  +            ]], [[
  +                STATFS_t sfs;
  +                sfs.f_bavail = 0;
  +            ]])
  +        ],[
  +            AC_MSG_RESULT(yes)
  +            AC_DEFINE(STATFS_HAS_F_BAVAIL, 1, [Define if struct statfs has 
the f_bavail member])
  +        ],[
  +            AC_MSG_RESULT(no)
  +        ])
  +    fi
  +
  +    dnl # 3. check to see if we have the 4-argument variant of statfs(2)
  +    if test ".$found_struct_statfs" = .yes; then
  +        AC_MSG_CHECKING([if statfs(2) requires 4 arguments])
  +        AC_RUN_IFELSE([
  +            AC_LANG_SOURCE([[
  +#ifdef HAVE_SYS_TYPES_H
  +#include <sys/types.h>
  +#endif
  +#ifdef STATFS_IN_SYS_VFS
  +#include <sys/vfs.h>
  +#elif STATFS_IN_SYS_MOUNT
  +#include <sys/mouht.h>
  +#elif STATFS_IN_SYS_STATFS
  +#include <sys/statfs.h>
  +#endif
  +                main() {
  +                    struct statfs sfs;
  +                    exit (statfs(".", &sfs, sizeof(sfs), 0));
  +                }
  +            ]])
  +        ], [
  +            AC_MSG_RESULT(yes)
  +            AC_DEFINE(STAT_STATFS4, 1, [Define if statfs() takes 4 
arguments])
  +        ], [
  +            AC_MSG_RESULT(no)
  +        ], [
  +            AC_MSG_RESULT(no)
  +        ])
  +    fi
  +])
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/configure.ac
  ============================================================================
  $ cvs diff -u -r2.134 -r2.135 configure.ac
  --- rpm/configure.ac  25 Jun 2007 08:17:59 -0000      2.134
  +++ rpm/configure.ac  25 Jun 2007 10:49:41 -0000      2.135
  @@ -406,6 +406,7 @@
   dnl # specific features
   AC_SYS_LARGEFILE
   AC_CHECK_VA_COPY
  +AC_CHECK_STATFS
   
   dnl # specific functions (specific)
   AC_CHECK_FUNC(setreuid,      [], [ AC_CHECK_LIB(ucb, setreuid, [if echo 
$LIBS | grep -- -lucb >/dev/null; then :; else LIBS="$LIBS -lc -lucb" USEUCB=y; 
fi]) ])
  @@ -451,106 +452,6 @@
        AC_LIBOBJ(myrealloc)
   fi
   
  -dnl # statfs portability fiddles.
  -AC_MSG_CHECKING(for struct statfs)
  -found_struct_statfs=no
  -if test X$found_struct_statfs = Xno ; then
  -dnl Solaris 2.6+ wants to use statvfs
  -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in 
sys/statvfs.h)
  -     AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
  -             [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
  -     found_struct_statfs=yes],[])
  -fi
  -if test X$found_struct_statfs = Xno ; then
  -dnl first try including sys/vfs.h
  -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in 
sys/vfs.h)
  -     AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux 
systems)])
  -     found_struct_statfs=yes],[])
  -fi
  -if test X$found_struct_statfs = Xno ; then
  -dnl ...next try including sys/mount.h
  -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#ifdef HAVE_SYS_PARAM_H
  -#include <sys/param.h>
  -#endif
  -#include <sys/mount.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in 
sys/mount.h)
  -     AC_DEFINE(STATFS_IN_SYS_MOUNT, 1, [statfs in <sys/mount.h> (for Digital 
Unix 4.0D systems)])
  -     found_struct_statfs=yes],[])
  -fi
  -if test X$found_struct_statfs = Xno ; then
  -dnl ...still no joy.  Try sys/statfs.h
  -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#include <sys/statfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in 
sys/statfs.h)
  -     AC_DEFINE(STATFS_IN_SYS_STATFS, 1, [statfs in <sys/statfs.h> (for Irix 
6.4 systems)])
  -     found_struct_statfs=yes],[])
  -fi
  -if test X$found_struct_statfs = Xno ; then
  -dnl ...no luck.  Warn the user of impending doom.
  -AC_MSG_WARN(not found)
  -fi
  -dnl if we found the struct, see if it has the f_bavail member.  Some OSes
  -dnl don't, including IRIX 6.5+
  -if test X$found_struct_statfs = Xyes ; then
  -AC_MSG_CHECKING(for f_bavail member in struct statfs)
  -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#if STATFS_IN_SYS_STATVFS
  -# include <sys/statvfs.h>
  -  typedef struct statvfs STATFS_t;
  -#else
  -  typedef struct statfs STATFS_t;
  -# if STATFS_IN_SYS_VFS
  -#  include <sys/vfs.h>
  -# elif STATFS_IN_SYS_MOUNT
  -#  include <sys/mouht.h>
  -# elif STATFS_IN_SYS_STATFS
  -#  include <sys/statfs.h>
  -# endif
  -#endif ]], [[STATFS_t sfs;
  -     sfs.f_bavail = 0;]])],[AC_MSG_RESULT(yes)
  -     AC_DEFINE(STATFS_HAS_F_BAVAIL, 1, [Define if struct statfs has the 
f_bavail member])],[AC_MSG_RESULT(no)
  -])
  -fi
  -if test X$found_struct_statfs = Xyes ; then
  -dnl now check to see if we have the 4-argument variant of statfs()
  -dnl this pretty much requires AC_RUN_IFELSE([AC_LANG_SOURCE([[]])],[],[],[])
  -AC_MSG_CHECKING([if statfs() requires 4 arguments])
  -AC_RUN_IFELSE([AC_LANG_SOURCE([[
  -#ifdef HAVE_SYS_TYPES_H
  -#include <sys/types.h>
  -#endif
  -#ifdef STATFS_IN_SYS_VFS
  -#include <sys/vfs.h>
  -#elif STATFS_IN_SYS_MOUNT
  -#include <sys/mouht.h>
  -#elif STATFS_IN_SYS_STATFS
  -#include <sys/statfs.h>
  -#endif
  -main() {
  -     struct statfs sfs;
  -     exit (statfs(".", &sfs, sizeof(sfs), 0));
  -}
  -]])],[AC_MSG_RESULT(yes)
  -     AC_DEFINE(STAT_STATFS4, 1, [Define if the statfs() call takes 4 
arguments])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)
  -])
  -fi
  -
   dnl look for libc features
   PROVIDES_ERRNO=no
   AC_MSG_CHECKING(if <netdb.h> defines h_errno)
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to