On Thu, 24 Jan 2019, Paolo Bonzini wrote:
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
The ACPI_NVDIMM for MIPS is pulled in by CONFIG_VT82C686 which needs ACPI
which needs NVDIMM even though it's probably not used. At least I think
so, I haven't tested if it could be removed.
Regards,
BALATON Zoltan
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