diff options
author | Karel Zak | 2011-10-27 15:48:51 +0200 |
---|---|---|
committer | Karel Zak | 2011-11-03 12:32:50 +0100 |
commit | 10e56b49a8ded17991bc6807111656c974884d96 (patch) | |
tree | 8afb16bb98e99e249c21dc2b84badef2ff24bafd /configure.ac | |
parent | build-sys: cleanup HAVE_LIBCRYPT (diff) | |
download | kernel-qcow2-util-linux-10e56b49a8ded17991bc6807111656c974884d96.tar.gz kernel-qcow2-util-linux-10e56b49a8ded17991bc6807111656c974884d96.tar.xz kernel-qcow2-util-linux-10e56b49a8ded17991bc6807111656c974884d96.zip |
build-sys: cleanup BUILD_FALLOCATE
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 64 |
1 files changed, 24 insertions, 40 deletions
diff --git a/configure.ac b/configure.ac index facc9e41f..e04622305 100644 --- a/configure.ac +++ b/configure.ac @@ -691,18 +691,25 @@ UL_CHECK_SYSCALL([ioprio_get], [sh*], [289], [x86_64*], [252]) -dnl fallocate could be available as libc function or as syscall only -UL_CHECK_SYSCALL([fallocate]) - -dnl check for valid fallocate() function -dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64() -dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64() -dnl and program can't be linked. -dnl AC_CHECK_FUNC can't catch such errors since it's redefining -dnl function prototype. -AC_MSG_CHECKING([for valid fallocate() function]) -AC_LINK_IFELSE([ -AC_LANG_PROGRAM([[ + +AC_ARG_ENABLE([fallocate], + AS_HELP_STRING([--disable-fallocate], [do not build fallocate]), + [], enable_fallocate=check +) +build_fallocate=yes +UL_REQUIRES_LINUX([fallocate]) +UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])]) +AM_CONDITIONAL(BUILD_FALLOCATE, test "x$build_fallocate" = xyes) + +if test "x$build_fallocate" = xyes; then + dnl check for valid fallocate() function + dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64() + dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64() + dnl and program can't be linked. + dnl AC_CHECK_FUNC can't catch such errors since it's redefining + dnl function prototype. + AC_MSG_CHECKING([for valid fallocate() function]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_UNISTD_H # include <unistd.h> #endif @@ -717,16 +724,16 @@ AC_LANG_PROGRAM([[ #endif ]],[[ long ret; - ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful); - if (ret != 0) { return 1; } ]])],[ -AC_MSG_RESULT([yes]) -AC_DEFINE(HAVE_FALLOCATE,1,[Have valid fallocate() function])],[ -AC_MSG_RESULT([no])]) + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_FALLOCATE,1,[Have valid fallocate() function])],[ + AC_MSG_RESULT([no])]) +fi + dnl unshare could be available as libc function or as syscall only UL_CHECK_SYSCALL([unshare]) @@ -847,29 +854,6 @@ fi AM_CONDITIONAL(BUILD_PIVOT_ROOT, test "x$build_pivot_root" = xyes) -AC_ARG_ENABLE([fallocate], - AS_HELP_STRING([--disable-fallocate], [do not build fallocate]), - [], enable_fallocate=check -) -if test "x$enable_fallocate" = xno; then - build_fallocate=no -else - build_fallocate=yes - case $enable_fallocate:$linux_os in - yes:no) AC_MSG_ERROR([fallocate selected for non-linux system]);; - check:no) AC_MSG_WARN([non-linux system; do not build fallocate]) - build_fallocate=no;; - esac - if test "x$build_fallocate" = xyes; then - case $enable_fallocate:$ul_cv_syscall_fallocate in - yes:no) AC_MSG_ERROR([fallocate selected but fallocate syscall not found]);; - check:no) AC_MSG_WARN([fallocate syscall not found; do not build fallocate]) - build_fallocate=no;; - esac - fi -fi -AM_CONDITIONAL(BUILD_FALLOCATE, test "x$build_fallocate" = xyes) - AC_ARG_ENABLE([unshare], AS_HELP_STRING([--disable-unshare], [do not build unshare]), |