_FORTIFY_SOURCE

http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html

http://www.linux.or.jp/JM/html/LDP_man-pages/man7/feature_test_macros.7.html

_FORTIFY_SOURCE (glibc 2.3.4 以降)
このマクロを定義すると、文字列やメモリの操作を行う様々な関数を使用する際にバッファオーバーフローを検出するための軽めのチェックが実行されるようになる。すべてのバッファオーバーフローが検出されるわけではなく、あくまでよくある例についてだけである。現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3), strcpy(3), strncpy(3), strcat(3), strncat(3), sprintf(3), snprintf(3), vsprintf(3), vsnprintf(3), gets(3). _FORTIFY_SOURCE が 1 に設定された場合、コンパイラの最適化レベルが 1 (gcc -O1) かそれ以上であれば、規格に準拠するプログラムの振る舞いを変化させないようなチェックが実行される。 _FORTIFY_SOURCE が 2 に設定された場合、さらなるチェックが追加されるが、規格に準拠するプログラムのいくつかが失敗する可能性がある。いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として表示される。他のチェックは実行時に行われ、チェックに失敗した場合には実行時エラーとなる。このマクロを使用するにはコンパイラの対応が必要であり、バージョン 4.0 以降の gcc(1) で利用できる。

2だな