• Peter Collingbourne's avatar
    Reland^2 "build: Enable ThinLTO in official Android builds." · 4ff3eb61
    Peter Collingbourne authored
    This relands commit 748ac91e.
    
    Includes workaround for LTO bug exposed by orderfile generation:
    add -Wl,-u,__cyg_profile_func_enter_bare to ldflags. A fix for the
    bug is under review: https://reviews.llvm.org/D50017
    
    Original change's description:
    > Reland "build: Enable ThinLTO in official Android builds."
    >
    > 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/1153612
    > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
    > Commit-Queue: Peter Collingbourne <pcc@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#578854}
    
    Bug: 469376, 867878
    Change-Id: Iae4cc698b5955df5ae1970c71646fa05fca61109
    Reviewed-on: https://chromium-review.googlesource.com/1155977Reviewed-by: default avatarNico Weber <thakis@chromium.org>
    Commit-Queue: Peter Collingbourne <pcc@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#579308}
    4ff3eb61
BUILD.gn 6.89 KB