On Thu, May 25, 2023 at 06:20:44PM -0300, Fabiano Rosas wrote: > We recently moved glib detection code to meson but the static libs > were left out. Add a specific dependency for stress.c which is linked > statically. > > $ make V=1 tests/migration/initrd-stress.img > > before: > cc -m64 -mcx16 -o tests/migration/stress ... -static -Wl,--start-group > /usr/lib64/libglib-2.0.so -Wl,--end-group > ... > bin/ld: attempted static link of dynamic object `/usr/lib64/libglib-2.0.so' > > after: > cc -m64 -mcx16 -o tests/migration/stress ... -static -pthread > -Wl,--start-group -lm /usr/lib64/libpcre.a -lglib-2.0 -Wl,--end-group > > Fixes: fc9a809e0d ("build: move glib detection and workarounds to meson") > Signed-off-by: Fabiano Rosas <faro...@suse.de> > --- > tests/migration/meson.build | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tests/migration/meson.build b/tests/migration/meson.build > index dd562355a1..ac71f13290 100644 > --- a/tests/migration/meson.build > +++ b/tests/migration/meson.build > @@ -1,9 +1,11 @@ > sysprof = dependency('sysprof-capture-4', required: false) > +glib_static = dependency('glib-2.0', version: glib_req_ver, required: false, > + method: 'pkg-config', static: true)
Since required: false, the result might be "not found", which means we'll still hit the linker error. I think we need to surround the 'executable()' bit in if glib_static.found() ... endif > > stress = executable( > 'stress', > files('stress.c'), > - dependencies: [glib, sysprof], > + dependencies: [glib_static, sysprof], > link_args: ['-static'], > build_by_default: false, > ) > 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 :|