On Tue, Jun 15, 2021 at 10:39:08AM +0100, Peter Maydell wrote: > On Mon, 14 Jun 2021 at 06:28, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > > > Commit 7de2e856533 made migration/qemu-file-channel.c include > > "io/channel-tls.h" but forgot to add the new GNUTLS dependency > > on Meson, leading to build failure on OSX: > > > > [2/35] Compiling C object > > libmigration.fa.p/migration_qemu-file-channel.c.o > > FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o > > cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o > > libmigration.fa.p/migration_qemu-file-channel.c.o -c > > ../migration/qemu-file-channel.c > > In file included from ../migration/qemu-file-channel.c:29: > > In file included from include/io/channel-tls.h:26: > > In file included from include/crypto/tlssession.h:24: > > include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not > > found > > #include <gnutls/gnutls.h> > > ^~~~~~~~~~~~~~~~~ > > 1 error generated. > > > > Reported-by: Stefan Weil <s...@weilnetz.de> > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407 > > Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration") > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > > Is there really no way to get Meson to handle this kind > of thing properly (ie "just put all the include paths in the CFLAGS > for every compilation") rather than requiring us to add dependency > markers all over the meson.build files every time we add some > extra #include somewhere ? This is demonstrably horribly fragile > the way we have it at the moment :-(
A better way to fix this might be to figure out a change to make the crypto struct definitions be private in the .c file, since the public callers should not need to see them. That would let us remove the #include for gnutls from the header. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|