Skip to content

Commit 0dd3b2d

Browse files
authored
getrandom introduced in Android API 28
1 parent 00acd41 commit 0dd3b2d

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

stdlib/public/stubs/LibcShims.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,11 +356,20 @@ void swift::_stdlib_random(void *buf, __swift_size_t nbytes) {
356356
result; \
357357
})
358358

359+
#if defined(__ANDROID__)
360+
#include <android/api-level.h>
361+
#if __ANDROID_API__ >= 28 // Introduced in Android API 28 - P
362+
#define GETRANDOM_AVAILABLE
363+
#endif
364+
#elif defined(GRND_RANDOM)
365+
#define GETRANDOM_AVAILABLE
366+
#endif
367+
359368
SWIFT_RUNTIME_STDLIB_INTERNAL
360369
void swift::_stdlib_random(void *buf, __swift_size_t nbytes) {
361370
while (nbytes > 0) {
362371
__swift_ssize_t actual_nbytes = -1;
363-
#if defined(GRND_RANDOM)
372+
#if defined(GETRANDOM_AVAILABLE)
364373
static const bool getrandom_available =
365374
!(getrandom(nullptr, 0, 0) == -1 && errno == ENOSYS);
366375
if (getrandom_available) {

0 commit comments

Comments
 (0)