diff mbox series

[02/10] meson: update unsupported host/CPU messages

Message ID 20230829082931.67601-3-pbonzini@redhat.com
State New
Headers show
Series configure cleanups for QEMU 8.2 | expand

Commit Message

Paolo Bonzini Aug. 29, 2023, 8:29 a.m. UTC
Unsupported CPU and OSes are not really going away, but the
project simply does not guarantee that they work.  Rephrase
the messages accordingly.  While at it, move the warning for
TCI performance at the end where it is more visible.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

Comments

Daniel P. Berrangé Aug. 29, 2023, 10:34 a.m. UTC | #1
On Tue, Aug 29, 2023 at 10:29:23AM +0200, Paolo Bonzini wrote:
> Unsupported CPU and OSes are not really going away, but the
> project simply does not guarantee that they work.  Rephrase
> the messages accordingly.  While at it, move the warning for
> TCI performance at the end where it is more visible.

I think I agree wrt to CPUs, but in the case of OS I think
it is fairly accurate as-is.

When we bump the minimum version of libraries we will not
pay attention to unsupported OS, so it is entirely possible
to bump to a version that means the ability to run on an
OS goes away entirely (unless the user is willing to rebuild
packages at newer versions).

When writing #ifdefs for portability we also may explicitly
delete #ifdefs from unsupported OS platforms  if we consider
them obsolete enough. So again I think the ability to use an
unsupported OS may indeed goaway entirely.

> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  meson.build | 38 +++++++++++++++++++++-----------------
>  1 file changed, 21 insertions(+), 17 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 98e68ef0b1e..02b035a3808 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -678,9 +678,7 @@ endif
>  tcg_arch = host_arch
>  if get_option('tcg').allowed()
>    if host_arch == 'unknown'
> -    if get_option('tcg_interpreter')
> -      warning('Unsupported CPU @0@, will use TCG with TCI (slow)'.format(cpu))
> -    else
> +    if not get_option('tcg_interpreter')
>        error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
>      endif
>    elif get_option('tcg_interpreter')
> @@ -4317,28 +4315,34 @@ summary_info += {'selinux':           selinux}
>  summary_info += {'libdw':             libdw}
>  summary(summary_info, bool_yn: true, section: 'Dependencies')
>  
> -if not supported_cpus.contains(cpu)
> +if host_arch == 'unknown'
>    message()
> -  warning('SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!')
> +  warning('UNSUPPORTED HOST CPU')
>    message()
> -  message('CPU host architecture ' + cpu + ' support is not currently maintained.')
> -  message('The QEMU project intends to remove support for this host CPU in')
> -  message('a future release if nobody volunteers to maintain it and to')
> -  message('provide a build host for our continuous integration setup.')
> -  message('configure has succeeded and you can continue to build, but')
> -  message('if you care about QEMU on this platform you should contact')
> -  message('us upstream at qemu-devel@nongnu.org.')
> +  message('Support for CPU host architecture ' + cpu + ' is not currently')
> +  message('maintained. The QEMU project does not guarantee that QEMU will')
> +  message('compile or work on this host CPU. You can help by volunteering')
> +  message('to maintain it and providing a build host for our continuous.')
> +  message('integration setup.')
>  endif
>  
>  if not supported_oses.contains(targetos)
>    message()
> -  warning('WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!')
> +  warning('UNSUPPORTED HOST OS')
> +  message()
> +  message('Support for host OS ' + targetos + 'is not currently maintained.')
> +  message('The QEMU project does not guarantee that QEMU will compile or')
> +  message('work on this operating system. You can help by volunteering')
> +  message('to maintain it and providing a build host for our continuous.')
> +  message('integration setup.')
> +endif
> +
> +if host_arch == 'unknown' or not supported_oses.contains(targetos)
>    message()
> -  message('Host OS ' + targetos + 'support is not currently maintained.')
> -  message('The QEMU project intends to remove support for this host OS in')
> -  message('a future release if nobody volunteers to maintain it and to')
> -  message('provide a build host for our continuous integration setup.')
>    message('configure has succeeded and you can continue to build, but')
> +  if host_arch == 'unknown' and get_option('tcg').allowed() and target_dirs.length() > 0
> +    message('QEMU will use a slow interpreter to emulate the target CPU;')
> +  endif
>    message('if you care about QEMU on this platform you should contact')
>    message('us upstream at qemu-devel@nongnu.org.')
>  endif
> -- 
> 2.41.0
> 
> 

With regards,
Daniel
Paolo Bonzini Aug. 31, 2023, 8:20 a.m. UTC | #2
On Tue, Aug 29, 2023 at 12:34 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> I think I agree wrt to CPUs, but in the case of OS I think
> it is fairly accurate as-is.

Ok, I wanted to leave out the "*intends* to remove support" part,
which is too strong; but I agree that keeping some kind of "support
may go away in future releases unless you act" is a good idea.

Paolo
Daniel P. Berrangé Aug. 31, 2023, 8:51 a.m. UTC | #3
On Thu, Aug 31, 2023 at 10:20:26AM +0200, Paolo Bonzini wrote:
> On Tue, Aug 29, 2023 at 12:34 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> > I think I agree wrt to CPUs, but in the case of OS I think
> > it is fairly accurate as-is.
> 
> Ok, I wanted to leave out the "*intends* to remove support" part,
> which is too strong; but I agree that keeping some kind of "support
> may go away in future releases unless you act" is a good idea.

Yeah, making the language a little more fuzzy would be ok.

With regards,
Daniel
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 98e68ef0b1e..02b035a3808 100644
--- a/meson.build
+++ b/meson.build
@@ -678,9 +678,7 @@  endif
 tcg_arch = host_arch
 if get_option('tcg').allowed()
   if host_arch == 'unknown'
-    if get_option('tcg_interpreter')
-      warning('Unsupported CPU @0@, will use TCG with TCI (slow)'.format(cpu))
-    else
+    if not get_option('tcg_interpreter')
       error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
     endif
   elif get_option('tcg_interpreter')
@@ -4317,28 +4315,34 @@  summary_info += {'selinux':           selinux}
 summary_info += {'libdw':             libdw}
 summary(summary_info, bool_yn: true, section: 'Dependencies')
 
-if not supported_cpus.contains(cpu)
+if host_arch == 'unknown'
   message()
-  warning('SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!')
+  warning('UNSUPPORTED HOST CPU')
   message()
-  message('CPU host architecture ' + cpu + ' support is not currently maintained.')
-  message('The QEMU project intends to remove support for this host CPU in')
-  message('a future release if nobody volunteers to maintain it and to')
-  message('provide a build host for our continuous integration setup.')
-  message('configure has succeeded and you can continue to build, but')
-  message('if you care about QEMU on this platform you should contact')
-  message('us upstream at qemu-devel@nongnu.org.')
+  message('Support for CPU host architecture ' + cpu + ' is not currently')
+  message('maintained. The QEMU project does not guarantee that QEMU will')
+  message('compile or work on this host CPU. You can help by volunteering')
+  message('to maintain it and providing a build host for our continuous.')
+  message('integration setup.')
 endif
 
 if not supported_oses.contains(targetos)
   message()
-  warning('WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!')
+  warning('UNSUPPORTED HOST OS')
+  message()
+  message('Support for host OS ' + targetos + 'is not currently maintained.')
+  message('The QEMU project does not guarantee that QEMU will compile or')
+  message('work on this operating system. You can help by volunteering')
+  message('to maintain it and providing a build host for our continuous.')
+  message('integration setup.')
+endif
+
+if host_arch == 'unknown' or not supported_oses.contains(targetos)
   message()
-  message('Host OS ' + targetos + 'support is not currently maintained.')
-  message('The QEMU project intends to remove support for this host OS in')
-  message('a future release if nobody volunteers to maintain it and to')
-  message('provide a build host for our continuous integration setup.')
   message('configure has succeeded and you can continue to build, but')
+  if host_arch == 'unknown' and get_option('tcg').allowed() and target_dirs.length() > 0
+    message('QEMU will use a slow interpreter to emulate the target CPU;')
+  endif
   message('if you care about QEMU on this platform you should contact')
   message('us upstream at qemu-devel@nongnu.org.')
 endif