Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: tools/clang/scripts/update.py

Issue 2572833003: Clang toolchain: checkout LLD on all platforms but Darwin. (Closed)
Patch Set: sync Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/clang/scripts/package.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/clang/scripts/update.py
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 486cdae4106fc18a558d9029a5c21f4f278cbe7b..35e57c9023b27f29de05e59d907ddeacc303db32 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -457,7 +457,7 @@ def UpdateClang(args):
Checkout('LLVM', LLVM_REPO_URL + '/llvm/trunk', LLVM_DIR)
Checkout('Clang', LLVM_REPO_URL + '/cfe/trunk', CLANG_DIR)
- if sys.platform == 'win32' or use_head_revision:
+ if sys.platform != 'darwin':
Checkout('LLD', LLVM_REPO_URL + '/lld/trunk', LLD_DIR)
elif os.path.exists(LLD_DIR):
# In case someone sends a tryjob that temporary adds lld to the checkout,
@@ -497,7 +497,6 @@ def UpdateClang(args):
base_cmake_args = ['-GNinja',
'-DCMAKE_BUILD_TYPE=Release',
'-DLLVM_ENABLE_ASSERTIONS=ON',
- '-DLLVM_ENABLE_THREADS=OFF',
# Statically link MSVCRT to avoid DLL dependencies.
'-DLLVM_USE_CRT_RELEASE=MT',
]
@@ -566,8 +565,8 @@ def UpdateClang(args):
os.path.join(LLVM_BOOTSTRAP_INSTALL_DIR, 'lib', 'LLVMgold.so'),
os.path.join(BFD_PLUGINS_DIR, 'LLVMgold.so')])
- lto_cflags = ['-flto']
- lto_ldflags = ['-fuse-ld=gold']
+ lto_cflags = ['-flto=thin']
+ lto_ldflags = ['-fuse-ld=lld']
if args.gcc_toolchain:
# Tell the bootstrap compiler to use a specific gcc prefix to search
# for standard library headers and shared object files.
@@ -588,7 +587,7 @@ def UpdateClang(args):
RmCmakeCache('.')
RunCommand(['cmake'] + lto_cmake_args + [LLVM_DIR], env=lto_env)
- RunCommand(['ninja', 'LLVMgold'], env=lto_env)
+ RunCommand(['ninja', 'LLVMgold', 'lld'], env=lto_env)
# LLVM uses C++11 starting in llvm 3.5. On Linux, this means libstdc++4.7+ is
@@ -640,6 +639,7 @@ def UpdateClang(args):
if cxx is not None: cc_args.append('-DCMAKE_CXX_COMPILER=' + cxx)
chrome_tools = list(set(['plugins', 'blink_gc_plugin'] + args.extra_tools))
cmake_args += base_cmake_args + [
+ '-DLLVM_ENABLE_THREADS=OFF',
'-DLLVM_BINUTILS_INCDIR=' + binutils_incdir,
'-DCMAKE_C_FLAGS=' + ' '.join(cflags),
'-DCMAKE_CXX_FLAGS=' + ' '.join(cxxflags),
@@ -669,6 +669,11 @@ def UpdateClang(args):
RunCommand(['ninja'], msvc_arch='x64')
+ # Copy LTO-optimized lld, if any.
+ if args.bootstrap and args.lto_gold_plugin:
+ CopyFile(os.path.join(LLVM_LTO_GOLD_PLUGIN_DIR, 'bin', 'lld'),
+ os.path.join(LLVM_BUILD_DIR, 'bin'))
+
if chrome_tools:
# If any Chromium tools were built, install those now.
RunCommand(['ninja', 'cr-install'], msvc_arch='x64')
@@ -697,6 +702,7 @@ def UpdateClang(args):
#cflags += ['-m32']
#cxxflags += ['-m32']
compiler_rt_args = base_cmake_args + [
+ '-DLLVM_ENABLE_THREADS=OFF',
'-DCMAKE_C_FLAGS=' + ' '.join(cflags),
'-DCMAKE_CXX_FLAGS=' + ' '.join(cxxflags)]
if sys.platform == 'darwin':
@@ -799,6 +805,7 @@ def UpdateClang(args):
'--sysroot=%s/sysroot' % toolchain_dir,
'-B%s' % toolchain_dir]
android_args = base_cmake_args + [
+ '-DLLVM_ENABLE_THREADS=OFF',
'-DCMAKE_C_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang'),
'-DCMAKE_CXX_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang++'),
'-DLLVM_CONFIG_PATH=' + os.path.join(LLVM_BUILD_DIR, 'bin/llvm-config'),
« no previous file with comments | « tools/clang/scripts/package.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698