diff mbox series

configure: do not limit Hypervisor.framework test to Darwin

Message ID 20200916081131.21775-2-pbonzini@redhat.com
State Superseded
Headers show
Series configure: do not limit Hypervisor.framework test to Darwin | expand

Commit Message

Paolo Bonzini Sept. 16, 2020, 8:11 a.m. UTC
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(-)

Comments

Richard Henderson Sept. 16, 2020, 3:42 p.m. UTC | #1
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~
Roman Bolshakov Sept. 17, 2020, 5:27 p.m. UTC | #2
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
Roman Bolshakov Sept. 17, 2020, 5:51 p.m. UTC | #3
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
Paolo Bonzini Sept. 18, 2020, 8:42 a.m. UTC | #4
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
diff mbox series

Patch

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