Re: [PATCH v6 20/27] x86: Support global stack cookie

From: Thomas Garnier
Date: Fri Feb 01 2019 - 15:28:18 EST


On Fri, Feb 1, 2019 at 11:27 AM Andy Lutomirski <luto@xxxxxxxxxx> wrote:
>
> On Thu, Jan 31, 2019 at 11:29 AM Thomas Garnier <thgarnie@xxxxxxxxxxxx> wrote:
> >
> > Add an off-by-default configuration option to use a global stack cookie
> > instead of the default TLS. This configuration option will only be used
> > with PIE binaries.
> >
> > For kernel stack cookie, the compiler uses the mcmodel=kernel to switch
> > between the fs segment to gs segment. A PIE binary does not use
> > mcmodel=kernel because it can be relocated anywhere, therefore the
> > compiler will default to the fs segment register. This is fixed on the
> > latest version of gcc.
>
> I hate all these gcc-sucks-so-we-hack-it-and-change-nasty-semantics
> options. How about just preventing use of both stack protector and
> PIE unless the version of gcc in use is new enough.

So fail the build in this scenario?

>
> Also, does -mstack-protector-guard-reg not solve this? See
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81708. Or is there
> another bug? Or are you worried about gcc versions that don't have
> that feature yet?

I am worried about gcc versions that don't have this feature, yes.