From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/
Date: Thu, 7 Sep 2023 10:03:11 +0000 (UTC) [thread overview]
Message-ID: <1694080895.89c3fd669808db42d622817849840ca069c8b6f7.ionen@gentoo> (raw)
commit: 89c3fd669808db42d622817849840ca069c8b6f7
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 6 20:01:31 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Sep 7 10:01:35 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89c3fd66
dev-qt/qtwebengine: fix build with >=libcxx-17
May(?) need a revbump given updating to libcxx-17 while built against
<17 unpatched could give symbol issues, ...but let's spare having
everyone rebuild, esp given by the time llvm:17 is released may have
qtwebengine-6.5.3 in the tree to trigger a build.
Thanks-to: Violet Purcell <vimproved <AT> inventati.org>
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
.../files/qtwebengine-6.5.2-libcxx17.patch | 83 ++++++++++++++++++++++
dev-qt/qtwebengine/qtwebengine-6.5.2-r1.ebuild | 1 +
dev-qt/qtwebengine/qtwebengine-6.5.9999.ebuild | 1 +
3 files changed, 85 insertions(+)
diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch b/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch
new file mode 100644
index 000000000000..8acbbf4463ce
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch
@@ -0,0 +1,83 @@
+Patch status: fixed in >=chromium-116.0.5809.0
+
+Backport of [2][3] in order to fix building with libcxx-17
+(and hopefully runtime if upgrade from 16->17 without rebuilding).
+
+In order to apply cleanly, also needed [4] which seems fine to have.
+
+[1] https://crbug.com/1449299
+[2] https://crrev.com/9bfbbffdba73668fdb483e5a850911d2b64c35d7
+[3] https://crrev.com/4878976cd7391fbc02f87af4b7fb539b5c1f3817
+[4] https://crrev.com/5b5551edd3961481e617e510276b9f015a35b861
+--- a/src/3rdparty/chromium/base/containers/checked_iterators.h
++++ b/src/3rdparty/chromium/base/containers/checked_iterators.h
+@@ -24,4 +24,7 @@
+ using reference = T&;
+ using iterator_category = std::random_access_iterator_tag;
++#if defined(__cpp_lib_ranges)
++ using iterator_concept = std::contiguous_iterator_tag;
++#endif
+
+ // Required for converting constructor below.
+@@ -31,8 +34,6 @@
+ // Required for certain libc++ algorithm optimizations that are not available
+ // for NaCl.
+-#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL)
+ template <typename Ptr>
+ friend struct std::pointer_traits;
+-#endif
+
+ constexpr CheckedContiguousIterator() = default;
+@@ -147,4 +148,10 @@
+ }
+
++ constexpr friend CheckedContiguousIterator operator+(
++ difference_type lhs,
++ const CheckedContiguousIterator& rhs) {
++ return rhs + lhs;
++ }
++
+ constexpr CheckedContiguousIterator& operator-=(difference_type rhs) {
+ if (rhs < 0) {
+@@ -218,5 +225,4 @@
+ } // namespace base
+
+-#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL)
+ // Specialize both std::__is_cpp17_contiguous_iterator and std::pointer_traits
+ // for CCI in case we compile with libc++ outside of NaCl. The former is
+@@ -236,11 +242,28 @@
+ // [2] https://wg21.link/std.iterator.tags
+ // [3] https://wg21.link/pointer.traits.optmem
+-namespace std {
++
++#if defined(_LIBCPP_VERSION)
++
++_LIBCPP_BEGIN_NAMESPACE_STD
+
+ template <typename T>
++struct __is_cpp17_contiguous_iterator;
++template <typename T>
+ struct __is_cpp17_contiguous_iterator<::base::CheckedContiguousIterator<T>>
+ : true_type {};
+
+ template <typename T>
++struct __libcpp_is_contiguous_iterator;
++template <typename T>
++struct __libcpp_is_contiguous_iterator<::base::CheckedContiguousIterator<T>>
++ : true_type {};
++
++_LIBCPP_END_NAMESPACE_STD
++
++#endif
++
++namespace std {
++
++template <typename T>
+ struct pointer_traits<::base::CheckedContiguousIterator<T>> {
+ using pointer = ::base::CheckedContiguousIterator<T>;
+@@ -261,5 +284,4 @@
+
+ } // namespace std
+-#endif
+
+ #endif // BASE_CONTAINERS_CHECKED_ITERATORS_H_
diff --git a/dev-qt/qtwebengine/qtwebengine-6.5.2-r1.ebuild b/dev-qt/qtwebengine/qtwebengine-6.5.2-r1.ebuild
index 45ffa95a789a..4f2f7fbf799d 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.5.2-r1.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.5.2-r1.ebuild
@@ -101,6 +101,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
PATCHES+=(
# add extras as needed here, may merge in set if carries across versions
+ "${FILESDIR}"/${PN}-6.5.2-libcxx17.patch
)
python_check_deps() {
diff --git a/dev-qt/qtwebengine/qtwebengine-6.5.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-6.5.9999.ebuild
index 45ffa95a789a..4f2f7fbf799d 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.5.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.5.9999.ebuild
@@ -101,6 +101,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
PATCHES+=(
# add extras as needed here, may merge in set if carries across versions
+ "${FILESDIR}"/${PN}-6.5.2-libcxx17.patch
)
python_check_deps() {
next reply other threads:[~2023-09-07 10:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-07 10:03 Ionen Wolkens [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-10-21 12:31 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/ Sam James
2024-08-14 15:37 Ionen Wolkens
2024-07-28 4:30 Sam James
2024-07-03 0:39 Ionen Wolkens
2024-06-08 13:41 Ionen Wolkens
2024-05-30 12:52 Andreas Sturmlechner
2024-04-19 7:55 Ionen Wolkens
2024-04-17 0:15 Ionen Wolkens
2024-04-03 3:57 Ionen Wolkens
2024-03-22 10:29 Ionen Wolkens
2024-02-25 18:46 Ionen Wolkens
2024-02-01 23:06 Andreas Sturmlechner
2024-01-16 11:53 Andreas Sturmlechner
2024-01-03 19:10 Ionen Wolkens
2023-12-18 18:43 Ionen Wolkens
2023-11-20 13:44 Ionen Wolkens
2023-10-05 19:39 Ionen Wolkens
2023-05-24 11:15 Andreas Sturmlechner
2023-04-25 15:38 Andreas Sturmlechner
2023-04-17 19:39 Jimi Huotari
2023-04-15 2:10 Sam James
2023-04-09 20:17 Andreas Sturmlechner
2022-09-24 14:32 Andreas Sturmlechner
2022-08-17 21:20 Ionen Wolkens
2022-06-20 18:54 Andreas Sturmlechner
2022-05-20 19:43 Andreas Sturmlechner
2022-05-14 21:24 Sam James
2022-04-17 19:29 Sam James
2022-04-09 16:07 Andreas Sturmlechner
2021-10-17 6:54 Andreas Sturmlechner
2021-09-02 18:38 Andreas Sturmlechner
2021-09-02 18:38 Andreas Sturmlechner
2021-06-14 9:25 Andreas Sturmlechner
2021-05-23 19:19 Andreas Sturmlechner
2021-03-24 12:15 Andreas Sturmlechner
2020-04-26 18:12 Andreas Sturmlechner
2020-03-22 14:40 Andreas Sturmlechner
2020-02-10 6:42 Andreas Sturmlechner
2020-02-08 21:34 Andreas Sturmlechner
2019-10-20 14:21 Andreas Sturmlechner
2019-09-25 21:34 Andreas Sturmlechner
2019-09-01 23:07 Andreas Sturmlechner
2018-11-10 20:27 Andreas Sturmlechner
2018-05-09 20:17 Andreas Sturmlechner
2017-12-05 11:21 Michael Palimaka
2017-06-04 13:19 Michael Palimaka
2016-12-06 6:54 Michael Palimaka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1694080895.89c3fd669808db42d622817849840ca069c8b6f7.ionen@gentoo \
--to=ionen@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox