[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DRAFT PATCH 000/143] Meson integration for 5.2
From: |
Thomas Huth |
Subject: |
Re: [DRAFT PATCH 000/143] Meson integration for 5.2 |
Date: |
Fri, 7 Aug 2020 10:51:27 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
On 06/08/2020 21.13, Paolo Bonzini wrote:
> This the more or less final version of the Meson conversion. Due to
> the sheer size of the series you have been CCed only on the cover
> letter.
>
> The series reaches the point where Makefile.target and unnest-vars
> can be removed, and all builds become non-recursive. I have also
> converted parts of the testsuite, notably qtest since it is needed
> for fuzzing. What's left for _after_ the merge is: 1) unit tests;
> 2) moving the rest of installation to meson (for which I have patches);
> 3) moving feature detection from configure to meson.
>
> Things I still haven't tested:
> - fuzzing
> - non-x86/Linux builds
> - static builds
> - Docker and VM builds
>
> Things I have checked:
> - x86 builds
> - modules
> - "make install"
> - internal slirp/dtc/capstone.
>
> It should be more or less bisectable. I have not tried building
> _all_ steps, but I have tried both before and after each major one.
>
> Build system rebuild rules seem to work reliably.
>
> After a week or quite intense rebasing, my impression is more or less
> the same as last December: Meson looks more daunting, but it is actually
> much nicer to work with.
>
> The diffstat so far is not very favorable, but remember that:
>
> 1) the series leaves quite a few nearly-obsolete bits in configure,
> Makefile and rules.mak (over 200 lines only in the makefiles).
>
> 2) configure test conversion will be where meson really shines. I
> included a couple examples just to show
>
> meson: convert VNC and dependent libraries to meson
> 4 files changed, 44 insertions(+), 134 deletions(-)
>
> meson: move SDL and SDL-image detection to meson
> 5 files changed, 30 insertions(+), 144 deletions(-)
>
> meson: replace create-config with meson configure_file
> 6 files changed, 80 insertions(+), 168 deletions(-)
>
> 3) the idea behind using Makefile generators is to have stable
> code written in a high-level language instead of Makefile magic
> that tends to grow by accretion. So even though ninjatool is
> large at 1000 lines of Python, it can already be considered mature
> or even "done". It had only ~15 lines changed since the last post,
> and whenever debugging meson.build issues looking at build.ninja has
> always (literally!) been enough.
>
> Available on git://github.com/bonzini/qemu branch meson-poc-next.
I just threw your meson-poc-next branch at our CI systems. Observations:
1) If no meson is installed, configure quickly aborts with "ERROR: Meson
not found. Use --meson=/path/to/meson|git|internal":
https://gitlab.com/huth/qemu/-/jobs/675533520
Could you simply change it to default got git/internal instead (where is
the difference between git and internal?), so that we do not have to add
a --meson=xxx to all the CI jobs everywhere?
2) With --meson=git added, I also do not get much further:
"./ui/meson.build:77:0: ERROR: Program 'keycodemapdb/tools/keymap-gen'
not found"
https://gitlab.com/huth/qemu/-/jobs/675546229
Any idea what's going wrong here?
3) macOS build fails in a different way:
../meson.build:1:0: ERROR: Value "gnu++03" for combo option "C++
language standard to use" is not one of the choices. Possible choices
are: "none", "c++98", "c++03", "c++11", "c++14", "c++17", "c++1z",
"c++2a", "gnu++11", "gnu++14", "gnu++17", "gnu++1z", "gnu++2a".
A full log can be found at
/private/var/folders/3y/l0z1x3693dl_8n0qybp4dqwh0000gn/T/cirrus-ci-build/build/meson-logs/meson-log.txt
ERROR: meson setup failed
https://cirrus-ci.com/task/6514035426328576
Maybe we should use gnu++11 for C++ code nowadays? ... we still used
gnu++98 in the past since GCC 4.8 (from CentOS/RHEL 7) has only
"experimental" support for c++11 ... but since we're soon (in less than
a year) going to drop support for that anyway, maybe we could switch it
now already to gnu++11 ... ?
Thomas
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, (continued)
Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Peter Maydell, 2020/08/07
Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Daniel P . Berrangé, 2020/08/07
Re: [DRAFT PATCH 000/143] Meson integration for 5.2,
Thomas Huth <=
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Paolo Bonzini, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Paolo Bonzini, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Paolo Bonzini, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Paolo Bonzini, 2020/08/07
- Re: [DRAFT PATCH 000/143] Meson integration for 5.2, Thomas Huth, 2020/08/07