4

是否可以将-Wp,-D_FORTIFY_SOURCE=2选项(或=1)与-Og优化级别一起使用?介绍的补丁FORTIFY_SOURCE包含评论/* Object size checking is only intended for -O[s123]. */

这是2004年。而且我不知道何时-Og引入密钥(可能稍后)。

即需要哪些优化(优化标志)FORTIFY_SOURCE

4

1 回答 1

7

设防需要__OPTIMIZE__大于 0 的宏:

$ cat /usr/include/features
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if _FORTIFY_SOURCE > 1
#  define __USE_FORTIFY_LEVEL 2

-Og-O在定义中与其他标志没有什么不同__OPTIMIZE__

$ gcc -E -Og -dM -x c /dev/null 2>&1 | grep OPTIMIZE
#define __OPTIMIZE__ 1

所以你应该没事。

您可以要求 Glibc 开发人员更新评论。

于 2016-12-08T05:23:12.150 回答