Daniel P. Berrangé <berra...@redhat.com> writes: > 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 >
Right, but this time it would be a helpful linker error that would tell you what you are actually missing. Since this is "build_by_default: false" I think we're better off letting the error through.