Fix Lightrec build on Windows and Linux
authorPaul Cercueil <paul@crapouillou.net>
Mon, 30 May 2022 18:22:17 +0000 (19:22 +0100)
committerPaul Cercueil <paul@crapouillou.net>
Mon, 30 May 2022 18:23:51 +0000 (19:23 +0100)
Some distributions of Linux don't have the MFD_HUGETLB flag in
<linux/memfd.h>, probably because their kernel headers installed are too
old. In that case, we locally define MFD_HUGETLB to the value it should
have.

On Windows, the HAVE_MMAP macro set for GNU Lightning was also used in
libretro-common/vfs/vfs_implementation.c, causing build issues. Address
this problem by only defining HAVE_MMAP for Lightning source files.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Makefile
libpcsxcore/lightrec/mem.c

index d1585a1..0860c72 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -92,7 +92,8 @@ libpcsxcore/psxbios.o: CFLAGS += -Wno-nonnull
 # dynarec
 ifeq "$(DYNAREC)" "lightrec"
 CFLAGS += -Ideps/lightning/include -Ideps/lightrec -Iinclude/lightning -Iinclude/lightrec \
-                 -DLIGHTREC -DLIGHTREC_STATIC -DHAVE_MMAP
+                 -DLIGHTREC -DLIGHTREC_STATIC
+deps/lightning/lib/%.o: CFLAGS += -DHAVE_MMAP
 ifeq ($(LIGHTREC_CUSTOM_MAP),1)
 LDLIBS += -lrt
 OBJS += libpcsxcore/lightrec/mem.o
index 76608ea..c7fa7da 100644 (file)
 #define MAP_FIXED_NOREPLACE 0x100000
 #endif
 
+#ifndef MFD_HUGETLB
+#define MFD_HUGETLB 0x0004
+#endif
+
 static const uintptr_t supported_io_bases[] = {
        0x0,
        0x10000000,