platforms: try to fix build
authornotaz <notasas@gmail.com>
Sat, 26 Oct 2024 19:57:57 +0000 (22:57 +0300)
committernotaz <notasas@gmail.com>
Sun, 27 Oct 2024 16:23:03 +0000 (18:23 +0200)
many lack weak symbols, apple has different pthread_setname_np...

Makefile
frontend/cspace.c
frontend/libretro-rthreads.c
include/compiler_features.h

index 25cbbdf..1219b09 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -285,7 +285,7 @@ CFLAGS += -DHAVE_CHD -I$(LCHDR)/include
 OBJS += frontend/cspace.o
 ifeq "$(HAVE_NEON_ASM)" "1"
 OBJS += frontend/cspace_neon.o
-frontend/cspace.o: CFLAGS += -DHAVE_bgr555_to_rgb565
+frontend/cspace.o: CFLAGS += -DHAVE_bgr555_to_rgb565 -DHAVE_bgr888_to_x
 else
 ifeq "$(ARCH)" "arm"
 OBJS += frontend/cspace_arm.o
index b4e4a71..b45cee2 100644 (file)
@@ -112,6 +112,8 @@ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
 
 #endif
 
+#ifndef HAVE_bgr888_to_x
+
 void attr_weak bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
 {
        const unsigned char *src = src_;
@@ -139,6 +141,8 @@ void attr_weak bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
 void rgb888_to_rgb565(void *dst, const void *src, int bytes) {}
 void bgr888_to_rgb888(void *dst, const void *src, int bytes) {}
 
+#endif // HAVE_bgr888_to_x
+
 /* YUV stuff */
 static int yuv_ry[32], yuv_gy[32], yuv_by[32];
 static unsigned char yuv_u[32 * 2], yuv_v[32 * 2];
index 2450750..82af3ef 100644 (file)
@@ -83,7 +83,7 @@ sthread_t *pcsxr_sthread_create(void (*thread_func)(void *),
        h->id = (pthread_t)ctr_thread;
 #else
        h = sthread_create(thread_func, NULL);
- #if defined(__GLIBC__) || defined(__MACH__) || \
+ #if defined(__GLIBC__) || \
     (defined(__ANDROID_API__) && __ANDROID_API__ >= 26)
        if (h && (unsigned int)type < (unsigned int)PCSXRT_COUNT)
        {
index d698363..21549dd 100644 (file)
@@ -8,12 +8,17 @@
 #  define noinline       __attribute__((noinline,noclone))
 # endif
 # define attr_unused     __attribute__((unused))
-# define attr_weak       __attribute__((weak))
 #else
 # define likely(x)       (x)
 # define unlikely(x)     (x)
 # define noinline
 # define attr_unused
+#endif
+
+// doesn't work on Android, mingw...
+#if defined(__GNUC__) && !defined(ANDROID) && !defined(__MINGW32__)
+# define attr_weak       __attribute__((weak))
+#else
 # define attr_weak
 #endif