commit: f1cb4bf462145013b084e59f912a3c84adcd8726 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Tue Dec 3 05:29:09 2024 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Tue Dec 3 08:57:58 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1cb4bf4
dev-qt/qtwebengine: add temporary workaround for a gcc ICE Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> .../qtwebengine-6.8.1-gcc-ICE-workaround.patch | 36 ++++++++++++++++++++++ dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild | 1 + dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild | 1 + dev-qt/qtwebengine/qtwebengine-6.9999.ebuild | 1 + 4 files changed, 39 insertions(+) diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.8.1-gcc-ICE-workaround.patch b/dev-qt/qtwebengine/files/qtwebengine-6.8.1-gcc-ICE-workaround.patch new file mode 100644 index 000000000000..8d35bb8caade --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-6.8.1-gcc-ICE-workaround.patch @@ -0,0 +1,36 @@ +Patch status: temporary (see below) + +Workaround[1] proposed by GCC's upstream for a ICE that can newly occur +when compiling chromium-122 in Qt 6.8.x (possibly only for gcc15+arm64, +but could in theory trigger with other arches or gcc14 as well). + +May be some time before GCC is fixed and furthermore for it to be +propagated on users' systems (we're not going to depend on a fixed +version to enforce the upgrade), so it is simpler to workaround here +for a while. + +Not yet merged as of writing of this, but Qt may include the same +fix in a future version[2]. + +Thanks-to: Andrew Pinski <[email protected]> +Thanks-to: Sam James <[email protected]> + +[1] https://gcc.gnu.org/PR117887#c11 +[2] https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/608812 +--- a/src/3rdparty/chromium/base/containers/flat_tree.h ++++ b/src/3rdparty/chromium/base/containers/flat_tree.h +@@ -491,8 +491,11 @@ + + // If the compare is not transparent we want to construct key_type once. +- template <typename K> +- using KeyTypeOrK = std::conditional_t<requires { ++ static constexpr bool key_compare_is_transparent = requires { + typename key_compare::is_transparent; +- }, K, key_type>; ++ }; ++ ++ // If the compare is not transparent we want to construct key_type once. ++ template <typename K> ++ using KeyTypeOrK = std::conditional_t<key_compare_is_transparent, K, key_type>; + }; + diff --git a/dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild b/dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild index ab1d040655e2..28e8e60340b5 100644 --- a/dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild @@ -109,6 +109,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} ) PATCHES+=( # add extras as needed here, may merge in set if carries across versions "${FILESDIR}"/${PN}-6.8.1-QTBUG-131156.patch + "${FILESDIR}"/${PN}-6.8.1-gcc-ICE-workaround.patch ) python_check_deps() { diff --git a/dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild index f8a2980a10e7..35016731b7dd 100644 --- a/dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild @@ -108,6 +108,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} ) PATCHES+=( # add extras as needed here, may merge in set if carries across versions + "${FILESDIR}"/${PN}-6.8.1-gcc-ICE-workaround.patch ) python_check_deps() { diff --git a/dev-qt/qtwebengine/qtwebengine-6.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-6.9999.ebuild index f8a2980a10e7..35016731b7dd 100644 --- a/dev-qt/qtwebengine/qtwebengine-6.9999.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-6.9999.ebuild @@ -108,6 +108,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} ) PATCHES+=( # add extras as needed here, may merge in set if carries across versions + "${FILESDIR}"/${PN}-6.8.1-gcc-ICE-workaround.patch ) python_check_deps() {
