Closed Bug 1779545 Opened 4 years ago Closed 4 years ago

desktop_capture module not built on ppc64le

Categories

(Core :: WebRTC, defect, P2)

Other
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1775202
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
Severity: -- → S3
Priority: -- → P2

:glandium, would you mind taking a look?

Flags: needinfo?(mh+mozilla)

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

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

Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(mh+mozilla)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.