diff configure.in @ 8022:d1da922a437d HEAD

mountpoint_get(): Added support for AIX support with mntctl().
author Timo Sirainen <tss@iki.fi>
date Sun, 20 Jul 2008 18:57:50 +0300
parents 1d209ee7eead
children 8afc9ddd723e
line wrap: on
line diff
--- a/configure.in	Sun Jul 20 18:40:17 2008 +0300
+++ b/configure.in	Sun Jul 20 18:57:50 2008 +0300
@@ -19,7 +19,8 @@
   sys/uio.h sys/sysmacros.h sys/resource.h sys/select.h libgen.h \
   sys/quota.h sys/fs/ufs_quota.h ufs/ufs/quota.h jfs/quota.h sys/fs/quota_common.h \
   mntent.h sys/mnttab.h sys/event.h sys/time.h sys/mkdev.h linux/dqblk_xfs.h \
-  xfs/xqm.h sasl.h sasl/sasl.h execinfo.h ucontext.h malloc_np.h sys/utsname.h)
+  xfs/xqm.h sasl.h sasl/sasl.h execinfo.h ucontext.h malloc_np.h sys/utsname.h \
+  sys/vmount.h)
 
 AC_ARG_ENABLE(ipv6,
 [  --enable-ipv6           Enable IPv6 support (auto)],
@@ -1535,6 +1536,36 @@
 ])
 
 dnl **
+dnl ** AIX mntctl
+dnl **
+
+if test $ac_cv_header_sys_vmount_h = yes; then
+  AC_MSG_CHECKING([for reasonable mntctl buffer size])
+  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+    #include <stdio.h>
+    #include <stdlib.h>
+    #include <sys/vmount.h>
+    int main() {
+      int size,count; char *m;
+      FILE *f=fopen("conftestval", "w");
+      if (!f) exit(1);
+      if ((count=mntctl(MCTL_QUERY,sizeof(size),&size))!=0 || !(m=malloc(size)) ||
+          (count=mntctl(MCTL_QUERY,size,m))<=0) exit(1);
+        fprintf(f, "%d\n",(size * (count + 5))/count & ~1); /* 5 mounts more */
+        exit(0);
+    }
+  ]])],[
+    size=`cat conftestval`
+    rm -f conftestval
+    AC_DEFINE_UNQUOTED(STATIC_MTAB_SIZE,$size, reasonable mntctl buffer size)
+    AC_MSG_RESULT($size)
+  ],[
+    AC_MSG_RESULT(default)
+  ])
+fi
+
+
+dnl **
 dnl ** SSL
 dnl **