summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-05-07 13:24:06 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-05-07 15:13:28 -0400
commitc7320b94af8db53b0a4b0a96e37d6e81a0d4a68c (patch)
tree4697291e8010def6460a110932e9e1c167df561f
parentcf032e8775a70729c397d731a5e2e1ecb58f4877 (diff)
downloadbfs-c7320b94af8db53b0a4b0a96e37d6e81a0d4a68c.tar.xz
build: Add a check for getmntinfo()
-rw-r--r--build/has/getmntinfo.c10
-rw-r--r--build/header.mk1
-rw-r--r--src/mtab.c3
3 files changed, 12 insertions, 2 deletions
diff --git a/build/has/getmntinfo.c b/build/has/getmntinfo.c
new file mode 100644
index 0000000..90ef5fb
--- /dev/null
+++ b/build/has/getmntinfo.c
@@ -0,0 +1,10 @@
+// Copyright © Tavian Barnes <tavianator@tavianator.com>
+// SPDX-License-Identifier: 0BSD
+
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+
+int main(void) {
+ return getmntinfo(NULL, MNT_WAIT);
+}
diff --git a/build/header.mk b/build/header.mk
index 2cd13fa..52dcb6a 100644
--- a/build/header.mk
+++ b/build/header.mk
@@ -24,6 +24,7 @@ HEADERS := \
gen/has/getdents.h \
gen/has/getdents64.h \
gen/has/getdents64-syscall.h \
+ gen/has/getmntinfo.h \
gen/has/getprogname.h \
gen/has/getprogname-gnu.h \
gen/has/max-align-t.h \
diff --git a/src/mtab.c b/src/mtab.c
index 9ea8d4a..9befde3 100644
--- a/src/mtab.c
+++ b/src/mtab.c
@@ -15,7 +15,7 @@
#if !defined(BFS_USE_MNTENT) && BFS_USE_MNTENT_H
# define BFS_USE_MNTENT true
-#elif !defined(BFS_USE_MNTINFO) && BSD
+#elif !defined(BFS_USE_MNTINFO) && BFS_HAS_GETMNTINFO
# define BFS_USE_MNTINFO true
#elif !defined(BFS_USE_MNTTAB) && __SVR4
# define BFS_USE_MNTTAB true
@@ -27,7 +27,6 @@
# include <stdio.h>
#elif BFS_USE_MNTINFO
# include <sys/mount.h>
-# include <sys/ucred.h>
#elif BFS_USE_MNTTAB
# include <stdio.h>
# include <sys/mnttab.h>