diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2024-12-03 00:29:09 -0500 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2024-12-03 03:57:58 -0500 |
commit | f1cb4bf462145013b084e59f912a3c84adcd8726 (patch) | |
tree | 63dc0dd540a3509fc414a572ad2577227cd443f7 /dev-qt | |
parent | x11-drivers/nvidia-drivers: minor comment wording fix (diff) | |
download | gentoo-f1cb4bf462145013b084e59f912a3c84adcd8726.tar.gz gentoo-f1cb4bf462145013b084e59f912a3c84adcd8726.tar.bz2 gentoo-f1cb4bf462145013b084e59f912a3c84adcd8726.zip |
dev-qt/qtwebengine: add temporary workaround for a gcc ICE
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt')
4 files changed, 39 insertions, 0 deletions
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 <pinskia@gmail.com> +Thanks-to: Sam James <sam@gentoo.org> + +[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() { |