Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8227:9886bf0a4c40 HEAD
Test if posix_fallocate() works already in configure.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 05 Oct 2008 13:48:32 +0300 |
parents | 3e493fd3a9fa |
children | c9efd231a97f |
files | configure.in |
diffstat | 1 files changed, 30 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/configure.in Sun Oct 05 13:47:31 2008 +0300 +++ b/configure.in Sun Oct 05 13:48:32 2008 +0300 @@ -652,17 +652,37 @@ ]) dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it. -AC_TRY_LINK([ - #define _XOPEN_SOURCE 600 - #include <stdlib.h> - #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7) - possibly broken posix_fallocate - #endif -], [ - posix_fallocate(0, 0, 0); -], [ +dnl * It may also be broken in AIX. +AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ + AC_TRY_RUN([ + #define _XOPEN_SOURCE 600 + #include <stdio.h> + #include <stdlib.h> + #include <fcntl.h> + #include <unistd.h> + #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7) + possibly broken posix_fallocate + #endif + int main() { + int fd = creat("conftest.temp", 0600); + int ret; + if (fd == -1) { + perror("creat()"); + return 2; + } + ret = posix_fallocate(fd, 1024, 1024) < 0 ? 1 : 0; + unlink("conftest.temp"); + return ret; + } + ], [ + i_cv_posix_fallocate_works=yes + ], [ + i_cv_posix_fallocate_works=no + ]) +]) +if test $i_cv_posix_fallocate_works = yes; then AC_DEFINE(HAVE_POSIX_FALLOCATE,, Define if you have a working posix_fallocate()) -]) +fi dnl * OS specific options case "$host_os" in