On Tue, Feb 10, 2026 at 8:54 AM Daniel P. Berrangé <[email protected]> wrote:
> On Tue, Feb 10, 2026 at 08:43:48AM -0700, Warner Losh wrote: > > Check to make sure that we have inotify in libc, before looking for it > > in libinotify. > > > > Cc: Paolo Bonzini <[email protected]> > > Cc: Marc-André Lureau <[email protected]> > > Cc: Daniel P. Berrange <[email protected]> > > Cc: Philippe Mathieu-Daudé <[email protected]> > > Signed-off-by: Warner Losh <[email protected]> > > --- > > FreeBSD 15 and newer now has a native inotify implementation. Check for > > it before checking for the wrapper libinotify library which is needed in > > FreeBSD 14 and earlier. Make the check dependent on symbols, not host > > version. > > > > Separate series because it's really independent of the two other > > patch series I have submitted and it is more important. > > --- > > meson.build | 16 +++++++++------- > > 1 file changed, 9 insertions(+), 7 deletions(-) > > > > diff --git a/meson.build b/meson.build > > index 2d114e9018..537f50283f 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -2662,13 +2662,15 @@ have_inotify_init = > cc.has_header_symbol('sys/inotify.h', 'inotify_init') > > have_inotify_init1 = cc.has_header_symbol('sys/inotify.h', > 'inotify_init1') > > inotify = not_found > > if (have_inotify_init or have_inotify_init1) and host_os == 'freebsd' > > - # libinotify-kqueue > > - inotify = cc.find_library('inotify') > > - if have_inotify_init > > - have_inotify_init = inotify.found() > > - endif > > - if have_inotify_init1 > > - have_inotify_init1 = inotify.found() > > + if not cc.has_function('inotify_init') and not > cc.has_function('inotify_init1') > > + inotify = cc.find_library('inotify') > > + # libinotify-kqueue > > + if have_inotify_init > > + have_inotify_init = inotify.found() > > + endif > > + if have_inotify_init1 > > + have_inotify_init1 = inotify.found() > > + endif > > endif > > endif > > config_host_data.set('CONFIG_INOTIFY', have_inotify_init) > > So this ends up woth 'inotify == not_found' with either Linux, > or latest FreeBSD 15. > yes. And that turns out to be fine... > Over in util/meson.build though we have > > freebsd_dep = [] > if host_os == 'freebsd' > freebsd_dep = inotify > endif > util_ss.add(files('filemonitor-inotify.c'), freebsd_dep) > > Which seems to be trying to avoid adding "not_found" to the dep list. > > Either it is safe to add "not_found" to the dep list, and this code in > util/meson.build can be simplified to just: > > util_ss.add(files('filemonitor-inotify.c'), [inotify]) > I don't think we need the [] here. It works without them on both FreeBSD 14 and 15. I tested on FreeBSD 14 with and without libinotify installed as well, and both work > or it is unsafe, and this code needs to be modified to look more like: > > inotify_deps = [] > if inotify.found() > inotify_deps = [inotify] > endif > util_ss.add(files('filemonitor-inotify.c'), inotify_deps) > > > Assuming you've tested your patch here successfully, then it seems like > the former case is valid, and we can simplify util/meson.dep to remove > the conditional ? > That's a nice simplification. I've played around a bit to simplify things a little elsewhere as well. I'll send a v2 here in a few monites. Warner
