| Index: build/toolchain/get_concurrent_links.py
|
| diff --git a/build/toolchain/get_concurrent_links.py b/build/toolchain/get_concurrent_links.py
|
| index f8c927b8ec2c7e90544e5d1c5e47f8ef0236d266..32294fab849d242298f447557cab6d710208c737 100644
|
| --- a/build/toolchain/get_concurrent_links.py
|
| +++ b/build/toolchain/get_concurrent_links.py
|
| @@ -5,12 +5,13 @@
|
| # This script computs the number of concurrent links we want to run in the build
|
| # as a function of machine spec. It's based on GetDefaultConcurrentLinks in GYP.
|
|
|
| +import optparse
|
| import os
|
| import re
|
| import subprocess
|
| import sys
|
|
|
| -def GetDefaultConcurrentLinks():
|
| +def _GetDefaultConcurrentLinks(is_lto):
|
| # Inherit the legacy environment variable for people that have set it in GYP.
|
| pool_size = int(os.getenv('GYP_LINK_CONCURRENCY', 0))
|
| if pool_size:
|
| @@ -49,7 +50,11 @@ def GetDefaultConcurrentLinks():
|
| if not match:
|
| continue
|
| # Allow 8Gb per link on Linux because Gold is quite memory hungry
|
| - return max(1, int(match.group(1)) / (8 * (2 ** 20)))
|
| + # For LTO builds the RAM requirements are even higher
|
| + # Note: it's 15 GB for LTO build to make sure we get 4 link jobs
|
| + # for 64 GB, even if the system reports a couple of GBs less.
|
| + ram_per_link_gb = 15 if is_lto else 8
|
| + return max(1, int(match.group(1)) / (ram_per_link_gb * (2 ** 20)))
|
| return 1
|
| elif sys.platform == 'darwin':
|
| try:
|
| @@ -63,4 +68,15 @@ def GetDefaultConcurrentLinks():
|
| # TODO(scottmg): Implement this for other platforms.
|
| return 1
|
|
|
| -print GetDefaultConcurrentLinks()
|
| +def main():
|
| + parser = optparse.OptionParser()
|
| + parser.add_option('--lto', action="store_true", default=False,
|
| + help='This is an LTO build with higher memory requirements')
|
| + parser.disable_interspersed_args()
|
| + options, args = parser.parse_args()
|
| +
|
| + print _GetDefaultConcurrentLinks(is_lto=options.lto)
|
| + return 0
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main())
|
|
|