2016-12-07 246 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開發者更新評論。