cargo_env handles linker flags and enables cross-compiling. It also
handles LTO filtering, so we can remove that from this eclass.

Signed-off-by: James Le Cuirot <ch...@gentoo.org>
---
 eclass/distutils-r1.eclass | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index fa8edb5cdfb77..743242b2acee8 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -1251,7 +1251,9 @@ distutils_pep517_install() {
                die "mydistutilsargs are banned in PEP517 mode (use 
DISTUTILS_ARGS)"
        fi

-       local config_settings=
+       local cmd=() config_settings=
+       has cargo ${INHERITED} && cmd+=( cargo_env )
+
        case ${DISTUTILS_USE_PEP517} in
                maturin)
                        # `maturin pep517 build-wheel --help` for options
@@ -1390,7 +1392,7 @@ distutils_pep517_install() {

        local build_backend=$(_distutils-r1_get_backend)
        einfo "  Building the wheel for ${PWD#${WORKDIR}/} via ${build_backend}"
-       local cmd=(
+       cmd+=(
                "${EPYTHON}" -m gpep517 build-wheel
                        --prefix="${EPREFIX}/usr"
                        --backend "${build_backend}"
@@ -1792,16 +1794,6 @@ distutils-r1_run_phase() {
                # bug fixes from Cython (this works only when setup.py is using
                # cythonize() but it's better than nothing)
                local -x CYTHON_FORCE_REGEN=1
-
-               # Rust extensions are incompatible with C/C++ LTO compiler
-               # see e.g. https://bugs.gentoo.org/910220
-               if has cargo ${INHERITED}; then
-                       local x
-                       for x in $(all-flag-vars); do
-                               local -x "${x}=${!x}"
-                       done
-                       filter-lto
-               fi
        fi

        # silence warnings when pydevd is loaded on Python 3.11+
--
2.45.2

Reply via email to