aboutsummaryrefslogtreecommitdiff
path: root/src/random.cpp
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2020-03-16 17:20:27 +0800
committerfanquake <fanquake@gmail.com>2020-03-19 11:36:38 +0800
commite90e3e684ffa7b25f0dfb5b45e70bb0c358261fb (patch)
treeeff47e78032a33a1e4807b32c771b784a34437a5 /src/random.cpp
parenta421e0a22f1230abd69b4661a019bed39b72205f (diff)
build: fix sysctl() detection on macOS
sysctl() on *BSD takes a "const int *name", whereas sysctl() on macOS it takes an "int *name". So our configure check and sysctl() detection on macOS currently fails: ```bash /usr/include/sys/sysctl.h:759:9: note: candidate function not viable: no known conversion from 'const int [2]' to 'int *' for 1st argument int sysctl(int *, u_int, void *, size_t *, void *, size_t); ``` This change removes the name argument from the sysctl() detection check, meaning we will detect correctly on macOS and *BSD. For consistency we also switch to using the more generic, non-const version of the name parameter in the rest of our usage.
Diffstat (limited to 'src/random.cpp')
-rw-r--r--src/random.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/random.cpp b/src/random.cpp
index f7f3dd9de3..2a27e6ba0d 100644
--- a/src/random.cpp
+++ b/src/random.cpp
@@ -321,10 +321,10 @@ void GetOSRand(unsigned char *ent32)
RandFailure();
}
#elif defined(HAVE_SYSCTL_ARND)
- /* FreeBSD and similar. It is possible for the call to return less
+ /* FreeBSD, NetBSD and similar. It is possible for the call to return less
* bytes than requested, so need to read in a loop.
*/
- static const int name[2] = {CTL_KERN, KERN_ARND};
+ static int name[2] = {CTL_KERN, KERN_ARND};
int have = 0;
do {
size_t len = NUM_OS_RANDOM_BYTES - have;