From 208018fb9d63f5cc6e540208df86c3e890a28e95 Mon Sep 17 00:00:00 2001 From: normal Date: Wed, 11 Jan 2017 22:38:50 +0000 Subject: random.c (fill_random_bytes_syscall): use "__NR_" prefix on Linux glibc still does not define the SYS_getrandom alias for __NR_getrandom in the Linux kernel. However, installing up-to-date Linux kernel headers (linux-libc-dev >= 3.17 package on Debian) will get the __NR_getrandom syscall number defined properly without relying on glibc. This allows users with a modern kernel+headers to use the getrandom syscall without waiting on glibc support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- random.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'random.c') diff --git a/random.c b/random.c index 6ddf4d186e..6362055dac 100644 --- a/random.c +++ b/random.c @@ -505,7 +505,7 @@ fill_random_bytes_syscall(void *seed, size_t size, int unused) CryptGenRandom(prov, size, seed); return 0; } -#elif defined __linux__ && defined SYS_getrandom +#elif defined __linux__ && defined __NR_getrandom #include # ifndef GRND_NONBLOCK @@ -522,7 +522,7 @@ fill_random_bytes_syscall(void *seed, size_t size, int need_secure) if (!need_secure) flags = GRND_NONBLOCK; errno = 0; - ret = syscall(SYS_getrandom, seed, size, flags); + ret = syscall(__NR_getrandom, seed, size, flags); if (errno == ENOSYS) { ATOMIC_SET(try_syscall, 0); return -1; -- cgit v1.2.3