[PATCH] configure: do not limit Hypervisor.framework test to Darwin

Paolo Bonzini posted 1 patch 3 years, 7 months ago
Test docker-quick@centos7 failed
Test docker-mingw@fedora failed
Test checkpatch failed
Test FreeBSD failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200916081131.21775-2-pbonzini@redhat.com
configure | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
[PATCH] configure: do not limit Hypervisor.framework test to Darwin
Posted by Paolo Bonzini 3 years, 7 months ago
Because the target/i386/hvf/meson.build rule culls hvf support
on non-Darwin systems, a --enable-hvf build is succeeding.
To fix this, just try the compilation test every time someone
passes --enable-hvf.

Reported-by: Christophe de Dinechin <dinechin@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index b4c0e0d07c..14b06a2510 100755
--- a/configure
+++ b/configure
@@ -863,7 +863,7 @@ Darwin)
   bsd="yes"
   darwin="yes"
   hax="yes"
-  hvf="yes"
+  hvf=""
   if [ "$cpu" = "x86_64" ] ; then
     QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
     QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
@@ -5867,16 +5867,18 @@ fi
 
 #################################################
 # Check to see if we have the Hypervisor framework
-if [ "$darwin" = "yes" ] ; then
+if [ "$hvf" != "no" ] ; then
   cat > $TMPC << EOF
 #include <Hypervisor/hv.h>
 int main() { return 0;}
 EOF
   if ! compile_object ""; then
+    if test "$hvf" = "yes"; then
+	error_exit "Hypervisor.framework not available"
+    fi
     hvf='no'
   else
     hvf='yes'
-    QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS"
   fi
 fi
 
-- 
2.26.2


Re: [PATCH] configure: do not limit Hypervisor.framework test to Darwin
Posted by Roman Bolshakov 3 years, 7 months ago
On Wed, Sep 16, 2020 at 04:11:31AM -0400, Paolo Bonzini wrote:
> Because the target/i386/hvf/meson.build rule culls hvf support
> on non-Darwin systems, a --enable-hvf build is succeeding.
> To fix this, just try the compilation test every time someone
> passes --enable-hvf.
> 
> Reported-by: Christophe de Dinechin <dinechin@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index b4c0e0d07c..14b06a2510 100755
> --- a/configure
> +++ b/configure
> @@ -863,7 +863,7 @@ Darwin)
>    bsd="yes"
>    darwin="yes"
>    hax="yes"
> -  hvf="yes"
> +  hvf=""
>    if [ "$cpu" = "x86_64" ] ; then
>      QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
>      QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
> @@ -5867,16 +5867,18 @@ fi
>  
>  #################################################
>  # Check to see if we have the Hypervisor framework
> -if [ "$darwin" = "yes" ] ; then
> +if [ "$hvf" != "no" ] ; then
>    cat > $TMPC << EOF
>  #include <Hypervisor/hv.h>
>  int main() { return 0;}
>  EOF
>    if ! compile_object ""; then
> +    if test "$hvf" = "yes"; then
> +	error_exit "Hypervisor.framework not available"
> +    fi
>      hvf='no'
>    else
>      hvf='yes'
> -    QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS"
>    fi
>  fi
>  
> -- 
> 2.26.2
> 

Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Tested-by: Roman Bolshakov <r.bolshakov@yadro.com>

Thanks,
Roman

Re: [PATCH] configure: do not limit Hypervisor.framework test to Darwin
Posted by Roman Bolshakov 3 years, 7 months ago
On Wed, Sep 16, 2020 at 04:11:31AM -0400, Paolo Bonzini wrote:
> Because the target/i386/hvf/meson.build rule culls hvf support
> on non-Darwin systems, a --enable-hvf build is succeeding.
> To fix this, just try the compilation test every time someone
> passes --enable-hvf.
> 
> Reported-by: Christophe de Dinechin <dinechin@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index b4c0e0d07c..14b06a2510 100755
> --- a/configure
> +++ b/configure
> @@ -863,7 +863,7 @@ Darwin)
>    bsd="yes"
>    darwin="yes"
>    hax="yes"
> -  hvf="yes"
> +  hvf=""
>    if [ "$cpu" = "x86_64" ] ; then
>      QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
>      QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
> @@ -5867,16 +5867,18 @@ fi
>  
>  #################################################
>  # Check to see if we have the Hypervisor framework
> -if [ "$darwin" = "yes" ] ; then
> +if [ "$hvf" != "no" ] ; then
>    cat > $TMPC << EOF
>  #include <Hypervisor/hv.h>
>  int main() { return 0;}
>  EOF
>    if ! compile_object ""; then
> +    if test "$hvf" = "yes"; then
> +	error_exit "Hypervisor.framework not available"
> +    fi
>      hvf='no'
>    else
>      hvf='yes'
> -    QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS"
>    fi
>  fi
>  
> -- 
> 2.26.2
> 

After reading "configure: move cocoa option to Meson", I think the patch
should follow meson-driven configuration like the cocoa patch. That'd be
a step closer to make configure a thin shim to "meson configure".

Roman

Re: [PATCH] configure: do not limit Hypervisor.framework test to Darwin
Posted by Paolo Bonzini 3 years, 7 months ago
On 17/09/20 19:51, Roman Bolshakov wrote:
> On Wed, Sep 16, 2020 at 04:11:31AM -0400, Paolo Bonzini wrote:
>> Because the target/i386/hvf/meson.build rule culls hvf support
>> on non-Darwin systems, a --enable-hvf build is succeeding.
>> To fix this, just try the compilation test every time someone
>> passes --enable-hvf.
>>
>> Reported-by: Christophe de Dinechin <dinechin@redhat.com>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>>  configure | 8 +++++---
>>  1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/configure b/configure
>> index b4c0e0d07c..14b06a2510 100755
>> --- a/configure
>> +++ b/configure
>> @@ -863,7 +863,7 @@ Darwin)
>>    bsd="yes"
>>    darwin="yes"
>>    hax="yes"
>> -  hvf="yes"
>> +  hvf=""
>>    if [ "$cpu" = "x86_64" ] ; then
>>      QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
>>      QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
>> @@ -5867,16 +5867,18 @@ fi
>>  
>>  #################################################
>>  # Check to see if we have the Hypervisor framework
>> -if [ "$darwin" = "yes" ] ; then
>> +if [ "$hvf" != "no" ] ; then
>>    cat > $TMPC << EOF
>>  #include <Hypervisor/hv.h>
>>  int main() { return 0;}
>>  EOF
>>    if ! compile_object ""; then
>> +    if test "$hvf" = "yes"; then
>> +	error_exit "Hypervisor.framework not available"
>> +    fi
>>      hvf='no'
>>    else
>>      hvf='yes'
>> -    QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS"
>>    fi
>>  fi
>>  
>> -- 
>> 2.26.2
>>
> 
> After reading "configure: move cocoa option to Meson", I think the patch
> should follow meson-driven configuration like the cocoa patch. That'd be
> a step closer to make configure a thin shim to "meson configure".

That's unfortunately not yet possible because supported_hvf_target()
uses $hvf.  The idea is to move accelerator detection to meson so that
config-target.mak becomes essentially constant and could for example be
moved to default-configs/.

Paolo

Paolo


Re: [PATCH] configure: do not limit Hypervisor.framework test to Darwin
Posted by Richard Henderson 3 years, 7 months ago
On 9/16/20 1:11 AM, Paolo Bonzini wrote:
> Because the target/i386/hvf/meson.build rule culls hvf support
> on non-Darwin systems, a --enable-hvf build is succeeding.
> To fix this, just try the compilation test every time someone
> passes --enable-hvf.
> 
> Reported-by: Christophe de Dinechin <dinechin@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~