aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------.gnulib0
-rw-r--r--bootstrap.conf1
-rw-r--r--src/Makefile.am2
-rw-r--r--src/util/virrandom.c4
4 files changed, 6 insertions, 1 deletions
diff --git a/.gnulib b/.gnulib
-Subproject dbd914496c99c52220e5f5ba4121d6cb55fb3be
+Subproject 271dd74fdf54ec2a03e73a5173b0b5697f6088f
diff --git a/bootstrap.conf b/bootstrap.conf
index a4e1c2fa1..a6cfe24c1 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -61,6 +61,7 @@ intprops
ioctl
isatty
largefile
+ldexp
listen
localeconv
maintainer-makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index e94f97718..cec478948 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -654,7 +654,7 @@ libvirt_util_la_SOURCES = \
$(UTIL_SOURCES)
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS) \
- $(DBUS_CFLAGS)
+ $(DBUS_CFLAGS) $(LDEXP_LIBM)
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
$(RT_LIBS) $(DBUS_LIBS) $(MSCOM_LIBS) $(LIBXML_LIBS)
diff --git a/src/util/virrandom.c b/src/util/virrandom.c
index 363fcab42..73c6adf08 100644
--- a/src/util/virrandom.c
+++ b/src/util/virrandom.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <inttypes.h>
#include <math.h>
+#include <strings.h>
#include "virrandom.h"
#include "threads.h"
@@ -135,6 +136,9 @@ double virRandom(void)
*/
uint32_t virRandomInt(uint32_t max)
{
+ if ((max & (max - 1)) == 0)
+ return virRandomBits(ffs(max) - 1);
+
double val = virRandom();
return val * max;
}