diff mbox

[v2] configure: Warn about deprecated hosts

Message ID 1490106717-9542-1-git-send-email-peter.maydell@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Maydell March 21, 2017, 2:31 p.m. UTC
We plan to drop support in a future QEMU release for host OSes
and host architectures for which we have no test machine where
we can build and run tests. For the 2.9 release, make configure
print a warning if it is run on such a host, so that the user
has some warning of the plans and can volunteer to help us
maintain the port if they need it to continue to function.

This commit flags up as deprecated the CPU architectures:
 * ia64
 * sparc
 * anything which we don't have a TCG port for
   (and which was presumably using TCI)
and the OSes:
 * GNU/kFreeBSD
 * DragonFly BSD
 * NetBSD
 * OpenBSD
 * Solaris
 * AIX
 * Haiku

It also makes entirely unrecognized host OS strings be
rejected rather than treated as if they were Linux (which
likely never worked).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
v2: mark FreeBSD as 'supported' as I have got a
VM config going for it for build tests.
NetBSD doesn't boot inside KVM (!), and OpenBSD I have got
running but "make check" hangs where we try to run guest code.

 configure | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

Comments

Thomas Huth March 21, 2017, 5:55 p.m. UTC | #1
On 21.03.2017 15:31, Peter Maydell wrote:
> We plan to drop support in a future QEMU release for host OSes
> and host architectures for which we have no test machine where
> we can build and run tests. For the 2.9 release, make configure
> print a warning if it is run on such a host, so that the user
> has some warning of the plans and can volunteer to help us
> maintain the port if they need it to continue to function.
> 
> This commit flags up as deprecated the CPU architectures:
>  * ia64
>  * sparc
>  * anything which we don't have a TCG port for
>    (and which was presumably using TCI)
> and the OSes:
>  * GNU/kFreeBSD
>  * DragonFly BSD
>  * NetBSD
>  * OpenBSD
>  * Solaris
>  * AIX
>  * Haiku
> 
> It also makes entirely unrecognized host OS strings be
> rejected rather than treated as if they were Linux (which
> likely never worked).
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> v2: mark FreeBSD as 'supported' as I have got a
> VM config going for it for build tests.
> NetBSD doesn't boot inside KVM (!), and OpenBSD I have got
> running but "make check" hangs where we try to run guest code.
> 
>  configure | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 47 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 02e3b69..3291603 100755
> --- a/configure
> +++ b/configure
> @@ -321,6 +321,9 @@ tcmalloc="no"
>  jemalloc="no"
>  replication="yes"
>  
> +supported_cpu="no"
> +supported_os="no"
> +
>  # parse CC options first
>  for opt do
>    optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
> @@ -517,23 +520,32 @@ ARCH=
>  # Normalise host CPU name and set ARCH.
>  # Note that this case should only have supported host CPUs, not guests.
>  case "$cpu" in
> -  ia64|ppc|ppc64|s390|s390x|sparc64|x32)
> +  ppc|ppc64|s390|s390x|x32)
> +    cpu="$cpu"
> +    supported_cpu="yes"
> +  ;;
> +  ia64|sparc64)
>      cpu="$cpu"
>    ;;
>    i386|i486|i586|i686|i86pc|BePC)
>      cpu="i386"
> +    supported_cpu="yes"
>    ;;
>    x86_64|amd64)
>      cpu="x86_64"
> +    supported_cpu="yes"
>    ;;
>    armv*b|armv*l|arm)
>      cpu="arm"
> +    supported_cpu="yes"
>    ;;
>    aarch64)
>      cpu="aarch64"
> +    supported_cpu="yes"
>    ;;
>    mips*)
>      cpu="mips"
> +    supported_cpu="yes"
>    ;;
>    sparc|sun4[cdmuv])
>      cpu="sparc"
> @@ -562,6 +574,7 @@ MINGW32*)
>    else
>      audio_drv_list=""
>    fi
> +  supported_os="yes"
>  ;;
>  GNU/kFreeBSD)
>    bsd="yes"
> @@ -579,6 +592,7 @@ FreeBSD)
>    libs_qga="-lutil $libs_qga"
>    netmap=""  # enable netmap autodetect
>    HOST_VARIANT_DIR="freebsd"
> +  supported_os="yes"
>  ;;
>  DragonFly)
>    bsd="yes"
> @@ -620,6 +634,7 @@ Darwin)
>    # won't work when we're compiling with gcc as a C compiler.
>    QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
>    HOST_VARIANT_DIR="darwin"
> +  supported_os="yes"
>  ;;
>  SunOS)
>    solaris="yes"
> @@ -666,7 +681,7 @@ Haiku)
>    QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
>    LIBS="-lposix_error_mapper -lnetwork $LIBS"
>  ;;
> -*)
> +Linux)
>    audio_drv_list="oss"
>    audio_possible_drivers="oss alsa sdl pa"
>    linux="yes"
> @@ -676,6 +691,10 @@ Haiku)
>    vhost_scsi="yes"
>    vhost_vsock="yes"
>    QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
> +  supported_os="yes"
> +;;
> +*)
> +  error_exit "Unsupported host OS $targetos"

I'd still prefer if we could start with a warning here instead of a hard
error ... but well, if someone really wants to compile on an unsupported
host OS, I guess they are also smart enough to patch the configure
script here on their own... so I shut up now... ;-)

>  ;;
>  esac
>  
> @@ -5108,6 +5127,32 @@ if test "$sdl_too_old" = "yes"; then
>  echo "-> Your SDL version is too old - please upgrade to have SDL support"
>  fi
>  
> +if test "$supported_cpu" = "no"; then
> +    echo
> +    echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
> +    echo
> +    echo "CPU host architecture $cpu support is not currently maintained."
> +    echo "The QEMU project intends to remove support for this host CPU in"
> +    echo "a future release if nobody volunteers to maintain it and to"
> +    echo "provide a build host for our continuous integration setup."
> +    echo "configure has succeeded and you can continue to build, but"
> +    echo "if you care about QEMU on this platform you should contact"
> +    echo "us upstream at qemu-devel@nongnu.org."
> +fi
> +
> +if test "$supported_os" = "no"; then
> +    echo
> +    echo "WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!"
> +    echo
> +    echo "CPU host OS $targetos support is not currently maintained."

Maybe rather just "Host OS" instead of "CPU host OS" ?

> +    echo "The QEMU project intends to remove support for this host CPU in"

At least here I think you should replace "host CPU" with "host OS". With
that modification:

Reviewed-by: Thomas Huth <thuth@redhat.com>

> +    echo "a future release if nobody volunteers to maintain it and to"
> +    echo "provide a build host for our continuous integration setup."
> +    echo "configure has succeeded and you can continue to build, but"
> +    echo "if you care about QEMU on this platform you should contact"
> +    echo "us upstream at qemu-devel@nongnu.org."
> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
>
Peter Maydell March 21, 2017, 6:01 p.m. UTC | #2
On 21 March 2017 at 17:55, Thomas Huth <thuth@redhat.com> wrote:
> On 21.03.2017 15:31, Peter Maydell wrote:
>> +if test "$supported_os" = "no"; then
>> +    echo
>> +    echo "WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!"
>> +    echo
>> +    echo "CPU host OS $targetos support is not currently maintained."
>
> Maybe rather just "Host OS" instead of "CPU host OS" ?
>
>> +    echo "The QEMU project intends to remove support for this host CPU in"
>
> At least here I think you should replace "host CPU" with "host OS". With
> that modification:

Mmm, yes, those are both cut-n-paste errors from the CPU warning text.
Unfortunately this commit is already in master because I wanted to get
it into rc1 today. I'll send a separate patch that fixes these.

thanks
-- PMM
diff mbox

Patch

diff --git a/configure b/configure
index 02e3b69..3291603 100755
--- a/configure
+++ b/configure
@@ -321,6 +321,9 @@  tcmalloc="no"
 jemalloc="no"
 replication="yes"
 
+supported_cpu="no"
+supported_os="no"
+
 # parse CC options first
 for opt do
   optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
@@ -517,23 +520,32 @@  ARCH=
 # Normalise host CPU name and set ARCH.
 # Note that this case should only have supported host CPUs, not guests.
 case "$cpu" in
-  ia64|ppc|ppc64|s390|s390x|sparc64|x32)
+  ppc|ppc64|s390|s390x|x32)
+    cpu="$cpu"
+    supported_cpu="yes"
+  ;;
+  ia64|sparc64)
     cpu="$cpu"
   ;;
   i386|i486|i586|i686|i86pc|BePC)
     cpu="i386"
+    supported_cpu="yes"
   ;;
   x86_64|amd64)
     cpu="x86_64"
+    supported_cpu="yes"
   ;;
   armv*b|armv*l|arm)
     cpu="arm"
+    supported_cpu="yes"
   ;;
   aarch64)
     cpu="aarch64"
+    supported_cpu="yes"
   ;;
   mips*)
     cpu="mips"
+    supported_cpu="yes"
   ;;
   sparc|sun4[cdmuv])
     cpu="sparc"
@@ -562,6 +574,7 @@  MINGW32*)
   else
     audio_drv_list=""
   fi
+  supported_os="yes"
 ;;
 GNU/kFreeBSD)
   bsd="yes"
@@ -579,6 +592,7 @@  FreeBSD)
   libs_qga="-lutil $libs_qga"
   netmap=""  # enable netmap autodetect
   HOST_VARIANT_DIR="freebsd"
+  supported_os="yes"
 ;;
 DragonFly)
   bsd="yes"
@@ -620,6 +634,7 @@  Darwin)
   # won't work when we're compiling with gcc as a C compiler.
   QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
   HOST_VARIANT_DIR="darwin"
+  supported_os="yes"
 ;;
 SunOS)
   solaris="yes"
@@ -666,7 +681,7 @@  Haiku)
   QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
   LIBS="-lposix_error_mapper -lnetwork $LIBS"
 ;;
-*)
+Linux)
   audio_drv_list="oss"
   audio_possible_drivers="oss alsa sdl pa"
   linux="yes"
@@ -676,6 +691,10 @@  Haiku)
   vhost_scsi="yes"
   vhost_vsock="yes"
   QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
+  supported_os="yes"
+;;
+*)
+  error_exit "Unsupported host OS $targetos"
 ;;
 esac
 
@@ -5108,6 +5127,32 @@  if test "$sdl_too_old" = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
 fi
 
+if test "$supported_cpu" = "no"; then
+    echo
+    echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
+    echo
+    echo "CPU host architecture $cpu support is not currently maintained."
+    echo "The QEMU project intends to remove support for this host CPU in"
+    echo "a future release if nobody volunteers to maintain it and to"
+    echo "provide a build host for our continuous integration setup."
+    echo "configure has succeeded and you can continue to build, but"
+    echo "if you care about QEMU on this platform you should contact"
+    echo "us upstream at qemu-devel@nongnu.org."
+fi
+
+if test "$supported_os" = "no"; then
+    echo
+    echo "WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!"
+    echo
+    echo "CPU host OS $targetos support is not currently maintained."
+    echo "The QEMU project intends to remove support for this host CPU in"
+    echo "a future release if nobody volunteers to maintain it and to"
+    echo "provide a build host for our continuous integration setup."
+    echo "configure has succeeded and you can continue to build, but"
+    echo "if you care about QEMU on this platform you should contact"
+    echo "us upstream at qemu-devel@nongnu.org."
+fi
+
 config_host_mak="config-host.mak"
 
 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak