[pacman-dev] [PATCH 1/4] Fix check for FSSTATSTYPE
Mark Weiman
mark.weiman at markzz.com
Fri Apr 16 19:42:06 UTC 2021
On FreeBSD, both `struct statvfs` and `struct statfs` satisfy the
conditions where the `f_flag` and `f_flags` fields are present in both
respectively.
This patch accomplishes a couple of things:
1. Adds a check for `f_mntonname` in both structs and makes a decision
to choose statfs if the field is not present in statvfs, but is in
statfs.
2. Corrects a small error where the values of those checks are just
checked for their presence and not whether its true or false.
Signed-off-by: Mark Weiman <mark.weiman at markzz.com>
---
meson.build | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 579ff2ed..483c4fbd 100644
--- a/meson.build
+++ b/meson.build
@@ -154,6 +154,9 @@ foreach member : [
['struct statvfs', 'f_flag', '''#include <sys/statvfs.h>'''],
['struct statfs', 'f_flags', '''#include <sys/param.h>
#include <sys/mount.h>'''],
+ ['struct statvfs', 'f_mntonname', '''#include <sys/statvfs.h>'''],
+ ['struct statfs', 'f_mntonname', '''#include <sys/param.h>
+ #include <sys/mount.h>'''],
]
have = cc.has_member(member[0], member[1], prefix : member[2])
conf.set('HAVE_' + '_'.join([member[0], member[1]]).underscorify().to_upper(), have)
@@ -174,9 +177,13 @@ foreach type : [
endif
endforeach
-if conf.has('HAVE_STRUCT_STATVFS_F_FLAG')
+if conf.get('HAVE_STRUCT_STATVFS_F_FLAG', false)
conf.set('FSSTATSTYPE', 'struct statvfs')
-elif conf.has('HAVE_STRUCT_STATFS_F_FLAGS')
+elif conf.get('HAVE_STRUCT_STATFS_F_FLAGS', false)
+ conf.set('FSSTATSTYPE', 'struct statfs')
+endif
+
+if not conf.get('HAVE_STRUCT_STATVFS_F_MNTONNAME', false) and conf.get('HAVE_STRUCT_STATFS_F_MNTONNAME', false)
conf.set('FSSTATSTYPE', 'struct statfs')
endif
--
2.31.1
More information about the pacman-dev
mailing list