On Mon, Jul 03, 2017 at 06:12:09PM +0800, Yang Zhong wrote: > Add the disable-tcg option into configure and echo CONFIG_TCG=y into > $config_target_mak. The default tcg is enabled for all build, only i386 > and x86_64 softmmu option can be disabled. This operation do not make > big change with the older build command. > > The new configure build command like below > (1)./configure > tcg is defaultly enabled > > (2)./configure --disable-tcg --target-list=x86_64-softmmu > tcg is disabled in x86_64-softmmu > > (3)./configure --disable-tcg --target-list=i386-softmmu > tcg is disabled in i386-softmmu > > If the --target-list include other softmmus or user options, the configure > command will report error and configure is aborted. > The error as: > ERROR: The current aarch64-softmmu can't support disable-tcg, > only i386-softmmu|x86_64-softmmu support disable-tcg > or > ERROR: The user build can't support disable-tcg, > only i386-softmmu|x86_64-softmmu support disable-tcg > > Signed-off-by: Yang Zhong <[email protected]> > --- > configure | 43 ++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 42 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index c571ad1..61ce514 100755 > --- a/configure > +++ b/configure > @@ -224,6 +224,7 @@ cap_ng="" > attr="" > libattr="" > xfs="" > +tcg="yes" > > vhost_net="no" > vhost_scsi="no" > @@ -953,6 +954,10 @@ for opt do > ;; > --enable-hax) hax="yes" > ;; > + --disable-tcg) tcg="no" > + ;; > + --enable-tcg) tcg="yes" > + ;; > --disable-tcg-interpreter) tcg_interpreter="no" > ;; > --enable-tcg-interpreter) tcg_interpreter="yes" > @@ -1715,6 +1720,24 @@ case " $target_list " in > ;; > esac > > +if test "$tcg" = "no"; then > + for target in $target_list; do > + if test "$softmmu" = "yes"; then > + case $target in > + i386-softmmu|x86_64-softmmu) > + ;; > + *) > + error_exit "The current $target can't support disable-tcg,"\ > + "only i386-softmmu|x86_64-softmmu support disable-tcg" > + ;;
This looks too simplistic in its logic. You can disable TCG, if-and-only-if the system emulator supports KVM. KVM is supported on many architectures, not only x86-64 & i386. KVM is only supported if the guest emulator architecture matches the host build target architecture. ie if you are building an x86_64 system emulator on a PPC64 host, then you can't disable TCG. So this needs rewriting to *not* special case x86_64 / i386. Instead you need to compare & match build target / system emulator architectures, across all architectures supporting KVM. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
