Richard Henderson <richard.hender...@linaro.org> writes:
> On aarch64, gcc 9.3 is generating > > qemu/exec.c: In function ‘address_space_translate_iommu’: > qemu/exec.c:431:28: note: parameter passing for argument of type \ > ‘MemTxAttrs’ {aka ‘struct MemTxAttrs’} changed in GCC 9.1 > > and many other reptitions. This structure, and the functions > amongst which it is passed, are not part of a QEMU public API. > Therefore we do not care how the compiler passes the argument, > so long as the compiler is self-consistent. > > Cc: Alex Bennée <alex.ben...@linaro.org> > Cc: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > TODO: The only portion of QEMU which does have a public api, > and so must have a stable abi, is "qemu/plugin.h". We could > test this by forcing -Wpsabi or -Werror=psabi in tests/plugin. > I can't seem to make that work -- Alex? modified plugins/Makefile.objs @@ -5,6 +5,7 @@ obj-y += loader.o obj-y += core.o obj-y += api.o +api.o-cflags := -Wpsabi # Abuse -libs suffix to only link with --dynamic-list/-exported_symbols_list # when the final binary includes the plugin object. Seems to work for me. -- Alex Bennée