On IRIX 6.5, 'test-getrandom' fails: $ ./test-getrandom ../../tests/test-getrandom.c:43: assertion 'errno == ENOSYS' failed
The glibc documentation <https://www.gnu.org/software/libc/manual/html_node/Unpredictable-Bytes.html> says that when "The operating system does not implement a randomness source" the function should return with errno set to ENOSYS. This is what our unit test is verifying. So, it's our getrandom() implementation that needs a fix. 2021-05-09 Bruno Haible <br...@clisp.org> getrandom: Fail with ENOSYS when the system has no randomness source. * lib/getrandom.c (getrandom): When open() fails, set errno to ENOSYS. diff --git a/lib/getrandom.c b/lib/getrandom.c index 41212fb..6160118 100644 --- a/lib/getrandom.c +++ b/lib/getrandom.c @@ -178,7 +178,10 @@ getrandom (void *buffer, size_t length, unsigned int flags) + (flags & GRND_NONBLOCK ? O_NONBLOCK : 0)); fd = open (randdevice[devrandom], oflags); if (fd < 0) - return fd; + { + errno = ENOSYS; + return -1; + } randfd[devrandom] = fd; }