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

Masahiro Yamada
2024-01-24T11:44:15Z

On Wed, Jan 24, 2024 at 6:52 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> 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.
>

Interesting.

The result depends on the distro.

I got CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 in
the Ubuntu 22.04 docker container, but
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 in
the Ubuntu 23.10 docker container.

--
Best Regards
Masahiro Yamada