Bug 296737
| Summary: | [GTK][WPE] Build broken with libwebrtc enabled and gcc12 | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Miguel Gomez <magomez> |
| Component: | WebKitGTK | Assignee: | Miguel Gomez <magomez> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | bugs-noreply |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Miguel Gomez
When enabling libwebrtc and trying to build with gcc12, there are several errors happening:
----------------------------------------------
ERROR 1: happens for Network, PayloadTypeSuggester and SctpTransport classes in libwebrtc:
Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port_interface.h:58:26: error: declaration of 'virtual const webrtc::Network* webrtc::PortInterface::Network() const' changes meaning of 'Network' [-fpermissive]
58 | virtual const Network* Network() const = 0;
| ^~~~~~~
In file included from Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port_interface.h:29:
Source/ThirdParty/libwebrtc/Source/webrtc/rtc_base/network.h:197:18: note: 'Network' declared here as 'class webrtc::Network'
197 | class RTC_EXPORT Network {
| ^~~~~~~
----------------------------------------------
ERROR 2
In file included from /host/home/magomez/webkit/WebKit/Source/ThirdParty/libwebrtc/Source/webrtc/video/screenshare_loopback.cc:30:
/host/home/magomez/webkit/WebKit/Source/ThirdParty/libwebrtc/Source/webrtc/test/gtest.h:18:10: fatal error: gtest/gtest-spi.h: No such file or directory
18 | #include <gtest/gtest-spi.h>
| ^~~~~~~~~~~~~~~~~~~
-------------------------------------------
ERROR 3
In file included from WTF/Headers/wtf/MallocCommon.h:29,
from WTF/Headers/wtf/FastMalloc.h:26,
from Source/WebCore/config.h:47,
from Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp:25,
from WebCore/DerivedSources/unified-sources/UnifiedSource-f8afad56-37.cpp:1:
WTF/Headers/wtf/StdLibExtras.h: In instantiation of 'constexpr typename std::remove_reference<_Arg>::type&& std::move(T&&) [with WTF::CheckMoveParameterTag <anonymous> = WTF::CheckMoveParameter; T = const WTF::String&; typename remove_reference<_Arg>::type = const WTF::String]':
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:785:18: required from 'WebCore::LibWebRTCMediaEndpoint::generateTransceiverStates(const WTF::Vector<WebCore::LibWebRTCMediaEndpointTransceiverState>&)::<lambda(auto:448&)> [with auto:448 = const WebCore::LibWebRTCMediaEndpointTransceiverState]'
WTF/Headers/wtf/Vector.h:1924:64: required from 'static void WTF::Mapper<MapFunction, DestinationVectorType, SourceType>::map(DestinationVectorType&, SourceType&&, const MapFunction&) [with MapFunction = WebCore::LibWebRTCMediaEndpoint::generateTransceiverStates(const WTF::Vector<WebCore::LibWebRTCMediaEndpointTransceiverState>&)::<lambda(auto:448&)>; DestinationVectorType = WTF::Vector<WebCore::PeerConnectionBackend::TransceiverState>; SourceType = const WTF::Vector<WebCore::LibWebRTCMediaEndpointTransceiverState>&]'
WTF/Headers/wtf/Vector.h:1948:65: required from 'WTF::Vector<typename std::invoke_result<MapFunction, typename WTF::CollectionInspector<SourceType>::SourceItemType&>::type, inlineCapacity, OverflowHandler, minCapacity> WTF::map(SourceType&, MapFunction&&) [with unsigned int inlineCapacity = 0; OverflowHandler = CrashOnOverflow; unsigned int minCapacity = 16; MapFunction = WebCore::LibWebRTCMediaEndpoint::generateTransceiverStates(const WTF::Vector<WebCore::LibWebRTCMediaEndpointTransceiverState>&)::<lambda(auto:448&)>; SourceType = const Vector<WebCore::LibWebRTCMediaEndpointTransceiverState>; typename std::invoke_result<MapFunction, typename CollectionInspector<SourceType>::SourceItemType&>::type = WebCore::PeerConnectionBackend::TransceiverState; typename CollectionInspector<SourceType>::SourceItemType = WebCore::LibWebRTCMediaEndpointTransceiverState]'
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:784:20: required from here
WTF/Headers/wtf/StdLibExtras.h:839:51: error: static assertion failed: T is const qualified.
839 | static_assert(!is_const<NonRefQualifiedType>::value, "T is const qualified.");
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Miguel Gomez
Pull request: https://github.com/WebKit/WebKit/pull/48769
EWS
Committed 298117@main (06e3689f964e): <https://commits.webkit.org/298117@main>
Reviewed commits have been landed. Closing PR #48769 and removing active labels.