public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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() {


             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