On Mon, 7 Sep 2015 14:27:38 -0400
Michael Orlitzky <[email protected]> wrote:

> On 09/07/2015 01:10 PM, [email protected] wrote:
> > Michael Orlitzky <[email protected]> wrote:
> > 
> > I don't think so (but maybe I'm wrong). You have to compile your
> > entire system with a hardened toolchain to get full hardened
> > support (SSP and maybe some other things). I think, to go back to a
> > "normal state", you have to recompile everything again with a non
> > hardened toolchain. 
> 
> GCC 4.8 already defaults to -fstack-protector, but you do need to
> recompile to get -fstack-protector-all and you're right that you would
> need to recompile again to make it go away. The full SSP is considered
> safe though, and only slows things down a bit.

Full SSP is something I want and I'll gladly suffer the speed penalty
to get it.  Can I just add -fstack-protector-all to my CFLAGS in
make.conf?   Or is it more complicated than that?

Hmm.  Quoting from the gcc man page:

  -fstack-protector-strong
    Like -fstack-protector but includes additional functions to
    be protected --- those that have local array definitions, or
    have references to local frame addresses.

     NOTE: In Gentoo GCC 4.9.0 and later versions this option is
      enabled by default for C, C++, ObjC, ObjC++, if neither
     -fno-stack-protector, -nostdlib, -ffreestanding,
     -fstack-protector, -fstack-protector-strong or
     -fstack-protector-all are found.   <=====  are found *where*?

English is my native tongue and I confess I can't make any sense of
that advice.

The words 'enabled' and 'are found' don't tell me what I need to *do*
to wind up with full/strong SSP in my compiled code.  Does gcc add the
appropriate SSP flags without my intervention when building my sources,
or do I need to invoke those flags myself, e.g. by adding them to CFLAGS
as I asked above?

<sigh>  Communicating is hard to do:

https://en.wikipedia.org/wiki/Breaking_Up_Is_Hard_to_Do



Reply via email to