diff --git a/src/pipewire/impl-core.c b/src/pipewire/impl-core.c index 5e9ae6b30..d491f994a 100644 --- a/src/pipewire/impl-core.c +++ b/src/pipewire/impl-core.c @@ -29,6 +29,24 @@ #endif #include +#ifdef __FreeBSD__ +#include +#include +// FreeBSD versions < 12 do not have getrandom() syscall +// Give a poor-man implementation here +// Can be removed after September 30, 2021 +#if __FreeBSD_version < 1200000 +ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) { + int fd = open("/dev/random", O_CLOEXEC); + if (fd < 0) + return -1; + ssize_t bytes = read(fd, buf, buflen); + close(fd); + return bytes; +} +#endif +#endif + #include #include "pipewire/impl.h"