392 Commits

Author SHA1 Message Date
Brian Smith
00d639339a Add support for 64-bit big-endian PowerPC.
Not added to CI. We need to find a better solution for supporting PowerPC
(and s390x and other less-common archs) in CI.
2023-10-01 21:29:33 -07:00
ZHAI Xiaojuan
3d592b27bf Add support for LoongArch64 2023-10-01 18:43:17 -07:00
Brian Smith
6e82dd3c75 Add powerpc-unknown-linux-gnu support. 2023-10-01 18:25:37 -07:00
Ulrich Weigand
baa823bb4d Basic support for s390x target 2023-10-01 14:33:16 -07:00
Eric Richter
3161c01ec5 CI: add powerpc64le-unknown-linux-gnu as a target
Signed-off-by: Eric Richter <erichte@linux.ibm.com>
2023-09-30 17:18:58 -07:00
Brian Smith
e5908b9626 CI: Use riscv64-linux-gnu-gcc as RISC-V linker. 2023-09-30 11:46:06 -07:00
leso-kn
1e1e8e1ee6 Add support for riscv64
Co-authored-by: Alan Mock <alan@alanmock.com>
Co-authored-by: Patrick Elsen <pelsen@xfbs.net>
Signed-off-by: leso-kn <info@lesosoftware.com>
2023-09-30 11:46:06 -07:00
Brian Smith
4328252946 CI: Use LLVM 16 tools.
Rust now uses LLVM 16 and writes object files that LLVM 15's `nm` cannot
fully understand.
2023-09-03 15:32:26 -07:00
Brian Smith
95948b3977 CI: Install the latest (currently) version of the LTS NDK. 2023-02-16 13:10:43 -08:00
Brian Smith
ffcd828b62 CI: Fix Android builds in GitHub Actions.
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.
2023-02-15 13:52:07 -08:00
Brian Smith
54520a3652 Adjust MIPSEL CI build system changes.
Take MIPSEL out of the GitHub Actions configuration because it fails to
link, and because it makes the build matrix too large.
2022-11-11 16:57:21 -08:00
Linus Unnebäck
ce24e188e0 Add mipsel to Github Actions CI setup 2022-11-11 15:10:16 -08:00
Brian Smith
7d395fb62b CI: Use -Cinstrument-coverage 2022-11-03 14:47:14 -07:00
Brian Smith
f5bd88cc0a Use the getrandom crate to implement ring::rand. 2022-10-29 11:14:38 -07:00
Brian Smith
0d18da865a Always use llvm-nm in mk/check-symbol-prefixes.sh.
Don't try to use binutils `nm` or the Android SDK `llvm-nm`, since they don't
support LLVM's "opaque pointers".
2022-10-21 07:53:11 -07:00
Brian Smith
a93fbbe8b3 CI: Use LLVM 15 so llvm-nm works in opaque pointer mode. 2022-10-19 23:49:17 -07:00
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