Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
5.15.11, 5.15.12
-
None
-
Windows 11 build 22000.1098
LLVM: 15.0.6 x64
MSVC: 14.34
NodeJS: 18.13
Python2: 2.7.18
Python3: 3.9.12
-
-
f250f1157 (87-based), 8b2b44128 (87-based), 86d5d85c2 (87-based), d29902afc (87-based), c4e58804c (5.15), ed9d108fc (87-based), f57a146d4 (5.15), 5777776c4 (5.15.13)
Description
I'm trying to build with this configuration:
-v -commercial -confirm-license -force-debug-info -nomake examples -nomake tests -prefix Q:\build-5.15.11-0-win-x64\qt-5.15.11-win-x64-v143 -I C:\git\PumpkinCache\openssl-1.1.1q-win-x64-v141-33\openssl\include -L C:\git\PumpkinCache\openssl-1.1.1q-win-x64-v141-33\openssl\lib -c++std c++14 -skip qtsensors -skip qtserialport -skip qtserialbus -skip qt3d -skip qtspeech -skip qtcharts -skip datavis3d -skip qtgamepad -skip qtpurchasing -skip qtandroidextras -skip qtx11extras -skip qtwayland -skip qtlocation -skip qtmultimedia -skip qtvirtualkeyboard -skip qtconnectivity -skip qtdoc -skip qtsystems -skip qtscript -skip qtquick3d -skip qtxmlpatterns -skip qtcanvas3d -skip qtdatavis3d -skip qtfeedback -skip qtlottie -skip qtpim -skip qtqa -skip qtrepotools -skip qtwebview -webengine-proprietary-codecs -webengine-webrtc -webengine-kerberos -opengl dynamic -openssl-runtime -platform win32-clang-msvc -no-pch QMAKE_LFLAGS+=/ignore:longsections
I use clang-cl since it's necessary for building all the needed parts of WebEngine.
The error is coming from WebRTC and its outdated abseil-cpp implementation:
../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp\absl/meta/type_traits.h(493,3): error: static assertion failed due to requirement 'compliant || std::is_trivially_copy_assignable<std::pair<webrtc::TimeDelta, webrtc::TimeDelta>>::value': Not compliant with std::is_trivially_copy_assignable; Standard: false, Implementation: true static_assert(compliant || std::is_trivially_copy_assignable<T>::value, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/call.cc(796,10): error: cannot initialize return object of type 'webrtc::AudioSendStream *' with an lvalue of type 'webrtc::internal::AudioSendStream *' return send_stream; ^~~~~~~~~~~ In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/call.cc:11: In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/webrtc\call/call.h:20: In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/webrtc\call/audio_receive_stream.h:19: In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp\absl/types/optional.h:39: In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp\absl/utility/utility.h:50: In file included from ../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp\absl/base/internal/invoke.h:42:
The c++std switch is just a try to work around the issue but it doesn't do anything in the WebRTC build.
This library also complains about a deprecated feature:
../../../../../../qt/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp\absl/meta/type_traits.h(293,36): warning: builtin __has_trivial_destructor is deprecated; use __is_trivially_destructible instead [-Wdeprecated-builtins] : std::integral_constant<bool, __has_trivial_destructor(T) &&