From 081229d6e982bbe309fe26e5ffe197df2d5d5d7d Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Thu, 2 Jun 2022 10:27:55 +0200 Subject: libgit2, import PR by nielx diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e7b54d0..65e830d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,6 +57,8 @@ check_function_exists(qsort_s GIT_QSORT_S) check_function_exists(getentropy GIT_RAND_GETENTROPY) +check_function_exists(getloadavg GIT_RAND_GETLOADAVG) + # Find required dependencies if(WIN32) @@ -65,8 +67,8 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") list(APPEND LIBGIT2_SYSTEM_LIBS socket nsl) list(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl") elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku") - list(APPEND LIBGIT2_SYSTEM_LIBS network) - list(APPEND LIBGIT2_PC_LIBS "-lnetwork") + list(APPEND LIBGIT2_SYSTEM_LIBS gnu network) + list(APPEND LIBGIT2_PC_LIBS "-lgnu -lnetwork") endif() check_library_exists(rt clock_gettime "time.h" NEED_LIBRT) diff --git a/src/features.h.in b/src/features.h.in index f920135..4f9ee13 100644 --- a/src/features.h.in +++ b/src/features.h.in @@ -49,5 +49,6 @@ #cmakedefine GIT_SHA1_MBEDTLS 1 #cmakedefine GIT_RAND_GETENTROPY 1 +#cmakedefine GIT_RAND_GETLOADAVG 1 #endif diff --git a/src/rand.c b/src/rand.c index 0a20813..23d72c6 100644 --- a/src/rand.c +++ b/src/rand.c @@ -106,7 +106,13 @@ GIT_INLINE(int) getseed(uint64_t *seed) return -1; } +# if defined(GIT_RAND_GETLOADAVG) getloadavg(loadavg, 3); +# else + loadavg[0] = drand48(); + loadavg[1] = drand48(); + loadavg[2] = drand48(); +# endif *seed = 0; *seed |= ((uint64_t)tv.tv_usec << 40); -- 2.36.1