From patchwork Thu Dec 12 18:27:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony PERARD X-Patchwork-Id: 11289069 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 6BB17109A for ; Thu, 12 Dec 2019 18:29:46 +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 3D8A12073D for ; Thu, 12 Dec 2019 18:29:46 +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="XdcMuzSZ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3D8A12073D 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 1ifTCQ-0007SH-GY; Thu, 12 Dec 2019 18:28:30 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ifTCP-0007Rc-HG for xen-devel@lists.xenproject.org; Thu, 12 Dec 2019 18:28:29 +0000 X-Inumbo-ID: 24a471b4-1d0d-11ea-a914-bc764e2007e4 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 24a471b4-1d0d-11ea-a914-bc764e2007e4; Thu, 12 Dec 2019 18:28:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1576175288; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=UYbmrJrUFNIRTBkrDe9XhS+fdthS2Srltm7i5MRWrH0=; b=XdcMuzSZlVdxy9L7ksVMRs2gRcQRC9Oy/Sb9NkMyggtoGKe6ByxISOvl VQ4pX2+KboSX1DYB6VEmNdKHlcyG5dW323yaP3RmItvD0C3MLmgs4KEPn RCeN6FSaRI1MVevNlu1fF51jTqZtsLO2LQJMgqTV6XBQALZvIlTQMRK7L c=; Authentication-Results: esa2.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 (esa2.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=esa2.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.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=esa2.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 (esa2.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=esa2.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ukCMti53FSzErSI6d6GgVKbUzMVhhwguVkENmsV/yFfsGiQJwwoDaan/K5Ifln4XXcPpLuRMcI UksC9qa2U2Bsa7y+vliB+aBcMBSpQR0zztm25VDgs8TVGWXaITDdj8P++Yj2dZ++5bb+M9XOwd q3AvweKzpp4VUaBfp91LTVkpazLmFWyUvGrjblkymmgwmsOHJAw2JMwH5dPaPqdfCh/fukwtD0 Eb6t5C0JbiHcNd1GzWmbEBsheJnLTNydH3yxsjvc/OkCOjL1HFruCc6qzRIwcRx+tzjOtV1sqd AKo= X-SBRS: 2.7 X-MesageID: 9611967 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,306,1571716800"; d="scan'208";a="9611967" From: Anthony PERARD To: Date: Thu, 12 Dec 2019 18:27:32 +0000 Message-ID: <20191212182740.2190199-1-anthony.perard@citrix.com> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 Subject: [Xen-devel] [XEN PATCH 0/8] 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-v1 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 There's also some cleanup patches. It has been suggested to me that Kconfig's new capability could be used to generate CFLAGS. I'm not sure how, but I've already added some patches where having CONFIG_* was already used. New features of Kconfig: - Can run shell commands! This could be use to generate the CFLAGS and cleanup the Kconfig files to not have to depends on some env var (like XEN_HAS_BUILD_ID). - Update to the graphical menuconfig, xconfig. It's now built with Qt4/Qt5. - Probably others that I forgot. This whole series should be "no functionality changes", I think. Cheers, Anthony PERARD (8): Config.mk: Remove unused setvar_dir macro Config.mk: Remove stray comment 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 | 19 - docs/misc/distro_mapping.txt | 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/.gitignore | 2 + xen/Kconfig | 35 +- xen/Makefile | 5 +- 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 | 6 +- 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 ----------------- 127 files changed, 5763 insertions(+), 8113 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/.gitignore 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