On 03/07/2017 12:20, Daniel P. Berrange wrote:
>>  
>> +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.

i386-softmmu and x86_64-softmmu are singled out here, because they're
the only targets where --disable-tcg compiles.  For the others, more
work is needed (see patches 6-15 in Yang Zhong's series).

The part that is missing in this patch is disabling non-hypervisor
targets when --disable-tcg is specified.  My original patch built only
i386-softmmu and x86_64-softmmu if you specified --disable-tcg, see

https://lists.nongnu.org/archive/html/qemu-devel/2012-09/msg02570.html
https://lists.nongnu.org/archive/html/qemu-devel/2012-09/msg02571.html

Paolo

Reply via email to