New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 607968 link

Starred by 13 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocked on:
issue 608881
issue 629966
issue 703833
issue 707488
issue 735101
issue 735126
issue 764744
issue 801100

Blocking:
issue 587594



Sign in to add a comment

Investigate using LLD on Linux

Project Member Reported by p...@chromium.org, Apr 29 2016

Issue description

LLD 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

Comment 21 by ruiu@google.com, Jul 14 2016

Can we switch to LLD?
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/
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".
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.
(FWIW, I think we should use the same linker on all bots and not use a different linker on the LTO bots.)
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.

Comment 27 by ruiu@google.com, Jul 14 2016

We cannot switch to LLD completely because it lacks support of NaCl binaries. Does it matter?
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.
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.
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
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.
devirt.cc
1.4 KB View Download
Filed https://llvm.org/bugs/show_bug.cgi?id=28554 and included the corresponding bitcode pieces.
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.

a CL to enable lld on two LTO bots: https://codereview.chromium.org/2152163002/
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."


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.
Project Member

Comment 37 by bugdroid1@chromium.org, 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

Blockedon: 629966
We'll get lld in the Clang toolchain in the next roll:  https://crbug.com/629966 
Project Member

Comment 39 by bugdroid1@chromium.org, 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

Blocking: 587594
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.
>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.
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.
Owner: krasin@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 45 by bugdroid1@chromium.org, 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

Project Member

Comment 46 by bugdroid1@chromium.org, 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

Project Member

Comment 47 by bugdroid1@chromium.org, 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

Cc: rahulchaudhry@chromium.org llozano@chromium.org
Project Member

Comment 49 by bugdroid1@chromium.org, 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

Project Member

Comment 50 by bugdroid1@chromium.org, 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

Blockedon: 703833
Labels: -Pri-3 Pri-1
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.
Project Member

Comment 52 by bugdroid1@chromium.org, 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

Project Member

Comment 53 by bugdroid1@chromium.org, 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

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.

Maybe a good first change would be to make the error message helpful :-)
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.

Comment 57 by ruiu@google.com, 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.
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.
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.

Comment 60 by ruiu@google.com, 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!
This is the best possible course of action. :)

Thank you!
http://bugs.llvm.org/show_bug.cgi?id=28553 was about diagnostics, I improved a few there.
Cc: hmchen@google.com xhwang@google.com
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?

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?
Cc: tinskip@chromium.org rkuroiwa@chromium.org
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.

Comment 67 Deleted

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.
Blockedon: 707488
Project Member

Comment 70 by bugdroid1@chromium.org, 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

Cc: yunlian@chromium.org
Project Member

Comment 72 by bugdroid1@chromium.org, 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

Project Member

Comment 73 by bugdroid1@chromium.org, 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

Project Member

Comment 74 by bugdroid1@chromium.org, 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

Project Member

Comment 75 by bugdroid1@chromium.org, 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

Comment 76 by p...@chromium.org, May 12 2017

Owner: p...@chromium.org

Comment 77 by ruiu@google.com, May 12 2017

Was the performance of malloc reason of the slowness of LTO with LLD?

Comment 78 by p...@chromium.org, 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.
Project Member

Comment 79 by bugdroid1@chromium.org, 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

Comment 81 by ruiu@google.com, May 15 2017

It is "only" 63s shorter because it spends most of its time to do LTO, right?

Comment 82 by p...@chromium.org, May 15 2017

Right.
Project Member

Comment 84 by bugdroid1@chromium.org, 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

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...
You're not using the LLVMgold.so from the chromium clang package, right? You just need the compiler flags?
Yes, we can provide our own LLVMgold.so and we need the compiler flags.

Comment 88 by p...@chromium.org, 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?
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.

Comment 90 by p...@chromium.org, 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.
Project Member

Comment 91 by bugdroid1@chromium.org, 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

for #90, yes, we still need gold plugin flags for now.
Project Member

Comment 93 by bugdroid1@chromium.org, 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

Blockedon: 735101
Blockedon: 735126
Project Member

Comment 97 by bugdroid1@chromium.org, 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

Project Member

Comment 99 by bugdroid1@chromium.org, 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

Project Member

Comment 100 by bugdroid1@chromium.org, 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

Comment 101 by p...@chromium.org, 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.

Comment 102 by ruiu@google.com, 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.

Comment 103 by p...@chromium.org, 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).
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.

Comment 105 by p...@chromium.org, Jul 17 2017

c#104: Done.

Comment 106 by p...@chromium.org, Sep 14 2017

Blockedon: 764744
Cc: tikuta@chromium.org
Project Member

Comment 108 by bugdroid1@chromium.org, 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

Project Member

Comment 109 by bugdroid1@chromium.org, 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

Project Member

Comment 110 by bugdroid1@chromium.org, 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

Cc: r...@chromium.org
Project Member

Comment 112 by bugdroid1@chromium.org, 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

Project Member

Comment 113 by bugdroid1@chromium.org, 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

Project Member

Comment 114 by bugdroid1@chromium.org, 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

I've reported an issue related to lld: https://bugs.chromium.org/p/chromium/issues/detail?id=778209
Project Member

Comment 116 by bugdroid1@chromium.org, 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

Project Member

Comment 117 by bugdroid1@chromium.org, Dec 12 2017

Blockedon: 801100
Status: Fixed (was: Assigned)
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