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 <[email protected]>
---
eclass/meson.eclass | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index a2bc5537e4589..d6b3c63e5faac 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -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,17 @@ 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)
+ 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
--
2.51.2