FORTIFY_SOURCE 和 Og 优化级别

FORTIFY_SOURCE and Og optimization level

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

现在是2004年。而且我不知道什么时候引入 -Og 密钥(也许以后)。

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

强化需要__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 在定义 __OPTIMIZE__:

时与其他 -O 标志没有区别
$ gcc -E -Og -dM -x c /dev/null 2>&1 | grep OPTIMIZE
#define __OPTIMIZE__ 1

所以你应该没问题。

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