Chromium Code Reviews| Index: build/toolchain/toolchain.gni |
| diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni |
| index 9f564794816655edd06d110aeb2ce14390f037bb..0b7aacb7e383ebb63a420b234c0ed9f6df9693cb 100644 |
| --- a/build/toolchain/toolchain.gni |
| +++ b/build/toolchain/toolchain.gni |
| @@ -6,8 +6,18 @@ |
| # toolchain() rules themselves. |
| import("//build/config/chrome_build.gni") |
| +import("//build/config/sanitizers/sanitizers.gni") |
| declare_args() { |
| + # Limit the number of concurrent links; we often want to run fewer |
| + # links at once than we do compiles, because linking is memory-intensive. |
| + # In particular, when using distributed compilation (like w/ goma), |
|
brucedawson
2016/06/03 19:42:17
This is true even without goma. On a Z840 we defau
Dirk Pranke
2016/06/05 01:19:49
Acknowledged.
|
| + # we may be running *a lot* of compiles in parallel but can't do that |
| + # many links in parallel. The default to use varies by platform and |
| + # by the amount of memory available, so we call out to a script to |
| + # get the right value. |
| + concurrent_links = -1 |
| + |
| # Enable Link Time Optimization in optimized builds (output programs run |
| # faster, but linking is up to 5-20x slower). |
| # Note: use target_os == "linux" rather than is_linux so that it does not |
| @@ -28,6 +38,15 @@ declare_args() { |
| } |
| } |
| +if (concurrent_links == -1) { |
| + if (allow_posix_link_time_opt || is_cfi) { |
|
brucedawson
2016/06/03 19:42:17
Should we pass along more arguments to control the
brettw
2016/06/03 21:31:29
I'm OK writing a TODO with the information you wro
brucedawson
2016/06/03 22:04:50
Sounds good.
Dirk Pranke
2016/06/05 01:19:49
Will add.
|
| + args = [ "--lto" ] |
| + } else { |
| + args = [] |
| + } |
| + concurrent_links = exec_script("get_concurrent_links.py", args, "value") |
|
Dirk Pranke
2016/06/03 05:44:43
@brettw - am I right in thinking/remembering that
brettw
2016/06/03 21:31:29
This will be executed once for each toolchain that
Dirk Pranke
2016/06/05 01:19:49
Acknowledged.
|
| +} |
| + |
| # Subdirectory within root_out_dir for shared library files. |
| # TODO(agrieve): GYP sets this to "lib" for Linux & Android, but this won't work |
| # in GN until support for loadable_module() is added. |