mbox series

[XEN,v2,0/6] xen: Kconfig update with few extra

Message ID 20191217105901.68158-1-anthony.perard@citrix.com (mailing list archive)
Headers show
Series xen: Kconfig update with few extra | expand

Message

Anthony PERARD Dec. 17, 2019, 10:58 a.m. UTC
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

Comments

Julien Grall Dec. 23, 2019, 5:44 p.m. UTC | #1
Hi,

On 17/12/2019 11:58, Anthony PERARD wrote:
> 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.

Shall we update the dependencies in README?


> 
> This whole series should be "no functionality changes", I think.

The Arm changes looks good to me. Did you build test on Arm (either 
32-bit or 64-bit)?

Cheers,
Anthony PERARD Jan. 6, 2020, 10:50 a.m. UTC | #2
On Mon, Dec 23, 2019 at 06:44:11PM +0100, Julien Grall wrote:
> Hi,
> 
> On 17/12/2019 11:58, Anthony PERARD wrote:
> > 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.
> 
> Shall we update the dependencies in README?

No need, because Qt (for xconfig) or GTK (for gconfig) are optional, one
can use defconfig or menuconfig or one of the other *config to generate
Xen's .config.

> > 
> > This whole series should be "no functionality changes", I think.
> 
> The Arm changes looks good to me. Did you build test on Arm (either 32-bit
> or 64-bit)?

I've run the patch series on our GitLab CI and it successfully completed,
I hope that does the kind of Arm build you are looking for :-).

Cheers,
Julien Grall Jan. 6, 2020, 2:36 p.m. UTC | #3
Hi,

On 06/01/2020 10:50, Anthony PERARD wrote:
> On Mon, Dec 23, 2019 at 06:44:11PM +0100, Julien Grall wrote:
>> Hi,
>>
>> On 17/12/2019 11:58, Anthony PERARD wrote:
>>> 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.
>>
>> Shall we update the dependencies in README?
> 
> No need, because Qt (for xconfig) or GTK (for gconfig) are optional, one
> can use defconfig or menuconfig or one of the other *config to generate
> Xen's .config.
> 
>>>
>>> This whole series should be "no functionality changes", I think.
>>
>> The Arm changes looks good to me. Did you build test on Arm (either 32-bit
>> or 64-bit)?
> 
> I've run the patch series on our GitLab CI and it successfully completed,
> I hope that does the kind of Arm build you are looking for :-).

Yes :). Thank you for build testing on Arm!

Cheers,