qemu-devel
[Top][All Lists]
Advanced

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

Re: [PULL v6 000/150] Meson-based build system


From: Paolo Bonzini
Subject: Re: [PULL v6 000/150] Meson-based build system
Date: Thu, 20 Aug 2020 01:20:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

On 19/08/20 23:11, Peter Maydell wrote:
> On Wed, 19 Aug 2020 at 20:44, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> However, this change was already in the first series that was posted
>> like a year ago...
> 
> It's a hundred-and-fifty patch series, and I can't review everything.
> I took it on trust that it would be basically a drop-in replacement
> for our current makefile setup.

Everybody has a different bar for the kind of change they accept; some
people really would have liked to keep in-tree builds, others consider
it already a drop-in replacement if "./configure && make && make
install" works.  Some consider building contrib/ tools by default a bad
idea, others consider it a necessity because of bitrot.  My objective in
using Meson is, among other things, also to establish conventions and
make them easy to follow, and to set a standard for how much we want to
bend over in the interest of backwards compatibility.

I wasn't expecting a full review; wide testing is just as important, as
shown by the amount of papercuts that were hiding at a point where the
patches were already functional.  That's why your input has been
invaluable with respect to both code coverage and usability
improvements.  It will also result in better CI since we now know the
delta between e.g. GitLab + tests/docker + tests/vm and your battery of
builds (for example tests/tcg MIPS is not covered by GitLab CI!).

My complaint was only that, until last week nobody even tried to apply
and make the patches, and therefore some of the input I got surprised
me.  I can guarantee that backwards-compatibility and incremental
adoption has been one of the design goals from the beginning (even
though it wasn't perfectly realized until y'all shaked it down).  QEMU
is the only project _ever_ to switch to Meson without requiring a flag
day and with full support for old->new incremental builds, and that is
because I know how much you and many others in the community value all
that.  At the same time, I had never considered the position of binaries
(especially when the new one is shorter :)).

But anyway, I don't want this minor complaint to detract from how
grateful I am for your and everybody else's shared effort.  I have now
written down the list of changes introduced by the switch, at
https://wiki.qemu.org/Features/Meson/Next.  I am confident that Meson
will win you over sooner rather than later!

Thanks,

Paolo

---
* automatically generate dependencies for sphinx manuals [Peter]
* fixes for ARM KVM build [Peter]
* work around old libiscsi in vhost-user-scsi.c [Peter]
* hack to support default c:/Program Files/QEMU prefix on mingw cross
compilation [Peter, Howard]
* added --enable-gettext/--disable-gettext [Peter]
* test for setuptools presence [Peter]
* fixes for Darwin [Peter, Roman]
* do not invoke system Meson through Python, always use embedded Meson
with --python [Roman]
* improvements and fixes to clean and distclean targets [Stefano]
* avoid (incorrect?) ubsan failure from CONFIG_BDRV_*_WHITELIST [Alexander]
* move --s390-pgste to Meson, removed QEMU_CFLAGS/QEMU_LDFLAGS for
config-target.mak
* remove some dead configure assignments
* update build system docs on how to add configure options, convert to rST
* moved installation of edk2 blobs and descriptors to Meson [Daniel]
* build and install elf2dmp on Windows too [Daniel]
* included headers renamed to .c.inc instead of .inc
* Simplified/rewrote handling of the modules variable [Howard]
* Fixed access to gdb-xml files [Howard]
* Fixed cross-compilation failure due to mingw prefix [Howard]
* Fixed sub-makefiles that include config-host.mak
* fixed error splat when doing "make" from unconfigured build directory
* use --native-file to list tools chosen by configure
* fixes for Windows (SDL, Wixl)
* C++ compiler not mandatory anymore
* remove useless .. search path for modules
* fix incremental build [Peter]
* work around sdl bug [Peter]
* fix w32 Ubuntu build [Peter]
* disable rdmacm-mux and vhost-user-blk build by default [Peter]
* allow cut-and-paste from config.status [Peter]
* support builds with nonworking C++ compiler [Peter]
* do not link gio into --disable-system builds [Peter]
* new patch to preserve compatibility symlinks from previous binary
locations [Peter]
* fixed cut-and-paste error in linux-user/mips/meson.build [Peter]
* preserve compatibility check-block target even if no block tests are
defined [Peter]




reply via email to

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