View previous topic :: View next topic |
Author |
Message |
cfgauss l33t


Joined: 18 May 2005 Posts: 736 Location: USA
|
Posted: Sat Mar 29, 2025 5:18 pm Post subject: [SOLVED] qtwebengine-6.8.3 won't emerge with clang-20 |
|
|
Here is emerge --info '=dev-qt/qtwebengine-6.8.3::gentoo'.
Here is the complete build log.
Code: | $ emerge -pqv '=dev-qt/qtwebengine-6.8.3::gentoo'
[ebuild r U ] dev-qt/qtwebengine-6.8.3 [6.8.2-r1] USE="alsa jumbo-build opengl pdfium* pulseaudio qml screencast vulkan widgets -accessibility -bindist -custom-cflags -designer -geolocation -kerberos -system-icu -test -vaapi -webdriver"
[ebuild rR ] www-client/falkon-24.12.3 USE="X dbus kde -debug -python -test" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13%"
The following packages are causing rebuilds:
(dev-qt/qtwebengine-6.8.3:6/6.8.3::gentoo, ebuild scheduled for merge) causes rebuilds for:
(www-client/falkon-24.12.3:0/0::gentoo, ebuild scheduled for merge) |
Any debugging hints will be gratefully received.
[SOLVED] My 2018 AMD Ryzen chip has znver=1 and about six packages, qtwebengine included, throw an Internal Compiler Error (ICE) when emerged with GCC but emerge normally with Clang. Thanks to Sam_ for pointing out the trouble and Ionen for fixing it before I could post a bug! After eix-sync, qtwebengine emerges with clang-20.1.1, my current version. [/SOLVED]
Last edited by cfgauss on Sun Mar 30, 2025 9:17 pm; edited 1 time in total |
|
Back to top |
|
 |
sam_ Developer


Joined: 14 Aug 2020 Posts: 2248
|
Posted: Sat Mar 29, 2025 9:44 pm Post subject: |
|
|
Quote: |
FAILED: obj/third_party/webrtc/api/candidate/candidate.o
/usr/lib/llvm/20/bin/clang++ -MMD -MF obj/third_party/webrtc/api/candidate/candidate.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_STRICT_FIELD_TRIALS=0 -DRTC_ENABLE_VP9 -DRTC_ENABLE_H265 -DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY -DWEBRTC_HAVE_SCTP -DENABLE_EXTERNAL_AUTH -DWEBRTC_USE_H264 -DWEBRTC_ENABLE_LIBEVENT -DHAVE_WEBRTC_VIDEO -DLOGGING_INSIDE_WEBRTC -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -Igen -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/webrtc_overrides -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/webrtc -Igen/third_party/webrtc -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/abseil-cpp -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/boringssl/src/include -I../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-deprecated-declarations -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -Wno-unknown-argument -Wno-unknown-attributes -Wno-unknown-warning-option -Wno-ignored-attributes -Wno-predefined-identifier-outside-function -Wno-self-assign -Wno-unknown-pragmas -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -no-canonical-prefixes -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors -Wno-shadow -Wctad-maybe-unsupported -DPROTOBUF_ALLOW_DEPRECATED=1 -Wno-c++11-narrowing-const-reference -Wno-parentheses-equality -Wno-tautological-compare -Wno-thread-safety-attributes -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -U_GLIBCXX_ASSERTIONS -O2 -march=x86-64-v3 -c ../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/webrtc/api/candidate.cc -o obj/third_party/webrtc/api/candidate/candidate.o
In file included from ../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/webrtc/api/candidate.cc:11:
../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/webrtc/api/candidate.h:96:40: error: 'lifetimebound' attribute cannot be applied to a parameter of a function that returns void; did you mean 'lifetime_capture_by(X)'
96 | void set_type(absl::string_view type ABSL_ATTRIBUTE_LIFETIME_BOUND) {
| ^
../../../../../qtwebengine-everywhere-src-6.8.3/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/attributes.h:812:41: note: expanded from macro 'ABSL_ATTRIBUTE_LIFETIME_BOUND'
812 | #define ABSL_ATTRIBUTE_LIFETIME_BOUND [[clang::lifetimebound]]
| ^
1 error generated.
|
It'll build with GCC rather than Clang. Please file a bug.
Clang starts to reject it with https://github.com/llvm/llvm-project/issues/107556. At a glance, I don't see a fix at either https://webrtc.googlesource.com/src/+log/refs/heads/main/api/candidate.cc or https://webrtc.googlesource.com/src/+log/refs/heads/main/api/candidate.h but I may be missing something obvious. It's a bit weird if so given Google usually run Clang from trunk. |
|
Back to top |
|
 |
cfgauss l33t


Joined: 18 May 2005 Posts: 736 Location: USA
|
Posted: Sat Mar 29, 2025 11:35 pm Post subject: |
|
|
sam_ wrote: | It'll build with GCC rather than Clang. Please file a bug. |
I have an AMD Ryzen 2950X with znver=1 architecture and I moved qtwebengine to package.env in order to compile with Clang (which it has for all prior versions). But I tried again with GCC and got the expected ICE error.
Should I still file a bug? |
|
Back to top |
|
 |
sam_ Developer


Joined: 14 Aug 2020 Posts: 2248
|
Posted: Sat Mar 29, 2025 11:54 pm Post subject: |
|
|
Do file a Gentoo bug for the failure to build with Clang. No need for the ICE as it's a notorious known problem with znver1 (as you know, but stating it for others). |
|
Back to top |
|
 |
Ionen Developer


Joined: 06 Dec 2018 Posts: 2913
|
Posted: Sun Mar 30, 2025 9:16 am Post subject: |
|
|
Haven't tried to reproduce yet, but I imagine that this does not happen with upcoming Qt 6.9 given webrtc changed these types entirely. Unfortunately would've preferred a quick fix to backport than this for 6.8.3 esp. since I hardly do C++.
At a glance, webrtc seem to be trying to keep the attribute matching everywhere for that argument, but per definition I think(?) it should have no meaning in that function and perhaps clang-20 became more picky about this assuming it's not a clang-20 bug (maybe it'd just be fine to remove it there).
I "imagine" qtwebengine-6.8.2 has the same problem, and it only built because was using clang-19 at the time.
Edit (update): reproduced, would still appreciate a bug for tracking but will push a fix whenever this qtwebengine build successfully finish |
|
Back to top |
|
 |
Ionen Developer


Joined: 06 Dec 2018 Posts: 2913
|
|
Back to top |
|
 |
cfgauss l33t


Joined: 18 May 2005 Posts: 736 Location: USA
|
Posted: Sun Mar 30, 2025 9:11 pm Post subject: |
|
|
Yes. Many thanks. |
|
Back to top |
|
 |
|