diff mbox series

[17/41] doc/build-platforms: document supported compilers

Message ID 20220420132624.2439741-18-marcandre.lureau@redhat.com (mailing list archive)
State New, archived
Headers show
Series Misc cleanups | expand

Commit Message

Marc-André Lureau April 20, 2022, 1:26 p.m. UTC
From: Marc-André Lureau <marcandre.lureau@redhat.com>

According to our configure checks, this is the list of supported
compilers.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
---
 docs/about/build-platforms.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Daniel P. Berrangé April 20, 2022, 2:10 p.m. UTC | #1
On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> According to our configure checks, this is the list of supported
> compilers.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> ---
>  docs/about/build-platforms.rst | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> index c29a4b8fe649..1980c5d2476f 100644
> --- a/docs/about/build-platforms.rst
> +++ b/docs/about/build-platforms.rst
> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
>  The version of the Windows API that's currently targeted is Vista / Server
>  2008.
>  
> +Supported compilers
> +-------------------
> +
> +To compile, QEMU requires either:
> +
> +- GCC >= 7.4.0
> +- Clang >= 6.0
> +- XCode Clang >= 10.0

Do we need to spell out the versions explicitly ? These versions are
all derived from what's available in the repos of the supported build
platforms, similar to any other build deps we have. I don't think we
want to start a precedent of duplicating versions in this doc for
build deps we have, and there's nothing particularly special about
compilers in this respect.

With regards,
Daniel
Marc-André Lureau April 20, 2022, 2:32 p.m. UTC | #2
Hi

On Wed, Apr 20, 2022 at 6:10 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > According to our configure checks, this is the list of supported
> > compilers.
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > ---
> >  docs/about/build-platforms.rst | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > index c29a4b8fe649..1980c5d2476f 100644
> > --- a/docs/about/build-platforms.rst
> > +++ b/docs/about/build-platforms.rst
> > @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> >  The version of the Windows API that's currently targeted is Vista / Server
> >  2008.
> >
> > +Supported compilers
> > +-------------------
> > +
> > +To compile, QEMU requires either:
> > +
> > +- GCC >= 7.4.0
> > +- Clang >= 6.0
> > +- XCode Clang >= 10.0
>
> Do we need to spell out the versions explicitly ? These versions are
> all derived from what's available in the repos of the supported build
> platforms, similar to any other build deps we have. I don't think we
> want to start a precedent of duplicating versions in this doc for
> build deps we have, and there's nothing particularly special about
> compilers in this respect.

We have checks in configure for those, I wanted a more human-readable
and readily available version.

The set of supported platforms is not rigid, so imho it helps to
document the basic build requirements.

If/when we introduce Rust and/or C++ etc, I would also expect an
explicit doc section about it.

> 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 :|
>
Thomas Huth April 20, 2022, 2:36 p.m. UTC | #3
On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> According to our configure checks, this is the list of supported
>> compilers.
>>
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
>> ---
>>   docs/about/build-platforms.rst | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
>> index c29a4b8fe649..1980c5d2476f 100644
>> --- a/docs/about/build-platforms.rst
>> +++ b/docs/about/build-platforms.rst
>> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
>>   The version of the Windows API that's currently targeted is Vista / Server
>>   2008.
>>   
>> +Supported compilers
>> +-------------------
>> +
>> +To compile, QEMU requires either:
>> +
>> +- GCC >= 7.4.0
>> +- Clang >= 6.0
>> +- XCode Clang >= 10.0
> 
> Do we need to spell out the versions explicitly ? These versions are
> all derived from what's available in the repos of the supported build
> platforms, similar to any other build deps we have. I don't think we
> want to start a precedent of duplicating versions in this doc for
> build deps we have, and there's nothing particularly special about
> compilers in this respect.

I agree with Daniel - when I saw this patch, the first thought that I had 
was: "This will be getting out of sync quickly" ...
so I'd also recommend to rather not add this here.

  Thomas
Marc-André Lureau April 20, 2022, 2:46 p.m. UTC | #4
Hi

On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
>
> On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>
> >> According to our configure checks, this is the list of supported
> >> compilers.
> >>
> >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> >> ---
> >>   docs/about/build-platforms.rst | 10 ++++++++++
> >>   1 file changed, 10 insertions(+)
> >>
> >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> >> index c29a4b8fe649..1980c5d2476f 100644
> >> --- a/docs/about/build-platforms.rst
> >> +++ b/docs/about/build-platforms.rst
> >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> >>   The version of the Windows API that's currently targeted is Vista / Server
> >>   2008.
> >>
> >> +Supported compilers
> >> +-------------------
> >> +
> >> +To compile, QEMU requires either:
> >> +
> >> +- GCC >= 7.4.0
> >> +- Clang >= 6.0
> >> +- XCode Clang >= 10.0
> >
> > Do we need to spell out the versions explicitly ? These versions are
> > all derived from what's available in the repos of the supported build
> > platforms, similar to any other build deps we have. I don't think we
> > want to start a precedent of duplicating versions in this doc for
> > build deps we have, and there's nothing particularly special about
> > compilers in this respect.
>
> I agree with Daniel - when I saw this patch, the first thought that I had
> was: "This will be getting out of sync quickly" ...

I don't have the impression we bump our compiler requirement regularly
or lightly.

> so I'd also recommend to rather not add this here.

Outdated documentation is still better than no documentation. YMMV.
Marc-André Lureau April 20, 2022, 2:50 p.m. UTC | #5
Hi

On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
>
> Hi
>
> On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> >
> > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > >>
> > >> According to our configure checks, this is the list of supported
> > >> compilers.
> > >>
> > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > >> ---
> > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > >>   1 file changed, 10 insertions(+)
> > >>
> > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > >> index c29a4b8fe649..1980c5d2476f 100644
> > >> --- a/docs/about/build-platforms.rst
> > >> +++ b/docs/about/build-platforms.rst
> > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > >>   The version of the Windows API that's currently targeted is Vista / Server
> > >>   2008.
> > >>
> > >> +Supported compilers
> > >> +-------------------
> > >> +
> > >> +To compile, QEMU requires either:
> > >> +
> > >> +- GCC >= 7.4.0
> > >> +- Clang >= 6.0
> > >> +- XCode Clang >= 10.0
> > >
> > > Do we need to spell out the versions explicitly ? These versions are
> > > all derived from what's available in the repos of the supported build
> > > platforms, similar to any other build deps we have. I don't think we
> > > want to start a precedent of duplicating versions in this doc for
> > > build deps we have, and there's nothing particularly special about
> > > compilers in this respect.
> >
> > I agree with Daniel - when I saw this patch, the first thought that I had
> > was: "This will be getting out of sync quickly" ...
>
> I don't have the impression we bump our compiler requirement regularly
> or lightly.
>
> > so I'd also recommend to rather not add this here.
>
> Outdated documentation is still better than no documentation. YMMV.

Another question that is difficult to answer without being familiar
with QEMU details is whether it can compile with MSVC. This
documentation would, since it is explicit about the requirement.

It is not excluded that subprojects can compile with MSVC in a near
future for example.
Thomas Huth April 20, 2022, 2:53 p.m. UTC | #6
On 20/04/2022 16.46, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
>>
>> On 20/04/2022 16.10, Daniel P. Berrangé wrote:
>>> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
>>>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>>
>>>> According to our configure checks, this is the list of supported
>>>> compilers.
>>>>
>>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
>>>> ---
>>>>    docs/about/build-platforms.rst | 10 ++++++++++
>>>>    1 file changed, 10 insertions(+)
>>>>
>>>> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
>>>> index c29a4b8fe649..1980c5d2476f 100644
>>>> --- a/docs/about/build-platforms.rst
>>>> +++ b/docs/about/build-platforms.rst
>>>> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
>>>>    The version of the Windows API that's currently targeted is Vista / Server
>>>>    2008.
>>>>
>>>> +Supported compilers
>>>> +-------------------
>>>> +
>>>> +To compile, QEMU requires either:
>>>> +
>>>> +- GCC >= 7.4.0
>>>> +- Clang >= 6.0
>>>> +- XCode Clang >= 10.0
>>>
>>> Do we need to spell out the versions explicitly ? These versions are
>>> all derived from what's available in the repos of the supported build
>>> platforms, similar to any other build deps we have. I don't think we
>>> want to start a precedent of duplicating versions in this doc for
>>> build deps we have, and there's nothing particularly special about
>>> compilers in this respect.
>>
>> I agree with Daniel - when I saw this patch, the first thought that I had
>> was: "This will be getting out of sync quickly" ...
> 
> I don't have the impression we bump our compiler requirement regularly
> or lightly.

"quickly" in the sense of that it will be out of sync once somebody bumps 
the version check in the "configure" script - since I doubt that it will be 
remembered to update this document here as well.

>> so I'd also recommend to rather not add this here.
> 
> Outdated documentation is still better than no documentation. YMMV.

Well, no. In this case, it might rather create wrong expectations for the 
users if they read that their compiler is still supported, but the configure 
script refuses it.

Anyway, if you feel like we need more information for the users about 
supported systems and compiler versions, feel free to update this page here 
instead, it has also fallen behind already quite a bit:

  https://wiki.qemu.org/Supported_Build_Platforms

  Thomas
Marc-André Lureau April 20, 2022, 2:57 p.m. UTC | #7
Hi

On Wed, Apr 20, 2022 at 6:53 PM Thomas Huth <thuth@redhat.com> wrote:
>
> On 20/04/2022 16.46, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> >>
> >> On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> >>> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> >>>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>>>
> >>>> According to our configure checks, this is the list of supported
> >>>> compilers.
> >>>>
> >>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>>> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> >>>> ---
> >>>>    docs/about/build-platforms.rst | 10 ++++++++++
> >>>>    1 file changed, 10 insertions(+)
> >>>>
> >>>> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> >>>> index c29a4b8fe649..1980c5d2476f 100644
> >>>> --- a/docs/about/build-platforms.rst
> >>>> +++ b/docs/about/build-platforms.rst
> >>>> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> >>>>    The version of the Windows API that's currently targeted is Vista / Server
> >>>>    2008.
> >>>>
> >>>> +Supported compilers
> >>>> +-------------------
> >>>> +
> >>>> +To compile, QEMU requires either:
> >>>> +
> >>>> +- GCC >= 7.4.0
> >>>> +- Clang >= 6.0
> >>>> +- XCode Clang >= 10.0
> >>>
> >>> Do we need to spell out the versions explicitly ? These versions are
> >>> all derived from what's available in the repos of the supported build
> >>> platforms, similar to any other build deps we have. I don't think we
> >>> want to start a precedent of duplicating versions in this doc for
> >>> build deps we have, and there's nothing particularly special about
> >>> compilers in this respect.
> >>
> >> I agree with Daniel - when I saw this patch, the first thought that I had
> >> was: "This will be getting out of sync quickly" ...
> >
> > I don't have the impression we bump our compiler requirement regularly
> > or lightly.
>
> "quickly" in the sense of that it will be out of sync once somebody bumps
> the version check in the "configure" script - since I doubt that it will be
> remembered to update this document here as well.
>
> >> so I'd also recommend to rather not add this here.
> >
> > Outdated documentation is still better than no documentation. YMMV.
>
> Well, no. In this case, it might rather create wrong expectations for the
> users if they read that their compiler is still supported, but the configure
> script refuses it.
>
> Anyway, if you feel like we need more information for the users about
> supported systems and compiler versions, feel free to update this page here
> instead, it has also fallen behind already quite a bit:
>
>   https://wiki.qemu.org/Supported_Build_Platforms

Unfortunately, that page is not helpful to answer the question which
compiler is required. And given it's construction, it is by nature
always obsolete :)

Furthermore, nowadays, we should have reference documentation in the
repo, not on the wiki.
Daniel P. Berrangé April 20, 2022, 3:24 p.m. UTC | #8
On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> <marcandre.lureau@redhat.com> wrote:
> >
> > Hi
> >
> > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> > >
> > > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > >>
> > > >> According to our configure checks, this is the list of supported
> > > >> compilers.
> > > >>
> > > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > > >> ---
> > > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > > >>   1 file changed, 10 insertions(+)
> > > >>
> > > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > > >> index c29a4b8fe649..1980c5d2476f 100644
> > > >> --- a/docs/about/build-platforms.rst
> > > >> +++ b/docs/about/build-platforms.rst
> > > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > > >>   The version of the Windows API that's currently targeted is Vista / Server
> > > >>   2008.
> > > >>
> > > >> +Supported compilers
> > > >> +-------------------
> > > >> +
> > > >> +To compile, QEMU requires either:
> > > >> +
> > > >> +- GCC >= 7.4.0
> > > >> +- Clang >= 6.0
> > > >> +- XCode Clang >= 10.0
> > > >
> > > > Do we need to spell out the versions explicitly ? These versions are
> > > > all derived from what's available in the repos of the supported build
> > > > platforms, similar to any other build deps we have. I don't think we
> > > > want to start a precedent of duplicating versions in this doc for
> > > > build deps we have, and there's nothing particularly special about
> > > > compilers in this respect.
> > >
> > > I agree with Daniel - when I saw this patch, the first thought that I had
> > > was: "This will be getting out of sync quickly" ...
> >
> > I don't have the impression we bump our compiler requirement regularly
> > or lightly.
> >
> > > so I'd also recommend to rather not add this here.
> >
> > Outdated documentation is still better than no documentation. YMMV.
> 
> Another question that is difficult to answer without being familiar
> with QEMU details is whether it can compile with MSVC. This
> documentation would, since it is explicit about the requirement.

Documenting that we mandate GCC or Clang is reasonable. Ideally we could
have a list of all 3rd party deps we have in fact, I'm just not a fan of
copying the version numbers across from configure/meson.

With regards,
Daniel
Marc-André Lureau April 20, 2022, 3:32 p.m. UTC | #9
Hi

On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> > <marcandre.lureau@redhat.com> wrote:
> > >
> > > Hi
> > >
> > > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> > > >
> > > > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > > > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > >>
> > > > >> According to our configure checks, this is the list of supported
> > > > >> compilers.
> > > > >>
> > > > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > > > >> ---
> > > > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > > > >>   1 file changed, 10 insertions(+)
> > > > >>
> > > > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > > > >> index c29a4b8fe649..1980c5d2476f 100644
> > > > >> --- a/docs/about/build-platforms.rst
> > > > >> +++ b/docs/about/build-platforms.rst
> > > > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > > > >>   The version of the Windows API that's currently targeted is Vista / Server
> > > > >>   2008.
> > > > >>
> > > > >> +Supported compilers
> > > > >> +-------------------
> > > > >> +
> > > > >> +To compile, QEMU requires either:
> > > > >> +
> > > > >> +- GCC >= 7.4.0
> > > > >> +- Clang >= 6.0
> > > > >> +- XCode Clang >= 10.0
> > > > >
> > > > > Do we need to spell out the versions explicitly ? These versions are
> > > > > all derived from what's available in the repos of the supported build
> > > > > platforms, similar to any other build deps we have. I don't think we
> > > > > want to start a precedent of duplicating versions in this doc for
> > > > > build deps we have, and there's nothing particularly special about
> > > > > compilers in this respect.
> > > >
> > > > I agree with Daniel - when I saw this patch, the first thought that I had
> > > > was: "This will be getting out of sync quickly" ...
> > >
> > > I don't have the impression we bump our compiler requirement regularly
> > > or lightly.
> > >
> > > > so I'd also recommend to rather not add this here.
> > >
> > > Outdated documentation is still better than no documentation. YMMV.
> >
> > Another question that is difficult to answer without being familiar
> > with QEMU details is whether it can compile with MSVC. This
> > documentation would, since it is explicit about the requirement.
>
> Documenting that we mandate GCC or Clang is reasonable. Ideally we could
> have a list of all 3rd party deps we have in fact, I'm just not a fan of
> copying the version numbers across from configure/meson.
>

I agree, duplicating the version information is not optimal... Yet it
is better than not having it, or having to read or run configure imho.

Sorry (or not) to insist, but it would help having an explicit list of
supported compilers in the human doc (because configure/meson doesn't
rule others out, afaik, nor it really can or should)

> 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 :|
>
Daniel P. Berrangé April 20, 2022, 3:55 p.m. UTC | #10
On Wed, Apr 20, 2022 at 07:32:38PM +0400, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> > > Hi
> > >
> > > On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> > > <marcandre.lureau@redhat.com> wrote:
> > > >
> > > > Hi
> > > >
> > > > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> > > > >
> > > > > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > > > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > > > > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > >>
> > > > > >> According to our configure checks, this is the list of supported
> > > > > >> compilers.
> > > > > >>
> > > > > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > > > > >> ---
> > > > > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > > > > >>   1 file changed, 10 insertions(+)
> > > > > >>
> > > > > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > > > > >> index c29a4b8fe649..1980c5d2476f 100644
> > > > > >> --- a/docs/about/build-platforms.rst
> > > > > >> +++ b/docs/about/build-platforms.rst
> > > > > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > > > > >>   The version of the Windows API that's currently targeted is Vista / Server
> > > > > >>   2008.
> > > > > >>
> > > > > >> +Supported compilers
> > > > > >> +-------------------
> > > > > >> +
> > > > > >> +To compile, QEMU requires either:
> > > > > >> +
> > > > > >> +- GCC >= 7.4.0
> > > > > >> +- Clang >= 6.0
> > > > > >> +- XCode Clang >= 10.0
> > > > > >
> > > > > > Do we need to spell out the versions explicitly ? These versions are
> > > > > > all derived from what's available in the repos of the supported build
> > > > > > platforms, similar to any other build deps we have. I don't think we
> > > > > > want to start a precedent of duplicating versions in this doc for
> > > > > > build deps we have, and there's nothing particularly special about
> > > > > > compilers in this respect.
> > > > >
> > > > > I agree with Daniel - when I saw this patch, the first thought that I had
> > > > > was: "This will be getting out of sync quickly" ...
> > > >
> > > > I don't have the impression we bump our compiler requirement regularly
> > > > or lightly.
> > > >
> > > > > so I'd also recommend to rather not add this here.
> > > >
> > > > Outdated documentation is still better than no documentation. YMMV.
> > >
> > > Another question that is difficult to answer without being familiar
> > > with QEMU details is whether it can compile with MSVC. This
> > > documentation would, since it is explicit about the requirement.
> >
> > Documenting that we mandate GCC or Clang is reasonable. Ideally we could
> > have a list of all 3rd party deps we have in fact, I'm just not a fan of
> > copying the version numbers across from configure/meson.
> >
> 
> I agree, duplicating the version information is not optimal... Yet it
> is better than not having it, or having to read or run configure imho.
> 
> Sorry (or not) to insist, but it would help having an explicit list of
> supported compilers in the human doc (because configure/meson doesn't
> rule others out, afaik, nor it really can or should)

Perhaps I'm misunderstanding what you mean, but configure certainly
does rules out other compilers, giving a clear message:

if ! compile_prog "" "" ; then
    error_exit "You need at least GCC v7.4 or Clang v6.0 (or XCode Clang v10.0)"
fi

With regards,
Daniel
Thomas Huth April 20, 2022, 4:11 p.m. UTC | #11
On 20/04/2022 17.32, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>>
>> On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
>>> Hi
>>>
>>> On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
>>> <marcandre.lureau@redhat.com> wrote:
>>>>
>>>> Hi
>>>>
>>>> On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
>>>>>
>>>>> On 20/04/2022 16.10, Daniel P. Berrangé wrote:
>>>>>> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
>>>>>>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>>>>>
>>>>>>> According to our configure checks, this is the list of supported
>>>>>>> compilers.
>>>>>>>
>>>>>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>>>>> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
>>>>>>> ---
>>>>>>>    docs/about/build-platforms.rst | 10 ++++++++++
>>>>>>>    1 file changed, 10 insertions(+)
>>>>>>>
>>>>>>> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
>>>>>>> index c29a4b8fe649..1980c5d2476f 100644
>>>>>>> --- a/docs/about/build-platforms.rst
>>>>>>> +++ b/docs/about/build-platforms.rst
>>>>>>> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
>>>>>>>    The version of the Windows API that's currently targeted is Vista / Server
>>>>>>>    2008.
>>>>>>>
>>>>>>> +Supported compilers
>>>>>>> +-------------------
>>>>>>> +
>>>>>>> +To compile, QEMU requires either:
>>>>>>> +
>>>>>>> +- GCC >= 7.4.0
>>>>>>> +- Clang >= 6.0
>>>>>>> +- XCode Clang >= 10.0
>>>>>>
>>>>>> Do we need to spell out the versions explicitly ? These versions are
>>>>>> all derived from what's available in the repos of the supported build
>>>>>> platforms, similar to any other build deps we have. I don't think we
>>>>>> want to start a precedent of duplicating versions in this doc for
>>>>>> build deps we have, and there's nothing particularly special about
>>>>>> compilers in this respect.
>>>>>
>>>>> I agree with Daniel - when I saw this patch, the first thought that I had
>>>>> was: "This will be getting out of sync quickly" ...
>>>>
>>>> I don't have the impression we bump our compiler requirement regularly
>>>> or lightly.
>>>>
>>>>> so I'd also recommend to rather not add this here.
>>>>
>>>> Outdated documentation is still better than no documentation. YMMV.
>>>
>>> Another question that is difficult to answer without being familiar
>>> with QEMU details is whether it can compile with MSVC. This
>>> documentation would, since it is explicit about the requirement.
>>
>> Documenting that we mandate GCC or Clang is reasonable. Ideally we could
>> have a list of all 3rd party deps we have in fact, I'm just not a fan of
>> copying the version numbers across from configure/meson.
>>
> 
> I agree, duplicating the version information is not optimal... Yet it
> is better than not having it, or having to read or run configure imho.

Well, no, it's better to have it in the configure script. Every user who 
wants to compile QEMU will run the configure script, but not necessarily 
read the documentation first.

> Sorry (or not) to insist, but it would help having an explicit list of
> supported compilers in the human doc

... and what about necessary libraries ... if you start with the compilers 
here, shouldn't we also list the necessary versions of glib, libfdt, pixman, 
etc. here? ... No, IMHO this really does not scale, you could maybe mention 
that GCC or Clang is necessary, and maybe that you need at least glib to 
compile QEMU, but listing the versions there is just duplicated information 
that will be ugly to maintain, without too much real benefit for the users 
(they already know whether their distro is supported or not), and way too 
much hassle for the developers.

  Thomas
Marc-André Lureau April 20, 2022, 4:47 p.m. UTC | #12
Hi

On Wed, Apr 20, 2022 at 7:55 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Wed, Apr 20, 2022 at 07:32:38PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> > > > Hi
> > > >
> > > > On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> > > > <marcandre.lureau@redhat.com> wrote:
> > > > >
> > > > > Hi
> > > > >
> > > > > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> > > > > >
> > > > > > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > > > > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > > > > > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > > >>
> > > > > > >> According to our configure checks, this is the list of supported
> > > > > > >> compilers.
> > > > > > >>
> > > > > > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > > > > > >> ---
> > > > > > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > > > > > >>   1 file changed, 10 insertions(+)
> > > > > > >>
> > > > > > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > > > > > >> index c29a4b8fe649..1980c5d2476f 100644
> > > > > > >> --- a/docs/about/build-platforms.rst
> > > > > > >> +++ b/docs/about/build-platforms.rst
> > > > > > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > > > > > >>   The version of the Windows API that's currently targeted is Vista / Server
> > > > > > >>   2008.
> > > > > > >>
> > > > > > >> +Supported compilers
> > > > > > >> +-------------------
> > > > > > >> +
> > > > > > >> +To compile, QEMU requires either:
> > > > > > >> +
> > > > > > >> +- GCC >= 7.4.0
> > > > > > >> +- Clang >= 6.0
> > > > > > >> +- XCode Clang >= 10.0
> > > > > > >
> > > > > > > Do we need to spell out the versions explicitly ? These versions are
> > > > > > > all derived from what's available in the repos of the supported build
> > > > > > > platforms, similar to any other build deps we have. I don't think we
> > > > > > > want to start a precedent of duplicating versions in this doc for
> > > > > > > build deps we have, and there's nothing particularly special about
> > > > > > > compilers in this respect.
> > > > > >
> > > > > > I agree with Daniel - when I saw this patch, the first thought that I had
> > > > > > was: "This will be getting out of sync quickly" ...
> > > > >
> > > > > I don't have the impression we bump our compiler requirement regularly
> > > > > or lightly.
> > > > >
> > > > > > so I'd also recommend to rather not add this here.
> > > > >
> > > > > Outdated documentation is still better than no documentation. YMMV.
> > > >
> > > > Another question that is difficult to answer without being familiar
> > > > with QEMU details is whether it can compile with MSVC. This
> > > > documentation would, since it is explicit about the requirement.
> > >
> > > Documenting that we mandate GCC or Clang is reasonable. Ideally we could
> > > have a list of all 3rd party deps we have in fact, I'm just not a fan of
> > > copying the version numbers across from configure/meson.
> > >
> >
> > I agree, duplicating the version information is not optimal... Yet it
> > is better than not having it, or having to read or run configure imho.
> >
> > Sorry (or not) to insist, but it would help having an explicit list of
> > supported compilers in the human doc (because configure/meson doesn't
> > rule others out, afaik, nor it really can or should)
>
> Perhaps I'm misunderstanding what you mean, but configure certainly
> does rules out other compilers, giving a clear message:
>
> if ! compile_prog "" "" ; then
>     error_exit "You need at least GCC v7.4 or Clang v6.0 (or XCode Clang v10.0)"
> fi
>

How can this test fail with other compilers?

> 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 :|
>
Marc-André Lureau April 20, 2022, 4:52 p.m. UTC | #13
Hi

On Wed, Apr 20, 2022 at 8:11 PM Thomas Huth <thuth@redhat.com> wrote:
>
> On 20/04/2022 17.32, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >>
> >> On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> >>> Hi
> >>>
> >>> On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> >>> <marcandre.lureau@redhat.com> wrote:
> >>>>
> >>>> Hi
> >>>>
> >>>> On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> >>>>>
> >>>>> On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> >>>>>> On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> >>>>>>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>>>>>>
> >>>>>>> According to our configure checks, this is the list of supported
> >>>>>>> compilers.
> >>>>>>>
> >>>>>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>>>>>> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> >>>>>>> ---
> >>>>>>>    docs/about/build-platforms.rst | 10 ++++++++++
> >>>>>>>    1 file changed, 10 insertions(+)
> >>>>>>>
> >>>>>>> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> >>>>>>> index c29a4b8fe649..1980c5d2476f 100644
> >>>>>>> --- a/docs/about/build-platforms.rst
> >>>>>>> +++ b/docs/about/build-platforms.rst
> >>>>>>> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> >>>>>>>    The version of the Windows API that's currently targeted is Vista / Server
> >>>>>>>    2008.
> >>>>>>>
> >>>>>>> +Supported compilers
> >>>>>>> +-------------------
> >>>>>>> +
> >>>>>>> +To compile, QEMU requires either:
> >>>>>>> +
> >>>>>>> +- GCC >= 7.4.0
> >>>>>>> +- Clang >= 6.0
> >>>>>>> +- XCode Clang >= 10.0
> >>>>>>
> >>>>>> Do we need to spell out the versions explicitly ? These versions are
> >>>>>> all derived from what's available in the repos of the supported build
> >>>>>> platforms, similar to any other build deps we have. I don't think we
> >>>>>> want to start a precedent of duplicating versions in this doc for
> >>>>>> build deps we have, and there's nothing particularly special about
> >>>>>> compilers in this respect.
> >>>>>
> >>>>> I agree with Daniel - when I saw this patch, the first thought that I had
> >>>>> was: "This will be getting out of sync quickly" ...
> >>>>
> >>>> I don't have the impression we bump our compiler requirement regularly
> >>>> or lightly.
> >>>>
> >>>>> so I'd also recommend to rather not add this here.
> >>>>
> >>>> Outdated documentation is still better than no documentation. YMMV.
> >>>
> >>> Another question that is difficult to answer without being familiar
> >>> with QEMU details is whether it can compile with MSVC. This
> >>> documentation would, since it is explicit about the requirement.
> >>
> >> Documenting that we mandate GCC or Clang is reasonable. Ideally we could
> >> have a list of all 3rd party deps we have in fact, I'm just not a fan of
> >> copying the version numbers across from configure/meson.
> >>
> >
> > I agree, duplicating the version information is not optimal... Yet it
> > is better than not having it, or having to read or run configure imho.
>
> Well, no, it's better to have it in the configure script. Every user who
> wants to compile QEMU will run the configure script, but not necessarily
> read the documentation first.

Iirc, I came up with this question because I was modifying some header
(something in compiler.h or atomic.h). My initial reaction was not to
run configure. It would not help answer the question...

>
> > Sorry (or not) to insist, but it would help having an explicit list of
> > supported compilers in the human doc
>
> ... and what about necessary libraries ... if you start with the compilers
> here, shouldn't we also list the necessary versions of glib, libfdt, pixman,
> etc. here? ... No, IMHO this really does not scale, you could maybe mention
> that GCC or Clang is necessary, and maybe that you need at least glib to
> compile QEMU, but listing the versions there is just duplicated information
> that will be ugly to maintain, without too much real benefit for the users
> (they already know whether their distro is supported or not), and way too
> much hassle for the developers.
>

The compilers are (mostly) interchangeable, it's not the case for the
dependencies. But it would be nice to document our strict requirements
imho.
Daniel P. Berrangé April 20, 2022, 6:53 p.m. UTC | #14
On Wed, Apr 20, 2022 at 08:47:25PM +0400, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Apr 20, 2022 at 7:55 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Wed, Apr 20, 2022 at 07:32:38PM +0400, Marc-André Lureau wrote:
> > > Hi
> > >
> > > On Wed, Apr 20, 2022 at 7:24 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> > > >
> > > > On Wed, Apr 20, 2022 at 06:50:12PM +0400, Marc-André Lureau wrote:
> > > > > Hi
> > > > >
> > > > > On Wed, Apr 20, 2022 at 6:46 PM Marc-André Lureau
> > > > > <marcandre.lureau@redhat.com> wrote:
> > > > > >
> > > > > > Hi
> > > > > >
> > > > > > On Wed, Apr 20, 2022 at 6:37 PM Thomas Huth <thuth@redhat.com> wrote:
> > > > > > >
> > > > > > > On 20/04/2022 16.10, Daniel P. Berrangé wrote:
> > > > > > > > On Wed, Apr 20, 2022 at 05:26:00PM +0400, marcandre.lureau@redhat.com wrote:
> > > > > > > >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > > > >>
> > > > > > > >> According to our configure checks, this is the list of supported
> > > > > > > >> compilers.
> > > > > > > >>
> > > > > > > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > > > > >> Reviewed-by: Damien Hedde <damien.hedde@greensocs.com>
> > > > > > > >> ---
> > > > > > > >>   docs/about/build-platforms.rst | 10 ++++++++++
> > > > > > > >>   1 file changed, 10 insertions(+)
> > > > > > > >>
> > > > > > > >> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> > > > > > > >> index c29a4b8fe649..1980c5d2476f 100644
> > > > > > > >> --- a/docs/about/build-platforms.rst
> > > > > > > >> +++ b/docs/about/build-platforms.rst
> > > > > > > >> @@ -92,6 +92,16 @@ hosted on Linux (Debian/Fedora).
> > > > > > > >>   The version of the Windows API that's currently targeted is Vista / Server
> > > > > > > >>   2008.
> > > > > > > >>
> > > > > > > >> +Supported compilers
> > > > > > > >> +-------------------
> > > > > > > >> +
> > > > > > > >> +To compile, QEMU requires either:
> > > > > > > >> +
> > > > > > > >> +- GCC >= 7.4.0
> > > > > > > >> +- Clang >= 6.0
> > > > > > > >> +- XCode Clang >= 10.0
> > > > > > > >
> > > > > > > > Do we need to spell out the versions explicitly ? These versions are
> > > > > > > > all derived from what's available in the repos of the supported build
> > > > > > > > platforms, similar to any other build deps we have. I don't think we
> > > > > > > > want to start a precedent of duplicating versions in this doc for
> > > > > > > > build deps we have, and there's nothing particularly special about
> > > > > > > > compilers in this respect.
> > > > > > >
> > > > > > > I agree with Daniel - when I saw this patch, the first thought that I had
> > > > > > > was: "This will be getting out of sync quickly" ...
> > > > > >
> > > > > > I don't have the impression we bump our compiler requirement regularly
> > > > > > or lightly.
> > > > > >
> > > > > > > so I'd also recommend to rather not add this here.
> > > > > >
> > > > > > Outdated documentation is still better than no documentation. YMMV.
> > > > >
> > > > > Another question that is difficult to answer without being familiar
> > > > > with QEMU details is whether it can compile with MSVC. This
> > > > > documentation would, since it is explicit about the requirement.
> > > >
> > > > Documenting that we mandate GCC or Clang is reasonable. Ideally we could
> > > > have a list of all 3rd party deps we have in fact, I'm just not a fan of
> > > > copying the version numbers across from configure/meson.
> > > >
> > >
> > > I agree, duplicating the version information is not optimal... Yet it
> > > is better than not having it, or having to read or run configure imho.
> > >
> > > Sorry (or not) to insist, but it would help having an explicit list of
> > > supported compilers in the human doc (because configure/meson doesn't
> > > rule others out, afaik, nor it really can or should)
> >
> > Perhaps I'm misunderstanding what you mean, but configure certainly
> > does rules out other compilers, giving a clear message:
> >
> > if ! compile_prog "" "" ; then
> >     error_exit "You need at least GCC v7.4 or Clang v6.0 (or XCode Clang v10.0)"
> > fi
> >
> 
> How can this test fail with other compilers?

This is just the error reporting, look at the code above it for the
full compiler check....

With regards,
Daniel
diff mbox series

Patch

diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index c29a4b8fe649..1980c5d2476f 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -92,6 +92,16 @@  hosted on Linux (Debian/Fedora).
 The version of the Windows API that's currently targeted is Vista / Server
 2008.
 
+Supported compilers
+-------------------
+
+To compile, QEMU requires either:
+
+- GCC >= 7.4.0
+- Clang >= 6.0
+- XCode Clang >= 10.0
+
+
 .. _HomeBrew: https://brew.sh/
 .. _MacPorts: https://www.macports.org/
 .. _Repology: https://repology.org/