Re: [GIT PULL] Kbuild updates for 4.18 (2nd round)

From: Linus Torvalds
Date: Wed Jun 13 2018 - 12:03:33 EST


On Wed, Jun 13, 2018 at 8:55 AM Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Wed, Jun 13, 2018 at 7:47 AM Masahiro Yamada
> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
> >
> > Please pull more Kbuild updates.
>
> Pulled. However, I notice a few oddities.

Oh, and one actual bug: "make oldconfig" doesn't work right.

I used to have

CONFIG_HAVE_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_CC_STACKPROTECTOR_AUTO=y

which means that since my compiler supports -fstack-protector-strong,
I should get CONFIG_CC_STACKPROTECTOR_STRONG.

But that's not at all what I get. I get

CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_CC_HAS_SANE_STACKPROTECTOR=y

ie CONFIG_CC_STACKPROTECTOR_STRONG basically went away.

The reason for that is that it takes the *old* value of
CONFIG_CC_STACKPROTECTOR_STRONG, which was "no", but that's wrong.

The meaning of the config option has changed, but it took the default
from the old meaning, and decided that I shouldn't get strong stack
protection any more.

This is a pretty dangerous silent change.

Linus