New issue
Advanced search Search tips

Issue 862442 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 11
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Build-Toolchain

Blocked on:
issue 884017
issue 885268
issue 889967



Sign in to add a comment

use lld to build Chrome in ChromeOS

Project Member Reported by yunlian@chromium.org, Jul 10

Issue description

We want to use lld to build Chrome in ChromeOS.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 11

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 11

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

commit 2d867de72c42f387bafea9abb08c30d07a0a4e4a
Author: Yunlian Jiang <yunlian@google.com>
Date: Wed Jul 11 19:13:07 2018

lld: cherry pick smallpie patch.

This cherry picks smallpie patch from upstream to enable smallpie
on llvm-next version of lld

BUG= chromium:862442 
TEST=sudo USE="llvm-next" emerge lld
     clang -fuse-ld=lld a.c -pie -fPIC -Wl,--pack-dyn-relocs=relr

Change-Id: If569b2076929c38fd9e4d678529ed01f58f24a9a
Reviewed-on: https://chromium-review.googlesource.com/1132526
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/2d867de72c42f387bafea9abb08c30d07a0a4e4a/sys-devel/lld/files/cherry/b0befbe9bc302945656f58e72429225d934b4837.patch
[rename] https://crrev.com/2d867de72c42f387bafea9abb08c30d07a0a4e4a/sys-devel/lld/lld-7.0_pre331547-r2.ebuild

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 19

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

commit 9e71ff9527123394a8a841081221afca7765773e
Author: Yunlian Jiang <yunlian@google.com>
Date: Thu Jul 19 18:19:49 2018

lld: support debug fission with thinlto on lld-next

This cherry picks an upstream patch
commit bd5fbef9c29ce6433a93ddbbf7c4ef185bc1d1d5
Author: Yunlian Jiang <yunlian@google.com>
Date:   Mon Jul 16 17:55:48 2018 +0000

    Support option -plugin-opt=dwo_dir=

to support debug fission with thinlto so that we can enable
thinlto on ARM boards with lld.

BUG= chromium:862442 
TEST=sudo USE=llvm-next emerge lld

Change-Id: Icb55866959e0d9cffa1f118c3abd6d0bdf83d96b
Reviewed-on: https://chromium-review.googlesource.com/1143704
Reviewed-by: Yunlian Jiang <yunlian@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>

[rename] https://crrev.com/9e71ff9527123394a8a841081221afca7765773e/sys-devel/lld/lld-7.0_pre331547-r3.ebuild
[add] https://crrev.com/9e71ff9527123394a8a841081221afca7765773e/sys-devel/lld/files/cherry/bd5fbef9c29ce6433a93ddbbf7c4ef185bc1d1d5.patch

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 24

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

commit 230de83577861945e1c23459230d792835a798b2
Author: Yunlian Jiang <yunlian@google.com>
Date: Tue Jul 24 19:44:24 2018

lld: add a wrapper over the lld binary

We may need to add some parameters to lld, to do that, we need
to add a wrapper over it. This also adds --no-rosegment to lld
because currently breakpad does not work with binaries linked
without this flag.

BUG= chromium:862442 
TEST=clang a.c -fuse-ld=lld works

Change-Id: Ib86ff5684676d51bd946d296d072923a65c1cedb
Reviewed-on: https://chromium-review.googlesource.com/1144136
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/230de83577861945e1c23459230d792835a798b2/sys-devel/lld/lld-7.0_pre331547-r4.ebuild
[modify] https://crrev.com/230de83577861945e1c23459230d792835a798b2/sys-devel/lld/files/lld-invoke-name.patch
[add] https://crrev.com/230de83577861945e1c23459230d792835a798b2/sys-devel/lld/files/ldwrapper

Status: Assigned (was: Untriaged)
This bug has an owner, thus, it's been triaged. Changing status to "assigned".
Cc: chinglinyu@chromium.org
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 31

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

commit ea86fcc8f5553a20b7814c406777591264340689
Author: Yunlian Jiang <yunlian@google.com>
Date: Fri Aug 31 12:23:32 2018

lld: add '-z now -z relro --hash-style=gnu'

We have these flags on gold, to make it consistant, we need to add
then to lld too.

BUG= chromium:862442 
TEST=chromeos-chrome links with lld

Change-Id: I5a37bf4b748f68e8c318474464722c2730de3caa
Reviewed-on: https://chromium-review.googlesource.com/1198163
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/ea86fcc8f5553a20b7814c406777591264340689/sys-devel/lld/lld-7.0_pre333878-r4.ebuild
[modify] https://crrev.com/ea86fcc8f5553a20b7814c406777591264340689/sys-devel/lld/files/ldwrapper

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 6

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

commit 974a77ce86eb328268f641f1ee129a962717be53
Author: Yunlian Jiang <yunlian@google.com>
Date: Thu Sep 06 17:34:28 2018

lld: enable smallpie, disable --no-rosegment

This sets smallpie as default on lld by adding
--pack-dyn-relocs=relr
This also removes the flag --no-rosegment because with this
flag, chrome failed to start. In addition, breakpad can handle
the binary linked with lld without --no-rosegment after CL:
https://chromium-review.googlesource.com/c/breakpad/breakpad/+/513610

BUG= chromium:862442 
TEST=USE="-gold lld" emerge-samus
    chrome starts.
    With --pack-dyn-relocs=relr, chrome size reduced from 176MB to
    161MB.

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

[rename] https://crrev.com/974a77ce86eb328268f641f1ee129a962717be53/sys-devel/lld/lld-7.0_pre333878-r5.ebuild
[modify] https://crrev.com/974a77ce86eb328268f641f1ee129a962717be53/sys-devel/lld/files/ldwrapper

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 13

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

commit a3bc7a48fe88dccfe922b4d2f7886f3a416fbcec
Author: Yunlian Jiang <yunlian@google.com>
Date: Thu Sep 13 13:14:24 2018

chromeos-chrome: do not pass -fuse-ld=lld when USE="lld"

When USE="lld -gld" is set, we set use_lld=$(usetf lld) in chrome
configure. As a result, there is no need to set '-fuse-ld=lld' in
the ebuild file.
It also fixes issues on llvm-next
host/brotli failed with exit code -11

BUG= chromium:862442 
TEST=USE="-gold lld" emerge-samus chromeos-chrome

Change-Id: I3391be106d28171a471322b8708c8756f8e3c903
Reviewed-on: https://chromium-review.googlesource.com/1220593
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/a3bc7a48fe88dccfe922b4d2f7886f3a416fbcec/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Blockedon: 884017
Blockedon: 885268
Blockedon: 889967
Owner: cmtm@chromium.org
Owner: cmt...@chromium.org
Status: Fixed (was: Assigned)
Project Member

Comment 16 by bugdroid1@chromium.org, Dec 21

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

commit fa5cbe8e521f3c878983954159afad12a1f6e61a
Author: Caroline Tice <cmtice@google.com>
Date: Fri Dec 21 02:06:16 2018

SimpleChrome: Update GN args to make LLD default linker for Chrome.

LLD has been the default linker for Chrome in Chrome OS for
nearly two weeks.  It is blocked from automatically becoming the
default linker in Simple Chrome by crosbug/913317.  This forces
LLD to be the linker for Chrome, until that bug can be fixed.

BUG= chromium:862442 
TEST=LLD has been used for building Chrome in Chrome OS for two
weeks.

Change-Id: I3e596f088dbf69c4288906fe375a1db3ddce7555
Reviewed-on: https://chromium-review.googlesource.com/1387171
Commit-Ready: Caroline Tice <cmtice@chromium.org>
Tested-by: Caroline Tice <cmtice@chromium.org>
Reviewed-by: Luis Lozano <llozano@chromium.org>

[modify] https://crrev.com/fa5cbe8e521f3c878983954159afad12a1f6e61a/cli/cros/cros_chrome_sdk.py

Project Member

Comment 17 by bugdroid1@chromium.org, Dec 22

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

commit 2c70338572204ba8c265f015b3097d1e60a699c1
Author: Caroline Tice <cmtice@chromium.org>
Date: Sat Dec 22 00:50:27 2018

Revert "SimpleChrome: Update GN args to make LLD default linker for Chrome."

This reverts commit fa5cbe8e521f3c878983954159afad12a1f6e61a.

Reason for revert: Seems to be causing bad images in Chrome OS using
simple-chrome-built images  (see
https://bugs.chromium.org/p/chromium/issues/detail?id=917504).

Original change's description:
> SimpleChrome: Update GN args to make LLD default linker for Chrome.
>
> LLD has been the default linker for Chrome in Chrome OS for
> nearly two weeks.  It is blocked from automatically becoming the
> default linker in Simple Chrome by crosbug/913317.  This forces
> LLD to be the linker for Chrome, until that bug can be fixed.
>
> BUG= chromium:862442 
> TEST=LLD has been used for building Chrome in Chrome OS for two
> weeks.
>
> Change-Id: I3e596f088dbf69c4288906fe375a1db3ddce7555
> Reviewed-on: https://chromium-review.googlesource.com/1387171
> Commit-Ready: Caroline Tice <cmtice@chromium.org>
> Tested-by: Caroline Tice <cmtice@chromium.org>
> Reviewed-by: Luis Lozano <llozano@chromium.org>

Bug:  chromium:862442 
Change-Id: I8559830759eec480fa79f74d6e40d2d8c4fd4c90
Reviewed-on: https://chromium-review.googlesource.com/c/1389515
Reviewed-by: Luis Lozano <llozano@chromium.org>
Tested-by: Caroline Tice <cmtice@chromium.org>
Trybot-Ready: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/2c70338572204ba8c265f015b3097d1e60a699c1/cli/cros/cros_chrome_sdk.py

Sign in to add a comment