On 10/30/24 21:04, Pierrick Bouvier wrote:
For now, it was only possible to build plugins using GCC on Windows. However,
windows-aarch64 only supports Clang.

The first patches (already posted and normally pulled) are fixes and
prerequisite to build plugins with meson. They are integrated here because it's
not possible to have two based-on in the cover letter.

Then, we fix compilation warnings on Windows.
After that, we can enable linking with Clang on Windows.

Finally, we enhanced the plugin symbols export list (automatically generated,
and not a static file), and we report some of the information we discovered on
the path in the documentation.

Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64
hosts.

Pierrick Bouvier (12):
   scripts: remove erroneous file that breaks git clone on Windows
   contrib/plugins/cflow: fix warning
   meson: build contrib/plugins with meson
   contrib/plugins: remove Makefile for contrib/plugins
   qga: fix -Wsometimes-uninitialized windows warning
   qga: fix missing static and prototypes windows warnings
   win32: use compiler option instead of attribute gcc_struct
   plugins: enable linking with clang/lld
   plugins: add missing export for qemu_plugin_num_vcpus
   plugins: detect qemu plugin API symbols from header
   plugins: eradicate qemu-plugins.symbols static file
   docs: add information on how to setup build environments

  MAINTAINERS                               |   1 +
  docs/about/build-platforms.rst            |   4 +-
  docs/devel/build-system.rst               | 100 ++++++++++++++++++++++
  configure                                 |  18 ----
  Makefile                                  |  10 ---
  meson.build                               |  14 ++-
  include/qemu/compiler.h                   |   7 +-
  include/qemu/qemu-plugin.h                |   1 +
  subprojects/libvhost-user/libvhost-user.h |   6 +-
  contrib/plugins/cflow.c                   |   6 +-
  qga/commands-windows-ssh.c                |   2 +-
  contrib/plugins/Makefile                  |  87 -------------------
  contrib/plugins/meson.build               |  28 ++++++
  plugins/meson.build                       |  36 ++++++--
  plugins/qemu-plugins.symbols              |  59 -------------
  qga/vss-win32/install.cpp                 |   6 +-
  qga/vss-win32/provider.cpp                |   5 +-
  qga/vss-win32/requester.cpp               |   8 +-
  scripts/meson-buildoptions.               |   0
  scripts/qemu-plugin-symbols.py            |  45 ++++++++++
  tests/tcg/plugins/meson.build             |   3 +-
  21 files changed, 238 insertions(+), 208 deletions(-)
  delete mode 100644 contrib/plugins/Makefile
  create mode 100644 contrib/plugins/meson.build
  delete mode 100644 plugins/qemu-plugins.symbols
  delete mode 100644 scripts/meson-buildoptions.
  create mode 100755 scripts/qemu-plugin-symbols.py


I won't make a v2 of this series, as the build with clang is currently impossible, due to use of gcc_struct attribute. Maintainers have a strong preference to wait for official support in clang.

Most of the interesting patches (build system, warning fix) have been pulled or will be though.

Reply via email to