[RFC PATCH 0/6] Use Clang for compiling in the 64-bit MSYS2 job

Thomas Huth posted 6 patches 9 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230728142748.305341-1-thuth@redhat.com
Maintainers: Yonggang Luo <luoyonggang@gmail.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Peter Xu <peterx@redhat.com>, Jason Wang <jasowang@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, Stefan Weil <sw@weilnetz.de>
include/hw/i386/intel_iommu.h |  14 ++--
include/qemu/compiler.h       |   2 +-
hw/i386/intel_iommu.c         |   2 +-
ui/dbus-listener.c            |   3 +-
util/oslib-win32.c            |   4 +-
.gitlab-ci.d/windows.yml      | 134 +++++++++++++---------------------
6 files changed, 65 insertions(+), 94 deletions(-)
[RFC PATCH 0/6] Use Clang for compiling in the 64-bit MSYS2 job
Posted by Thomas Huth 9 months, 1 week ago
The 64-bit MSYS2 job often times out in our CI, though we already have
limited it to a very minimum by using --without-default-devices etc.
GCC is incredibly slow here. By using Clang instead of GCC, the job
is ca. 15 minutes faster - that's enough buffer to avoid the timeouts
here.

The caveat is that Clang does not support __attribute__((gcc_struct))
on Windows. So we have to make sure that our structs are still padded
right. By checking the build with "pahole", Daniel discovered that
there is still an issue in VTD_IR_TableEntry, so that's why this
struct gets changed in this patch series, too. All other structs did
not show a difference with "pahole", so building with Clang should
hopefully be fine after these modifications here.

Daniel P. Berrangé (1):
  gitlab: remove duplication between msys jobs

Marc-André Lureau (1):
  ui/dbus: fix clang compilation issue

Thomas Huth (4):
  util/oslib-win32: Fix compiling with Clang from MSYS2
  hw/i386/intel_iommu: Fix VTD_IR_TableEntry for ms_struct layout
  include/qemu/compiler: Fix problem with gcc_struct and Clang
  gitlab-ci.d/windows: Use Clang for compiling in the 64-bit MSYS2 job

 include/hw/i386/intel_iommu.h |  14 ++--
 include/qemu/compiler.h       |   2 +-
 hw/i386/intel_iommu.c         |   2 +-
 ui/dbus-listener.c            |   3 +-
 util/oslib-win32.c            |   4 +-
 .gitlab-ci.d/windows.yml      | 134 +++++++++++++---------------------
 6 files changed, 65 insertions(+), 94 deletions(-)

-- 
2.39.3


Re: [RFC PATCH 0/6] Use Clang for compiling in the 64-bit MSYS2 job
Posted by Daniel P. Berrangé 9 months ago
On Fri, Jul 28, 2023 at 04:27:42PM +0200, Thomas Huth wrote:
> The 64-bit MSYS2 job often times out in our CI, though we already have
> limited it to a very minimum by using --without-default-devices etc.
> GCC is incredibly slow here. By using Clang instead of GCC, the job
> is ca. 15 minutes faster - that's enough buffer to avoid the timeouts
> here.

FYI, I have a complementary series here that achieves a 25 minute
speedup cummulative speedup with GCC - the ideas would apply to
clang too.

https://lists.gnu.org/archive/html/qemu-devel/2023-08/msg00055.html


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|