summaryrefslogtreecommitdiff
path: root/dev-qt
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2024-12-03 00:29:09 -0500
committerIonen Wolkens <ionen@gentoo.org>2024-12-03 03:57:58 -0500
commitf1cb4bf462145013b084e59f912a3c84adcd8726 (patch)
tree63dc0dd540a3509fc414a572ad2577227cd443f7 /dev-qt
parentx11-drivers/nvidia-drivers: minor comment wording fix (diff)
downloadgentoo-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')
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-6.8.1-gcc-ICE-workaround.patch36
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild1
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild1
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.9999.ebuild1
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() {