Commit e3026fdb authored by Peter Collingbourne's avatar Peter Collingbourne Committed by Commit Bot

Revert "build: Enable ThinLTO in official Android builds."

This reverts commit 1ba5d611.

Reason for revert: Broke chromeos builders.

Original change's description:
> build: Enable ThinLTO in official Android builds.
>
> With this change we start building Chromium with ThinLTO when targeting
> Android. In 64-bit Monochrome builds, the 32-bit binary is also built
> with ThinLTO. This change is expected to reduce code size significantly
> (in local measurements it reduced the size of MonochromePublic.apk by 2.3MB)
> and is a prerequisite for enabling control flow integrity in official
> builds.
>
> Note that although this change enables ThinLTO, it does not enable
> the cross-TU optimizations normally associated with LTO. Enabling
> cross-TU optimizations is a separate project.
>
> On my local machine (a Lenovo P920) libmonochrome.so link times increase
> as follows:
>
>          before  after (first link)  after (incremental links)
> 32-bit    18s          140s                     50s
> 64-bit    13s          107s                     41s
>
> All known blockers have now been fixed. This CL is likely to uncover
> unknown blockers.
>
> Bug: 469376
> Change-Id: I8981e17abd50bc5ca00440e0d74dda878c911749
> Reviewed-on: https://chromium-review.googlesource.com/1150870
> Commit-Queue: Peter Collingbourne <pcc@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578195}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 469376, 868426
Change-Id: I3938b0bbc5fdc0d689de21b52de2dd859852139b
Reviewed-on: https://chromium-review.googlesource.com/1153396
Commit-Queue: Peter Collingbourne <pcc@chromium.org>
Reviewed-by: default avatarPeter Collingbourne <pcc@chromium.org>
Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578797}
parent 304eff1e
......@@ -592,9 +592,7 @@ config("compiler") {
# example by disabling the optimize configuration.
# TODO(pcc): Make this conditional on is_official_build rather than on gn
# flags for specific features.
if (!is_debug && use_thin_lto &&
(current_toolchain == default_toolchain ||
(is_android && current_toolchain == android_secondary_abi_toolchain))) {
if (!is_debug && use_thin_lto && current_toolchain == default_toolchain) {
assert(use_lld || target_os == "chromeos",
"gold plugin only supported with ChromeOS")
......
......@@ -43,7 +43,7 @@ declare_args() {
# Enables support for ThinLTO, which links 3x-10x faster than full LTO. See
# also http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html
use_thin_lto = is_cfi || (is_android && is_official_build)
use_thin_lto = is_cfi
# Tell VS to create a PDB that references information in .obj files rather
# than copying it all. This should improve linker performance. mspdbcmf.exe
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment