On Fri, Sep 30, 2022 at 09:53:24AM +0200, Paolo Bonzini wrote: > The generated skeletons for DBus call the finalize method of the parent > type using code like > > G_OBJECT_CLASS > (qemu_dbus_display1_chardev_skeleton_parent_class)->finalize (object); > > However, the finalize method is defined in a shared library that is not > compiled with CFI. Do not enable anything that uses gdbus-codegen if > --enable-cfi was specified. > > Signed-off-by: Paolo Bonzini <[email protected]> > --- > meson.build | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/meson.build b/meson.build > index f6962834a3..6106daf267 100644 > --- a/meson.build > +++ b/meson.build > @@ -515,6 +515,7 @@ meson.override_dependency('glib-2.0', glib) > > gio = not_found > gdbus_codegen = not_found > +gdbus_codegen_error = '@0@ requires gdbus-codegen, please install libgio' > if not get_option('gio').auto() or have_system > gio = dependency('gio-2.0', required: get_option('gio'), > method: 'pkg-config', kwargs: static_kwargs) > @@ -539,6 +540,10 @@ if not get_option('gio').auto() or have_system > version: gio.version()) > endif > endif > +if gdbus_codegen.found() and get_option('cfi') > + gdbus_codegen = not_found > + gdbus_codegen_error = '@0@ uses gdbus-codegen, which does not support > control flow integrity')
FYI, you've got a trailing paren here that will break. Jason
