configure: Test that gio libs from pkg-config work
On some hosts (eg Ubuntu Bionic) pkg-config returns a set of libraries for gio-2.0 which don't actually work when compiling statically. (Specifically, the returned library string includes -lmount, but not -lblkid which -lmount depends upon, so linking fails due to missing symbols.) Check that the libraries work, and don't enable gio if they don't, in the same way we do for gnutls. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20200928160402.7961-1-peter.maydell@linaro.org
This commit is contained in:
parent
7142eb9e24
commit
76346b6264
|
@ -3489,13 +3489,21 @@ if test "$static" = yes && test "$mingw32" = yes; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $pkg_config --atleast-version=$glib_req_ver gio-2.0; then
|
if $pkg_config --atleast-version=$glib_req_ver gio-2.0; then
|
||||||
gio=yes
|
|
||||||
gio_cflags=$($pkg_config --cflags gio-2.0)
|
gio_cflags=$($pkg_config --cflags gio-2.0)
|
||||||
gio_libs=$($pkg_config --libs gio-2.0)
|
gio_libs=$($pkg_config --libs gio-2.0)
|
||||||
gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
|
gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
|
||||||
if [ ! -x "$gdbus_codegen" ]; then
|
if [ ! -x "$gdbus_codegen" ]; then
|
||||||
gdbus_codegen=
|
gdbus_codegen=
|
||||||
fi
|
fi
|
||||||
|
# Check that the libraries actually work -- Ubuntu 18.04 ships
|
||||||
|
# with pkg-config --static --libs data for gio-2.0 that is missing
|
||||||
|
# -lblkid and will give a link error.
|
||||||
|
write_c_skeleton
|
||||||
|
if compile_prog "" "gio_libs" ; then
|
||||||
|
gio=yes
|
||||||
|
else
|
||||||
|
gio=no
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
gio=no
|
gio=no
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue