Auto merge of #107221 - kleisauke:getentropy-emscripten, r=ChrisDenton

Use `getentropy()` instead of `/dev/urandom` on Emscripten

`/dev/urandom` is usually available on Emscripten, except when using
the special `NODERAWFS` filesystem backend, which replaces all normal
filesystem access with direct Node.js operations.

Since this filesystem backend directly access the filesystem on the
OS, it is not recommended to depend on `/dev/urandom`, especially
when trying to run the Wasm binary on OSes that are not Unix-based.

This can be considered a non-functional change, since Emscripten
implements `/dev/urandom` in the same way as `getentropy()` when not
linking with `-sNODERAWFS`.
This commit is contained in:
bors 2023-03-30 00:25:41 +00:00
commit 10338571cf
2 changed files with 5 additions and 4 deletions

View file

@ -20,7 +20,8 @@ pub fn hashmap_random_keys() -> (u64, u64) {
not(target_os = "netbsd"),
not(target_os = "fuchsia"),
not(target_os = "redox"),
not(target_os = "vxworks")
not(target_os = "vxworks"),
not(target_os = "emscripten")
))]
mod imp {
use crate::fs::File;
@ -174,7 +175,7 @@ pub fn fill_bytes(v: &mut [u8]) {
}
}
#[cfg(target_os = "openbsd")]
#[cfg(any(target_os = "openbsd", target_os = "emscripten"))]
mod imp {
use crate::sys::os::errno;

View file

@ -20,5 +20,5 @@ exit 1
git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable
cd /emsdk-portable
hide_output ./emsdk install 1.39.20
./emsdk activate 1.39.20
hide_output ./emsdk install 2.0.5
./emsdk activate 2.0.5