> On Feb 1, 2019, at 12:21 PM, Thomas Garnier <thgar...@chromium.org> wrote: > >> On Fri, Feb 1, 2019 at 11:27 AM Andy Lutomirski <l...@kernel.org> wrote: >> >>> On Thu, Jan 31, 2019 at 11:29 AM Thomas Garnier <thgar...@chromium.org> >>> 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?
Fail the build or use some Kconfig magic to prevent this from being configured in the first place. > >> >> 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.