Re: [PATCH] arm64: make STACKPROTECTOR_PER_TASK configurable.

From: Michal Suchánek
Date: Wed Mar 10 2021 - 11:25:03 EST


On Wed, Mar 10, 2021 at 04:07:00AM +0900, Masahiro Yamada wrote:
> On Wed, Mar 10, 2021 at 12:10 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> >
> > On Tue, Mar 09, 2021 at 11:53:21PM +0900, Masahiro Yamada wrote:
> > > On Tue, Mar 9, 2021 at 10:35 PM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > > >
> > > > On Tue, Mar 09, 2021 at 10:22:36PM +0900, Masahiro Yamada wrote:
> > > > > On Tue, Mar 9, 2021 at 9:35 PM Michal Suchanek <msuchanek@xxxxxxx> wrote:
> > > > > >
> > > > > > When using dummy-tools STACKPROTECTOR_PER_TASK is unconditionally
> > > > > > selected. This defeats the purpose of the all-enabled tool.
> > > > > >
> > > > > > Description copied from arm
> > > > > >
> > > > > > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > > > > > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx>
> > > > >
> > > > >
> > > > > Could you explain what problem
> > > > > this patch is trying to solve?
> > > >
> > > > The option cannot be disabled when compiler has the required capability.
> > >
> > >
> > > Yes.
> > > Currently, this symbol claims "def_bool y",
> > > so there is no way to disable it.
> > >
> > > But, it comes from the nature of Kconfig in general.
> > >
> > > dummy-tools is completely unrelated here.
> >
> > dummy-tools makes all configuration options available in order to be
> > able to author configuration files on system different from the one
> > where the kernel is built. This prevents authoring a configuration file
> > with this option disabled.
>
>
> No.
> dummy-tools enables as many $(cc-option, ...)
> and $(shell, ...) as possible. That's it.
>
>
> In my understanding, STACKPROTECTOR_PER_TASK
> should not be user-configurable.
> That is why 'def_bool y'.

And that's wrong. Either it's a required copiler feature and then it
should be always enabled. Or it is optional and then it should be
possible to disable - one or the other.

When it is optional you should be able to

- (de) select in randconfig
- test/bisect the old code path without crippling your toolchain
- author configuration file that does not have the option enabled for
build on system that uses older toolchain

Thanks

Michal