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

Issue 769439 link

Starred by 8 users

Issue metadata

Status: Verified
Owner:
Closed: Oct 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocked on:
issue 777250

Blocking:
issue 724628
issue 778227



Sign in to add a comment

Build Chrome with libc++

Project Member Reported by manojgupta@chromium.org, Sep 27 2017

Issue description

As part of migrating to libc++, we plan to migrate chrome first before the rest of ChromeOS.
This will unlobck any Chromium devs to use c++14 features etc.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 1 2017

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

commit 347e21ffc412c7c8359b606294b5c035205aa2ce
Author: Manoj Gupta <manojgupta@google.com>
Date: Sun Oct 01 01:09:20 2017

Chrome: Add use flag to build chrome with libc++.

Enable building chrome with libc++ with the use flag libcxx.
This is a noop change since the flag is currently disabled.

BUG= chromium:769439 
TEST= USE="libcxx" emerge-<board> chromeos-chrome builds chrome using libc++.

Change-Id: I1eecbe1c9280f194869f52059cdf2d4bffa2f0b0
Reviewed-on: https://chromium-review.googlesource.com/685477
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Trybot-Ready: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Luis Lozano <llozano@chromium.org>
Commit-Queue: Manoj Gupta <manojgupta@chromium.org>

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

Started some daily testing jobs for Chrome + libc++.
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 11 2017

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

commit 3c6389b563d6897f11afb118fd0e7cc8d170dbef
Author: Manoj Gupta <manojgupta@google.com>
Date: Wed Oct 11 02:49:37 2017

libc++: Add gcc-libs dependency for non cros_host builds.

Building libc++ libraries need system headers. These are provided by gcc-libs
package on target builds so add it as a dependency.

BUG= chromium:724628 
BUG= chromium:769439 
TEST=emerge-kevin -e libcxx pulls in gcc-libs.

Change-Id: Iedeb9c982747bd8674ae112ac47745e28f5d45e7
Reviewed-on: https://chromium-review.googlesource.com/710216
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/3c6389b563d6897f11afb118fd0e7cc8d170dbef/sys-libs/libcxxabi/libcxxabi-9999.ebuild
[rename] https://crrev.com/3c6389b563d6897f11afb118fd0e7cc8d170dbef/sys-libs/libcxx/libcxx-4.0.0-r10.ebuild

Project Member

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

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

commit 150e5b2d0381a69bd8b89b0ea037a103814825be
Author: Manoj Gupta <manojgupta@google.com>
Date: Sat Oct 14 02:43:03 2017

libc++: Add lib++ lib dependency in ChromeOS.

We want to build chrome with libc++. To do so, add libc++
libraries to implicit-system dependencies.

BUG= chromium:724628 
BUG= chromium:769439 
TEST=./build_packages builds libc++abi/libc++ packages.

Change-Id: Iaa7ea27c0167c26c00ccf9a32bad7d4d7a28230d
Reviewed-on: https://chromium-review.googlesource.com/510029
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/150e5b2d0381a69bd8b89b0ea037a103814825be/virtual/implicit-system/implicit-system-1.ebuild
[rename] https://crrev.com/150e5b2d0381a69bd8b89b0ea037a103814825be/virtual/implicit-system/implicit-system-1-r2.ebuild

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/+/429a4ea8df2325bbdd5cc49e5c3aba765189e857

commit 429a4ea8df2325bbdd5cc49e5c3aba765189e857
Author: Manoj Gupta <manojgupta@google.com>
Date: Sat Oct 14 21:54:17 2017

Chrome: Add deps on libc++ packages.

Add libc++ dependencies to chrome ebuild if libcxx USE flag is set.

BUG= chromium:769439 
TEST=USE="libcxx" emerge-kevin chromeos-chrome pulls in libc++ packages.

Change-Id: I985a92dfc63624d32ef2f8df7ebaee49ae5107e4
Reviewed-on: https://chromium-review.googlesource.com/719774
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

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

Blockedon: 777250
Cc: jdufault@chromium.org
CL:717537 should enable building chrome with libc++. However, bug  777250 is blocking libc++ migration.
Project Member

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

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

commit dc70f35175bc4fea0cc0d75f2e3916ce3aa21ad7
Author: Manoj Gupta <manojgupta@google.com>
Date: Wed Oct 25 07:24:53 2017

Chrome: Build with libc++.

To start supporting C++14 features and cfi on Chrome, chrome must
be built with libc++.
This CL only builds Chrome with libc++. Performance and regression testing across
with libc++ is fine.

BUG= chromium:724628 
BUG= chromium:769439 

TEST=Chrome with libc++ was mostly tested at:
https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/llvm_toolchain
and the results (incl HWTests) look ok. None of the fails in the tryjobs are related
to Chrome/libc++ but are because of other transient issues.

Logs for different boards are at:
https://docs.google.com/a/google.com/spreadsheets/d/1dg-N1Mzs-KMb2n8h3RA1fhhqRYja9PTO6FfXkZivtjo/edit?usp=sharing

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

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

Cc: thakis@chromium.org cmt...@chromium.org llozano@chromium.org manojgupta@chromium.org
 Issue 756020  has been merged into this issue.
Cc: sque@chromium.org dhsharp@chromium.org rapati@chromium.org
 Issue 576821  has been merged into this issue.
Cc: jbroman@chromium.org
thakis@ jbroman@  - Chrome on ChromeOS now uses libc++. Give a few days to ensure that the CL sticks and then feel free to use C++14 features.
Wow, great news!
Blocking: 778227
\o/ Awesome, thanks!
Should the bots be respecting the instruction to use a recent libc++ at this point, or are additional changes and/or time required for that?

e.g. tryserver.chromium.linux:chromeos_amd64-generic_chromium_compile_only_ng still seems to fail on using heterogeneous associative lookup:
https://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_amd64-generic_chromium_compile_only_ng/builds/443875
Cc: steve...@chromium.org
The builders is still using the toolchain from amd64-generic+10041.0.0. It needs to update to amd64-generic+10066.0.0 to get libc++ enabled Chrome.

CCing stevenjb@ who may know more about this.
The last green PFQ build was 10065.0.0, so we need to:
1. Wait for a green PFQ build >= 10066.0.0
2. Update CHROMEOS_LKGM to the green version

Then the builder should pick up the updated toolchain, assuming that amd64-generic-full has succeeded since 10066.0.0.

+jdufault@ (current gardener) who can roll CHROMEOS_LKGM once we get a green PFQ build.

> 1. Wait for a green PFQ build >= 10066.0.0

I expect the next PFQ build will be green, so hopefully this can happen today.
PFQ is green now.
jdufault@ : Is the CHROMEOS_LKGM roll done?
Great, Thanks!
Status: Verified (was: Untriaged)
Confirmed that both release builders and SimpleChrome workflow is now using libc++.

Sign in to add a comment