Commit 0f734f7d authored by Hans Wennborg's avatar Hans Wennborg Committed by Commit Bot

Clang packaging script: don't build lld with thinlto

This shaves a few minutes off the clang packaging time, simplifies our
build script, and brings the build config for lld closer to that for
clang so that we can potentially build them in one go in the future.

Building lld without thinlto does not appear to affect its performance.

Bug: 884608
Change-Id: I4c3c39aa935fdb0a0977b1dd46400eee02d76dde
Commit-Queue: Hans Wennborg <[email protected]>
Reviewed-by: Nico's avatarNico Weber <[email protected]>
Cr-Original-Commit-Position: refs/heads/[email protected]{#748150}
Cr-Mirrored-Commit: 49fd24fef70b178f5de82d2c8ef8a49611ac1c88
parent 25410c20
......@@ -343,8 +343,6 @@ def main():
parser.add_argument('--gcc-toolchain', help='what gcc toolchain to use for '
'building; --gcc-toolchain=/opt/foo picks '
parser.add_argument('--lto-lld', action='store_true',
help='build lld with LTO (only applies on Linux)')
parser.add_argument('--pgo', action='store_true', help='build with PGO')
parser.add_argument('--llvm-force-head-revision', action='store_true',
help='build the latest revision')
......@@ -371,13 +369,6 @@ def main():
default=sys.platform in ('linux2', 'darwin'))
args = parser.parse_args()
if args.lto_lld and not args.bootstrap:
print('--lto-lld requires --bootstrap')
return 1
if args.lto_lld and not sys.platform.startswith('linux'):
# TODO(hans): Use it on Windows too.
print('--lto-lld is only effective on Linux. Ignoring the option.')
args.lto_lld = False
if args.pgo and not args.bootstrap:
print('--pgo requires --bootstrap')
return 1
......@@ -525,7 +516,7 @@ def main():
if args.pgo:
# Need libclang_rt.profile
projects += ';compiler-rt'
if sys.platform != 'darwin' or args.lto_lld:
if sys.platform != 'darwin':
projects += ';lld'
if sys.platform == 'darwin':
# Need libc++ and compiler-rt for the bootstrap compiler on mac.
......@@ -762,22 +753,6 @@ def main():
if lld is not None:
threads_enabled_cmake_args.append('-DCMAKE_LINKER=' + lld)
if args.lto_lld:
# Build lld with LTO. That speeds up the linker by ~10%.
# We only use LTO for Linux now.
# The linker expects all archive members to have symbol tables, so the
# archiver needs to be able to create symbol tables for bitcode files.
# GNU ar and ranlib don't understand bitcode files, but llvm-ar and
# llvm-ranlib do, so use them.
ar = os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'bin', 'llvm-ar')
ranlib = os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'bin', 'llvm-ranlib')
threads_enabled_cmake_args += [
'-DCMAKE_AR=' + ar,
'-DCMAKE_RANLIB=' + ranlib,
RunCommand(['cmake'] + threads_enabled_cmake_args +
[os.path.join(LLVM_DIR, 'llvm')],
msvc_arch='x64', env=deployment_env)
......@@ -187,8 +187,6 @@ def main():
build_cmd = [sys.executable, os.path.join(THIS_DIR, ''),
'--bootstrap', '--disable-asserts',
'--run-tests', '--pgo']
if sys.platform.startswith('linux'):
TeeCmd(build_cmd, log)
stamp = open(STAMP_FILE).read().rstrip()
......@@ -41,7 +41,7 @@ import zipfile
# Reverting problematic clang rolls is safe, though.
CLANG_REVISION = '9284abd0040afecfd619dbcf1b244a8b533291c9'
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment