qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 0/3] Enable clang build on Windows


From: Pierrick Bouvier
Subject: Re: [PATCH v4 0/3] Enable clang build on Windows
Date: Sun, 12 Jan 2025 09:54:09 -0800
User-agent: Mozilla Thunderbird

On 1/11/25 14:08, Stefan Weil wrote:
Am 10.01.25 um 21:33 schrieb Pierrick Bouvier:
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.

All patches are now reviewed, so this series can be pulled. I'll report that to
MSYS2 too, so we can enable clang environments for QEMU.

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

v3:
- explain why gcc_struct attribute matters in packed structs in commit message
- reword the bitfields documentation with suggestions given

v4:
- edit for bitfields doc requested by Philippe

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                      | 20 +++++++++++++++++++
   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, 48 insertions(+), 26 deletions(-)

This nice series allows building QEMU for Windows with the LLVM cross
compiler on my ARM64 machine, so you can add

Tested-by: Stefan Weil <sw@weilnetz.de>

I only needed a trivial additional fix in scripts/nsis.py for `make
installer` because the usual GNU objdump and the LLVM objdump (or the
cross x86_64-w64-mingw32-objdump in my test) produce slightly different
output (indentation with \t, indentation with four spaces). I'll prepare
a patch which eliminates the need for objdump, so no intermediate fix is
needed for this.

Stefan W.


Thanks for testing it Stefan.

Once merged, I'll share this with MSYS2 folks, so they can backport this series to 9.2, and enable clang based environments (including for windows-arm64).

Regards,
Pierrick



reply via email to

[Prev in Thread] Current Thread [Next in Thread]