blob: 7f7310440507af10bc9f34161db951871194e055 [file] [log] [blame]
#
# Check if we have a working fadvise system call
#
AC_DEFUN([AC_HAVE_FADVISE],
[ AC_MSG_CHECKING([for fadvise ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <fcntl.h>
]], [[
posix_fadvise(0, 1, 0, POSIX_FADV_NORMAL);
]])],[have_fadvise=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_fadvise)
])
#
# Check if we have a working madvise system call
#
AC_DEFUN([AC_HAVE_MADVISE],
[ AC_MSG_CHECKING([for madvise ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <sys/mman.h>
]], [[
posix_madvise(0, 0, MADV_NORMAL);
]])],[have_madvise=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_madvise)
])
#
# Check if we have a working mincore system call
#
AC_DEFUN([AC_HAVE_MINCORE],
[ AC_MSG_CHECKING([for mincore ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <sys/mman.h>
]], [[
mincore(0, 0, 0);
]])],[have_mincore=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_mincore)
])
#
# Check if we have a working sendfile system call
#
AC_DEFUN([AC_HAVE_SENDFILE],
[ AC_MSG_CHECKING([for sendfile ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <sys/sendfile.h>
]], [[
sendfile(0, 0, 0, 0);
]])],[have_sendfile=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_sendfile)
])
#
# Check if we have a getmntent libc call (Linux)
#
AC_DEFUN([AC_HAVE_GETMNTENT],
[ AC_MSG_CHECKING([for getmntent ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#include <mntent.h>
]], [[
getmntent(0);
]])],[have_getmntent=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_getmntent)
])
#
# Check if we have a getmntinfo libc call (FreeBSD, Mac OS X)
#
AC_DEFUN([AC_HAVE_GETMNTINFO],
[ AC_MSG_CHECKING([for getmntinfo ])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>
]], [[
getmntinfo(0, 0);
]])],[have_getmntinfo=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_getmntinfo)
])
#
#
# Check if we have a copy_file_range system call (Linux)
#
AC_DEFUN([AC_HAVE_COPY_FILE_RANGE],
[ AC_MSG_CHECKING([for copy_file_range])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <sys/syscall.h>
#include <unistd.h>
]], [[
syscall(__NR_copy_file_range, 0, 0, 0, 0, 0, 0);
]])],[have_copy_file_range=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_copy_file_range)
])
# Check if we have SEEK_DATA
AC_DEFUN([AC_HAVE_SEEK_DATA],
[ AC_MSG_CHECKING([for SEEK_DATA])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <sys/types.h>
#include <unistd.h>
]], [[
lseek(-1, 0, SEEK_DATA);
]])],[have_seek_data=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_seek_data)
])
# Check if we have nftw
AC_DEFUN([AC_HAVE_NFTW],
[ AC_MSG_CHECKING([for nftw])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <stddef.h>
#include <ftw.h>
]], [[
nftw("/", (int (*)(const char *, const struct stat *, int, struct FTW *))1, 0, FTW_ACTIONRETVAL);
]])],[have_nftw=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_nftw)
])
# Check if we have RLIMIT_NOFILE
AC_DEFUN([AC_HAVE_RLIMIT_NOFILE],
[ AC_MSG_CHECKING([for RLIMIT_NOFILE])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <sys/time.h>
#include <sys/resource.h>
]], [[
struct rlimit rlimit;
rlimit.rlim_cur = 0;
getrlimit(RLIMIT_NOFILE, &rlimit);
]])],[have_rlimit_nofile=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_rlimit_nofile)
])
#
# Check if we have a FIEXCHANGE_RANGE ioctl (Linux)
#
AC_DEFUN([AC_HAVE_FIEXCHANGE],
[ AC_MSG_CHECKING([for FIEXCHANGE_RANGE])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define _GNU_SOURCE
#include <sys/syscall.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/fs.h>
#include <linux/fiexchange.h>
]], [[
struct file_xchg_range fxr;
ioctl(-1, FIEXCHANGE_RANGE, &fxr);
]])],[have_fiexchange=yes
AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
AC_SUBST(have_fiexchange)
])