376 Commits

Author SHA1 Message Date
Brian Smith
bd5f1c4105 Use llvm-nm for checking symbol prefixes for targets for which we use clang. 2022-10-19 23:49:17 -07:00
Brian Smith
9098bd6e30 Address latest clippy warnings. 2022-10-19 23:49:17 -07:00
Brian Smith
32e007fc88 Use Android NDK 25 and work around Rust/Android incompatibilities.
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.
2022-10-19 23:49:17 -07:00
Brian Smith
431069e97f CI: Fix ---all-targets typo in clippy invocation. 2022-04-07 17:40:03 -07:00
Brian Smith
8820c150ea Use LLVM 14 in CI/CD for coverage. 2022-02-20 17:51:04 -08:00
Brian Smith
d97ae1fd08 wasm32: Make wasm32_c the default and only mode; remove the "wasm32_c" feature.
Always require a C compilare for wasm32, instead of trying to provide a subset
of the functionality.
2021-10-06 15:53:02 -07:00
Alexander Ovchinnikov
ceb5b90f6e Enable building and running on Windows ARM64
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>
2021-08-16 12:28:42 -07:00
Brian Smith
609a0f809a Address clippy::len_zero. 2021-05-11 18:34:48 -07:00
Brian Smith
b86067da4e Address clippy::vec_init_then_push. 2021-05-11 18:34:48 -07:00
Brian Smith
38cb28332b PBKDF2: Avoid slice indexing. 2021-05-11 16:47:23 -07:00
Brian Smith
ee7f888940 Address clippy::redundant_slicing warnings. 2021-05-11 16:47:23 -07:00
Brian Smith
a839093b51 Enable clippy::from_over_into lint. 2021-05-11 15:57:51 -07:00
Brian Smith
b4600fa244 Sync mk/clippy.sh with webpki. 2021-05-11 15:57:51 -07:00
Brian Smith
badca90d14 Simplify assembly pre-generation mechanism.
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.
2021-05-03 13:36:20 -07:00
Brian Smith
fed04d72db CI/CD: Add a check that verifies symbol renaming was done well enough. 2021-05-02 22:09:07 -07:00
Brian Smith
e03cb68e53 CI/CD: Always use LLVM 12. 2021-04-29 16:37:41 -07:00
Brian Smith
4f30438640 CI/CD: Fix error handling in mk/clippy.sh.
`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.
2021-04-29 16:07:38 -07:00
Brian Smith
508f5a3293 CI/CD: Use a GitHub-hosted copy of nasm instead of downloading it from nasm.us.
Downloading from nasm.us frequently fails. Avoid depending on it.

Change the expected location of nasm in build.rs.
2021-04-29 15:10:32 -07:00
Brian Smith
d62da4ecbe Move disabling of clippy lints to mk/clippy.sh. 2021-04-20 13:31:22 -07:00
Brian Smith
0141c08d96 CI/CD: Suppress new clippy lints. 2021-04-20 13:31:06 -07:00
Brian Smith
05f0c91db5 CI: Increase wasm-bindgen-test timeout to 60s.
See if this prevents some of the wasm32 failures.
2021-02-26 16:27:01 -08:00
Brian Smith
0a40cd431b CI: Use Android "cmdline-tools" instead of SDK tools.
https://github.com/actions/virtual-environments/issues/2252 is the best
description of the difference I have found.

Also stop using `sudo`; maybe this was a holdover from Travis CI days?
2021-02-26 13:22:54 -08:00
Brian Smith
019a8747dd CI/CD: Use the same version of wasm-bindgen-cli as wasm-bindgen. 2020-11-30 17:40:12 -08:00
Brian Smith
ad612543ad CI/CD: Don't use self-contained linking during code coverage.
Work around a bug in the Rust toolchain.
2020-11-30 02:29:54 -08:00
Brian Smith
e775fedb53 CI/CD: Use self-contained linking for all -musl targets. 2020-11-30 02:29:54 -08:00
Brian Smith
c4c6899cc5 CI/CD: Use LLVM-11 for code coverage. 2020-11-30 00:26:42 -08:00
Brian Smith
15c823a571 Build: Replace use of Yasm with use of Nasm for Windows assembly.
Match BoringSSL. According to the Chromium discussion about nasm, it
is also substantially faster.
2020-11-25 16:32:53 -08:00
Brian Smith
08c5854363 CI/CD: Separate coverage reports per test executable. 2020-11-25 16:29:43 -08:00
Brian Smith
af08a2fff9 CI/CD: Add aarch64-unknown-linux-gnu test code coverage.
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.
2020-11-25 16:29:43 -08:00
Brian Smith
6314cc7fff CI/CD: Gather code coverage.
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.
2020-11-25 16:29:43 -08:00
Linus Unnebäck
db664fad58 CI/CD: Use qemu_* variables consistently in mk/cargo.sh. 2020-11-24 14:55:06 -08:00
Brian Smith
7bac725679 Allow cross-compiling to *-linux-musl (except x86_64) w/o a sysroot.
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.
2020-11-24 09:22:50 -08:00
Brian Smith
0b3cf2df06 CI/CD: When using Clang for non-Android targets, always use Clang 10.
It seems that on GitHub Actions Clang 6.0 is the default.
2020-11-23 23:05:51 -08:00
Brian Smith
09b6052a1c CI/CD: Don't put Android's tools in $PATH for non-Android 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.
2020-11-23 23:05:51 -08:00
Brian Smith
ab27f3fe1c CI/CD: use the correct ar for each target. 2020-11-23 19:42:06 -08:00
Brian Smith
617cb54caa CI/CD: Fix typo in i686-unknown-linux-musl linker setting.
The linker wasn't getting overridden but things still worked because the system
linker works fine in this case.
2020-11-23 19:42:06 -08:00
Brian Smith
9ddb7667b3 CI/CD: Group entries in mk/cargo.sh correctly.
The blank lines were not in the right place to group the related
variables sensibly. Fix that.
2020-11-23 19:42:06 -08:00
Brian Smith
d12e36fec5 Move wasm32-unknown-unknown support to cargo.sh.
Make it easier to build and test the wasm32-unknown-unknown target locally.
2020-11-17 08:17:16 -08:00
Brian Smith
fb00ee314e Build: Remove leftover Travis CI scripts. 2020-11-13 12:46:38 -08:00
Brian Smith
fbe6562c22 Build: Make it easier to run the same configuration locally that is used in CI. 2020-11-13 12:46:38 -08:00
Brian Smith
5f3eaff3c5 CI/CD: Move Windows testing to GitHub Actions. 2020-11-10 18:41:39 -08:00
Brian Smith
3ac3e8b020 CI/CD: Test wasm32-unknown-unknown in GitHub Actions.
Bump the wasm-bindgen-test dependency version to be compatible with
the latest wasm-bindgen-cli version.
2020-11-10 17:12:46 -08:00
Brian Smith
9e0df33dea CI/CD: Restore mk/install-build-tools.sh. 2020-11-10 11:58:01 -08:00
Brian Smith
9ab293a61c CI/CD: Move arm-unknown-linux-gnueabihf to GitHub actions. 2020-11-10 11:58:01 -08:00
Brian Smith
09488e45c6 CI/CD: Move aarch64-unknown-linux-gnu to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
68db0d317d CI/CD: Move remaining {i686,x86_64}-unknown-linux-{gnu,musl} targets to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
fe4aeee8ba CI/CD: Move Android target build to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
95307afefa CI/CD: Move building of aarch64-apple-ios to GitHub Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
18ced9d490 CI/CD: Move some jobs from Travis CI to Github Actions. 2020-11-10 11:58:01 -08:00
Brian Smith
a1837f8419 CI/CD: Use Cargo's "runner" feature for kcov. 2020-11-06 09:08:51 -08:00