For the Android build, configure.ac currently checks for a minimum NDK
version of 16.x and the Jenkins builds use 20.1.5948944 (s.
distro-configs/Jenkins/android_common.conf ).
In the context of adding support for newer NDKs, I would like to update
the minimum version to 23.x to avoid the complexity that would be needed
to support older versions in parallel.
Updating to NDK 23 would among others allow using lld for linking
liblo-native-code.so, which significantly reduces the time for linking
in debug builds (~40s -> ~10s for me for an x86 build) and also fixes an
error I get for 64-bit-ARM debug builds (for which I had a local
workaround so far, s. https://gerrit.libreoffice.org/c/core/+/130947 ).
AFAICT, this should have no impact on runtime requirements/supported
devices, since NDK 23 still supports API 16 (Android 4.1).
Suggested changes in Gerrit:
https://gerrit.libreoffice.org/c/core/+/146118
https://gerrit.libreoffice.org/c/core/+/146119
(Changes further up the relation chain are for supporting NDK 24 and 25
as well.)
In addition to the above changes, installing the corresponding NDK for
all Android builders is needed, don't know about additional custom
config for android builders beyond above-mentioned
distro-configs/Jenkins/android_common.conf )
Clang version for NDK 23.2.8568313 which is the one that I used for
testing and that https://gerrit.libreoffice.org/c/core/+/146118 would
currently switch the Jenkins builds to):
$ ~/Android/Sdk/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --version
Android (8481493, based on r416183c2) clang version 12.0.9 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/michi/Android/Sdk/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin
Are there any thoughts/concerns on that?
(I plan to bring up that topic in tomorrow's ESC call as well.)