Message ID | 20220420132624.2439741-18-marcandre.lureau@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Misc cleanups | expand |
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
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 :| >
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
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.
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.
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
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.
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
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 :| >
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
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
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 :| >
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.
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 --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/