Message ID | 20180508175911.16259-1-erosca@de.adit-jv.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] kconfig: Print reverse dependencies in groups | expand |
Hi. 2018-05-09 2:59 GMT+09:00 Eugeniu Rosca <erosca@de.adit-jv.com>: > Not sure if partial/limited sync with Linux Kconfig is practiced, but > if yes, then pick below three Linux commits, which are focused around > improving the readability of reverse dependencies in menuconfig UI. > > [1] commit 1ccb27143360bd2390a9a970e50709f858b53761 > Author: Petr Vorel <petr.vorel@gmail.com> > kconfig: make "Selected by:" and "Implied by:" readable > > [2] commit 9a47ceec543bfb703fbe2f8d584850b582caf1a6 > Masahiro Yamada <yamada.masahiro@socionext.com> > kconfig: clean-up reverse dependency help implementation > > [3] commit d9119b5925a03b9a3191fa3e93b4091651d8ad25 > Author: Eugeniu Rosca <erosca@de.adit-jv.com> > kconfig: Print reverse dependencies in groups > > Here is an example of re-formatted information about the reverse > dependencies of CONFIG_DM (sandbox_defconfig): > > * W/o the imported commits: > > Selected by: NIOS2 [=n] && <choice> || SANDBOX [=y] && <choice> || X86 > [=n] && <choice> || ARCH_MVEBU [=n] && <choice> || TARGET_STV0991 [=n] > && <choice> || ARCH_BCM283X [=n] && <choice> || ARCH_EXYNOS [=n] && > <choice> || ARCH_S5PC1XX [=n] && ... > > * With the imported commits: > > Selected by [y]: > - SANDBOX [=y] && <choice> > - LOG [=y] > Selected by [n]: > - NIOS2 [=n] && <choice> > - X86 [=n] && <choice> > - ARCH_MVEBU [=n] && <choice> > - TARGET_STV0991 [=n] && <choice> > - ARCH_BCM283X [=n] && <choice> > - ARCH_EXYNOS [=n] && <choice> > - ARCH_S5PC1XX [=n] && <choice> > - ARCH_INTEGRATOR [=n] && <choice> > - ARCH_MX8M [=n] && <choice> > - ARCH_QEMU [=n] && <choice> > - ARCH_RMOBILE [=n] && <choice> > - ARCH_SNAPDRAGON [=n] && <choice> > - ARCH_SOCFPGA [=n] && <choice> > - ARCH_SUNXI [=n] && <choice> > - ARCH_ZYNQ [=n] && <choice> > - ARCH_ZYNQMP [=n] && <choice> > - TARGET_HIKEY [=n] && <choice> > ... > > Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> > --- I prefer syncing to check-picking. The previous sync was Linux 4.10 commit bf7ab1e70fd7621fea5dea07b6975c576119b86e Author: Masahiro Yamada <yamada.masahiro@socionext.com> Date: Sat Feb 11 12:39:54 2017 +0900 kconfig: re-sync with Linux 4.10 Re-sync all files under the scripts/kconfig directory with Linux 4.10. Some parts include U-Boot own modification. I made sure to not revert the following commits: 5b8031ccb4ed ("Add more SPDX-License-Identifier tags") 192bc6948b02 ("Fix GCC format-security errors and convert sprintfs.") da58dec86616 ("Various Makefiles: Add SPDX-License-Identifier tags") 20c20826efab ("Kconfig: Enable usage of escape char '\' in string values") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> I still we still need to carry 20c20826efab for U-Boot. Would you do that please? Or, do you want me to do it?
On Wed, May 09, 2018 at 10:27:00AM +0900, Masahiro Yamada wrote: > Hi. > > 2018-05-09 2:59 GMT+09:00 Eugeniu Rosca <erosca@de.adit-jv.com>: > > Not sure if partial/limited sync with Linux Kconfig is practiced, but > > if yes, then pick below three Linux commits, which are focused around > > improving the readability of reverse dependencies in menuconfig UI. > > > > [1] commit 1ccb27143360bd2390a9a970e50709f858b53761 > > Author: Petr Vorel <petr.vorel@gmail.com> > > kconfig: make "Selected by:" and "Implied by:" readable > > > > [2] commit 9a47ceec543bfb703fbe2f8d584850b582caf1a6 > > Masahiro Yamada <yamada.masahiro@socionext.com> > > kconfig: clean-up reverse dependency help implementation > > > > [3] commit d9119b5925a03b9a3191fa3e93b4091651d8ad25 > > Author: Eugeniu Rosca <erosca@de.adit-jv.com> > > kconfig: Print reverse dependencies in groups > > > > Here is an example of re-formatted information about the reverse > > dependencies of CONFIG_DM (sandbox_defconfig): > > > > * W/o the imported commits: > > > > Selected by: NIOS2 [=n] && <choice> || SANDBOX [=y] && <choice> || X86 > > [=n] && <choice> || ARCH_MVEBU [=n] && <choice> || TARGET_STV0991 [=n] > > && <choice> || ARCH_BCM283X [=n] && <choice> || ARCH_EXYNOS [=n] && > > <choice> || ARCH_S5PC1XX [=n] && ... > > > > * With the imported commits: > > > > Selected by [y]: > > - SANDBOX [=y] && <choice> > > - LOG [=y] > > Selected by [n]: > > - NIOS2 [=n] && <choice> > > - X86 [=n] && <choice> > > - ARCH_MVEBU [=n] && <choice> > > - TARGET_STV0991 [=n] && <choice> > > - ARCH_BCM283X [=n] && <choice> > > - ARCH_EXYNOS [=n] && <choice> > > - ARCH_S5PC1XX [=n] && <choice> > > - ARCH_INTEGRATOR [=n] && <choice> > > - ARCH_MX8M [=n] && <choice> > > - ARCH_QEMU [=n] && <choice> > > - ARCH_RMOBILE [=n] && <choice> > > - ARCH_SNAPDRAGON [=n] && <choice> > > - ARCH_SOCFPGA [=n] && <choice> > > - ARCH_SUNXI [=n] && <choice> > > - ARCH_ZYNQ [=n] && <choice> > > - ARCH_ZYNQMP [=n] && <choice> > > - TARGET_HIKEY [=n] && <choice> > > ... > > > > Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> > > > I prefer syncing to check-picking. > > > The previous sync was Linux 4.10 > > > > commit bf7ab1e70fd7621fea5dea07b6975c576119b86e > Author: Masahiro Yamada <yamada.masahiro@socionext.com> > Date: Sat Feb 11 12:39:54 2017 +0900 > > kconfig: re-sync with Linux 4.10 > > Re-sync all files under the scripts/kconfig directory with > Linux 4.10. > > Some parts include U-Boot own modification. I made sure to not > revert the following commits: > > 5b8031ccb4ed ("Add more SPDX-License-Identifier tags") > 192bc6948b02 ("Fix GCC format-security errors and convert sprintfs.") > da58dec86616 ("Various Makefiles: Add SPDX-License-Identifier tags") > 20c20826efab ("Kconfig: Enable usage of escape char '\' in string values") > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > > > I still we still need to carry 20c20826efab for U-Boot. > > > Would you do that please? > Or, do you want me to do it? I'd greatly appreciate it if you can do a sync up to v4.17-rc4 or so. Thanks!
Hi Eugeniu, > Not sure if partial/limited sync with Linux Kconfig is practiced, but > if yes, then pick below three Linux commits, which are focused around > improving the readability of reverse dependencies in menuconfig UI. > [1] commit 1ccb27143360bd2390a9a970e50709f858b53761 > Author: Petr Vorel <petr.vorel@gmail.com> > kconfig: make "Selected by:" and "Implied by:" readable > [2] commit 9a47ceec543bfb703fbe2f8d584850b582caf1a6 > Masahiro Yamada <yamada.masahiro@socionext.com> > kconfig: clean-up reverse dependency help implementation > [3] commit d9119b5925a03b9a3191fa3e93b4091651d8ad25 > Author: Eugeniu Rosca <erosca@de.adit-jv.com> > kconfig: Print reverse dependencies in groups Thanks for doing it. I also think that syncing to Linux version is better way. Kind regards, Petr
Masahiro, Tom, Petr, Thanks for your prompt feedback. > On Wed, May 09, 2018 at 10:27:00AM +0900, Masahiro Yamada wrote: > > I prefer syncing to check-picking. > > [...] > > Would you do that please? > > Or, do you want me to do it? I would happily attempt that. However, see my below question. On Tue, May 08, 2018 at 09:31:42PM -0400, Tom Rini wrote: > I'd greatly appreciate it if you can do a sync up to v4.17-rc4 or so. Just to avoid any miscommunication, is my understanding correct that this is an explicit request for Masahiro to take care of the update? I would totally understand this. FWIW, here is some statistics of the kernel kconfig development in the v4.10..v4.17-rc4 commit range: - 86 non-merge change-sets: git rev-list --no-merges --count v4.10..v4.17-rc4 -- scripts/kconfig/ 86 - 8 Kconfig commits which touch non-Kconfig files too (ignoring Documentation) and hence might require more delicate conflict resolution: for c in $(git rev-list --reverse --no-merges v4.10..v4.17-rc4 -- scripts/kconfig/); do if (git log --full-diff --format="" --name-only -1 $c -- scripts/kconfig | egrep -v "scripts/kconfig|Documentation" > /dev/null); then git --no-pager log --oneline $c -1; fi; done cb77f0d623ff scripts: Switch to more portable Perl shebang bb3290d91695 Remove gperf usage from toolchain b24413180f56 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 07a422bb213a kbuild: restore autoksyms.h touch to the top Makefile 911a91c39cab kconfig: rename silentoldconfig to syncconfig 598893002745 .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore 9a8dfb394c04 kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile b23d1a241f4e kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically I also think that the most sensitive part of this update is related to: - changed tooling requirements for hosts, e.g. flex and bison seem to be required starting with commit 29c833061c1d ("kconfig: generate lexer and parser during build instead of shipping"). - dropped silentoldconfig support, starting with commit cedd55d49dee ("kconfig: Remove silentoldconfig from help and docs; fix kconfig/conf's help"). There might be questions from users experiencing build errors/warnings after the update, same as we've seen in [1]. [1] https://patchwork.kernel.org/patch/10318503/ I would appreciate if Tom answers the question raised in the beginning of my post. Best regards, Eugeniu.
Hi Engeniu, > -----Original Message----- > From: Eugeniu Rosca [mailto:erosca@de.adit-jv.com] > Sent: Wednesday, May 09, 2018 5:04 PM > To: Tom Rini <trini@konsulko.com>; Yamada, Masahiro/山田 真弘 > <yamada.masahiro@socionext.com>; Petr Vorel <pvorel@suse.cz> > Cc: Ulf Magnusson <ulfalizer@gmail.com>; Simon Glass <sjg@chromium.org>; > U-Boot Mailing List <u-boot@lists.denx.de>; Eugeniu Rosca > <erosca@de.adit-jv.com>; Eugeniu Rosca <rosca.eugeniu@gmail.com> > Subject: Re: [U-Boot] [PATCH] kconfig: Print reverse dependencies in groups > > Masahiro, Tom, Petr, > > Thanks for your prompt feedback. > > > On Wed, May 09, 2018 at 10:27:00AM +0900, Masahiro Yamada wrote: > > > I prefer syncing to check-picking. > > > [...] > > > Would you do that please? > > > Or, do you want me to do it? > > I would happily attempt that. However, see my below question. > > On Tue, May 08, 2018 at 09:31:42PM -0400, Tom Rini wrote: > > I'd greatly appreciate it if you can do a sync up to v4.17-rc4 or so. > > Just to avoid any miscommunication, is my understanding correct that > this is an explicit request for Masahiro to take care of the update? I > would totally understand this. > > FWIW, here is some statistics of the kernel kconfig development in the > v4.10..v4.17-rc4 commit range: > > - 86 non-merge change-sets: > git rev-list --no-merges --count v4.10..v4.17-rc4 -- scripts/kconfig/ > 86 > > - 8 Kconfig commits which touch non-Kconfig files too (ignoring > Documentation) and hence might require more delicate conflict > resolution: > > for c in $(git rev-list --reverse --no-merges v4.10..v4.17-rc4 -- > scripts/kconfig/); do > if (git log --full-diff --format="" --name-only -1 $c -- scripts/kconfig > | > egrep -v "scripts/kconfig|Documentation" > /dev/null); then > git --no-pager log --oneline $c -1; > fi; > done > > cb77f0d623ff scripts: Switch to more portable Perl shebang > bb3290d91695 Remove gperf usage from toolchain > b24413180f56 License cleanup: add SPDX GPL-2.0 license identifier to files > with no license > 07a422bb213a kbuild: restore autoksyms.h touch to the top Makefile > 911a91c39cab kconfig: rename silentoldconfig to syncconfig > 598893002745 .gitignore: move *.lex.c *.tab.[ch] patterns to the > top-level .gitignore > 9a8dfb394c04 kbuild: clean up *.lex.c and *.tab.[ch] patterns from > top-level Makefile > b23d1a241f4e kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically > > I also think that the most sensitive part of this update is related to: > - changed tooling requirements for hosts, e.g. flex and bison seem to > be required starting with commit 29c833061c1d ("kconfig: generate > lexer and parser during build instead of shipping"). > - dropped silentoldconfig support, starting with commit cedd55d49dee > ("kconfig: Remove silentoldconfig from help and docs; fix > kconfig/conf's help"). > > There might be questions from users experiencing build errors/warnings > after the update, same as we've seen in [1]. > > [1] https://patchwork.kernel.org/patch/10318503/ > > I would appreciate if Tom answers the question raised in the beginning > of my post. Tom will make a decision. Just my thought. U-Boot is basically a mirror of Linux. Syncing Kconfig will add new tool requirement, flex & bison, for building U-Boot, but this is OK because Linux does it. U-Boot follows Linux, for example, recently U-Boot adopted Linux-like SPDX license tag style. And, you understand well the points for resyncing. Yes, other parts must be adjusted. So, I am happy if you contribute to this work. Thanks!
Hi Eugeniu, > FWIW, here is some statistics of the kernel kconfig development in the > v4.10..v4.17-rc4 commit range: > - 86 non-merge change-sets: > git rev-list --no-merges --count v4.10..v4.17-rc4 -- scripts/kconfig/ > 86 FYI: I send some time ago a patchset to update kconfig in buildroot, where delta is even bigger as sync was to 3.13-rc5 (+ some fixes). > Eugeniu. Kind regards, Petr [1] https://patchwork.ozlabs.org/project/buildroot/list/?series=40942
On Wed, May 09, 2018 at 08:32:56AM +0000, yamada.masahiro@socionext.com wrote: > Hi Engeniu, > > > -----Original Message----- > > From: Eugeniu Rosca [mailto:erosca@de.adit-jv.com] > > Sent: Wednesday, May 09, 2018 5:04 PM > > To: Tom Rini <trini@konsulko.com>; Yamada, Masahiro/山田 真弘 > > <yamada.masahiro@socionext.com>; Petr Vorel <pvorel@suse.cz> > > Cc: Ulf Magnusson <ulfalizer@gmail.com>; Simon Glass <sjg@chromium.org>; > > U-Boot Mailing List <u-boot@lists.denx.de>; Eugeniu Rosca > > <erosca@de.adit-jv.com>; Eugeniu Rosca <rosca.eugeniu@gmail.com> > > Subject: Re: [U-Boot] [PATCH] kconfig: Print reverse dependencies in groups > > > > Masahiro, Tom, Petr, > > > > Thanks for your prompt feedback. > > > > > On Wed, May 09, 2018 at 10:27:00AM +0900, Masahiro Yamada wrote: > > > > I prefer syncing to check-picking. > > > > [...] > > > > Would you do that please? > > > > Or, do you want me to do it? > > > > I would happily attempt that. However, see my below question. > > > > On Tue, May 08, 2018 at 09:31:42PM -0400, Tom Rini wrote: > > > I'd greatly appreciate it if you can do a sync up to v4.17-rc4 or so. > > > > Just to avoid any miscommunication, is my understanding correct that > > this is an explicit request for Masahiro to take care of the update? I > > would totally understand this. > > > > FWIW, here is some statistics of the kernel kconfig development in the > > v4.10..v4.17-rc4 commit range: > > > > - 86 non-merge change-sets: > > git rev-list --no-merges --count v4.10..v4.17-rc4 -- scripts/kconfig/ > > 86 > > > > - 8 Kconfig commits which touch non-Kconfig files too (ignoring > > Documentation) and hence might require more delicate conflict > > resolution: > > > > for c in $(git rev-list --reverse --no-merges v4.10..v4.17-rc4 -- > > scripts/kconfig/); do > > if (git log --full-diff --format="" --name-only -1 $c -- scripts/kconfig > > | > > egrep -v "scripts/kconfig|Documentation" > /dev/null); then > > git --no-pager log --oneline $c -1; > > fi; > > done > > > > cb77f0d623ff scripts: Switch to more portable Perl shebang > > bb3290d91695 Remove gperf usage from toolchain > > b24413180f56 License cleanup: add SPDX GPL-2.0 license identifier to files > > with no license > > 07a422bb213a kbuild: restore autoksyms.h touch to the top Makefile > > 911a91c39cab kconfig: rename silentoldconfig to syncconfig > > 598893002745 .gitignore: move *.lex.c *.tab.[ch] patterns to the > > top-level .gitignore > > 9a8dfb394c04 kbuild: clean up *.lex.c and *.tab.[ch] patterns from > > top-level Makefile > > b23d1a241f4e kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically > > > > I also think that the most sensitive part of this update is related to: > > - changed tooling requirements for hosts, e.g. flex and bison seem to > > be required starting with commit 29c833061c1d ("kconfig: generate > > lexer and parser during build instead of shipping"). > > - dropped silentoldconfig support, starting with commit cedd55d49dee > > ("kconfig: Remove silentoldconfig from help and docs; fix > > kconfig/conf's help"). > > > > There might be questions from users experiencing build errors/warnings > > after the update, same as we've seen in [1]. > > > > [1] https://patchwork.kernel.org/patch/10318503/ > > > > I would appreciate if Tom answers the question raised in the beginning > > of my post. > > > Tom will make a decision. > > Just my thought. > > > U-Boot is basically a mirror of Linux. > > Syncing Kconfig will add new tool requirement, flex & bison, for building U-Boot, > but this is OK because Linux does it. > > U-Boot follows Linux, for example, recently U-Boot adopted Linux-like SPDX license tag style. > > > And, you understand well the points for resyncing. > Yes, other parts must be adjusted. > > So, I am happy if you contribute to this work. Yes, I'm fine adding flex/bison as build requirements. And I'm also fine with anyone that feels they can handle doing the re-sync doing the re-sync, thanks folks!
On Wed, May 09, 2018 at 07:23:19AM -0400, Tom Rini wrote: > On Wed, May 09, 2018 at 08:32:56AM +0000, yamada.masahiro@socionext.com wrote: > > Tom will make a decision. > > > > Just my thought. > > > > > > U-Boot is basically a mirror of Linux. > > > > Syncing Kconfig will add new tool requirement, flex & bison, for building U-Boot, > > but this is OK because Linux does it. > > > > U-Boot follows Linux, for example, recently U-Boot adopted Linux-like SPDX license tag style. > > > > > > And, you understand well the points for resyncing. > > Yes, other parts must be adjusted. > > > > So, I am happy if you contribute to this work. > > Yes, I'm fine adding flex/bison as build requirements. And I'm also > fine with anyone that feels they can handle doing the re-sync doing the > re-sync, thanks folks! > > -- > Tom I will take care of it in the next days. Thanks for your support, Tom, Masahiro and Petr. Best regards, Eugeniu.
diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c index cbf4996dd9c1..40887d17f1e2 100644 --- a/scripts/kconfig/expr.c +++ b/scripts/kconfig/expr.c @@ -1070,7 +1070,9 @@ struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2) return expr_get_leftmost_symbol(ret); } -void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken) +void expr_print(struct expr *e, + void (*fn)(void *, struct symbol *, const char *), + void *data, int prevtoken) { if (!e) { fn(data, NULL, "y"); @@ -1204,3 +1206,33 @@ void expr_gstr_print(struct expr *e, struct gstr *gs) { expr_print(e, expr_print_gstr_helper, gs, E_NONE); } + +/* + * Transform the top level "||" tokens into newlines and prepend each + * line with a minus. This makes expressions much easier to read. + * Suitable for reverse dependency expressions. + */ +static void expr_print_revdep(struct expr *e, + void (*fn)(void *, struct symbol *, const char *), + void *data, tristate pr_type, const char **title) +{ + if (e->type == E_OR) { + expr_print_revdep(e->left.expr, fn, data, pr_type, title); + expr_print_revdep(e->right.expr, fn, data, pr_type, title); + } else if (expr_calc_value(e) == pr_type) { + if (*title) { + fn(data, NULL, *title); + *title = NULL; + } + + fn(data, NULL, " - "); + expr_print(e, fn, data, E_NONE); + fn(data, NULL, "\n"); + } +} + +void expr_gstr_print_revdep(struct expr *e, struct gstr *gs, + tristate pr_type, const char *title) +{ + expr_print_revdep(e, expr_print_gstr_helper, gs, pr_type, &title); +} diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h index a73f762c48d6..3a3d334ed554 100644 --- a/scripts/kconfig/expr.h +++ b/scripts/kconfig/expr.h @@ -222,6 +222,8 @@ struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2); void expr_fprint(struct expr *e, FILE *out); struct gstr; /* forward */ void expr_gstr_print(struct expr *e, struct gstr *gs); +void expr_gstr_print_revdep(struct expr *e, struct gstr *gs, + tristate pr_type, const char *title); static inline int expr_is_yes(struct expr *e) { diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index e9357931b47d..392c1a0a3963 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c @@ -675,16 +675,16 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym, get_symbol_props_str(r, sym, P_SELECT, _(" Selects: ")); if (sym->rev_dep.expr) { - str_append(r, _(" Selected by: ")); - expr_gstr_print(sym->rev_dep.expr, r); - str_append(r, "\n"); + expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, " Selected by [y]:\n"); + expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, " Selected by [m]:\n"); + expr_gstr_print_revdep(sym->rev_dep.expr, r, no, " Selected by [n]:\n"); } get_symbol_props_str(r, sym, P_IMPLY, _(" Implies: ")); if (sym->implied.expr) { - str_append(r, _(" Implied by: ")); - expr_gstr_print(sym->implied.expr, r); - str_append(r, "\n"); + expr_gstr_print_revdep(sym->implied.expr, r, yes, " Implied by [y]:\n"); + expr_gstr_print_revdep(sym->implied.expr, r, mod, " Implied by [m]:\n"); + expr_gstr_print_revdep(sym->implied.expr, r, no, " Implied by [n]:\n"); } str_append(r, "\n\n");
Not sure if partial/limited sync with Linux Kconfig is practiced, but if yes, then pick below three Linux commits, which are focused around improving the readability of reverse dependencies in menuconfig UI. [1] commit 1ccb27143360bd2390a9a970e50709f858b53761 Author: Petr Vorel <petr.vorel@gmail.com> kconfig: make "Selected by:" and "Implied by:" readable [2] commit 9a47ceec543bfb703fbe2f8d584850b582caf1a6 Masahiro Yamada <yamada.masahiro@socionext.com> kconfig: clean-up reverse dependency help implementation [3] commit d9119b5925a03b9a3191fa3e93b4091651d8ad25 Author: Eugeniu Rosca <erosca@de.adit-jv.com> kconfig: Print reverse dependencies in groups Here is an example of re-formatted information about the reverse dependencies of CONFIG_DM (sandbox_defconfig): * W/o the imported commits: Selected by: NIOS2 [=n] && <choice> || SANDBOX [=y] && <choice> || X86 [=n] && <choice> || ARCH_MVEBU [=n] && <choice> || TARGET_STV0991 [=n] && <choice> || ARCH_BCM283X [=n] && <choice> || ARCH_EXYNOS [=n] && <choice> || ARCH_S5PC1XX [=n] && ... * With the imported commits: Selected by [y]: - SANDBOX [=y] && <choice> - LOG [=y] Selected by [n]: - NIOS2 [=n] && <choice> - X86 [=n] && <choice> - ARCH_MVEBU [=n] && <choice> - TARGET_STV0991 [=n] && <choice> - ARCH_BCM283X [=n] && <choice> - ARCH_EXYNOS [=n] && <choice> - ARCH_S5PC1XX [=n] && <choice> - ARCH_INTEGRATOR [=n] && <choice> - ARCH_MX8M [=n] && <choice> - ARCH_QEMU [=n] && <choice> - ARCH_RMOBILE [=n] && <choice> - ARCH_SNAPDRAGON [=n] && <choice> - ARCH_SOCFPGA [=n] && <choice> - ARCH_SUNXI [=n] && <choice> - ARCH_ZYNQ [=n] && <choice> - ARCH_ZYNQMP [=n] && <choice> - TARGET_HIKEY [=n] && <choice> ... Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> --- scripts/kconfig/expr.c | 34 +++++++++++++++++++++++++++++++++- scripts/kconfig/expr.h | 2 ++ scripts/kconfig/menu.c | 12 ++++++------ 3 files changed, 41 insertions(+), 7 deletions(-)