Skip to content

Conversation

@newpavlov
Copy link
Member

@newpavlov newpavlov commented Sep 19, 2025

Some users may prefer to use the legacy Windows backend (e.g. see #723), so I think it's worth to introduce a documented configuration flag for it and replace the undocumented getrandom_windows_legacy flag.

@newpavlov newpavlov requested a review from josephlr September 19, 2025 13:33
@newpavlov newpavlov changed the title Add windows-legacy opt-in backend Add windows_legacy opt-in backend Sep 19, 2025
@newpavlov newpavlov merged commit 3983e0f into master Sep 23, 2025
75 checks passed
@newpavlov newpavlov deleted the windows_legacy branch September 23, 2025 11:43
match rustc_minor_version() {
Some(minor_ver) if minor_ver < WIN7_INTRODUCED_MINOR_VER => {
println!("cargo:rustc-cfg=getrandom_windows_legacy");
println!("cargo:rustc-cfg=getrandom_backend=\"windows_legacy\"");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing that concerned me about this line is if it would override users who used --getrandom_backend="whatever" on Windows when using an older compiler.

Turns out, I can be an issue, but depends on the value of "whatever". Opened #728 to fix.

@josephlr
Copy link
Member

Other than #728, this looks good. Thanks for taking care of this. It makes things a lot clearer to the user.

@josephlr josephlr mentioned this pull request Oct 14, 2025
josephlr added a commit that referenced this pull request Oct 14, 2025
## [0.3.4] - 2025-10-14

### Major change to `wasm_js` backend

Now, when the `wasm_js` feature is enabled, the `wasm_js` backend will
be used
by default. Users of `wasm32-unknown-unknown` targeting JavaScript
environments
like the Web and Node.js will no longer need to specify:
```
--cfg getrandom_backend="wasm_js"
```
in `RUSTFLAGS` for the crate to compile. They can now simple enable a
feature.

Note: this should not affect non-JS users of the
`wasm32-unknown-unknown`
target. Using `--cfg getrandom_backend` will still override the source
of
randomness _even if_ the `wasm_js` feature is enabled. This includes
`--cfg getrandom_backend=custom` and `--cfg
getrandom_backend=unsupported`.

For more information, see the discussions in [#671], [#675], and [#730].

### Added
- `unsupported` opt-in backend [#667]
- `windows_legacy` opt-in backend [#724]

### Changed
- Implement Memory Sanitizer unpoisoning more precisely [#678]
- Relax MSRV for the `linux_raw` opt-in backend on ARM targets [#688]
- Use `getrandom` syscall on all RISC-V Linux targets [#699]
- Replaced `wasi` dependency with `wasip2` [#721]
- Enable `wasm_js` backend by default if the `wasm_js` feature is
enabled [#730]

### Removed
- Unstable `rustc-dep-of-std` crate feature [#694]

[#667]: #667
[#671]: #671
[#675]: #675
[#678]: #678
[#688]: #688
[#694]: #694
[#699]: #699
[#721]: #721
[#724]: #724
[#730]: #730

---------

Signed-off-by: Joe Richey <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants