From: Laurent Vivier Date: Fri, 18 Jul 2025 13:31:10 +0000 (+0200) Subject: net/passt: Fix build failure due to missing GIO dependency X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4ccca2cc05a2d904d1e25365accf3bcbe553c8b0;p=thirdparty%2Fqemu.git net/passt: Fix build failure due to missing GIO dependency The passt networking backend uses functions from the GIO library, such as g_subprocess_launcher_new(), to manage its daemon process. So, building with passt enabled requires GIO to be available. If we enable passt and disable gio the build fails during linkage with undefined reference errors: /usr/bin/ld: libsystem.a.p/net_passt.c.o: in function `net_passt_start_daemon': net/passt.c:250: undefined reference to `g_subprocess_launcher_new' /usr/bin/ld: net/passt.c:251: undefined reference to `g_subprocess_launcher_take_fd' /usr/bin/ld: net/passt.c:253: undefined reference to `g_subprocess_launcher_spawnv' /usr/bin/ld: net/passt.c:256: undefined reference to `g_object_unref' /usr/bin/ld: net/passt.c:263: undefined reference to `g_subprocess_wait' /usr/bin/ld: net/passt.c:268: undefined reference to `g_subprocess_get_if_exited' /usr/bin/ld: libsystem.a.p/net_passt.c.o: in function `glib_autoptr_clear_GSubprocess': /usr/include/glib-2.0/gio/gio-autocleanups.h:132: undefined reference to `g_object_unref' /usr/bin/ld: libsystem.a.p/net_passt.c.o: in function `net_passt_start_daemon': net/passt.c:269: undefined reference to `g_subprocess_get_exit_status' Fix this by adding an explicit weson dependency on GIO for the passt option. The existing dependency on linux is kept because passt is only available on this OS. Cc: qemu-stable@nongnu.org Fixes: 854ee02b222 ("net: Add passt network backend") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3121 Reported-by: Thomas Huth Signed-off-by: Laurent Vivier Reviewed-by: Thomas Huth Reviewed-by: Daniel P. Berrangé Signed-off-by: Peter Maydell --- diff --git a/meson.build b/meson.build index 72da97829ab..bdfb6214e6f 100644 --- a/meson.build +++ b/meson.build @@ -1280,6 +1280,7 @@ endif enable_passt = get_option('passt') \ .require(host_os == 'linux', error_message: 'passt is supported only on Linux') \ + .require(gio.found(), error_message: 'passt requires gio') \ .allowed() vde = not_found