[PATCH] erofs-utils: fix missing getrandom() on some macOS platforms

Gao Xiang hsiangkao at linux.alibaba.com
Fri Jun 27 17:33:19 AEST 2025


It has <sys/random.h> but not getrandom().

Fixes: 5de439566bc5 ("erofs-utils: Provide identical functionality without libuuid")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 configure.ac | 1 +
 lib/uuid.c   | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 5c2737c8..2d42b1f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -266,6 +266,7 @@ AC_CHECK_FUNCS(m4_flatten([
 	backtrace
 	copy_file_range
 	fallocate
+	getrandom
 	getrlimit
 	gettimeofday
 	lgetxattr
diff --git a/lib/uuid.c b/lib/uuid.c
index 3fb88a3c..1fae857f 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -41,9 +41,9 @@ static int s_getrandom(void *out, unsigned size, bool insecure)
 		ssize_t r;
 		int err;
 
-#ifdef HAVE_SYS_RANDOM_H
+#if defined(HAVE_SYS_RANDOM_H) && defined(HAVE_GETRANDOM)
 		r = getrandom(out, size, flags);
-#elif defined(__NR_getrandom)
+#elif defined(__linux__) && defined(__NR_getrandom)
 		r = (ssize_t)syscall(__NR_getrandom, out, size, flags);
 #else
 		r = -1;
-- 
2.43.5



More information about the Linux-erofs mailing list