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?