New issue
Advanced search Search tips

Issue 754589 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 809971
Owner: ----
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

DesktopCaptureOptions Link Time Symbol Error (w/o WebRTC)

Reported by robrich...@gmail.com, Aug 11 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3180.0 Safari/537.36

Steps to reproduce the problem:
1. Build recent to current Chromium (i.e. 62.0.3183.0 493664) with WebRTC disabled
2. Link error when linking chrome.dll

What is the expected behavior?
Build Chromium without errors when WebRTC is disabled.

What went wrong?
Link error due to missing symbol.

Did this work before? Yes Previous local build using 62.0.3180.0 492717 built with WebRTC disabled.

Chrome version: 62.0.3183.0  Channel: dev
OS Version: 10.0
Flash Version: 

Build argument 'enable_webrtc = false' results in a link error due to an undefined symbol. Testing using 64-bit build. Affects VS2017 and LLD.

Build output of both linkers:

FAILED: chrome.dll chrome.dll.lib
C:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 False link.exe /nologo /IMPLIB:./chrome.dll.lib /DLL /OUT:./chrome.dll /PDB:./chrome.dll.pdb @./chrome.dll.rsp
extensions.lib(desktop_capture_base.obj) : error LNK2001: unresolved external symbol "class webrtc::DesktopCaptureOptions __cdecl content::CreateDesktopCaptureOptions(void)" (?CreateDesktopCaptureOptions@content@@YA?AVDesktopCaptureOptions@webrtc@@XZ)
./chrome.dll : fatal error LNK1120: 1 unresolved externals

FAILED: chrome.dll chrome.dll.lib
C:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 False ../../third_party/llvm-build/llvm-external/bin/lld-link.exe /nologo /IMPLIB:./chrome.dll.lib /DLL /OUT:./chrome.dll /PDB:./chrome.dll.pdb @./chrome.dll.rsp
..\..\third_party\llvm-build\llvm-external\bin\lld-link.exe: warning: extensions.lib(desktop_capture_base.obj): undefined symbol: ?CreateDesktopCaptureOptions@content@@YA?AVDesktopCaptureOptions@webrtc@@XZ
error: link failed

Reverting....

https://codereview.chromium.org/2961193002/patch/180001/190001

....was my quick fix to proceed with my local WebRTC-disabled build.
 
Labels: Needs-Triage-M62 TE-NeedsTriageHelp
This issue related to chrome builds , as it is out of scope from TE end adding 'TE-Needs Triage Help' label to triage this issue further.
Thanks.
Quick followup. Commit 56efe642b5d1fc400ac7f34451d9a540f9d30fbb confirmed as source of issue here.

https://chromium.googlesource.com/chromium/src/+/56efe642b5d1fc400ac7f34451d9a540f9d30fbb

Pulled LKCR from today, reverted the above commit, and successfully built CrWinClangLLD64 with WebRTC disabled.
if you revert this gn  chnages (skip build.gn changes)    it works?
It is a little more involved these days. I skip the reverts and go straight to the code now.

For a Windows build without WebRTC, try the following modifications.

C:\depot_tools\chromium\src\chrome\browser\extensions\api\desktop_capture\desktop_capture_base.cc

Comment out these lines:

// screen_list = base::MakeUnique<NativeDesktopMediaList>(
// content::DesktopMediaID::TYPE_SCREEN,
// webrtc::DesktopCapturer::CreateScreenCapturer(
// content::CreateDesktopCaptureOptions()));

// window_list = base::MakeUnique<NativeDesktopMediaList>(
// content::DesktopMediaID::TYPE_WINDOW,
// webrtc::DesktopCapturer::CreateWindowCapturer(
// content::CreateDesktopCaptureOptions()));

C:\depot_tools\chromium\src\content\renderer\pepper\pepper_media_device_manager.cc

Comment out AddStream in line 239:

GetMediaStreamDeviceObserver()/*->AddStream(label, device)*/;

C:\depot_tools\chromium\src\chrome\browser\BUILD.gn

Add the following back to the dependencies block starting around line 1576:

    "//third_party/webrtc/modules/desktop_capture",
    "//third_party/webrtc_overrides",
    "//third_party/webrtc_overrides:init_webrtc",
Components: Blink>GetUserMedia>Desktop
Mergedinto: 809971
Status: Duplicate (was: Unconfirmed)

Sign in to add a comment