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

Reply via email to