Sam James <[email protected]> writes: > 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]> > --- > v2: Require exactly -flto-incremental=*, no substrings (and so trip > -flto-incremental= > prefix too). > > Better? Of course there's also the other discussion we're having.. > > eclass/meson.eclass | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/eclass/meson.eclass b/eclass/meson.eclass > index a2bc5537e4589..06675e02b82be 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,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 > +
I'm going to push this for now as I keep wishing I had it, but we can revisit in light of some discussions we've had wrt get-flag if/when those land. > # finally, remove it from *FLAGS to avoid passing it: > # - twice, with potentially different values > # - on excluded targets
