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

Issue 701659 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug

Blocked on:
issue 808262
issue 851642



Sign in to add a comment

LLD support in CrOS toolchain

Project Member Reported by bcf@chromium.org, Mar 15 2017

Issue description

Hey Luis, is there any plan to support LLD in the CrOS toolchain? The link time improvements would be a big benefit for us.

https://lld.llvm.org/
 
we have talked about it but we have not specific time plan. 
We were thinking of not doing it for all of chromeos, only for the browser which is where we would get the largest benefit.
Can you give me an idea on what kind of benefits would you get? 
How bad is your current link time?

Comment 2 by bcf@chromium.org, Mar 15 2017

Yeah, we would mainly only have a benefit from the browser as well:
real    0m30.561s
user    0m25.002s
sys     0m5.270s

Right now we have reduced debug symbols because of a symbol file size issue (larger than 1 << 32 causes 32 bit ELF to fail linking). I remember with the full debug symbols, it would take around 50 seconds.

It's not a priority, this is mostly mitigated by component builds. I was just curious if there was any plan for this.
with LLVM the debug info is reduced drastically. So, you may want to give that a try.

About the link time. Are you guys using fission to split the debug info out of the object file?

yunlian@ can give you more info.

Will keep you posted about LLD.


Comment 4 by bcf@chromium.org, Mar 15 2017

We were looking at fission, but haven't switched to it yet.

Feel free to close this issue, it was mainly for inquiry.
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/b48ec1e36ec8d149cc22005398b01714192db8f2

commit b48ec1e36ec8d149cc22005398b01714192db8f2
Author: Yunlian Jiang <yunlian@google.com>
Date: Sat Oct 14 07:52:24 2017

lld: pull lld ebuild from upstream.

This adapts upstream lld-9999.ebuild to make it build from
a fixed checkout.

BUG= chromium:701659 
TEST=sudo emerge lld.

Change-Id: I08d2b059c73e33871a70a0b047b31e3ed07cc0c2
Reviewed-on: https://chromium-review.googlesource.com/719761
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>

[add] https://crrev.com/b48ec1e36ec8d149cc22005398b01714192db8f2/sys-devel/lld/metadata.xml
[add] https://crrev.com/b48ec1e36ec8d149cc22005398b01714192db8f2/sys-devel/lld/lld-5.0_pre305631.ebuild

Comment 6 by pan.d...@intel.com, Oct 16 2017

Cc: pan.d...@intel.com
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/7ea42f456352086997ce818fef8bf30233c9eca6

commit 7ea42f456352086997ce818fef8bf30233c9eca6
Author: Yunlian Jiang <yunlian@google.com>
Date: Wed Oct 18 21:29:03 2017

lld: Disable BUILD_SHARED_LIBS=ON

This fixes the lld runtime error
Error: Option 'print-summary-global-ids' registered more than once!

BUG= chromium:701659 
TEST=the error is gone.

Change-Id: I9bfbe762fe88a9fe0c3225e7578e2898500e8010
Reviewed-on: https://chromium-review.googlesource.com/726340
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>

[rename] https://crrev.com/7ea42f456352086997ce818fef8bf30233c9eca6/sys-devel/lld/lld-5.0_pre305631-r1.ebuild

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/f5721f32bc4fc118b5195bca7a764489ef3bd2e9

commit f5721f32bc4fc118b5195bca7a764489ef3bd2e9
Author: Yunlian Jiang <yunlian@google.com>
Date: Fri Nov 03 01:36:49 2017

add lld to host packages.

This adds lld to host packages.

BUG= chromium:701659 
TEST=cbuildbot chromiumos-sdk

Change-Id: I02c4837eaae0128f32af513f0afbb3ae1cf08c81
Reviewed-on: https://chromium-review.googlesource.com/747280
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>

[modify] https://crrev.com/f5721f32bc4fc118b5195bca7a764489ef3bd2e9/scripts/cros_setup_toolchains.py

if you want lld to show up in the standalone toolchains used by the simple chrome workflow, i think you also need to update cros_setup_toolchains.py:Crossdev.MANUAL_PKGS.
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/45783090073537f2492cfa27d56b07953842b2f0

commit 45783090073537f2492cfa27d56b07953842b2f0
Author: Yunlian Jiang <yunlian@google.com>
Date: Mon Nov 06 08:40:08 2017

target-chromium-os-sdk: add lld to RDEPEND

We want to use lld to link Chrome.

BUG= chromium:701659 
TEST=cbuildbot falco-release chromiumos-sdk

Change-Id: Id54b321cf3748847266c8ad96226f8a1f458d9b8
Reviewed-on: https://chromium-review.googlesource.com/751105
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/45783090073537f2492cfa27d56b07953842b2f0/virtual/target-chromium-os-sdk/target-chromium-os-sdk-1-r88.ebuild
[modify] https://crrev.com/45783090073537f2492cfa27d56b07953842b2f0/virtual/target-chromium-os-sdk/target-chromium-os-sdk-1.ebuild

Comment 11 by bcf@chromium.org, Nov 11 2017

Just curious, what's left for this?
I had issues in using lld in the cros toolchain.
When run 
armv7a-cros-linux-gnueabi-clang -fuse-ld=lld a.c
I got
lld is a generic driver.
Invoke ld.lld (Unix), ld (macOS) or lld-link (Windows) instead.
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)

This is because we create another wrapper to lld and put the real lld in
lld.elf. When invoke lld, it tries to infer the Host system by parsing the argv[0], it does not know lld.elf, so the error happens.
Project Member

Comment 14 by bugdroid1@chromium.org, Nov 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/bb0af43bf09989272aa7c1cac806762a890df831

commit bb0af43bf09989272aa7c1cac806762a890df831
Author: Yunlian Jiang <yunlian@google.com>
Date: Tue Nov 14 08:42:46 2017

lld: fix the use case outside chroot.

In cros toolchain, we created a wrapper over lld
and put the real lld to lld.elf. This makes lld confuse and
lld dies.

BUG= chromium:701659 
TEST=copy the lld binary to the Cros toolchain and
     armv7a-cros-linux-gnueabi-clang -fuse-ld=lld a.c
     works.

Change-Id: Ib1423412945db33a6489e25a58f9e1f8e99414ca
Reviewed-on: https://chromium-review.googlesource.com/766071
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/bb0af43bf09989272aa7c1cac806762a890df831/sys-devel/lld/lld-6.0_pre316199-r1.ebuild
[add] https://crrev.com/bb0af43bf09989272aa7c1cac806762a890df831/sys-devel/lld/files/lld-invoke-name.patch

Labels: OS-Linux
Status: Fixed (was: Untriaged)
./bin/armv7a-cros-linux-gnueabi-clang -fuse-ld=lld a.c
works in armv7a-cros-linux-gnueabi-2017.11.14.234118.tar.xz

Comment 16 by bcf@chromium.org, Nov 15 2017

Owner: yunlian@chromium.org
Status: Assigned (was: Fixed)
When trying to link the browser, I encounter many errors which look like this?

error: ../../../../prebuilt/toolchain/armv7a/usr/armv7a-cros-linux-gnueabi/usr/include/c++/v1/memory:1643: reloca
tion R_ARM_THM_CALL out of range
error: ../../content/public/common/favicon_url.cc:16: relocation R_ARM_THM_CALL out of range
error: ../../content/public/common/file_chooser_file_info.cc:16: relocation R_ARM_THM_JUMP24 out of range

Any ideas?
This is a known issue, upstream should have fixed it already.
https://bugs.llvm.org/show_bug.cgi?id=33612

I am working on testing it to make sure these fixes works for Chrome and we will update LLD in our next toolchain release.


I got another error in
../../../../../../../build/kevin/usr/lib/../lib/crti.o:(.text+0x18): relocation R_ARM_JUMP24 out of range

In TOT LLD, will take a look at it. 

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/73634274995d53dca6b0929834292f671156873c

commit 73634274995d53dca6b0929834292f671156873c
Author: Yunlian Jiang <yunlian@google.com>
Date: Tue Nov 28 06:50:39 2017

lld: cherry pick an upstream patch for llvm-next.

This chery-picks an upstream patch to make lld link
chrome on ARM.

BUG= chromium:701659 
TEST=sudo USE="llvm-next" emerge lld.
     USE="-gold lld" emerge-daisy chromeos-chrome

Change-Id: I84205b25ab9af8fe5d68045bef33d82fafe58f70
Reviewed-on: https://chromium-review.googlesource.com/790934
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[add] https://crrev.com/73634274995d53dca6b0929834292f671156873c/sys-devel/lld/files/cherry/0c9a338de181a4c5f4905a455ffb424a774d8a3e.patch
[rename] https://crrev.com/73634274995d53dca6b0929834292f671156873c/sys-devel/lld/lld-6.0_pre316199-r3.ebuild

Comment 20 by bcf@chromium.org, Nov 29 2017

Is 2017.11.28.091616 expected to work?

I still get many errors

/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../content/public/common/frame_navigate_params.cc:9: relocation R_ARM_THM_CALL out of range            
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../mojo/public/cpp/bindings/lib/validation_util.h:161: relocation R_ARM_THM_CALL out of range          
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../content/public/common/frame_navigate_params.cc:9: relocation R_ARM_THM_CALL out of range            
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../base/bind_internal.h:465: relocation R_ARM_THM_CALL out of range                                    
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../media/base/decoder_buffer.cc:36: relocation R_ARM_THM_CALL out of range                             
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../content/public/common/frame_navigate_params.cc:9: relocation R_ARM_THM_CALL out of range            
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../media/base/video_frame.cc:658: relocation R_ARM_THM_CALL out of range                               
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../third_party/freetype/src/src/sfnt/ttcmap.c:1795: relocation R_ARM_THM_CALL out of range             
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: crtstuff.c:(.text+0x6C): relocation R_ARM_THM_CALL out of range                                           
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../base/memory/scoped_refptr.h:177: relocation R_ARM_THM_CALL out of range                             
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../content/public/common/referrer.h:22: relocation R_ARM_THM_CALL out of range                         
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: gen/content/public/common/network_service.mojom-shared.cc:562: relocation R_ARM_THM_CALL out of range     
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../content/public/common/referrer.h:19: relocation R_ARM_THM_CALL out of range                         
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../../../prebuilt/toolchain/armv7a/usr/armv7a-cros-linux-gnueabi/usr/include/c++/v1/vector:632: relocation R_ARM_THM_CALL out of range                
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../third_party/freetype/src/src/sfnt/ttcmap.c:2262: relocation R_ARM_THM_CALL out of range             
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../base/bind_internal.h:465: relocation R_ARM_THM_CALL out of range                                    
/usr/local/google/home/bcf/src/master3/prebuilt/toolchain/armv7a/bin/lld.elf: error: ../../../../prebuilt/toolchain/armv7a/usr/armv7a-cros-linux-gnueabi/usr/include/c++/v1/new:227: relocation R_ARM_THM_CALL out of range

Comment 21 by yunlian@google.com, Nov 29 2017

No, I will update the bug if the released lld links chrome.

Comment 22 by bcf@chromium.org, Feb 8 2018

Any update?

This isn't blocking us, but I'm just curious of the progress because it would be a big productivity improvement for our team.
We will upgrade toolchain soon.
https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/896272

After that, lld can link chrome for arm.

Comment 24 by bcf@chromium.org, Feb 16 2018

I tried 2018.02.14.183033 ,

which I believe should have
https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/896272

arm32 is able to link, but arm64 runs into this error:
                                                      
/usr/local/google/home/bcf/src/master2/prebuilt/toolchain/aarch64/bin/lld.elf: error: can't create dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol: ff_h264_idct8_add_neon in read
only segment; recompile object files with -fPIC                                                                                                                                               
>>> defined in obj/third_party/ffmpeg/libffmpeg_internal.a(autorename_libavcodec_aarch64_h264idct_neon.o)
>>> referenced by autorename_libavcodec_aarch64_h264idct_neon.o:(ff_h264_idct8_add4_neon) in archive obj/third_party/ffmpeg/libffmpeg_internal.a

Is arm64 expected to work?

It looks like fPIC is supposed to be applied, but this is ASM code:
https://cs.chromium.org/chromium/src/third_party/ffmpeg/BUILD.gn?rcl=9ed334093692f2dc77c4ad8186ddadde584e1e20&l=240
Cc: rahulchaudhry@chromium.org p...@chromium.org
+pcc who migrated to LLD on Chrome for Android.

Peter, have you tried building Chrome with LLD for AArch64? 
or is just work only for Arm32?

Thanks
Cc: -p...@chromium.org g...@chromium.org
Cc: p...@chromium.org

Comment 28 by p...@chromium.org, Feb 16 2018

The AArch64 build of Chrome for Android should already be using LLD.

Is there an easy way to reproduce outside of the chromeos build environment?
there currently isn't an aarch64/CrOS build (e.g. simple chrome) because aarch64/Chrome hasn't worked previously.  a bit of a chicken & egg at this point :).

if you could get aarch64/Chrome/Linux working, getting CrOS working from there shouldn't be a big deal.  but i guess you'd still need a working aarch64/Linux system huh ?

i've been using chroots with arm64 Chromebooks to do general Linux work.

Comment 30 by bcf@chromium.org, Feb 16 2018

The repro is in b/73304616#comment10
Blockedon: 808262
Project Member

Comment 32 by bugdroid1@chromium.org, May 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/da3ce5f235a237f27646db55ece4bfdbe04fb832

commit da3ce5f235a237f27646db55ece4bfdbe04fb832
Author: Yunlian Jiang <yunlian@google.com>
Date: Tue May 08 03:45:47 2018

add elfutils to host packages.

This adds elfutils to host packages. The reason to add this package
is the the strip from binutils has a bug and it makes the coredump
cannot be symbolized. See b:65296759. To workaround that, we want to
use eu-strip from elfutils.

BUG= chromium:701659 
TEST=cbuildbot chromiumos-sdk

Change-Id: If8bee73c5ddea9bc7a5e0abc39df12311e534b7e
Reviewed-on: https://chromium-review.googlesource.com/1028845
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/da3ce5f235a237f27646db55ece4bfdbe04fb832/scripts/cros_setup_toolchains.py

Project Member

Comment 33 by bugdroid1@chromium.org, May 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/28f8a1e54312466fd461169edee26d53dbee0d62

commit 28f8a1e54312466fd461169edee26d53dbee0d62
Author: chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue May 08 07:24:20 2018

Roll src/third_party/chromite/ 5c50bf92e..da3ce5f23 (2 commits)

https://chromium.googlesource.com/chromiumos/chromite.git/+log/5c50bf92e6fb..da3ce5f235a2

$ git log 5c50bf92e..da3ce5f23 --date=short --no-merges --format='%ad %ae %s'
2018-04-25 yunlian add elfutils to host packages.
2018-04-29 reveman Add crosvm to video group.

Created with:
  roll-dep src/third_party/chromite
BUG= chromium:701659 , chromium:837209 


The AutoRoll server is located here: https://chromite-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


TBR=chrome-os-gardeners@chromium.org

Change-Id: Ief473bca3ca4f12541910fb806f6503a6e8a6905
Reviewed-on: https://chromium-review.googlesource.com/1049275
Reviewed-by: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#556715}
[modify] https://crrev.com/28f8a1e54312466fd461169edee26d53dbee0d62/DEPS

Blockedon: 851642
Owner: cmt...@chromium.org
Project Member

Comment 36 by bugdroid1@chromium.org, Dec 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/cd8d110dd3faf87c12a0bdaf471522170aaecdd6

commit cd8d110dd3faf87c12a0bdaf471522170aaecdd6
Author: Caroline Tice <cmtice@google.com>
Date: Tue Dec 11 00:00:34 2018

chromeos-chrome: Migrate Chrome to LLD.

This CL changes the default linker for Chrome from gold
to LLD.

BUG= chromium:909853 ,  chromium:701659 
TEST=LLD has been extensively tested with Chrome in ChromeOS.

See this testing matrix for details:
https://docs.google.com/spreadsheets/d/13uSAfC82BVIagEtp-jgIABKDA6HihjgrKxqBBQXPWDU/edit?ts=5bfdd752#gid=0

Change-Id: I23f52de37fdbd8fadce1de48730601e124b90d6b
Reviewed-on: https://chromium-review.googlesource.com/1354161
Commit-Ready: Caroline Tice <cmtice@chromium.org>
Tested-by: Caroline Tice <cmtice@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>

[modify] https://crrev.com/cd8d110dd3faf87c12a0bdaf471522170aaecdd6/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Great! Should we change the condition here as well?
https://cs.chromium.org/chromium/src/build/config/compiler/compiler.gni?l=177
#37, it won't be necessary. I think chromeos explicitly specify use_lld config.
But we can do simplify the condition.
Regarding #37, lld currently has problems linking chrome on ChromeOS/ARM64 and gold is still needed (BUG 913071).
We have migrated Chrome in Chrome OS to build with LLD (except for ARM64); do we need to keep this issue open, or can I close it?
Sounds fine on my end.
is LLD in the tarball provided to our external customers? 

Yes, lld is in the toolchain tarballs.
Components: Tools>ChromeOS-Toolchain
Status: Fixed (was: Assigned)
Project Member

Comment 46 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/ef4b788bb5a1ba47881c73901228a07f5430ad4c

commit ef4b788bb5a1ba47881c73901228a07f5430ad4c
Author: Manoj Gupta <manojgupta@chromium.org>
Date: Wed Dec 12 21:55:52 2018

Revert "[toolchain-utils] Add tryjob flags to build Chrome from 9999 ebuild."

This reverts commit 115acfa5fc88d4aa4eb9158e41be534439952a33.

Reason for revert: No need to test chrome 9999 ebuild anymore.

Original change's description:
> [toolchain-utils] Add tryjob flags to build Chrome from 9999 ebuild.
>
> This CL updates the nightly tryjobs to build Chrome using the
> 9999 ebuild, to work with the CL that updates Chrome to not use
> ThinLTO caching, so we can test LLD with our nightly builders.
>
> BUG=None
> TEST=Tested a tryjob with those flags and that CL, and it worked.
>
> Change-Id: I3b1e77de6d1ead54f1696dc49987a37dd8db50ad
> Reviewed-on: https://chromium-review.googlesource.com/1345889
> Commit-Ready: Caroline Tice <cmtice@chromium.org>
> Tested-by: Caroline Tice <cmtice@chromium.org>
> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>

Bug:  chromium:701659 
Change-Id: I1138ed7ed0dd23103f6202140f4eb5385ae567b4
Reviewed-on: https://chromium-review.googlesource.com/1372264
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/ef4b788bb5a1ba47881c73901228a07f5430ad4c/cros_utils/buildbot_utils.py

Project Member

Comment 47 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/12b1bbff0b65f333ea2fa270259412cacbe056c3

commit 12b1bbff0b65f333ea2fa270259412cacbe056c3
Author: Peter Collingbourne <pcc@chromium.org>
Date: Thu Dec 13 23:31:58 2018

build: Default use_lld to true on ChromeOS.

As of https://chromium-review.googlesource.com/c/1372768 ChromeOS
chrome is always linked with lld. Because ChromeOS's build system
always overrides the value of use_lld this change should have no
effect on official ChromeOS builds, but it should make ChromeOS on
Linux more consistent with "real" ChromeOS.

Bug:  701659 
Change-Id: I447e1b2dfb6cc970f2c2dd64d396b5ba58bc2ef2
Reviewed-on: https://chromium-review.googlesource.com/c/1377139
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Peter Collingbourne <pcc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616485}
[modify] https://crrev.com/12b1bbff0b65f333ea2fa270259412cacbe056c3/build/config/compiler/compiler.gni

Project Member

Comment 48 by bugdroid1@chromium.org, Dec 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e539c746ec6c7e08056f977114ad4fd6840c2293

commit e539c746ec6c7e08056f977114ad4fd6840c2293
Author: Thomas Anderson <thomasanderson@chromium.org>
Date: Fri Dec 14 00:35:53 2018

Revert "build: Default use_lld to true on ChromeOS."

This reverts commit 12b1bbff0b65f333ea2fa270259412cacbe056c3.

Reason for revert: Suspected cause of breakage on Google Chrome ChromeOS:
https://ci.chromium.org/buildbot/chromium.chrome/Google%20Chrome%20ChromeOS/59619

Original change's description:
> build: Default use_lld to true on ChromeOS.
> 
> As of https://chromium-review.googlesource.com/c/1372768 ChromeOS
> chrome is always linked with lld. Because ChromeOS's build system
> always overrides the value of use_lld this change should have no
> effect on official ChromeOS builds, but it should make ChromeOS on
> Linux more consistent with "real" ChromeOS.
> 
> Bug:  701659 
> Change-Id: I447e1b2dfb6cc970f2c2dd64d396b5ba58bc2ef2
> Reviewed-on: https://chromium-review.googlesource.com/c/1377139
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Commit-Queue: Peter Collingbourne <pcc@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#616485}

TBR=thakis@chromium.org,pcc@chromium.org

Change-Id: I5267fee85457ff624bd5a90b39c72a41b73d8853
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  701659 
Reviewed-on: https://chromium-review.googlesource.com/c/1377712
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616523}
[modify] https://crrev.com/e539c746ec6c7e08056f977114ad4fd6840c2293/build/config/compiler/compiler.gni

Project Member

Comment 49 by bugdroid1@chromium.org, Jan 18 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c031af060bbdfd54b16442b7891e7237768586a

commit 3c031af060bbdfd54b16442b7891e7237768586a
Author: Takuto Ikuta <tikuta@chromium.org>
Date: Fri Jan 18 04:12:16 2019

build: Default use_lld to true on ChromeOS for x64

This is a partial reland of 12b1bbff0b65f333ea2fa270259412cacbe056c3

I confirmed current lld can link chrome with the same config of previously failed build.
https://ci.chromium.org/buildbot/chromium.chrome/Google%20Chrome%20ChromeOS/59619

Original change's description:
> build: Default use_lld to true on ChromeOS.
>
> As of https://chromium-review.googlesource.com/c/1372768 ChromeOS
> chrome is always linked with lld. Because ChromeOS's build system
> always overrides the value of use_lld this change should have no
> effect on official ChromeOS builds, but it should make ChromeOS on
> Linux more consistent with "real" ChromeOS.
>
> Bug:  701659 
> Change-Id: I447e1b2dfb6cc970f2c2dd64d396b5ba58bc2ef2
> Reviewed-on: https://chromium-review.googlesource.com/c/1377139
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Commit-Queue: Peter Collingbourne <pcc@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#616485}

Bug:  701659 , 923168, 917504
Change-Id: Iedb48cfe5b3b9c189dcf1b4c04bea998ee009d2c
Reviewed-on: https://chromium-review.googlesource.com/c/1419558
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
Commit-Queue: George Burgess <gbiv@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624005}
[modify] https://crrev.com/3c031af060bbdfd54b16442b7891e7237768586a/build/config/compiler/compiler.gni

Project Member

Comment 50 by bugdroid1@chromium.org, Jan 18 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/21092a421cede9e75d24044c840b99c2924d0c5a

commit 21092a421cede9e75d24044c840b99c2924d0c5a
Author: Takashi Sakamoto <tasak@google.com>
Date: Fri Jan 18 09:41:10 2019

Revert "build: Default use_lld to true on ChromeOS for x64"

This reverts commit 3c031af060bbdfd54b16442b7891e7237768586a.

Reason for revert: suspect compile failure on chromium.chrome/Google Chrome ChromeOS
https://logs.chromium.org/logs/chromium/bb/chromium.chrome/Google_Chrome_ChromeOS/60740/+/recipes/steps/compile/0/stdout

ld.lld: error: found local symbol '__bss_start' in global part of symbol table in file libassistant.so
ld.lld: error: found local symbol '_end' in global part of symbol table in file libassistant.so
ld.lld: error: found local symbol '_edata' in global part of symbol table in file libassistant.so
ld.lld: error: found local symbol '__stop_malloc_hook' in global part of symbol table in file libassistant.so
ld.lld: error: found local symbol '__start_malloc_hook' in global part of symbol table in file libassistant.so
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Original change's description:
> build: Default use_lld to true on ChromeOS for x64
> 
> This is a partial reland of 12b1bbff0b65f333ea2fa270259412cacbe056c3
> 
> I confirmed current lld can link chrome with the same config of previously failed build.
> https://ci.chromium.org/buildbot/chromium.chrome/Google%20Chrome%20ChromeOS/59619
> 
> Original change's description:
> > build: Default use_lld to true on ChromeOS.
> >
> > As of https://chromium-review.googlesource.com/c/1372768 ChromeOS
> > chrome is always linked with lld. Because ChromeOS's build system
> > always overrides the value of use_lld this change should have no
> > effect on official ChromeOS builds, but it should make ChromeOS on
> > Linux more consistent with "real" ChromeOS.
> >
> > Bug:  701659 
> > Change-Id: I447e1b2dfb6cc970f2c2dd64d396b5ba58bc2ef2
> > Reviewed-on: https://chromium-review.googlesource.com/c/1377139
> > Reviewed-by: Nico Weber <thakis@chromium.org>
> > Commit-Queue: Peter Collingbourne <pcc@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#616485}
> 
> Bug:  701659 , 923168, 917504
> Change-Id: Iedb48cfe5b3b9c189dcf1b4c04bea998ee009d2c
> Reviewed-on: https://chromium-review.googlesource.com/c/1419558
> Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
> Reviewed-by: George Burgess <gbiv@chromium.org>
> Commit-Queue: George Burgess <gbiv@chromium.org>
> Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#624005}

TBR=thakis@chromium.org,pcc@chromium.org,gbiv@chromium.org,tikuta@chromium.org

Change-Id: Ieba8a5113b944ef03f954388ebb076ff546fdd08
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  701659 , 923168, 917504
Reviewed-on: https://chromium-review.googlesource.com/c/1420493
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#624051}
[modify] https://crrev.com/21092a421cede9e75d24044c840b99c2924d0c5a/build/config/compiler/compiler.gni

Sign in to add a comment