[Bug 281431] www/qt5-webengine: fix build with clang and libc++ 19
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Sep 11 08:11:53 BST 2024
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281431
Bug ID: 281431
Summary: www/qt5-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 at FreeBSD.org
Reporter: dim at FreeBSD.org
Assignee: kde at FreeBSD.org
Flags: maintainer-feedback?(kde at FreeBSD.org)
As noted in the libc++ 19 release notes [1], std::char_traits<> is now
only provided for char, char8_t, char16_t, char32_t and wchar_t, and any
instantiation for other types will fail.
This causes www/qt5-webengine to fail to compile with clang 19 and
libc++ 19, resulting in errors similar to:
/usr/include/c++/v1/string:820:42: error: implicit instantiation of undefined
template 'std::char_traits<unsigned short>'
820 | static_assert(is_same<_CharT, typename
traits_type::char_type>::value,
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.cc:390:26:
note: in instantiation of template class 'std::basic_string<unsigned short>'
requested here
390 | std::basic_string<UChar> UTF8ToUTF16(const char* stringStart, size_t
length) {
| ^
/usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared here
23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
| ^
Upstream v8 has fixed this in commit 182d9c05e78 [2], so add it as a
backported patch, until the next version of qt5-webengine is released.
Also, clang 19 now implements CWG 96 [1], which requires a template
argument list after a 'template' keyword, resulting in errors similar
to:
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h:1789:23:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
1789 | Allocator::template BackingWriteBarrier(&table_);
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h:1847:23:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
1847 | Allocator::template BackingWriteBarrier(&table_);
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h:2015:23:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
2015 | Allocator::template BackingWriteBarrier(&table_);
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/hash_table.h:2016:23:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
2016 | Allocator::template BackingWriteBarrier(&other.table_);
| ^
and:
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:110:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
110 | Base::template Trace([](typename Base::TraceContext ctx) {
ctx.Flush(); });
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:124:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
124 | Base::template Trace([&](typename Base::TraceContext ctx) {
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:431:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
431 | Base::template Trace([&](typename Base::TraceContext ctx) {
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:548:22:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
548 | Base::template TraceWithInstances(instances,
std::move(lambda));
| ^
../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:563:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
563 | Base::template Trace([&](typename Base::TraceContext ctx) {
| ^
In case of wtf, appending "<>" is enough to satisfy the constraint. For
perfetto, this was fixed by upstream commit e2f661907a [3].
[1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals
[2] https://chromium.googlesource.com/v8/v8.git/+/182d9c05e78
[3] https://android.googlesource.com/platform/external/perfetto/+/e2f661907a
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the kde-freebsd
mailing list