xref: /freebsd/sys/contrib/openzfs/config/user-statx.m4 (revision df58e8b1506f241670be86a560fb6e8432043aee)
1*df58e8b1SMartin Matuskadnl #
2*df58e8b1SMartin Matuskadnl # Check for statx() function and STATX_MNT_ID availability
3*df58e8b1SMartin Matuskadnl #
4*df58e8b1SMartin MatuskaAC_DEFUN([ZFS_AC_CONFIG_USER_STATX], [
5*df58e8b1SMartin Matuska	AC_CHECK_HEADERS([linux/stat.h],
6*df58e8b1SMartin Matuska		[have_stat_headers=yes],
7*df58e8b1SMartin Matuska		[have_stat_headers=no])
8*df58e8b1SMartin Matuska
9*df58e8b1SMartin Matuska	AS_IF([test "x$have_stat_headers" = "xyes"], [
10*df58e8b1SMartin Matuska		AC_CHECK_FUNC([statx], [
11*df58e8b1SMartin Matuska			AC_DEFINE([HAVE_STATX], [1], [statx() is available])
12*df58e8b1SMartin Matuska
13*df58e8b1SMartin Matuska			dnl Check for STATX_MNT_ID availability
14*df58e8b1SMartin Matuska			AC_MSG_CHECKING([for STATX_MNT_ID])
15*df58e8b1SMartin Matuska			AC_COMPILE_IFELSE([
16*df58e8b1SMartin Matuska				AC_LANG_PROGRAM([[
17*df58e8b1SMartin Matuska					#include <linux/stat.h>
18*df58e8b1SMartin Matuska				]], [[
19*df58e8b1SMartin Matuska					struct statx stx;
20*df58e8b1SMartin Matuska					int mask = STATX_MNT_ID;
21*df58e8b1SMartin Matuska					(void)mask;
22*df58e8b1SMartin Matuska					(void)stx.stx_mnt_id;
23*df58e8b1SMartin Matuska				]])
24*df58e8b1SMartin Matuska			], [
25*df58e8b1SMartin Matuska				AC_MSG_RESULT([yes])
26*df58e8b1SMartin Matuska				AC_DEFINE([HAVE_STATX_MNT_ID], [1], [STATX_MNT_ID is available])
27*df58e8b1SMartin Matuska			], [
28*df58e8b1SMartin Matuska				AC_MSG_RESULT([no])
29*df58e8b1SMartin Matuska			])
30*df58e8b1SMartin Matuska		])
31*df58e8b1SMartin Matuska	], [
32*df58e8b1SMartin Matuska		AC_MSG_WARN([linux/stat.h not found; skipping statx support])
33*df58e8b1SMartin Matuska	])
34*df58e8b1SMartin Matuska])  dnl end AC_DEFUN
35