Index: build/config/compiler/compiler.gni |
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni |
index 2e5072e2589133090ed96f857b216186ee3a6836..5b51fafa974721771f2863984672798cb41a3646 100644 |
--- a/build/config/compiler/compiler.gni |
+++ b/build/config/compiler/compiler.gni |
@@ -6,6 +6,7 @@ import("//build/config/android/config.gni") |
import("//build/config/chrome_build.gni") |
import("//build/config/chromecast_build.gni") |
import("//build/config/sanitizers/sanitizers.gni") |
+import("//build/toolchain/goma.gni") |
import("//build/toolchain/toolchain.gni") |
declare_args() { |
@@ -82,6 +83,13 @@ if (symbol_level == -1) { |
# With instrumentation enabled, debug info puts libchrome.so over 4gb, which |
# causes the linker to produce an invalid ELF. http://crbug.com/574476 |
symbol_level = 0 |
+ } else if (is_win && use_goma && !is_clang) { |
+ # goma doesn't support PDB files, so we disable symbols during goma |
+ # compilation because otherwise the redundant debug information generated |
+ # by visual studio (repeated in every .obj file) makes linker |
+ # memory consumption and link times unsustainable (crbug.com/630074). |
+ # Clang on windows does not have this issue. |
+ symbol_level = 1 |
} else if (!is_linux || is_debug || is_official_build || is_chromecast) { |
# Linux is slowed by having symbols as part of the target binary, whereas |
# Mac and Windows have them separate, so in Release Linux, default them off, |