[PATCH 01/24] configure: remove --oss-lib

Paolo Bonzini posted 24 patches 4 years, 4 months ago
Maintainers: "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, Jason Wang <jasowang@redhat.com>, Alexander Bulekov <alxndr@bu.edu>, Bandan Das <bsd@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <ani@anisinha.ca>, Cleber Rosa <crosa@redhat.com>, Thomas Huth <thuth@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Darren Kenny <darren.kenny@oracle.com>, Kevin Wolf <kwolf@redhat.com>, Qiuhao Li <Qiuhao.Li@outlook.com>
There is a newer version of this series
[PATCH 01/24] configure: remove --oss-lib
Posted by Paolo Bonzini 4 years, 4 months ago
OSS is a kernel API, so the option should not be needed.  The library
is used on NetBSD, where OSS is emulated, so keep the variable.

Cc: Gerd Hoffman <kraxel@redhat.com>
Cc: Volker Rümelin <vr_qemu@t-online.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/configure b/configure
index 877bf3d76a..ab6bc0c994 100755
--- a/configure
+++ b/configure
@@ -1007,8 +1007,6 @@ for opt do
   ;;
   --enable-gettext) gettext="enabled"
   ;;
-  --oss-lib=*) oss_lib="$optarg"
-  ;;
   --audio-drv-list=*) audio_drv_list="$optarg"
   ;;
   --block-drv-rw-whitelist=*|--block-drv-whitelist=*) block_drv_rw_whitelist=$(echo "$optarg" | sed -e 's/,/ /g')
@@ -1815,7 +1813,6 @@ Advanced options (experts only):
   --disable-slirp          disable SLIRP userspace network connectivity
   --enable-tcg-interpreter enable TCI (TCG with bytecode interpreter, experimental and slow)
   --enable-malloc-trim     enable libc malloc_trim() for memory optimization
-  --oss-lib                path to OSS library
   --cpu=CPU                Build for host CPU [$cpu]
   --with-coroutine=BACKEND coroutine backend. Supported options:
                            ucontext, sigaltstack, windows
-- 
2.31.1



Re: [PATCH 01/24] configure: remove --oss-lib
Posted by Marc-André Lureau 4 years, 4 months ago
Hi

On Thu, Oct 7, 2021 at 5:11 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

> OSS is a kernel API, so the option should not be needed.  The library
> is used on NetBSD, where OSS is emulated, so keep the variable.
>
> Cc: Gerd Hoffman <kraxel@redhat.com>
> Cc: Volker Rümelin <vr_qemu@t-online.de>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>

Not just NetBSD. You could --audio-drv-list=oss and --oss-lib= to specify
the library to link with.

However, I am not sure this is still needed. It was introduced in:
commit 2f6a1ab038eefd6e5a9cfc8ec49435f6ad025812
Author: Blue Swirl <blauwirbel@gmail.com>
Date:   Thu Aug 21 18:00:53 2008 +0000

    Fix OSS on OpenBSD

    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5045
c046a42c-6fe2-441c-8c8c-71466251a162

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

---
>  configure | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/configure b/configure
> index 877bf3d76a..ab6bc0c994 100755
> --- a/configure
> +++ b/configure
> @@ -1007,8 +1007,6 @@ for opt do
>    ;;
>    --enable-gettext) gettext="enabled"
>    ;;
> -  --oss-lib=*) oss_lib="$optarg"
> -  ;;
>    --audio-drv-list=*) audio_drv_list="$optarg"
>    ;;
>    --block-drv-rw-whitelist=*|--block-drv-whitelist=*)
> block_drv_rw_whitelist=$(echo "$optarg" | sed -e 's/,/ /g')
> @@ -1815,7 +1813,6 @@ Advanced options (experts only):
>    --disable-slirp          disable SLIRP userspace network connectivity
>    --enable-tcg-interpreter enable TCI (TCG with bytecode interpreter,
> experimental and slow)
>    --enable-malloc-trim     enable libc malloc_trim() for memory
> optimization
> -  --oss-lib                path to OSS library
>    --cpu=CPU                Build for host CPU [$cpu]
>    --with-coroutine=BACKEND coroutine backend. Supported options:
>                             ucontext, sigaltstack, windows
> --
> 2.31.1
>
>
>
>

-- 
Marc-André Lureau
Re: [PATCH 01/24] configure: remove --oss-lib
Posted by Paolo Bonzini 4 years, 4 months ago
On 07/10/21 22:42, Marc-André Lureau wrote:
> 
>     Cc: Gerd Hoffman <kraxel@redhat.com <mailto:kraxel@redhat.com>>
>     Cc: Volker Rümelin <vr_qemu@t-online.de <mailto:vr_qemu@t-online.de>>
>     Signed-off-by: Paolo Bonzini <pbonzini@redhat.com
>     <mailto:pbonzini@redhat.com>>
> 
> Not just NetBSD. You could --audio-drv-list=oss and --oss-lib= to 
> specify the library to link with.

Yes, but the question is who would use --oss-lib.  And secondarily, if 
the answer is not "no one", whether they would be accomodated better by 
a change to QEMU itself.

For example OpenBSD support was removed in 2013:

     Remove OSS support for OpenBSD

     Remove the OSS support for OpenBSD. The OSS API has not been usable
     for quite some time.

     Signed-off-by: Brad Smith <brad@comstyle.com>
     Reviewed-by: Laszlo Ersek <lersek@redhat.com>
     Reviewed-by: Andreas Färber <afaerber@suse.de>
     Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

However, if it came back from the dead, one could just

    if not cc.has_header('sys/soundcard.h')
      # not found
-  elif targetos == 'netbsd'
+  elif targetos in ['netbsd', 'openbsd']
      oss = cc.find_library('ossaudio', required: get_option('oss'),
                            kwargs: static_kwargs)
    else

instead of using something like --oss-lib.

Paolo


Re: [PATCH 01/24] configure: remove --oss-lib
Posted by Thomas Huth 4 years, 4 months ago
On 07/10/2021 15.06, Paolo Bonzini wrote:
> OSS is a kernel API, so the option should not be needed.  The library
> is used on NetBSD, where OSS is emulated, so keep the variable.
> 
> Cc: Gerd Hoffman <kraxel@redhat.com>
> Cc: Volker Rümelin <vr_qemu@t-online.de>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   configure | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/configure b/configure
> index 877bf3d76a..ab6bc0c994 100755
> --- a/configure
> +++ b/configure
> @@ -1007,8 +1007,6 @@ for opt do
>     ;;
>     --enable-gettext) gettext="enabled"
>     ;;
> -  --oss-lib=*) oss_lib="$optarg"
> -  ;;
>     --audio-drv-list=*) audio_drv_list="$optarg"
>     ;;
>     --block-drv-rw-whitelist=*|--block-drv-whitelist=*) block_drv_rw_whitelist=$(echo "$optarg" | sed -e 's/,/ /g')
> @@ -1815,7 +1813,6 @@ Advanced options (experts only):
>     --disable-slirp          disable SLIRP userspace network connectivity
>     --enable-tcg-interpreter enable TCI (TCG with bytecode interpreter, experimental and slow)
>     --enable-malloc-trim     enable libc malloc_trim() for memory optimization
> -  --oss-lib                path to OSS library
>     --cpu=CPU                Build for host CPU [$cpu]
>     --with-coroutine=BACKEND coroutine backend. Supported options:
>                              ucontext, sigaltstack, windows
> 

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