When `$ANDROID_NDK_HOME` is set, `mk/cargo.sh` will use it to locate the
NDK tools. Thus, we need to ensure that the hack is applied to
`$ANDROID_NDK_HOME` when that is set.
I am not sure why I added this line; perhaps it was unintentially left in
when the script was being debugged.
Use Android NDK 25 since that's GitHub Actions is moving to. SDK level
is the minimum supported, and there are no longer target-specific
allases for `llvm-ar`; update cargo.sh accordingly.
Use the environment variables recommended by the Android documentation.
Work around compatibility issue with Rust and Android NDKs.
Remove out-of-date documentation aboud building for Android.
aarch64-unknown-linux-musl doesn't have profiler_builtins enabled so
use aarch64-unknown-linux-gnu instead.
Work around an issue where the "%m" feature of the LLVM source-based code
coverage doesn't work within QEMU.
Avoid requiring a sysroot for *-linux-musl targets when using Clang.
Add one AAarch64 and one 32-bit ARM MUSL target to GitHub Actions.
Use Rust 1.48's `-Clink-self-contained=yes` in CI for musl targets.
Support the non-default variants of the *-musl targets.
Android has its own `clang`, `llvm-ar`, etc., and if they are in `$PATH` then
they might accidentally get used when it isn't intended for them to be used.
As part of this, reduce the environment variables that are set to (almost) only
the ones needed for the given target. An exception is wasm32-unknown-unknown,
which has its variables set even regardless of whether "wasm32_c" is used.