In Fedora22, GCC not enabled the -fstack-protector by default, why?

Stephen Gallagher sgallagh at redhat.com
Mon Jun 29 13:55:04 UTC 2015


On Mon, 2015-06-29 at 16:50 +0800, 乱雪 wrote:
> Such as:
> 
> // x.c
> #include <stdio.h>
> 
> int main(void) {
>   char x[] = "abc";
>   printf("%s\n", x);
>   return 0;
> }
> 
> and using GCC compile it:
> 
> ➜  gcc x.c -v
> 
> ......
>  /usr/libexec/gcc/x86_64-redhat-linux/5.1.1/cc1 -quiet -v x.c -quiet 
> -dumpbase x.c -mtune=generic -march=x86-64 -auxbase x -version -o 
> /tmp/ccqowh4f.s
> ......
> 
> as you see,  GCC not enabled the -fstack-protector by default. And in 
> Ubuntu:
> 
> ➜  gcc x.c -v
> 
>  /usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -quiet -v -imultilib . 
> -imultiarch x86_64-linux-gnu x.c -quiet -dumpbase x.c -mtune=generic 
> -march=x86-64 -auxbase x -version -fstack-protector -o 
> /tmp/cc0aswkw.s
> 
> the enabled the -fstack-protector by default.
> 
> why?
> 


It's enabled by default if you build within RPM and have the redhat-rpm
-config package installed.

In general, GCC doesn't provide many flags automatically; it expects
you to select them where appropriate. *Fedora* on the other hand has
some requirements on how things must be built in order to be included
in the distribution, so the RPM builds add extra flags.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.fedoraproject.org/pipermail/desktop/attachments/20150629/9725a52f/attachment.sig>


More information about the desktop mailing list