On Fri, Sep 2, 2011 at 9:47 PM, Anthony Liguori <aligu...@us.ibm.com> wrote: > Hi, > > There have been a few attempts in the past to allow TCG to be disabled > at build time. Recently, Alex made the suggestion that we could do it by > using > the same trick that we used to introduce kvm support. That involves > introducing > a tcg_enabled() macro that will be (0) if TCG is disabled in the build. > > GCC is smart enough to do dead code elimination if it sees an if (0) and the > result is that if you can do:
Is this also true for gcc optimization -O0? Didn't we have breakages because of similar issues recently? > > if (tcg_enabled()) { > foo(); > } > > and it's more or less equivalent to: > > #ifdef CONFIG_TCG > foo(); > #endif > > Without the ugliness that comes from using the preprocessor. I think this > ended > up being pretty straight forward. exec.c could use a fair bit of cleanup but > other than that, this pretty much eliminates all of the TCG code from the > build. > > This absolutely is going to break non-x86 KVM builds if they use the > --disable-tcg flag as I haven't tested those yet. The normal TCG build > shouldn't be affected at all though. > > In principle, the code assumes that you need KVM if you don't have TCG. Of > course, some extra logic could be added to allow for Xen if TCG isn't present. > > >