[OpenWrt-Devel] [PATCH v3 0/3] build: update scripts/config to kconfig-v5.6

Eneas U de Queiroz cotequeiroz at gmail.com
Sun Apr 19 19:12:49 EDT 2020


After breaking the build bots for a couple of days, this is another
attempt to update scripts/config to linux kconfig-v5.6.  This time I've
spent some time testing it with the SDK, which is heavily dependent on
recursive dependencies.

While testing it, I found some minor bugs, which I've sent separate
patches to fix.  I've kept them out of this series, as they are
independent anyway.

I've changed the default behavior to treat them as warnings, not errors.
Instead of a compile-time choice, I've added a command-line option to
scripts/config/conf, --fatalrecursive, to error out when detecing a
recursive dependency.  The option is activated in openwrt by running
make with RECURSIVE_DEP_IS_ERROR=1.

Another change from v2 was that the commit handling the selection of a
module from a bool, 9bfa6971ae ("scripts/config: properly handle select
on symbols with unmet direct dependencies"), which was not done right in
v2, was properly fixed here.

The commits to get from upstream kconfig-v5.6 to the openwrt version
here can be seen at
https://github.com/cotequeiroz/linux/commits/openwrt/scripts/kconfig

The last commit of this series is optional.  Previously, ldir had
included leftover temporary files from previous version to .gitignore,
so git would not complain about untracked files.  I took that one step
further and added them to make config-clean.  I do intend this to be
temporary, to be reverted before the next branch, and  added comments
to the affected lines as a reminder.

I don't have the resources to do a full buildbot setup, but I've used
jow's suggested simpler way of testing it with the SDK.  I've compared
the output of the failed run with the v2 of this patch applied, from the
bots and with the SDK, and the errors do appear to be the same.

I've tested this with a self-compiled SKD for ath79, and compared the
resulting .config files against master at 508462a399.  I've also used
several config.buildinfo from snapshots of different targets on full 
build root.  I used this to compare the generated .config files:
  diff -I '^\(# end of.*\)\?$' openwrt.{old,new}/.config
The new version adds '# end of <menu>' comments, which are being
ignored.

While working with the SDK, I've applied a previously submitted patch
("sdk: add OpenWrt branding to menuconfig & .config")
https://patchwork.ozlabs.org/project/openwrt/patch/20200418214931.24983-1-cotequeiroz@gmail.com/
so that the titles of the .config files would match.

I also tested the behavior of menuconfig when selecting multiple
targets, to ensure the selection of a module from a bool was working as
intended.

Eneas U de Queiroz (3):
  build: scripts/config - update to kconfig-v5.6
  build: add option to treat recursive deps as error
  build: have config-clean deal with old temp files

 include/toplevel.mk                           |   13 +-
 scripts/config/.gitignore                     |   34 +-
 scripts/config/Makefile                       |  177 +-
 scripts/config/README                         |   29 +-
 scripts/config/conf.c                         |  255 +-
 scripts/config/confdata.c                     |  533 +-
 scripts/config/expr.c                         |  216 +-
 scripts/config/expr.h                         |  110 +-
 scripts/config/images.c                       |   34 +-
 scripts/config/images.h                       |   33 +
 scripts/config/{zconf.l => lexer.l}           |  340 +-
 scripts/config/lexer.lex.c                    | 4499 +++++++++++++++++
 scripts/config/list.h                         |    1 +
 scripts/config/lkc.h                          |   59 +-
 scripts/config/lkc_proto.h                    |   21 +-
 scripts/config/lxdialog/.gitignore            |    2 -
 scripts/config/lxdialog/check-lxdialog.sh     |   91 -
 scripts/config/lxdialog/checklist.c           |   19 +-
 scripts/config/lxdialog/dialog.h              |   23 +-
 scripts/config/lxdialog/inputbox.c            |   22 +-
 scripts/config/lxdialog/menubox.c             |   25 +-
 scripts/config/lxdialog/textbox.c             |   17 +-
 scripts/config/lxdialog/util.c                |   15 +-
 scripts/config/lxdialog/yesno.c               |   19 +-
 scripts/config/mconf-cfg.sh                   |   50 +
 scripts/config/mconf.c                        |  179 +-
 scripts/config/menu.c                         |  451 +-
 .../{zconf.tab.c_shipped => parser.tab.c}     |  939 ++--
 scripts/config/parser.tab.h                   |  129 +
 scripts/config/{zconf.y => parser.y}          |  429 +-
 scripts/config/preprocess.c                   |  575 +++
 scripts/config/qconf-cfg.sh                   |   32 +
 scripts/config/qconf.cc                       |  174 +-
 scripts/config/qconf.h                        |    3 +-
 scripts/config/symbol.c                       |  272 +-
 scripts/config/util.c                         |   86 +-
 scripts/config/zconf.gperf                    |   49 -
 scripts/config/zconf.hash.c_shipped           |  250 -
 scripts/config/zconf.lex.c_shipped            | 2533 ----------
 39 files changed, 7782 insertions(+), 4956 deletions(-)
 create mode 100644 scripts/config/images.h
 rename scripts/config/{zconf.l => lexer.l} (50%)
 create mode 100644 scripts/config/lexer.lex.c
 delete mode 100644 scripts/config/lxdialog/.gitignore
 delete mode 100644 scripts/config/lxdialog/check-lxdialog.sh
 create mode 100755 scripts/config/mconf-cfg.sh
 rename scripts/config/{zconf.tab.c_shipped => parser.tab.c} (73%)
 create mode 100644 scripts/config/parser.tab.h
 rename scripts/config/{zconf.y => parser.y} (64%)
 create mode 100644 scripts/config/preprocess.c
 create mode 100755 scripts/config/qconf-cfg.sh
 delete mode 100644 scripts/config/zconf.gperf
 delete mode 100644 scripts/config/zconf.hash.c_shipped
 delete mode 100644 scripts/config/zconf.lex.c_shipped


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list