On Sun, Feb 27, 2022 at 8:54 AM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: > > On Sun, Feb 27, 2022 at 5:24 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > > > On Sun, Feb 27, 2022 at 6:38 AM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: > > > > > > On Sat, Feb 26, 2022 at 2:34 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > > > > > > > The .config file uses "# CONFIG_FOO is not set" form to represent > > > > disabled options. In the old days, it was useful because the .config > > > > was directly included from Makefiles. For example, you can use > > > > "ifdef CONFIG_FOO" in Makefiles to check if the option is enabled. > > > > > > > > Commit c955ccafc38e ("kconfig: fix .config dependencies") introduced > > > > include/config/auto.conf, which mirrors the .config, but trims down > > > > all disabled options. > > > > > > > > Since then, include/config/auto.conf defines CONFIG options during the > > > > build. The .config is used just for storing the user's configuration. > > > > I do not see a strong reason to use a particular pattern of comment > > > > for disabled options. > > > > > > > > With this commit, Kconfig will output disable options in a more natural > > > > form, "CONFIG_FOO=n". > > > > > > > > Kconfig accepts both "# CONFIG_FOO is not set" and "CONFIG_FOO=n" as a > > > > valid input. You do not need to update arch/*/configs/*_defconfig files > > > > for now. "git bisect" should be able to cross the commit in both ways > > > > without any issue. > > > > > > > > > > Good. > > > > > > Lot of people use/used the notation CONFIG_FOO=n, so did I. > > > > > > Thanks for keeping the "compatibility" with old usage "# CONFIG_FOO is not set". > > > > > > Normally, I use git diff (or scripts/diffconfig in Git tree) to > > > compare two kernel-configs, so seeing > > > > > > -CONFIG_FOO=y > > > +CONFIG_FOO=n > > > > > > ...might be at first view unfamiliar/unusual. > > > With the old notation it was easier to see that Kconfig is unset. > > > > I agree on this point. > > > > "is not set" stands out much better than "=n", > > and our eyes are accustomed to this notation for 20 years. > > > > However, real comments do not stand out since > > we already (ab)use comments for disabled options. > > > > This is related thread > > https://patchwork.kernel.org/project/linux-kbuild/patch/20211213100043.45645-3-arielmarcovitch@xxxxxxxxx/ > > > > Thanks for the link. > > > > > > > Is this patch on top of kbuild-next Git? > > > > > > > Yes. > > Let me see if I will try kbuild-next with this patch on top of > upcoming Linux v5.17-rc6. > I was not able to apply your patch on top of latest kbuild-next.git: $ git log --oneline v5.17-rc6.. 3a8276b1ae7e (HEAD -> for-5.17/kbuild-next-2022022) Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild into for-5.17/kbuild-next-2022022 d4c858643263 kallsyms: ignore all local labels prefixed by '.L' a7d4f58e99dd kconfig: fix missing '# end of' for empty menu 868653f421cd kconfig: add fflush() before ferror() check 5c8166419acf kbuild: replace $(if A,A,B) with $(or A,B) f67695c9962e kbuild: Add environment variables for userprogs flags a5575df58004 kbuild: unify cmd_copy and cmd_shipped $ LC_ALL=C git apply --check --verbose ../20220226_masahiroy_kconfig_change_config_format_to_use_n_instead_of_is_not_set.mbx Checking patch scripts/kconfig/confdata.c... error: while searching for: return out; } enum output_n { OUTPUT_N, OUTPUT_N_AS_UNSET, OUTPUT_N_NONE }; static void __print_symbol(FILE *fp, struct symbol *sym, enum output_n output_n, bool escape_string) { const char *val; error: patch failed: scripts/kconfig/confdata.c:658 error: scripts/kconfig/confdata.c: patch does not apply Checking patch scripts/kconfig/merge_config.sh... Checking patch scripts/kconfig/streamline_config.pl... Checking patch scripts/kconfig/tests/choice/alldef_expected_config... Checking patch scripts/kconfig/tests/choice/allmod_expected_config... Checking patch scripts/kconfig/tests/choice/allno_expected_config... Checking patch scripts/kconfig/tests/choice/allyes_expected_config... Checking patch scripts/kconfig/tests/choice/oldask1_config... Checking patch scripts/kconfig/tests/inter_choice/expected_config... Checking patch scripts/kconfig/tests/new_choice_with_dep/config... Checking patch scripts/kconfig/tests/no_write_if_dep_unmet/__init__.py... Checking patch scripts/kconfig/tests/no_write_if_dep_unmet/expected_config... $ git log --oneline v5.17-rc6.. scripts/kconfig/confdata.c a7d4f58e99dd kconfig: fix missing '# end of' for empty menu 868653f421cd kconfig: add fflush() before ferror() check - Sedat -