Chromium Code Reviews| Index: build/common.gypi | 
| diff --git a/build/common.gypi b/build/common.gypi | 
| index 1aa13d3dc9cbd0a2fe1362e728c9121728bf05c5..c3a614d635aec2aa2bd372e4adc68693d476042b 100644 | 
| --- a/build/common.gypi | 
| +++ b/build/common.gypi | 
| @@ -632,6 +632,11 @@ | 
| # compiler. Always do this by default. | 
| 'host_clang%': 1, | 
| + # Link-Time Optimizations | 
| + # crbug.com/407544 | 
| + 'use_lto%': 0, | 
| + 'use_lto_o2%': 0, | 
| 
 
pasko
2014/10/10 11:59:21
it's worth explaining what use_lto_o2 is. Does use
 
Fabrice (no longer in Chrome)
2014/10/13 15:45:12
Done.
 
 | 
| + | 
| 'conditions': [ | 
| # A flag for POSIX platforms | 
| ['OS=="win"', { | 
| @@ -1179,6 +1184,8 @@ | 
| 'proprietary_codecs%': '<(proprietary_codecs)', | 
| 'use_goma%': '<(use_goma)', | 
| 'gomadir%': '<(gomadir)', | 
| + 'use_lto%': '<(use_lto)', | 
| + 'use_lto_o2%': '<use_lto_o2', | 
| 'video_hole%': '<(video_hole)', | 
| 'enable_load_completion_hacks%': '<(enable_load_completion_hacks)', | 
| 'support_pre_M6_history_database%': '<(support_pre_M6_history_database)', | 
| @@ -2303,6 +2310,11 @@ | 
| }, { | 
| 'use_seccomp_bpf%': 0, | 
| }], | 
| + # Set component build with LTO until all tests pass. | 
| + # This reduces link time | 
| 
 
pasko
2014/10/10 11:59:21
nit:
s/This reduces link time/This reduces link t
 
Fabrice (no longer in Chrome)
2014/10/13 15:45:12
Done.
 
 | 
| + ['use_lto==1', { | 
| + 'component%': "shared_library", | 
| + }], | 
| ], | 
| # older history files use fts2 instead of fts3 | 
| @@ -3745,6 +3757,13 @@ | 
| 'cflags': [ | 
| '-march=<(arm_arch)', | 
| ], | 
| + 'conditions': [ | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'ldflags': [ | 
| + '-march=<(arm_arch)', | 
| + ], | 
| + }], | 
| + ], | 
| }], | 
| ['clang==1 and OS!="android"', { | 
| 'cflags': [ | 
| @@ -3757,21 +3776,49 @@ | 
| 'cflags': [ | 
| '-mtune=<(arm_tune)', | 
| ], | 
| + 'conditions': [ | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'ldflags': [ | 
| + '-mtune=<(arm_tune)', | 
| + ], | 
| + }], | 
| + ], | 
| }], | 
| ['arm_fpu!=""', { | 
| 'cflags': [ | 
| '-mfpu=<(arm_fpu)', | 
| ], | 
| + 'conditions': [ | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'ldflags': [ | 
| + '-mfpu=<(arm_fpu)', | 
| + ], | 
| + }], | 
| + ], | 
| }], | 
| ['arm_float_abi!=""', { | 
| 'cflags': [ | 
| '-mfloat-abi=<(arm_float_abi)', | 
| ], | 
| + 'conditions': [ | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'ldflags': [ | 
| + '-mfloat-abi=<(arm_float_abi)', | 
| + ], | 
| + }], | 
| + ], | 
| }], | 
| ['arm_thumb==1', { | 
| 'cflags': [ | 
| '-mthumb', | 
| ], | 
| + 'conditions': [ | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'ldflags': [ | 
| + '-mthumb', | 
| + ], | 
| + }], | 
| + ], | 
| }], | 
| ['OS=="android"', { | 
| # Most of the following flags are derived from what Android | 
| @@ -5666,6 +5713,29 @@ | 
| ['CXX.host_wrapper', '<(gomadir)/gomacc'], | 
| ], | 
| }], | 
| + ['use_lto==1', { | 
| + 'target_defaults': { | 
| + 'target_conditions': [ | 
| + ['_toolset=="target"', { | 
| + 'cflags': [ | 
| + '-flto', | 
| + '-ffat-lto-objects', | 
| + ], | 
| + }], | 
| + ], | 
| + }, | 
| + }], | 
| + ['use_lto==1 or use_lto_o2==1', { | 
| + 'target_defaults': { | 
| + 'target_conditions': [ | 
| + ['_toolset=="target"', { | 
| + 'ldflags': [ | 
| + '-flto=32', | 
| + ], | 
| + }], | 
| + ], | 
| + }, | 
| + }], | 
| ], | 
| 'xcode_settings': { | 
| # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT! |