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}
2 files changed