Chromium Code Reviews| Index: tools/clang/scripts/package.py |
| diff --git a/tools/clang/scripts/package.py b/tools/clang/scripts/package.py |
| index 85840cdf008db46eb8ee47b2e25a5bb12ad1bfe3..1f2deb4925311cd59b4025078fa1e5310db77413 100755 |
| --- a/tools/clang/scripts/package.py |
| +++ b/tools/clang/scripts/package.py |
| @@ -163,6 +163,8 @@ def main(): |
| parser = argparse.ArgumentParser(description='build and package clang') |
| parser.add_argument('--upload', action='store_true', |
| help='Upload the target archive to Google Cloud Storage.') |
| + parser.add_argument('--enable-pgo', action='store_true', |
| + help='Build clang with GO enabled.') |
|
Nico
2017/04/07 15:58:53
Typo GO.
Also, why have a flag for this? Shouldn'
matthewtff.asm
2017/04/11 12:14:43
I believe it should be default. Made a flag just i
|
| args = parser.parse_args() |
| # Check that the script is not going to upload a toolchain built from HEAD. |
| @@ -186,8 +188,8 @@ def main(): |
| # Check if Google Cloud Storage already has the artifacts we want to build. |
| if (args.upload and GsutilArchiveExists(pdir, platform) and |
| - not sys.platform.startswith('linux') or |
| - GsutilArchiveExists(golddir, platform)): |
| + (not sys.platform.startswith('linux') or |
| + GsutilArchiveExists(golddir, platform))): |
|
Nico
2017/04/07 15:58:53
This looks like a good change, but also unrelated.
|
| print ('Desired toolchain revision %s is already available ' |
| 'in Google Cloud Storage:') % expected_stamp |
| print 'gs://chromium-browser-clang-staging/%s/%s.tgz' % (platform, pdir) |
| @@ -229,11 +231,21 @@ def main(): |
| opt_flags = [] |
| if sys.platform.startswith('linux'): |
| opt_flags += ['--lto-gold-plugin'] |
| + |
| + if sys.platform != 'win32' and args.enable_pgo: |
| + opt_flags += ['--enable-pgo'] |
| + else: |
| + opt_flags += ['--bootstrap'] |
| + |
| build_cmd = [sys.executable, os.path.join(THIS_DIR, 'update.py'), |
| - '--bootstrap', '--force-local-build', |
| - '--run-tests'] + opt_flags |
| + '--force-local-build', '--run-tests'] + opt_flags |
| TeeCmd(build_cmd, log) |
| + if args.enable_pgo: |
| + global LLVM_RELEASE_DIR |
| + LLVM_RELEASE_DIR = os.path.join(LLVM_RELEASE_DIR, 'tools', 'clang', |
| + 'stage2-instrumented-bins', 'tools', 'clang', 'stage2-bins') |
| + |
| stamp = open(STAMP_FILE).read().rstrip() |
| if stamp != expected_stamp: |
| print 'Actual stamp (%s) != expected stamp (%s).' % (stamp, expected_stamp) |
| @@ -319,7 +331,9 @@ def main(): |
| # Copy libc++ headers. |
| if sys.platform == 'darwin': |
| - shutil.copytree(os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'include', 'c++'), |
| + install_dir = LLVM_RELEASE_DIR if args.enable_pgo else \ |
| + LLVM_BOOTSTRAP_INSTALL_DIR |
| + shutil.copytree(os.path.join(install_dir, 'include', 'c++'), |
| os.path.join(pdir, 'include', 'c++')) |
| # Copy buildlog over. |