mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-08 00:05:33 +03:00
meson.eclass: support incremental LTO for GCC
Support -flto-incremental=/path/to/cache being used with GCC. Personally,
I am using this hook in /etc/portage/bashrc:
```
pre_src_configure() {
if [[ -n ${PORTAGE_LTO_CACHE} ]] ; then
local lto_path=/var/tmp/portage/lto/${CATEGORY}/${PN}
mkdir -p "${lto_path}"
export CFLAGS="${CFLAGS} -flto-incremental=${lto_path} -flto-compression-level=19"
export CXXFLAGS="${CXXFLAGS} -flto-incremental=${lto_path} -flto-compression-level=19"
export LDFLAGS="${LDFLAGS} -flto-incremental=${lto_path} -flto-compression-level=19"
fi
}
```
... and then `PORTAGE_LTO_CACHE=1` in my development environment.
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
4b8f97f30f
commit
a4eae64aa2
@ -1,4 +1,4 @@
|
||||
# Copyright 2017-2024 Gentoo Authors
|
||||
# Copyright 2017-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: meson.eclass
|
||||
@ -305,6 +305,18 @@ setup_meson_src_configure() {
|
||||
MESONARGS+=( -Db_lto_threads=${v} )
|
||||
;;
|
||||
esac
|
||||
|
||||
if has_version -b ">=dev-build/meson-1.10.0" ; then
|
||||
local v=$(get-flag -flto-incremental=)
|
||||
v=${v#-flto-incremental=}
|
||||
if [[ ${v} ]] ; then
|
||||
MESONARGS+=(
|
||||
-Db_thinlto_cache=true
|
||||
-Db_thinlto_cache_dir=${v}
|
||||
)
|
||||
fi
|
||||
fi
|
||||
|
||||
# finally, remove it from *FLAGS to avoid passing it:
|
||||
# - twice, with potentially different values
|
||||
# - on excluded targets
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user