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-cotequei...@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@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel