qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] gitlab: remove duplication between msys jobs


From: Daniel P . Berrangé
Subject: Re: [PATCH] gitlab: remove duplication between msys jobs
Date: Fri, 28 Jul 2023 09:58:55 +0100
User-agent: Mutt/2.2.9 (2022-11-12)

On Fri, Jul 28, 2023 at 10:35:35AM +0200, Thomas Huth wrote:
> On 27/07/2023 12.39, Daniel P. Berrangé wrote:
> > On Wed, Jul 26, 2023 at 08:21:33PM +0200, Thomas Huth wrote:
> > > On 26/07/2023 18.19, Daniel P. Berrangé wrote:
> ...
> > > Anyway, before we unify the compiler package name suffix between the two
> > > jobs, I really would like to see whether the mingw Clang builds QEMU 
> > > faster
> > > in the 64-bit job ... but so far I failed to convince meson to accept the
> > > Clang from the mingw package ... does anybody know how to use Clang with
> > > MSYS2 properly?
> > 
> > AFAIK it shouldn't be anything worse than
> > 
> >    CC=clang ./configure ....
> > 
> > if that doesn't work then its a bug IMHO
> 
> No, it's not that easy ... As Marc-André explained to me, MSYS2 maintains a
> completely separate environment for Clang, i.e. you have to select this
> different environment with $env:MSYSTEM = 'CLANG64' and then install the
> packages that have the "mingw-w64-clang-x86_64-" prefix.
> 
> After lots of trial and error, I was able to get a test build here:
> 
>  https://gitlab.com/thuth/qemu/-/jobs/4758605925
> 
> I had to disable Spice and use --disable-werror in that build to make it
> succeed, but at least it shows that Clang seems to be a little bit faster -
> the job finished in 58 minutes. So if we can get the warnings fixed, this
> might be a solution for the timeouts here...

Those packing warnings look pretty serious

C:/GitLab-Runner/builds/thuth/qemu/include/block/nvme.h:1781:16: warning: 
unknown attribute 'gcc_struct' ignored [-Wunknown-attributes]

This means CLang is using the MSVC struct packing ABI for bitfields,
which is different from the GCC struct packing ABI. If any of those
structs use bitfields and are exposed as guest hardware ABI, or in
migration vmstate, then this is potentially broken compilation.

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 :|




reply via email to

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