FORTIFY_SOURCE和Og优化级别
问题描述:
是否可以使用-Wp,-D_FORTIFY_SOURCE=2
选项(或=1
)以及-Og
优化级别? The patch其中介绍FORTIFY_SOURCE
包含评论/* Object size checking is only intended for -O[s123]. */
。FORTIFY_SOURCE和Og优化级别
现在是2004年。而且我不知道何时会推出-Og
密钥(可能会晚一些)。
哪个优化(优化标志)FORTIFY_SOURCE
要求?
答
设防要求比0 __OPTIMIZE__
宏观更大:
$ 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开发者更新评论。
您不需要'-Wp',只需使用普通的'-D'。 GCC非常聪明,可以将其转发给预处理器。 – yugr