blob: d883598898ce9fe238e8a79e5adf65b4b7c20260 [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
config("lto") {
compiler_flags = [
"-flto",
# Enable whole-program devirtualization and virtual constant propagation.
"-fwhole-program-vtables",
]
}
declare_args() {
# Number of parallel ThinLTO jobs.
thinlto_jobs = 8
# ThinLTO cache directory path.
thinlto_cache_dir = rebase_path("$root_out_dir/thinlto-cache", root_build_dir)
}
config("thinlto") {
compiler_flags = [ "-flto=thin" ]
ldflags = [
# The ThinLTO driver launches a number of threads in parallel whose
# number is by default equivalent to the number of cores. We need
# to limit the parallelism to avoid aggressive competition between
# different linker jobs.
"-Wl,--thinlto-jobs=$thinlto_jobs",
# Set the ThinLTO cache directory which is used to cache native
# object files for ThinLTO incremental builds. This directory is
# not managed by Ninja and has to be cleaned manually, but it is
# periodically garbage-collected by the ThinLTO driver.
"-Wl,--thinlto-cache-dir=$thinlto_cache_dir",
]
}