=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.ben...@linaro.org> writes: > From: Greg Manning <gmann...@rapitasystems.com> > > Generate a qemu_plugin_api.lib delay import lib on windows, for > windows qemu plugins to link against. > > Implement an example dll load fail hook to link up the API functions > correctly when a plugin is loaded on windows. > > Update the build scripts for the test and example plugins to use these > things. > > Signed-off-by: Greg Manning <gmann...@rapitasystems.com> > Acked-by: Alex Benn.©e <alex.ben...@linaro.org> > Message-Id: <20231102172053.17692-3-gmann...@rapitasystems.com> > Signed-off-by: Alex Benn.©e <alex.ben...@linaro.org> > --- > configure | 3 +++ > contrib/plugins/win32_linker.c | 34 ++++++++++++++++++++++++++++++++++ > contrib/plugins/Makefile | 20 ++++++++++++++++---- > plugins/meson.build | 17 +++++++++++++++++ > tests/plugin/meson.build | 14 +++++++++++--- > 5 files changed, 81 insertions(+), 7 deletions(-) > create mode 100644 contrib/plugins/win32_linker.c > > > if get_option('plugins') > + if targetos == 'windows' > + # Generate a .lib file for plugins to link against. > + # First, create a .def file listing all the symbols a plugin should > expect to have > + # available in qemu > + win32_plugin_def = configure_file( > + input: files('qemu-plugins.symbols'), > + output: 'qemu_plugin_api.def', > + capture: true, > + command: ['sed', '-e', '0,/^/s//EXPORTS/; s/[{};]//g', '@INPUT@']) > + # then use dlltool to assemble a delaylib. > + win32_qemu_plugin_api_lib = configure_file( > + input: win32_plugin_def, > + output: 'qemu_plugin_api.lib', > + command: ['dlltool', '--input-def', '@INPUT@', > + '--output-delaylib', '@OUTPUT@', '--dllname', > 'qemu.exe']
We need to ensure we have dlltool available before enabling plugins for windows otherwise we fail here. Also we need to update the windows images to include it. -- Alex Bennée Virtualisation Tech Lead @ Linaro