aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-11-17 12:56:33 +0000
committerPeter Maydell <peter.maydell@linaro.org>2020-11-17 12:56:33 +0000
commit13ceae6663450b6e49483bf0dc7f8362a949802d (patch)
tree462276386d354268c6809163e56b2401e9da7340 /configure
parent6d7ccc576d52fe2e7d965bfdb0e63b997e77975a (diff)
configure: Make "does libgio work" test pull in some actual functions
In commit 76346b6264a9b01979 we tried to add a configure check that the libgio pkg-config data was correct, which builds an executable linked against it. Unfortunately this doesn't catch the problem (missing static library dependency info), because a "do nothing" test source file doesn't have any symbol references that cause the linker to pull in .o files from libgio.a, and so we don't see the "missing symbols from libmount" error that a full QEMU link triggers. (The ineffective test went unnoticed because of a typo that effectively disabled libgio unconditionally, but after commit 3569a5dfc11f2 fixed that, a static link of the system emulator on Ubuntu stopped working again.) Improve the gio test by having the test source fragment reference a g_dbus function (which is what is indirectly causing us to end up wanting functions from libmount). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20201116104617.18333-1-peter.maydell@linaro.org
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure11
1 files changed, 9 insertions, 2 deletions
diff --git a/configure b/configure
index 4cef321d9d..2717cf1db0 100755
--- a/configure
+++ b/configure
@@ -3512,8 +3512,15 @@ if $pkg_config --atleast-version=$glib_req_ver gio-2.0; then
# 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
+ cat > $TMPC <<EOF
+#include <gio/gio.h>
+int main(void)
+{
+ g_dbus_proxy_new_sync(0, 0, 0, 0, 0, 0, 0, 0);
+ return 0;
+}
+EOF
+ if compile_prog "$gio_cflags" "$gio_libs" ; then
gio=yes
else
gio=no