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.
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])
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 ?
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|