Make the fiemap configure check consistent with the other
libc interface checks - perform a compile and link with a
complete set of symbols, macros and interfaces needed, as
opposed to a build with just the headers.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Nathan Scott <nathans@debian.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
# Check if we have the fiemap ioctl (Linux)
#
AC_DEFUN([AC_HAVE_FIEMAP],
- [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=yes ], [ have_fiemap=no ])
+ [ AC_MSG_CHECKING([for fiemap])
+ AC_TRY_LINK([
+#define _GNU_SOURCE
+#define _FILE_OFFSET_BITS 64
+#include <linux/fs.h>
+#include <linux/fiemap.h>
+ ], [
+ struct fiemap *fiemap;
+ ioctl(0, FS_IOC_FIEMAP, (unsigned long)fiemap);
+ ], have_fiemap=yes
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
AC_SUBST(have_fiemap)
])