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.

Reply via email to