[PATCH v2 0/3] Enable clang build on Windows

Pierrick Bouvier posted 3 patches 1 month ago
There is a newer version of this series
docs/devel/style.rst                      | 10 ++++++++++
meson.build                               |  6 +++---
include/qemu/compiler.h                   |  7 +------
scripts/cocci-macro-file.h                |  6 +-----
subprojects/libvhost-user/libvhost-user.h |  6 +-----
contrib/plugins/meson.build               |  2 +-
plugins/meson.build                       | 24 +++++++++++++++++++----
tests/tcg/plugins/meson.build             |  3 +--
8 files changed, 38 insertions(+), 26 deletions(-)
[PATCH v2 0/3] Enable clang build on Windows
Posted by Pierrick Bouvier 1 month ago
For now, it was only possible to build plugins using GCC on Windows. However,
windows-aarch64 only supports Clang.
This biggest roadblock was to get rid of gcc_struct attribute, which is not
supported by Clang. After investigation, we proved it was safe to drop it.

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

v1 contained warning fixes and various bits that have been upstreamed already.
The only bits left in this series are the gcc_struct removal, and fixing the
plugins build with clang.

This series is for 10.0, as we decided to not include the gcc_struct removal is
9.2 release.

v1: https://patchew.org/QEMU/20241031040426.772604-1-pierrick.bouvier@linaro.org/

v2:
- drop attribute gcc_struct instead of using -mno-ms-bitfields option
- add a section about bitfields in documentation

Pierrick Bouvier (3):
  win32: remove usage of attribute gcc_struct
  docs/devel/style: add a section about bitfield, and disallow them for
    packed structures
  plugins: enable linking with clang/lld

 docs/devel/style.rst                      | 10 ++++++++++
 meson.build                               |  6 +++---
 include/qemu/compiler.h                   |  7 +------
 scripts/cocci-macro-file.h                |  6 +-----
 subprojects/libvhost-user/libvhost-user.h |  6 +-----
 contrib/plugins/meson.build               |  2 +-
 plugins/meson.build                       | 24 +++++++++++++++++++----
 tests/tcg/plugins/meson.build             |  3 +--
 8 files changed, 38 insertions(+), 26 deletions(-)

-- 
2.39.5