Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index c59f9316facf2004d1c707198e1090c8e0e5c695..855450d3409d9d546ee648e82fd2311cff4d9a3e 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -927,7 +927,10 @@ |
'win_debug_Optimization%': '0', # 0 = /Od |
# See http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.80).aspx |
+ # Tri-state: blank is default, 1 on, 0 off |
'win_release_OmitFramePointers%': '1', |
+ # Tri-state: blank is default, 1 on, 0 off |
+ 'win_debug_OmitFramePointers%': '', |
# See http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx |
'win_debug_RuntimeChecks%': '3', # 3 = all checks enabled, 0 = off |
@@ -947,6 +950,10 @@ |
'debug_extra_cflags%': '', |
'release_valgrind_build%': 0, |
+ # the non-qualified versions are widely assumed to be *nix-only |
+ 'win_release_extra_cflags%': '', |
+ 'win_debug_extra_cflags%': '', |
+ |
# TODO(thakis): Make this a blacklist instead, http://crbug.com/101600 |
'enable_wexit_time_destructors%': '<(enable_wexit_time_destructors)', |
@@ -1439,7 +1446,22 @@ |
['win_debug_disable_iterator_debugging==1', { |
'PreprocessorDefinitions': ['_HAS_ITERATOR_DEBUGGING=0'], |
}], |
+ |
+ # if win_debug_OmitFramePointers is blank, leave as default |
M-A Ruel
2011/12/16 21:33:01
There are cases where we enable optimizations in d
Derek Bruening
2011/12/16 22:01:14
We are now building Debug chrome with /O1 when we
M-A Ruel
2011/12/16 22:44:32
This is a bit sad, I would have preferred to assum
|
+ ['win_debug_OmitFramePointers==1', { |
+ 'OmitFramePointers': 'true', |
+ }], |
+ ['win_debug_OmitFramePointers==0', { |
+ 'OmitFramePointers': 'false', |
brettw
2011/12/16 21:32:42
Just curious: would it be better to change OmitFra
Derek Bruening
2011/12/16 22:01:14
Yes, if we could, but we don't control that: Micro
|
+ # The above is not sufficient (http://crbug.com/106711): it |
+ # simply eliminates an explicit "/Oy", but both /O2 and /Ox |
+ # perform FPO regardless, so we must explicitly disable. |
+ # We still want the false setting above to avoid having |
+ # "/Oy /Oy-" and warnings about overriding. |
+ 'AdditionalOptions': ['/Oy-'], |
+ }], |
], |
+ 'AdditionalOptions': [ '<@(win_debug_extra_cflags)', ], |
}, |
'VCLinkerTool': { |
'LinkIncremental': '<(msvs_debug_link_incremental)', |
@@ -1498,13 +1520,21 @@ |
'<(win_release_InlineFunctionExpansion)', |
}], |
+ # if win_release_OmitFramePointers is blank, leave as default |
['win_release_OmitFramePointers==1', { |
'OmitFramePointers': 'true', |
}], |
['win_release_OmitFramePointers==0', { |
'OmitFramePointers': 'false', |
+ # The above is not sufficient (http://crbug.com/106711): it |
+ # simply eliminates an explicit "/Oy", but both /O2 and /Ox |
+ # perform FPO regardless, so we must explicitly disable. |
+ # We still want the false setting above to avoid having |
+ # "/Oy /Oy-" and warnings about overriding. |
+ 'AdditionalOptions': ['/Oy-'], |
}], |
], |
+ 'AdditionalOptions': [ '<@(win_release_extra_cflags)', ], |
}, |
'VCLinkerTool': { |
# LinkIncremental is a tri-state boolean, where 0 means default |