Closed Bug 1465468 Opened 6 years ago Closed 6 years ago

Use NDK r17

Categories

(Firefox Build System :: Android Studio and Gradle Integration, enhancement, P5)

59 Branch
enhancement

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1482330

People

(Reporter: snorp, Unassigned)

Details

This fixes the long build times with x86, but I did run into two issues:

1) You need --with-android-version=16 since NDK platform 9 is screwed presumably due to unified header problems.

2) You need -Wno-error=tautological-constant-compare since we apparently have a bunch of tautological comparisons.
Actually I do get a consistent segfault building for arm64:

 0:35.49 #0 0x00000000014b9f84 (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x14b9f84)
 0:35.49 #1 0x00000000014ba1b6 (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x14ba1b6)
 0:35.49 #2 0x00007ff07812cfc0 (/lib64/libpthread.so.0+0x11fc0)
 0:35.49 #3 0x0000000000f74a10 (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0xf74a10)
 0:35.50 #4 0x0000000000f72304 (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0xf72304)
 0:35.50 #5 0x0000000000e6389a llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0xe6389a)
 0:35.50 #6 0x00000000010fea7b llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x10fea7b)
 0:35.50 #7 0x00000000010fece3 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x10fece3)
 0:35.50 #8 0x00000000010ff164 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x10ff164)
 0:35.50 #9 0x0000000001616432 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream> >) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x1616432)
 0:35.50 #10 0x0000000001cad14c (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x1cad14c)
 0:35.50 #11 0x000000000213a7f6 clang::ParseAST(clang::Sema&, bool, bool) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x213a7f6)
 0:35.50 #12 0x00000000019c4a5b clang::FrontendAction::Execute() (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x19c4a5b)
 0:35.50 #13 0x0000000001972738 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x1972738)
 0:35.50 #14 0x0000000001a48cc4 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x1a48cc4)
 0:35.50 #15 0x00000000007b7db6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x7b7db6)
 0:35.50 #16 0x00000000007b3f6d main (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x7b3f6d)
 0:35.50 #17 0x00007ff076c8d18b __libc_start_main (/lib64/libc.so.6+0x2318b)
 0:35.50 #18 0x00000000007b30b2 _start (/home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang+++0x7b30b2)
 0:35.50 Stack dump:
 0:35.50 0.	Program arguments: /home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -cc1 -triple aarch64--linux-android -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name Unified_cpp_js_src15.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -relaxed-aliasing -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu generic -target-feature +neon -target-abi aapcs -backend-option -aarch64-fix-cortex-a53-835769=1 -fallow-half-arguments-and-returns -dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -coverage-notes-file /home/snorp/source/objdirs/objdir-android-opt/js/src/Unified_cpp_js_src15.gcno -resource-dir /home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2 -dependency-file .deps/Unified_cpp_js_src15.o.pp -MT Unified_cpp_js_src15.o -sys-header-deps -MP -include /home/snorp/source/gecko/config/gcc_hidden.h -include /home/snorp/source/objdirs/objdir-android-opt/js/src/js-confdefs.h -isystem /home/snorp/.mozbuild/android-ndk-r17/sysroot/usr/include/aarch64-linux-android -isystem /home/snorp/.mozbuild/android-ndk-r17/sysroot/usr/include -I /home/snorp/source/objdirs/objdir-android-opt/dist/system_wrappers -D NDEBUG=1 -D TRIMMED=1 -D ENABLE_BINARYDATA -D ENABLE_SIMD -D ENABLE_WASM_BULKMEM_OPS -D ENABLE_WASM_SATURATING_TRUNC_OPS -D ENABLE_WASM_SIGNEXTEND_OPS -D ENABLE_WASM_THREAD_OPS -D ENABLE_WASM_GC -D WASM_HUGE_MEMORY -D JS_CACHEIR_SPEW -D ENABLE_SHARED_ARRAY_BUFFER -D EXPORT_JS_API -D JS_HAS_CTYPES -D DLL_PREFIX="lib" -D DLL_SUFFIX=".so" -D MOZ_LINKER -D FFI_BUILDING -D MOZ_HAS_MOZGLUE -I /home/snorp/source/gecko/js/src -I /home/snorp/source/objdirs/objdir-android-opt/js/src -I /home/snorp/source/objdirs/objdir-android-opt/js/src/ctypes/libffi/include -I /home/snorp/source/gecko/js/src/ctypes/libffi/src/aarch64 -I /home/snorp/source/objdirs/objdir-android-opt/dist/include -I /home/snorp/source/objdirs/objdir-android-opt/dist/include/nspr -D MOZILLA_CLIENT -D __ANDROID_API__=21 -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -I /home/snorp/.mozbuild/android-ndk-r17/sources/cxx-stl/llvm-libc++/include -I /home/snorp/.mozbuild/android-ndk-r17/sources/android/support/include -I /home/snorp/.mozbuild/android-ndk-r17/sources/cxx-stl/llvm-libc++abi/include -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -internal-isystem /usr/local/include -internal-isystem /home/snorp/.mozbuild/android-ndk-r17/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wloop-analysis -Wc++1z-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-noexcept-type -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-error=tautological-constant-compare -Werror -Wno-shadow -Werror=format -std=gnu++14 -fdeprecated-macro -fdebug-compilation-dir /home/snorp/source/objdirs/objdir-android-opt/js/src -ferror-limit 19 -fmessage-length 0 -femulated-tls -fno-rtti -fno-signed-char -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o Unified_cpp_js_src15.o -x c++ /home/snorp/source/objdirs/objdir-android-opt/js/src/Unified_cpp_js_src15.cpp
 0:35.50 1.	<eof> parser at end of file
 0:35.50 2.	Code generation
 0:35.50 3.	Running pass 'Function Pass Manager' on module '/home/snorp/source/objdirs/objdir-android-opt/js/src/Unified_cpp_js_src15.cpp'.
 0:35.50 4.	Running pass 'Machine Loop Invariant Code Motion' on function '@_ZN2js3jit22CacheRegisterAllocator20saveIonLiveRegistersERNS0_14MacroAssemblerENS0_7LiveSetINS0_11RegisterSetEEENS0_8RegisterEPNS0_9IonScriptE'
Android NDK team says that this will be fixed in r18.
https://github.com/android-ndk/ndk/issues/732
Re-triaging per https://bugzilla.mozilla.org/show_bug.cgi?id=1473195

Needinfo :susheel if you think this bug should be re-triaged.
Priority: -- → P5
We're using NDK r17 in automation (but with our own compiler) and for local ARM builds the NDK r18-Beta works with bug 1484823 fixed.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Product: Firefox for Android → Firefox Build System
Version: Firefox 59 → 59 Branch
You need to log in before you can comment on or make changes to this bug.