2016-12-07 73 views
2

是否可以使用-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

您不需要'-Wp',只需使用普通的'-D'。 GCC非常聪明,可以将其转发给预处理器。 – yugr

回答

2

设防要求比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开发者更新评论。