about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-03-30 00:25:41 +0000
committerbors <bors@rust-lang.org>2023-03-30 00:25:41 +0000
commit10338571cfa7c2be0aeed309141ced91454d41e1 (patch)
tree0656a3a63f3fba4acb700119a97dbe40ab481cda /library/std/src
parent2fb0e8d162a021f8a795fb603f5d8c0017855160 (diff)
parent7b40eb71a90d93e825e32394d30f199a8492342d (diff)
downloadrust-10338571cfa7c2be0aeed309141ced91454d41e1.tar.gz
rust-10338571cfa7c2be0aeed309141ced91454d41e1.zip
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`.
Diffstat (limited to 'library/std/src')
-rw-r--r--library/std/src/sys/unix/rand.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/library/std/src/sys/unix/rand.rs b/library/std/src/sys/unix/rand.rs
index a6fe07873d7..0f347ffab42 100644
--- a/library/std/src/sys/unix/rand.rs
+++ b/library/std/src/sys/unix/rand.rs
@@ -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 @@ mod imp {
     }
 }
 
-#[cfg(target_os = "openbsd")]
+#[cfg(any(target_os = "openbsd", target_os = "emscripten"))]
 mod imp {
     use crate::sys::os::errno;