Closed xsmile closed 6 years ago
Didn't worked for me:
FAILED: chrome
python "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome" -- x86_64-pc-linux-gnu-clang++ -pie -Wl,--version-script=../../build/linux/chrome.map -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,--export-dynamic -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lxml2 -lfontconfig -ldbus-1 -lexpat -lXss -lpng16 -lz -lfreetype -ljpeg -lwebp -lwebpdemux -lwebpmux -lharfbuzz -ldrm -lXrandr -lgio-2.0 -lresolv -lre2 -lsnappy -lpci -lasound -lavcodec -lavformat -lavutil -lopus -lpangocairo-1.0 -lpango-1.0 -lfribidi -lcairo -latk-1.0 -latk-bridge-2.0 -lFLAC -lopenh264 -lm -lminizip -lgtk-3 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lxslt
obj/chrome/browser/browser/chrome_content_browser_client.o: In function `ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(content::ResourceContext*)':
../../chrome/browser/chrome_content_browser_client.cc:(.text+0xd4b5): undefined reference to `safe_browsing::SafeBrowsingService::database_manager() const'
../../chrome/browser/chrome_content_browser_client.cc:(.text+0xd4c4): undefined reference to `safe_browsing::SafeBrowsingService::ui_manager() const'
obj/chrome/browser/browser/chrome_content_browser_client.o: In function `scoped_refptr<safe_browsing::UrlCheckerDelegateImpl> base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl, scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> const&, scoped_refptr<safe_browsing::SafeBrowsingUIManager> const&>(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> const&, scoped_refptr<safe_browsing::SafeBrowsingUIManager> const&)':
../../chrome/browser/chrome_content_browser_client.cc:(.text._ZN4base14MakeRefCountedIN13safe_browsing22UrlCheckerDelegateImplEJRK13scoped_refptrINS1_27SafeBrowsingDatabaseManagerEERKS3_INS1_21SafeBrowsingUIManagerEEEEES3_IT_EDpOT0_[_ZN4base14MakeRefCountedIN13safe_browsing22UrlCheckerDelegateImplEJRK13scoped_refptrINS1_27SafeBrowsingDatabaseManagerEERKS3_INS1_21SafeBrowsingUIManagerEEEEES3_IT_EDpOT0_]+0x50): undefined reference to `safe_browsing::UrlCheckerDelegateImpl::UrlCheckerDelegateImpl(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>, scoped_refptr<safe_browsing::SafeBrowsingUIManager>)'
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Use clang version 6. version 5 will not work unless patched!
@csmk Chromium switched to LLVM 6 a while back. You will also have to turn off optimizations like GN flag is_official_build since they changed from LLVM 5 to 6.
After many many hours of trial and error, I was only able to build in my Gentoo box if I remove the 0001-fix-building-without-safebrowsing.patch
and safe_browsing_mode=0
. :disappointed:
Use clang version 6. version 5 will not work unless patched!
Didn't make much difference, since it produced almost identical error message.
[15379/15379] python "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome" -- x86_64-pc-linux-gnu-clang++ -pie -Wl,--version-script=../../build/linux/chrome.map -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,--export-dynamic -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lxml2 -lfontconfig -ldbus-1 -lexpat -lXss -lpng16 -lz -lfreetype -ljpeg -lwebp -lwebpdemux -lwebpmux -lharfbuzz -ldrm -lXrandr -lgio-2.0 -lresolv -lre2 -lsnappy -lpci -lasound -lavcodec -lavformat -lavutil -lopus -lpangocairo-1.0 -lpango-1.0 -lfribidi -lcairo -latk-1.0 -latk-bridge-2.0 -lFLAC -lopenh264 -lm -lminizip -lgtk-3 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lxslt
FAILED: chrome
python "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome" -- x86_64-pc-linux-gnu-clang++ -pie -Wl,--version-script=../../build/linux/chrome.map -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,--export-dynamic -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lxml2 -lfontconfig -ldbus-1 -lexpat -lXss -lpng16 -lz -lfreetype -ljpeg -lwebp -lwebpdemux -lwebpmux -lharfbuzz -ldrm -lXrandr -lgio-2.0 -lresolv -lre2 -lsnappy -lpci -lasound -lavcodec -lavformat -lavutil -lopus -lpangocairo-1.0 -lpango-1.0 -lfribidi -lcairo -latk-1.0 -latk-bridge-2.0 -lFLAC -lopenh264 -lm -lminizip -lgtk-3 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lxslt
obj/chrome/browser/browser/chrome_content_browser_client.o: In function `ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(content::ResourceContext*)':
chrome_content_browser_client.cc:(.text+0xd5ad): undefined reference to `safe_browsing::SafeBrowsingService::database_manager() const'
chrome_content_browser_client.cc:(.text+0xd5bc): undefined reference to `safe_browsing::SafeBrowsingService::ui_manager() const'
obj/chrome/browser/browser/chrome_content_browser_client.o: In function `scoped_refptr<safe_browsing::UrlCheckerDelegateImpl> base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl, scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> const&, scoped_refptr<safe_browsing::SafeBrowsingUIManager> const&>(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> const&, scoped_refptr<safe_browsing::SafeBrowsingUIManager> const&)':
chrome_content_browser_client.cc:(.text._ZN4base14MakeRefCountedIN13safe_browsing22UrlCheckerDelegateImplEJRK13scoped_refptrINS1_27SafeBrowsingDatabaseManagerEERKS3_INS1_21SafeBrowsingUIManagerEEEEES3_IT_EDpOT0_[_ZN4base14MakeRefCountedIN13safe_browsing22UrlCheckerDelegateImplEJRK13scoped_refptrINS1_27SafeBrowsingDatabaseManagerEERKS3_INS1_21SafeBrowsingUIManagerEEEEES3_IT_EDpOT0_]+0x53): undefined reference to `safe_browsing::UrlCheckerDelegateImpl::UrlCheckerDelegateImpl(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>, scoped_refptr<safe_browsing::SafeBrowsingUIManager>)'
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
The cue of course was the complaining about SafeBrowsingService
. This is the ebuild I had success.
@cskm I'm not sure why your build fails. If the Chromium source and Inox patches are the same, then it should be the toolchain (or cache). You can try using the same environment variables AR and NM as defined in the PKGBUILD script.
If that doesn't help, try editing the source and removing the mentioned references in
chrome/browser/chrome_content_browser_client.cc
. Since this was the only linker error, chances are high that this is the only change required.
@gcarq I hope you didn't have the chance to encounter the packaging error yet. It works now :-)
If the Chromium source and Inox patches are the same, then it should be the toolchain (or cache).
Yes, finally! I've successfully built with the following commit. The dependency on lld
was missing, so the flags is_cfi=true
, use_gold=true
and use_lld=true
wasn't working either. Thanks for the tips and sorry for the noises.
Cheers.
That makes sense. Additionally you might want to try using the flag is_official_build
. It is responsible for enabling several optimization flags and will set is_cfi
and use_lld
. But as Eloston mentioned, you will need LLVM 6.
The stable version was published.