commit:     24f857d802408092b386f133405816773d4a9461
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 19 01:11:41 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Sep 19 03:11:59 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24f857d8

qt6-build.eclass: allow lto again in Qt 6.10+ w/ gcc-15.2+

Unclear what fixed what wrt the last failing qtbase test in
bug #955531, but it seems to pass now. Just to be safe, limit
this to recent Qt and gcc.

Tried all of dev-qt/* (except qtwebengine+webview) with lto +
-Werror=odr/mismatch/strict and everything seems to pass.

Note that qtwebengine still filters lto in the ebuild, unlikely
that this is resolved as it was due to some asm usage I recall
(plus we're patching qtwebengine to allow respecting flags at all,
Qt doesn't support users passing lto there).

If other dev-qt/* have issues in the future we should likewise
filter in the ebuild rather have a global one anymore. Formerly
this wasn't about one failing test but tons of them everywhere.

Closes: https://bugs.gentoo.org/955531
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 eclass/qt6-build.eclass | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/eclass/qt6-build.eclass b/eclass/qt6-build.eclass
index 0f65ffe0abc6..98dc6cf259e7 100644
--- a/eclass/qt6-build.eclass
+++ b/eclass/qt6-build.eclass
@@ -154,12 +154,13 @@ qt6-build_src_prepare() {
        if use !custom-cflags; then
                _qt6-build_sanitize_cpu_flags
 
-               # LTO cause test failures in several components (qtcharts,
-               # multimedia, scxml, wayland, webchannel, and likely more --
-               # also 1 qtbase test wrt bug #955531), albeit many need
-               # retesting (not as bad as it used to). Many (all?) of these
-               # issues only happen with GCC.
-               filter-lto
+               # lto+gcc used to break a lot of tests, but this has improved so
+               # tentatively allow again for Qt >=6.10 + GCC >=15.2 (bug 
#955531)
+               if ver_test ${PV} -lt 6.10 ||
+                       { tc-is-gcc && ver_test $(gcc-version) -lt 15.2; };
+               then
+                       filter-lto
+               fi
        fi
 
        [[ ${QT6_HAS_STATIC_LIBS} ]] && lto-guarantee-fat

Reply via email to