gcarq / inox-patchset

Inox patchset tries to provide a minimal Chromium based browser with focus on privacy by disabling data transmission to Google.
BSD 2-Clause "Simplified" License
364 stars 26 forks source link

Update to 67 #151

Closed xsmile closed 6 years ago

xsmile commented 6 years ago

The stable version was published.

ghost commented 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.
qnixsynapse commented 6 years ago

Use clang version 6. version 5 will not work unless patched!

Eloston commented 6 years ago

@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.

ghost commented 6 years ago

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.

xsmile commented 6 years ago

@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 :-)

ghost commented 6 years ago

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.

xsmile commented 6 years ago

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.