On Wed, Feb 7, 2024 at 9:38 AM Alex Bennée <alex.ben...@linaro.org> wrote:
> From: Ilya Leoshkevich <i...@linux.ibm.com> > > make vm-build-freebsd fails with: > > ld: error: undefined symbol: inotify_init1 > >>> referenced by filemonitor-inotify.c:183 > (../src/util/filemonitor-inotify.c:183) > >>> util_filemonitor-inotify.c.o:(qemu_file_monitor_new) > in archive libqemuutil.a > > On FreeBSD the inotify functions are defined in libinotify.so. Add it > to the dependencies. > > Signed-off-by: Ilya Leoshkevich <i...@linux.ibm.com> > Reviewed-by: Thomas Huth <th...@redhat.com> > Message-Id: <20240206002344.12372-5-...@linux.ibm.com> > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > --- > meson.build | 23 +++++++++++++++++++---- > util/meson.build | 6 +++++- > 2 files changed, 24 insertions(+), 5 deletions(-) > Reviewed-by: Warner Losh <i...@bsdimp.com> > diff --git a/meson.build b/meson.build > index b5d6dc94a83..e5d6f2d057e 100644 > --- a/meson.build > +++ b/meson.build > @@ -2384,6 +2384,22 @@ else > endif > config_host_data.set('CONFIG_ASAN_IFACE_FIBER', have_asan_fiber) > > +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() > + endif > +endif > +config_host_data.set('CONFIG_INOTIFY', have_inotify_init) > +config_host_data.set('CONFIG_INOTIFY1', have_inotify_init1) > + > # has_header_symbol > config_host_data.set('CONFIG_BLKZONED', > cc.has_header_symbol('linux/blkzoned.h', > 'BLKOPENZONE')) > @@ -2400,10 +2416,6 @@ config_host_data.set('CONFIG_FIEMAP', > config_host_data.set('CONFIG_GETRANDOM', > cc.has_function('getrandom') and > cc.has_header_symbol('sys/random.h', > 'GRND_NONBLOCK')) > -config_host_data.set('CONFIG_INOTIFY', > - cc.has_header_symbol('sys/inotify.h', > 'inotify_init')) > -config_host_data.set('CONFIG_INOTIFY1', > - cc.has_header_symbol('sys/inotify.h', > 'inotify_init1')) > config_host_data.set('CONFIG_PRCTL_PR_SET_TIMERSLACK', > cc.has_header_symbol('sys/prctl.h', > 'PR_SET_TIMERSLACK')) > config_host_data.set('CONFIG_RTNETLINK', > @@ -4407,6 +4419,9 @@ summary_info += {'libudev': libudev} > summary_info += {'FUSE lseek': fuse_lseek.found()} > summary_info += {'selinux': selinux} > summary_info += {'libdw': libdw} > +if host_os == 'freebsd' > + summary_info += {'libinotify-kqueue': inotify} > +endif > summary(summary_info, bool_yn: true, section: 'Dependencies') > > if host_arch == 'unknown' > diff --git a/util/meson.build b/util/meson.build > index af3bf5692d8..0ef9886be04 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -104,7 +104,11 @@ if have_block > util_ss.add(files('throttle.c')) > util_ss.add(files('timed-average.c')) > if config_host_data.get('CONFIG_INOTIFY1') > - util_ss.add(files('filemonitor-inotify.c')) > + freebsd_dep = [] > + if host_os == 'freebsd' > + freebsd_dep = inotify > + endif > + util_ss.add(files('filemonitor-inotify.c'), freebsd_dep) > else > util_ss.add(files('filemonitor-stub.c')) > endif > -- > 2.39.2 > >