[PATCH] kconfig: Proposed language extension for multiple builds

Masahiro Yamada masahiroy at kernel.org
Mon Feb 27 15:52:57 CET 2023


Hi Simon,

On Mon, Feb 27, 2023 at 1:00 PM Simon Glass <sjg at chromium.org> wrote:
>
> Hi Masahiro,
>
> On Sun, 26 Feb 2023 at 20:36, Masahiro Yamada <masahiroy at kernel.org> wrote:
> >
> > Hi Simon,
> >
> > On Mon, Feb 27, 2023 at 4:23 AM Simon Glass <sjg at chromium.org> wrote:
> > >
> > > Hi Masahiro,
> > >
> > > On Sun, 26 Feb 2023 at 10:36, Masahiro Yamada <masahiroy at kernel.org> wrote:
> > > >
> > > > On Sun, Feb 26, 2023 at 11:44 PM Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > On Sun, Feb 26, 2023 at 11:32:03PM +0900, Masahiro Yamada wrote:
> > > > > > On Sun, Feb 26, 2023 at 11:04 PM Simon Glass <sjg at chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Masahiro,
> > > > > > >
> > > > > > > On Sat, 25 Feb 2023 at 20:31, Masahiro Yamada <masahiroy at kernel.org> wrote:
> > > > > > > >
> > > > > > > > On Sat, Feb 25, 2023 at 11:38 AM Simon Glass <sjg at chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > +Masahiro Yamada
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > I do not know.
> > > > > > > > This seems a shorthand in Kconfig level.
> > > > > > > >
> > > > > > > >
> > > > > > > > masahiro at zoe:~/ref/u-boot(master)$ rgrep '^config SPL_' | wc
> > > > > > > >     540    1080   24872
> > > > > > > > masahiro at zoe:~/ref/u-boot(master)$ rgrep '^config TPL_' | wc
> > > > > > > >     163     326    7462
> > > > > > > >
> > > > > > > > If hundreds of duplications are not manageable,
> > > > > > > > go for it, but kconfig will be out-of-sync from the
> > > > > > > > upstream Kconfig.
> > > > > > >
> > > > > > > Yes that's right, it is a shorthand in Kconfig.
> > > > > > >
> > > > > > > The counts above understand the problem a little since quite a few
> > > > > > > CONFIG options without an SPL prefix are used in SPL. We don't have
> > > > > > > tools to estimate how many, and we sometimes add a new symbol to 'gain
> > > > > > > control' of a particular feature in a phase.
> > > > > > >
> > > > > > > My intent in sending this patch was to check whether this support for
> > > > > > > configuring multiple related builds (or something like it) could go
> > > > > > > upstream, which for Kconfig is Linux, I believe. What do you think?
> > > > > >
> > > > > >
> > > > > > This complexity is absolutely unneeded for Linux.
> > > > > >
> > > > > > So, the answer is no.
> > > > >
> > > > > Well, I think Simon summarized himself a bit shorter here than he did in
> > > > > the patch itself.  So, to what extent does the kernel want to consider
> > > > > all of the other projects using the Kconfig language and their needs /
> > > > > use cases?
> > > > >
> > > > > --
> > > > > Tom
> > > >
> > > >
> > > >
> > > > In principle, only features that are useful for Linux.
> > >
> > > I'm disappointed in this attitude. It is the same thing that we saw
> > > from the DT bindings until recently.
> >
> >
> > Sorry, but this is the maintainer's job.
> > Saying no is one of the most important jobs as a maintainer.
> >
> > I must avoid Kconfig getting Frankenstein mechanisms.
>
> Can you suggest a better approach?


No, I can't.

Kconfig is a configuration system of the Linux kernel, which is monolithic.
It was not designed with multi-phase images in mind.


Presumably, Kconfig is good for U-Boot proper, but not for SPL/TPL given
the limited memory. There is little room for user's configuration anyway.

U-Boot extended SPL too much.
On-chip RAM is not supposed to run DT, DM, FIT.
With SPL kept simple and ad-hoc, none of
CONFIG_SPL_OF_CONTROL, SPL_DM, SPL_FIT was unneeded.
"bootph-*" properties were unneeded either.

This is a U-Boot-specific problem.
Please solve it in U-Boot.


Masahiro Yamada






>
> > > >
> > > > Kconfig has small piece of code that is useful for other projects,
> > > > for example,
> > > >
> > > >     #ifndef CONFIG_
> > > >     #define CONFIG_ "CONFIG_"
> > > >     #endif
> > > >
> > > > which might be useful for Buildroot, but this is exceptionally small.
> > >
> > > How about refactoring patches that would make a possible
> > > implementation easier to maintain, like [1] ? Would they be
> > > acceptable?
> >
> >
> > Code refactoring is welcome, but [1] is not applicable.
> > U-Boot kconfig is synced with Linux 4.20, way behind the mainline Linux.
>
> Sure, I wasn't suggesting that exact patch. It should be easy enough
> to move to the latest version. It sounds like it may be possible to
> make the Frankenstein patches easier to maintain out of tree, if we go
> that way.
>
> > > >
> > > >
> > > > The multi-phase is too cluttered, and that is not what Linux wants to have.
> > >
> > > Clearly it is not useful to Linux, which only has one build.
> > >
> > > [1] https://patchwork.ozlabs.org/project/uboot/patch/20230212231638.1134219-61-sjg@chromium.org/
>
> Regards,
> Simon


--
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list