From patchwork Tue Dec 17 10:58:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony PERARD X-Patchwork-Id: 11297261 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B0A5A112B for ; Tue, 17 Dec 2019 11:00:38 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 805BC2064B for ; Tue, 17 Dec 2019 11:00:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="KkxNuKji" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 805BC2064B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ihAZQ-00087t-Jc; Tue, 17 Dec 2019 10:59:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ihAZP-00087V-1S for xen-devel@lists.xenproject.org; Tue, 17 Dec 2019 10:59:15 +0000 X-Inumbo-ID: 3daa97da-20bc-11ea-88e7-bc764e2007e4 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 3daa97da-20bc-11ea-88e7-bc764e2007e4; Tue, 17 Dec 2019 10:59:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1576580345; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=py1L1a1hnlZtjhBCf5UD8Vta88y+NrpzOX6C34f6I+o=; b=KkxNuKjiY8hiypO7BsexUgxTEcLZfDFyfTgIARVgalNrUhfd7hsL9C+h 5ovZMOwHY2uGcuMHMt/zpJAQGLp/D8l0nZFVPt/s7vcE0iq4PL46vxsDZ dWFTJLJ1uzgvxjk4MOA6jLMh8b5tKJcNJy3kKpbm79C0xEknT+zfMm4dL 4=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ExMkUjKh0hVhhGsPhHxUTx7jW+ic7qcHippq+pzcZeZiQ6Pot61ba6kfEICZj3fCWyUEtxWnlG aCagxY49/zUA0REVscDj76eSUVFuUbtkW4ULIwcg4phrSUIgKn7pSzw9DXoVIT8JdS6eh8N5jv nj8T8b27DRZABkxem/xhFp7JhcAg4RK/1RrxJcCtzz6Uth76DgntOsiJz9DDi8v/0AQjnTH+Ma vZqwzHpAPoHWDZrIlztUfPq/kl6nbvMhg1P1h8OA1P0gNupef6/NmvrLAUiMp06fu/lcTvumdU I1Y= X-SBRS: 2.7 X-MesageID: 10373263 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,325,1571716800"; d="scan'208";a="10373263" From: Anthony PERARD To: Date: Tue, 17 Dec 2019 10:58:55 +0000 Message-ID: <20191217105901.68158-1-anthony.perard@citrix.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [Xen-devel] [XEN PATCH v2 0/6] xen: Kconfig update with few extra X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Doug Goldstein , Jan Beulich , Anthony PERARD , Volodymyr Babchuk , Ian Jackson , =?utf-8?q?Roger_Pau_Monn=C3=A9?= Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Patch series available in this git branch: https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.build-system-xen-kconfig-v2 v2: nit changes in patch 1 and 2. Hi, This is a update of Kconfig as used to build the hypervisor. This is also in preparation of using Kbuild. The first version of the series, with a POC of using Kbuild to build xen can be found here: https://lists.xenproject.org/archives/html/xen-devel/2019-10/msg01609.html New features of Kconfig: - Can run shell commands! - Update to the graphical menuconfig, xconfig. It's now built with Qt4/Qt5. This whole series should be "no functionality changes", I think. Cheers, Anthony PERARD (6): xen: Update Kconfig to Linux v5.4 xen: Have Kconfig check $(CC)'s version xen: Import cc-ifversion from Kbuild xen: Move CONFIG_INDIRECT_THUNK to Kconfig xen: Use $(CONFIG_CC_IS_CLANG) instead of $(clang) in Makefile xen: Move GCC_HAS_VISIBILITY_ATTRIBUTE to Kconfig and common Config.mk | 5 - docs/misc/kconfig-language.rst | 701 +++++ docs/misc/kconfig-language.txt | 395 --- docs/misc/kconfig-macro-language.rst | 247 ++ docs/misc/{kconfig.txt => kconfig.rst} | 185 +- xen/Kconfig | 35 +- xen/Makefile | 6 +- xen/Rules.mk | 9 +- xen/arch/arm/Kconfig | 2 +- xen/arch/arm/Rules.mk | 4 - xen/arch/x86/Kconfig | 3 + xen/arch/x86/Rules.mk | 11 +- xen/common/Kconfig | 12 +- xen/common/coverage/Makefile | 10 +- xen/include/Makefile | 2 +- xen/include/xen/compiler.h | 2 +- xen/scripts/Kbuild.include | 7 + xen/scripts/Kconfig.include | 39 + xen/scripts/clang-version.sh | 19 + xen/scripts/gcc-version.sh | 20 + xen/tools/kconfig/.gitignore | 3 +- xen/tools/kconfig/Makefile | 268 +- xen/tools/kconfig/Makefile.host | 121 +- xen/tools/kconfig/Makefile.kconfig | 52 +- xen/tools/kconfig/conf.c | 191 +- xen/tools/kconfig/confdata.c | 491 ++-- xen/tools/kconfig/expr.c | 213 +- xen/tools/kconfig/expr.h | 108 +- xen/tools/kconfig/gconf-cfg.sh | 30 + xen/tools/kconfig/gconf.c | 39 +- xen/tools/kconfig/images.c | 34 +- xen/tools/kconfig/images.h | 33 + xen/tools/kconfig/lexer.l | 471 +++ xen/tools/kconfig/list.h | 1 + xen/tools/kconfig/lkc.h | 38 +- xen/tools/kconfig/lkc_proto.h | 21 +- xen/tools/kconfig/lxdialog/.gitignore | 4 - xen/tools/kconfig/lxdialog/BIG.FAT.WARNING | 2 +- xen/tools/kconfig/lxdialog/check-lxdialog.sh | 91 - xen/tools/kconfig/lxdialog/checklist.c | 15 +- xen/tools/kconfig/lxdialog/dialog.h | 17 +- xen/tools/kconfig/lxdialog/inputbox.c | 18 +- xen/tools/kconfig/lxdialog/menubox.c | 15 +- xen/tools/kconfig/lxdialog/textbox.c | 15 +- xen/tools/kconfig/lxdialog/util.c | 15 +- xen/tools/kconfig/lxdialog/yesno.c | 15 +- xen/tools/kconfig/mconf-cfg.sh | 47 + xen/tools/kconfig/mconf.c | 27 +- xen/tools/kconfig/menu.c | 288 +- xen/tools/kconfig/merge_config.sh | 87 +- xen/tools/kconfig/nconf-cfg.sh | 47 + xen/tools/kconfig/nconf.c | 42 +- xen/tools/kconfig/nconf.gui.c | 30 +- xen/tools/kconfig/nconf.h | 9 +- xen/tools/kconfig/{zconf.y => parser.y} | 409 ++- xen/tools/kconfig/preprocess.c | 574 ++++ xen/tools/kconfig/qconf-cfg.sh | 32 + xen/tools/kconfig/qconf.cc | 750 +++-- xen/tools/kconfig/qconf.h | 153 +- xen/tools/kconfig/streamline_config.pl | 53 +- xen/tools/kconfig/symbol.c | 295 +- xen/tools/kconfig/tests/auto_submenu/Kconfig | 52 + .../kconfig/tests/auto_submenu/__init__.py | 13 + .../tests/auto_submenu/expected_stdout | 10 + xen/tools/kconfig/tests/choice/Kconfig | 56 + xen/tools/kconfig/tests/choice/__init__.py | 41 + .../tests/choice/alldef_expected_config | 5 + .../tests/choice/allmod_expected_config | 9 + .../tests/choice/allno_expected_config | 5 + .../tests/choice/allyes_expected_config | 9 + .../tests/choice/oldask0_expected_stdout | 10 + xen/tools/kconfig/tests/choice/oldask1_config | 2 + .../tests/choice/oldask1_expected_stdout | 15 + .../tests/choice_value_with_m_dep/Kconfig | 21 + .../tests/choice_value_with_m_dep/__init__.py | 16 + .../tests/choice_value_with_m_dep/config | 2 + .../choice_value_with_m_dep/expected_config | 3 + .../choice_value_with_m_dep/expected_stdout | 4 + xen/tools/kconfig/tests/conftest.py | 291 ++ .../kconfig/tests/err_recursive_dep/Kconfig | 63 + .../tests/err_recursive_dep/__init__.py | 10 + .../tests/err_recursive_dep/expected_stderr | 38 + .../kconfig/tests/err_recursive_inc/Kconfig | 2 + .../tests/err_recursive_inc/Kconfig.inc1 | 5 + .../tests/err_recursive_inc/Kconfig.inc2 | 4 + .../tests/err_recursive_inc/Kconfig.inc3 | 2 + .../tests/err_recursive_inc/__init__.py | 11 + .../tests/err_recursive_inc/expected_stderr | 6 + xen/tools/kconfig/tests/inter_choice/Kconfig | 25 + .../kconfig/tests/inter_choice/__init__.py | 15 + .../kconfig/tests/inter_choice/defconfig | 1 + .../tests/inter_choice/expected_config | 4 + .../kconfig/tests/new_choice_with_dep/Kconfig | 39 + .../tests/new_choice_with_dep/__init__.py | 15 + .../kconfig/tests/new_choice_with_dep/config | 3 + .../tests/new_choice_with_dep/expected_stdout | 10 + .../tests/no_write_if_dep_unmet/Kconfig | 16 + .../tests/no_write_if_dep_unmet/__init__.py | 20 + .../tests/no_write_if_dep_unmet/config | 1 + .../no_write_if_dep_unmet/expected_config | 5 + .../tests/preprocess/builtin_func/Kconfig | 27 + .../tests/preprocess/builtin_func/__init__.py | 9 + .../preprocess/builtin_func/expected_stderr | 5 + .../preprocess/builtin_func/expected_stdout | 1 + .../preprocess/circular_expansion/Kconfig | 5 + .../preprocess/circular_expansion/__init__.py | 11 + .../circular_expansion/expected_stderr | 1 + .../kconfig/tests/preprocess/escape/Kconfig | 44 + .../tests/preprocess/escape/__init__.py | 8 + .../tests/preprocess/escape/expected_stderr | 10 + .../kconfig/tests/preprocess/variable/Kconfig | 53 + .../tests/preprocess/variable/__init__.py | 8 + .../tests/preprocess/variable/expected_stderr | 9 + xen/tools/kconfig/tests/pytest.ini | 7 + .../kconfig/tests/rand_nested_choice/Kconfig | 35 + .../tests/rand_nested_choice/__init__.py | 17 + .../tests/rand_nested_choice/expected_stdout0 | 2 + .../tests/rand_nested_choice/expected_stdout1 | 4 + .../tests/rand_nested_choice/expected_stdout2 | 5 + xen/tools/kconfig/util.c | 86 +- xen/tools/kconfig/zconf.gperf | 49 - xen/tools/kconfig/zconf.hash.c_shipped | 293 -- xen/tools/kconfig/zconf.l | 374 --- xen/tools/kconfig/zconf.lex.c_shipped | 2473 ---------------- xen/tools/kconfig/zconf.tab.c_shipped | 2580 ----------------- 125 files changed, 5760 insertions(+), 8093 deletions(-) create mode 100644 docs/misc/kconfig-language.rst delete mode 100644 docs/misc/kconfig-language.txt create mode 100644 docs/misc/kconfig-macro-language.rst rename docs/misc/{kconfig.txt => kconfig.rst} (70%) create mode 100644 xen/scripts/Kbuild.include create mode 100644 xen/scripts/Kconfig.include create mode 100755 xen/scripts/clang-version.sh create mode 100755 xen/scripts/gcc-version.sh create mode 100755 xen/tools/kconfig/gconf-cfg.sh create mode 100644 xen/tools/kconfig/images.h create mode 100644 xen/tools/kconfig/lexer.l delete mode 100644 xen/tools/kconfig/lxdialog/.gitignore delete mode 100755 xen/tools/kconfig/lxdialog/check-lxdialog.sh create mode 100755 xen/tools/kconfig/mconf-cfg.sh create mode 100755 xen/tools/kconfig/nconf-cfg.sh rename xen/tools/kconfig/{zconf.y => parser.y} (66%) create mode 100644 xen/tools/kconfig/preprocess.c create mode 100755 xen/tools/kconfig/qconf-cfg.sh create mode 100644 xen/tools/kconfig/tests/auto_submenu/Kconfig create mode 100644 xen/tools/kconfig/tests/auto_submenu/__init__.py create mode 100644 xen/tools/kconfig/tests/auto_submenu/expected_stdout create mode 100644 xen/tools/kconfig/tests/choice/Kconfig create mode 100644 xen/tools/kconfig/tests/choice/__init__.py create mode 100644 xen/tools/kconfig/tests/choice/alldef_expected_config create mode 100644 xen/tools/kconfig/tests/choice/allmod_expected_config create mode 100644 xen/tools/kconfig/tests/choice/allno_expected_config create mode 100644 xen/tools/kconfig/tests/choice/allyes_expected_config create mode 100644 xen/tools/kconfig/tests/choice/oldask0_expected_stdout create mode 100644 xen/tools/kconfig/tests/choice/oldask1_config create mode 100644 xen/tools/kconfig/tests/choice/oldask1_expected_stdout create mode 100644 xen/tools/kconfig/tests/choice_value_with_m_dep/Kconfig create mode 100644 xen/tools/kconfig/tests/choice_value_with_m_dep/__init__.py create mode 100644 xen/tools/kconfig/tests/choice_value_with_m_dep/config create mode 100644 xen/tools/kconfig/tests/choice_value_with_m_dep/expected_config create mode 100644 xen/tools/kconfig/tests/choice_value_with_m_dep/expected_stdout create mode 100644 xen/tools/kconfig/tests/conftest.py create mode 100644 xen/tools/kconfig/tests/err_recursive_dep/Kconfig create mode 100644 xen/tools/kconfig/tests/err_recursive_dep/__init__.py create mode 100644 xen/tools/kconfig/tests/err_recursive_dep/expected_stderr create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/Kconfig create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/Kconfig.inc1 create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/Kconfig.inc2 create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/Kconfig.inc3 create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/__init__.py create mode 100644 xen/tools/kconfig/tests/err_recursive_inc/expected_stderr create mode 100644 xen/tools/kconfig/tests/inter_choice/Kconfig create mode 100644 xen/tools/kconfig/tests/inter_choice/__init__.py create mode 100644 xen/tools/kconfig/tests/inter_choice/defconfig create mode 100644 xen/tools/kconfig/tests/inter_choice/expected_config create mode 100644 xen/tools/kconfig/tests/new_choice_with_dep/Kconfig create mode 100644 xen/tools/kconfig/tests/new_choice_with_dep/__init__.py create mode 100644 xen/tools/kconfig/tests/new_choice_with_dep/config create mode 100644 xen/tools/kconfig/tests/new_choice_with_dep/expected_stdout create mode 100644 xen/tools/kconfig/tests/no_write_if_dep_unmet/Kconfig create mode 100644 xen/tools/kconfig/tests/no_write_if_dep_unmet/__init__.py create mode 100644 xen/tools/kconfig/tests/no_write_if_dep_unmet/config create mode 100644 xen/tools/kconfig/tests/no_write_if_dep_unmet/expected_config create mode 100644 xen/tools/kconfig/tests/preprocess/builtin_func/Kconfig create mode 100644 xen/tools/kconfig/tests/preprocess/builtin_func/__init__.py create mode 100644 xen/tools/kconfig/tests/preprocess/builtin_func/expected_stderr create mode 100644 xen/tools/kconfig/tests/preprocess/builtin_func/expected_stdout create mode 100644 xen/tools/kconfig/tests/preprocess/circular_expansion/Kconfig create mode 100644 xen/tools/kconfig/tests/preprocess/circular_expansion/__init__.py create mode 100644 xen/tools/kconfig/tests/preprocess/circular_expansion/expected_stderr create mode 100644 xen/tools/kconfig/tests/preprocess/escape/Kconfig create mode 100644 xen/tools/kconfig/tests/preprocess/escape/__init__.py create mode 100644 xen/tools/kconfig/tests/preprocess/escape/expected_stderr create mode 100644 xen/tools/kconfig/tests/preprocess/variable/Kconfig create mode 100644 xen/tools/kconfig/tests/preprocess/variable/__init__.py create mode 100644 xen/tools/kconfig/tests/preprocess/variable/expected_stderr create mode 100644 xen/tools/kconfig/tests/pytest.ini create mode 100644 xen/tools/kconfig/tests/rand_nested_choice/Kconfig create mode 100644 xen/tools/kconfig/tests/rand_nested_choice/__init__.py create mode 100644 xen/tools/kconfig/tests/rand_nested_choice/expected_stdout0 create mode 100644 xen/tools/kconfig/tests/rand_nested_choice/expected_stdout1 create mode 100644 xen/tools/kconfig/tests/rand_nested_choice/expected_stdout2 delete mode 100644 xen/tools/kconfig/zconf.gperf delete mode 100644 xen/tools/kconfig/zconf.hash.c_shipped delete mode 100644 xen/tools/kconfig/zconf.l delete mode 100644 xen/tools/kconfig/zconf.lex.c_shipped delete mode 100644 xen/tools/kconfig/zconf.tab.c_shipped