Re: [PATCH 1/2] kconfig: remove unneeded symbol_empty variable

Geert Uytterhoeven
2024-01-24T09:52:38Z

Hi Yamada-san,

On Wed, Jan 24, 2024 at 9:10 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
> On Wed, Jan 24, 2024 at 12:11 AM Yoann Congal <yoann.congal@smile.fr> wrote:
> > Le 23/01/2024 à 13:54, Geert Uytterhoeven a écrit :
> > > On Sat, Nov 25, 2023 at 5:36 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
> > >> This is used only for initializing other variables.
> > >>
> > >> Use the empty string "".
> > >>
> > >> Please note newval.tri is unused for S_INT/HEX/STRING.
> > >>
> > >> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > >
> > > Thanks for your patch, which is now commit 4e244c10eab345a7
> > > ("kconfig: remove unneeded symbol_empty variable") in v6.8-rc1.
> > >
> > > When running "make <foo>_defconfig" with <foo>_defconfig an SMP
> > > defconfig without explicit configuration of CONFIG_LOG_CPU_MAX_BUF_SHIFT,
> > > the aforementioned commit causes a change in the generated .config:
> > >
> > > -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
> > > +CONFIG_LOG_CPU_MAX_BUF_SHIFT=0
> > >
> > > It looks like CONFIG_BASE_SMALL=0 is treated as a string instead of
> > > the integer number zero?
> > >
> > > init/Kconfig=config LOG_CPU_MAX_BUF_SHIFT
> > > init/Kconfig- int "CPU kernel log buffer size contribution (13 => 8
> > > KB, 17 => 128KB)"
> > > init/Kconfig- depends on SMP
> > > init/Kconfig- range 0 21
> > > init/Kconfig: default 12 if !BASE_SMALL
> > > init/Kconfig: default 0 if BASE_SMALL
> > >
> > > Note that reverting 4e244c10eab345a7 is not sufficient to fix the issue.
> > > Also reverting commit 6262afa10ef7cc8f ("kconfig: default to zero if
> > > int/hex symbol lacks default property") does fix it.
> >
> > (Since I'd really like 6262afa10ef7cc8f ("kconfig: default to zero if int/hex symbol lacks default property") to stay, allow me to try to help)
> >
> > The problem is quite easy to reproduce:
> > $ make x86_64_defconfig
> > $ grep 'LOG_CPU_MAX_BUF_SHIFT\|BASE_SMALL\|BASE_FULL' .config
> > CONFIG_LOG_CPU_MAX_BUF_SHIFT=0
> > CONFIG_BASE_FULL=y
> > CONFIG_BASE_SMALL=0
> > Here, CONFIG_LOG_CPU_MAX_BUF_SHIFT should be 12 not 0.
>
>
>
> I could not produce it in this way.
> I ran the same commands as yours.
>
> CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 for me.
>
>
>
> masahiro@zoe:~/ref/linux(master)$ git describe
> v6.8-rc1-29-g615d30064886
> masahiro@zoe:~/ref/linux(master)$ git diff
> masahiro@zoe:~/ref/linux(master)$ make x86_64_defconfig
> #
> # No change to .config
> #
> masahiro@zoe:~/ref/linux(master)$ grep
> 'LOG_CPU_MAX_BUF_SHIFT\|BASE_SMALL\|BASE_FULL' .config
> CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
> CONFIG_BASE_FULL=y
> CONFIG_BASE_SMALL=0

Interesting...

$ git describe
v6.8-rc1-29-g615d300648869c77
$ make x86_64_defconfig
[...]
$ grep 'LOG_CPU_MAX_BUF_SHIFT\|BASE_SMALL\|BASE_FULL' .config
CONFIG_LOG_CPU_MAX_BUF_SHIFT=0
CONFIG_BASE_FULL=y
CONFIG_BASE_SMALL=0

Does it depend on the flex/bison version?
I have Ubuntu LTS flex 2.6.4-8build2 and bison 2:3.8.2+dfsg-1build1.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds