diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2022-06-13 11:19:55 -0400 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2022-06-13 12:16:27 -0400 |
commit | 96c6117414942e6d3db56e73f2354a5fd15d4962 (patch) | |
tree | 3fa0e6d796fd7ca3e9e406627b773f4e8f041c74 | |
parent | 3809ab0eb8dbc37a62336e62b5fe211e89b3d8e9 (diff) | |
download | libgit2-96c6117414942e6d3db56e73f2354a5fd15d4962.tar.gz |
cmake: only use `getloadavg` where it exists
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/features.h.in | 1 | ||||
-rw-r--r-- | src/util/rand.c | 8 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 58e58259a..d16cfe538 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -71,6 +71,7 @@ check_function_exists(qsort_s GIT_QSORT_S) # random / entropy data check_function_exists(getentropy GIT_RAND_GETENTROPY) +check_function_exists(getloadavg GIT_RAND_GETLOADAVG) # determine architecture of the machine diff --git a/src/features.h.in b/src/features.h.in index e14e83359..fbf0cab60 100644 --- a/src/features.h.in +++ b/src/features.h.in @@ -57,5 +57,6 @@ #cmakedefine GIT_SHA256_MBEDTLS 1 #cmakedefine GIT_RAND_GETENTROPY 1 +#cmakedefine GIT_RAND_GETLOADAVG 1 #endif diff --git a/src/util/rand.c b/src/util/rand.c index 432494902..d28e4aa97 100644 --- a/src/util/rand.c +++ b/src/util/rand.c @@ -106,8 +106,6 @@ GIT_INLINE(int) getseed(uint64_t *seed) return -1; } - getloadavg(loadavg, 3); - *seed = 0; *seed |= ((uint64_t)tv.tv_usec << 40); *seed |= ((uint64_t)tv.tv_sec); @@ -119,9 +117,15 @@ GIT_INLINE(int) getseed(uint64_t *seed) *seed ^= ((uint64_t)getuid() << 8); *seed ^= ((uint64_t)getgid()); +# if defined(GIT_RAND_GETLOADAVG) + getloadavg(loadavg, 3); + convert.f = loadavg[0]; *seed ^= (convert.d >> 36); convert.f = loadavg[1]; *seed ^= (convert.d); convert.f = loadavg[2]; *seed ^= (convert.d >> 16); +# else + GIT_UNUSED(loadavg[0]); +# endif convert.f = git__timer(); *seed ^= (convert.d); |