From 3a6399aaaa230b9e6b5ab5b71473524b963b8350 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Wed, 28 Jul 2021 23:57:17 +0000 Subject: [PATCH] vm_native: add workaround for FreeBSD 12 rpcs3/util/vm_native.cpp:302:16: error: no member named 'memfd_create' in the global namespace m_file = ::memfd_create_("2M", c_mfd_huge_2mb); ~~^ rpcs3/util/vm_native.cpp:34:23: note: expanded from macro 'memfd_create_' #define memfd_create_ memfd_create ^ rpcs3/util/vm_native.cpp:308:15: error: no member named 'memfd_create' in the global namespace m_file = ::memfd_create_("", 0); ~~^ rpcs3/util/vm_native.cpp:34:23: note: expanded from macro 'memfd_create_' #define memfd_create_ memfd_create ^ --- rpcs3/util/vm_native.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rpcs3/util/vm_native.cpp b/rpcs3/util/vm_native.cpp index 8caad72d9..82f05ef79 100644 --- a/rpcs3/util/vm_native.cpp +++ b/rpcs3/util/vm_native.cpp @@ -31,7 +31,13 @@ static int memfd_create_(const char *name, uint flags) return syscall(__NR_memfd_create, name, flags); } #elif defined(__FreeBSD__) +# if __FreeBSD__ < 13 +// XXX Drop after FreeBSD 12.* reaches EOL on 2024-06-30 +#define MFD_CLOEXEC O_CLOEXEC +#define memfd_create_(name, flags) shm_open(SHM_ANON, O_RDWR | flags, 0600) +# else #define memfd_create_ memfd_create +# endif #endif namespace utils