Wayland: use SHM_ANON on FreeBSD
This works like memfd on Linux.
diff --git a/src/wl_window.c b/src/wl_window.c
index 98a6465..1d7cc9a 100644
--- a/src/wl_window.c
+++ b/src/wl_window.c
@@ -156,6 +156,9 @@
fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL);
}
else
+#elif defined(SHM_ANON)
+ fd = shm_open(SHM_ANON, O_RDWR | O_CLOEXEC, 0600);
+ if (fd < 0)
#endif
{
path = getenv("XDG_RUNTIME_DIR");
@@ -175,7 +178,12 @@
return -1;
}
+#if defined(SHM_ANON)
+ // posix_fallocate does not work on SHM descriptors
+ ret = ftruncate(fd, size);
+#else
ret = posix_fallocate(fd, 0, size);
+#endif
if (ret != 0)
{
close(fd);