Message ID | 20240207163812.3231697-9-alex.bennee@linaro.org |
---|---|
State | New |
Headers | show |
Series | maintainer updates for 9.0 pre-PR (docker, plugin tests, deprecation, elf, semihosting, gdbstub) | expand |
On Wed, Feb 7, 2024 at 9:38 AM Alex Bennée <alex.bennee@linaro.org> wrote: > From: Ilya Leoshkevich <iii@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 <iii@linux.ibm.com> > Reviewed-by: Thomas Huth <thuth@redhat.com> > Message-Id: <20240206002344.12372-5-iii@linux.ibm.com> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > meson.build | 23 +++++++++++++++++++---- > util/meson.build | 6 +++++- > 2 files changed, 24 insertions(+), 5 deletions(-) > Reviewed-by: Warner Losh <imp@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 > >
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