diff mbox

[PULL,24/42] configure: add --disable-tcg configure option

Message ID 1499238885-26161-25-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini July 5, 2017, 7:14 a.m. UTC
This lets you build without TCG (hardware accelerationor qtest only).  When
this flag is passed to configure, it will automatically filter out the target
list to only those that support KVM or Xen or HAX.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

Comments

Philippe Mathieu-Daudé July 14, 2017, 5:24 a.m. UTC | #1
Hi Paolo,

trying "./configure --disable-docs --disable-tcg" I get:

   CC      x86_64-softmmu/exec.o
qemu/exec.c: In function ‘breakpoint_invalidate’:
qemu/exec.c:797:9: error: implicit declaration of function 
‘tb_invalidate_phys_addr’ [-Werror=implicit-function-declaration]
          tb_invalidate_phys_addr(cpu->cpu_ases[asidx].as,
          ^~~~~~~~~~~~~~~~~~~~~~~
qemu/exec.c:797:9: error: nested extern declaration of 
‘tb_invalidate_phys_addr’ [-Werror=nested-externs]
cc1: all warnings being treated as errors
qemu/rules.mak:66: recipe for target 'exec.o' failed
make[1]: *** [exec.o] Error 1
Makefile:328: recipe for target 'subdir-x86_64-softmmu' failed
make: *** [subdir-x86_64-softmmu] Error 2

due to include/exec/exec-all.h:

#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
void tb_invalidate_phys_addr(AddressSpace *as, hwaddr addr);
#else
...

On 07/05/2017 04:14 AM, Paolo Bonzini wrote:
> This lets you build without TCG (hardware accelerationor qtest only).  When
> this flag is passed to configure, it will automatically filter out the target
> list to only those that support KVM or Xen or HAX.
> 
> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   configure | 26 +++++++++++++++++++++-----
>   1 file changed, 21 insertions(+), 5 deletions(-)
> 
> diff --git a/configure b/configure
> index ae69e96..806658c 100755
> --- a/configure
> +++ b/configure
> @@ -232,7 +232,12 @@ supported_target() {
>               return 1
>               ;;
>       esac
> -    return 0
> +    test "$tcg" = "yes" && return 0
> +    supported_kvm_target "$1" && return 0
> +    supported_xen_target "$1" && return 0
> +    supported_hax_target "$1" && return 0
> +    print_error "TCG disabled, but hardware accelerator not available for '$target'"
> +    return 1
>   }
>   
>   # default parameters
> @@ -296,6 +301,7 @@ cap_ng=""
>   attr=""
>   libattr=""
>   xfs=""
> +tcg="yes"
>   
>   vhost_net="no"
>   vhost_scsi="no"
> @@ -1033,6 +1039,10 @@ for opt do
>     ;;
>     --enable-cap-ng) cap_ng="yes"
>     ;;
> +  --disable-tcg) tcg="no"
> +  ;;
> +  --enable-tcg) tcg="yes"
> +  ;;
>     --disable-spice) spice="no"
>     ;;
>     --enable-spice) spice="yes"
> @@ -5195,7 +5205,6 @@ echo "module support    $modules"
>   echo "host CPU          $cpu"
>   echo "host big endian   $bigendian"
>   echo "target list       $target_list"
> -echo "tcg debug enabled $debug_tcg"
>   echo "gprof enabled     $gprof"
>   echo "sparse enabled    $sparse"
>   echo "strip binaries    $strip_opt"
> @@ -5250,8 +5259,12 @@ echo "ATTR/XATTR support $attr"
>   echo "Install blobs     $blobs"
>   echo "KVM support       $kvm"
>   echo "HAX support       $hax"
> +echo "TCG support       $tcg"
> +if test "$tcg" = "yes" ; then
> +    echo "TCG debug enabled $debug_tcg"
> +    echo "TCG interpreter   $tcg_interpreter"
> +fi
>   echo "RDMA support      $rdma"
> -echo "TCG interpreter   $tcg_interpreter"
>   echo "fdt support       $fdt"
>   echo "preadv support    $preadv"
>   echo "fdatasync         $fdatasync"
> @@ -5694,8 +5707,11 @@ fi
>   if test "$signalfd" = "yes" ; then
>     echo "CONFIG_SIGNALFD=y" >> $config_host_mak
>   fi
> -if test "$tcg_interpreter" = "yes" ; then
> -  echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
> +if test "$tcg" = "yes"; then
> +  echo "CONFIG_TCG=y" >> $config_host_mak
> +  if test "$tcg_interpreter" = "yes" ; then
> +    echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
> +  fi
>   fi
>   if test "$fdatasync" = "yes" ; then
>     echo "CONFIG_FDATASYNC=y" >> $config_host_mak
>
Paolo Bonzini July 14, 2017, 9:02 a.m. UTC | #2
----- Original Message -----
> From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
> To: "Paolo Bonzini" <pbonzini@redhat.com>, qemu-devel@nongnu.org
> Cc: "Anthony Liguori" <aliguori@us.ibm.com>
> Sent: Friday, July 14, 2017 7:24:29 AM
> Subject: Re: [Qemu-devel] [PULL 24/42] configure: add --disable-tcg configure option
> 
> Hi Paolo,
> 
> trying "./configure --disable-docs --disable-tcg" I get:
> 
>    CC      x86_64-softmmu/exec.o
> qemu/exec.c: In function ‘breakpoint_invalidate’:
> qemu/exec.c:797:9: error: implicit declaration of function
> ‘tb_invalidate_phys_addr’ [-Werror=implicit-function-declaration]
>           tb_invalidate_phys_addr(cpu->cpu_ases[asidx].as,
>           ^~~~~~~~~~~~~~~~~~~~~~~
> qemu/exec.c:797:9: error: nested extern declaration of
> ‘tb_invalidate_phys_addr’ [-Werror=nested-externs]
> cc1: all warnings being treated as errors
> qemu/rules.mak:66: recipe for target 'exec.o' failed
> make[1]: *** [exec.o] Error 1
> Makefile:328: recipe for target 'subdir-x86_64-softmmu' failed
> make: *** [subdir-x86_64-softmmu] Error 2
> 
> due to include/exec/exec-all.h:
> 
> #if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
> void tb_invalidate_phys_addr(AddressSpace *as, hwaddr addr);
> #else

This is introduced by Pranith's patch.  I will respin my pull request.

Paolo

> 
> On 07/05/2017 04:14 AM, Paolo Bonzini wrote:
> > This lets you build without TCG (hardware accelerationor qtest only).  When
> > this flag is passed to configure, it will automatically filter out the
> > target
> > list to only those that support KVM or Xen or HAX.
> > 
> > Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > ---
> >   configure | 26 +++++++++++++++++++++-----
> >   1 file changed, 21 insertions(+), 5 deletions(-)
> > 
> > diff --git a/configure b/configure
> > index ae69e96..806658c 100755
> > --- a/configure
> > +++ b/configure
> > @@ -232,7 +232,12 @@ supported_target() {
> >               return 1
> >               ;;
> >       esac
> > -    return 0
> > +    test "$tcg" = "yes" && return 0
> > +    supported_kvm_target "$1" && return 0
> > +    supported_xen_target "$1" && return 0
> > +    supported_hax_target "$1" && return 0
> > +    print_error "TCG disabled, but hardware accelerator not available for
> > '$target'"
> > +    return 1
> >   }
> >   
> >   # default parameters
> > @@ -296,6 +301,7 @@ cap_ng=""
> >   attr=""
> >   libattr=""
> >   xfs=""
> > +tcg="yes"
> >   
> >   vhost_net="no"
> >   vhost_scsi="no"
> > @@ -1033,6 +1039,10 @@ for opt do
> >     ;;
> >     --enable-cap-ng) cap_ng="yes"
> >     ;;
> > +  --disable-tcg) tcg="no"
> > +  ;;
> > +  --enable-tcg) tcg="yes"
> > +  ;;
> >     --disable-spice) spice="no"
> >     ;;
> >     --enable-spice) spice="yes"
> > @@ -5195,7 +5205,6 @@ echo "module support    $modules"
> >   echo "host CPU          $cpu"
> >   echo "host big endian   $bigendian"
> >   echo "target list       $target_list"
> > -echo "tcg debug enabled $debug_tcg"
> >   echo "gprof enabled     $gprof"
> >   echo "sparse enabled    $sparse"
> >   echo "strip binaries    $strip_opt"
> > @@ -5250,8 +5259,12 @@ echo "ATTR/XATTR support $attr"
> >   echo "Install blobs     $blobs"
> >   echo "KVM support       $kvm"
> >   echo "HAX support       $hax"
> > +echo "TCG support       $tcg"
> > +if test "$tcg" = "yes" ; then
> > +    echo "TCG debug enabled $debug_tcg"
> > +    echo "TCG interpreter   $tcg_interpreter"
> > +fi
> >   echo "RDMA support      $rdma"
> > -echo "TCG interpreter   $tcg_interpreter"
> >   echo "fdt support       $fdt"
> >   echo "preadv support    $preadv"
> >   echo "fdatasync         $fdatasync"
> > @@ -5694,8 +5707,11 @@ fi
> >   if test "$signalfd" = "yes" ; then
> >     echo "CONFIG_SIGNALFD=y" >> $config_host_mak
> >   fi
> > -if test "$tcg_interpreter" = "yes" ; then
> > -  echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
> > +if test "$tcg" = "yes"; then
> > +  echo "CONFIG_TCG=y" >> $config_host_mak
> > +  if test "$tcg_interpreter" = "yes" ; then
> > +    echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
> > +  fi
> >   fi
> >   if test "$fdatasync" = "yes" ; then
> >     echo "CONFIG_FDATASYNC=y" >> $config_host_mak
> > 
>
Philippe Mathieu-Daudé July 14, 2017, 3:33 p.m. UTC | #3
On 07/14/2017 06:02 AM, Paolo Bonzini wrote:
>> From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
>> To: "Paolo Bonzini" <pbonzini@redhat.com>, qemu-devel@nongnu.org
>> Cc: "Anthony Liguori" <aliguori@us.ibm.com>
>> Sent: Friday, July 14, 2017 7:24:29 AM
>> Subject: Re: [Qemu-devel] [PULL 24/42] configure: add --disable-tcg configure option
>>
>> Hi Paolo,
>>
>> trying "./configure --disable-docs --disable-tcg" I get:
>>
>>     CC      x86_64-softmmu/exec.o
>> qemu/exec.c: In function ‘breakpoint_invalidate’:
>> qemu/exec.c:797:9: error: implicit declaration of function
>> ‘tb_invalidate_phys_addr’ [-Werror=implicit-function-declaration]
>>            tb_invalidate_phys_addr(cpu->cpu_ases[asidx].as,
>>            ^~~~~~~~~~~~~~~~~~~~~~~
>> qemu/exec.c:797:9: error: nested extern declaration of
>> ‘tb_invalidate_phys_addr’ [-Werror=nested-externs]
>> cc1: all warnings being treated as errors
>> qemu/rules.mak:66: recipe for target 'exec.o' failed
>> make[1]: *** [exec.o] Error 1
>> Makefile:328: recipe for target 'subdir-x86_64-softmmu' failed
>> make: *** [subdir-x86_64-softmmu] Error 2
>>
>> due to include/exec/exec-all.h:
>>
>> #if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
>> void tb_invalidate_phys_addr(AddressSpace *as, hwaddr addr);
>> #else
> 
> This is introduced by Pranith's patch.  I will respin my pull request.
> 
> Paolo

I pulled master with your PR merged and it now compiles fine, thank you.
diff mbox

Patch

diff --git a/configure b/configure
index ae69e96..806658c 100755
--- a/configure
+++ b/configure
@@ -232,7 +232,12 @@  supported_target() {
             return 1
             ;;
     esac
-    return 0
+    test "$tcg" = "yes" && return 0
+    supported_kvm_target "$1" && return 0
+    supported_xen_target "$1" && return 0
+    supported_hax_target "$1" && return 0
+    print_error "TCG disabled, but hardware accelerator not available for '$target'"
+    return 1
 }
 
 # default parameters
@@ -296,6 +301,7 @@  cap_ng=""
 attr=""
 libattr=""
 xfs=""
+tcg="yes"
 
 vhost_net="no"
 vhost_scsi="no"
@@ -1033,6 +1039,10 @@  for opt do
   ;;
   --enable-cap-ng) cap_ng="yes"
   ;;
+  --disable-tcg) tcg="no"
+  ;;
+  --enable-tcg) tcg="yes"
+  ;;
   --disable-spice) spice="no"
   ;;
   --enable-spice) spice="yes"
@@ -5195,7 +5205,6 @@  echo "module support    $modules"
 echo "host CPU          $cpu"
 echo "host big endian   $bigendian"
 echo "target list       $target_list"
-echo "tcg debug enabled $debug_tcg"
 echo "gprof enabled     $gprof"
 echo "sparse enabled    $sparse"
 echo "strip binaries    $strip_opt"
@@ -5250,8 +5259,12 @@  echo "ATTR/XATTR support $attr"
 echo "Install blobs     $blobs"
 echo "KVM support       $kvm"
 echo "HAX support       $hax"
+echo "TCG support       $tcg"
+if test "$tcg" = "yes" ; then
+    echo "TCG debug enabled $debug_tcg"
+    echo "TCG interpreter   $tcg_interpreter"
+fi
 echo "RDMA support      $rdma"
-echo "TCG interpreter   $tcg_interpreter"
 echo "fdt support       $fdt"
 echo "preadv support    $preadv"
 echo "fdatasync         $fdatasync"
@@ -5694,8 +5707,11 @@  fi
 if test "$signalfd" = "yes" ; then
   echo "CONFIG_SIGNALFD=y" >> $config_host_mak
 fi
-if test "$tcg_interpreter" = "yes" ; then
-  echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
+if test "$tcg" = "yes"; then
+  echo "CONFIG_TCG=y" >> $config_host_mak
+  if test "$tcg_interpreter" = "yes" ; then
+    echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
+  fi
 fi
 if test "$fdatasync" = "yes" ; then
   echo "CONFIG_FDATASYNC=y" >> $config_host_mak