Use -fstack-protector-all (stack canaries) for Mac debug builds.

This was previously in effect at r29591 and then backed out at r29601 because
it may have caused problems with Valgrind. The Valgrind problems were probably
actually caused by -pie, which was recently reintroduced with protection
against being used in Valgrind configurations. I don't think that we have any
Valgrind builds that use the Debug configuration, so reintroducing this here
shouldn't have any effect on Valgrind.

Ancient history: in the pre-GYP days, we had -fstack-protector and
-fstack-protector-all in the debug.xcconfig that our Xcode-based build used.
See
http://src.chromium.org/viewvc/chrome/trunk/src/build/debug.xcconfig?view=markup&pathrev=21959

More information on this option:

http://developer.apple.com/library/mac/#documentation/DeveloperTools/gcc-4.2.1/gcc/Optimize-Options.html#index-fbtr_002dbb_002dexclusive-615

http://en.wikipedia.org/wiki/Buffer_overflow_protection#GCC_Stack-Smashing_Protector_.28ProPolice.29

BUG=16713 (not really, that's for release builds, but close enough)
TEST=everything
Review URL: http://codereview.chromium.org/7291019

git-svn-id: http://src.chromium.org/svn/trunk/src/build@91301 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
mark@chromium.org 2011-07-01 16:23:49 +00:00
Родитель 244906f3c7
Коммит c090ea6271
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -975,7 +975,10 @@
'xcode_settings': {
'COPY_PHASE_STRIP': 'NO',
'GCC_OPTIMIZATION_LEVEL': '<(mac_debug_optimization)',
'OTHER_CFLAGS': [ '<@(debug_extra_cflags)', ],
'OTHER_CFLAGS': [
'-fstack-protector-all', # Implies -fstack-protector
'<@(debug_extra_cflags)',
],
},
'msvs_settings': {
'VCCLCompilerTool': {