Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Sep 2024 07:28:54 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 281474] www/qt6-webengine: fix build with clang and libc++ 19
Message-ID:  <bug-281474-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D281474

            Bug ID: 281474
           Summary: www/qt6-webengine: fix build with clang and libc++ 19
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: kde@FreeBSD.org
          Reporter: dim@FreeBSD.org
             Flags: maintainer-feedback?(kde@FreeBSD.org)
          Assignee: kde@FreeBSD.org

Clang 19 now implements CWG 96 [1], which requires a template
argument list after a 'template' keyword, resulting in errors similar
to:

=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:331:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
    331 |     Base::template Trace([](typename Base::TraceContext ctx) {
ctx.Flush(); });
        |                    ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:337:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
    337 |     Base::template CallIfEnabled(
        |                    ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:352:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
    352 |     Base::template Trace([&](typename Base::TraceContext ctx) {
        |                    ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:499:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
    499 |     Base::template Trace([&](typename Base::TraceContext ctx) {
        |                    ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:1050:22:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
   1050 |       Base::template TraceWithInstances(instances,
std::move(lambda));
        |                      ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third=
_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h=
:1064:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
   1064 |     Base::template Trace([&](typename Base::TraceContext ctx) {
        |                    ^

For perfetto, this was fixed by upstream commit e2f661907a [1].

Another typo is in the third-party quiche library, resulting in:

=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/net/t=
hird_party/quiche/src/quiche/quic/core/quic_interval_deque.h:201:48:
error: no member named 'size' in 'QuicIntervalDeque<T, C>'; did you mean
'Size'?
    201 |       QUICHE_DCHECK(copy.index_ < copy.deque_->size());
        |                                                ^~~~
        |                                                Size
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/net/t=
hird_party/quiche/src/quiche/common/platform/api/quiche_logging.h:48:53:
note: expanded from macro 'QUICHE_DCHECK'
     48 | #define QUICHE_DCHECK(condition) QUICHE_DCHECK_IMPL(condition)
        |                                                     ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/net/t=
hird_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h:89:4=
6:
note: expanded from macro 'QUICHE_DCHECK_IMPL'
     89 | #define QUICHE_DCHECK_IMPL(condition) DCHECK(condition)
        |                                              ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
check.h:237:53:
note: expanded from macro 'DCHECK'
    237 | #define DCHECK(condition) EAT_CHECK_STREAM_PARAMS(!(condition))
        |                                                     ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
check.h:58:35:
note: expanded from macro 'EAT_CHECK_STREAM_PARAMS'
     58 |        : ::logging::VoidifyStream(expr) &
(*::logging::g_swallow_stream)
        |                                   ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/net/t=
hird_party/quiche/src/quiche/quic/core/quic_interval_deque.h:241:15:
note: 'Size' declared here
    241 |   std::size_t Size() const;
        |               ^

And finally there is a typo in chromium:

=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
containers/id_map.h:181:19:
error: no member named 'map' in 'Iterator<ReturnType>'; did you mean 'map_'?
    181 |       map_ =3D iter.map;
        |                   ^~~
        |                   map_
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
containers/id_map.h:239:26:
note: 'map_' declared here
    239 |     raw_ptr<IDMap<V, K>> map_;
        |                          ^
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
containers/id_map.h:182:20:
error: no member named 'iter' in 'Iterator<ReturnType>'; did you mean 'iter=
_'?
    182 |       iter_ =3D iter.iter;
        |                    ^~~~
        |                    iter_
=20
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/base/=
containers/id_map.h:240:40:
note: 'iter_' declared here
    240 |     typename HashTable::const_iterator iter_;
        |                                        ^

[1] https://android.googlesource.com/platform/external/perfetto/+/e2f661907a

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-281474-7788>