Use __NR_getrandom rather than SYS_getrandom.

The former is defined by the kernel and is a straightforward number. The
latter is defined by glibc as:

  #define SYS_getrandom __NR_getrandom

which does not work when kernel headers are older than glibc headers.
Instead, use the kernel values.

Bug: chromium:742260
Change-Id: Id162f125db660643269e0b1329633437048575c4
Reviewed-on: https://boringssl-review.googlesource.com/17864
Commit-Queue: Adam Langley <agl@google.com>
Reviewed-by: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/fipsmodule/rand/urandom.c b/crypto/fipsmodule/rand/urandom.c
index 2ea8730..8cbf727 100644
--- a/crypto/fipsmodule/rand/urandom.c
+++ b/crypto/fipsmodule/rand/urandom.c
@@ -45,33 +45,33 @@
 #if defined(OPENSSL_LINUX)
 
 #if defined(OPENSSL_X86_64)
-#define EXPECTED_SYS_getrandom 318
+#define EXPECTED_NR_getrandom 318
 #elif defined(OPENSSL_X86)
-#define EXPECTED_SYS_getrandom 355
+#define EXPECTED_NR_getrandom 355
 #elif defined(OPENSSL_AARCH64)
-#define EXPECTED_SYS_getrandom 278
+#define EXPECTED_NR_getrandom 278
 #elif defined(OPENSSL_ARM)
-#define EXPECTED_SYS_getrandom 384
+#define EXPECTED_NR_getrandom 384
 #elif defined(OPENSSL_PPC64LE)
-#define EXPECTED_SYS_getrandom 359
+#define EXPECTED_NR_getrandom 359
 #endif
 
-#if defined(EXPECTED_SYS_getrandom)
-#define USE_SYS_getrandom
+#if defined(EXPECTED_NR_getrandom)
+#define USE_NR_getrandom
 
-#if defined(SYS_getrandom)
+#if defined(__NR_getrandom)
 
-#if SYS_getrandom != EXPECTED_SYS_getrandom
+#if __NR_getrandom != EXPECTED_NR_getrandom
 #error "system call number for getrandom is not the expected value"
 #endif
 
-#else  /* SYS_getrandom */
+#else  /* __NR_getrandom */
 
-#define SYS_getrandom EXPECTED_SYS_getrandom
+#define __NR_getrandom EXPECTED_NR_getrandom
 
-#endif  /* SYS_getrandom */
+#endif  /* __NR_getrandom */
 
-#endif /* EXPECTED_SYS_getrandom */
+#endif /* EXPECTED_NR_getrandom */
 
 #if !defined(GRND_NONBLOCK)
 #define GRND_NONBLOCK 1
@@ -95,7 +95,7 @@
 
 DEFINE_STATIC_ONCE(rand_once);
 
-#if defined(USE_SYS_getrandom) || defined(BORINGSSL_FIPS)
+#if defined(USE_NR_getrandom) || defined(BORINGSSL_FIPS)
 /* message writes |msg| to stderr. We use this because referencing |stderr|
  * with |fprintf| generates relocations, which is a problem inside the FIPS
  * module. */
@@ -116,10 +116,10 @@
   int fd = *urandom_fd_requested_bss_get();
   CRYPTO_STATIC_MUTEX_unlock_read(rand_lock_bss_get());
 
-#if defined(USE_SYS_getrandom)
+#if defined(USE_NR_getrandom)
   uint8_t dummy;
   long getrandom_ret =
-      syscall(SYS_getrandom, &dummy, sizeof(dummy), GRND_NONBLOCK);
+      syscall(__NR_getrandom, &dummy, sizeof(dummy), GRND_NONBLOCK);
 
   if (getrandom_ret == 1) {
     *urandom_fd_bss_get() = kHaveGetrandom;
@@ -132,7 +132,7 @@
 
     do {
       getrandom_ret =
-          syscall(SYS_getrandom, &dummy, sizeof(dummy), 0 /* no flags */);
+          syscall(__NR_getrandom, &dummy, sizeof(dummy), 0 /* no flags */);
     } while (getrandom_ret == -1 && errno == EINTR);
 
     if (getrandom_ret == 1) {
@@ -140,7 +140,7 @@
       return;
     }
   }
-#endif  /* USE_SYS_getrandom */
+#endif  /* USE_NR_getrandom */
 
   if (fd == kUnset) {
     do {
@@ -234,7 +234,7 @@
   }
 }
 
-#if defined(USE_SYS_getrandom) && defined(OPENSSL_MSAN)
+#if defined(USE_NR_getrandom) && defined(OPENSSL_MSAN)
 void __msan_unpoison(void *, size_t);
 #endif
 
@@ -245,9 +245,9 @@
     ssize_t r;
 
     if (*urandom_fd_bss_get() == kHaveGetrandom) {
-#if defined(USE_SYS_getrandom)
+#if defined(USE_NR_getrandom)
       do {
-        r = syscall(SYS_getrandom, out, len, 0 /* no flags */);
+        r = syscall(__NR_getrandom, out, len, 0 /* no flags */);
       } while (r == -1 && errno == EINTR);
 
 #if defined(OPENSSL_MSAN)
@@ -258,7 +258,7 @@
       }
 #endif /* OPENSSL_MSAN */
 
-#else /* USE_SYS_getrandom */
+#else /* USE_NR_getrandom */
       abort();
 #endif
     } else {