• Peter Collingbourne's avatar
    Reland "build: Enable ThinLTO in official Android builds." · 748ac91e
    Peter Collingbourne authored
    This relands commit 1ba5d611.
    
    Fixes chromeos build issue by checking whether we have a secondary
    toolchain before comparing it with the current toolchain.
    
    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}
    
    Bug: 469376, 868426
    Change-Id: Ie46ba0db0ac68130bc600415777de5c813b28ebd
    Reviewed-on: https://chromium-review.googlesource.com/1153612Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
    Commit-Queue: Peter Collingbourne <pcc@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#578854}
    748ac91e
compiler.gni 10.3 KB