• Peter Collingbourne's avatar
    build: Enable ThinLTO in official Android builds. · 1ba5d611
    Peter Collingbourne authored
    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: default avatarNico Weber <thakis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#578195}
    1ba5d611
compiler.gni 10.3 KB