desktop_capture module not built on ppc64le
Categories
(Core :: WebRTC, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox104 | --- | affected |
People
(Reporter: dan, Unassigned)
Details
Looks like that after the webrtc buildsystem changes from June 21/22 the desktop_capture module not built on ppc64le any more causing linking errors.
The related changes are
https://phabricator.services.mozilla.com/D149473
https://phabricator.services.mozilla.com/D134738
I have not confirmed them via bisecting, but they are the likely suspects. A nightly build from June 21 is OK, but on June 22 it fails.
...
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopCaptureImpl::Init()':
26:05.63 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:334: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:377: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:340: undefined reference to `webrtc::DesktopCapturer::CreateScreenCapturer(webrtc::DesktopCaptureOptions const&)'
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:363: undefined reference to `webrtc::DesktopAndCursorComposer::DesktopAndCursorComposer(std::unique_ptr<webrtc::DesktopCapturer, std::default_delete<webrtc::DesktopCapturer> >, webrtc::DesktopCaptureOptions const&)'
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:368: undefined reference to `webrtc::DesktopCapturer::CreateTabCapturer(webrtc::DesktopCaptureOptions const&)'
26:05.63 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_capture_impl.cc:353: undefined reference to `webrtc::DesktopCapturer::CreateWindowCapturer(webrtc::DesktopCaptureOptions const&)'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopDeviceInfoImpl::InitializeScreenList()':
26:05.64 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCapturer::CreateScreenCapturer(webrtc::DesktopCaptureOptions const&)'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:306: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices0.o: in function `webrtc::DesktopDeviceInfoImpl::InitializeWindowList()':
26:05.64 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCaptureOptions::CreateDefault()'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCapturer::CreateWindowCapturer(webrtc::DesktopCaptureOptions const&)'
26:05.64 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/desktop_device_info.cc:245: undefined reference to `webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()'
26:11.83 Compiling http3server v0.1.1 (/mnt/dan/firefox.git/netwerk/test/http3server)
26:22.55 Finished release [optimized] target(s) in 1m 44s
26:41.83 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturerWebrtc::~TabCapturerWebrtc()':
26:41.83 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
26:41.83 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
26:41.83 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturerWebrtc::~TabCapturerWebrtc()':
26:41.83 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
26:41.83 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.h:86: undefined reference to `webrtc::DesktopCapturer::~DesktopCapturer()'
26:41.83 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o: in function `mozilla::TabCapturer::OnFrame(mozilla::dom::ImageBitmap*)':
26:41.83 /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.cc:202: undefined reference to `webrtc::BasicDesktopFrame::BasicDesktopFrame(webrtc::DesktopSize)'
26:41.84 /usr/bin/ld: /mnt/dan/firefox.git/dom/media/systemservices/video_engine/tab_capturer.cc:211: undefined reference to `webrtc::DesktopFrame::CopyPixelsFrom(unsigned char const*, int, webrtc::DesktopRect const&)'
26:41.84 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o:(.data.rel.ro.local._ZTVN7mozilla17TabCapturerWebrtcE[_ZTVN7mozilla17TabCapturerWebrtcE]+0x28): undefined reference to `webrtc::DesktopCapturer::SetSharedMemoryFactory(std::unique_ptr<webrtc::SharedMemoryFactory, std::default_delete<webrtc::SharedMemoryFactory> >)'
26:41.84 /usr/bin/ld: /mnt/dan/firefox.git/obj-powerpc64le-unknown-linux-gnu/toolkit/library/build/../../../dom/media/systemservices/Unified_cpp_systemservices1.o:(.data.rel.ro.local._ZTVN7mozilla17TabCapturerWebrtcE[_ZTVN7mozilla17TabCapturerWebrtcE]+0x38): undefined reference to `webrtc::DesktopCapturer::SetExcludedWindow(long)'
26:54.21 /usr/bin/ld: libxul.so: hidden symbol `_ZN6webrtc15DesktopCapturer20CreateScreenCapturerERKNS_21DesktopCaptureOptionsE' isn't defined
26:54.21 /usr/bin/ld: final link failed: bad value
26:54.53 collect2: error: ld returned 1 exit status
26:54.53 gmake[4]: *** [/mnt/dan/firefox.git/config/rules.mk:540: libxul.so] Chyba 1
26:54.53 gmake[3]: *** [/mnt/dan/firefox.git/config/recurse.mk:72: toolkit/library/build/target] Chyba 2
26:54.53 gmake[2]: *** [/mnt/dan/firefox.git/config/recurse.mk:34: compile] Chyba 2
26:54.53 gmake[1]: *** [/mnt/dan/firefox.git/config/rules.mk:361: default] Chyba 2
26:54.53 gmake: *** [client.mk:63: build] Chyba 2
Updated•4 years ago
|
I think https://github.com/mozilla/gecko-dev/blob/master/third_party/libwebrtc/moz.build#L517 is the culprit, it lacks the desktop_capture sources ...
And I think we lost the generic Linux case (but gained eg. OpenBSD one ...), that existed before - https://github.com/mozilla/gecko-dev/blob/9524e20b3fb011777ca0d0e8004e5ced82c976f7/third_party/libwebrtc/moz.build#L387
IMO the new logic is somehow wrong
Comment 3•4 years ago
|
||
The root cause of this is the poor handling of the configuration grouping, as briefly mentioned in the commit message in https://phabricator.services.mozilla.com/D149850
Description
•