[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCHv5] 00/28] Kconfig conversion



The following series is a follow on to the Kconfig conversion patch series.
There are still more components to convert however this is the bare minimal
to get everything working and get the options out of the existing makefiles.

The CONFIG_HAS_ variables are there to match the behavior of the Linux
CONFIG_HAVE_ variables. The purpose is to say that this hardware/profile/env
supports this option while the CONFIG_ variable states that this option was
requested on/off by user intervention.

The UARTs are now uniformly prefixed as CONFIG_UART_ and dropping most of the
CONFIG_HAS_ labeling for them. This means they are now user selectable as
requested by Julien Grall in the prior review. The question I've got is
the old config was just for selecting defaults. Users could enable the OMAP
UART for arm64 for example but I'm not sure if that's valid. Currently this
patchset makes those UARTs not user selectable if they were not previously
defaulted on. But I would like some feedback on this if possible.

Ultimately my goal is to allow for more parts of the hypervisor to be turned
off at compile time and potentially make it easier to include more
experimental features by others which can be turned off by default. Also to
provide the one true location for all possible knobs in the source code.

The patch series can be grabbed at:
https://github.com/cardoe/xen/tree/kconfig_v5

Changes since v4:
- v4 was an oops and was a resend of v3. So the 'Changes since v3' apply here.

Changes since v3:
- fix dependency inversion causing options to appear to flip back on (hi kexec)
- separate out wiring up Kconfig and then using it in the build (added patch 3)
- dropped the old patch 3
- changed UART configs to be prefixed as CONFIG_UART_
- changed ARM UART defaults

Changes since v2:
- drop x86_32 support (patch 2)
- fix make defconfig (patch 2)
- fix 'make -C xen' vs 'cd xen && make' behaving differently (patch 2)
- fix for ARM64 builds (added patch 3)
- At this point all targets are tested on x86_64, arm32, and arm64 with
  fresh clones and rebuilds.

Changes since v1:
- hopefully addressed all review comments
- added CCs to all maintainers from get_maintainer.pl as requested
- drop Kbuild to build Kconfig and instead port the Makefile to the Xen env
- add support for xconfig/gconfig
- include Kconfig docs from Linux


Doug Goldstein (28):
  build: import Kbuild/Kconfig from Linux 4.2
  build: build Kconfig and config rules
  build: use generated Kconfig options for Xen
  build: convert HAS_PASSTHROUGH use to Kconfig
  build: convert HAS_DEVICE_TREE use to Kconfig
  build: convert HAS_PCI use to Kconfig
  build: convert HAS_NS16550 use to Kconfig
  build: convert HAS_IOPORTS use to Kconfig
  build: convert HAS_ACPI use to Kconfig
  build: convert HAS_VIDEO use to Kconfig
  build: convert HAS_VGA use to Kconfig
  build: convert HAS_CPUFREQ use to Kconfig
  build: convert HAS_GDBSX use to Kconfig
  build: convert HAS_PDX use to Kconfig
  build: convert HAS_KEXEC use to Kconfig
  build: convert HAS_ARM_HDLCD use to Kconfig
  build: convert HAS_CADENCE_UART use to Kconfig
  build: convert HAS_PL011 use to Kconfig
  build: convert HAS_EXYNOS4210 use to Kconfig
  build: convert HAS_OMAP use to Kconfig
  build: convert HAS_SCIF use to Kconfig
  build: convert HAS_EHCI use to Kconfig
  build: convert HAS_MEM_ACCESS use to Kconfig
  build: convert HAS_MEM_PAGING use to Kconfig
  build: convert HAS_MEM_SHARING use to Kconfig
  build: convert HAS_GICV3 use to Kconfig
  build: convert CONFIG_COMPAT to Kconfig
  build: convert kexec options to CONFIG_KEXEC

 .gitignore                                     |    8 +
 config/arm32.mk                                |    5 -
 config/arm64.mk                                |    4 -
 config/x86_32.mk                               |    2 -
 config/x86_64.mk                               |    2 -
 docs/misc/kconfig-language.txt                 |  395 ++++
 docs/misc/kconfig.txt                          |  237 +++
 xen/Kconfig                                    |   26 +
 xen/Makefile                                   |   25 +
 xen/Rules.mk                                   |   18 +-
 xen/arch/arm/Kconfig                           |   42 +
 xen/arch/arm/Makefile                          |    2 +-
 xen/arch/arm/Rules.mk                          |    8 -
 xen/arch/arm/configs/arm32_defconfig           |    5 +
 xen/arch/arm/configs/arm64_defconfig           |    3 +
 xen/arch/arm/vgic.c                            |    2 +-
 xen/arch/x86/Kconfig                           |   39 +
 xen/arch/x86/Rules.mk                          |   12 -
 xen/arch/x86/configs/x86_64_defconfig          |    0
 xen/common/Kconfig                             |   44 +
 xen/common/Makefile                            |    8 +-
 xen/common/compat/memory.c                     |    4 +-
 xen/common/domain.c                            |    2 +-
 xen/common/domctl.c                            |    2 +-
 xen/common/memory.c                            |   12 +-
 xen/common/sysctl.c                            |    4 +-
 xen/common/vm_event.c                          |   16 +-
 xen/drivers/Kconfig                            |   15 +
 xen/drivers/Makefile                           |   10 +-
 xen/drivers/acpi/Kconfig                       |    4 +
 xen/drivers/char/Kconfig                       |   52 +
 xen/drivers/char/Makefile                      |   14 +-
 xen/drivers/char/ns16550.c                     |   40 +-
 xen/drivers/cpufreq/Kconfig                    |    4 +
 xen/drivers/passthrough/Kconfig                |    4 +
 xen/drivers/passthrough/Makefile               |    4 +-
 xen/drivers/passthrough/arm/smmu.c             |    4 -
 xen/drivers/passthrough/iommu.c                |    4 +-
 xen/drivers/pci/Kconfig                        |    4 +
 xen/drivers/video/Kconfig                      |   13 +
 xen/drivers/video/Makefile                     |   14 +-
 xen/include/asm-arm/device.h                   |    2 +-
 xen/include/asm-arm/domain.h                   |    2 +-
 xen/include/asm-arm/gic.h                      |    4 +-
 xen/include/asm-arm/vgic.h                     |    2 +-
 xen/include/linux/kconfig.h                    |   54 +
 xen/include/xen/config.h                       |    2 +
 xen/include/xen/hvm/iommu.h                    |    2 +-
 xen/include/xen/iommu.h                        |   14 +-
 xen/include/xen/mem_access.h                   |    4 +-
 xen/include/xen/pdx.h                          |    4 +-
 xen/include/xen/sched.h                        |    4 +-
 xen/include/xsm/dummy.h                        |   14 +-
 xen/include/xsm/xsm.h                          |   28 +-
 xen/scripts/Makefile.host                      |  128 ++
 xen/scripts/kconfig/.gitignore                 |   25 +
 xen/scripts/kconfig/Makefile                   |   77 +
 xen/scripts/kconfig/Makefile.linux             |  317 +++
 xen/scripts/kconfig/POTFILES.in                |   12 +
 xen/scripts/kconfig/check.sh                   |   13 +
 xen/scripts/kconfig/conf.c                     |  722 +++++++
 xen/scripts/kconfig/confdata.c                 | 1248 ++++++++++++
 xen/scripts/kconfig/expr.c                     | 1206 +++++++++++
 xen/scripts/kconfig/expr.h                     |  238 +++
 xen/scripts/kconfig/gconf.c                    | 1521 ++++++++++++++
 xen/scripts/kconfig/gconf.glade                |  661 ++++++
 xen/scripts/kconfig/images.c                   |  326 +++
 xen/scripts/kconfig/kxgettext.c                |  235 +++
 xen/scripts/kconfig/list.h                     |  131 ++
 xen/scripts/kconfig/lkc.h                      |  186 ++
 xen/scripts/kconfig/lkc_proto.h                |   52 +
 xen/scripts/kconfig/lxdialog/.gitignore        |    4 +
 xen/scripts/kconfig/lxdialog/BIG.FAT.WARNING   |    4 +
 xen/scripts/kconfig/lxdialog/check-lxdialog.sh |   91 +
 xen/scripts/kconfig/lxdialog/checklist.c       |  332 +++
 xen/scripts/kconfig/lxdialog/dialog.h          |  257 +++
 xen/scripts/kconfig/lxdialog/inputbox.c        |  301 +++
 xen/scripts/kconfig/lxdialog/menubox.c         |  437 ++++
 xen/scripts/kconfig/lxdialog/textbox.c         |  408 ++++
 xen/scripts/kconfig/lxdialog/util.c            |  713 +++++++
 xen/scripts/kconfig/lxdialog/yesno.c           |  114 ++
 xen/scripts/kconfig/mconf.c                    | 1047 ++++++++++
 xen/scripts/kconfig/menu.c                     |  697 +++++++
 xen/scripts/kconfig/merge_config.sh            |  158 ++
 xen/scripts/kconfig/nconf.c                    | 1561 ++++++++++++++
 xen/scripts/kconfig/nconf.gui.c                |  656 ++++++
 xen/scripts/kconfig/nconf.h                    |   96 +
 xen/scripts/kconfig/qconf.cc                   | 1798 +++++++++++++++++
 xen/scripts/kconfig/qconf.h                    |  338 ++++
 xen/scripts/kconfig/streamline_config.pl       |  647 ++++++
 xen/scripts/kconfig/symbol.c                   | 1377 +++++++++++++
 xen/scripts/kconfig/util.c                     |  147 ++
 xen/scripts/kconfig/zconf.gperf                |   48 +
 xen/scripts/kconfig/zconf.hash.c_shipped       |  289 +++
 xen/scripts/kconfig/zconf.l                    |  372 ++++
 xen/scripts/kconfig/zconf.lex.c_shipped        | 2476 +++++++++++++++++++++++
 xen/scripts/kconfig/zconf.tab.c_shipped        | 2580 ++++++++++++++++++++++++
 xen/scripts/kconfig/zconf.y                    |  742 +++++++
 xen/xsm/dummy.c                                |   10 +-
 xen/xsm/flask/hooks.c                          |   34 +-
 xen/xsm/xsm_core.c                             |    2 +-
 xen/xsm/xsm_policy.c                           |    4 +-
 102 files changed, 25900 insertions(+), 187 deletions(-)
 create mode 100644 docs/misc/kconfig-language.txt
 create mode 100644 docs/misc/kconfig.txt
 create mode 100644 xen/Kconfig
 create mode 100644 xen/arch/arm/Kconfig
 create mode 100644 xen/arch/arm/configs/arm32_defconfig
 create mode 100644 xen/arch/arm/configs/arm64_defconfig
 create mode 100644 xen/arch/x86/Kconfig
 create mode 100644 xen/arch/x86/configs/x86_64_defconfig
 create mode 100644 xen/common/Kconfig
 create mode 100644 xen/drivers/Kconfig
 create mode 100644 xen/drivers/acpi/Kconfig
 create mode 100644 xen/drivers/char/Kconfig
 create mode 100644 xen/drivers/cpufreq/Kconfig
 create mode 100644 xen/drivers/passthrough/Kconfig
 create mode 100644 xen/drivers/pci/Kconfig
 create mode 100644 xen/drivers/video/Kconfig
 create mode 100644 xen/include/linux/kconfig.h
 create mode 100644 xen/scripts/Makefile.host
 create mode 100644 xen/scripts/kconfig/.gitignore
 create mode 100644 xen/scripts/kconfig/Makefile
 create mode 100644 xen/scripts/kconfig/Makefile.linux
 create mode 100644 xen/scripts/kconfig/POTFILES.in
 create mode 100755 xen/scripts/kconfig/check.sh
 create mode 100644 xen/scripts/kconfig/conf.c
 create mode 100644 xen/scripts/kconfig/confdata.c
 create mode 100644 xen/scripts/kconfig/expr.c
 create mode 100644 xen/scripts/kconfig/expr.h
 create mode 100644 xen/scripts/kconfig/gconf.c
 create mode 100644 xen/scripts/kconfig/gconf.glade
 create mode 100644 xen/scripts/kconfig/images.c
 create mode 100644 xen/scripts/kconfig/kxgettext.c
 create mode 100644 xen/scripts/kconfig/list.h
 create mode 100644 xen/scripts/kconfig/lkc.h
 create mode 100644 xen/scripts/kconfig/lkc_proto.h
 create mode 100644 xen/scripts/kconfig/lxdialog/.gitignore
 create mode 100644 xen/scripts/kconfig/lxdialog/BIG.FAT.WARNING
 create mode 100755 xen/scripts/kconfig/lxdialog/check-lxdialog.sh
 create mode 100644 xen/scripts/kconfig/lxdialog/checklist.c
 create mode 100644 xen/scripts/kconfig/lxdialog/dialog.h
 create mode 100644 xen/scripts/kconfig/lxdialog/inputbox.c
 create mode 100644 xen/scripts/kconfig/lxdialog/menubox.c
 create mode 100644 xen/scripts/kconfig/lxdialog/textbox.c
 create mode 100644 xen/scripts/kconfig/lxdialog/util.c
 create mode 100644 xen/scripts/kconfig/lxdialog/yesno.c
 create mode 100644 xen/scripts/kconfig/mconf.c
 create mode 100644 xen/scripts/kconfig/menu.c
 create mode 100755 xen/scripts/kconfig/merge_config.sh
 create mode 100644 xen/scripts/kconfig/nconf.c
 create mode 100644 xen/scripts/kconfig/nconf.gui.c
 create mode 100644 xen/scripts/kconfig/nconf.h
 create mode 100644 xen/scripts/kconfig/qconf.cc
 create mode 100644 xen/scripts/kconfig/qconf.h
 create mode 100755 xen/scripts/kconfig/streamline_config.pl
 create mode 100644 xen/scripts/kconfig/symbol.c
 create mode 100644 xen/scripts/kconfig/util.c
 create mode 100644 xen/scripts/kconfig/zconf.gperf
 create mode 100644 xen/scripts/kconfig/zconf.hash.c_shipped
 create mode 100644 xen/scripts/kconfig/zconf.l
 create mode 100644 xen/scripts/kconfig/zconf.lex.c_shipped
 create mode 100644 xen/scripts/kconfig/zconf.tab.c_shipped
 create mode 100644 xen/scripts/kconfig/zconf.y

-- 
2.4.10


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.