On Thu, Nov 15, 2018 at 05:20:16PM +0100, Ulf Magnusson wrote: > On Thu, Nov 15, 2018 at 2:25 PM Daniel Walker <danielwa@xxxxxxxxx> wrote: > > > > On Thu, Nov 15, 2018 at 11:50:56AM +0900, Masahiro Yamada wrote: > > > > > > > > > In current Kconfig, a 'string' type symbol is written to the .config when > > > > > > [1] it has a visible prompt > > > https://github.com/masahir0y/linux/blob/v4.19/scripts/kconfig/symbol.c#L364 > > > > > > or > > > > > > [2] it has a default property > > > https://github.com/masahir0y/linux/blob/v4.19/scripts/kconfig/symbol.c#L421 > > > > > > > Ok. > > > > > > > > > > I am open to changing the behavior > > > as long as it keeps grammatical consistency, though. > > > > > > > > > As far as I understood this particular case, > > > CONFIG_CMDLINE will go away after the GENERIC_CMDLINE migration is done. > > > > > > (At least, upstream x86 and powerpc defconfig files seem complete). > > > > > > > > > > > > Perhaps, some prompt for migration could be useful? > > > > > > config CMDLINE > > > string "(LEGACY) Please make this empty and use CMDLINE_PREPEND instead" > > > > I think it would be confusing to leave it. The reason I wanted to have it in > > there silently is so I can print a warning, or BUILD_BUG_ON (which is what I > > currently do). Just so that people 1) don't lose those options, and 2) So that I > > can remind or catch people when they don't notice there was a change. Russell > > (ARM32 maintainer) complained in this regard. > > > > I'll look into the Kconfig code and see if I can make something acceptable. > > > > Daniel > > Note that it'd be inconsistent for string symbols to respect user > values (values from .config files) when they don't have a prompt. A > prompt says that the symbol can be assigned a value by the user. > Assigning a symbol a value in a .config file is the same as assigning > it a value in the menuconfig interface. We could do it differently, for example, if the config file has an option set, then the Kconfig system should show a warning or error. I was thinking their might be a way to do that already with the $(shell, ...) stuff , or $(error-if, ..) but I couldn't get those to work. Like in my case if you have CONFIG_CMDLINE="none blank" then print a warning letting people know that value disappeared. This is basically what I'm doing right now, if you have that option it will trigger a BUILD_BUG_ON(). > (See my previous message for why promptless symbol still end up in > .config. The assignments to promptless symbols don't influence the > symbol's value on the Kconfig side.) > > I wonder if having an exception for a one-off like this is really > worth it. It might make the Kconfig semantics harder to understand. > The rule now is that symbols without prompts always derive their value > from other symbols (via defaults, in this case). I would think others have this issue, when you have one version of Linux with one Kconfig setup, then you have to migrate to a newer Kconfig setup. There should be graceful ways to handle it. Daniel