Hi Eugeniu,
Thanks for your great job! Almost looks good to me except one missed re-sync. See below. 2018-05-12 8:40 GMT+09:00 Eugeniu Rosca <ero...@de.adit-jv.com>: > Align Kconfig to Linux 4.17-rc4 with minimal impact on non-kconfig files. > > Previous Kconfig sync was done by commit bf7ab1e70fd762 ("kconfig: > re-sync with Linux 4.10") and it achieved almost perfect alignment with > a few (intended) exceptions, caused by below U-boot commits: > > [A] v2015.04 5f9eb2207500 ("kbuild: remove scripts/multiconfig.sh") > [B] v2015.07 20c20826efab ("Kconfig: Enable usage of escape char '\' in > string values") > [C] v2016.01 da58dec86616 ("Various Makefiles: Add SPDX-License-Identifier > tags") > [D] v2016.03 5b8031ccb4ed ("Add more SPDX-License-Identifier tags") > [E] v2016.03 192bc6948b02 ("Fix GCC format-security errors and convert > sprintfs.") > > Here is the list of Kconfig commits which followed the v4.10 alignment: > > [F] v2018.01 0931ed3c0d0f ("kconfig/symbol.c: use correct pointer type > argument for sizeof") > [G] v2018.03 1414e09b4f25 ("kconfig: revert change that was not needed for > -Wformat-security") > [H] v2018.05 83d290c56fab ("SPDX: Convert all of our single license tags to > Linux Kernel style") > > Commit [F] was subsequently applied to Linux kernel as commit [I] > with the same patch id, so it won't contribute to further misalignment. > > [I] v4.15-rc1 88127dae6ed9 ("kconfig/symbol.c: use correct pointer type > argument for sizeof") > > Commit [G] is a Kconfig-specific revert of commit [E]. > Commit [H] relocated and reformatted the license doing no functional change. > > In summary, the only functional change that makes U-boot Kconfig > diverge from Linux Kconfig is commit [B]. After a brief analysis, > the purpose of [B] seems to be placing "\n" literals in string symbols > like CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n" in order to pass > them directly to printf and expect correct output at runtime. Currently, > Linux doesn't seem to have this requirement, so for the moment [B] looks > like a U-boot specific feature/fix. From point of view of further Kconfig > alignment and backporting efforts, it is highly desired that commits > like [B] are propagated to Linux and any Kconfig fixes/features are > contributed to Linux kernel first. This specific Kconfig re-sync just > keeps [B] in place. > > Contrary to 4.10 Kconfig re-sync (which achieves zero non-kconfig > changes), 4.17-rc4 re-sync does some amount of updates in Kbuild > (striving to keep them at minimum), due to a number of reasons: > * Kbuild is affected by the removal of Kconfig "*shipped" files and now > requires flex and bison pre-installed on the host. > * PYTHON{2,3} variables are defined in top-level Makefile as > prerequisite for running the newly developed Kconfig unit tests. > * silentoldconfig becomes an "internal implementation detail" deprecated > for external use, being renamed to syncconfig. > > The exact non-kconfig files touched by this commit are: > > $ git show --format="" --stat -- ':!scripts/kconfig' > .gitignore | 2 ++ > Makefile | 9 +++++++-- > scripts/Makefile.build | 11 +++++++++++ > scripts/Makefile.lib | 41 ++++++++++++----------------------------- > > The imported Linux commits touching the above files are: > > c054be10ffdbd5 ("remove gperf left-overs from build system") > 73a4f6dbe70a1b ("kbuild: add LEX and YACC variables") > 033dba2ec06c47 ("kbuild: prepare to remove C files pre-generated by flex > and bison") > eea199b445f64c ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX") > e71de5ee08dcb0 ("kbuild: remove remaining use of undefined YACC_PREFIX") > d59fbbd09d5d6b ("kbuild: replace hardcoded bison in cmd_bison_h with > $(YACC)") > 911a91c39cabcb H ("kconfig: rename silentoldconfig to syncconfig") > 59889300274569 (".gitignore: move *.lex.c *.tab.[ch] patterns to the > top-level .gitignore") > 9a8dfb394c0467 ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from > top-level Makefile") > 833e622459432e H ("genksyms: generate lexer and parser during build instead > of shipping") > b23d1a241f4eb4 H ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' > automatically") > e9781b52d4e0e3 H ("kbuild: add PYTHON2 and PYTHON3 variables") > > The commits marked with 'H' are assessed as "hard" (build will fail) > prerequisites and the rest of them are assessed as "soft" prerequisites > for the re-sync. In spite of relatively high number of non-H commits, > they belong to this Kconfig update topic-wise and decrease the number of > cherry pick conflicts for many commits in this series. Additional effort > can be put in eliminating the soft prerequisites, if really needed. > > The commits which contributed to this Kconfig re-sync are listed below. > Whenever a conflict resolution has been performed (mostly by hand, but > sometimes automatically by git), it is revealed by the '!' sign in the > second column, which means a patch id mismatch between Linux and U-boot > commits: > > 9be3213b14d44f ("gconfig: remove misleading parentheses around a condition") > ff85a1a80e0034 ("kconfig: Check for libncurses before menuconfig") > ad8181060788c8 ("kconfig: fix sparse warnings in nconfig") > cb77f0d623ff33 ! ("scripts: Switch to more portable Perl shebang") > bb3290d91695bb ! ("Remove gperf usage from toolchain") > c054be10ffdbd5 ("remove gperf left-overs from build system") > b24413180f5600 ! ("License cleanup: add SPDX GPL-2.0 license identifier to > files with no license") > 9059a3493efea6 ! ("kconfig: fix relational operators for bool and tristate > symbols") > 2c37e08464a850 ("kconfig: Warn if choice default is not in choice") > 33ca1a24866373 ("kconfig: Document the 'menu' struct") > 52aede4ba5efd1 ("kconfig: Document the 'symbol' struct") > c873443430ebd1 ("kconfig: Sync zconf.y with zconf.tab.c_shipped") > 9a826842ff2fbd ("kconfig: Rename menu_check_dep() to rewrite_m()") > fa8cedaef814ce ("kconfig: Clarify expression rewriting") > f77850d3fe0c96 ("kconfig: Clean up modules handling and fix crash") > e3b03bf29d6b99 ("kconfig: display recursive dependency resolution hint just > once") > 73a4f6dbe70a1b ! ("kbuild: add LEX and YACC variables") > 033dba2ec06c47 ! ("kbuild: prepare to remove C files pre-generated by flex > and bison") > 29c833061c1d8c ("kconfig: generate lexer and parser during build instead of > shipping") > 26e47a3c11a25c ("kconfig: Don't leak symbol names during parsing") > 24161a6711c945 ("kconfig: Don't leak 'source' filenames during parsing") > bc28fe1d5ede88 ("kconfig: Don't leak 'option' arguments during parsing") > 0724a7c32a54e3 ("kconfig: Don't leak main menus during parsing") > ae7440ef0c8013 ("kconfig: Fix automatic menu creation mem leak") > 5b1374b3b3c2fc ("kconfig: Fix expr_free() E_NOT leak") > 7cf33f88e29410 ("kconfig: Fix choice symbol expression leak") > 05cccce580456d ("kconfig: Document automatic submenu creation code") > 0735f7e5def2ab ("kconfig: Document important expression functions") > df60f4b92d3d0b ("kconfig: Remove menu_end_entry()") > b92d804a51796b ("kconfig: drop 'boolean' keyword") > 6479f327dea60d ("kconfig: Warn if there is more than one help text") > 52e58a3caeba5d ("kconfig: make input_mode static") > 5a3dc717b3c785 ("kconfig: make xfgets() really static") > 84dd95d4f87a0d ("kconfig: make conf_unsaved a local variable of > conf_read()") > 765f4cdef6f80d ("kconfig: use default 'yy' prefix for lexer and parser") > eea199b445f64c ("kbuild: remove unnecessary LEX_PREFIX and YACC_PREFIX") > e71de5ee08dcb0 ("kbuild: remove remaining use of undefined YACC_PREFIX") > d59fbbd09d5d6b ! ("kbuild: replace hardcoded bison in cmd_bison_h with > $(YACC)") > 3e41ba05b6d60c ("kconfig: Document SYMBOL_OPTIONAL logic") > d3465af60f4471 ("kconfig: Clarify choice dependency propagation") > 9d1a9e8bc18bea ("kconfig: Document 'if' flattening logic") > b53688014e3325 ("kconfig: Clarify menu and 'if' dependency propagation") > d0fd0428ecf04b ("kconfig: fix make xconfig when gettext is missing") > 312ee68752faaa ("kconfig: announce removal of oldnoconfig if used") > 1ccb27143360bd ("kconfig: make "Selected by:" and "Implied by:" readable") > cedd55d49dee94 ! ("kconfig: Remove silentoldconfig from help and docs; fix > kconfig/conf's help") > 1b9eda2e4892cb ("kconfig: Warn if help text is blank") > cb67ab2cd2b8ab ("kconfig: do not write choice values when their dependency > becomes n") > 4f208f392103e8 ("kconfig: show '?' prompt even if no help text is > available") > cd58a91def2acc ("kconfig: remove 'config*' pattern from .gitignnore") > d2a04648a5dbc3 ("kconfig: remove check_stdin()") > f3ff6fb5db68bc ("kconfig: echo stdin to stdout if either is redirected") > 9e3e10c725360b ("kconfig: send error messages to stderr") > d717f24d8c6808 ("kconfig: add xrealloc() helper") > 523ca58b7db2e3 ("kconfig: remove const qualifier from > sym_expand_string_value()") > cd81fc82b93fa4 ("kconfig: add xstrdup() helper") > f4bc1eefc1608e ("kconfig: set SYMBOL_AUTO to the symbol marked with > defconfig_list") > bf0bbdcf100322 ("kconfig: Don't leak choice names during parsing") > 1a90ce36c6eff6 ("kconfig: Update ncurses package names for menuconfig") > 5ae6fcc4bb82bd ("kconfig: fix line number in recursive inclusion error > message") > 07a422bb213adb ! ("kbuild: restore autoksyms.h touch to the top Makefile") > 9a47ceec543bfb ("kconfig: clean-up reverse dependency help implementation") > d9119b5925a03b ("kconfig: Print reverse dependencies in groups") > f467c5640c29ad ("kconfig: only write '# CONFIG_FOO is not set' for visible > symbols") > 59a80b5e892dde ("kconfig: do not call check_conf() for olddefconfig") > 4bb3a5b085cd6f ("kconfig: remove unneeded input_mode test in conf()") > 99f0b6578bab44 ("kconfig: remove redundant input_mode test for check_conf() > loop") > 2aad9b89621386 ("kconfig: hide irrelevant sub-menus for oldconfig") > 81d2bc2273052e ("kconfig: invoke oldconfig instead of silentoldconfig from > local*config") > 911a91c39cabcb ! ("kconfig: rename silentoldconfig to syncconfig") > 2a61625835c7c8 ! ("kconfig: remove redundant streamline_config.pl > prerequisite") > 022a4bf6b59dfd ("kconfig: tests: add framework for Kconfig unit testing") > 1903c511905984 ("kconfig: tests: add basic choice tests") > 49ac3c0c3aa3b7 ("kconfig: tests: test automatic submenu creation") > b76960c0f6b25d ("kconfig: tests: test if new symbols in choice are asked") > 930c429a656fdb ("kconfig: tests: check unneeded "is not set" with unmet > dependency") > ee236610653ede ("kconfig: tests: check visibility of tristate choice values > in y choice") > beaaddb625400e ("kconfig: tests: test defconfig when two choices interact") > 3e4888c2e3d77d ("kconfig: tests: test randconfig for choice in choice") > 29c434f367ea7b ("kconfig: tests: test if recursive dependencies are > detected") > e2c75e7667c737 ("kconfig: tests: test if recursive inclusion is detected") > f622f827958162 ("kconfig: warn unmet direct dependency of tristate symbols > selected by y") > f8f69dc0b4e070 ("kconfig: make unmet dependency warnings readable") > 26561514cc9def ("kconfig: do not include both curses.h and ncurses.h for > nconfig") > 32a94b8b0c3e5a ("kconfig: remove duplicated file name and lineno of > recursive inclusion") > 379a8eb8eb1a55 ("kconfig: detect recursive inclusion earlier") > 18492685e479fd ("kconfig: use yylineno option instead of manual lineno > increments") > 59889300274569 ! (".gitignore: move *.lex.c *.tab.[ch] patterns to the > top-level .gitignore") > 9a8dfb394c0467 ! ("kbuild: clean up *.lex.c and *.tab.[ch] patterns from > top-level Makefile") > 833e622459432e ! ("genksyms: generate lexer and parser during build instead > of shipping") > b23d1a241f4eb4 ! ("kbuild: add %.lex.c and %.tab.[ch] to 'targets' > automatically") > 17baab68d337a0 ("kconfig: extend output of 'listnewconfig'") > e9781b52d4e0e3 ! ("kbuild: add PYTHON2 and PYTHON3 variables") > > The current Kconfig update generates below build-time warnings: > YACC scripts/dtc/dtc-parser.tab.h > scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr] > YACC scripts/dtc/dtc-parser.tab.c > scripts/dtc/dtc-parser.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr] > > This seems to happen because the Kbuild updates apparently didn't make > room for both "*shipped"-based builds and flex/bison-based builds. A > similar problem has been reported for genksyms parser in v4.17-rc1 > commit 833e622459432e ("genksyms: generate lexer and parser during build > instead of shipping"). I have figured out empirically that the warnings > are healed after updating the in-tree U-boot DTC to upstream v1.4.6-9, > same as done by Linux v4.17-rc1 commit 9130ba88464032 ("scripts/dtc: > Update to upstream version v1.4.6-9-gaadd0b65c987"). Whether fixing the > DTC-related yacc warnings should be done together with the Kconfig > re-sync, I would like to hear from community. I agree. Re-sync of scripts/dtc/ should follow. > + > # Help text used by make help > help: > @echo ' config - Update current config utilising a > line-oriented program' > @@ -152,7 +169,6 @@ help: > @echo ' oldconfig - Update current config utilising a > provided .config as base' > @echo ' localmodconfig - Update current config disabling modules > not loaded' > @echo ' localyesconfig - Update current config converting local > mods to core' > - @echo ' silentoldconfig - Same as oldconfig, but quietly, > additionally update deps' > @echo ' defconfig - New config with default from ARCH > supplied defconfig' > @echo ' savedefconfig - Save current config as ./defconfig > (minimal config)' > @echo ' allnoconfig - New config where all options are answered > with no' > @@ -161,7 +177,7 @@ help: > @echo ' alldefconfig - New config with all symbols set to > default' > @echo ' randconfig - New config with random answer to all > options' > @echo ' listnewconfig - List new options' > - @echo ' olddefconfig - Same as silentoldconfig but sets new > symbols to their' > + @echo ' olddefconfig - Same as oldconfig but sets new symbols to > their' > @echo ' default value' Linux commit cedd55d49dee added 'without prompting' after 'default value' Could you do likewise please? The other parts look good to me. Reviewed-by: Masahiro Yamada <yamada.masah...@socionext.com> -- Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot