Hi.
I'm trying to build CAF SWE Browser (Chromium) with Snapdragon LLVM compiler & LTO.
While I was able to compile Chromium with Snapdragon LLVM, using LTO has failed spectacularly.
Here's the log :
Is there anything I can do to fix it?
Or does qcld needs an update?
Thanks in advance :)
Thanks for reporting the issue.
Can you share the build recipe for this chromium project (build steps) so that we can try to reproduce the crash.
Also, please send us the configuration of your build machine. How much RAM does it have?
Sure.
SWE Browser build steps are available here :
https://wiki.codeaurora.org/xwiki/bin/Chromium+for+Snapdragon/m52_build_...
Just change m52 to m54.
I've patched the src/build directory to make it more optimized for Snapdragon LLVM.
Patch : http://pastebin.com/cvk7X3vc
1. Sync and apply the patch.
2. Run "build/download_gold_plugin.py" to download LLVMgold.so(used for host).
3. Move "third_party/llvm-build/Release+Asserts" to "third_party/llvm-build/host" since sdclang can't compile for x86.
4. Download sdclang 3.8.6 to "third_party/llvm-build/Release+Asserts".
5. Use the following command to build :
. ./build/android/envsetup.sh
gn gen out/Default --args='target_os="android" target_cpu="arm" is_debug=false is_component_build=false is_clang=true symbol_level=0 remove_webcore_debug_symbols=true optimize_for_size=false clang_use_chrome_plugins=false allow_posix_link_time_opt=true'
My system is i7-5820K with 32GB of RAM.
I tried changing the kernel (various 4.4, 4.7 and 4.8 kernels) but it didn't help.
And it's definitely not running out of RAM.
We have reproduced the crash on our end and are working on a fix.
The Segmentation fault in Snapdragon LLVM 3.8.6 has been fixed in 3.8.7.
With these patches in place, we are now experiencing very long compile times with the LTO option on this codebase. We will post more information as we root cause the issue.
We have the 3.8.7 patch release ready. Are you interested in trying it out?
The Snapdragon LLVM ARM Toolchain Patch version 3.8.7 is now available for download.
This patch version fixes the initial segmentation fault reported on this thread.
In addition, we found out in the LLVM Dev meeting last week that it's not possible to build Chromium with LLVM LTO because of memory limitations.
Also, there is not a multi-threaded LTO option available on QCLD.