-fstack-protect

Jeff Law law@redhat.com
Wed Jan 14 20:17:00 GMT 2015


On 01/14/15 08:25, Mike Harrold wrote:
> Hello,
>
> Is there a way to disable this for a specific function?  Something
> like __attribute__((unprotected)) maybe?
>
> I have a function that appends two string literals* (of known size to
> the compiler) into a char array that is 43 bytes larger than the two
> literals, but gcc is still emitting the stack guard instructions.
>
> Since I know the stack cannot be smashed (and gcc is apparently unable
> to determine that for itself), I'd like to turn it off for that
> function.  It's a a heavily used function that is inlined, so it's
> causing increased code size and slower performance for no reason.
I'm not aware of a way to do this.   I'm in the process of reviewing and 
updating a patch which allows for explicit requests for protection, but 
no explicit requests to prevent protection.

If you could pull that function into its own compilation unit you could 
disable stack protection when compiling that one file.

I'm curious about the compiler not being able to eliminate the 
protection in cases where it ought to be able to determine no smashing 
is possible.  If you could file a bug report for that, it would be 
appreciated.

jeff



More information about the Gcc-help mailing list