Daniel P. Berrangé wrote:
On Thu, Sep 03, 2020 at 02:52:41PM +0400, Roman Bogorodskiy wrote:
> Daniel P. Berrangé wrote:
>
> > On Thu, Sep 03, 2020 at 02:21:37PM +0400, Roman Bogorodskiy wrote:
> > > Add some FreeBSD-specific libraries (-lutil, -lkvm) to tests
dependencies.
> > >
> > > Without that, FreeBSD 11.x, which uses the GNU ld, fails to link tests.
> > > Interestingly, newer FreeBSD versions that use LLVM ld tolerate this
> > > behaviour and builds successfully as is.
> >
> > Hmm, we need a CI job for FreeBSD 11 added
> >
> > Cirrus supports FreeBSD 11.4 so ought to be possible to add it to our
> > matrix.
> >
> > >
> > > Signed-off-by: Roman Bogorodskiy <bogorodskiy(a)gmail.com>
> > > ---
> > > tests/meson.build | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/tests/meson.build b/tests/meson.build
> > > index ad13e2de60..ea2458efbc 100644
> > > --- a/tests/meson.build
> > > +++ b/tests/meson.build
> > > @@ -10,11 +10,13 @@ tests_dep = declare_dependency(
> > > dlopen_dep,
> > > glib_dep,
> > > gnutls_dep,
> > > + kvm_dep,
> >
> > Makes sense, as we don't reference kvm_dep anywhere.
> >
> > > libnl_dep,
> > > libxml_dep,
> > > rpc_dep,
> > > sasl_dep,
> > > selinux_dep,
> > > + util_dep,
> >
> > In the top level meson.build, we appear to add -lutil as a linker
> > arg to the entire project, so i'm surprised this was needed.
>
> -lutil was actually the first issue spotted, and when fixed, -lkvm
> showed up.
>
> Here's the original report I got:
>
>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249056
>
> It contains some initial thoughts on this issue; there I also assumed
> that add_global_link_arguments() could fix the issue, but was satisfied
> with the current solution.
Hmm, this is all very strange if I'm reading the the
add_project_link_arguments doc correctly it should apply to everything
we have. The difference between add_project and add_global is just
about meson subprojects, but the tests are in our main project.
If add_project_link_arguments isn't working as we expect, we might be
better removing its use entirely in favour of explicitly adding the
_deps objects in the particular places they are needed.
I've just tried this change:
--- meson.build.orig 2020-09-03 11:14:20.233605000 +0000
+++ meson.build 2020-09-03 11:14:43.661313000 +0000
@@ -1405,7 +1405,7 @@
util_dep = cc.find_library('util', required: false)
if util_dep.found()
- add_project_link_arguments('-lutil', language: 'c')
+ add_global_link_arguments('-lutil', language: 'c')
endif
if not get_option('virtualport').disabled()
It doesn't work, the build is still failing with it.