| Index: build/toolchain/concurrent_links.gni
|
| diff --git a/build/toolchain/concurrent_links.gni b/build/toolchain/concurrent_links.gni
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9705255b4d48a30725b489bada9666c6caa8a8b5
|
| --- /dev/null
|
| +++ b/build/toolchain/concurrent_links.gni
|
| @@ -0,0 +1,31 @@
|
| +# Copyright 2016 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# This file should only be imported from files that define toolchains.
|
| +# There's no way to enforce this exactly, but all toolchains are processed
|
| +# in the context of the default_toolchain, so we can at least check for that.
|
| +assert(current_toolchain == default_toolchain)
|
| +
|
| +import("//build/config/sanitizers/sanitizers.gni")
|
| +import("//build/toolchain/toolchain.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.
|
| + # 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
|
| +}
|
| +
|
| +if (concurrent_links == -1) {
|
| + if (allow_posix_link_time_opt || is_cfi) {
|
| + _args = [ "--lto" ]
|
| + } else {
|
| + _args = []
|
| + }
|
| +
|
| + # TODO(crbug.com/617429) Pass more build configuration info to the script
|
| + # so that we can compute better values.
|
| + concurrent_links = exec_script("get_concurrent_links.py", _args, "value")
|
| +}
|
|
|