From 3900d055da0780080ba10305c6bb06bd94ab396d Mon Sep 17 00:00:00 2001 From: Raiyan Date: Wed, 4 Nov 2026 10:43:57 +0700 Subject: [PATCH 1/3] Fix `wasm_js` feature combined with a backend override on Wasm `Error::WEB_CRYPTO` is only defined when the `wasm_js` backend is actually selected, but its description in `Error::internal_desc` was gated on the `wasm_js` feature alone. Enabling the feature together with `getrandom_backend="unsupported"`, `"custom"` or `"extern_impl"` on `wasm32-unknown-unknown` therefore failed to compile. Exclude those overrides from the cfg and extend the CI job to build the `unsupported` and `custom` overrides with and without `wasm_js`. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/build.yml | 12 ++++++++---- src/error.rs | 5 +++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e301510b8..bf4cd9c0e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -272,14 +272,18 @@ jobs: run: cargo build --target riscv32i-unknown-none-elf unsupported: - name: Runtime error + name: Wasm backend override (${{ matrix.backend }}) runs-on: ubuntu-24.04 + strategy: + matrix: + backend: [unsupported, custom] + env: + RUSTFLAGS: -Dwarnings --cfg getrandom_backend="${{ matrix.backend }}" steps: - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown - uses: Swatinem/rust-cache@v2 - - env: - RUSTFLAGS: -Dwarnings --cfg getrandom_backend="unsupported" - run: cargo build --target wasm32-unknown-unknown + - run: cargo build --target wasm32-unknown-unknown + - run: cargo build --target wasm32-unknown-unknown --features wasm_js diff --git a/src/error.rs b/src/error.rs index 73a827431..03011da0d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -179,6 +179,11 @@ impl Error { Error::WINDOWS_RTL_GEN_RANDOM => "RtlGenRandom: Windows system function failure", #[cfg(all( feature = "wasm_js", + not(any( + getrandom_backend = "unsupported", + getrandom_backend = "custom", + getrandom_backend = "extern_impl", + )), target_arch = "wasm32", any(target_os = "unknown", target_os = "none") ))] From 9f98dc67f3575ea90cb5597c4eb6f5a6ac6b9a7b Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 6 Nov 2026 04:50:43 +0300 Subject: [PATCH 2/3] Add changelog entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4beb2a0be..5a272b638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Deprecation warning for `libc::INT_MAX` [#868] +- Compilation error on WASM targets when `wasm_js` crate feature and + `getrandom_backend` configuration flag are used simultaneously ([#875]) ### Changed - Bumped `r-efi` dependency to v7 ([#869]) @@ -22,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#869]: https://github.com/rust-random/getrandom/pull/869 [#870]: https://github.com/rust-random/getrandom/pull/870 [#871]: https://github.com/rust-random/getrandom/pull/871 +[#875]: https://github.com/rust-random/getrandom/pull/875 ## [0.4.3] - 2026-06-17 ### Added From 90cdc01380d671b84896e5bc61e3fbe485dcbd46 Mon Sep 17 00:00:00 2001 From: Artyom Pavlov Date: Fri, 6 Nov 2026 04:53:23 +0300 Subject: [PATCH 3/3] tweak CI config --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bf4cd9c0e..38f3e799d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -271,8 +271,8 @@ jobs: RUSTFLAGS: -Dwarnings --cfg getrandom_backend="unsupported" run: cargo build --target riscv32i-unknown-none-elf - unsupported: - name: Wasm backend override (${{ matrix.backend }}) + wasm_override: + name: Web WASM override (${{ matrix.backend }}) runs-on: ubuntu-24.04 strategy: matrix: