On 23/01/19 07:55, Yang Zhong wrote: > This Kconfig implementation is rebased from Paolo's branch > https://github.com/bonzini/qemu/commits/kconfig > > I rebased most of patches except non-x86 ARCHs dependency definitions > this time. > https://github.com/yangzhon/qemu/commits/topic/upstream/Kconfig > > The current RFC patches only support > (*) x86_64 platform build > Once design is fixed, we can do other archs. > > (*) defconfig > "randconfig" build has some issues, which are mostly related > with CONFIG* in Kconfig.host abd configure. In randconfig mode, > some CONFIG* has different setting value in config-host.mak and > %/config-device.mak, which make QEMU build failure. > > (*) Kconfig in hw/ directory > > The current configure and build command are same with previous > commands and if we want to disable or enable some features, like > "tcg", we still need add "--enable/--disable-tcg" in configure > command line. If we want to disable one emulation device, we can > disable this in related Kconfig file in hw/ directory. > > The current build command: > (*) ./configure --target-list=x86_64-softmmu > (*) make -j8 > > Since the Kconfig language replace traditional CONFIG_* in > default-config/%-softmmu.mak, the %-softmmu.mak file only > define embeded boards or machines, like 440fx and Q35 in x86_64 > platform. The Kconfig has already defined dependency topology > between different Kconfig files, but there are still some issues > > (*) Kconfig for configure(config-host.mak) > Some CONFIG* in configure need some logic to generate, those > are hard to input this CONFIG* in Kconfig.host or Kconfig* file. > > (*) Kconfig for %config-target.mak > The CONFIG* in %/config-target.mak file, this is still related > with configure. > > (*) randconfig support issue. > > Before this RFC patches, we have talked Kconfig in another thread > http://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg02827.html > > Please give your comments on this RFC thread, many thanks!
I started looking at this, and found two bugs in current code (unreachable devices that shouldn't be there - SERIAL_ISA for ARM, ACPI_NVDIMM for MIPS). There are a few issues in that the script is not Python 3-enabled and only x86 compiles, but they are easily fixed. A slightly bigger thing is to make VFIO configuration more fine-grained and express it with kconfig dependencies, but it's just a couple patches in the same spirit as these ones. I'll look at randconfig next. Paolo