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.
I agree to license my contributions to each file under the terms given at the top of each file I changed.
Co-authored-by: Marc-André Moreau <marcandre.moreau@gmail.com>
Eliminate the extra Cargo.toml that was used just for this feature. It was
too error-prone to keep it in sync with the real Cargo.toml. Having one
Cargo.toml will allow us to reliably use the `CARGO_MANIFEST_LINKS` value
to keep the symbol prefix in sync with the `links` field in Cargo.toml in
the near future.
`cargo clippy` failed with an error but this didn't cause mk/cargo.sh
to fail because it didn't contain `set -e`. Thus the `clippy` job has
been passing when it shouldn't.
Add the "bash strict mode" to the script.
I verified the other shell scripts use the "bash strict mode" already.
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.
Gather code review data to help guide the code review process. This is currently limited
to i686 and x86_64 Linux because these are the targets I could get working. More
investigation is needed to figure out how to collect coverage data for ARM targets.
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.