summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-04-19 16:13:27 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-04-21 12:05:55 -0400
commit5224c2c7068ea538d2523ad033172450ccac147d (patch)
tree5e58e871bbc885c1ac21c05cd1453478612e27a3
parentd1c536f5028bd924ba3c9b0ad10ba5b681b11ab6 (diff)
basic/random-util: add new header for getrandom()
There's some confusion: older man pages specify that linux/random.h contains getrandom, but newer glibc has it in sys/random.h. Detect if the newer header is available and include it. We still need the older header for the flags.
-rw-r--r--configure.ac8
-rw-r--r--src/basic/random-util.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 3436a9d8a6..13e758331e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -328,7 +328,6 @@ AC_CHECK_DECLS([
pivot_root,
name_to_handle_at,
setns,
- getrandom,
renameat2,
kcmp,
keyctl,
@@ -343,6 +342,13 @@ AC_CHECK_DECLS([
#include <sched.h>
#include <string.h>
#include <linux/loop.h>
+]])
+
+AC_CHECK_DECLS([getrandom],
+ [AC_DEFINE([USE_SYS_RANDOM_H], [], [sys/random.h is usable])],
+ [AC_CHECK_DECLS([getrandom], [], [], [[
+#include <sys/random.h>
+]])], [[
#include <linux/random.h>
]])
diff --git a/src/basic/random-util.c b/src/basic/random-util.c
index ad7b3eedf2..b216be579d 100644
--- a/src/basic/random-util.c
+++ b/src/basic/random-util.c
@@ -27,7 +27,13 @@
#include <stdint.h>
#ifdef HAVE_SYS_AUXV_H
-#include <sys/auxv.h>
+# include <sys/auxv.h>
+#endif
+
+#ifdef USE_SYS_RANDOM_H
+# include <sys/random.h>
+#else
+# include <linux/random.h>
#endif
#include "fd-util.h"