Investigate using LLD on Linux |
|||||||||||||||||
Issue descriptionLLD is the linker developed as part of the LLVM project. Its ELF port is maturing and was recently able to link most of the FreeBSD base system [1]. I have also been able to use it to link Chromium. It gives us: 1) Faster link times (on my machine, without threads and with ICF, in a release build of Chromium, link time for the chrome binary was (average of 3) 10.9s for LLD and 16.5s for gold). 2) Close integration with the LLVM project allows us to deliver advanced LTO features such as ThinLTO that are expected to reduce LTO link time and memory consumption. We should investigate switching to LLD as Chromium's linker on Linux (and possibly also ChromeOS). [1] http://lists.llvm.org/pipermail/llvm-dev/2016-March/096449.html
Showing comments 20 - 119
of 119
Older ›
,
Jul 14 2016
The LLD bot did go green with pcc's change: https://build.chromium.org/p/chromium.fyi/builders/ClangToTLinuxLLD%20tester/builds/58
,
Jul 14 2016
Can we switch to LLD?
,
Jul 14 2016
I am fine with switching UBSan bots to LLD for wider testing: UBSan ToT: https://build.chromium.org/p/chromium.fyi/builders/ClangToTLinuxUBSanVptr UBSan: https://build.chromium.org/p/chromium.fyi/builders/UBSanVptr%20Linux The latter is currently red, but the fix is almost ready: https://codereview.chromium.org/2124633002/
,
Jul 14 2016
It needs a bit of due diligence (measuring link speeds with gold and lld in typical build configs and whatnot), but in general "very yes".
,
Jul 14 2016
For LTO bots, I believe, we need to make sure that devirtualization works and won't degrade with LLD. For that we'll need to wait until r275145 reached Chromium so that I can write a regression test for devirtualization in Chromium.
,
Jul 14 2016
(FWIW, I think we should use the same linker on all bots and not use a different linker on the LTO bots.)
,
Jul 14 2016
Yes, but we can make a smooth switch, where we temporarily have a couple of bots (lto and non-lto) on LLD, and the rest on Gold.
,
Jul 14 2016
We cannot switch to LLD completely because it lacks support of NaCl binaries. Does it matter?
,
Jul 14 2016
I believe nacl has its own toolchain and doesn't use our bundled gold either (but its own gold). So I don't think that should matter.
,
Jul 14 2016
I don't think it's a big deal, as Gold LLVM plugin in NaCl lives in a completely place: ./third_party/llvm-build/Release+Asserts/lib/LLVMgold.so ./native_client/toolchain/linux_x86/pnacl_newlib/lib/LLVMgold.so Also, the binaries linked by LLD for regular builds and by Gold for NaCl builds will never touch the same files. I don't see NaCl as an issue here.
,
Jul 14 2016
Yeah, and they carry their gold too: native_client/toolchain/linux_x86/nacl_arm_glibc/arm-nacl/bin/ld.gold native_client/toolchain/linux_x86/pnacl_newlib/arm-nacl/bin/ld.gold
,
Jul 14 2016
FWIW, the attached example shows that LLD fails to devirtualize the code that LLVM Gold plugin does. Gold: $ clang++ -O2 -fuse-ld=gold -o lala -fvisibility=hidden devirt.cc -std=c++11 -flto -fwhole-program-vtables -Wl,-plugin-opt,-pass-remarks=wholeprogramdevirt -Wl,-plugin-opt,O1 -Wl,-plugin-opt,-function-sections -Wl,-plugin-opt,save-temps LLVM gold plugin: <unknown>:0:0: devirtualized call LLVM gold plugin: <unknown>:0:0: devirtualized call LLVM gold plugin: <unknown>:0:0: devirtualized call $ LLD: $ clang++ -fuse-ld=lld -o lala devirt.cc -std=c++11 -flto -fvisibility=hidden -fwhole-program-vtables -Wl,-mllvm,-pass-remarks=wholeprogramdevirt -Wl,--lto-O1 -Wl,-save-temps $ I verified the result bitcode, that it's indeed the case. I should propobably file this to LLVM bugzilla, though.
,
Jul 14 2016
Filed https://llvm.org/bugs/show_bug.cgi?id=28554 and included the corresponding bitcode pieces.
,
Jul 15 2016
Okay, turns out my bug report was incorrect, as I missed -O2 in the command line for lld. I am in favor to convert build.chromium.org/p/chromium.fyi/builders/LTO Linux to use LLD.
,
Jul 15 2016
a CL to enable lld on two LTO bots: https://codereview.chromium.org/2152163002/
,
Jul 15 2016
Turns out the CL was premature. Peter says: "I don't think this will work just yet because the clang package does not include lld."
,
Jul 18 2016
For the reference: today I am working on building Clang toolchain with LTO (and lld). The work-in-progress CL is https://codereview.chromium.org/2158753003/ but it's just a start. I will need to remove one stage and significantly change another one before it looks like a right change.
,
Jul 26 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/36bb2be2523c83aa6b7601e92753dd49ae1924d3 commit 36bb2be2523c83aa6b7601e92753dd49ae1924d3 Author: krasin <krasin@google.com> Date: Tue Jul 26 04:08:20 2016 Clang toolchain: ship lld; build the whole toolchain with LTO. This only affects the Linux build. BUG= 607968 Review-Url: https://codereview.chromium.org/2158753003 Cr-Commit-Position: refs/heads/master@{#407702} [modify] https://crrev.com/36bb2be2523c83aa6b7601e92753dd49ae1924d3/tools/clang/scripts/package.py [modify] https://crrev.com/36bb2be2523c83aa6b7601e92753dd49ae1924d3/tools/clang/scripts/update.py
,
Jul 26 2016
,
Aug 5 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d858f427b0ed6d932975105f8dc9a072da99e3cb commit d858f427b0ed6d932975105f8dc9a072da99e3cb Author: thakis <thakis@chromium.org> Date: Fri Aug 05 18:29:35 2016 Revert of Clang toolchain: use lld to compile LLVM Gold plugin and lld with LTO. (patchset #10 id:180001 of https://codereview.chromium.org/2158753003/ ) Reason for revert: Somewhat speculative; it's possible this breaks building clang packages. See crbug.com/629966 comment 36 / 37. Original issue's description: > Clang toolchain: ship lld; build the whole toolchain with LTO. > > This only affects the Linux build. > > BUG= 607968 > > Committed: https://crrev.com/36bb2be2523c83aa6b7601e92753dd49ae1924d3 > Cr-Commit-Position: refs/heads/master@{#407702} TBR=hans@chromium.org,pcc@chromium.org,krasin@chromium.org,krasin@google.com NOTRY=true BUG= 607968 Review-Url: https://codereview.chromium.org/2217113003 Cr-Commit-Position: refs/heads/master@{#410118} [modify] https://crrev.com/d858f427b0ed6d932975105f8dc9a072da99e3cb/tools/clang/scripts/package.py [modify] https://crrev.com/d858f427b0ed6d932975105f8dc9a072da99e3cb/tools/clang/scripts/update.py
,
Aug 5 2016
,
Aug 10 2016
FWIW, even with use_lld=true, we still use gold plugin for ar: https://cs.chromium.org/chromium/src/build/config/posix/BUILD.gn?q=arflags+case:yes&sq=package:chromium&l=22&dr=C if ((allow_posix_link_time_opt || is_cfi) && !is_nacl) { arflags = [ "--plugin", rebase_path("$clang_base_path/lib/LLVMgold.so", root_build_dir), ] } This needs to be resolved prior to enabling lld by default.
,
Aug 10 2016
>This needs to be resolved prior to enabling lld by default. The proper statement would be "prior to removing LLVM Gold plugin from the toolchain". It's still okay to use lld for linking binaries, and Gold plugin for ar.
,
Oct 27 2016
I forgot to update, but llvm-ar works as ar replacement. No issues found in the Chromium case, we just need to ship llvm-ar as a part of Clang package.
,
Oct 27 2016
,
Dec 12 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/540eb54150917e0ffa28559b7c77fad2e4783eb0 commit 540eb54150917e0ffa28559b7c77fad2e4783eb0 Author: krasin <krasin@chromium.org> Date: Mon Dec 12 23:11:53 2016 Use LLD on ThinLTO ToT bot. BUG= 607968 , 660216 Review-Url: https://codereview.chromium.org/2568873003 Cr-Commit-Position: refs/heads/master@{#437944} [modify] https://crrev.com/540eb54150917e0ffa28559b7c77fad2e4783eb0/tools/mb/mb_config.pyl
,
Dec 13 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/212e4d886c91da74f296758d62c7d6a5ef87fae1 commit 212e4d886c91da74f296758d62c7d6a5ef87fae1 Author: krasin <krasin@chromium.org> Date: Tue Dec 13 18:32:23 2016 Clang toolchain: link Gold plugin with lld. This is yet another step towards getting rid of Gold plugin for LTO. BUG= 607968 Review-Url: https://codereview.chromium.org/2569813003 Cr-Commit-Position: refs/heads/master@{#438232} [modify] https://crrev.com/212e4d886c91da74f296758d62c7d6a5ef87fae1/tools/clang/scripts/update.py
,
Dec 13 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b55d85ef344b55a8b3db2f8cb0de23e7d6ec633b commit b55d85ef344b55a8b3db2f8cb0de23e7d6ec633b Author: thakis <thakis@chromium.org> Date: Tue Dec 13 20:49:21 2016 Revert of Clang toolchain: link Gold plugin with lld. (patchset #1 id:1 of https://codereview.chromium.org/2569813003/ ) Reason for revert: Blocks making a clang roll. Will revert this, roll, then reland this and the fix https://codereview.chromium.org/2572833003/ , and then roll to -2 with that. Original issue's description: > Clang toolchain: link Gold plugin with lld. > > This is yet another step towards getting rid of Gold plugin > for LTO. > > BUG= 607968 > > Committed: https://crrev.com/212e4d886c91da74f296758d62c7d6a5ef87fae1 > Cr-Commit-Position: refs/heads/master@{#438232} TBR=krasin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 607968 Review-Url: https://codereview.chromium.org/2569323002 Cr-Commit-Position: refs/heads/master@{#438277} [modify] https://crrev.com/b55d85ef344b55a8b3db2f8cb0de23e7d6ec633b/tools/clang/scripts/update.py
,
Dec 15 2016
,
Jan 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ca4c79a635761b65faecd49dbb6d7a82c14a3a95 commit ca4c79a635761b65faecd49dbb6d7a82c14a3a95 Author: krasin <krasin@chromium.org> Date: Fri Jan 13 23:46:17 2017 Port a workaround for LLVM bug about libc free programs to lld. Originally, the flag was Gold-specific, but recently we started to use lld in some cases, and therefore an lld-specific flag needs to be passed. BUG= 607968 Review-Url: https://codereview.chromium.org/2628383002 Cr-Commit-Position: refs/heads/master@{#443727} [modify] https://crrev.com/ca4c79a635761b65faecd49dbb6d7a82c14a3a95/chrome/test/data/nacl/BUILD.gn
,
Mar 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/11bb25447c3170340828888298f90ae5ac7de746 commit 11bb25447c3170340828888298f90ae5ac7de746 Author: krasin <krasin@chromium.org> Date: Mon Mar 13 20:12:00 2017 Ship LLD and llvm-ar with Clang toolchain on Linux. Theoretically, that gives us a chance to switch from Gold plugin to lld for all modes in Chrome. Two bundled, potentially risky changes: - LLD and Gold plugin are built with threads enabled - LLD and Gold plugin are linked with LLD + ThinLTO instead of FullLTO + Gold plugin. BUG= 607968 Review-Url: https://codereview.chromium.org/2572833003 Cr-Commit-Position: refs/heads/master@{#456453} [modify] https://crrev.com/11bb25447c3170340828888298f90ae5ac7de746/tools/clang/scripts/package.py [modify] https://crrev.com/11bb25447c3170340828888298f90ae5ac7de746/tools/clang/scripts/update.py
,
Mar 22 2017
After the upcoming Clang roll ( https://crbug.com/703833 ), I will submit this CL that makes us using llvm-ar when building with Clang: https://codereview.chromium.org/2766333002/ That will eliminate the need for Gold plugin in the cases, when use_lld=true.
,
Mar 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8968cd5170f4a22b1c508ffa3bc240b346c44b1b commit 8968cd5170f4a22b1c508ffa3bc240b346c44b1b Author: krasin <krasin@chromium.org> Date: Tue Mar 28 16:46:15 2017 Use llvm-ar when building with Clang. llvm-ar is faster and is capable of handling LLVM bitcode files without a need for a Gold plugin. BUG= 660216 , 607968 Review-Url: https://codereview.chromium.org/2766333002 Cr-Commit-Position: refs/heads/master@{#460129} [modify] https://crrev.com/8968cd5170f4a22b1c508ffa3bc240b346c44b1b/build/config/compiler/BUILD.gn [modify] https://crrev.com/8968cd5170f4a22b1c508ffa3bc240b346c44b1b/build/config/posix/BUILD.gn [modify] https://crrev.com/8968cd5170f4a22b1c508ffa3bc240b346c44b1b/build/toolchain/gcc_toolchain.gni
,
Mar 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/82460c48b74229f08ddb8b19982a6a5076787466 commit 82460c48b74229f08ddb8b19982a6a5076787466 Author: krasin <krasin@chromium.org> Date: Wed Mar 29 05:43:12 2017 Make 'LTO Linux' and 'LTO Linux Perf' bots to use LLD and ThinLTO. Soon, we'll switch all LTO bots to LLD / ThinLTO, but we need a few brave souls to go first. BUG= 660216 , 607968 Review-Url: https://codereview.chromium.org/2776243002 Cr-Commit-Position: refs/heads/master@{#460291} [modify] https://crrev.com/82460c48b74229f08ddb8b19982a6a5076787466/tools/mb/mb_config.pyl
,
Mar 29 2017
The current issue to resolve is inability to link $ gn gen out/thinlto-off '--args=is_chrome_branded=true is_official_build=true is_debug=false is_component_build=false allow_posix_link_time_opt=true is_cfi=false use_thin_lto=true symbol_level=2 use_lld = true' --check $ ninja -C out/thinlto-off/ libwidevinecdmadapter.so [1/1] SOLINK_MODULE ./libwidevinecdmadapter.so FAILED: libwidevinecdmadapter.so ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared libwidevinecdm.so -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -fuse-ld=lld -Wl,--icf=all -flto=thin -Wl,--thinlto-jobs=8 -Wl,--thinlto-cache-dir=thinlto-cache -Wl,-plugin-opt,-function-sections -m64 -pthread -Werror -Wl,-O1 -Wl,--gc-sections --sysroot=../../build/linux/debian_wheezy_amd64-sysroot -L/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/lib/x86_64-linux-gnu -Wl,-rpath-link=/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/lib/x86_64-linux-gnu -L/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib/x86_64-linux-gnu -L/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.6 -Wl,-rpath-link=/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib -Wl,-rpath-link=/usr/local/google/home/krasin/chr33/src/build/linux/debian_wheezy_amd64-sysroot/usr/lib -Wl,-rpath=\$ORIGIN/. -Wl,-rpath-link=. -o "./libwidevinecdmadapter.so" -Wl,-soname="libwidevinecdmadapter.so" @"./libwidevinecdmadapter.so.rsp" /usr/local/google/home/krasin/chr33/src/out/thinlto-off/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: invalid alignment of section headers clang: error: linker command failed with exit code 1 (use -v to see invocation) Observations: - it only fails with LLD - the LLD messages comes from http://llvm-cs.pcc.me.uk/include/llvm/Object/ELF.h#364 and is *NOT* helpful. It does not include the name of the ELF file it does not like. My guess it's libwidevinecdm.so, but it's yet to be confirmed.
,
Mar 29 2017
Maybe a good first change would be to make the error message helpful :-)
,
Mar 29 2017
Already considering that, but I have some residuals in my poor memory that last time I complained about a similarly unhelpful message, the response was that they are universally unhelpful in LLD and if I fix one, I need to fix all. But I might be confusing things. Anyway, I will discuss this with the LLD team, and fix the message if they are okay.
,
Mar 29 2017
I don't remember when that was discussed, but now that we have input file names in most error messages, so if it's missing, it's a bug. I'll try to improve it.
,
Mar 29 2017
Hi Rui, so I am confusing (I think it was an offline chat with someone else, and it could have been that either I complained about a different kind of unhelpful message, or the things have been improved since that discussion). Thank you and apologies for the confusion.
,
Mar 29 2017
As for the specific failure I observe, the first line of 'readelf -S out/thinlto-off/libwidevinecdm.so' gives: There are 39 section headers, starting at offset 0x56ee37 Assuming that's the offset in the question, it is indeed not aligned! I will check what happens when building with Gold.
,
Mar 29 2017
It is actually likely that we responded that way because LLD's error messages were actually poor. Things have improved a lot since then!
,
Mar 29 2017
This is the best possible course of action. :) Thank you!
,
Mar 29 2017
http://bugs.llvm.org/show_bug.cgi?id=28553 was about diagnostics, I improved a few there.
,
Mar 29 2017
So, the problem here is that libwidevinecdm.so has unaligned section headers offset. Unfortunately, libwidevinecdm.so is one of very few binary blobs, and there's no direct way for me to fix the ELF file. Adding relevant people who maintain CDM. Haoming, Xiaohan, is there a way to properly generate the blob so that it does not violate ELF spec?
,
Mar 29 2017
krasin: I am not familiar with ELF and have no idea what the problem is :) We do build libwidevinecdm.so on a separate bot. Do you have more information about what we can do to fix it?
,
Mar 29 2017
,
Mar 29 2017
Hi Xiaohan! Thank you for the quick reply. If I can take a look at the build files (and potentially be able to actually run a build on them), as can try to fix the issue.
,
Mar 30 2017
As discussed in the chat, the issue is on the protection utility that is used to produce the final libwidevinecdm.so. We're now waiting for the developer of the utility to respond.
,
Apr 4 2017
,
Apr 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7997bbe88aef7eeca37111dcb8426f0430347fb5 commit 7997bbe88aef7eeca37111dcb8426f0430347fb5 Author: krasin <krasin@chromium.org> Date: Mon Apr 24 20:19:18 2017 Enable ThinLTO and LLD for POSIX LTO by default on Linux. Eventually, we will enable LLD on Linux even for regular builds, but it's natural to make incremental steps here. ThinLTO brings multi-threaded linking for LinkTimeOptimization builds, which allows to speed up codegen considerably (up to 4x). ThinLTO also manages a cache inside out/<gn-config>/thinlto-cache directory, that improves incremental linking as well. There's a cache pruning policy that will prevent the cache from growing indefinitely. The policy is not yet finalized, and complaints / suggestions are welcome. BUG= 660216 , 607968 Review-Url: https://codereview.chromium.org/2831213006 Cr-Commit-Position: refs/heads/master@{#466732} [modify] https://crrev.com/7997bbe88aef7eeca37111dcb8426f0430347fb5/build/toolchain/toolchain.gni
,
Apr 24 2017
,
Apr 25 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6aee4d67dcc67850c8ec7b9fc181cb7d91b55734 commit 6aee4d67dcc67850c8ec7b9fc181cb7d91b55734 Author: krasin <krasin@chromium.org> Date: Tue Apr 25 00:42:01 2017 Revert of Enable ThinLTO and LLD for POSIX LTO by default on Linux. (patchset #4 id:60001 of https://codereview.chromium.org/2831213006/ ) Reason for revert: Code size increase: https://chromeperf.appspot.com/report?sid=7826328365affe1842778994c934cbe08c7f9b78ef5d8895ec85d3094bb8972d&start_rev=466555&end_rev=466782 Postmortem is coming. TL;DR: worse dead code elimination in ThinLTO Original issue's description: > Enable ThinLTO and LLD for POSIX LTO by default on Linux. > > Eventually, we will enable LLD on Linux even for regular > builds, but it's natural to make incremental steps here. > > ThinLTO brings multi-threaded linking for LinkTimeOptimization > builds, which allows to speed up codegen considerably (up to 4x). > ThinLTO also manages a cache inside out/<gn-config>/thinlto-cache > directory, that improves incremental linking as well. > > There's a cache pruning policy that will prevent the cache from > growing indefinitely. The policy is not yet finalized, and > complaints / suggestions are welcome. > > BUG= 660216 , 607968 > > Review-Url: https://codereview.chromium.org/2831213006 > Cr-Commit-Position: refs/heads/master@{#466732} > Committed: https://chromium.googlesource.com/chromium/src/+/7997bbe88aef7eeca37111dcb8426f0430347fb5 TBR=dpranke@chromium.org,thakis@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 660216 , 607968 Review-Url: https://codereview.chromium.org/2842683002 Cr-Commit-Position: refs/heads/master@{#466842} [modify] https://crrev.com/6aee4d67dcc67850c8ec7b9fc181cb7d91b55734/build/toolchain/toolchain.gni
,
Apr 25 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/deda22b114bc8308ad1ae888727a66ceda9189aa commit deda22b114bc8308ad1ae888727a66ceda9189aa Author: pcc <pcc@chromium.org> Date: Tue Apr 25 21:54:04 2017 build: Enable function sections and data sections during LTO. This allows the linker to apply --gc-sections to object files created during LTO. This yields a >8MB reduction in stripped binary size for official binaries built with ThinLTO. This change increases the size of an official binary built with regular LTO by 8192 bytes, but this probably isn't worth worrying about. BUG= 660216 , 607968 R=thakis@chromium.org,krasin@chromium.org Review-Url: https://codereview.chromium.org/2840723003 Cr-Commit-Position: refs/heads/master@{#467129} [modify] https://crrev.com/deda22b114bc8308ad1ae888727a66ceda9189aa/build/config/compiler/BUILD.gn
,
Apr 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/317d9edab7ba87a5c05564ca8c66a12911c46872 commit 317d9edab7ba87a5c05564ca8c66a12911c46872 Author: krasin <krasin@chromium.org> Date: Fri Apr 28 20:34:01 2017 Disable linker map for Clang toolchains. Right now, we are transitioning to LLD, and LLD has a different map format (so, the analysis tool will need to be updated), as well as suboptimal implementation that adds 60 minutes to the Chrome link time. This will be reenabled when both of the blockers above are resolved. BUG= 716209 , 607968 Review-Url: https://codereview.chromium.org/2849583005 Cr-Commit-Position: refs/heads/master@{#468113} [modify] https://crrev.com/317d9edab7ba87a5c05564ca8c66a12911c46872/build/toolchain/gcc_toolchain.gni
,
May 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/36be29e9bff22ab7cb6acce2ac66270a805117f2 commit 36be29e9bff22ab7cb6acce2ac66270a805117f2 Author: pcc <pcc@chromium.org> Date: Fri May 12 20:06:40 2017 clang: Link lld against tcmalloc. We may want to link the rest of the toolchain against tcmalloc, but for now this just eliminates a difference between lld and gold, which should help fix a perf regression when switching to lld. BUG= 607968 R=thakis@chromium.org,krasin@chromium.org Review-Url: https://codereview.chromium.org/2848113002 Cr-Commit-Position: refs/heads/master@{#471422} [modify] https://crrev.com/36be29e9bff22ab7cb6acce2ac66270a805117f2/tools/clang/scripts/package.py [modify] https://crrev.com/36be29e9bff22ab7cb6acce2ac66270a805117f2/tools/clang/scripts/update.py
,
May 12 2017
,
May 12 2017
Was the performance of malloc reason of the slowness of LTO with LLD?
,
May 12 2017
It was one of the reasons; after we resolved the issue with -Map (see issue 716209 ) we ran into this malloc performance issue.
,
May 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e6a66337552cfd9a9af9471775ad5b67ee588b88 commit e6a66337552cfd9a9af9471775ad5b67ee588b88 Author: pcc <pcc@chromium.org> Date: Sat May 13 01:26:51 2017 Enable LLD for POSIX LTO builds on Linux. This is a stripped down version of (reverted) change: https://codereview.chromium.org/2831213006/ That change was reverted because ThinLTO regresses the binary size too much. LLD was a harmless part of the change, so it's worth enabling it. Based on https://codereview.chromium.org/2844883002/ by krasin@chromium.org, who is no longer with Google. BUG= 607968 R=dpranke@chromium.org,thakis@chromium.org Review-Url: https://codereview.chromium.org/2877913003 Cr-Commit-Position: refs/heads/master@{#471532} [modify] https://crrev.com/e6a66337552cfd9a9af9471775ad5b67ee588b88/build/toolchain/toolchain.gni
,
May 13 2017
I looked at some ninja logs from before and after my change landed, which confirmed that enabling LLD improved link time performance. http://chromium-build-stats.appspot.com/ninja_log/2017/05/12/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-165129.27039.gz/lastbuild http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-181201.27972.gz/lastbuild http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-191708.26496.gz/lastbuild http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-203157.28365.gz/lastbuild <-- lld change landed here http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-214612.27827.gz/lastbuild http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170512-225415.27668.gz/lastbuild http://chromium-build-stats.appspot.com/ninja_log/2017/05/13/build47-m1/ninja_log.build47-m1.chrome-bot.20170513-000706.28607.gz/lastbuild Median link time with gold was 1525s, median with lld was "only" 1462s.
,
May 15 2017
It is "only" 63s shorter because it spends most of its time to do LTO, right?
,
May 15 2017
Right.
,
May 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5d98fe2426808ddc4c9526a49ce63db2ace279c2 commit 5d98fe2426808ddc4c9526a49ce63db2ace279c2 Author: pcc <pcc@chromium.org> Date: Wed May 17 00:12:47 2017 build: Remove build system support for gold plugin. R=thakis@chromium.org TBR=mseaborn@chromium.org BUG= 607968 Review-Url: https://codereview.chromium.org/2891513002 Cr-Commit-Position: refs/heads/master@{#472258} [modify] https://crrev.com/5d98fe2426808ddc4c9526a49ce63db2ace279c2/build/config/compiler/BUILD.gn [modify] https://crrev.com/5d98fe2426808ddc4c9526a49ce63db2ace279c2/chrome/test/data/nacl/BUILD.gn
,
May 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/76561105b5060a8fcfe39463eddbc60a3f776fb5 commit 76561105b5060a8fcfe39463eddbc60a3f776fb5 Author: pcc <pcc@chromium.org> Date: Wed May 17 19:00:28 2017 Revert of build: Remove build system support for gold plugin. (patchset #2 id:20001 of https://codereview.chromium.org/2891513002/ ) Reason for revert: Broke CFI buildbots: https://build.chromium.org/p/chromium.fyi/builders/CFI%20Linux https://build.chromium.org/p/chromium.fyi/builders/CFI%20Linux%20CF https://build.chromium.org/p/chromium.fyi/builders/CFI%20Linux%20ToT Need build file fixes to make is_cfi imply use_lld. Original issue's description: > build: Remove build system support for gold plugin. > > R=thakis@chromium.org > TBR=mseaborn@chromium.org > BUG= 607968 > > Review-Url: https://codereview.chromium.org/2891513002 > Cr-Commit-Position: refs/heads/master@{#472258} > Committed: https://chromium.googlesource.com/chromium/src/+/5d98fe2426808ddc4c9526a49ce63db2ace279c2 TBR=thakis@chromium.org,mseaborn@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 607968 Review-Url: https://codereview.chromium.org/2892643002 Cr-Commit-Position: refs/heads/master@{#472516} [modify] https://crrev.com/76561105b5060a8fcfe39463eddbc60a3f776fb5/build/config/compiler/BUILD.gn [modify] https://crrev.com/76561105b5060a8fcfe39463eddbc60a3f776fb5/chrome/test/data/nacl/BUILD.gn
,
May 18 2017
Do you *HAVE* to remove the gold plugin support? On ChromeOS we are trying ThinLTO and we had not considered moving to LLD yet. So, removing the gold plugin support breaks our current ThinLTO testing...
,
May 18 2017
You're not using the LLVMgold.so from the chromium clang package, right? You just need the compiler flags?
,
May 18 2017
Yes, we can provide our own LLVMgold.so and we need the compiler flags.
,
May 18 2017
How are you enabling ThinLTO? I looked at https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/1f57b768f72bcb5e400d9632d63b750e1d2d10cf and it seemed like you were somehow adding flags directly, bypassing gn. So do you really need support for the flags in gn?
,
May 19 2017
My current implementation does not work. I am still working on that. I need to add use_thin_lto=true in the config file and remove the CFLAGS.
,
May 19 2017
I see, I guess you'll need the gold plugin flags in that case. I'll make a change to my CL so that we only allow the gold plugin if is_chromeos.
,
May 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/579f0a9f7b3a6428db7ae8aa457fd197ac325fe9 commit 579f0a9f7b3a6428db7ae8aa457fd197ac325fe9 Author: pcc <pcc@chromium.org> Date: Mon May 22 23:10:04 2017 Revert of Enable LLD for POSIX LTO builds on Linux. (patchset #1 id:1 of https://codereview.chromium.org/2877913003/ ) Reason for revert: Breaks crash reporting. BUG=716484 Original issue's description: > Enable LLD for POSIX LTO builds on Linux. > > This is a stripped down version of (reverted) > change: https://codereview.chromium.org/2831213006/ > > That change was reverted because ThinLTO regresses the binary > size too much. LLD was a harmless part of the change, > so it's worth enabling it. > > Based on https://codereview.chromium.org/2844883002/ by > krasin@chromium.org, who is no longer with Google. > > BUG= 607968 > R=dpranke@chromium.org,thakis@chromium.org > > Review-Url: https://codereview.chromium.org/2877913003 > Cr-Commit-Position: refs/heads/master@{#471532} > Committed: https://chromium.googlesource.com/chromium/src/+/e6a66337552cfd9a9af9471775ad5b67ee588b88 TBR=dpranke@chromium.org,thakis@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= 607968 Review-Url: https://codereview.chromium.org/2900883002 Cr-Commit-Position: refs/heads/master@{#473733} [modify] https://crrev.com/579f0a9f7b3a6428db7ae8aa457fd197ac325fe9/build/toolchain/toolchain.gni
,
May 22 2017
for #90, yes, we still need gold plugin flags for now.
,
May 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/87e965ee819215cdcdd88eb26fb824194a04cd9a commit 87e965ee819215cdcdd88eb26fb824194a04cd9a Author: pcc <pcc@chromium.org> Date: Fri May 26 22:04:50 2017 Reland of Enable LLD for POSIX LTO builds on Linux. (patchset #1 id:1 of https://codereview.chromium.org/2900883002/ ) Reason for revert: Fixes for breakpad bugs that broke crash reporting have landed: https://codereview.chromium.org/2906093002/ Original issue's description: > Revert of Enable LLD for POSIX LTO builds on Linux. (patchset #1 id:1 of https://codereview.chromium.org/2877913003/ ) > > Reason for revert: > Breaks crash reporting. > > BUG=716484 > > Original issue's description: > > Enable LLD for POSIX LTO builds on Linux. > > > > This is a stripped down version of (reverted) > > change: https://codereview.chromium.org/2831213006/ > > > > That change was reverted because ThinLTO regresses the binary > > size too much. LLD was a harmless part of the change, > > so it's worth enabling it. > > > > Based on https://codereview.chromium.org/2844883002/ by > > krasin@chromium.org, who is no longer with Google. > > > > BUG= 607968 > > R=dpranke@chromium.org,thakis@chromium.org > > > > Review-Url: https://codereview.chromium.org/2877913003 > > Cr-Commit-Position: refs/heads/master@{#471532} > > Committed: https://chromium.googlesource.com/chromium/src/+/e6a66337552cfd9a9af9471775ad5b67ee588b88 > > TBR=dpranke@chromium.org,thakis@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG= 607968 > > Review-Url: https://codereview.chromium.org/2900883002 > Cr-Commit-Position: refs/heads/master@{#473733} > Committed: https://chromium.googlesource.com/chromium/src/+/579f0a9f7b3a6428db7ae8aa457fd197ac325fe9 TBR=dpranke@chromium.org,thakis@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=716484 Review-Url: https://codereview.chromium.org/2909713002 Cr-Commit-Position: refs/heads/master@{#475155} [modify] https://crrev.com/87e965ee819215cdcdd88eb26fb824194a04cd9a/build/toolchain/toolchain.gni
,
Jun 20 2017
,
Jun 20 2017
,
Jun 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/84bbf436692e8b91ba238f11a4749fd2c4d99cb7 commit 84bbf436692e8b91ba238f11a4749fd2c4d99cb7 Author: pcc <pcc@chromium.org> Date: Thu Jun 22 20:48:55 2017 build: Remove build system support for gold plugin, except under ChromeOS. R=thakis@chromium.org,brettw@chromium.org TBR=mseaborn@chromium.org BUG= 607968 Review-Url: https://codereview.chromium.org/2891843002 Cr-Commit-Position: refs/heads/master@{#481656} [modify] https://crrev.com/84bbf436692e8b91ba238f11a4749fd2c4d99cb7/build/config/compiler/BUILD.gn [modify] https://crrev.com/84bbf436692e8b91ba238f11a4749fd2c4d99cb7/build/config/compiler/compiler.gni [modify] https://crrev.com/84bbf436692e8b91ba238f11a4749fd2c4d99cb7/build/toolchain/toolchain.gni [modify] https://crrev.com/84bbf436692e8b91ba238f11a4749fd2c4d99cb7/tools/win/DebugVisualizers/BUILD.gn
,
Jun 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e92354177987b98fdbdd0a44f069eb209d770adc commit e92354177987b98fdbdd0a44f069eb209d770adc Author: fsamuel <fsamuel@google.com> Date: Thu Jun 22 21:42:59 2017 Revert of build: Remove build system support for gold plugin, except under ChromeOS. (patchset #5 id:80001 of https://codereview.chromium.org/2891843002/ ) Reason for revert: Suspecting this CL for generate_build_files failure: https://uberchromegw.corp.google.com/i/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/18593 Original issue's description: > build: Remove build system support for gold plugin, except under ChromeOS. > > R=thakis@chromium.org,brettw@chromium.org > TBR=mseaborn@chromium.org > BUG= 607968 > > Review-Url: https://codereview.chromium.org/2891843002 > Cr-Commit-Position: refs/heads/master@{#481656} > Committed: https://chromium.googlesource.com/chromium/src/+/84bbf436692e8b91ba238f11a4749fd2c4d99cb7 TBR=brettw@chromium.org,thakis@chromium.org,mseaborn@chromium.org,yunlian@chromium.org,pcc@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 607968 Review-Url: https://codereview.chromium.org/2953953002 Cr-Commit-Position: refs/heads/master@{#481673} [modify] https://crrev.com/e92354177987b98fdbdd0a44f069eb209d770adc/build/config/compiler/BUILD.gn [modify] https://crrev.com/e92354177987b98fdbdd0a44f069eb209d770adc/build/config/compiler/compiler.gni [modify] https://crrev.com/e92354177987b98fdbdd0a44f069eb209d770adc/build/toolchain/toolchain.gni [modify] https://crrev.com/e92354177987b98fdbdd0a44f069eb209d770adc/tools/win/DebugVisualizers/BUILD.gn
,
Jun 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0f268cb3af337cf608bd1902148a84195837ad1b commit 0f268cb3af337cf608bd1902148a84195837ad1b Author: pcc <pcc@chromium.org> Date: Fri Jun 23 05:47:03 2017 build: Remove build system support for gold plugin, except under ChromeOS, take 2. Previous attempt: https://codereview.chromium.org/2891843002 This attempt includes a fix for //chrome/test/data/nacl/BUILD.gn in official builds. R=thakis@chromium.org TBR=mseaborn@chromium.org BUG= 607968 Review-Url: https://codereview.chromium.org/2957523002 Cr-Commit-Position: refs/heads/master@{#481814} [modify] https://crrev.com/0f268cb3af337cf608bd1902148a84195837ad1b/build/config/compiler/BUILD.gn [modify] https://crrev.com/0f268cb3af337cf608bd1902148a84195837ad1b/build/config/compiler/compiler.gni [modify] https://crrev.com/0f268cb3af337cf608bd1902148a84195837ad1b/build/toolchain/toolchain.gni [modify] https://crrev.com/0f268cb3af337cf608bd1902148a84195837ad1b/chrome/test/data/nacl/BUILD.gn [modify] https://crrev.com/0f268cb3af337cf608bd1902148a84195837ad1b/tools/win/DebugVisualizers/BUILD.gn
,
Jun 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6489fe94c6edc435f5f0b291032c0e8883212afd commit 6489fe94c6edc435f5f0b291032c0e8883212afd Author: pcc <pcc@chromium.org> Date: Wed Jun 28 21:30:44 2017 Stop building the gold plugin and linking lld against tcmalloc. As far as I am aware, there are no remaining users of the gold plugin (v8, the last user I am aware of, stopped downloading it as part of its build in https://chromium-review.googlesource.com/547058 and removed build support in https://chromium-review.googlesource.com/549300), so we no longer need to build it. Also, now that we have started using ThinLTO in official builds, not only is the perf gain of linking lld against tcmalloc not as important, but I have also measured it to be smaller in relative terms. For base_unittests: With tcmalloc (median of 6): 42.29s With glibc malloc: 44.61s So about 5%, which is about half of what I measured for regular LTO. And of course the absolute delta is smaller as well. I think that justifies removing it. We can re-evaluate for the toolchain as a whole at a later time. BUG= 607968 R=thakis@chromium.org,hans@chromium.org Review-Url: https://codereview.chromium.org/2963693002 Cr-Commit-Position: refs/heads/master@{#483149} [modify] https://crrev.com/6489fe94c6edc435f5f0b291032c0e8883212afd/docs/updating_clang.md [modify] https://crrev.com/6489fe94c6edc435f5f0b291032c0e8883212afd/tools/clang/scripts/package.py [modify] https://crrev.com/6489fe94c6edc435f5f0b291032c0e8883212afd/tools/clang/scripts/update.py
,
Jun 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41 commit effae3bbe9479ad36042df4b4a5db3dc3ebf0c41 Author: pcc <pcc@chromium.org> Date: Wed Jun 28 22:26:41 2017 Remove LTO-related hacks from binutils build script. This effectively reverts: https://codereview.chromium.org/1330433002 (link against LLVM's libstdc++) https://codereview.chromium.org/1670073003 (link against tcmalloc) and part of https://codereview.chromium.org/899783003 (export plugin-api.h) All of which were to support use of LLVM's gold plugin for LTO. Because we no longer build or use the gold plugin, we no longer need this complexity in the build script. BUG= 607968 R=thakis@chromium.org Review-Url: https://codereview.chromium.org/2961943002 Cr-Commit-Position: refs/heads/master@{#483173} [modify] https://crrev.com/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41/third_party/binutils/Linux_ia32/binutils.tar.bz2.sha1 [modify] https://crrev.com/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41/third_party/binutils/Linux_x64/binutils.tar.bz2.sha1 [modify] https://crrev.com/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41/third_party/binutils/README.chromium [modify] https://crrev.com/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41/third_party/binutils/build-all.sh [modify] https://crrev.com/effae3bbe9479ad36042df4b4a5db3dc3ebf0c41/third_party/binutils/build-one.sh
,
Jun 29 2017
Somewhat surprisingly, my change that switched lld from using tcmalloc to glibc malloc appears to have resulted in a *reduction* in chrome link times on the "Google Chrome Linux x64" bot, down from ~318s to ~296s (median of 3 ninja logs before and after). I didn't expect this (I thought the "t" in tcmalloc stood for "thread"), but I'll take it.
,
Jun 29 2017
I'd guess we don't allocate that many memory in the multi-threaded part of lld, as most parallel-for loops just read some data from one part and "apply" that to other part, but I may be wrong.
,
Jun 29 2017
This was with ThinLTO, which I believe makes quite heavy use of the allocator in the backend compilation jobs (which are multi-threaded).
,
Jul 17 2017
Could you also update the documentation https://www.chromium.org/developers/testing/control-flow-integrity ? I believe the build/download_gold_plugin.py part is outdated.
,
Jul 17 2017
c#104: Done.
,
Sep 14 2017
,
Sep 15 2017
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dd160677bc6cd8a5ab468c187f61902a8fbf4b41 commit dd160677bc6cd8a5ab468c187f61902a8fbf4b41 Author: Peter Collingbourne <pcc@chromium.org> Date: Tue Oct 03 23:15:25 2017 Switch to LLD as the default linker on Linux/x64. Until recently the main feature that we needed that was not fully implemented in LLD was --gdb-index; this feature has now been implemented, so we can start using LLD in more build modes than just official builds. LLD's implementation of --gdb-index requires all translation units to be compiled with -ggnu-pubnames, so this patch does that. Also enable --gdb-index in official builds; the corrupt debug info error no longer appears when using LLD. Perf numbers as follows, median of 10 runs. Release build (is_debug=false use_goma=true): gold 19.73s, lld 10.22s. Debug build (is_debug=true use_goma=true): gold 26.27s, lld 18.38s Bug: 607968 , 682777 Change-Id: Ia63abc15e61d77202d2ca738e6a8bdb0cfe98144 Reviewed-on: https://chromium-review.googlesource.com/698292 Commit-Queue: Peter Collingbourne <pcc@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#506224} [modify] https://crrev.com/dd160677bc6cd8a5ab468c187f61902a8fbf4b41/build/config/compiler/BUILD.gn [modify] https://crrev.com/dd160677bc6cd8a5ab468c187f61902a8fbf4b41/build/config/compiler/compiler.gni
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6de9affa7a1bef1728d883462f44cbbae5326e6a commit 6de9affa7a1bef1728d883462f44cbbae5326e6a Author: Peter Collingbourne <pcc@chromium.org> Date: Tue Oct 03 23:47:14 2017 Revert "Switch to LLD as the default linker on Linux/x64." This reverts commit dd160677bc6cd8a5ab468c187f61902a8fbf4b41. Reason for revert: Broke Linux Builder (dbg) https://build.chromium.org/p/chromium.linux/builders/Linux%20Builder%20%28dbg%29/builds/116417 Original change's description: > Switch to LLD as the default linker on Linux/x64. > > Until recently the main feature that we needed that was not fully > implemented in LLD was --gdb-index; this feature has now been > implemented, so we can start using LLD in more build modes than just > official builds. LLD's implementation of --gdb-index requires all > translation units to be compiled with -ggnu-pubnames, so this patch > does that. > > Also enable --gdb-index in official builds; the corrupt debug info > error no longer appears when using LLD. > > Perf numbers as follows, median of 10 runs. > > Release build (is_debug=false use_goma=true): gold 19.73s, lld 10.22s. > Debug build (is_debug=true use_goma=true): gold 26.27s, lld 18.38s > > Bug: 607968 , 682777 > Change-Id: Ia63abc15e61d77202d2ca738e6a8bdb0cfe98144 > Reviewed-on: https://chromium-review.googlesource.com/698292 > Commit-Queue: Peter Collingbourne <pcc@chromium.org> > Reviewed-by: Dirk Pranke <dpranke@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#506224} TBR=thakis@chromium.org,dpranke@chromium.org,pcc@chromium.org Change-Id: Ic10bd05e43be064b66dbb6ef48063689d55dc85a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 607968 , 682777 Reviewed-on: https://chromium-review.googlesource.com/699534 Reviewed-by: Peter Collingbourne <pcc@chromium.org> Commit-Queue: Peter Collingbourne <pcc@chromium.org> Cr-Commit-Position: refs/heads/master@{#506231} [modify] https://crrev.com/6de9affa7a1bef1728d883462f44cbbae5326e6a/build/config/compiler/BUILD.gn [modify] https://crrev.com/6de9affa7a1bef1728d883462f44cbbae5326e6a/build/config/compiler/compiler.gni
,
Oct 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5581f58e288ebc2a6963dd434335d224b8f6297f commit 5581f58e288ebc2a6963dd434335d224b8f6297f Author: Peter Collingbourne <pcc@chromium.org> Date: Wed Oct 04 05:42:43 2017 Switch to LLD as the default linker on Linux/x64, take 2. Previous attempt: https://chromium-review.googlesource.com/c/chromium/src/+/698292 This time, the use_lld default uses current_{os,cpu} instead of target_{os,cpu}, which prevents it from defaulting to true when targeting NaCl. Bug: 607968 , 682777 Change-Id: Iedf5b2f9850df249172b7b543af312318e9beae9 Reviewed-on: https://chromium-review.googlesource.com/699741 Commit-Queue: Peter Collingbourne <pcc@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Cr-Commit-Position: refs/heads/master@{#506313} [modify] https://crrev.com/5581f58e288ebc2a6963dd434335d224b8f6297f/build/config/compiler/BUILD.gn [modify] https://crrev.com/5581f58e288ebc2a6963dd434335d224b8f6297f/build/config/compiler/compiler.gni
,
Oct 4 2017
,
Oct 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7cc7a4d697d18f6d2755196f30a42131aa1616c2 commit 7cc7a4d697d18f6d2755196f30a42131aa1616c2 Author: Oleh Prypin <oprypin@chromium.org> Date: Wed Oct 04 16:37:27 2017 Use LLD linker only with Clang LLD is not applicable when using a different compiler (GCC at least) Bug: chromium:607968 Change-Id: I5f4f53a5c91c52cc5ff9a0b9c5f2c5043c7add46 Reviewed-on: https://chromium-review.googlesource.com/700456 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Oleh Prypin <oprypin@chromium.org> Cr-Commit-Position: refs/heads/master@{#506409} [modify] https://crrev.com/7cc7a4d697d18f6d2755196f30a42131aa1616c2/build/config/compiler/compiler.gni
,
Oct 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5c1c6b17228f7696e2ed74f8d3d7a6438bf9a419 commit 5c1c6b17228f7696e2ed74f8d3d7a6438bf9a419 Author: Peter Collingbourne <pcc@chromium.org> Date: Fri Oct 06 00:18:30 2017 Stop passing -gsplit-dwarf to NaCl compilers. Should fix anything that explicitly passes use_debug_fission=true (or use_lld=true, which can imply use_debug_fission=true). Bug: 607968 Change-Id: I22cd532c12e1fa334c7273b09f566d5168f5b260 Reviewed-on: https://chromium-review.googlesource.com/703688 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Peter Collingbourne <pcc@chromium.org> Cr-Commit-Position: refs/heads/master@{#506926} [modify] https://crrev.com/5c1c6b17228f7696e2ed74f8d3d7a6438bf9a419/build/config/compiler/BUILD.gn
,
Oct 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e684c0cebda9d00d4b5d655920c516f79d857103 commit e684c0cebda9d00d4b5d655920c516f79d857103 Author: Michael Achenbach <machenbach@chromium.org> Date: Fri Oct 06 18:53:18 2017 Fix compilation with gcc on x64 Bug: 607968 , 682777 Change-Id: Ic8e56551b1691d95a9919bffa24fcf8e5b4d8485 Reviewed-on: https://chromium-review.googlesource.com/704656 Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#507132} [modify] https://crrev.com/e684c0cebda9d00d4b5d655920c516f79d857103/build/config/compiler/BUILD.gn
,
Oct 25 2017
I've reported an issue related to lld: https://bugs.chromium.org/p/chromium/issues/detail?id=778209
,
Dec 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/tools/build/+/c2da5c8e474969ebebb48b874d6716d5c8e211bb commit c2da5c8e474969ebebb48b874d6716d5c8e211bb Author: Peter Collingbourne <pcc@google.com> Date: Tue Dec 12 00:29:20 2017 Remove ClangToTLinuxLLD bot. Now that we have switched to LLD on Linux, the configuration of this bot is basically the same as that of ClangToTLinux, so there is no need to have both. Bug: 607968 Change-Id: I3abdbaff45a9a9c8d877c98b53c501221676eea6 Reviewed-on: https://chromium-review.googlesource.com/820602 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Peter Collingbourne <pcc@chromium.org> [modify] https://crrev.com/c2da5c8e474969ebebb48b874d6716d5c8e211bb/scripts/slave/recipe_modules/chromium_tests/chromium_clang.py [modify] https://crrev.com/c2da5c8e474969ebebb48b874d6716d5c8e211bb/scripts/slave/recipe_modules/chromium/config.py [modify] https://crrev.com/c2da5c8e474969ebebb48b874d6716d5c8e211bb/scripts/slave/recipe_modules/chromium/tests/configs.py [modify] https://crrev.com/c2da5c8e474969ebebb48b874d6716d5c8e211bb/masters/master.chromium.clang/builders.pyl
,
Dec 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aba729d699b405e8ac7f47f0df9d780db34b1c13 commit aba729d699b405e8ac7f47f0df9d780db34b1c13 Author: Peter Collingbourne <pcc@chromium.org> Date: Tue Dec 12 04:31:25 2017 Remove build configuration for ToTLinuxLLD. Bug: 607968 Change-Id: I039b18cfdecca6b9ce2d223f7ef226376b2830ef Reviewed-on: https://chromium-review.googlesource.com/821591 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Peter Collingbourne <pcc@chromium.org> Cr-Commit-Position: refs/heads/master@{#523336} [modify] https://crrev.com/aba729d699b405e8ac7f47f0df9d780db34b1c13/testing/buildbot/chromium.clang.json [modify] https://crrev.com/aba729d699b405e8ac7f47f0df9d780db34b1c13/testing/buildbot/test_suite_exceptions.pyl [modify] https://crrev.com/aba729d699b405e8ac7f47f0df9d780db34b1c13/testing/buildbot/waterfalls.pyl [modify] https://crrev.com/aba729d699b405e8ac7f47f0df9d780db34b1c13/tools/mb/mb_config.pyl
,
Jan 18 2018
,
Jul 9
I think this has ben done for a while now. (We investigated and decided to switch and switched, at least on the common archs we ship for.)
Showing comments 20 - 119
of 119
Older ›
|
|||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||