Support compiling without posix_memalign() function
authorPaul Cercueil <paul@crapouillou.net>
Sat, 11 Feb 2023 14:47:30 +0000 (14:47 +0000)
committernotaz <notasas@gmail.com>
Thu, 3 Aug 2023 17:53:08 +0000 (20:53 +0300)
Add NO_POSIX_MEMALIGN option in Makefile.libretro to support platform
that don't provide the posix_memalign() function.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Makefile
frontend/libretro.c

index 6e9d10c..3d33b8c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,8 @@ ifndef DEBUG
 CFLAGS += -O2 -DNDEBUG
 endif
 CFLAGS += -DHAVE_MMAP=$(if $(NO_MMAP),0,1) \
-         -DHAVE_PTHREAD=$(if $(NO_PTHREAD),0,1)
+         -DHAVE_PTHREAD=$(if $(NO_PTHREAD),0,1) \
+         -DHAVE_POSIX_MEMALIGN=$(if $(NO_POSIX_MEMALIGN),0,1)
 CXXFLAGS += $(CFLAGS)
 #DRC_DBG = 1
 #PCNT = 1
index e5b21d5..64df703 100644 (file)
@@ -3037,7 +3037,7 @@ void retro_init(void)
 
 #ifdef _3DS
    vout_buf = linearMemAlign(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2, 0x80);
-#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && !defined(VITA) && !defined(__SWITCH__)
+#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && HAVE_POSIX_MEMALIGN
    if (posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2) != 0)
       vout_buf = (void *) 0;
 #else