On Sun, Dec 5, 2021 at 1:53 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Sat, Dec 4, 2021 at 5:13 AM Salvatore Bonaccorso <carnil@xxxxxxxxxx> wrote: > > > > Andreas suggested to replace the > > > > KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH) > > > > with > > > > KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(patsubst "%",%,$(CONFIG_CC_IMPLICIT_FALLTHROUGH)) > > Ugh. I think the external build environment is a bit broken, but > whatever. The above is ugly but I guess it works. > > Another alternative would be to make the Kconfig strings simply not > have '"' as part of them. > > When you do > > a = "hello" > print $a > > in any normal language, you generally wouldn't expect it to print the > quotes, it should just print the bare word. > > But that's what the Kconfig string language basically does in this > case. And I guess several users expect and take advantage of that ;( > > Masahiro? Comments? Yes, you get to the point. In fact, this is in my TODO list for a while (and this is the reason I was doing prerequisite Kconfig refactoring in the previous development cycle). I will try to find some spare time to complete this work. Kconfig generates two similar files, - .config - include/config/auto.conf Changing the format of the .config is presumably problematic since it is the saved user configuration as well. It is possible (and more reasonable) to change include/config/auto.conf so strings are not quoted. In Makefiles, quotations are just normal characters; they have no special functionality. So, in Makefile context, it is more handy to do CONFIG_X=foo bar instead of CONFIG_X="foo bar" One problem is include/config/auto.conf is included not only by Makefiles but also by shell scripts. In shell context, the right hand side must be quoted in case the value contains spaces. CONFIG_X="foo bar" My plan is to fix scripts/link-vmlinux.sh scripts/gen_autoksyms.sh etc. to not directly include the auto.conf. Later, change Kconfig to generate the auto.conf without "". In the meantime, KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(patsubst "%",%,$(CONFIG_CC_IMPLICIT_FALLTHROUGH)) or if you prefer slightly shorter form, KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH:"%"=%) will be a workaround. > > Linus -- Best Regards Masahiro Yamada