/usr/share/boost-build/src/tools/features
Edit: /usr/share/boost-build/src/tools/features/lto-feature.jam (1309B)
# Copyright 2019 Dmitry Arkhipov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
import feature ;
#| tag::doc[]
[[bbv2.builtin.features.lto]]`lto`::
*Allowed values:* `on`.
+
Enables link time optimizations (also known as interprocedural optimizations or
whole-program optimizations). Currently supported toolsets are <
>,
clang and <>. The feature is optional.
|# # end::doc[]
feature.feature lto
: on
: optional propagated ;
#| tag::doc[]
[[bbv2.builtin.features.lto-mode]]`lto-mode`::
*Subfeature of* `lto`
+
*Allowed values:* `full`, `thin`, `fat`.
+
Specifies the type of LTO to use.
+
`full`::: Use the monolithic LTO: on linking all input is merged into a single
module.
`thin`::: Use clang's ThinLTO: each compiled file contains a summary of the
module, these summaries are merged into a single index. This allows to avoid
merging all modules together, which greatly reduces linking time.
`fat`::: Produce gcc's fat LTO objects: compiled files contain both the
intermidiate language suitable for LTO and object code suitable for regular
linking.
|# # end::doc[]
feature.subfeature lto
: mode
: full thin fat
: propagated ;